MAVROS
適用於相容 MAVLink 之自動駕駛儀(PX4、ArduPilot)的 ROS 閘道
授權條款
BSD 3-Clause, GPL 3.0, LGPL 3.0
三重授權:BSD-3-Clause / GPLv3 / LGPLv3。使用者可從三種授權中任選其一。
概述
MAVROS 是官方的 ROS/ROS2 套件,將 MAVLink 協定橋接到 ROS 生態系,讓以 ROS 為基礎的系統能與 PX4、ArduPilot 等相容 MAVLink 的自動駕駛儀通訊。它提供用於遙測、航點導航、參數管理與致動器控制的 ROS 主題、服務與動作。MAVROS 是任何以 ROS 為基礎之無人機或無人載具專案的基礎設施——基本上就是自主飛行軟體與自動駕駛儀硬體之間的標準介面層。
MAVROS 是適用於 MAVLink 自動駕駛儀的官方 ROS 通訊節點,是 ROS 生態系與執行 PX4 或 ArduPilot 之飛行控制器之間的標準橋樑。它將 MAVLink 訊息轉換為 ROS 主題、服務與動作,提供遙測、GPS、慣性量測單元(IMU)、電池狀態與飛行模式的存取,並支援解鎖、起飛、航點導航與 offboard 控制等指令。
此專案由數個套件組成:核心 mavros 節點;mavros_extras,提供視覺姿態估測與相機控制等額外外掛;libmavconn,用於 ROS 之外的 MAVLink 通訊;mavros_msgs,定義訊息與服務;以及用於 SITL 測試的 test_mavros。它負責處理座標框架之間的座標轉換,並使用 GeographicLib 在自動駕駛儀與 ROS 參考框架之間正確轉換高度。
MAVROS 自 2014 年開始開發,目前同時支援 ROS 1 與 ROS 2,是無人機社群中使用最廣泛的 MAVLink-ROS 介面。它支援 MAVLink 2.0,採用 GPL/LGPL/BSD 三重授權,並持續積極維護,每年提交超過 200 次。
為何重要
MAVROS 是 ROS 生態系與 MAVLink 自動駕駛儀之間的標準橋樑,對於任何結合以 ROS 為基礎的感知與規劃,以及 PX4 或 ArduPilot 飛行控制器的研究或商用無人機系統而言,都是不可或缺的元件。歷經十年的開發,它已成為 ROS 社群中自主無人機應用的事實標準介面。
解決的問題
自主無人機系統通常使用 ROS 進行高階感知與決策,但仰賴 MAVLink 飛行控制器(PX4、ArduPilot)進行低階飛行控制。MAVROS 將 MAVLink 訊息轉換為 ROS 主題、服務與動作,填補了這道落差,讓兩個生態系無需自訂協定處理即可順暢通訊。
重點
- 官方的 MAVLink 至 ROS 閘道,同時支援 ROS 1(Noetic)與 ROS 2
- 提供 ROS 主題,傳遞來自自動駕駛儀的遙測、GPS、慣性量測單元(IMU)、電池與狀態資料
- 透過 MAVLink 協定同時支援 PX4 與 ArduPilot 飛行軟體堆疊
- 包含 mavros_extras,提供視覺姿態估測與相機控制等額外外掛
- 使用 GeographicLib 在 AMSL(FCU)與 WGS84(ROS)框架之間正確轉換高度
適用對象
- 以 ROS 建構自主無人機系統的無人機研究人員
- 將機載電腦與飛行控制器整合的 PX4 與 ArduPilot 開發者
- 在無人機上部署感知流程的電腦視覺工程師
- 使用 ROS 進行任務規劃與自主控制的商用無人機公司
限制
- 與 MAVLink 協定緊密耦合——無法用於非 MAVLink 的飛行控制器
- ROS 2 支援(v2.x)較新,社群資源可能比 ROS 1 版本少
- 由於 MAVLink 訊息類型與框架慣例眾多,設定可能相當複雜
- 效能取決於輔助電腦與飛行控制器之間序列或 UDP 連線的品質