How skybrush-io/ardupilot works
ArduPilot is a family of autopilot firmware for multirotors, fixed-wing aircraft, ground and surface vehicles, submarines, blimps, and antenna trackers. The principal workflow is a user operating a vehicle through its autopilot; vehicle-specific mode, navigation, and actuator code supports that control. The tree also exposes peripheral firmware and shared persistent-storage layers. The README establishes the product scope, but the sampled source is chiefly storage code, so detailed runtime call wiring is not evidenced and is omitted.
Main entry points: Copter.cpp Copter · Plane.cpp Plane · Rover.cpp Rover · Sub.cpp Submarine
Components 23
Vehicle firmware
Control stages
- Copter modes
ArduCopter/mode.cpp - Plane modes
ArduPlane/mode.cpp - Rover modes
Rover/mode.cpp - Sub modes
ArduSub/mode.cpp - Tracker modes
AntennaTracker/mode.cpp - Blimp modes
Blimp/mode.cpp - Copter navigation
ArduCopter/navigation.cpp - Plane navigation
ArduPlane/navigation.cpp - Rover steering
Rover/Steering.cpp - Sub actuators
ArduSub/actuators.cpp - Tracker servos
AntennaTracker/servos.cpp
Shared runtime
- MAVLink interfaces
ArduCopter/GCS_MAVLink_Copter.cpp - Storage mapping
libraries/StorageManager/StorageManager.cpp - HAL storage
libraries/AP_HAL_ChibiOS/Storage.cpp
Peripheral firmware
- AP_Periph
Tools/AP_Periph/AP_Periph.cpp - Bootloader
Tools/AP_Bootloader/AP_Bootloader.cpp
Other components
- Vehicle operator
Connections 6
- Vehicle operator → Copter: operates
- Vehicle operator → Plane: operates
- Vehicle operator → Rover: operates
- Vehicle operator → Submarine: operates
- Vehicle operator → Antenna tracker: operates
- Vehicle operator → Blimp: operates