# r16_final_act — BEST-checkpoint bundle (model_9000) **`policy.pt` / `policy.onnx` here are model_9000, the BEST checkpoint by measured velocity (1.004 m/s @ cmd 1.2), NOT the final model_9999 (0.977 m/s).** `model_9999.pt` is retained in this folder for reference only. | | | |---|---| | Task | `ETHRC-humanoidv1-walk-r16-final-act-psu-v0` | | Deployed checkpoint | `model_9000.pt` (best of the run) | | Measured @ cmd 1.2 | 1.004 m/s | | Branch | `test/SjohnU_remodel_actuators` | | rsl-rl | 5.0.1 | ## Best-checkpoint selection (model_9999 is the LAST, not the BEST) Each candidate's late checkpoints were measured at command 1.2 (deploy speed) and the highest selected. `model_9999` won for only 3 of 7 — for the other 4 an earlier checkpoint is better, by up to +22%. | run | best ckpt | best m/s @1.2 | model_9999 @1.2 | delta | |---|---|---|---|---| | r16_final_act | **model_9000** | **1.004** | 0.977 | +0.027 (first >1 m/s) | | r16_h2_noar | model_9999 | 0.888 | 0.888 | — | | r16lat_g210 | **model_8000** | **0.838** | 0.708 | +0.130 (+18%) | | r16lat_g220 | model_9999 | 0.981 | 0.981 | — | | r16lat_g230 | model_9999 | 0.884 | 0.884 | — | | r16lat_g240 | **model_8000** | **0.958** | 0.883 | +0.075 (+8%) | | r16lat_g250 | **model_8000** | **0.925** | 0.760 | +0.165 (+22%) | Per-checkpoint measurements (m/s @ cmd 1.2): | run | 5000 | 6000 | 7000 | 8000 | 9000 | 9999 | |---|---|---|---|---|---|---| | final_act | 0.514 | 0.870 | 0.973 | 0.941 | **1.004** | 0.977 | | h2_noar | 0.840 | 0.857 | 0.870 | 0.845 | 0.818 | **0.888** | | g210 | 0.749 | 0.717 | 0.803 | **0.838** | 0.777 | 0.708 | | g220 | 0.775 | 0.801 | 0.958 | 0.893 | 0.947 | **0.981** | | g230 | 0.803 | 0.857 | 0.792 | 0.865 | 0.833 | **0.884** | | g240 | 0.933 | 0.865 | 0.957 | **0.958** | 0.956 | 0.883 | | g250 | 0.642 | 0.745 | 0.781 | **0.925** | 0.794 | 0.760 | ### This corrects the gain-sweep conclusion The gain curve is FLAT, not a sharp inverted-U. The earlier "sharp peak at g220, dropoff by g250" was an artifact of comparing final (model_9999) checkpoints, which land at noisy points: ``` model_9999 only (WRONG): g210 .708 g220 .981 g230 .884 g240 .883 g250 .760 best-of (CORRECT): g210 .838 g220 .981 g230 .884 g240 .958 g250 .925 ``` On best checkpoints, g220-g250 are a broad plateau (~0.88-0.98 m/s) -- leg stiffness in this range barely matters. The apparent g250 collapse (0.760) was purely that run sitting at a poor iter-9999; its true best is 0.925. **Judge policies on their best measured checkpoint, not their last.** ## Files - `policy.pt`, `policy.onnx` — the BEST checkpoint (model_9000), exported for deploy - `deploy.yaml` — deploy config (50 Hz) - `model_9000.pt` — the best raw checkpoint - `model_9999.pt` — the final checkpoint, kept for reference