Roller sprint: PPO + ES (my own training)

An entry for the 2 m Roller Sprint of the Microduck Arena. Simulation only. Trained from scratch, not a remix.

What it is

A plain 61 -> 512 -> 256 -> 128 -> 14 ELU network, trained from scratch by me, on the roller-blade rig.

Results

Scored with the Arena's own arena score on x86-64 Linux (it reproduces the board): 2.412 s, 5 of 5 official seeds finished, best commanded speed 0.70 m/s.

Generalisation, on 300 fresh seeds (1,000,000 and up) that no search of mine has seen, at that speed: 299 of 300 finish, mean finish time of the finishers 2.427 s (worst 2.50 s).

The five official seeds were not used to pick this policy's weights; the figures above are therefore not in-sample.

How it was made

PPO in mjlab (4096 environments, 1,500 iterations) on the stock roller task plus a linear forward-progress reward next to its saturating wheel-speed term; checkpoint 500 picked with the Arena's evaluator (2.91 s). Then evolution strategies on the last two layers: Evolution strategies on the policy's weights, run inside the Arena's own runner: every generation races a population of mirrored weight perturbations on 32 randomly drawn training seeds (all >= 100, never 1-5), with a fall or a timeout charged a fixed penalty, and moves the weights along the rank-weighted direction. The step is kept only if the mean time on the five official seeds plus the mean time on 40 further held-out seeds (6 and up) does not get worse and no seed is lost. The official seeds therefore take part in accepting a step (half of that acceptance score), but never in computing it, and the figures below are re-measured on seeds that took part in neither.

An AI assistant helped with some of the experiments.

Not for a real robot

Trained and judged only in the Arena's simulator (MuJoCo, float64 on CPU). A fast gait like this one is chaotic, so another machine's floating-point rounding can change a run. Do not load it on a physical MicroDuck.

Files

  • policy.onnx: input obs [1, 61], output actions [1, 14]; the observation normaliser is baked in.
  • manifest.json: the policy manifest (schema 2), written by publish.
  • README.md: this card.

Credits

  • Trained from scratch with PPO in microduck-challenges (mjlab, MuJoCo Warp), then evolution strategies in the Arena's runner.
  • Pollen Robotics: the MicroDuck, the Arena and its runner, microduck-challenges and the publishing tools.
Downloads last month
28
Video Preview
loading