SjohnU's picture
Upload folder using huggingface_hub
7243813 verified
|
Raw History Blame Contribute Delete
3.14 kB

r16_deploy (H) β€” deploy candidate: smoothest walker in the r16 series

Trained locally (RTX 5090), report-16. First arm designed for the ROBOT rather than a hypothesis.

Task ETHRC-humanoidv1-walk-r16-deploy-psu-v0
Branch test/SjohnU_remodel_actuators @ b0ceaa8
Checkpoint model_9999.pt (10,000 iters, completed)
Envs / seed 4096 / 42
Actions 26 @ 50 Hz, action_scale 0.25
Base u4_walk_crouch_real + r16 shared (25% standing, track 1.5β†’2.2)
Changes ~65 ms latency + HEJ90 legs 200/10 + upright price (βˆ’10) + spawn-tilt DR + action_rate βˆ’0.3 + feet_clearance removed

It is the least jittery policy in the series β€” by design

Measured with scripts/rsl_rl/measure_gait.py (1000 steps Γ— 64 envs, spawning upright). Jitter β€” not velocity β€” is what predicts real-robot chattering; velocity and cadence cannot see it.

@ 0.5 cmd fwd vel steps/s leg vel RMS action rate sign-flips/s lean
r16_upright (C) β€” fastest, DO NOT DEPLOY 0.406 3.37 1.697 0.126 12.5 0.7Β°
r16_latency_g200 β€” prev. smoothest 0.342 3.48 1.170 0.093 10.6 10.8Β°
r16_deploy (H) 0.369 3.48 1.023 0.074 10.4 3.0Β°

At the 0.8 command H does 0.588 m/s with ~16.5 cm strides, still smoother (RMS 1.206) than C was at 0.5. Stride comes from commanding velocity, not reward shaping (the gait clock pins cadence ~3.5 steps/s, so step_len = v/cadence).

Why this and not the faster r16_upright (C)

C wins every sim metric (0.406 m/s, 0.7Β° lean) but is the jitteriest arm (leg vel RMS 1.697, +40% vs H) because it trained at zero latency β€” it learned 50 Hz twitch-correction. On hardware those corrections arrive ~67 ms late and become oscillation, so C's sim smoothness UNDERSTATES its real jitter. H trains with the measured ~65 ms delay, which is why it is smooth AND deploy-faithful. Latency is load-bearing, not a tax.

action_rate βˆ’0.3 did NOT strangle H (episode length 973/1000). The final_phys sibling that suicided was killed by an over-large PHYSICAL-smoothing block (joint_acc Γ—10, soft_landing Γ—100), not by the action_rate weight.

Known gaps (fold in before final deploy)

  1. Placeholder ankle 2.0/0.15, not the real-measured 8/1.5. The r16_h_ankle Sky arm tests whether the real ankle can walk at all β€” the last deploy-critical unknown.
  2. Velocity-curriculum bug caps forward command at 0.5 (lin_vel_cmd_levels clamps to limit_ranges (-1.0, 0.5)). The r16_h_cmd arm fixes it to (-0.2, 1.2). H's 0.588 at a 0.8 command is extrapolation past its training ceiling.
  3. No foot-height reward β€” feet_clearance was removed (documented bug) and not replaced, so feet_air_time is the only swing incentive. The final-* arms add feet_swing_height_dense.

Files

  • policy.pt, policy.onnx β€” exported via scripts/rsl_rl/play_export.py
  • deploy.yaml β€” gains (legs motor-space ~189.6/9.64 = 200/10 sim), obs/action layout, 50 Hz
  • model_9999.pt β€” raw rsl-rl checkpoint