Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Ardupilot/ardupilot/llms.txt

Use this file to discover all available pages before exploring further.

Rover is the ArduPilot firmware for ground and surface vehicles. A single ardurover binary supports wheeled rovers, boats, balance bots, skid-steer platforms, and sailing vessels. The vehicle code lives in Rover/ and shares the same MAVLink interface, parameter system, and mission planner compatibility as every other ArduPilot vehicle type.

Flight modes

13 modes covering manual control through fully autonomous waypoint navigation and docking.

Boats and sailboats

Dedicated sailboat controller in sailboat.cpp with wind vane input via AP_WindVane.

Autonomous navigation

AR_WPNav provides waypoint following with object avoidance for ground and surface vehicles.

Precision docking

Dock mode guides the vehicle to a precise target using IR-Lock or beacon positioning.

Supported vehicle types

Rover does not use a separate build target per frame type. The vehicle type is configured through the FRAME_TYPE parameter at runtime.
Vehicle typeDescription
Wheeled roverStandard differential or skid-steer ground vehicle
BoatSurface vessel with throttle and steering
Balance botSelf-balancing two-wheeled robot using balance_bot.cpp
SailboatWind-propelled vessel with sail servo via AP_WindVane
Skid-steerIndependent left/right motor mixing without a steering servo

Flight modes

All modes are defined in Rover/mode.h. Mode numbers match the MAVLink CUSTOM_MODE field reported to ground stations.
#ModeDescription
0ManualDirect throttle and steering pass-through
1AcroRate-controlled steering with manual throttle
3SteeringAttitude-stabilized steering with manual speed
4HoldZero throttle, hold current heading
5LoiterAutomatic position hold at current location
6FollowFollow another MAVLink vehicle or GCS
7SimpleBasic obstacle-avoiding manual control
8DockPrecision approach to a docking target
9CircleAutomatic circular path around a fixed point
10AutoFully automatic waypoint mission
11RTLReturn to launch position
12SmartRTLReturn by retracing the outbound path
15GuidedNavigate to GCS-commanded positions
Dock mode (number 8) is conditionally compiled with MODE_DOCK_ENABLED. It uses either IR-Lock or external positioning to achieve repeatable precision docking.

Key features

SmartRTL

Breadcrumb-based return path avoids terrain and obstacles encountered on the outbound route, powered by AP_SmartRTL.

Sailboat control

sailboat.cpp implements tacking logic, sail angle optimization, and motor-assisted motoring when wind is insufficient.

Balance bot

balance_bot.cpp adds a pitch-stabilizing inner loop so two-wheeled robots drive stably.

Wheel encoders

AP_WheelEncoder provides odometry for dead-reckoning and speed control on GPS-degraded surfaces.

Torqeedo motors

Native support for Torqeedo electric boat motors via AP_Torqeedo for CAN-based boat applications.

Object avoidance

AR_WPNav_OA integrates proximity sensors to steer around obstacles during autonomous navigation.

Building

1

Configure the build system

# SITL simulation
./waf configure --board sitl

# Hardware board example
./waf configure --board CubeOrange
2

Build Rover

./waf rover
Output binary: build/<board>/bin/ardurover

Libraries linked by wscript

The Rover/wscript file lists the vehicle-specific libraries added on top of the common set.
LibraryPurpose
APM_ControlPID controllers for steering and speed
AP_MountCamera and antenna mount control
AP_NavigationNavigation algorithm interface
AR_WPNavRover-specific waypoint and loiter navigation with object avoidance
AP_AdvancedFailsafeMission-critical failsafe sequencing
AP_WheelEncoderWheel odometry for speed and position estimation
AP_SmartRTLBreadcrumb path recording for SmartRTL mode
AC_AttitudeControlAttitude controller (used by balance bot)
AP_LTM_Telem / AP_Devo_TelemSerial telemetry protocols
AP_WindVaneWind direction and speed sensor for sailboats
AR_MotorsRover motor output mixing (differential, skid-steer, omni)
AP_TorqeedoTorqeedo CAN electric boat motor driver
AC_PrecLandPrecision landing/docking via IR-Lock
AP_IRLockIR-Lock target tracking for Dock mode
AR_Motors (libraries/AR_Motors/) and AR_WPNav (libraries/AR_WPNav/) are the Rover-specific equivalents of the copter AP_Motors and AC_WPNav libraries. They are designed for ground and surface vehicle dynamics rather than multirotor physics.

Testing in simulation

# Build and run the full Rover test suite
Tools/autotest/autotest.py build.Rover test.Rover

# Run a specific test
Tools/autotest/autotest.py build.Rover test.Rover.DriveRTL
See the SITL guide for details on running simulated rover missions and connecting a ground control station.

Build docs developers (and LLMs) love