The ArduPilot software suite consists of navigation software (typically referred to as
firmware when it is compiled to binary form for
microcontroller hardware targets) running on the vehicle (
Copter,
Plane, Rover, AntennaTracker, or Sub), along with ground station controlling software including Mission Planner, APM Planner, QGroundControl, MavProxy, Tower and others.
Common to all vehicles ArduPilot provides a large set of features, including the following common for all vehicles: • Fully autonomous, semi-autonomous and fully manual flight modes, programmable missions with 3D waypoints, optional
geofencing. • Stabilization options to negate the need for a third party co-pilot. • Simulation with a variety of simulators, including ArduPilot Software in the Loop (SITL) Simulator. • Large number of navigation sensors supported, including several models of RTK GPSs, traditional L1 GPSs, barometers, magnetometers, laser and sonar rangefinders, optical flow,
ADS-B transponder, infrared, airspeed, sensors, and computer vision/motion capture devices. • Sensor communication via
SPI,
I²C,
CAN Bus,
Serial communication,
SMBus. • Failsafes for loss of radio contact, GPS and breaching a predefined boundary, minimum battery power level. • Support for navigation in GPS denied environments, with vision-based positioning,
optical flow,
SLAM,
Ultra Wide Band positioning. • Support for actuators such as parachutes and magnetic grippers. • Support for
brushless and
brushed motors. • Photographic and video gimbal support and integration. • Integration and communication with powerful secondary, or "companion", computers • Rich documentation through ArduPilot wiki. • Support and discussion through ArduPilot discourse forum, Gitter chat channels, GitHub, Facebook.
Copter-specific • Flight modes: Stabilize, Alt Hold, Loiter, RTL (Return-to-Launch), Auto, Acro, AutoTune, Brake, Circle, Drift, Guided, (and Guided_NoGPS), Land, PosHold, Sport, Throw, Follow Me, Simple, Super Simple, Avoid_ADSB. • Auto-tuning • Wide variety of frame types supported, including tricopters, quadcopters, hexacopters, flat and co-axial octocopters, and custom motor configurations • Support for traditional electric and gas helicopters, mono copters, tandem helicopters.
Plane-specific •
Fly By Wire modes, loiter, auto, acrobatic modes. • Take-off options: Hand launch, bungee, catapult, vertical transition (for VTOL planes). • Landing options: Adjustable glide slope, helical, reverse thrust, net, vertical transition (for VTOL planes). • Auto-tuning, simulation with
JSBSIM,
X-Plane and RealFlight simulators. • Support for a large variety of VTOL architectures: Quadplanes, Tilt wings, tilt rotors, tail sitters, ornithopters. • Optimization of 3 or 4 channel airplanes.
Rover-specific • Manual, Learning, Auto, Steering, Hold and Guided operational modes. • Support for wheeled and track architectures.
Submarine-specific • Depth hold: Using pressure-based depth sensors, submarines can maintain depth within a few centimeters. • Light Control: Control of subsea lighting through the controller. ArduPilot is fully documented within its wiki, totaling the equivalent of about 700 printed pages and divided in six top sections: The Copter, Plane, Rover, and Submarine vehicle related subsections are aimed at users. A "developer" subsection for advanced uses is aimed primarily at software and hardware engineers, and a "common" section regrouping information common to all vehicle types is shared within the first four sections. == Supported hardware ==