Instructions to use apirrone/microduck-footstepnet with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Microduck
How to use apirrone/microduck-footstepnet 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 apirrone/microduck-footstepnet
- Notebooks
- Google Colab
- Kaggle
Microduck FootstepNet
A footstep planner for Microduck: FootstepNet
(rhoban/footstepnet_envs, the planner Rhoban used on Sigmaban) retrained
with CrossQ (upstream hyperparameters) on Microduck's feet and step limits. It plans one step at a time toward a goal
foot pose, avoiding a disc obstacle; the robot follows it with a footstep-tracking policy
(task Mjlab-Footsteps-Flat-Backlash-MicroDuck, branch footsteps of microduck_rl).
footstepnet.onnx— deterministic actor,obs (N, 8) float32 → step (N, 3). The CrossQ BatchRenorm layers are folded into the dense layers. Metadata:options(JSON: limits, tolerances, foot geometry),obs,step.crossq_best_model.zip— the sbx CrossQ checkpoint it was exported from.
Contract
Poses are planar (x, y, yaw) of the sole centre (7 mm ahead of the *_foot site), x forward.
- Steps (limits): dx +5 / −5 cm, dy ±2 cm, dθ ±30°, relative to the neutral landing pose (feet parallel, 95 mm apart), then clipped to that ellipsoid. Sole 54 × 41 mm.
- Observation (right-support convention; for a LEFT support negate the entries marked *):
[goal.x, goal.y*, cos(goal.yaw), sin(goal.yaw)*, support_is_goal_foot, obstacle.x, obstacle.y*, obstacle.radius], goal and obstacle expressed in the support sole frame. No obstacle → radius 0. - Action:
step = (dx, dy, dθ)from the neutral pose; for a LEFT support negate dy and dθ; then box- and ellipsoid-clip. Landing pose =support ∘ (0, ±0.095, 0) ∘ step(+ for a right support, − for a left). - Goal reached: the goal foot within 2 cm and 5° of the goal pose.
Reference implementation: src/mjlab_microduck/footstep_planner.py (numpy + onnxruntime, checked step-for-step
against the gym env). Training: 1M steps, 99–100 % of random goals within ±1 m reached (≈22 steps on average).
Limits are provisional (set to the tracking policy's training range); they will be refit to the trained policy's
measured envelope.
- Downloads last month
- 17