Diag: BT_TRNRATE probe -- turn-in-place body-rate vs trn-clip cadence (task #50)
Confirmed via BT_TRNRATE + direct disasm of the un-exported perf drive (0x4aa3d3) that turn-in-place rate == walkingTurnRate (speed=0 collapses the lerp) and the trn clip cadence is authentically FIXED -- so the reconstruction is faithful and the residual legs-vs-body slip is authentic (decoupled by design; scaling the clip would deviate from the decomp). Probe left env-gated for future asset-tuning checks. 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
a8eb8a427f
commit
b7be95b584
@@ -2095,6 +2095,32 @@ void
|
||||
legCycleSpeed = 0.0f;
|
||||
(void)AdvanceLegAnimation(dt); // joints only; travel = DeadReckon
|
||||
|
||||
// TURN-STEP rate probe (BT_TRNRATE, 0.5s): body rotation rate vs trn clip advance.
|
||||
if (getenv("BT_TRNRATE"))
|
||||
{
|
||||
static bool s_tinit = false;
|
||||
static float s_tYaw = 0.0f, s_tFrm = 0.0f, s_tAcc = 0.0f, s_tRot = 0.0f, s_tAdv = 0.0f;
|
||||
YawPitchRoll _typ; _typ = localOrigin.angularPosition;
|
||||
const float yaw = (float)_typ.yaw, frm = (float)legAnimation.currentFrame;
|
||||
if (s_tinit)
|
||||
{
|
||||
float dy = yaw - s_tYaw; if (dy > 3.14159f) dy -= 6.28319f; if (dy < -3.14159f) dy += 6.28319f;
|
||||
s_tRot += (dy < 0.0f) ? -dy : dy;
|
||||
const float df = frm - s_tFrm;
|
||||
if (df > 0.0f) s_tAdv += df;
|
||||
}
|
||||
s_tYaw = yaw; s_tFrm = frm; s_tinit = true;
|
||||
s_tAcc += dt;
|
||||
if (s_tAcc >= 0.5f)
|
||||
{
|
||||
DEBUG_STREAM << "[trnrate] bodyRot/s=" << (s_tRot / s_tAcc) << "rad"
|
||||
<< " legFrm/s=" << (s_tAdv / s_tAcc)
|
||||
<< " legState=" << (int)legStateAlarm.GetLevel()
|
||||
<< " turnDemand=" << MappingMapper()->turnDemand << "\n" << std::flush;
|
||||
s_tAcc = 0.0f; s_tRot = 0.0f; s_tAdv = 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
// Cadence-vs-travel sync probe (0.25s, ~4 flush/s -- cheap). Compares
|
||||
// the leg CADENCE input (bodyTargetSpeed / legCycleSpeed) against the
|
||||
// ACTUAL dead-reckoned ground speed; if the legs are in sync the two
|
||||
|
||||
Reference in New Issue
Block a user