Code Flight control / interactive map

ArduGeo, from control block to source line.

Explore the PID-only geometric-control path inside ArduPilot. Start with the system architecture, then follow the paper's Guided and Loiter lifecycles into exact source boundaries.

52Interactive mappings
02Lifecycle walkthroughs
23Architecture blocks
81 / 81PID-only unit tests
01 / Interactive architecture

Trace the active control path

Focus a subsystem, then select any block to read its implementation directly in the side inspector—without leaving the architecture.

Tab focus Enter source Esc overview

Interactive ArduGeo PID-only control architectureSelect any highlighted control block to show its exact source mapping in the side inspector.QGC / MAVLink targets — ArduCopter/GCS_MAVLink_Copter.cpp lines 973–1082ModeGuided — ArduCopter/mode_guided.cpp lines 144–240Guided target manager — libraries/AC_GeometricControl/AC_Geometric_GuidedTargetManager.cpp lines 3–65Guided P/V/A + yaw shapers — libraries/AC_GeometricControl/AC_GeometricControl.cpp lines 527–565RC stick input — ArduCopter/mode_loiter.cpp lines 157–175ModeLoiter lifecycle — ArduCopter/mode_loiter.cpp lines 157–249Pilot mapping — ArduCopter/mode_loiter.cpp lines 601–615Dedicated Loiter reference — libraries/AC_GeometricControl/AC_Geometric_LoiterReference.cpp lines 308–735AC_Geometric_Target — libraries/AC_GeometricControl/AC_Geometric_Types.h lines 17–56AHRS / EKF state — ArduCopter/mode.cpp lines 39–60Geometric position PID — libraries/AC_GeometricControl/AC_Geometric_Position_PID.cpp lines 124–207Force + commanded attitude — libraries/AC_GeometricControl/AC_Geometric_Position_PID.cpp lines 209–315SO(3) attitude PID — libraries/AC_GeometricControl/AC_Geometric_Attitude_PID.cpp lines 112–200Output mapper — libraries/AC_GeometricControl/AC_Geometric_OutputMapper.cpp lines 13–52Mode authorization — ArduCopter/mode_guided.cpp lines 249–305Output validity gate — ArduCopter/Attitude.cpp lines 119–151Frame-exclusive ownership arbiter — ArduCopter/Attitude.cpp lines 25–92Native rate PID — libraries/AC_AttitudeControl/AC_AttitudeControl_Multi.cpp lines 488–495Atomic native handoff — ArduCopter/Attitude.cpp lines 38–71AP_Motors frame mixer — ArduCopter/Attitude.cpp lines 166–188HAL per-motor output — libraries/AP_Motors/AP_Motors_Class.cpp lines 96–105External compatibility cache — ArduCopter/mode_guided.cpp lines 2289–2316DataFlash evidence — ArduCopter/Log.cpp lines 489–531
Overview · 23 source-linked blocks
Source-link status. The paths and inspector excerpts are pinned to immutable mapped snapshot 0305a73b4ee0, now published on the public ardugeo-pid branch. Every selected block can open its exact GitHub line range.
02 / Guided lifecycle

Follow Guided from entry to motor ownership

The paper's final Guided lifecycle figure becomes a source-linked walkthrough. Focus a stage, then select a highlighted step to inspect its primary PID-only implementation boundary.

Tab focus Enter source Esc overview

Mapping boundary. This interactive map is pinned to public snapshot 0305a73b4ee0 and explains the supported PID-only lifecycle shown in the paper figure. Unsupported mode semantics remain on their native path.
03 / Loiter lifecycle

Follow Loiter from pilot intent to ground idle

The paper's final Loiter lifecycle figure becomes a source-linked walkthrough of the dedicated reference, shared cascade, actuator ownership, and fallback boundary.

Tab focus Enter source Esc overview

Mapping boundary. This interactive map is pinned to public snapshot 0305a73b4ee0 and explains the supported PID-only lifecycle shown in the paper figure. Unsupported mode semantics remain on their native path.
04 / Evidence boundary

What this page claims

The map describes the verified software architecture for the tested Guided and Loiter PID-only paths. It does not claim HIL or real-flight safety, complete ArduCopter mode coverage, or performance superiority over the native controller.

Source lineage

ArduGeo is derived from ArduPilot. Code excerpts retain the upstream GPLv3 license.