環境
この記事は以下の環境で動いています。
項目 | 値 |
---|---|
CPU | Core i5-8250U |
OS | Windows10 |
Basicmicro Motion Studio | 1.0.0.75 |
項目 | 値 |
---|---|
Board | boroclaw 2x7A |
FW Version | 4.2.8 |
概要
移動ロボットの足となる、駆動系部品の組み立てや、モータードライバーであるRoboclawの設定を行います。
ここでは、Pololuのエンコーダー付きギアモーターをRoboclaw経由で駆動することを目標にします。
予備知識
エンコーダー付きモーター
自律ロボットを作成するためにはタイヤを駆動するモーターはエンコーダー付きが必須です。エンコーダーによって正確なタイヤの移動量が分かるために、正確なオドメトリーを計算できます。
また、エンコーダーで正確な回転速度を取得できるために、駆動軸を速度制御することが出来ます。
Pololu 37Dモーターではモーター側(ギアで減速前)は1周64パルスのエンコーダーがついています。今回は70:1のギアを使うので、減速後は1周4480(70x16)パルスのエンコーダーになります。
Roboclaw
モータードライバとモーターコントローラーが一体となった基板です。エンコーダーをフィードバックした速度制御を行えて、USBやRC信号といった多様なIFにも対応しています。USB経由で制御の設定をすることが出来ます。
PowerDistributeBoard
配電盤に当たるもので、以下の機能を持ちま鵜s。
- バッテリーの電源を分配する
- バッテリーの電圧・電流を計測する
- 5Vの電圧を生成
色々なボードが販売されてこれのようなものが良く売られていますが、今回はこれを使います。
Pixhawkの裏に貼れるようになっているボードです。
前提条件
以下の機器が必要です。
- WindowsPC
- USBA-mictoB
- Pixhawk
- PowerDistributionBoard(Dumperプレート形式)
- Roboclaw(モータードライバ)
- 電源系部品
- Makitaバッテリー
- スイッチ
- フューズ
- エンコーダー付きギアモーターx2
- Futaba(以前の記事で設定済み)
- 駆動配線基板部材
手順
PowerDistributionBoardの配線、取付
電源系・駆動系の接続
- 最終的に以下のような電気的接続になるように、ここまでで作った基板やケーブルを接続する。
- Roboclawの配線でモーター1が進行方向左側のモーター、モーター2が進行方向右側のモーターに対応する。
Basicmicro Motion Studioのインストール
- WindowsPCにてbasicmicroのWebサイトより「BasicMicro Motion Studio」をダウンロードする。
- インストーラーを開き指示に従ってインストールする。
Roboclawとの接続、配線の確認
- Basicmicro Motion Studioを起動する。
- デバイス接続と接続する。
- 「Attached Device」の中から接続しているものを選ぶ。
- 「Connect Selected Unit」を押す。
- 左側の「General Settings」メニューを選択する。
- 「Setup」グループの「Control Mode」を「RC」にします(PixhawkからのPWM信号を受けてモーターを駆動する)。
- 「Enable Encoder 1/2 in RC/Analog Mode」にチェックを入れる(チェックなしではRC信号に比例したPWM出力をする。ありでは速度制御をする)。
- 「PWM Setting」メニューを選択する。
- 左側モーター(M1)の確認
- ControlグループのMotor1のスライダーを上に上げる。左側モーターが「機体が前進する方向」に回っているか確認する。
- 軸から見て反時計回り方向
- 回転方向が逆の場合は「General Settings」面ツーの「Motor」グループでタブで「M1」横の「Reverse」にチェックを入れる
- この時エンコーダーの値(上部のM1 Speed)が正の値か確認する。
- 負の値の場合は、「General Settings」メニューの「I/O」グループの「Encoder M1 Mode」の横の「Invert」にチェックを入れる。
- +1,-1のように微妙に値が振動するだけの場合は、A相とB相のどちらかが断線しているため、配線を確認する
- ControlグループのMotor1のスライダーを上に上げる。左側モーターが「機体が前進する方向」に回っているか確認する。
- 右側モーター(M2)でも同様に行う。
- 「機体が前進する方向」が正の値のため、右側モーターは駆動軸方向から見て時計回りが正であることに注意
- 左側モーター(M1)の確認
- メニューバーの「Device」->「Write Settings」を押して設定をROMに書き込む。
速度制御のチューニング
- Basicmicro Motion Studioを起動する。
- デバイス接続と接続する。
- 「Velocity Sttings」メニューを選択する。
- M1(左側モーター)のチューニング
- モーターが回転しても安全であることを確認して、AutoTuneの「Tune M1」を押す。
- モーターが自動的に駆動された後に、Motor1の「Velocity P」、「Velocity I」の項目が自動で入力される。
- モーターが回転しても安全であることを確認して、AutoTuneの「Tune M1」を押す。
- M1(左側モーター)のチューニング結果の確認する。
- グラフビューで設定速度と現在速度をプロットする。ウィンドウ右の「Channels」で「Motor1 Setpoint」、「Motor1 Speed」を割り当てる。グラフの表示範囲から線がはみ出るときは横のScaleボタンを押す。
- Controlグループの「Motor1」のスライダーを動かして、モーターを駆動する。
- グラフビューをみて追従性を確認、場合によってはパラメーターを調整する。今回はM1/M2とも以下の数字に設定した。
項目 | 設定値 | 説明 |
---|---|---|
Velocity P | 2.2 | ほぼチューニングでの値 |
Velocity I | 0.5 | ほぼチューニングでの値 |
Velocity D | 0 | D制御は使わない |
QPPS | 8960 | 最大回転速度、2回転/秒 |
- M2(右側モーター)でも同様の作業を行う
- メニューバーの「Device」->「Write Settings」を押して設定をROMに書き込む。
外部信号によるRoboclawの動作確認
- Futaba受信機とRoboclawのポートをサーボケーブルで接続する。
Futaba送信機の対応する軸 | Futaba受信機のポート | Roboclawのポート |
---|---|---|
throttle(右スティック上下) | 2 | 1 |
pitch(左スティック上下) | 3 | 2 |
- Futaba送信機の電源を入れて、左右スティックを上下に動かすと、対応するモーターが駆動する。
参考
ArdupilotでのRoboclawの設定
Roboclaw AutoTuning