|
Download r16_deploy/README.md from ETHRC-humanoid/rc-humanoid-locomotion: direct link, hf CLI and curl.
- Browser
- Download file 3.14 kB
-
https://huggingface.co/ETHRC-humanoid/rc-humanoid-locomotion/resolve/main/r16_deploy/README.md
- Command line
-
hf download hf://ETHRC-humanoid/rc-humanoid-locomotion/r16_deploy/README.md
-
curl -L -o README.md https://huggingface.co/ETHRC-humanoid/rc-humanoid-locomotion/resolve/main/r16_deploy/README.md
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 | |