Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
M

mavros

> 编程语言
Open source

MAVLink to ROS gateway with proxy for Ground Control Station

1.2K stars0 likes1 views
WebsiteGitHub

About

MAVLink to ROS gateway with proxy for Ground Control Station

MAVROS

A MAVLink-to-ROS 2 bridge for drones.

MAVROS turns a MAVLink autopilot (PX4, ArduPilot, Flix, …) 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:

mermaid
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:

bash
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):

bash
ros2 launch mavros node.launch \
  fcu_url:=udp://127.0.0.1:[email protected]:14557

Then inspect the sensor stream:

bash
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

  • Full documentation
  • Plugin reference — every topic/service/parameter
  • Per-package C++/Python API
  • Changelog

Support

Ask questions (not bug reports) on:

  • MAVROS Gitter
  • PX4 Discuss
  • PX4 Slack
  • ArduPilot Discuss

CI status

  • ROS2 Humble:
  • ROS2 Jazzy:
  • ROS2 Kilted:
  • ROS2 Lyrical:
  • ROS2 Rolling:

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C++mavlinkmavrosmavros-msgsros

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言