目次
- テストフライトを行う順番と確認した内容
- Manual/Stabilized モードでのフライト
- MPC_THR_MIN
- Altitude モードでのフライト
- MPC_THR_HOVER
- Position モードでのフライト
- 電圧なし設定値の調整
- まとめ
Section 1
テストフライトを行う順番と確認した内容
組み立てから設定まで一通り紹介しましたが、いよいよテストフライトです。多くのプロジェクトでは、マルチコプターがまず飛ばないと始まらないため、基本的なマニュアル飛行ができる状態はスタート地点に近いと言えます。しかし、初めて扱うファームウェアの場合は慎重にテストを進めましょう。
今回実施したテストフライトの順番と確認内容は次の通りです:
- Manual/Stabilized モードでの飛行
- 基本的な設定に問題がないかどうか確認。
- MPC_THR_MIN の値が適切かどうか確認し、調整。
- Altitude モードでの飛行
- Manual/Stabilized モードで離陸し、フライト中に Altitude モードに変更。
- 次に、Altitude モードでの離陸から着陸までのフライトを実施。
- MPC_THR_HOVER の値が適切かどうか確認し、調整。
- Position モードでの飛行
- Manual/Stabilized モードで離陸し、フライト中に Altitudeモ ード、さらに Position モードへと変更。
- 次に、Position モードで離陸から着陸までのフライトを実施。
これらのテスト中はバッテリー警告が表示されたタイミングで着陸し、バッテリー残量を計測して電源設定の電圧なしの設定値を調整しました。
初フライトの場合、予期しない事態が起こる可能性があるため、いつでもEmergency Kill スイッチを押せるように心構えをし、機体がひっくり返ったりプロペラが割れて破片が飛んできた場合に備えて、安全距離を確保するなど、十分な安全対策を講じてテストに臨みましょう。
また、マニュアル要素が強いフライトモードの動作から確認していき、オート要素を増やしたタイミングで問題があった場合にすぐ確認済みのフライトモードへ戻せるように工夫する事で事故を減らす事ができると思います。
Section 2
Manual/Stabilized モードでのフライト
まず使用するバッテリーが充分に充電されている事やネジの緩みがないか、プロペラが正しい方向でしっかり取り付けられているかなど基本的なことを確認してから、バッテリーを接続し、機体の起動を確認します。
機体の起動についてはMK15EなどQGCの画面が見られるプロポを使用している場合、QGCの画面に機体の状態が表示されますので、その情報を確認するのが最も確実です。
今回使用している機体にはGPSモジュールにLEDインジケーターがついており、LEDの色と点滅で機体の状況がある程度わかるようになっています。
LEDの色と機体の状況について詳細は下記のページをご覧ください。
LED Meanings (Pixhawk Series)
https://docs.px4.io/main/en/getting_started/led_meanings.html
続いて、慎重にアーミングジェスチャでアームし、スロットルスティックを上げて離陸します。
全体としては無事に飛行が確認できました。
初めは少しずつ、徐々に大きくしていき、最後はスティックの端まで前後左右に振っても、挙動はそこまで悪くないかなという印象です。
X500やS500はDIYドローンとしては比較的古くから一般的なサイズである上に、PX4では近いフレームのプリセットまであったので、基本的なところはほとんど完成しているのかも知れません。
しかし、初フライトで以下の2点が気になりました。
- アーム時、プロペラが回転し始めるのがわずかに遅いものがあった。
- ホバリング時、スロットルセンター位置で高度がやや下がる。
この2点は Ardupilot や INAV でも調整が必要なポイントですので、特に注意していました。
関連するパラメーターを事前に調べており、せっかくなので調整しようと考えましたが、気にしない方は気にならない位の問題かなと思います。
アーム時のプロペラ回転のタイミングのズレについては、ほとんどの場合問題にならないと思われる程度でしたので、パラメーターを少し調整して改善しなければ、そのままでも良いかという印象。
高度がやや下がる点については、Manual/Stabilized モードでは高度が上下するのは当然ですが、スロットルセンター位置の出力がホバリングに必要な出力よりやや低い印象を受けました。
ただし、Altitude モードで高度が安定するなら問題ないと範囲と考えられるので、パラメーターを変更するのは Altitude モードを試してからが良いと判断しました。
Section 3
MPC_THR_MIN
PX4の表に出ていない設定はパラメーターから設定できます。
パラメーターはかなり色々あるのですが、詳細は下記のページにまとまっています。
Parameter Reference
https://docs.px4.io/main/en/advanced_config/parameter_reference.html
パラメーターの変更方法は、QGCの機体設定からパラメーターを選択するとパラメーターの設定画面が表示されます。
ここではカテゴリーごとに整理されていますので、カテゴリーから探すか、既にパラメーター名を把握している場合は検索ボックスを使用して目的のパラメーターを見つけることができます。
MPC_THR_MIN は、Rateコントロールモードでの最小集合推力を設定するパラメーターで、スロットル最小時にどのくらいモーターを回すかに関わる設定と思われます。
Parameter Reference ではエアモードが設定されていない機体で飛行中に推力が低下した際、制御権限が失われることを防ぐための設定として紹介されています。
目的は異なりますが、モーターによっては回転開始に必要なパワーが異なるため、MPC_THR_MIN の値を上げることで回転開始時の安定性を向上させることができると考えました。
モーターはものによって回転開始に必要なパワーが違いますので、このMPC_THR_MIN の値をあげる事で回転開始時に多少安定するのではないかと予想しました。
デフォルト値は12%ですが、今回は15%まで段階的に値を上げました。
その結果、モーター回転開始時のタイミングのズレが解消されたと感じましたが、元々そこまでズレていなかったので気持ちの問題かも知れません。
Section 4
Altitude モードでの飛行
MPC_THR_MIN の設定を変更しつつ、Altitude モードのテストも行いました。
まず、Manual/Stabilized モードで離陸し、飛行中に Altitude モードに変更して問題ないことを確認しました。
この機体では主に気圧高度計を使って高度を維持していると考えられます。
風が吹いたり大きく動かしたりすると多少上下しますが、搭載しているセンサーを考慮すると許容範囲内です。
続いて、Altitude モードでの離陸から着陸までをテストし、特に問題は見られませんでした。
Section 5
MPC_THR_HOVER
初めのフライトでは保留にしていた MPC_THR_HOVER の調整を行いました。
MPC_THR_HOVER はホバリングに必要な垂直推力を設定するパラメーターです。Parameter Reference によれば、Stabilized モードではこの設定値が中央のスロットルスティックにマッピングされ、高度制御におけるゼロ垂直加速度の基準として使用されます。
初めのフライトで Altitude モードはそれほど悪くはありませんでしたが、MPC_THR_HOVER を調整することでさらに改善できると考えました。
パラメーターの変更方法は先程と同じです。
MPC_THR_HOVER のデフォルト値50%を少しずつ変更し、最終的に54%に設定しました。
肝心な Altitude モードではほとんど変化を感じませんでしたが、Manual/Stabilized モードではスロットルの中央位置がかなり改善されました。
特にスロットルスティックを下げたときの推力の減衰が大きいため、MPC_THR_CURVE も合わせて調整すると、さらに使いやすくなると思いますが、今回はその作業までは行いませんでした。
Section 6
Position モードでのフライト
最後に Position モードをテストしました。Position モードではGPS情報が必要なので、QGC画面やインジケーターLEDを確認して Position モードで飛行可能かどうかを確認する必要があります。
まず、Manual/Stabilized モードで離陸し、フライト中に Altitude モード、さらにPosition モードへと段階的に変更しました。
最終的に、Position モードで離陸から着陸まで一通りの飛行を試しました。
完全に静止するわけではなく、多少のふらつきはありましたが、これはGPSの受信状況によるものと思われます。
動作の雰囲気としてはDJIの Phantom3 くらいの世代のイメージです。
Position モードでも特に問題なく安定した飛行ができたので、一旦今回の目標は達成したと言えます。
Section 7
電圧なし設定値の調整
上記のテストフライトの間に、バッテリーの設定も調整していました。
今回の設定では、バッテリー残量が40%になったタイミングでバッテリー警告が出るようにしています。
そのため、警告が出たら速やかに着陸し、バッテリー残量が40%付近になるように調整することが目標です。
初めのフライトでは、電圧なし設定をデフォルトの3.6Vのままで行い、着陸後のバッテリー残量は46%でした。
次に、電圧なし設定を3.55Vに変更してテストしたところ、着陸後のバッテリー残量は31%となり、40%に近づけるにはデフォルト設定のほうが良い結果でした。
さらに、設定を3.58Vに変更して再度テストしたところ、残量は34%でした。
持っている 4S 5000mAh のバッテリーは3本だけだったため、これでテストは終了しましたが、これらの結果から考えると、電圧なしの設定は3.59Vあたりが良さそうです。
しかし、各フライトの内容が異なったことや、1本目のバッテリーが古くてコンディションが悪かったことも影響している可能性があるため、安全を優先してデフォルトの3.6Vのままにするのも良い選択だと思います。
電圧だけでバッテリー残量を推定するには限界がありますので、これくらいの誤差で済んでいるのであれば優秀と言えるでしょう。
さらに精度を求めるなら、電源設定でより詳細な設定を行い計算方法を見直す必要があると思います。
Section 8
まとめ
今回は、ベーシックな機体で特別な設定を行わずに、比較的スムーズに飛行できるところまで紹介しました。
ここまで来てようやく、以下のような次のステップが見えてきます。
- PIDやフィルターの調整を追求するなどして、飛行性能を研究する
- カメラを搭載して空撮を楽しむ
- 追加のセンサーを取り付けて機能を拡張する
- この機体はパラメーターの確認用にして、別のフレームを試してみる
PX4で初めて機体を作成する場合、HolybroのX500やS500フレームはプリセットがあるため非常におすすめです。
PX4の素晴らしい点は、QGCの画面上で標準的な設定がわかりやすく表示されることです。マルチコプターを制御するオープンソースのファームウェアはいくつもありますが、これほど設定画面が綺麗にまとまっているものは、QGCとPX4の組み合わせ以外にはないでしょう。
ただし、標準的なマルチコプターの設定には便利ですが、Ardupilot と比較すると対応デバイスが限られており、少し凝ったことをしようとすると開発が必要になることが多いような印象を受けます。
また、ドキュメントは整理されていますが、全てがわかりやすいわけではなく、日本語の情報も少ないため、つまずいて時間がかかることもあるかもしれません。
使用目的や好み、使用者のスキルによって、簡単に良し悪しを判断することはできませんが、オリジナルの機体を作成・開発する上で強力なツールの一つであると言えるでしょう。
当初、この機体を Ardupilot に変更し、Ardupilot 版の設定記事を書くつもりでしたが、ドキュメントを読んでいると気になる設定や試してみたいデバイスが出てきたため、もう少しPX4を使って色々試してみたいと考えています。
この機体を使用したブログシリーズは、Pixhawk での機体製作から2年以上かけて、ここで一旦完結となります。この機体は継続して使っていく予定なので、今後も追加情報を共有していきたいと思います。