Diag: speed-change investigation -- authentic analog throttle CONFIRMED, harnesses + gait probes (task #50)
Decomp workflow w0odszxro settled the speed model: the pod throttle was ANALOG- CONTINUOUS (RIO Ranger, 800 ADC counts, 0.05 deadband; sole detent = snap-to-1.0 within 0.05 @004d196c). '5 speeds' is FALSE -- the 1-5 keys are MFD mode pages; the 0..5 stepper is HUD/radar zoom. BONUS: throttleState@0x4a4 is a MISNOMER -- binary census proves it is the fall-contact surface material cache (0..7, init 2=Concrete), written only at knockdown; rename pending. Empirical rule-outs (autonomous drive-sweep harness, this commit): - Record density: with the clock guard + incremental heading in, a per-frame continuous demand sweep measures IDENTICAL to constant throttle on position evenness ([repljit]), render heading ([rendhdg]), and gait cadence ([gaitev]). - Type-3 stomps: ~0 fire in sustained sweeps (only at launch) -- not the driver. - The 0.05-grid keyboard publish experiment is retained env-gated OFF (BT_GRID_LEVER) -- the ADC was ~continuous, so the grid is NOT authentic and gains nothing measurable; default publish stays continuous (authentic). New tooling: BT_DRIVE_SWEEP[0] (forced-drive triangle sweep, optional through- zero), BT_FORCE_STEP (0.05-grid variant), BT_GAITEV (per-frame leg-clip advance + state-flip + demand-change stats), [t3rx] (type-3 stomp trace). STATUS: user still reports visible speed-change glitches in interactive play; all harness metrics saturate at baseline -- next step is probes ON the user's interactive session (their eyes + instruments on the same run). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
93456be051
commit
2c6db6a2de
@@ -1872,6 +1872,12 @@ void
|
||||
case 3: // leg/body state + stability
|
||||
{
|
||||
Mech__StateUpdateRecord *record = (Mech__StateUpdateRecord *)message;
|
||||
if (getenv("BT_GAITEV"))
|
||||
DEBUG_STREAM << "[t3rx] legState=" << record->legState
|
||||
<< " reset=" << record->legResetLatch
|
||||
<< " myLegState=" << (int)legStateAlarm.GetLevel()
|
||||
<< " myLegFrm=" << legAnimation.currentFrame
|
||||
<< " spd=" << record->speedDemand << "\n" << std::flush;
|
||||
{
|
||||
// CLOCK GUARD (keyboard-skip fix): the base reader stamps lastUpdate=Now()
|
||||
// on EVERY record ('HACK' per SIMULATE.cpp:276). Non-pose records carry no
|
||||
|
||||
Reference in New Issue
Block a user