Open Source Robotics

精选高质量开源机器人项目、工具和软件,推动机器人社区发展。

MAVROS

面向兼容 MAVLink 的自动驾驶仪(PX4、ArduPilot)的 ROS 网关

许可证

BSD 3-Clause, GPL 3.0, LGPL 3.0

三重授权:BSD-3-Clause / GPLv3 / LGPLv3。用户可任选三者之一。

概述

MAVROS 是将 MAVLink 协议桥接到 ROS 生态的官方 ROS/ROS 2 软件包,使基于 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(飞控)与 WGS84(ROS)坐标系之间正确转换高度

适用人群

  • 使用 ROS 构建自主无人机系统的无人机研究人员
  • 将机载计算机与飞控集成的 PX4 和 ArduPilot 开发者
  • 在无人机上部署感知流水线的计算机视觉工程师
  • 使用 ROS 进行任务规划和自主飞行的商用无人机公司

局限

  • 与 MAVLink 协议紧密耦合——无法用于不支持 MAVLink 的飞控
  • ROS 2 支持(v2.x)较新,社区资源可能少于 ROS 1 版本
  • 由于 MAVLink 消息类型和坐标系约定繁多,配置可能较为复杂
  • 性能取决于机载计算机与飞控之间串口或 UDP 链路的质量

本网站需要 JavaScript 才能正常运行。请启用 JavaScript 以浏览我们的开源机器人项目。