トピックハブ

空中ロボットとフィールドロボット

空中、水上、農場、軌道上で働くロボット。マルチロータの動力学とカスケード制御、PX4・ArduPilotのオートパイロットとMAVLink、そしてロボットが工場の外に出ると何が変わるかを扱います。

更新 2026年11月14日 · マルチロータ、クアッドロータ、微分平坦性、ミニマムスナップ、PX4、ArduPilot、MAVLink、uXRCE-DDS、海洋ロボット、農業ロボット、宇宙ロボット、点検

概要

フィールドロボットは、管理された建物の外で働きます。空中、海上、農場、パイプライン沿い、そして軌道上です。こうしたロボットには、工場のロボットがほとんど直面しない共通の課題があります。位置の把握はGNSSに頼りますが、GNSSは屋内、水中、高い構造物の近くでは機能しません。天候、波、粉じんが動力学を変えます。通信リンクは遅く、途切れることもあるため、ロボットは自ら適切に判断して動く必要があります。こうしたロボットの多くは、航空や海事の法規の対象になります。このページでは、オープンなオートパイロットスタックが多くのエンジニアの出発点であることから、マルチロータのドローンを最も詳しく扱い、その後でフィールドロボット全般を取り上げます。

重要な考え方

マルチロータの動力学と制御

各ロータは、回転速度のほぼ2乗に比例する推力を機体z軸方向に発生させ、同じ軸まわりに反トルクを生じます。クアッドロータの入力は4つのロータ回転速度で、運動は6 自由度(DoF)です。つまり劣駆動系です。横に移動するにはまず機体を傾ける必要があるため、位置制御は姿勢を介して行わなければなりません。Mahony、Kumar、Corke(2012)は、モデル、推定、制御についてわかりやすいチュートリアルを示しています。MellingerとKumar(2011)は、クアッドロータが位置とヨー角という4つの出力について微分平坦であることを示しました。これらの出力で十分に滑らかな軌道であれば、どのような軌道でも追従できます。これが、激しい機動飛行の計画にミニマムスナップ多項式軌道が広く使われる理由です。Lee、Leok、McClamroch(2010)は、オイラー角ではなくSE(3)上で直接コントローラを記述し、ほぼ大域的な安定性を証明しました。さらにシミュレーションで、上下逆さまの初期状態からの回復を示しています。

実際のオートパイロットは、ループを多段に重ねたカスケード構成を使います。PX4は自身のマルチコプター用コントローラを、PコントローラとPIDコントローラを組み合わせた標準的なカスケード構成と説明しており、状態推定値はEKF2推定器から得ています。

位置P速度PID姿勢P、四元数角速度PID制御配分ミキサモータESCs速度目標値推力と姿勢機体角速度目標値トルクと推力モータ出力EKF2推定器位置・速度・姿勢・角速度センサ: IMU・GNSS・気圧計
PX4のドキュメントに記載されたマルチコプターのカスケード制御ループ。各ループは内側のループに目標値を渡し、制御配分が総推力と機体トルクを個々のモータ指令に変換します。EKF2推定器はすべてのループに推定値を供給します。

多くのエンジニアが出会うオープンソースのオートパイロットは、PX4とArduPilotの2つです。PX4はDronecode Foundationのプロジェクトで、マルチロータ、固定翼機、VTOL、ヘリコプター、ローバーで動作し、ライセンスはBSD-3-Clauseです。ArduPilotはマルチコプター、ヘリコプター、固定翼機、ボート、潜水艇、ローバーに対応し、ライセンスはGPL-3.0です。製品ではこのライセンスの違いが重要です。改変したGPLファームウェアを配布すると、BSDにはないソースコード提供の義務が生じます。どちらも、MAVLinkというコンパクトなメッセージプロトコルでグラウンドステーションやコンパニオンコンピュータと通信します。ROS 2との連携では、PX4はuXRCE-DDSブリッジを使い、内部のuORBメッセージをコンパニオンコンピュータ上のROS 2トピックとして見せます。どちらのスタックもソフトウェア・イン・ザ・ループ(SITL)シミュレーションで動作するため、プロペラを1つも回す前にフライトコントローラを試験できます。

フィールドで何が変わるか

海上では、機体は波、風、潮流に押されます。ほとんどの水上艇は劣駆動で、1つのプロペラと1つの舵で平面内の3 自由度を扱います。Fossenのハンドブックは、船舶のモデルとそれに基づくコントローラを扱っています。水中ではGNSSが使えず、電波もほとんど届きません。そのため航法は、慣性センサ、ドップラー速度計、音響測位に頼ります。農場での課題は、雑然とした環境と変化する照明の中での認識です。作物の見た目も週ごとに変わります。宇宙では、ロボットは微小重力下で、修理の手段がきわめて限られた状態で働きます。NASAによれば、NASAの3台の自由飛行ロボットAstrobeeは2019年から国際宇宙ステーションの船内で稼働しており、そのフライトソフトウェアはオープンソースで、ROS上に構築されています。パイプ、タンク、送電線、風力タービンの点検ロボットでは、持ち帰るデータこそが製品です。ロボットの動き方と同じくらい、センサの品質と視点の再現性が重要です。

どこから始めるか

姿勢制御は回転の数学なので、まず座標系と回転を読んでください。PID制御は上のカスケードのループを扱い、PIDチューニングのリファレンスは角速度ループの調整に役立ちます。センサとノイズでは、慣性計測装置(IMU)が実際に何を測っているかを説明します。状態推定のハブでは、EKF2の中にある拡張カルマンフィルタを扱います。ドローンのプラットフォームページには、ハードウェアとエコシステムがまとめてあります。

ツールとプラットフォーム

ツール 用途 ライセンス
PX4 マルチロータ・固定翼機・VTOL・ローバー用のオートパイロット BSD-3-Clause
ArduPilot コプター・固定翼機・ボート・潜水艇・ローバー用のオートパイロット GPL-3.0
MAVLink 機体・グラウンドステーション・コンパニオンコンピュータ間のメッセージプロトコル ジェネレータはLGPL-3.0、生成コードはMIT
QGroundControl PX4とArduPilot用のグラウンドコントロールステーション Apache-2.0またはGPL-3.0から選択
MAVSDK コンパニオンコンピュータ向けのMAVLinkクライアントライブラリ BSD-3-Clause
Mission Planner ArduPilot用のグラウンドステーション GPL-3.0
Astrobeeソフトウェア NASAのISS自由飛行ロボット用のフライトソフトウェアとシミュレータ Apache-2.0

よくある間違い

  • 角速度ループが安定する前に外側のループを調整する。内側から外側の順に調整してください。
  • フライトコントローラを防振せずに取り付け、姿勢のノイズを推定器のせいにする。
  • 建物や橋の近く、木の下でGNSSを信用する。報告される精度を監視し、GNSSを失う場合に備えて計画してください。
  • フィールドロボットには常に通信リンクがあると思い込む。リンクが切れたときの動作を定義し、それを試験してください。
  • 改変したGPLのオートパイロットファームウェアを、ライセンス条件への対応を計画せずに出荷する。
  • 最初のフィールド試験まで、現地の航空や海事の法規を無視する。

さらに深く

このトピックの最新ニュース

最近の論文

  • RGB-D SLAM on the Edge: Benchmarking and Profiling RTAB-Map and ORB-SLAM3 on the Raspberry Pi 5

    H. Patil, J. Joshi, R. Saluja et al. · arXiv cs.RO · ダイジェスト

    著者らは、Raspberry Pi 5上でRTAB-MapとORB-SLAM3を6つのTUM RGB-Dシーケンスで実行しました。各シーケンスは3種類の解像度で実行しています。記録したのは、フレームごとの処理時間、メモリ使用量、CPU負荷、温度、軌跡誤差、各シーケンスのうち追跡を維持できた割合です。また、各システムを関数レベルまでプロファイリングしました。RTAB-Mapをすべてのフレームを処理・保持する設定にすると、パイプライン全体で1フレームあたり150〜462 msかかりました。ORB-SLAM3は26〜62 msでした。RTAB-Mapの処理時間の大半は、ポーズグラフの最適化に費やされていました。このポーズグラフは、デフォルトのメモリ設定では際限なく大きくなります。4分の1の解像度では、両システムともほとんどのシーケンスで追跡を失いました。追跡を失った実行では、残ったポーズについて報告される誤差が小さくなります。そのため、誤差は必ずカバレッジと併せて読む必要があります。これはボード上でのデータセットベンチマークであり、飛行試験ではありません。また、同一の実行を繰り返すと軌跡誤差が最大27%変動しました。処理時間の再現性は1%〜5%以内でしたが、精度の比較は結論が出ていません。