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
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.
VR Robotics has successfully used Rover with ROS for SLAM as demonstrated below.