ArduPilot API Reference¶
Welcome to the ArduPilot API documentation. This reference documents the core libraries used in ArduPilot for UAV autopilot development.
Overview¶
ArduPilot is a comprehensive autopilot software suite supporting multiple vehicle types:
Copters: Multirotor drones (quadcopters, hexacopters, etc.)
Planes: Fixed-wing aircraft
Rovers: Ground vehicles
Submarines: Underwater vehicles
The API is organized into several key modules:
Quick Links¶
Sensor Libraries - GPS, Barometer, Compass, Airspeed, AHRS, RangeFinder
Navigation & EKF - EKF, Terrain, Optical Flow
Control Libraries - PID, Attitude Control, Waypoint Navigation
Fixed-Wing Control - TECS, Fixed-wing control
Rover & Ground Vehicles - Rover motors, waypoint navigation
Power & Battery Management - Battery monitoring, RPM
Safety Systems - Arming, Fence, Failsafe
Communication Libraries - MAVLink, RC Input, Telemetry
CAN Bus & DroneCAN - CAN Bus, DroneCAN
Mission, Parameters & Motors - Mission, Parameters, Motors
Peripherals & Extensions - Camera, Gimbal, Scripting
Utilities & Hardware - Storage, ADC, Scheduling
Developer Guide - Developer Guide
Vehicle Types¶
ArduPilot supports multiple vehicle types, each with specialized libraries:
Multicopter (Copter): libraries/AC_AttitudeControl/, libraries/AC_WPNav/
Fixed-wing (Plane): libraries/AP_TECS/, libraries/AC_Fence/
Rover: libraries/AR_Motors/, libraries/AR_WPNav/
Submarine: libraries/AC_AttitudeControl/
Core Concepts¶
Singleton Pattern: Most ArduPilot classes use a singleton pattern for easy access:
// Get singleton instance
AP_GPS *gps = AP_GPS::get_singleton();
AP_AHRS &ahrs = AP_AHRS::get_singleton();
AP_Baro *baro = AP_Baro::get_singleton();
Update Loop: Sensors and controllers must be updated in the main loop:
void loop() {
// Update sensors
gps->update();
baro->update();
ahrs.update();
// Update control
attitude_control->rate_controller_run();
}
Indices and tables¶
Note
文档版本: 基于 ArduPilot ArduPilot-4.6.0-beta1
最后更新: 2026-03-19
更新日志: 当 ArduPilot 发布新版本后,请更新上述版本号并重新构建文档。