Downloads · 30 days
0
joanfox/microduck-happy-hop
microduck-happy-hop is a reinforcement learning model from joanfox. Use it for the reinforcement learning task on the model card, and read the license before you ship it in a product. It is set up for onnx. The card lists the license as apache-2.0.
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.
Downloads · 30 days
0
Access
Public
Updated Sep 1, 2026
Repo size
1.7 MB
Likes
6
Public
Click a slice to open those files.
.mp4950 KB · 54%
From the Hugging Face model README
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.
<video controls muted loop src="https://huggingface.co/joanfox/microduck-happy-hop/resolve/main/media/preview.mp4" style="max-width:640px;width:100%"></video>
The following video shows the policy running successfully on a physical MicroDuck after Pollen Robotics restored the required one-step action delay:
<video controls muted loop src="https://huggingface.co/joanfox/microduck-happy-hop/resolve/main/media/PXL_20260901_133625139.TS~2.mp4" style="max-width:640px;width:100%"></video>
This repository contains the movement policy only. Pollen Robotics can choose the runtime trigger, transition logic, and hardware safety envelope.
obs: float32[1, 61]actions: float32[1, 14]policy.onnxtwist(3), head_pose(4), body_pose(6), all zerosThe 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.
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.
pollen-robotics/microduck_rld424a0c899f6b33cbd3daeb279913134349c0b63Mjlab-HappyHop-WalkTransition-Clearance-Flat-Backlash-MicroDuck2026-08-31_20-39-21_happy_hop_clearance_35mm_stage1model_1255.ptscripts/export.pyThe 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
onnx.checker.obs[1,61] -> actions[1,14] interface and joint order as the official MicroDuck
policy family.0.0 over 100 random observations.For additional hardware tests, continue using a safety support, a clear area, an immediate stop path, and monitor current, temperature, tracking error, and contacts.
policy.onnxmedia/preview.mp4 — short simulation rollout of one complete cyclemedia/PXL_20260901_133625139.TS~2.mp4 — successful physical-robot validationabd6db1bca2f2a583508cfd9a6fd144a7cce65b302827b9b9a0c5227fc2acae9