環境
この記事は以下の環境で動いています。
項目 | 値 |
---|---|
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(以前の記事で設定済み)
- 駆動配線基板部材
手順
駆動配線上基板の作成
- 秋月の片面ユニバーサルC基板(4つ穴)で作ります。2つのモーターとXHコネクタの変換基板です。
駆動配線下基板の作成
- 秋月の片面ユニバーサルD基板(2つ穴)で作ります。Roboclawと接続する基板です。
下基板電源ケーブルの作成
下基板用の電源ケーブルです。
下基板側 | 電源側 | |
---|---|---|
XH2 | T型コネクタ | |
1 VCC | VCC | |
2 GND | GND |
モータードライバ接続ケーブルの作成
上基板側 | 下基板側 | |
---|---|---|
XH6 | None | |
1 M1A | 1 M1A | |
2 M1B | 2 M1B | |
3 VCC | 3 VCC | |
4 GND | 4 GND | |
5 M2B | 5 M2B | |
6 M2A | 6 M2A |
モーター接続ケーブルの作成
上基板と下基板のモーター配線を接続するものです。4Pあればよいですが、以下のエンコーダーケーブル(Pixhawk)と誤配線を防ぐために5Pにします。
上基板側 | 下基板側 | |
---|---|---|
XH5 | XH5 | |
1 M2A | 1 M2A | |
2 M2B | 2 M2B | |
3 M1A | 3 M1A | |
4 M1B | 4 M1B | |
5 | 5 |
エンコーダー接続ケーブル(Roboclaw)の作成
上基板側 | Roboclaw | |
---|---|---|
XH8 | 2550_8P | |
1 EN2B | 1 EN2- | |
2 EN2A | 2 EN2+ | |
3 EN1B | 3 EN1- | |
4 EN1A | 4 EN1+ | |
5 EN2GND | 5 - | |
6 EN2VCC | 6 - | |
7 EN1GND | 7 + | |
8 EN1VCC | 8 + |
バッテリーホルダーのケーブル加工
- T型コネクタを付け替えます。またケーブルは10cm程度に切ります。
バッテリースイッチケーブルの作成
- VCC_in -> SW -> VCC_out
- GND_in -> fuse -> GND_OUT
PowerDistributionBoardの配線、取付
- 入力出力用のケーブル・コネクタを取り付けます
用途 | in/out | コネクタ |
---|---|---|
バッテリー接続 | in | T型コネクタ |
YDlidar DCDC用 | out | T型コネクタ |
モータードライバ用 | out | T型コネクタ |
NUC用 | out | DCコネクタ(2.3mm) |
Towerモジュール用 | out | DCコネクタ(2.1mm) |
- Pixhawkの裏に強力両面テーブルで貼り付けます。
電源系・駆動系の接続
- 最終的に以下のような電気的接続になるように、ここまでで作った基板やケーブルを接続する。
- 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