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: