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:

API Modules

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 发布新版本后,请更新上述版本号并重新构建文档。