Summary
Microduck Arena is Pollen Robotics’ leaderboard for their small bipedal robot: a 2 m sprint, a 1.5 m climb up an 8° slope and a 2 m sprint over passive rollers, each scored as the mean finish time over five seeds. I started from a licensed running policy (Hannes von Essen’s microduck-running, Apache-2.0) and fine-tuned it for each course with PPO.
| course | best mean (5/5 finishes) | published entry |
|---|---|---|
| 2 m sprint | 1.084 s | 1.096 s |
| 8° hill | 1.360 s | 1.360 s |
| passive rollers | 1.516 s | 1.648 s, #1 on the leaderboard |
Simulation only (MuJoCo). The 1.516 s roller policy is newer than the published entry and was not yet submitted.
How
- Kept the policy interface fixed (61 observations, 14 actions, the original normalizer), so every checkpoint can be scored by the Arena as is.
- Trained on the race itself: the real lane, slope or rollers, start from standing, narrow start and actuator-delay noise; reward for forward progress, finish bonus, fall penalty.
- Every 100 training iterations the checkpoint was exported to ONNX and scored by the Arena on five seeds. Only policies that finish all five count; the training reward was never used to pick one.
- One change per experiment. A lower learning rate on a full PPO resume took the roller gait from 1.648 s to 1.516 s. On the sprint, static gait trims and longer runs did not beat the selected policy. The fastest flat-ground policy, run as is, finished only 1 of 5 seeds on the hill and none on the rollers: each course needed its own fine-tuning.
Each experiment, including the ones that failed, is in the repository, with the scripts, per-seed scores and the weights on Hugging Face.
