Instructions to use nocrab/microduck-backflip with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Microduck
How to use nocrab/microduck-backflip 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 nocrab/microduck-backflip
- Notebooks
- Google Colab
- Kaggle
|
Download README.md from nocrab/microduck-backflip: direct link, hf CLI and curl.
- Browser
- Download file 2.84 kB
-
https://huggingface.co/nocrab/microduck-backflip/resolve/main/README.md
- Command line
-
hf download hf://nocrab/microduck-backflip/README.md
-
curl -L -o README.md https://huggingface.co/nocrab/microduck-backflip/resolve/main/README.md
2.84 kB
| library_name: onnx | |
| pipeline_tag: reinforcement-learning | |
| tags: [microduck, microduck-policy, mjlab, robotics] | |
| license: apache-2.0 | |
| # backflip | |
| Backflip from a stand (head-spring style) and land on its feet; starts when twist[0] goes to 1. SIM ONLY. | |
| <video controls muted loop src="https://huggingface.co/nocrab/microduck-backflip/resolve/main/media/preview.mp4" style="max-width:640px;width:100%"></video> | |
| **Command** — twist slots of the 13-D command block (head / body slots: unused (zeros), unused (zeros)); idle = `[0, 0, 0]` | |
| | slot | meaning | | |
| |---|---| | |
| | twist[0] | start switch: 1 for ~0.2-0.5 s starts the flip, then 0 while it flies and lands (install with --command 1,0,0) | | |
| | twist[1] | unused (0) | | |
| | twist[2] | unused (0) | | |
| ## ⚠️ Simulation only | |
| Never run on a real robot. The flip uses the **head as a spring**: the duck sits back, pushes off the floor with its head (~0.1–0.3 s), flies upside down for ~0.15 s and lands on its feet. Landings peak around 2.6 g. A pure standing backflip is out of reach for this robot (best measured jump: 0.40 m/s takeoff, ~0.08 s in the air). | |
| ## What it does | |
| From a two-foot stand, a short pulse on `twist[0]` starts a full 360° backward flip; it lands and stands. With `twist[0]` held at 0 it just stands (it was trained to wait for the switch, so it doesn't flip by itself when installed as a skill). | |
| ## Try it (duck-sim, the real robot software) | |
| ```bash | |
| scripts/duck-sim ctl policy --file ~/.cache/duck-sim/robotd-duck-a.toml add backflip nocrab/microduck-backflip --command 1,0,0 | |
| scripts/duck-sim ctl robot do backflip | |
| ``` | |
| `--command 1,0,0` is required: the manifest can't carry the start switch, and `policy add` feeds zeros by default (then it only stands). Hold (0.3 s) and unwind (2.5 s on zeros) come from the manifest. | |
| ## Results | |
| | test | result | | |
| |---|---| | |
| | training env, switch on at 1.0 s for 0.3 s (64 starts) | 100 % flip and land | | |
| | switch at 0.3 s / 2.5 s | 100 % / 100 % | | |
| | switch window 0.2 s / 0.5 s | 100 % / 98 % | | |
| | switch never on | 0 flips, 100 % standing | | |
| | duck-sim, `robot do backflip` ×30 | 29/30 full flips, 30/30 standing, no fall/limp | | |
| `media/preview.mp4`: one flip under real robotd in duck-sim, real time then 4× slow motion. | |
| **Contract** `obs[1,61] f32 → actions[1,14] f32`, normalizer baked in, 50 Hz, targets around HOME × 1.0. Kind episodic, entry pose standing. | |
| **Provenance** `Mjlab-Backflip-Flat-MicroDuck` — pollen-robotics/microduck_rl @ `4757d6ae`, run `local 2026-10-26_15-47-20_run2, model_2999 (3000 it, 4096 envs, RTX 5080, 1h34m)`; exported with `scripts/export.py`. | |
| **Files** `policy.onnx` · `manifest.json` (all of the above, machine-readable) · `media/preview.mp4` (sim rollout) | |
| Format: [Microduck policy sharing](https://github.com/pollen-robotics/microduck_rl/blob/main/docs/sharing-policies.md). | |