| --- |
| library_name: onnx |
| pipeline_tag: reinforcement-learning |
| tags: [microduck, microduck-policy, mjlab, robotics] |
| license: apache-2.0 |
| --- |
| |
| # rough-walk-e |
|
|
| Velocity-commanded walking tuned for rough ground (grid tiles, small stairs, rubble, slopes): the shipped alpha_walking fine-tuned 800 iterations on a hostile-terrain ladder. Same command scheme, same motor-power envelope, roughly half the falls. |
| |
| <video controls muted loop src="https://huggingface.co/RemiFabre/microduck-rough-walk-e/resolve/main/media/preview.mp4" style="max-width:640px;width:100%"></video> |
| |
| **Command** β twist slots of the 13-D command block (head / body slots: 4 head-joint deltas from HOME, rad (neck_pitch, head_pitch, head_yaw, head_roll) β tracked, same as alpha_walking, unused (zeros)); idle = `[0, 0, 0]` |
|
|
| | slot | meaning | |
| |---|---| |
| | twist[0] | vx: forward velocity command, m/s, trained range -0.4 .. 0.4 | |
| | twist[1] | vy: lateral velocity command, m/s, trained range -0.3 .. 0.3 | |
| | twist[2] | wz: yaw rate command, rad/s, trained range -1.0 .. 1.0 (achieved ~0.41 at 1.0; ~0.22 at 0.5) | |
|
|
| **What it does** β drop-in replacement for `alpha_walking`: the same velocity-commanded walk (`twist = [vx, vy, wz]`, head commands tracked), fine-tuned 800 iterations on a rough-terrain ladder (grid tiles, small stairs, rubble, slopes). Half the falls of `alpha_walking` on the rough-ground battery (14/110 vs 32/110), crosses 6β9Β° slopes and Β±1.3 cm rubble it previously failed, at the **same motor power** (1.02 W vs 1.03 W on flat β same servo heating). |
|
|
| **Limits (sim only, never run on hardware)** β falls when descending steps β₯ 2 cm; push recovery slightly weaker than `alpha_walking`; on rubble bumps β₯ ~2 cm it steps in place instead of advancing; turn response is more linear than alpha's but tops out lower (0.41 rad/s achieved for 1.0 commanded). |
|
|
| **Try it in simulation (laptop, no robot)** |
|
|
| ```bash |
| git clone -b hostile-terrain https://github.com/pollen-robotics/microduck_rl.git && cd microduck_rl && uv sync # once |
| hf download RemiFabre/microduck-rough-walk-e policy.onnx --local-dir policies/rough-walk-e |
| uv run scripts/infer_policy.py --walking policies/rough-walk-e/policy.onnx # Linux |
| ``` |
| On macOS the MuJoCo window needs `mjpython` (one-time libpython symlink, then): |
| ```bash |
| ln -s "$(.venv/bin/python -c 'import sys; print(sys.base_prefix)')/lib/libpython3.12.dylib" .venv/libpython3.12.dylib |
| uv run mjpython scripts/infer_policy.py --walking policies/rough-walk-e/policy.onnx |
| ``` |
| Keys (in the launching terminal): arrows = velocity, A/E = turn, SPACE = coast, T = pause. |
|
|
| **Try it on the robot** β it is a walking policy: point the `walk` role at it, change nothing else. Keep the stock `alpha_walking` path noted somewhere so you can switch back in one edit. |
|
|
| ```bash |
| scp policy.onnx radxa@<robot>:/home/radxa/policies/rough-walk-e/ # 1. file on the robot |
| # 2. on the robot, in /etc/robot/robotd.toml: [policy] walk = "/home/radxa/policies/rough-walk-e/policy.onnx" |
| sudo systemctl restart robotd # 3. drive it exactly like alpha_walking |
| ``` |
| First hardware test suggestion: flat ground first (gait should feel like alpha), then a doormat/carpet edge, then a gentle ramp. It has never touched hardware. |
|
|
| **Contract** `obs[1,61] f32 β actions[1,14] f32`, normalizer baked in, 50 Hz, targets around HOME Γ 1.0. Kind perpetual, entry pose standing. |
| **Provenance** `Mjlab-Hostile-FinetuneFeetProgress-MicroDuck` β pollen-robotics/microduck_rl @ `6cd45fc on branch hostile-terrain (https://github.com/pollen-robotics/microduck_rl/commit/6cd45fc)`, run `pollen-robotics/hostile-e-finetune-feet-progress-20260830-0103 (resumed from alpha_walking's checkpoint, wandb yr25mna4 model_9999)`; 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). |
|
|