Research extending ArduPilot with ROS

October 7, 2024

What is ArduPilot?

  • ArduPilot is a portable autopilot that can run on various platforms, without any special hardware.

  • The Ardupilot firmware is run on WARG flight controllers. These flight controllers use MAVLink as their primary telemetry communication protocol.

  • Software simulation of hardware components allows testing of software components without requiring hardware to be physically present. This is known as software in the loop (SITL).

  • Essentially, ArduPilot SITL Simulator lets WARG test software using MAVLink without requiring a physical drone.

What is ROS?

  • Robot Operating Software (ROS) is a set of software libraries and tools that help build robot applications. 

  • ROS provides functionality for hardware abstraction, device drivers, communication between processes over multiple machines, tools for testing and visualization, and much more.

Integrating ArduPilot with ROS?

  • ROS is capable of extending autopilot capabilities with a wider ecosystem of technologies that can run on more powerful computers.

  • MAVROS is a ROS package that can convert between ROS topics and MAVLink messages, allowing ArduPilot to communicate with ROS.

  • Some features of MAVROS:

    • can control/monitor drone states (set waypoints)

    • access telemetry and sensor data

    • provides tools for offboard control and data logging

  • Documentation for establishing a connection between ArduPilot SITL and ROS can be found here.

  • Example of ROS and ArduPilot working together:

    • ROS can be used to capture data from cameras which can be processed by autonomy algorithms. The processed data (path planning) can be relayed with MAVLink commands back to ArduPilot through MAVROS. These commands to ArduPilot are control inputs that allow the drone to adjust its flight path based on real-time data.

  • Essentially, MAVROS makes it easy to connect ArduPilot with ROS, allowing for the integration of many libraries and tools for specific tasks.Â