Nimble walk (NottyDuck)

A perpetual walking policy for the MicroDuck (61-D observation, 14 actions, 50 Hz). It follows slow, backward and turning velocity commands that the stock alpha walker ignores in simulation, and it is the default walker of the NottyDuck browser game.

Simulation only. It has never run on a physical MicroDuck.

The observation normalizer is baked into policy.onnx; feed raw observations. Input obs [1, 61], output actions [1, 14], action scale 1.0, no action filter.

Command contract

  • twist = [vx, vy, wz] in m/s and rad/s. Trained ranges: vx ±0.4, vy ±0.3, wz ±1.0. Sideways tracking is weak; NottyDuck sends vy = 0 and caps forward at 0.25 m/s, backward at 0.2 m/s and turning at 1.0 rad/s.
  • head_pose (4) and body_pose (6) follow the shared 61-D layout.

Training

  • Task Mjlab-VelocityTracking-Flat-MicroDuck from the NottyDuck repository: the MicroDuck velocity recipe plus a penalty on the time-averaged velocity error, ramped in from iteration 600.
  • 1024 environments, seed 73, one NVIDIA L4 on RunPod, 2026-10-16.
  • Checkpoint 1800 of a 3000-iteration run (model_1800.pt, SHA-256 602844506a2672160ebdcce364e9161b849fbb88df0f0a6ba7bcf6a377fabc77), exported with the repository's scripts/export.py. Training source snapshot SHA-256 682103d61b89b40b57de4c39b26216f0dbf5b5e04ca98ec9e970716d946dc590.
  • Chosen by scoring every 100th checkpoint: later checkpoints stop answering slow, backward and gentle-turn commands, and earlier ones turn slowly when idle.

Measured in simulation (2026-10-16)

Steady speed divided by the command, native MuJoCo, nominal physics:

Command Browser position PD BAM XL330 servo model
Forward 0.15 m/s 0.64 0.52
Forward 0.25 m/s 0.61 0.52
Forward 0.40 m/s 0.60 0.52
Backward 0.20 m/s 0.61 0.49
Turn 0.5 rad/s 1.22 0.96
Turn 1.0 rad/s 1.22 1.02
Shoves survived (0.2–0.4 N·s while walking) 12 of 12 12 of 12

In the NottyDuck browser game (headless Chrome), against the stock alpha walker:

Test Nimble walk Alpha walk
Forward key (0.25 m/s command) 0.144 m/s 0.114 m/s
Forward at 0.40 m/s command 0.242 m/s 0.180 m/s
Turn key (1.0 rad/s command) 1.09 rad/s 0.50 rad/s
Backward key (0.20 m/s command) 0.076 m/s back stands still
Slow walk (0.12 m/s command) 0.065 m/s stands still
Idle drift 0.03 rad/s 0.006 rad/s
Falls in these tests none none

Known limitations

  • Turns overshoot the command by about 20% under the browser's actuators.
  • A slight idle turn of about 0.03 rad/s in the browser game.
  • No hardware validation; nominal-physics measurements only.
Downloads last month

-

Downloads are not tracked for this model. How to track
Video Preview
loading