ArduPilot capabilities can be extended with ROS (aka Robot Operating System).

ROS provides libraries, tools, hardware abstraction, device drivers, visualizers, message-passing, package management, and more to help software developers create robot applications. In the future we expect ROS will be replaced by ROS2

MAVROS is a ROS “node” that can convert between ROS topics and MAVLink messages allowing ArduPilot vehicles to communicate with ROS. The MAVROS code can be found here.

These pages will show you how to:


  • Learn on to use ArduPilot first by following the relevant wiki for Rover, Copter or Plane. In particular make sure the vehicle works well in Manual and Autonomous modes like Guided and Auto before trying to use ROS.
  • Learn how to use ROS by reading the beginner tutorials. In the case of a problem with ROS, it is best to ask on ROS community forums first (or google your error). You will find many other tutorials about ROS like Emlid.
  • Install ROS Kinetic Kame on Ubuntu Linux (16.04). Those are default and LTS version of both ROS and Ubuntu. ROS does not yet officially support Windows nor MAC.

Next tutorials :

Instructions for using Gazebo with ArduPilot are here and an old version has been blogged about here.