Open Source Robotics

Une collection organisée de projets, outils et logiciels robotiques open source de haute qualité.

MAVROS

Passerelle ROS pour les autopilotes compatibles MAVLink (PX4, ArduPilot)

Licence

BSD 3-Clause, GPL 3.0, LGPL 3.0

Triple licence : BSD-3-Clause / GPLv3 / LGPLv3. Les utilisateurs peuvent choisir n'importe laquelle des trois licences.

Aperçu

MAVROS est le paquet ROS/ROS 2 officiel qui fait le pont entre le protocole MAVLink et l'écosystème ROS, permettant la communication entre les systèmes basés sur ROS et les autopilotes compatibles MAVLink comme PX4 et ArduPilot. Il fournit des topics, services et actions ROS pour la télémétrie, la navigation par points de passage, la gestion des paramètres et la commande des actionneurs. MAVROS est une infrastructure fondamentale pour tout projet de drone ou de véhicule sans pilote basé sur ROS — en substance, la couche d'interface standard entre le logiciel de vol autonome et le matériel de l'autopilote.

MAVROS est le nœud de communication ROS officiel pour les autopilotes basés sur MAVLink et sert de pont standard entre l'écosystème ROS et les contrôleurs de vol sous PX4 ou ArduPilot. Il traduit les messages MAVLink en topics, services et actions ROS, donnant accès à la télémétrie, au GPS, à l'IMU, à l'état de la batterie et aux modes de vol, tout en permettant les commandes d'armement, de décollage, de navigation par points de passage et de contrôle offboard.

Le projet se compose de plusieurs paquets : le nœud mavros principal, mavros_extras avec des plugins supplémentaires pour l'estimation de pose par vision et la commande de caméra, libmavconn pour la communication MAVLink hors de ROS, mavros_msgs pour les définitions de messages et de services, et test_mavros pour les tests SITL. Il gère les conversions de référentiels et utilise GeographicLib pour transformer correctement l'altitude entre les référentiels de l'autopilote et de ROS.

Développé depuis 2014 et prenant désormais en charge ROS 1 et ROS 2, MAVROS est l'interface MAVLink-ROS la plus utilisée dans la communauté des drones. Il prend en charge MAVLink 2.0, est distribué sous triple licence GPL/LGPL/BSD et est activement maintenu, avec plus de 200 commits par an.

Pourquoi c'est important

MAVROS est le pont standard entre l'écosystème ROS et les autopilotes basés sur MAVLink, ce qui en fait un composant essentiel de tout système de drone, de recherche ou commercial, qui combine la perception et la planification sous ROS avec des contrôleurs de vol PX4 ou ArduPilot. Une décennie de développement en a fait l'interface de fait pour les applications de drones autonomes dans la communauté ROS.

Le problème résolu

Les systèmes de drones autonomes utilisent généralement ROS pour la perception et la prise de décision de haut niveau, mais s'appuient sur des contrôleurs de vol basés sur MAVLink (PX4, ArduPilot) pour la commande de vol de bas niveau. MAVROS comble cet écart en traduisant les messages MAVLink en topics, services et actions ROS, ce qui permet une communication fluide entre les deux écosystèmes sans gestion de protocole sur mesure.

Points clés

  • Passerelle officielle MAVLink-ROS prenant en charge ROS 1 (Noetic) et ROS 2
  • Fournit des topics ROS pour la télémétrie, le GPS, l'IMU, la batterie et l'état issus de l'autopilote
  • Prend en charge les piles de vol PX4 et ArduPilot via le protocole MAVLink
  • Inclut mavros_extras pour des plugins supplémentaires comme l'estimation de pose par vision et la commande de caméra
  • Utilise GeographicLib pour convertir correctement l'altitude entre les référentiels AMSL (FCU) et WGS84 (ROS)

Pour qui

  • Chercheurs en drones qui construisent des systèmes de drones autonomes avec ROS
  • Développeurs PX4 et ArduPilot qui intègrent des ordinateurs embarqués aux contrôleurs de vol
  • Ingénieurs en vision par ordinateur qui déploient des pipelines de perception sur des drones
  • Entreprises de drones commerciaux qui utilisent ROS pour la planification de mission et l'autonomie

Limites

  • Étroitement lié au protocole MAVLink — inutilisable avec des contrôleurs de vol non MAVLink
  • La prise en charge de ROS 2 (v2.x) est plus récente et peut disposer de moins de ressources communautaires que la version ROS 1
  • La configuration peut être complexe en raison des nombreux types de messages MAVLink et conventions de référentiels
  • Les performances dépendent de la qualité de la liaison série ou UDP entre l'ordinateur compagnon et le contrôleur de vol

Ce site nécessite JavaScript. Veuillez activer JavaScript pour explorer nos projets de robotique open source.