Summary
Adds an original experimental lift-and-cruise VTOL controller and nominal/turning mission profile under resources/functions/drone/, building on #77 and the owned sensor, estimator, mission, authority and independent output-lease loop.
qualified gyro + navigation + capture-aligned relative airflow
-> front transition -> wing-supported cruise
-> pusher-off deceleration -> observed position/heading hover -> vertical contactWing lift replaces rotor support, pressure-scaled surfaces share torque with residual rotors, and actual post-request observations qualify each transition. Back capture has a finite 45-second planning allowance charged to the complete 131,520 ms / 43.84 Wh declared mission budget; front remains 15 seconds. The original 15-second back case still fails without retry.
Evidence
- Before: existing hover-only adapter aborted cruise; the first full route lacked back capture; turning breached the existing height envelope. Recorded controller regressions also reproduced oldest-source overclaim and wrong-heading hover confirmation.
- After: actual nominal and turning routes complete through raw sensors and the owned estimator, with trace/replay agreement and neutral final independent outputs. Capture attitude/gyro epochs now govern admission and dwell; observed heading must remain within 0.1 rad through the 500 ms hover dwell.
- 175 tests / 4,870 assertions across 14 files pass, including 24 real runtime fault campaigns across four phases, failed modeled pusher, co-moving-air fault, unchanged hover CLI and other vehicle regressions. Native lint, application/runtime types and the 90-page docs build pass. Both independent review axes are clean.
- Exact-head CI failed when GitHub reported hosted-runner communication loss during
./buddy test; its check log is absent from the original downloaded archive. Four other jobs succeeded. No test verdict is inferred, and the original failure/incomplete archive are retained without rerun or log refetch. Parent #77 subsequently passed its exact-source local full suite and all five CI jobs and is published on main. - PR #79 includes this library plus reviewed stable-phase lifecycle and documentation updates. Its new full workflow qualifies that new revision separately; main publication remains pending.
Merge Danger
Door: Two-way. Library simulation and mission policy changes can be reverted without a data migration.
Blast Radius: Modeled VTOL. This adds a library experiment; the native CLI remains hover-only. The 45-second hover mode cap also affects mission plan validation.
Physical outputs remain inhibited. This does not complete #12: phase pause/recovery, explicit bounded abort/landing, complete hybrid electrical power/reserve, full-transition CLI/workspace, wind/envelope campaigns and measured board/HIL/flight qualification remain open. No ArduPilot/PX4 feature-parity or safe airborne-recovery claim.