kyry.me/projects/microduck-arena-lab

← projects

P-13 · simulation

Microduck Arena Lab

Faster running gaits for Pollen Robotics' Microduck on three simulated race courses, fine-tuned with PPO and chosen by the Arena's five-seed score. #1 on the roller sprint leaderboard.

CH1microduck-arena-labRoller sprint, seed 3: 1.44 s, then a half-speed replay. Five-seed mean 1.516 s.

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.

Media