The libraries are shared with Copter, Plane and Rover. Below is a high level list of libraries and their function.
- 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.
- 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