Open Source Robotics

高品質なオープンソースロボティクスプロジェクト、ツール、ソフトウェアの厳選コレクション。

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リンクの品質に左右される

このウェブサイトにはJavaScriptが必要です。オープンソースロボティクスプロジェクトを閲覧するにはJavaScriptを有効にしてください。