ArduPilot
Open-source autopilot for drones, rovers, subs, and more.
ArduPilot is an open-source autopilot software suite published under the GNU GPL version 3. It controls multirotor drones, fixed-wing and VTOL aircraft, RC helicopters, ROVs, ground rovers, boats, submarines, uncrewed surface vessels, AntennaTrackers, and blimps. Originally developed by hobbyists for model aircraft and rovers, it has evolved into a full-featured autopilot used by industry, research organizations, amateurs, and militaries.
Quick Facts
- Developer
- ArduPilot Development Team and Community
- Repo
- github.com/ArduPilot
- Programming Language
- C++, Python
- Operating System
- Cross-platform
- Genre
- Autopilot
- License
- GPLv3
Facts from the source article.
Lore & Background
The ArduPilot project traces its roots to late 2007, when Jordi Munoz wrote an Arduino program called 'ArduCopter' to stabilize an RC helicopter. In 2009, Munoz and Chris Anderson released ArduPilot 1.0 along with a hardware board. That same year, Munoz won the first Sparkfun AVC competition with a traditional RC helicopter UAV. The project grew through the DIY Drones community, founded by Chris Anderson in 2007. Early versions supported only fixed-wing aircraft using thermopile sensors, later replaced by an Inertial Measurement Unit (IMU). Vehicle support expanded to Copter, Plane, Rover, and Submarine subprojects. In 2011–2012, contributions from Andrew 'Tridge' Tridgell and Pat Hickey added automatic testing, simulation, PyMavlink, Mavproxy, and the AP_HAL hardware abstraction layer. Randy Mackay became lead maintainer of Copter in 2012, and Tridge took over Plane maintenance.
Reader's Guide
ArduPilot's significance lies in its evolution from a hobbyist project into a reliable autopilot adopted by industry, research, amateurs, and militaries. The software suite includes navigation firmware for vehicles and ground station software such as Mission Planner, APM Planner, QGroundControl, MavProxy, and Tower. It supports fully autonomous, semi-autonomous, and manual flight modes, programmable 3D waypoint missions, geofencing, stabilization, simulation with SITL, and a wide range of sensors including RTK GPS, barometers, magnetometers, laser and sonar rangefinders, optical flow, ADS-B transponder, and computer vision devices. Failsafes cover loss of radio, GPS, boundary breaches, and low battery. It operates in GPS-denied environments using vision-based positioning, optical flow, SLAM, and Ultra Wide Band. The codebase was rewritten in C++ with Python utilities, and runs on diverse hardware from Arduino-based APM 2.X to Linux boards like Raspberry Pi, Intel Aero, Qualcomm SnapDragon, and Xilinx Zynq. Documentation totals about 700 printed pages across six sections: Copter, Plane, Rover, Submarine, Developer, and Common.
Did You Know?
- ArduPilot was originally called 'ArduCopter' and written as an Arduino program to stabilize an RC helicopter.
- The first ArduPilot version used thermopile sensors to detect the horizon by measuring temperature differences between sky and ground.
- ArduPilot runs on hardware ranging from Arduino-based APM 2.X to Linux computers like Raspberry Pi and Qualcomm SnapDragon.
- The project's codebase was rewritten in C++ with Python utilities, and includes a Hardware Abstraction Layer (AP_HAL) introduced by Pat Hickey.
More in Unmanned Aerial Vehicles 1-24
Spotted an error? Know more?
Reader corrections go straight into our review queue. Suggest an edit · How this site is sourced
