-
Notifications
You must be signed in to change notification settings - Fork 0
Motor control
ここでは、imcsモータドライバを用いたPID制御および、モータコントロールモジュールについて解説する。
モーターモジュールを使用するには、insmod
を実行しカーネルモジュールをロードする必要がある。
モータコントローラのカーネルオブジェクトは/motor_control/driver/urbtc.ko
に存在する。
モジュールのロードをスクリプトに書き下したものが、作業ディレクトリのrootにあるので利用する前には実行すること。その際、sudoすることを忘れずに。
ディレクトリ構成は以下のようである。
motor_control
以下のプログラムをサブモジュールとし、core
内のDrive関連のプログラムをモジュールと定義する。
各担当者は、core内のモジュールからmotor_controlにアクセスする事となる。その為、サブモジュールの解説については読み飛ばして構わない。
/
---/core/
---/motor_control
サブモジュールは/motor_control
内に格納されている。このサブモジュールでは、モータコントローラの初期化、PID各パラメータの設定、目標速度及び目標位置の設定を行うことが出来る。インターフェイスとして用意されている関数は以下のとおりである。
(under construction)
メインモジュールは/core
内に格納されている。このモジュールは主にMainLogic
にて使用される事となる。以下に簡単な仕様を示す。
この関数では[mm]のスケールで指定した数値分、前進または後進する。 入力値はモータのスケールに変換され、サブモジュールのrun_forwardルーチンの引数として渡され実行される。
この関数は指定角度分回転する。入力値はモータのスケールに変換される。
この関数は指定した角度文回転する。