A MAVLink to ROS gateway enabling communication between autonomous vehicles and the Robot Operating System.
MAVROS is a MAVLink to ROS gateway that enables communication between autonomous vehicle autopilots (like PX4 and ArduPilot) and the Robot Operating System (ROS). It translates MAVLink protocol messages into ROS topics and services, allowing developers to control drones, rovers, and other robotic systems through ROS-based applications. This solves the problem of integrating low-level vehicle hardware with high-level robotic software frameworks.
Robotics engineers and developers working with autonomous vehicles (drones, UGVs, USVs) who need to interface autopilots with ROS for simulation, data processing, or advanced control algorithms.
Developers choose MAVROS because it provides a standardized, reliable, and extensible bridge between the widely-used MAVLink protocol and ROS, with support for multiple autopilots and ROS versions. Its plugin architecture and active community ensure flexibility and long-term maintenance for complex robotic systems.
MAVLink to ROS gateway with proxy for Ground Control Station
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports MAVLink 1.0 and 2.0, ensuring seamless communication with standard autopilots like PX4 and ArduPilot, as highlighted in the key features.
Modular architecture with plugins for parameters, waypoints, and more, allowing customization through packages like mavros_extras.
Uses GeographicLib for precise frame conversion between FCU and WGS84 coordinates, critical for autonomous navigation and noted in the version history.
Maintains compatibility with both ROS 1 and ROS 2, with active updates for recent distributions like Humble and Iron, as shown in CI badges.
README shows frequent breaking changes (e.g., frame conversion updates) and dropped support for older ROS versions, requiring constant migration efforts.
Requires GeographicLib and specific ROS packages, complicating installation and setup, especially with dependency conflicts noted in version notes.
While libmavconn exists, MAVROS itself is tightly coupled to ROS, making it less efficient for non-ROS applications where lighter MAVLink libraries might suffice.