Instructions to use JackDH/microduck-rolling-start with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Microduck
How to use JackDH/microduck-rolling-start with Microduck:
# Replace SLOT with the slot specified in the model card (walk, stand, sitstand, ground_pick, kick_left, kick_right, roulade). sudo robotctl policy load SLOT JackDH/microduck-rolling-start
- Notebooks
- Google Colab
- Kaggle
Rolling Start
I wanted my Microduck to skate into a forward roll, come back onto its wheels and carry on. The skates stay on for the whole 5.5-second routine.
I started with my Roller Sprint checkpoint 500 and Pollen’s roulade and velstand policies. I kept those networks fixed and trained 32 corrections to the legs and head on the Arena’s roller rig. They respond to the duck’s tilt and rotation while it rolls. The timeline cues each phase.
On the official starting seed in my local Arena, the duck reached 0.41 m/s over the half-second leading into the roll. It turned 358°, got back upright in 1.52 s and travelled another 53 cm in the last second. The head touched the floor and the wheels took the landing.
On 64 fresh starts, 39 completed the head-to-wheels roll and skated away. With the corrections turned off, 4 of the same 64 starts completed the roll and skate-away. The landing can still go sideways. All the runs were in simulation.
Try it
Use Pollen’s Microduck Challenges environment with the Workshop dependencies installed. I used Arena 0.7.0 and Python 3.12. From this model folder, run the following in that environment.
python training/run.py replay . --seeds 1 2 3
The replay script reads the rollers from the manifest and plays the supplied timeline. The test results include the individual starts and the contact times on seed 1.
Train the landing
I used episode rewards for a full forward turn, an upright landing and a forward skate-away. Each generation tried a population of motor corrections on the same set of starts. The better ones guided the next generation. The training runs on CPU cores in the Arena simulator.
The included starting weights are from my slower approach. To repeat the faster training run, then export my selected checkpoint:
python training/run.py train --output rolling-run --start-from training/initial-correction.json \
--generations 30 --population 48 --batch 6 --speed 0.65 --roll-at 1.65
python training/run.py export checkpoint.json rolling-start.onnx
I selected generation 26 and compared approach timings with its weights fixed. The show timeline asks for 0.8 m/s and cues the roll at 1.71 s. The speed above is what the duck actually achieved.
The ONNX includes the three starting policies and their normalisation. The small JSON checkpoint contains my learned corrections. Pollen’s policy files are distributed under Apache 2.0.
- Downloads last month
- -