A box sliding at metres per second hops and rocks¶
What is wrong¶
A box on MuJoCo's soft contact that slides fast lifts off its support and rocks, more the faster it slides. Its
slide keeps the Coulomb rate. A cube pushed along the floor to about 2.5 m/s rises a few millimetres and pitches by
1-2 degrees peak to peak (a small cube by up to 7 degrees), where a rigid one would stay flat. A low, wide box
slides flat. Slow slides (the light-box law tests/contact/test_light_sliding_tip.py, up to 1.6 m/s) stay within
0.1 mm.
Number¶
Cubes (1,000 kg/m3) on the ground (mu 0.5), settled, then pushed at their centre by 1.5 mu m g, so they reach about 2.5 m/s in 1 s. CPU, main 132d4450f (free bodies on rk4), the same to the last digit as release-1109; measured with WP3's SPEED-S1 development probe (2026-11-09, not shipped):
| run | rise by 1 s (2.5 m/s) | pitch, peak to peak | slide / 0.5 mu g |
|---|---|---|---|
| 0.3 m cube, rigid step "auto" (5 ms here) | 3.4 mm | 1.2 deg | 0.998 |
| 0.3 m cube, step pinned at 1.25 / 10 ms | 9.0 / 1.9 mm | 1.4 / 1.5 deg | 0.995 / 1.000 |
| 0.1 m cube, "auto" | 4.1 mm | 2.4 deg | 0.998 |
| 0.05 m cube, "auto" | 2.2 mm | 7.4 deg | 0.999 |
| 0.3 m cube, MuJoCo C alone, stock solref (0.02, 1), elliptic, 5 ms | 16.6 mm | 1-2 deg | - |
| 0.3 m cube, MuJoCo C alone, stock, pyramidal, 5 ms | 94 mm at 4 m/s | 20 deg | - |
A 40 x 40 x 10 cm box pushed the same way slides flat: 0.24 deg peak to peak, 0.25 mm.
Why¶
MuJoCo's soft friction rows ask for a reference acceleration of about -b v_slip, with b = 2 / (dmax tau). It grows with the sliding speed, and the friction cone couples it into the normal rows, so a sliding face is pushed off its support step by step (contact-light-sliding-tip.md has the same mechanism at a short time constant). A box also feels the friction's moment about its centre, mu N h / 2: the leading edge digs in and the box rocks on its corners, and a small one rocks more. Raw MuJoCo C does it at its stock gains, on both cones and at 1.25 and 5 ms; stiffer, less damped contacts are worse (solref 0.01, 0.7 tumbled it).
Workaround¶
- Slide fast things on wide bases, or slowly: the 0.3 m cube rose 0.2 mm by 1 m/s.
- A finer rigid step does not help: at 1.25 ms the 0.3 m cube rose 9 mm, against 3.4 mm at "auto"'s 5 ms.
- Read the slide's position and speed, which keep the Coulomb rate, not its height.
Planned fix¶
None scheduled. Candidate: a longer friction time constant (solreffriction). It holds a light sliding box flat (contact-light-sliding-tip.md), but stiction creep grows with it, so a law for fast slides comes first.