mavlink/mavros

MAVLink to ROS gateway with proxy for Ground Control Station

What it solves

MAVROS provides a bridge between MAVLink-based flight controllers (such as PX4 and ArduPilot) and the ROS 2 robotics framework. It eliminates the need for developers to manually implement the MAVLink wire protocol, allowing them to program drones using standard ROS 2 topics, services, and parameters.

How it works

MAVROS acts as a translation layer (the "glue") between the flight controller unit (FCU) and ROS 2 applications. It converts MAVLink messages sent over UDP, TCP, or serial connections into ROS 2 messages. This includes:

  • Telemetry: Converting autopilot state, IMU, GPS, and battery data into standard ROS 2 sensor_msgs or mavros_msgs topics.
  • Commanding: Translating ROS 2 services into MAVLink commands for actions like arming, takeoff, and landing.
  • Routing: Proxying communication between ground stations, the FCU, and multiple ROS processes.

Who it’s for

Robotics developers and drone programmers who use ROS 2 and want to integrate with professional flight controllers like PX4 or ArduPilot without writing low-level protocol translation code.

Highlights

  • Broad Compatibility: Tested against PX4 and ArduPilot, including SITL simulation.
  • Plugin Architecture: Uses an extensible plugin system to translate MAVLink messages, allowing for new behaviors to be added without modifying the core.
  • ROS 2 Native: Supports Humble and newer ROS 2 releases.
  • Flexible Transport: Supports USB/serial, UDP, TCP, or shared UAS buses.

Related

  • Project
  • Project
  • Project
  • Project
  • Project