Roulade
An official Microduck move: Pollen Robotics' roulade,
retrained from scratch by Microduck Academy with the upstream recipe
as-is (task Mjlab-Roulade-Flat-MicroDuck of pollen-robotics/microduck_rl at 2b25a48,
5999 iterations, 4096 envs, no reward edit), so that it carries the
base/model.pt checkpoint the Academy needs to remix it. The policy Pollen ships is
roulade.onnx.
Pollen Robotics' roulade: a forward roll from standing, back on the feet in under a second, then the walk takes over.
Fidelity check (this move vs Pollen's policy, same scene, same command, take roll)
| number | this move | Pollen's roulade.onnx |
|---|---|---|
| final_upright | False | True |
| max_tilt | 1.0 | 1.0 |
| base_z_mean | 0.0787 | 0.1103 |
| base_z_min | 0.0426 | 0.0475 |
| cum_forward_pitch_deg | 306.9 | 342.0 |
| z_max | 0.1548 | 0.1775 |
| upright_at_1s | True | True |
| head_contact_ticks | 29 | 32 |
| body_contact_ticks | 72 | 14 |
Recorded with space/payload/render/rollout.py on the upstream robot MJCF (spikes/base_moves/fidelity.py).
The roll itself matches Pollen's (cumulative forward pitch 307 vs 342 deg, upright at 1 s both). Pollen's roulade chains to the robot's stand slot at 1 s (chain: true); the retrained one is back on its feet by 0.85 s and the showcase take hands it to the base walk at 0.88 s (the manifest's duration_s, no chain): upright and still from 1.3 s, no second fall. Handed to Pollen's pollen-robotics/microduck-policies#alpha_stand.onnx at 1 s instead it tipped over once more before standing (the take shipped on 2026-09-14); left to run past 0.92 s on its own it rolls again and lies; Pollen's stands.
Run it on a robot
sudo robotctl policy add roulade tfrere/microduck-move-base-roulade
robotctl robot do roulade
Files
policy.onnx (play it, normalizer baked in), base/model.pt + base/agent.yaml + base/env.yaml (the rsl_rl
checkpoint and configs: remix = fine-tune from it), rollouts/0.traj (trajectory.v1 showcase take, with the
commands), video.mp4 + poster.jpg (the card clip), manifest.json
(schema 2 + academy block: origin, source task and policy, training facts, fidelity numbers), fidelity.json,
train.json.
Credits and license
The task, the reward design, the robot model and the training recipe are Pollen Robotics' work (pollen-robotics/microduck_rl, Apache-2.0). This repo republishes a retrained policy of that recipe under the same Apache-2.0 license, with the checkpoint, so the Academy's users can start from it.
