ArduPilot Libraries¶
The libraries are shared with Copter, Plane and Rover. Below is a high level list of libraries and their function.
Core libraries:
AP_AHRS - attitude estimation using DCM or EKF
AP_Common - core includes required by all sketches and libraries
AP_Math - various math functions especially useful for vector manipulation
AC_PID - PID(Proportional-Integral-Derivative) controller library
AP_InertialNav - inertial navigation library for blending accelerometer inputs with gps and baro data
AC_AttitudeControl - ArduCopter’s control library includes various functions of attitude, position control based on PID control.
AC_WPNav - waypoint navigation library
AP_Motors - multicopter and traditional helicopter motor mixing
RC_Channel - a library to more convert pwm input/output from APM_RC into internal units such as angles
AP_HAL, AP_HAL_ChibiOS, AP_HAL_Linux - libraries to implement the “Hardware abstraction layer” which presents an identical interface to the high level code so that it can more easily be ported to different boards.
Sensor libraries:
AP_InertialSensor - reads gyro and accelerometer data, perform calibration and provides data in standard units (deg/s, m/s) to main code and other libraries
AP_RangeFinder - sonar and ir distance sensor interfaced library
AP_Baro - barometer interface library
AP_GPS - gps interface library
AP_Compass - 3-axis compass interface library
AP_OpticalFlow - optical flow sensor interface library
Other libraries:
AP_Mount, AP_Camera, AP_Relay - camera mount control library, camera shutter control libraries
AP_Mission - stores/retrieves mission commands from eeprom