Software and Hardware
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 (either Copter, Plane, Rover, AntennaTracker, or Sub), along with ground station controlling software including Mission Planner, APM Planner, QGroundControl, MavProxy, Tower and others.
ArduPilot source code is stored and managed on GitHub, with almost 400 total contributors.
The software suite is automatically built nightly, with continuous integration and unit testing provided by Travis CI, and a build and compiling environment including the GNU cross-platform compiler and Waf. Pre-compiled binaries running on various hardware platforms are available for user download from ArduPilot's sub-websites.
An octocopter flying with Ardupilot
Copter, Plane, Rover, AntennaTracker or Sub software runs on a wide variety of embedded hardware (including full blown Linux computers), typically consisting of one or more microcontroller or microprocessor connected to peripheral sensors used for navigation. These sensors include MEMS gyroscopes and accelerometers at a minimum, necessary for multirotor flight and plane stabilization. Sensors usually include, in addition, one or more compass, altimeter (barometric) and GPS, along with optional additional sensors such as optical flow sensors, airspeed indicators, laser or sonar altimeters or rangefinders, monocular, stereoscopic or RGB-D cameras. Sensors may be on the same electronic board, or external.
Ground Station software, used for programming or monitoring vehicle operation, is available for Windows, Linux, macOS, iOS, and Android.
ArduPilot runs on a wide variety of hardware platforms, including the following, listed in alphabetical order:
- Intel Aero (Linux or STM32 Base)
- APM 2.X (Atmel Mega Microcontroller Arduino base), designed by Jordi Munoz in 2010. APM, for ArduPilotMega, only runs on older versions of ArduPilot).
- BeagleBone Blue and PXF Mini (BeagleBone Black cape).
- The Cube, formerly called Pixhawk 2, (ARM Cortex microcontroller base), designed by ProfiCNC in 2015.
- Edge, drone controller with video streaming system, designed by Emlid.
- Erle-Brain, (Linux base) designed by Erle Robotics.
- Intel Minnowboard (Linux Base).
- Navio2 and Navio+ (Raspberry Pi Linux based), designed by Emlid.
- Parrot Bebop, and Parrot C.H.U.C.K., designed by Parrot, S.A.
- Pixhawk, (ARM Cortex microcontroller base), originally designed by Lorenz Meier and ETH Zurich, improved and launched in 2013 by PX4, 3DRobotics, and the ArduPilot development team.
- PixRacer, (ARM Cortex microcontroller base) designed by AUAV.
- Qualcomm SnapDragon (Linux base).
- Virtual Robotics VRBrain (ARM Cortex microcontroller base).
- Xilinx SoC Zynq processor (Linux base, ARM and FPGA processor).
In addition to the above base navigation platforms, ArduPilot supports integration and communication with on-vehicle companion, or auxiliary computers for advanced navigation requiring more powerful processing. These include NVidia TX1 and TX2 ( NVidia Jetson architecture), Intel Edison and Intel Joule, HardKernel Odroid, and Raspberry PI computers.