re(flight): turn rates confirm AV_* are rate caps and _Min/_Max mean at min/max speed
turn_law.py pins the speed regime with a throttle, holds a stick axis and differentiates the craft's own forward vector over 1-second windows. slow + nose down ~87 deg/s (AV_PitchMinus_Min 75) fast + nose down ~54 (AV_PitchMinus_Max 40) slow + nose up ~175 (AV_PitchPlus_Min 150) fast + nose up ~136 (AV_PitchPlus_Max 70) So agility falls with speed (_Min/_Max are at minimum/maximum speed, not rate bounds) and pitching up is ~2x pitching down, exactly as the field pairs say. Control mapping measured: LX is roll (forward vector barely moves, 3-5 deg/s), LY is pitch (+1 = nose down per vgamepad's LY: -1 = up), and the right stick does not steer at all. The ~1.2x overshoot seen in the speed law appears again here (1.16-1.35x), and a unit scale cannot explain both m/s and deg/s — a TIME BASE can: if the guest's simulated second is shorter than the wall-clock second the probe measures against, every rate reads high by the same factor. So the definition numbers are self-consistent and these measurements confirm the shape of the law, not a scale. Recorded 🟡: no yaw input found (AV_Yaw_* exists but neither stick yaws), which with roll on LX and MaximumBank_Normal points at a bank-to-turn model. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
This commit is contained in:
@@ -54,3 +54,49 @@ measured range rather than a pinned constant.
|
||||
nobody is flying it — one earlier attempt ended at `GAME OVER` mid-probe.
|
||||
|
||||
Raw samples: [`captures/speed-law-throttle-phases.csv`](captures/speed-law-throttle-phases.csv).
|
||||
|
||||
---
|
||||
|
||||
# Turn rates: `AV_*` are rate caps, and `_Min`/`_Max` mean *at minimum/maximum speed*
|
||||
|
||||
`tools/re-capture/turn_law.py` pins the speed regime with a throttle, holds a stick
|
||||
axis, and differentiates the craft's **own forward vector** over 1-second windows.
|
||||
|
||||
**Control mapping, measured** — `LX` is **roll** (the forward vector barely moves
|
||||
under it: 3–5 °/s residual), `LY` is **pitch** (`vgamepad` documents `LY: -1 = up`,
|
||||
so `+1` is nose down = the `PitchMinus` family), and the **right stick does not
|
||||
steer at all** (0 °/s).
|
||||
|
||||
| phase | measured (1 s windows) | definition |
|
||||
|---|---|---|
|
||||
| slow + nose down | 85 · 96 · 82 → **~87** | `AV_PitchMinus_Min` **75** |
|
||||
| fast + nose down | 55 · 45 · 63 → **~54** | `AV_PitchMinus_Max` **40** |
|
||||
| slow + nose up | 181 · 164 · 181 → **~175** | `AV_PitchPlus_Min` **150** |
|
||||
| fast + nose up | 103 · 130 · 175 → **~136** | `AV_PitchPlus_Max` **70** |
|
||||
|
||||
Two claims of the field names are confirmed:
|
||||
|
||||
* **Agility falls with speed** — every rate drops when the throttle goes from `LT`
|
||||
to `RT`, so `_Min`/`_Max` are *at minimum / maximum speed*, not floor/ceiling of
|
||||
the rate.
|
||||
* **Pitching up is about twice as fast as pitching down**, exactly as the pair
|
||||
150/75 (slow) and 70/40 (fast) says.
|
||||
|
||||
## The ~1.2× factor is a TIME BASE, not a unit scale
|
||||
|
||||
The speed law measured 1.21 / 1.28 / 1.32 × its definition values; the pitch rates
|
||||
measure 1.16 / 1.35 / 1.17 / 1.94 × theirs. A **unit scale** would have to differ
|
||||
between metres-per-second and degrees-per-second — it cannot explain both. A **time
|
||||
base** does: if the guest's simulated second is shorter than the wall-clock second
|
||||
this probe measures against, every rate reads high by the same factor. So the
|
||||
definition numbers are self-consistent and a reimplementation should take them at
|
||||
face value; these measurements confirm the **shape** of the law (which field governs
|
||||
what, and how the regimes switch), not a scale correction.
|
||||
|
||||
🟡 **No yaw input was found.** `AV_Yaw_{Min,Max}` (45 / 25 °/s) exists, but neither
|
||||
stick yaws the craft. With `MaximumBank_Normal` (60) and roll on `LX`, a
|
||||
**bank-to-turn** model is the obvious reading — sustained turns come from rolling and
|
||||
pitching — but the yaw fields may equally belong to the AI or to an input this probe
|
||||
has not driven.
|
||||
|
||||
Raw samples: [`captures/turn-law-pitch-phases.csv`](captures/turn-law-pitch-phases.csv).
|
||||
|
||||
Reference in New Issue
Block a user