a1-parkour · blind rough walker · gait symmetry

Does a symmetric trunk fix the limp?

Every A1 teacher run on this stack has produced an asymmetric gait — front-rear drag and a floating rear leg — and reward tuning was tried and rejected. One untested explanation is the robot: with an asymmetric trunk the optimal policy is asymmetric, so RL will find the limp. This tests that on the cheapest task available, blind rough walking, 500 iterations per arm.

Contact patterns

The plot that actually shows a limp. Each lane is one foot; filled means loaded. A balanced trot shows four lanes of equal thickness in diagonal pairs — uneven lane thickness between the front pair (blue) and rear pair (amber) is the front-rear drag.

front feet in stance rear feet in stance swing

stock trunk (control)

final reward 12.78  ·  front/rear duty gap 0.134  ·  left/right duty gap 0.029

FLFRRLRR03.2 s

contact duty

FL0.76FR0.79RL0.64RR0.64

swing clearance

FL1.77 cmFR1.81 cmRL3.32 cmRR2.55 cm

foot slide in stance

FL14.26 cm/sFR18.67 cm/sRL16.76 cm/sRR17.11 cm/s

symmetric + COM jitter

final reward 6.73  ·  front/rear duty gap 0.040  ·  left/right duty gap 0.037

FLFRRLRR03.2 s

contact duty

FL0.78FR0.76RL0.72RR0.73

swing clearance

FL2.15 cmFR1.74 cmRL3.70 cmRR1.77 cm

foot slide in stance

FL35.95 cm/sFR44.10 cm/sRL40.77 cm/sRR38.27 cm/s

symmetric, no jitter

final reward 10.74  ·  front/rear duty gap 0.080  ·  left/right duty gap 0.042

FLFRRLRR03.2 s

contact duty

FL0.80FR0.79RL0.73RR0.70

swing clearance

FL1.51 cmFR2.72 cmRL2.87 cmRR2.60 cm

foot slide in stance

FL46.62 cm/sFR45.28 cm/sRL44.57 cm/sRR35.92 cm/s

Asymmetry, lower is better

metricstock trunk (control)symmetric + COM jittersymmetric, no jitter
L-RF-RL-RF-RL-RF-R
duty0.030.130.040.040.040.08
clearance cm0.811.152.350.791.480.62
slide cm/s4.760.4710.650.519.985.70

Scale-free asymmetry

Raw spread scales with magnitude, and the symmetric arms slide about 2.5× more overall, so the honest comparison divides each spread by its own mean. Lower is more balanced; the best arm in each row is bold.

metricaxisstock trunk (control)symmetric + COM jittersymmetric, no jitter
contact dutyfront ↔ rear0.1900.0540.106
contact dutyleft ↔ right0.0410.0500.056
swing clearancefront ↔ rear0.4860.3360.255
swing clearanceleft ↔ right0.3441.0020.609
foot slidefront ↔ rear0.0280.0130.132
foot slideleft ↔ right0.2850.2680.232
Front–rear balance improves, consistently. Contact-duty asymmetry falls from 0.190 to 0.054 / 0.106, and swing-clearance asymmetry from 0.486 to 0.336 / 0.255. Both symmetric arms move the same way, so this is not a convergence artifact of one run. In raw terms the control's rear feet carry duty 0.64 / 0.64 against 0.76 / 0.79 at the front — the rear legs are simply on the ground less, which is the front-rear drag written as a number.

Left–right does not improve, and clearance gets worse. Duty and slide are essentially unchanged once normalised, but left–right clearance asymmetry rises from 0.344 to 0.609 / 1.002. Symmetrising the trunk removes a fore–aft bias; there is no reason it should fix a left–right one, and it did not.

What this does and does not establish

Watch it

stock trunk (control)duty 0.76 / 0.79 / 0.64 / 0.64 (FL FR RL RR)
symmetric + COM jitterduty 0.78 / 0.76 / 0.72 / 0.73 (FL FR RL RR)
symmetric, no jitterduty 0.80 / 0.79 / 0.73 / 0.70 (FL FR RL RR)