microduck-roulade / README.md
witcheer's picture
Add Apache-2.0 license (matches pollen-robotics/microduck and microduck_rl)
dc13225 verified
|
Raw History Blame Contribute Delete
2.67 kB
---
license: apache-2.0
tags:
- microduck
- robotics
- reinforcement-learning
- onnx
library_name: microduck
pipeline_tag: robotics
---
# roulade
Forward roll from a standing start, trained in simulation only (mjlab / MuJoCo Warp, 10,000 iterations, 4096 envs, 173 min on one RTX 5090). Not yet tested on a real Microduck.
A **episodic** policy for the [microduck](https://github.com/pollen-robotics/microduck) (61-D observation, 14 actions, 50 Hz). Runs 2.0 s and returns itself to a standing pose. Holding the button chains another run.
## Run it on a robot
```bash
sudo robotctl policy add roulade witcheer/microduck-roulade
robotctl robot do roulade
```
The observation normalizer is baked into `policy.onnx`; feed raw observations.
`manifest.json` follows schema 2 of the microduck policy manifest (`docs/policy-manifest.md` in the daemon repo).
## Training
- **repo**: `pollen-robotics/microduck_rl`
- **branch**: `develop`
- **commit**: `53b8971b6`
## Results in simulation
Simulation only. This policy has not run on a real Microduck yet; the roll takes about one second in MuJoCo and nothing here says what the real servos and floor will do.
- Task `Mjlab-Roulade-Flat-MicroDuck` from `pollen-robotics/microduck_rl` at `53b8971`, the maker's budget of 10,000 iterations, 4096 parallel envs, 173 min (1.04 s/iteration) on one RTX 5090.
- Proof takes with mjlab `play` (1 env, standing spawn, 12 s episode), read from the body-frame gravity vector and trunk height, not from the video: 3 of 3 takes complete the roll. Upright at 115 mm at 0 s, head on the floor at 0.3 s, upside down at 0.6 s (trunk 147 mm), on its back at 0.8 s (42 mm), upright at 1.0 s, back at 115 mm from 1.2 s and held to the end of the episode. No environment reset inside any take. The iteration-0 control tips forward and lands face down at 0.8 s.
- The mean reward was flat from about iteration 2,000 (35.0) to 10,000 (36.4). A 3,000-iteration run would have given the same policy.
- Not tested: rolls entered from the task's mid-roll spawns. Only rolls from standing were recorded.
- Clip (iteration 0 vs iteration 10,000, half speed): https://x.com/witcheer/status/2102076057411031472
Built as level 6 of a sim-first skill tree for a Microduck that is still on order. Levels 1 to 5 (walk, stand up, sit and stand, rough-ground walk, walk plus recover) came before it; more policies from the same tree will appear under `witcheer/microduck-*`.
## License
Apache-2.0, the same licence as Pollen Robotics' [microduck](https://github.com/pollen-robotics/microduck) and [microduck_rl](https://github.com/pollen-robotics/microduck_rl), which this policy was trained against.