Ardupilot Roverの製作【7】Roverの基本的なモード

目次

Section 1

Roverの基本的なモード

この「Ardupilot Roverの製作」ブログシリーズでは、CC02 TAMIYA LAND CRUISER 40をベースにArdupilot Roverを製作した手順をまとめています。

前回まではArdupilot Rover設定の手順を紹介してきましたが、実際にモードを設定する前にArdupilotのRoverではどんなモードが使用できるのか把握しておきたいので、今回からは3回に分けてArdupilot Roverのモードを紹介したいと思います。

Ardupilotでコプターなど他のモデルタイプを作成した経験がある方にとって、聞き覚えがあるモードが多数登場すると思います。
しかし、モデルタイプによってモードの位置付けが多少変わってきますので、Ardupilot Roverでのモードとして改めて見ていく必要があります。

Ardupilotのドキュメントでは下記のページにまとめられています。
Rover Control Modes
https://ardupilot.org/rover/docs/rover-control-modes.html

上記のArdupilotのドキュメントの冒頭で3ポジションスイッチに設定するのに最適な組み合わせとしてHold、Manual、SteeringもしくはAutoの3つを割り当てるのが最適と紹介されています。

3番目のSteeringもしくはAutoの部分は、そのRoverの使用方法や目的に応じて他のモードがアサインされる可能性も高いものと思いますので、今回はArdupilotのRoverを初めて組み立て、走らせていく上でまず抑えておきたい基本的なモードとしてHold、Manualをピックアップします。

Section 2

Hold Mode

Hold Mode
https://ardupilot.org/rover/docs/hold-mode.html#hold-mode

Holdモードは名前の通り、ざっくり言えば動かないモードです。

厳密に言うとサーボとモーターへの出力がSERVOx_TRIMパラメータに保持されるモードと言う事なのですが、トリムによって調整された初期の値に保持され、RC入力されても動かないという状態になります。

つまりステアリングはまっすぐでどちらにも切られていない状態でかつ、モーターは動作しない状態で動かない、というモード。

動かないので、手動で制御するモードとも自立型とも分類しにくいのですが、自立的に動かない状態を保持していると言う点では自立型と言えるかもしれません。

一体何の為にこのモードが存在するかと言うと、Roverのアーム、ディスアームに最適なモードと言う事のようです。

マルチコプターの製作やDJIなどのドローンを使用した経験がある方は、アーム、ディスアームと聞いて、すんなり理解できるものと思いますが、恐らくRCカーに馴染みが深い方はなんの事か良くわからないかもしれません。

簡単に説明すると、特にマルチコプターなどは安全の為に電源を入れ、モーターが回って動作可能な状態になる間に、もう1段階「アーム」と言う段階を経る仕組みになっているものが多いです。

シンプルなRCカーやRCヘリ、固定翼機では、電源を入れたらサーボはRC入力に対応してすぐに動く状態になり、モーターであれエンジンであれ、動力も起動すればすぐに動く状態になるのが一般的かと思います。

しかし、Ardupilotはマルチコプターであれローバーであれ、電源を入れ、まずFCコントローラーが起動して諸々エラーチェック等を行い、その後アーム操作をして、アクチュエーターが動作すると言うのが全体的な流れとなります。

アクチュエーターの設定や種類で一部例外はあるものとは思いますが、自分も今回CC02 TAMIYA LAND CRUISER 40をシンプルなRCカーとして組み立てて少し遊んだ後にArdupilot のRoverに改造した為、「アーム」操作の必要性をすっかり忘れており、モーターを動作させるまで時間がかかりました。

RCカーとしての見た目はあまり変わらないのですが、FCが搭載されることでソフト的な内容は全然違うものになっていますので、当然使用する上での作法もわかってくると言うわけですね。

ちなみに、Ardupilotのアーム操作はスイッチを割り当てる他に、スティックコマンドからも行う事ができるのですが、コプターとローバーではスティックコマンドが異なります。

Arming / Disarming
https://ardupilot.org/rover/docs/arming-your-rover.html

ローバーのアームの方法は上記のドキュメントにも記載されていますが、Throttleがセンターの状態で、Roll(一般的にはステアリング)を最大限右に切ることでアームできます。

マルチコプターの場合、Throttleを一番下、Rollを最大限に右という組み合わせでアームしますが、ローバーの場合ESCの設定によってはThrottleが一番下だと、アームしたらすぐに全速力でバックしてしまう事が起こりうる為、マルチコプターとはアーミングコマンドが変更されているものと推測できます。

スティックコマンドでアームする場合、Holdモードを使用すればステアリングが最大右に切られた状態でスタートしてしまう事がない、と言う点でRoverのアーム、ディスアームに最適なモードと言えそうです。

Section 3

Manual Mode

Manual Mode
https://ardupilot.org/rover/docs/manual-mode.html#manual-mode

Manualモードはその名の通り手動モードで、プロポのステアリング スティックとスロットル スティックが車両のスロットルとステアリング出力を直接制御します。

つまり、FCを介さずに受信機から直接サーボとESCを制御しているのとほとんど変わらない状態となりますので、シンプルなRCカーと同じように使用したい場合や、車両としての動きを確認する際に最適なモードですね。

基本的にはGPSなどの自己位置推定なしで利用できるモードとの事です。

ドキュメントにリンクが貼られていますが、センサーによる地上速度の推定が必要になるものの、Steering angle speed scalingと言うオプションを適用できるようです。

この機能について少し調べたのですが、Ardupilotの下記のドキュメントにSteering Speed scalingという形で説明が記載されています。

Motor and Servo Configuration
https://ardupilot.org/rover/docs/rover-motor-and-servo-configuration.html

Steering angle speed scalingとSteering Speed scalingで表現が統一されていないのが気になるものの、ManualモードではMANUAL_OPTIONSのパラメーターで有効にできると言う記載自体は共通なので、恐らく同じ事かなと思います。

最新のファームウェアでは使用できないパラメーターのドキュメントが残っていたり、パラメーターの名前がバージョンによって変わったり、ドキュメントが書かれた時期によって表現が変わっていたりと言ったことはArdupilotやPX4のドキュメントには時折見られます。

ドキュメントも膨大な文章量がありますので、なかなか管理が難しいという側面もあると思いますし、自分の場合基本的には翻訳をかけて読んでいますので、日本語と英語でのニュアンスの差も出てきてしまうものと思います。

特にArdupilotやPX4については、調べて満足せずに、出来ると言われている機能が本当に利用可能なのか、どの程度のレベルで利用できるのかなど、とにかく実際に自分で試してみると言うことが非常に重要ですね。

Steering Speed scalingは、例えばローバーで早いスピードで前進している時に、最大にステアリングを切ると転んでしまう事がありますが、そういった事にならないよう、現在のスピードに応じてステアリング量を調整してくれるという機能です。

Steering Speed scalingは自立走行させる上で、自律走行時に転ばないように設定が必要になってくるのですが、それをManualモード時にも有効にできるオプションがあると言う形のようです。

また、MANUAL_STR_EXPOを設定することで、ステアリング入力のニュートラル付近の制御感度を下げる事もできると記載されています。

MANUAL_STR_EXPOについては、多くのプロポでも同じような設定が可能だと思いますので、必要であればプロポもしくはArdupilot側のどちらかで設定するのが良さそうです。

今回はRoverの基本的なモードとしてHold ModeとManual Modeを紹介しました。

今回製作しているCC02では、現時点でメインのモードスイッチにHoldモードとManualモードを設定しています。

Ardupilotのドキュメントでは特に区分はされていないのですが、以前にPX4の飛行モードをまとめた際に、手動と自立型の区分は個人的には非常に把握しやすかった為、次回は手動で制御する走行モード、さらにその次は自立型の走行モードという形にまとめ直して紹介して行きたいと思います。

ArdupilotRover

JACK によるブログ

DAYSCAPE ( DIYドローン オンラインショップ ) では、FPVドローン、産業開発ドローンの分野に関する商品の紹介やドローンの組み立て、使用方法などの情報発信を行っています。

ピックアップ

Holybro X500 V2 フレームキットHolybro X500 V2 フレームキット
HOLYBRO Holybro X500 V2 フレームキット
販売価格¥23,430
在庫あり
Holybro Pixhawk 6C MiniHolybro Pixhawk 6C Mini
HOLYBRO Holybro Pixhawk 6C Mini
販売価格¥21,340
在庫あり