Commit fa81247
committed
Switch base-mass randomization to log-uniform scale (drop per-robot overrides)
Change EventsCfg.add_base_mass from additive (-5, 5) kg uniform to
multiplicative (1/1.25, 1.25) log-uniform scale with distribution="log_uniform"
and operation="scale". The range is symmetric in log space (geometric mean
= 1.0), so the randomization has no net mass bias and is scale-invariant
across robot sizes — a single default works for the 2 kg pelvis of Cassie
and the 32 kg base of Anymal-D without per-robot tuning.
Drop the per-robot (-1.0, 3.0) additive overrides on A1, Go1, Go2 (introduced
in PR #3308 [Newton] Locomotion Velocity-Flat envs, 2025-09-18) which have
a +1 kg mean shift that biases controllers toward always-heavier nominal —
a 10% bias on A1's 10 kg base that was actively hurting convergence.
## Why the change
The old (-5, 5) kg additive default was a reasonable tune for Anymal-D
(≈16% range) but too wide for A1 (≈50%) and too narrow for H1 (≈10%).
PR #3308 addressed this with per-robot (-1, 3) overrides on small quadrupeds,
but the range remained asymmetric (mean shifted +1 kg) and tuning was
per-robot.
A multiplicative scale is more physically meaningful — mass scales in
ratio with actuator torque and gravity response, so the perturbation's
effect on gait is a fixed fraction regardless of robot mass. Log-uniform
over [1/1.25, 1.25] gives symmetric perturbation in log space with
geometric mean = 1.0, so the training distribution is unbiased.
## Ablation results (1500-iter Newton unless noted)
| Robot | old default | new log-uniform | Δ |
|-------------|------------:|----------------:|------------:|
| A1 @300 | 3.25 | 10.00 | 3.08x |
| Go1 @300 | 16.30 | 22.29 | 1.37x |
| Anymal-B @300 | 10.92 | 12.47 | 1.14x |
| Anymal-C @300 | 12.31 | 14.64 | 1.19x |
| Go2 @1499 | 18.58 | 24.71 | 1.33x |
| Anymal-D @1499 | 15.62 | 16.09 | 1.03x |
A1's 3x gain is the bias-removal effect: the old (-1, 3) applied +10%
mean mass shift on a 10 kg robot, forcing the controller to spend capacity
compensating for a nonphysical average instead of learning the nominal
gait. The new default's geometric mean 1.0 removes that bias entirely.
Biped configurations (H1, Cassie) are handled in the follow-up PR #5298.
Cassie specifically requires an asymmetric heavier-bias override due to
its closed-loop Achilles coupling being mass-sensitive; that override
ships alongside the biped changes.1 parent 328854d commit fa81247
6 files changed
Lines changed: 25 additions & 8 deletions
File tree
- source/isaaclab_tasks
- config
- docs
- isaaclab_tasks/manager_based/locomotion/velocity
- config
- a1
- go1
- go2
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
4 | 21 | | |
5 | 22 | | |
6 | 23 | | |
| |||
Lines changed: 0 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
33 | 32 | | |
34 | 33 | | |
35 | 34 | | |
| |||
source/isaaclab_tasks/isaaclab_tasks/manager_based/locomotion/velocity/config/go1/rough_env_cfg.py
Lines changed: 0 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
35 | 34 | | |
36 | 35 | | |
37 | 36 | | |
| |||
source/isaaclab_tasks/isaaclab_tasks/manager_based/locomotion/velocity/config/go2/rough_env_cfg.py
Lines changed: 0 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | 33 | | |
37 | 34 | | |
38 | 35 | | |
| |||
Lines changed: 7 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
209 | 209 | | |
210 | 210 | | |
211 | 211 | | |
212 | | - | |
213 | | - | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
214 | 219 | | |
215 | 220 | | |
216 | 221 | | |
| |||
0 commit comments