mavlink/mavros

C++

MAVLink to ROS gateway with proxy for Ground Control Station

rosros-nodemavlinkmavrosmavros-msgsuav
Croissance des étoiles
Étoiles
1.2k
Forks
1.1k
Croissance hebdomadaire
+1
Issues
393
5001k
janv. 2014mars 2018juin 2022sept. 2026
README

MAVROS

GitHub release (latest by date) Documentation CI Gitter

A MAVLink-to-ROS 2 bridge for drones.

MAVROS turns a MAVLink autopilot (PX4, ArduPilot, …) into a set of familiar ROS 2 topics, services and parameters, so you can program a drone in ROS the same way you would program any other robot — no need to speak MAVLink.


What is it?

MAVLink is the wire protocol most flight controllers speak. ROS 2 is a robotics framework for building software. MAVROS is the glue between them:

flowchart LR
    subgraph FCU["Flight controller"]
        AP[PX4 / ArduPilot]
    end
    subgraph MAV["MAVROS node"]
        BR[bridge / plugins]
    end
    subgraph APP["Your ROS 2 app"]
        N1[telemetry nodes]
        N2[command nodes]
        N3[mission / GCS nodes]
    end
    AP -- MAVLink (UDP/TCP/serial) --> BR
    BR -- ROS 2 topics / services / params --> N1
    BR --> N2
    BR --> N3

It does the boring, low-level work for you:

  • Telemetry out — autopilot state, IMU, GPS, attitude, battery, and more arrive as standard ROS 2 sensor_msgs/mavros_msgs topics.
  • Commanding in — arm/disarm, takeoff, land, set mode, upload missions and geofences through familiar ROS 2 services.
  • Routing — MAVROS can proxy between a ground station, the FCU and multiple ROS processes over a single link.

Why MAVROS?

  • Tested against PX4 and ArduPilot, including SITL simulation.
  • Extensible — a plugin architecture translates each MAVLink message; add behaviour without touching the core.
  • ROS 2 native — supports Humble and newer ROS 2 releases.
  • Flexible transport — USB/serial, UDP, TCP, or a shared UAS bus.

Quick start

Install the package and its mandatory GeographicLib datasets:

sudo apt install ros-${ROS_DISTRO}-mavros
sudo ros2 run mavros install_geographiclib_datasets.sh

Launch the bridge against a flight controller (or a simulated one):

ros2 launch mavros node.launch \
  fcu_url:=udp://127.0.0.1:14550@127.0.0.1:14557

Then inspect the sensor stream:

ros2 topic echo /mavros/imu/data

See the installation guide for binary, source and container installs, and the examples for task control and waypoint missions.

Packages

Package Purpose
mavros Core nodes (Router, UAS) and standard plugins
mavros_extras Optional plugins (cameras, gimbals, terrain, …)
mavros_msgs ROS 2 message and service interfaces
libmavconn MAVLink transport library (usable outside ROS)
test_mavros Hand-tests and SITL manual for PX4/ArduPilot
mavros_examples Beginner-friendly ROS 2 example scripts (task control, waypoint missions, offboard)

Documentation

Support

Ask questions (not bug reports) on:

CI status

  • ROS2 Humble: Build Status
  • ROS2 Jazzy: Build Status
  • ROS2 Kilted: Build Status
  • ROS2 Lyrical: Build Status
  • ROS2 Rolling: Build Status
Dépôts similaires
ArduPilot/ardupilot

ArduPlane, ArduCopter, ArduRover, ArduSub source

C++GNU General Public License v3.0arducopterardupilot
ardupilot.org
15.8k21.4k
carla-simulator/carla

Open-source simulator for autonomous driving research.

C++MIT Licensesimulatorautonomous-vehicles
carla.org
14.4k4.7k
PX4/PX4-Autopilot

PX4 Autopilot Software

C++BSD 3-Clause "New" or "Revised" Licensepx4pixhawk
px4.io
12.6k16k
autowarefoundation/autoware

Autoware - the world's leading open-source software project for autonomous driving

DockerfileApache License 2.0autowareautonomous-vehicles
autoware.org
12.1k3.7k
ClemensElflein/OpenMower

Let's upgrade cheap off-the-shelf robotic mowers to modern, smart RTK GPS based lawn mowing robots!

ShellOtherraspberry-piarduino
6.7k406
PlotJuggler/PlotJuggler

The Time Series Visualization Tool that you deserve.

C++appMozilla Public License 2.0rosqt5
plotjuggler.io
6.2k819
mithi/robotics-coursework

🤖 Places where you can learn robotics (and stuff like that) online 🤖

tutorialThe Unlicenseroboticsalgorithm
5.2k786
OGRECave/ogre

high-performance rendering backend (C++, Python, C#, Java)

C++MIT Licenseopengldirectx
ogrecave.github.io/ogre/
4.6k1k
cyberbotics/webots

Webots Robot Simulator

C++Apache License 2.0roboticsrobot
cyberbotics.com
4.6k2.1k
MichaelGrupp/evo

Python package for the evaluation of odometry and SLAM

PythonPyPIlibraryGNU General Public License v3.0slamodometry
michaelgrupp.github.io/evo/
4.3k798
BehaviorTree/BehaviorTree.CPP

Behavior Trees Library in C++. Batteries included.

C++libraryMIT Licensebehaviortreeai
behaviortree.dev
4.2k855
introlab/rtabmap

RTAB-Map library and standalone application

C++Otherslamscanning
introlab.github.io/rtabmap
4k956