MicroDuck Happy Hop
A short vertical two-foot hop for MicroDuck: stabilize in a normal standing pose, crouch through the hips and knees, extend for takeoff, absorb the landing with knee flexion, then return toward HOME.
Physical robot validation
The following video shows the policy running successfully on a physical MicroDuck after Pollen Robotics restored the required one-step action delay:
This repository contains the movement policy only. Pollen Robotics can choose the runtime trigger, transition logic, and hardware safety envelope.
Policy contract
obs:float32[1, 61]actions:float32[1, 14]- control frequency: 50 Hz
- required action delay: 1 control step (20 ms at 50 Hz)
- action scale: 1.0 around HOME
- observation normalizer: baked into
policy.onnx - action low-pass during training: none
- entry pose: stable standing
- command block:
twist(3), head_pose(4), body_pose(6), all zeros - nominal one-shot window: 3.0 s
The trigger is external: it is not encoded in the observation. The training entry state comes from the Backlash walking policy after 1.0 s of exact-zero velocity command. The policy was not trained to take off directly from an active walking stride.
The one-step action delay is part of the deployment contract. During the first physical-robot integration, omitting it strongly reduced the jump amplitude. Restoring one 50 Hz control step of delay produced the intended movement.
Local simulation trigger
During our MuJoCo deployment rehearsals with scripts/infer_policy.py, pressing the
J key in the launching terminal requested one Happy Hop. The same key could be pressed
again after the movement completed to trigger another cycle.
This J binding belongs to the experimental local integration used for testing. It is
not embedded in policy.onnx and is not presented as an official MicroDuck runtime
binding. The runtime handles the key event, waits for the walking policy to reach the
stable standing entry, then switches to this one-shot policy with the full 13-D command
block set to zero.
The validated local rehearsal command was:
uv run scripts/infer_policy.py \
--walking <walking-policy.onnx> \
--happy-hop policy.onnx \
--delay 1 \
--new-cmd-obs
--delay 1 must not be omitted. The J key is only the trigger used by this local
rehearsal script; downstream runtimes may expose the movement through any trigger.
Provenance
- upstream:
pollen-robotics/microduck_rl - official base commit:
d424a0c899f6b33cbd3daeb279913134349c0b63 - task:
Mjlab-HappyHop-WalkTransition-Clearance-Flat-Backlash-MicroDuck - run:
2026-08-31_20-39-21_happy_hop_clearance_35mm_stage1 - checkpoint:
model_1255.pt - export: official
scripts/export.py - robot model: BAM XL330, output-side Backlash encoder view
- current saturation used for training: approximately 1.75 A
- learned bilateral foot-clearance target: 35 mm
- strict mechanical clearance threshold: 30 mm
Runtime note
The policy was trained unfiltered, following the microduck_rl/AGENTS.md invariant.
For a matched runtime test, action low-pass filters must be pass-through:
[policy]
head_lowpass = 1.0
legs_lowpass = 1.0
Do not silently deploy it through a different action filter without a matched transfer test.
Required timing:
Policy/control frequency: 50 Hz
Action delay: 1 control step (20 ms)
Action scale: 1.0
Validation and limitations
- ONNX accepted by
onnx.checker. - Same
obs[1,61] -> actions[1,14]interface and joint order as the official MicroDuck policy family. - Exported artifact matched the ONNX archived with the run with a maximum output
difference of
0.0over 100 random observations. - The complete movement and the walking-to-standing entry transition were inspected in MuJoCo with Backlash, delays, and the current limit enabled.
- Successfully tested on a physical MicroDuck by Pollen Robotics on 2026-09-01.
- Pollen Robotics reported that the initially reduced jump amplitude was mostly caused by a missing one-step action delay. With that delay restored, the complete movement executed correctly on the physical robot.
- The retained motion is clean and stable, but its jump height is intentionally modest.
For additional hardware tests, continue using a safety support, a clear area, an immediate stop path, and monitor current, temperature, tracking error, and contacts.
File
policy.onnxmedia/preview.mp4— short simulation rollout of one complete cyclemedia/PXL_20260901_133625139.TS~2.mp4— successful physical-robot validation- SHA-256:
abd6db1bca2f2a583508cfd9a6fd144a7cce65b302827b9b9a0c5227fc2acae9