also looking at this
feat: correlate VTOL hover mode observations
#77
10 files
+507
-28
| @@ -37,7 +37,9 @@ The hover demonstration commands the pusher and three surfaces to zero. Calibrat | ||
| 37 | 37 | IMU/GNSS samples feed the owned estimator. The controller receives estimated pose, a current qualified |
| 38 | 38 | raw gyro capture and delayed contact measurements. Plant truth is used for sensor synthesis and |
| 39 | 39 | independent evaluation, never as controller input. Initial north heading and a flat contact plane |
| 40 | are declared simulation assumptions. Landing uses a 0.1 m below-plane target to obtain finite | |
| 40 | are declared simulation assumptions. A fictional skid friction coefficient of 0.5 supplies bounded | |
| 41 | horizontal braking from normal support at contact. It does not model impact impulses, gear deformation, | |
| 42 | tipping, damage or uneven terrain. Airborne motion receives no contact friction. Landing uses a 0.1 m below-plane target to obtain finite | |
| 41 | 43 | contact; mission completion still requires estimated arrival, low speed, settling and fresh contact. |
| 42 | 44 | |
| 43 | 45 | Contact and paused-ground neutral decisions occur after estimator/rate validation. A stale gyro |
| @@ -51,10 +53,21 @@ fictional hover experiment. They are not identified electrical power, measured e | ||
| 51 | 53 | complete hybrid energy model. Neutral outputs during an airborne fault do not establish a safe |
| 52 | 54 | emergency landing. Physical flight commands remain disabled. |
| 53 | 55 | |
| 56 | ## Explicit hover observation in library plans | |
| 57 | ||
| 58 | Library plans can declare a VTOL-only `vtol-mode` task with `mode: 'hover'`, an explicit heading | |
| 59 | and a finite timeout. The held position must equal the request position. The mission emits a task, reference and epoch-bound request. The hover adapter | |
| 60 | requires fresh post-request contact, estimated pose and raw gyro sources, with a 200 ms stability | |
| 61 | dwell on both the monotonic decision clock and source coverage. It reports the oldest source capture epoch. The shared runtime delivers each controller | |
| 62 | response once on the next mission tick and retains it for replay. Initial contact holds all outputs | |
| 63 | neutral until observation is qualified. Unobserved headings expire, and this hover adapter reports | |
| 64 | cruise requests as aborted. This is a library prerequisite, not front/back transition control or a | |
| 65 | new CLI scenario. Existing hover-only recordings keep their prior shapes. | |
| 66 | ||
| 54 | 67 | ## Remaining implementation |
| 55 | 68 | |
| 56 | [Issue #12](https://github.com/stacksjs/drone/issues/12) remains open for explicit correlated | |
| 57 | transition requests and observed outcomes, front/cruise/back control, airspeed and attitude | |
| 69 | [Issue #12](https://github.com/stacksjs/drone/issues/12) remains open for full correlated front/back | |
| 70 | transition control and observed outcomes, airspeed and attitude | |
| 58 | 71 | qualification, bounded transition abort/recovery, complete hybrid power/reserve accounting and |
| 59 | 72 | the common mission workspace. Full TECS/soaring, tiltrotor/tailsitter mechanisms, helicopters and |
| 60 | 73 | other airframe families remain separate work. Native board control, measured airframe identification, |