【iNavFlight入門④】iNavFlightの設定<3>

iNavFlightの設定 Advanced Tuning:Multirotors、Programming、Receiver、Modes

前回に引き続きiNavFlightの設定タブを紹介したいと思います。
【iNavFlight入門④】ではAdvanced Tuning:Multirotors、Programming、Receiver、Modesの4つのタブを見ていきましょう。

今回は主にAdvanced TuningタブのRTH詳細設定と、Modesタブを詳しく見ていきたいと思います。

RTHの詳細設定はRTHを利用するなら安全の為にしっかり理解しておきたいところ。

Modesタブの設定方法自体はBetaflightやemuflightと同じなのでこの手のマルチコプターをDIYしている方には操作方法に疑問はないかと思うのですが、INAV特有のモードがあり、これは知識がないと何を設定したら良いかわからないです。
Modesタブに関しては用語の意味がわからなくなって自分も混乱したので、ここも確認しておきましょう。

Advanced Tuning:Multirotors

Advanced Tuning:Multirotors

ここでは主にナビゲーションモードに機体が設定されている時の細かい設定ができます。

Advanced Tuning:Multirotorsとなっているので、固定翼などでは項目が変わるのかも知れません。

そもそもナビゲーションモードとは?

下記のURLでINAVのナビゲーションモードについて紹介されています。
https://github.com/iNavFlight/inav/wiki/Navigation-modes

DIYドローンを楽しむ方の多くが、どこかで聞き覚えのあると思われる「ナビゲーションフライトモード」という言葉なのですが、INAVというファームウェアを利用する場合、具体的には下記の7つのモードがナビゲーションフライトモードにあたるようです。

NAV ALTHOLD
NAV POSHOLD
NAV COURSE HOLD
NAV COUISE
NAV RTH
NAV WP
GCS NAV

上記モードの中でマルチコプターでよく使いそうなものは、後ほどModesタブのところで詳しく見ていきたいと思います。

全体として、機体の水平方向もしくは垂直方向の位置を保持する補助機能が有効化されるものがナビゲーションモードと呼ばれるようです。

RTHの詳細設定

RTHの詳細設定もAdvanced Tuning タブにあり、しっかり理解すれば自動制御になった時の機体の動きが把握できそうですね。

公式ドキュメントにも詳しい解説があったので下記のURLもご参照ください。
https://github.com/iNavFlight/inav/wiki/Navigation-Mode:-Return-to-Home

公式ドキュメントの画像が非常にわかりやすかったので、合わせて紹介したいと思います。

自動制御というのはなんでもそうだと思うのですが、間違って設定されていると非常に危険なので、Generic settingsのRTH settingsについて少し詳しく見てみましょう。

RTH settings

RTH altitude mode

これは直訳するとRTHの高度モードという事になるかと思います。

選択肢としてはCURRENT、EXTRA、FIXED、MAX、AT_LEAST、AT_LEAST_LINEAR_DESCENTの6つの中から選択する形。
ここはしっかり全てのモードを見ていきましょう。

CURRENT

CURRENTは現在飛行している高度で戻って来るモードとの事。

RTHがトリガーされた高度でそのまま戻ってくる形になるようなので、安全の為にはホームポイントと機体との間にある障害物よりも常に高い位置を飛行している前提となりそうですね。

CURRENT

RTH altitude modeのすぐ下に設定があるRTH altitude[cm]はRTH altitude modeで何を選択するかによって有効になったり、数値の意味合いが変わるとの事ですが、CURRENTを選択した場合は無視されます。

RTH altitude

RTH altitude[cm]はデフォルトで1000cm=10mに設定されています。

EXTRA

EXTRAは現在飛行している高度に加えて、RTH altitude[cm]で入力した分さらに上昇して戻ってくるモード。

もし地形的にはほとんど平坦で、周囲の障害物の高さがわかっている場合は、RTH altitudeに障害物の高さを入れておけば、かなり安全に帰ってくる事ができそうです。
ただし、そもそも障害物の付近の標高が高くなっている場合は、場合によりぶつかってしまうかも知れません。

EXTRA

FIXED

FIXEDは固定という事ですね。
RTH altitude[cm]で設定した高度で帰ってくるモード。

この高度というのはホームポイントを0とした場合になるようです。

また、もしRTHがトリガーされた時の高度が設定値よりも高い場合は、機体が向きを変えて、RTH altitude[cm]で設定した高度まで、なだらかに下降しながら戻ってくるとの事。

ちょっとまだ試していないのですが、ドキュメントを読む限りRTH altitude[cm]よりも低い高度でトリガーされた場合は機体の向きが変わらないような感じですね。

この設定は帰ってくる高度が、RTHがトリガーされた時の高度に依存しないので、絶対に安全と考えられる高度がはじめからわかっているなら、非常に安全性が高いように思います。

FIXED

MAX

MAXはその飛行で飛んだ最高高度で戻ってくるというモード。

RTH altitude[cm]の数値は無視されます。

場所によってわざわざ設定を変更しなくても良いので、管理しやすく、飛行方法によっては比較的安全性も高いのではないかと思います。
ただし、木の下をスイスイ前進し続けた後にフェイルセーフでRTHがトリガーされるといった状況では全然役に立たないというわけですね。

MAX

AT_LEAST

AT_LEASTはRTHがトリガーされた時の高度によって動作が変わるというモードで、ちょっと複雑です。

RTH altitude[cm]で設定した高度よりも高い高度でRTHがトリガーされた場合、その高度で帰って来ます。

逆に、RTH altitude[cm]で設定した高度よりも低い高度でRTHがトリガーされた場合、RTH altitude[cm]で設定した高度まで上昇してから帰ってくるようです。

ほぼ平坦で基本的障害物よりも高い位置を飛行する場合、基本的にはCURRENTでも良いと考えられますが、AT_LEASTに設定してRTH altitude[cm]に余裕を持って障害物の高さを設定しておけば、より安全かも知れません。

AT_LEAST

AT_LEAST_LINEAR_DESCENT

AT_LEAST_LINEAR_DESCENTはAT_LEASTにかなり近いのですが、RTH altitude[cm]で設定した高度よりも低い高度でRTHがトリガーされた場合、AT_LEASTと同じでRTH altitude[cm]で設定した高度まで上昇してから帰ってきます。

AT_LEASTと異なるのはRTH altitude[cm]で設定した高度よりも高い高度でRTHがトリガーされた場合のほうで、その場合機体は向きを変え、ホームポイント上空、RTH altitude[cm]で設定した高度を目標に緩やかに下降しながら帰ってくる事でバッテリーを節約できるとの事。

AT_LEAST_LINEAR_DESCENT

色々あって迷ってしまいますね。

結局、場所や飛ばし方でどれが良い、悪いは変わって来そうです。
その機体の飛ばし方や目的に合わせてRTH altitude modeを選んで、場所に応じてRTH altitude[cm]をしっかり確認して置く事が安全につながりそうですね。
何よりも、どのモードに設定しているか忘れずに、常に把握している事が非常に重要になりそうです。

RTH altitude modeについて長くなってしまったのですが、引き続きその後に並んでいる設定も確認しておきましょう。

RTH Home altitude [cm]

ホームポイントに着陸しないときに使用されます。ホームに到着すると、飛行機は徘徊し、高度をRTHホーム高度に変更します。デフォルトは0で、機能は無効になっています。

上記はコンフィギュレーターの?マークの解説を翻訳しました。

つまり、何かしらの都合で着陸したくない場合の設定する項目で、デフォルト0は無効。
RTHの最後、着陸せずに、ホームポイント上空の設定した高度でホバリングする設定のようです。

Climb before RTH

"ONまたはON_FW_SPIRALに設定されている場合は、最初にnav_rth_altitudeまで上昇してから帰還し、OFFに設定されている場合は、直ちに旋回して帰還します。

固定ウイングの場合、ON_FW_SPIRALはlinear climbingを使用し、ON_FW_SPIRALは、nav_auto_climb_rateで設定された上昇率とnav_fw_loiter_radiusで設定された旋回率を使用して、より緩やかな旋回上昇を使用します (ON_FW_SPIRALは固定ウイングの設定であり、マルチローターのONと同じ動作をします) 。"

こちらも上記はコンフィギュレーターの?マークの解説の翻訳です。

Climb before RTHがONになっていないとRTH altitude[cm]を設定しても上昇してくれないようですね。
ON、ON_FW_SPIRAL、OFFの3つが選択できますが、マルチコプタータイプの場合はONかOFFのどちらかでよく、デフォルトでONになっていますが、基本的にはONを選択する形になると思います。

Climb regardless of position sensors health

こちらは直訳すると”位置センサーの健康状態に関係なく登る”となるかと思います。

少し調べただけでは詳しい情報が見つからなかったのですが、RTHがトリガーされた時にGPS情報で位置が特定できない状況でもとりあえず上昇するというオプションのように思えますね。

もし上記の解釈で正しかった場合、上昇すると当然GPSを受けやすくなるので良いかと思うのですが、ふらふらしながらモーター回転は上がっていくので、障害物が多い場所だと逆に危険とも言えそうです。

この設定に関しては、詳しい事がわかり次第追記したいと思います。

Override RTH altitude and climb setting with roll/pitch stick

"オンにすると、1秒以上のフルピッチダウンでRTHへの上昇をキャンセルし、現在の高度で機体が帰還するようにすることができる。固定翼機では、左または右へのフルロールを1秒以上保持することで、「RTHの前に登る 」の設定を飛行機がすぐに家に向かうように、上書きできます。"

こちらも上記はコンフィギュレーターの?マークの解説の翻訳です。

RTHの初めの上昇する動作を、スティック操作によってキャンセルするオプションみたいですね。

安全が確認されている場合で、バッテリーの残量が心配な場合は有効に思えますが、コントロール信号が切れてRTHがトリガーされた場合には、どのみちこの指示も伝わらないように思えます。

アクティブにするにしても、しないにしても、どちらにしたかしっかり覚えておく事が重要になりそうですね。

Tail first

こちらに関しては下記のドキュメントのnav_rth_tail_firstを参照しました。
https://github.com/iNavFlight/inav/blob/master/docs/Failsafe.md

この設定はマルチローターのみに適応されるオプションで、オフの場合は基本的にホームポジションに機首を向けてホームポイントに戻る、オンの場合は機尾を向けてホームポイントに戻るというもののようです。

ただし、オフのままRTH altitude modeをAT_LEASTに設定し、RTH altitude[cm]で設定した高度以下でRTHをトリガーしてテストした際には機尾を向けてホームポイントに戻って来るようでした。

まだそんなに回数テスト出来ていないのでなんとも言えませんが、オンにするとRTH altitude modeで機首方向をホームポイントにむける動作がキャンセルされるといった解釈の方が正しいかも知れません。

Land after RTH

こちらも詳しい情報をまだ見つけられていないのですが、意味としてはRTH後の着陸という事だと思います。

選択肢としては

NEVER : 一切しない
ALWAYS : 常にする
FS_ONLY : FSの時だけ

という形でしょうか。

実際の運用上、RTHで着陸するまでじっと待っている事は少なく、信号が回復したら手動に切り替える場合がほとんどなのではないかと思います。

特に固定翼では着陸が非常に危険な瞬間になるはずなので、着陸までは自動でさせないオプションのようですね。

すでに紹介しているRTH Home altitude [cm]をあわせて設定する必要がありそうですが、もし詳細がわかったらこちらも追記したいと思います。

Min. RTH distance [cm]

"UAVがホームポイントからこの距離内にある場合、RTHしてから着陸する代わりに、着陸します。"

上記も?マークの翻訳です。

最小RTH距離の設定で、この設定値以下だとRTHせずに着陸するという感じでしょうか。
デフォルトが500[cm]ですが、ホームポイントに近すぎるとそのまま着陸するということを覚えておけば、大体の場合それで大丈夫な気がしますね。

RTH abort threshold [cm]

"RTHの健全性チェック機能は、RTH中に自宅までの距離が増加しているかどうかを認識し、このパラメーターで定義されたしきい値を超えている場合は、RTHを継続する代わりに、UAVが緊急着陸します。デフォルトは500mで、マルチローターと飛行機の両方にとって十分安全です。"

上記も?マークの翻訳です。

 あまり遠くに行き過ぎた場合、RTHせずに緊急着陸するという距離の設定で、500m以上遠くに飛ばす予定があるなら変更しておいた方が良さそうですね。

まだまだ盛りだくさんのAdvanced Tuning: Multirotors

RTHは今回特に注目した機能だったので細かく見ていきましたが、このタブには主にナビゲーションフライトモードに関する詳細設定が詰まっているようです。

今回はRTH周りの設定でかなりの分量になってしまったので他は割愛しますが、特にスロットルがセンターロックのプロポを使用したい場合のホバースロットル値だったり、ナビゲーションモードで動作スピードなどの詳細設定も見られるので、ナビゲーションモードの動作に不満を感じたら、このタブをチェックすると良さそうです。

Programmingタブ

Programming

Programming_2

ここでは、何かしらプログラミングができるようなのですが、自分はできないのでちょっとよくわかりませんでした。

下記のURLにドキュメントがありましたので、トライしてみたい方は是非ご参考ください。
https://github.com/iNavFlight/inav/blob/master/docs/Programming%20Framework.md

Receiver タブ

Receiver

Receiverタブでは入力されたRC信号の状況を確認する事ができ、エンドポイントなどの設定に役立ちます。

また、プロトコルの選択やスロットルカーブの設定、さらにRC Expo関連の設定もここにあり、プロポが深く関連する項目はここにまとめられているようです。

ACROフライトを楽しみたいならここも要チェックという事になるのですが、今回はちらっと見るだけで先に進めてしまいたいと思います。

Modesタブ

Modes

Modesタブのインターフェース自体はBetaflightと共通で、設定方法もBetaflightと同様です。

ここではプロポのスイッチに機能を割り当てる事ができます。

ただ、INAV特有のモードがあるので、理解が必要になります。

今回マルチコプターで組み立てたので、マルチコプターで選択出来て、よく使いそうなModesタブの項目を調べてみました。詳しくは下記のURLも合わせてごご参照ください。

非ナビゲーションモード
https://github.com/iNavFlight/inav/wiki/Modes

ナビゲーションモード
https://github.com/iNavFlight/inav/wiki/Navigation-modes

デフォルト/STABILIZED (RATE MODE)

"これはINAVのデフォルトモードです。他の単一もしくは複数フライトモードを追加しない場合、これは常にアクティブです。これは、マルチコプターのアクロモードに似ています。 
パイロットによるスティック入力がない場合は、INAVは常に飛行機の現在の姿勢を維持しようとします。"

いわゆるACRO MODEと同じ感じの理解で良さそうですね。何も選択しなければ、BetaFlightと同じ感じのようです。

ARM

これはアーム(モーター回転)スイッチを割り当てます。

PREARM

これは安全対策としてPREARMとARMを2段階でアクティブにしないとモーターが回らない設定に使用するようです。

プロポ側で工夫すればある程度の安全対策も可能と思いますが、コンフィギュレーター上で設定出来るなら楽かも知れませんね。

PREAEMはINAV3.0で追加されたもののようです。

ANGLE

”ANGLEモードでは、制御はレート制御から角度制御に変わります。スティック入力がない場合、常に機体を水平に保ちます。ロールまたはピッチのスティック入力がある場合、それはスティックの動きに対して角度を変更します。最大スティック移動では、飛行機はファームウェアで設定されている範囲でのみピッチングまたはロールします。高さとスロットルの自動制御はありません、パイロットはそれを認識する必要があります。ヨー軸はまだレート制御モードにあり、安定しているだけです。”

ANGLE MODEはBetaFlightのものと同じかなと思います。

HORIZON

”HORIZONモードはANGLEモードと非常によく似ています。唯一の違いは、特定のスティック入力の量でHORIZONモードは自動的にレートコントロールに移行します。パイロットはロールとループを行うことができますが、スティックがこのしきい値を下回っている場合、飛行機は角度制御に戻ります。”

HORIZON MODEもBetaFlightと同じですね。

NAV RTH 

”RTHは、ヘリコプター/飛行機を離陸位置に移動しようとします。離陸位置は、航空機がアームした地点として定義されます。RTHは位置と高度の両方を制御します。航空機に高度センサー(気圧計)がない場合は、手動で高度を制御する必要があります。デフォルト設定では、離陸位置から5メートル以内にいると、RTHはすぐに着陸します。
さらに離れている場合は、少なくとも10メートルの高度があることを確認してから、3 m / sで帰宅し、着陸します。そのように構成されている場合はそれ自体がアーム解除されます。そうでない場合は、地上で一度手動でアーム解除する必要があります。高度にはさまざまなモードがあります。”

”詳細については下記を参照してください。”
https://github.com/iNavFlight/inav/wiki/Navigation-Mode:-Return-to-Home#rth-altitude-control-modes

RTHに関する設定も詳細なドキュメントがあり、なかなか丁寧です。

NAV POSHOLD

”マルチローターの場合、3D位置を保持し、スロットルは自動(ALTHOLD)です。
ロールスティックとピッチスティックを使用して移動できます。
ロール/ピッチスティックを再び中央に置くと、位置保持が再開されます。
同時にHEADINGHOLDを有効にすると機首をロックすることもできます。”

これがDJIでいうところのGPSモードのような感じに近いのですが、厳密にいうともう少し限定的ですね。

HEDING HOLD

”この飛行モードはヨー軸にのみ影響し、他の飛行モードと一緒に有効にすることができます。パイロットの入力なしで現在の方位を維持するのに役立ち、磁力計のサポートの有無にかかわらず使用できます。ヨースティックがニュートラル位置にある場合、ヘディングホールドモードは、定義された方向に機首(コンパスセンサーが使用可能な場合は方位角)を維持しようとします。パイロットがヨースティックを動かすと、ヘディングホールドは一時的に無効になり、新しいセットポイントを待機します。”

HEDING HOLDも合わせて有効にしないと、NAV POSHOLDだけでは機首のロックは考慮されていないと言うことのようですね。

テストした範囲では、じんわりどちらかに回転していき、たまに気づいたようにキュッと元の向きに戻るという挙動も見られました。

これは方位磁石のコンディションが悪かった可能性もあるのですが、有効にするかどうかもう少しテストして検討したいと思っています。

NAV WP

”自律ウェイポイントミッション

自律ウェイポイントは、クワッド/飛行機が事前定義されたミッションを自律飛行できるようにするために使用されます。

ミッションは、ウェイポイント間の緯度、経度、高さ、速度に関する情報を持つウェイポイントで定義されます。

EZ-GUI、Mission Planner for iNav、Mobile Flight、mwpなどのGUIを使用して、ウェイポイントを設定し、ミッションをアップロードしたり、ミッションをローカルに保存して再利用したりできます(少なくともexgui、mp4iNav、mwpなど)。

iNav configuratorでは、ウェイポイントミッションを作成する機能が制限されています。アップロードされたミッションは、再起動するか、新しくアップロードされたミッションが古いミッションを消去するまで、FCに保存されます。

ミッションはEEPROMに保存することもでき、再起動後も存続します。

ウェイポイントモードがアクティブになると(NAV WPは、モードタブで特定のスイッチ/値に事前に設定する必要があります)、クワッド/飛行機は、番号順にウェイポイントに基づいてウェイポイントミッションの飛行を開始します。

ウェイポイントミッションは、NAVWPをオフ/オンに切り替えることで再開できます。NAV WPをオフにすると、ミッション中の中断も可能です。

現在、F1ボードには最大30のウェイポイントを設定でき、F3以上には60のウェイポイントを設定できます。”

ACROフライトや手動操縦にそこまで興味がないユーザーにとって、逆にこの辺りが興味深い機能になりそうです。

今回は自律ウェイポイントミッションはやらなかったのですが、研究したい方は是非下記のページもご参考ください。
https://github.com/iNavFlight/inav/wiki/iNavFlight-Missions

TURTLE

タートルモード。

これはINAV3.0から利用可能になったようですが、BetaflightやEmuFlightの場合と同じように、クラッシュ後にひっくり返った機体を起き上がらせるモードです。

TURN ASSIST

”通常、YAWスティックは機体の垂直軸を中心に回転します。これが、RATEで前方に飛行し、YAWのみを使用して180度回転すると、上を向いて後方に飛行することになります。ANGLEモードでは、これは、ターンがスムーズでないピロウエッティングと呼ばれる効果も引き起こし、水平線が維持されません。

RATEモードでは、パイロットはROLLスティックとYAWスティックの両方を使用して回転を調整し、姿勢を維持することでこの効果を補正しました(水平線)。

TURN ASSISTANTモードは、調整されたYAWターンを効果的に維持するために必要なこの追加のROLLコマンドを計算し、YAWスティックが地面に対して垂直軸を中心に航空機を回転させます。

RATEモードでは、機械の姿勢を変えることなく、完璧なヨースティックを回転させるだけです。PID制御の即時応答がないため、わずかなドリフトがある可能性がありますが、それでもRATEモードの初心者のパイロットははるかに簡単です。

ANGLEモードでは、ヨーターンがスムーズになり、ピルエットが完全になくなります。これは、TURN ASSISTがピッチ/ロールにフィードフォワード制御を導入し、自然に遅延なく姿勢を維持するためです。

INAV 1.7から、ターンアシストは1つのプレーンで機能し、プルリクエストからペーストをコピーします。

これにより、飛行機のTURN_ASSIST飛行モードが拡張されます。飛行機でターンを行うと、飛行機が水平線を向くようにするために必要なヨーとピッチレートが計算されます。

利用可能な場合、TAS(対気速度センサーから)が計算に使用されます。それ以外の場合、コードはfw_reference_airspeedで定義された巡航対気速度を使用します。”

FPV ANGLE MIXに近い感じでしょうか。
自分にはちょっと良くわからなかったのですが、ご興味ある方は是非試してみてください。

MC BRAKING

ブレーキモードとも呼ばれるようで、スティックを離してもまだ機体が流れている場合に有効にすると機体がその場で停止するようです。

結構トラブルの記事も上がっているので、慎重にテストするのが良いかも知れません。

まだまだ選択出来る項目はあるのですが、目新しいものや、良く使いそうなものはこんな感じでしょうか。

続きは次回をお楽しみに

今回は主にRTHの詳細設定とフライトモードに関して詳しく見て来ましたが、固定翼向けの機能も含まれているので、自分が作っている機体で必要な設定をしっかり抑えていく事で随分理解しやすくなるのではないかと思いました。

すでに時間を見つけてテストフライトを重ねているのですが、なかなか面白く、ACROフライトに関してもナビゲーションフライトに関しても、調べたら次々試してみたい事が増えていくような、奥深いファームウェアとなっています。

今回作成した機体もなかなかバランスが取れており、結構Armattan Bobcatのフレーム自体の良さからくるものもありそうな感じがするので、もう少しパワーのあるモーターで組んでみるのも面白そうです。

次回は残りのAdjustments、GPS、Mission Control、OSD、LED Strip、Sensors、Tethered Logging、Blackbox、CLIタブを紹介します。

次回でArmattan Bobcatを使用したINAV入門シリーズは完結になる予定なのですが、少し細かく紹介するのはOSDタブのみで、他は軽く見ておく程度になりそうです。

その代わりに、実際にテストフライトを行った際に気づいた注意点などをまとめたいと思います。

 

ArmattanInavflight

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
在庫あり