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