目次 — 知りたいところから読む
前提と読み方

前提知識 座標・速度・センサの基本用語。学習ガイドから前提記事を選べます。

入門 · 原理・構成・判断のための解説です。

ArduPilotは、ドローン専用の「自動操縦アプリ」ではない。飛行機(Plane)、マルチコプター(Copter)、地上車両(Rover)、潜水・ボート(ハイブリッド)まで、センサを読み、状態を推定し、アクチュエータへ指令を出し、異常時に安全状態へ移行する組み込みプラットフォームである。機体を飛ばす前に、推定・制御・通信・電源・地上局を一つの安全ケースとして理解することが重要だ。

機体点検に使われるSkydio X2Dドローン自律飛行機の実例

画像: Skydio X2D inspecting aircraft(Mauricio Campino, Public domain)、Wikimedia Commons。ArduPilot対応機そのものではなく、機上計算と自律飛行の用途を示す比較対象である。

30秒で分かる結論

  • ArduPilotはIMU、GNSS、磁気、気圧、距離センサをEKFで融合し、姿勢・速度・位置・バイアスを推定する。
  • Copterは推力配分と姿勢制御、Planeは空力とエネルギー管理、Roverは車輪・操舵と経路追従が中心で、同じパラメータを共有しない。
  • 内側の角速度・姿勢ループを高頻度で回し、外側の位置・速度・ミッションループが目標を生成する。PIDの符号と単位を実機で確認する。
  • MAVLinkは機体と地上局、コンピュータ、周辺機器を結ぶメッセージプロトコル。通信断、低電圧、GNSS喪失、ジオフェンス逸脱をフェイルセーフで扱う。
  • SITL、ログ再生、プロペラを外したベンチ試験、拘束試験、低高度試験を段階的に行う。シミュレーションが成功しても、実機の振動・電磁ノイズ・電源降下は別問題である。

1. アーキテクチャ

図1 · ボタンで表示を切り替え
ArduPilotのセンサ入力、EKF推定、制御器、ミキサ、機体、MAVLink通信の流れ IMU/GNSS/磁気/気圧/距離/電圧の各センサ出力がEKF3で姿勢・位置推定とバイアス・品質のinnovation検査に使われ、姿勢・速度制御からミキサ/出力を経てモータ・サーボを駆動する流れを示す図。 センサIMU / GNSS磁気 / 気圧距離 / 電圧 EKF3姿勢・位置推定バイアス・品質innovation検査 姿勢・速度制御 ミキサ / 出力 モータサーボ機体運動 MAVLink / GCS100–1000 Hzの推定と制御

図1 — センサをEKFで融合し、内側の姿勢・速度制御からミキサを経てモータ・サーボへ出力する。MAVLinkは地上局や外部コンピュータとの境界になる。

機体のメインループは、センサ取得、推定、制御、出力、通信、ログを一定周期で処理する。IMUの高周波データが姿勢を予測し、GNSSや磁気、気圧、外部ビジョンが低周波の補正を与える。推定品質が悪化したときは、制御器が目標を追い続けるのではなく、ホールド、帰還、着陸などの安全動作へ切り替える。

2. EKFによる状態推定

状態ベクトルの一例は位置p、速度v、姿勢R、ジャイロ・加速度バイアスb_g,b_aである。IMUで予測し、外部観測で更新する。

\dot p=v,\qquad \dot v=R(a_m-b_a-n_a)+g,
\dot R=R[\omega_m-b_g-n_g]_{\times}

ここでa_m,\omega_mは測定値、gは重力、[\cdot]_{\times}は外積行列である。EKFは共分散Pを伝播し、観測残差(innovation)が想定範囲を外れたらそのセンサを一時的に拒否する。磁気干渉やマルチパスGNSSをそのまま受け入れないための仕組みだ。

機体振動は加速度計へ高周波成分を加え、推定と制御を不安定にする。フレーム剛性、プロペラのバランス、ダンパ、フィルタ遅延を機械とソフトの両面で調整する。ログの振動スペクトルとEKFのinnovationを同じ時刻で見ると、原因を切り分けやすい。

3. Copter・Plane・Roverの制御

Copter

マルチコプターは、総推力Tと各モータの回転数で姿勢トルクを作る。近似的には

T=k_f\sum_i\omega_i^2,\qquad \tau_z=k_m(\omega_1^2-\omega_2^2+\cdots)

で、ミキサがロール・ピッチ・ヨー・スロットルの要求を各モータへ配分する。姿勢角ループの外側に速度・位置ループがあり、風や積載変化に合わせて推力余裕を監視する。

Plane

固定翼は翼の揚力と抗力、速度、迎角、エネルギー状態を使って飛ぶ。ロール角で旋回し、ピッチで速度・高度を調整するため、マルチコプターのゲインを流用できない。自動着陸は風、滑走路、センサの遅延を含む専用の試験が必要だ。

Rover

Roverは車輪速、操舵角、GNSS、コンパス、LiDARなどを融合し、ウェイポイントと速度を追従する。車輪滑りや坂道でDead Reckoningがずれるため、robotics-dead-reckoningの記事で扱うオドメトリと同様に共分散と再ローカライゼーションを設計する。

4. ミッションとMAVLink

ミッションはウェイポイント、速度、高度、撮影、着陸などのコマンド列である。MAVLinkは小さなバイナリメッセージで、心拍(HEARTBEAT)、位置、姿勢、パラメータ、ミッション、コマンド確認をやり取りする。UDPでSITLと地上局を接続し、実機では無線リンクの遅延・帯域・暗号化・認証を評価する。

ミッションを自動化するときは、コマンド受領を待たずに次へ進めない。ACK、タイムアウト、再送、キャンセル、電源再投入後の再開位置を定義する。地上局が切れても機体が安全に帰還・着陸できるよう、通信は制御の単一障害点にしない。

5. フェイルセーフと安全試験

低電圧、RCリンク断、GNSS品質低下、EKF異常、ジオフェンス逸脱、モータ故障を検出し、機体種別に応じた動作へ遷移する。Copterの「帰還」が安全とは限らず、強風・障害物・ホーム位置未確定なら着陸やホールドの方が適切な場合がある。閾値を設定したら、実際にその閾値を跨ぐ試験を低リスク環境で行う。

試験はSITL→ハードウェアインザループ→プロペラなし→拘束→低高度→運用高度の順で段階化する。電源を急に落とす、GNSSアンテナを遮蔽する、通信を切る、センサを一つ外すといった異常試験をログ付きで実施する。飛行許可、地域の航空法、プライバシー、電波法も技術要件の一部である。

6. パラメータを調整する順序

  1. センサの向き、キャリブレーション、時刻、電源電圧を確認する。
  2. 機体を固定し、ジャイロ・加速度・コンパスのバイアスと振動を測る。
  3. 姿勢内側ループを小さなゲインから調整し、飽和と発振を確認する。
  4. 速度・位置・高度ループを追加し、風と積載を変えて追従性を評価する。
  5. ミッション、フェイルセーフ、再起動、ログ取得を通しで試験する。

ゲインの数値を他の機体からコピーしても、プロペラ、慣性モーメント、推力余裕、サンプリング周期が違えば安定しない。ログで目標、実測、出力飽和、innovationを重ね、どのループが遅れを作っているかを確認する。

7. 最新の利用と研究

ArduPilotは、農業散布・測量・災害調査・研究用VTOL・自律ボートなど、機体の種類が多い分野で使われる。外部コンピュータからMAVLinkで目標を送り、ROS 2やコンピュータビジョンの推定を補助観測として取り込む構成もある。研究では、視覚航法、マルチセンサ故障診断、学習ベースの風推定、複数機協調が進むが、最終出力は既存の制限・フェイルセーフを通す設計が望ましい。

まとめ

ArduPilotの本質は、センサ融合、階層制御、ミッション実行、通信、フェイルセーフを組み込みで一体化していることだ。機体を動かすコードを書く前に、推定状態と座標系、制御周期、出力上限、異常時の遷移を仕様化する。SITLとログを活用し、実機では段階的な安全試験を行えば、オープンなソフトウェアを研究から実運用へつなげられる。

理解を確かめる
自動飛行は経路を入力するだけで成立する?

機体設定、推定、制御、フェイルセーフが連携する必要がある。経路計画と機体が指令を実行できる条件を分けて確認する。

参考資料

現在の項目 · 17 / 18 · ロボティクス入門

次に読む

前提を確認する油圧システム入門 — パスカルの原理からロボットの力制御までシリーズの次の内容へ進む群制御(マルチロボット)入門 — 群れ・隊列・合意形成の作り方同じ分野を別の観点から読むICPはなぜ失敗するのか