MAVROS
Gateway ROS para autopilotos compatíveis com MAVLink (PX4, ArduPilot)
Licença
BSD 3-Clause, GPL 3.0, LGPL 3.0
Licença tripla: BSD-3-Clause / GPLv3 / LGPLv3. Os usuários podem escolher qualquer uma das três licenças.
Visão geral
O MAVROS é o pacote oficial de ROS/ROS2 que conecta o protocolo MAVLink ao ecossistema ROS, permitindo a comunicação entre sistemas baseados em ROS e autopilotos compatíveis com MAVLink, como PX4 e ArduPilot. Ele oferece tópicos, serviços e ações ROS para telemetria, navegação por waypoints, gerenciamento de parâmetros e controle de atuadores. O MAVROS é infraestrutura fundamental para qualquer projeto de drone ou veículo não tripulado baseado em ROS — basicamente, a camada de interface padrão entre o software de voo autônomo e o hardware do autopiloto.
O MAVROS é o nó oficial de comunicação ROS para autopilotos baseados em MAVLink, servindo como a ponte padrão entre o ecossistema ROS e os controladores de voo que rodam PX4 ou ArduPilot. Ele traduz mensagens MAVLink em tópicos, serviços e ações ROS, dando acesso a telemetria, GPS, IMU, estado da bateria e modos de voo, além de permitir comandos de armar, decolar, navegar por waypoints e controle offboard.
O projeto é composto por vários pacotes: o nó central mavros; o mavros_extras, com plugins adicionais para estimativa de pose por visão e controle de câmera; a libmavconn, para comunicação MAVLink fora do ROS; o mavros_msgs, com as definições de mensagens e serviços; e o test_mavros, para testes em SITL. Ele cuida das conversões entre sistemas de coordenadas e usa a GeographicLib para transformar corretamente a altitude entre os referenciais do autopiloto e do ROS.
Desenvolvido desde 2014 e hoje com suporte a ROS 1 e ROS 2, o MAVROS é a interface MAVLink-ROS mais usada na comunidade de drones. Ele suporta MAVLink 2.0, tem licença tripla GPL/LGPL/BSD e é mantido ativamente, com mais de 200 commits por ano.
Por que importa
O MAVROS é a ponte padrão entre o ecossistema ROS e os autopilotos baseados em MAVLink, o que o torna um componente essencial para qualquer sistema de drone, de pesquisa ou comercial, que combine percepção e planejamento baseados em ROS com controladores de voo PX4 ou ArduPilot. Uma década de desenvolvimento fez dele a interface padrão de fato para aplicações de UAVs autônomos na comunidade ROS.
Problema que resolve
Sistemas de drones autônomos normalmente usam ROS para percepção e tomada de decisão de alto nível, mas dependem de controladores de voo baseados em MAVLink (PX4, ArduPilot) para o controle de voo de baixo nível. O MAVROS preenche essa lacuna traduzindo mensagens MAVLink em tópicos, serviços e ações ROS, permitindo uma comunicação transparente entre os dois ecossistemas sem exigir tratamento de protocolo personalizado.
Pontos principais
- Gateway oficial MAVLink-ROS com suporte tanto a ROS 1 (Noetic) quanto a ROS 2
- Fornece tópicos ROS com dados de telemetria, GPS, IMU, bateria e estado vindos do autopiloto
- Suporta as pilhas de voo PX4 e ArduPilot por meio do protocolo MAVLink
- Inclui o mavros_extras, com plugins adicionais como estimativa de pose por visão e controle de câmera
- Usa a GeographicLib para converter corretamente a altitude entre os referenciais AMSL (FCU) e WGS84 (ROS)
Para quem é
- Pesquisadores de UAVs que constroem sistemas de drones autônomos com ROS
- Desenvolvedores PX4 e ArduPilot que integram computadores de bordo a controladores de voo
- Engenheiros de visão computacional que implantam pipelines de percepção em drones
- Empresas de drones comerciais que usam ROS para planejamento de missões e autonomia
Limitações
- Fortemente acoplado ao protocolo MAVLink — não pode ser usado com controladores de voo que não usam MAVLink
- O suporte a ROS 2 (v2.x) é mais recente e pode ter menos recursos da comunidade do que a versão ROS 1
- A configuração pode ser complexa por causa dos muitos tipos de mensagem MAVLink e convenções de referenciais
- O desempenho depende da qualidade do link serial ou UDP entre o computador de bordo e o controlador de voo