SjohnU commited on
Commit
60cdac2
·
verified ·
1 Parent(s): acbd26f

Correct bigstep card: invalid reward-term comparison -> measured m/s (0.009); attribute failure to foot-lift

Browse files
Files changed (1) hide show
  1. u4_walk_bigstep_v1/README.md +41 -23
u4_walk_bigstep_v1/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # u4_walk_bigstep_v1 — crouch "bigstep" walker (NEGATIVE RESULT)
2
 
3
  Trained on skynet/SkyPilot, AWS us-east-2, 1x L40S (g6e.xlarge), storage-free.
4
 
@@ -12,34 +12,52 @@ Trained on skynet/SkyPilot, AWS us-east-2, 1x L40S (g6e.xlarge), storage-free.
12
  | Actions | 26 @ 50 Hz |
13
  | wandb | [`agioi2ya`](https://wandb.ai/sjohnu-eth-z-rich/rc_humanoid_rl/runs/agioi2ya) |
14
 
15
- ## Result: bigstep did not improve on the crouch baseline
16
 
17
- | Walker | `track_lin_vel_xy` | `mean_reward` |
18
- |---|---|---|
19
- | **u4_walk_bigstep_v1** (this) | **0.778** | -1.77 |
20
- | `u4_walk_crouch_real_imudr` | 0.777 | -1.13 |
21
- | `crouch_nogait` | **1.838** | **+54.2** |
22
 
23
- The bigstep envelope landed statistically indistinguishable from the crouch walker it was
24
- meant to beat (0.778 vs 0.777). `crouch_nogait` remains the best walker by ~2.4x on tracking
25
- velocity, and is the only one of the three with positive mean reward.
 
 
 
 
 
26
 
27
- ## It converged by ~iter 7k
 
28
 
29
- | phase | tvel | ep_len |
30
- |---|---|---|
31
- | first 10% | 0.395 | 451 |
32
- | 25-35% | 0.745 | 694 |
33
- | 50-60% | 0.741 | 717 |
34
- | 75-85% | 0.780 | 787 |
35
- | last 10% | 0.778 | 711 |
36
 
37
- Plateaued around 25-35% of training; the remaining ~18k iterations bought ~+4% tvel for
38
- ~13 GPU-hours. **Cap future runs of this task at ~10k iters.**
39
 
40
- Note: the negative `mean_reward` vs the early-training value is not policy degradation —
41
- early episodes are short (451 steps) and accumulate fewer penalties; reward drops as
42
- episodes lengthen to ~750.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
 
44
  ## Files
45
 
 
1
+ # u4_walk_bigstep_v1 — crouch "bigstep" walker (NEGATIVE RESULT: marches in place)
2
 
3
  Trained on skynet/SkyPilot, AWS us-east-2, 1x L40S (g6e.xlarge), storage-free.
4
 
 
12
  | Actions | 26 @ 50 Hz |
13
  | wandb | [`agioi2ya`](https://wandb.ai/sjohnu-eth-z-rich/rc_humanoid_rl/runs/agioi2ya) |
14
 
15
+ ## Result: it does not translate — 0.009 m/s
16
 
17
+ Measured with `scripts/rsl_rl/measure_gait.py` (1000 steps x 64 envs, forward command forced).
18
+ **Physical units.** Reward-term values are NOT comparable across configs with different
19
+ weight/std -- see the correction note below.
 
 
20
 
21
+ | policy | cmd | fwd vel | cadence | step length | lean |
22
+ |---|---|---|---|---|---|
23
+ | r16_upright @ 0.8 | 0.8 | **0.634 m/s** | 3.30/s | 19.2 cm | 1.5° |
24
+ | crouch_nogait | 0.5 | 0.572 | 8.14/s | 7.0 cm | 5.3° |
25
+ | r16_upright @ 0.5 | 0.5 | 0.406 | 3.37/s | 12.0 cm | 0.7° |
26
+ | u4_walk_crouch_real (22k) | 0.5 | 0.397 | 3.48/s | 11.4 cm | 9.9° |
27
+ | r16_latency (10k) | 0.5 | 0.347 | 3.39/s | — | 13.3° |
28
+ | **u4_walk_bigstep_v1 (this)** | 0.5 | **0.009** | 1.71/s | **0.5 cm** | 20.9° |
29
 
30
+ It steps (1.71 steps/env/s) and reaches 0.122 m clearance, but translates 0.5 cm per step:
31
+ it marches in place.
32
 
33
+ ## Why: the foot-lift layer, not the latency
 
 
 
 
 
 
34
 
35
+ bigstep changed four things at once. The report-16 one-change-at-a-time series
36
+ (`r16_*`, branch `test/SjohnU_remodel_actuators`) attributed the failure:
37
 
38
+ - **`r16_footlift`** (`feet_clearance` 1.0@0.15 -> 2.4@0.17, bigstep's foot-lift layer alone):
39
+ **0.001 m/s** -- the worst arm measured, worse than its own control. This is bigstep's killer.
40
+ - **`r16_latency`** (~65 ms command latency alone): **0.347 m/s** -- latency HELPS. It was not
41
+ the culprit.
42
+ - **`r16_latency_g200`** (latency + legs 200/10): 0.342 m/s -- the gain change is free.
43
+ - **Lean is not causal**: `r16_latency` walks at 13.3° BACK, `r16_upright` at 0.7°, this fails
44
+ at 20.9°. Lean predicts nothing; the 20.9° here is a correlate, not the cause.
45
+
46
+ The unifying rule (see `r16_upright`): the policy sits in a **stand-and-micro-correct local
47
+ optimum**; anything that makes standing untenable (latency, spawn-tilt DR, more iters) forces a
48
+ real gait, and anything that *enriches* standing (this foot-lift layer) kills it.
49
+
50
+ ## Correction (2026-07-16)
51
+
52
+ An earlier version of this card compared `track_lin_vel_xy` reward-term values across policies
53
+ (0.778 here vs 1.838 for `crouch_nogait`) and concluded `crouch_nogait` was "best by ~2.4x".
54
+ **That comparison was invalid** -- those runs use different reward weights/std, so their
55
+ reward-term values are not comparable. It also masked the real story: this policy scored
56
+ tvel 0.778 while moving 0.009 m/s. Judge on `measure_gait.py` physical units only.
57
+
58
+ The same card advised capping this lineage at ~10k because reward "plateaued by ~7k". That
59
+ plateau was a *stuck* policy flatlining, not a converged walker -- `u4_walk_crouch_real` only
60
+ learns to translate between 15k and 22k. Do not generalize this run's plateau.
61
 
62
  ## Files
63