Open Source Robotics

Eine kuratierte Sammlung hochwertiger Open-Source-Robotikprojekte, Werkzeuge und Software für die Robotik-Community.

MAVROS

ROS-Gateway für MAVLink-kompatible Autopiloten (PX4, ArduPilot)

Lizenz

BSD 3-Clause, GPL 3.0, LGPL 3.0

Dreifach lizenziert: BSD-3-Clause / GPLv3 / LGPLv3. Nutzer können eine beliebige der drei Lizenzen wählen.

Überblick

MAVROS ist das offizielle ROS/ROS2-Paket, das das MAVLink-Protokoll mit dem ROS-Ökosystem verbindet und so die Kommunikation zwischen ROS-basierten Systemen und MAVLink-kompatiblen Autopiloten wie PX4 und ArduPilot ermöglicht. Es stellt ROS-Topics, -Services und -Actions für Telemetrie, Wegpunktnavigation, Parameterverwaltung und Aktuatorsteuerung bereit. MAVROS ist grundlegende Infrastruktur für jedes ROS-basierte Drohnen- oder unbemannte Fahrzeugprojekt – im Grunde die Standard-Schnittstellenschicht zwischen autonomer Flugsoftware und Autopilot-Hardware.

MAVROS ist der offizielle ROS-Kommunikationsknoten für MAVLink-basierte Autopiloten und dient als Standardbrücke zwischen dem ROS-Ökosystem und Flight-Controllern mit PX4 oder ArduPilot. Er übersetzt MAVLink-Nachrichten in ROS-Topics, -Services und -Actions, liefert Zugriff auf Telemetrie, GPS, IMU, Batteriestatus und Flugmodi und ermöglicht Befehle zum Scharfschalten (Arming), Starten, zur Wegpunktnavigation und zur Offboard-Steuerung.

Das Projekt besteht aus mehreren Paketen: dem zentralen mavros-Knoten, mavros_extras mit zusätzlichen Plugins für visuelle Posenschätzung und Kamerasteuerung, libmavconn für MAVLink-Kommunikation außerhalb von ROS, mavros_msgs mit Nachrichten- und Service-Definitionen sowie test_mavros für SITL-Tests. Es übernimmt die Umrechnung zwischen Koordinatensystemen und nutzt GeographicLib für korrekte Höhentransformationen zwischen den Bezugssystemen von Autopilot und ROS.

MAVROS wird seit 2014 entwickelt, unterstützt heute sowohl ROS 1 als auch ROS 2 und ist die am weitesten verbreitete MAVLink-ROS-Schnittstelle in der Drohnen-Community. Es unterstützt MAVLink 2.0, steht unter einer Dreifachlizenz (GPL/LGPL/BSD) und wird mit über 200 Commits pro Jahr aktiv gepflegt.

Warum es wichtig ist

MAVROS ist die Standardbrücke zwischen dem ROS-Ökosystem und MAVLink-basierten Autopiloten und damit eine unverzichtbare Komponente für jedes Forschungs- oder kommerzielle Drohnensystem, das ROS-basierte Wahrnehmung und Planung mit PX4- oder ArduPilot-Flight-Controllern kombiniert. Durch ein Jahrzehnt Entwicklung ist es zur De-facto-Schnittstelle für autonome UAV-Anwendungen in der ROS-Community geworden.

Welches Problem es löst

Autonome Drohnensysteme nutzen typischerweise ROS für Wahrnehmung und Entscheidungsfindung auf hoher Ebene, verlassen sich für die Flugregelung auf unterster Ebene aber auf MAVLink-basierte Flight-Controller (PX4, ArduPilot). MAVROS schließt diese Lücke, indem es MAVLink-Nachrichten in ROS-Topics, -Services und -Actions übersetzt. So kommunizieren beide Ökosysteme nahtlos miteinander, ohne dass eine eigene Protokollbehandlung nötig ist.

Wichtigste Punkte

  • Offizielles MAVLink-zu-ROS-Gateway mit Unterstützung für ROS 1 (Noetic) und ROS 2
  • Stellt ROS-Topics für Telemetrie-, GPS-, IMU-, Batterie- und Zustandsdaten des Autopiloten bereit
  • Unterstützt über das MAVLink-Protokoll sowohl den PX4- als auch den ArduPilot-Flugstack
  • Enthält mavros_extras mit zusätzlichen Plugins, etwa für visuelle Posenschätzung und Kamerasteuerung
  • Nutzt GeographicLib für die korrekte Höhenumrechnung zwischen AMSL (FCU) und WGS84 (ROS)

Für wen

  • UAV-Forschende, die mit ROS autonome Drohnensysteme bauen
  • PX4- und ArduPilot-Entwickler, die Onboard-Computer mit Flight-Controllern verbinden
  • Computer-Vision-Ingenieure, die Wahrnehmungspipelines auf Drohnen einsetzen
  • Kommerzielle Drohnenunternehmen, die ROS für Missionsplanung und Autonomie nutzen

Einschränkungen

  • Eng an das MAVLink-Protokoll gekoppelt – nicht mit Flight-Controllern ohne MAVLink nutzbar
  • Die ROS-2-Unterstützung (v2.x) ist neuer und hat möglicherweise weniger Community-Ressourcen als die ROS-1-Version
  • Die Konfiguration kann wegen der vielen MAVLink-Nachrichtentypen und Koordinatenkonventionen komplex sein
  • Die Leistung hängt von der Qualität der seriellen oder UDP-Verbindung zwischen Begleitrechner und Flight-Controller ab

Diese Website benötigt JavaScript. Bitte aktivieren Sie JavaScript, um unsere Open-Source-Robotikprojekte zu erkunden.