MAVROS
MAVLink対応オートパイロット(PX4、ArduPilot)向けのROSゲートウェイ
ライセンス
BSD 3-Clause, GPL 3.0, LGPL 3.0
トリプルライセンス:BSD-3-Clause / GPLv3 / LGPLv3。利用者は3つのライセンスのいずれかを選択できます。
概要
MAVROSは、MAVLinkプロトコルをROSエコシステムへ橋渡しする公式のROS/ROS 2パッケージで、ROSベースのシステムとPX4やArduPilotなどのMAVLink対応オートパイロットとの通信を可能にします。テレメトリ、ウェイポイントナビゲーション、パラメータ管理、アクチュエータ制御のためのROSトピック、サービス、アクションを提供します。MAVROSはROSベースのドローンや無人機のプロジェクトに欠かせない基盤であり、自律飛行ソフトウェアとオートパイロットのハードウェアをつなぐ、事実上の標準インターフェース層です。
MAVROSは、MAVLinkベースのオートパイロット向けの公式ROS通信ノードで、ROSエコシステムとPX4またはArduPilotを搭載したフライトコントローラをつなぐ標準的なブリッジです。MAVLinkメッセージをROSのトピック、サービス、アクションに変換し、テレメトリ、GPS、IMU、バッテリー状態、フライトモードへのアクセスを提供するとともに、アーミング、離陸、ウェイポイントナビゲーション、オフボード制御のコマンドを送れるようにします。
プロジェクトは複数のパッケージで構成されています。中核となるmavrosノード、Vision位置姿勢推定やカメラ制御のための追加プラグインを含むmavros_extras、ROSの外でMAVLink通信を行うためのlibmavconn、メッセージとサービスの定義を収めたmavros_msgs、そしてSITLテスト用のtest_mavrosです。座標系の変換も扱い、GeographicLibを使ってオートパイロットとROSの基準座標系の間で高度を正しく変換します。
2014年から開発が続き、現在はROS 1とROS 2の両方に対応するMAVROSは、ドローンコミュニティで最も広く使われているMAVLink-ROSインターフェースです。MAVLink 2.0に対応し、GPL/LGPL/BSDのトリプルライセンスで提供され、年間200件以上のコミットで活発にメンテナンスされています。
重要な理由
MAVROSはROSエコシステムとMAVLinkベースのオートパイロットをつなぐ標準的なブリッジであり、ROSベースの知覚・計画とPX4やArduPilotのフライトコントローラを組み合わせる研究用・商用のドローンシステムには欠かせない構成要素です。10年にわたる開発を経て、ROSコミュニティにおける自律UAVアプリケーションの事実上の標準インターフェースとなっています。
解決する課題
自律ドローンシステムでは、高レベルの知覚と意思決定にROSを使う一方、低レベルの飛行制御はMAVLinkベースのフライトコントローラ(PX4、ArduPilot)に頼るのが一般的です。MAVROSはMAVLinkメッセージをROSのトピック、サービス、アクションに変換することでこの溝を埋め、独自のプロトコル処理を書かなくても2つのエコシステム間でシームレスに通信できるようにします。
主なポイント
- ROS 1(Noetic)とROS 2の両方に対応した公式のMAVLink-ROSゲートウェイ
- オートパイロットからのテレメトリ、GPS、IMU、バッテリー、状態データをROSトピックとして提供
- MAVLinkプロトコルを介してPX4とArduPilotの両フライトスタックに対応
- Vision位置姿勢推定やカメラ制御などの追加プラグインを収めたmavros_extrasを同梱
- GeographicLibを使い、AMSL(FCU)とWGS84(ROS)の座標系間で高度を正しく変換
対象
- ROSで自律ドローンシステムを構築するUAV研究者
- オンボードコンピュータとフライトコントローラを統合するPX4およびArduPilotの開発者
- ドローンに知覚パイプラインを実装するコンピュータビジョンエンジニア
- ミッション計画と自律化にROSを使う商用ドローン企業
制限事項
- MAVLinkプロトコルと密結合しており、MAVLink非対応のフライトコントローラでは使えない
- ROS 2対応版(v2.x)は比較的新しく、ROS 1版に比べてコミュニティの情報が少ない場合がある
- MAVLinkのメッセージ種別や座標系の規約が多いため、設定が複雑になりがち
- 性能はコンパニオンコンピュータとフライトコントローラ間のシリアルまたはUDPリンクの品質に左右される