Smooth Sit ↔ Stand
Controlled bi-directional transition between upright standing and rested sitting posture with continuous head commandability.
About this behavior
A unified policy trained in MuJoCo to handle both gentle sitting down and standing back up. Softens motor gains during transition to ensure the duck does not slam into the ground. While sitting, head orientation remains commandable through the 4-dim head pose observation slot.
Runtime contract
61-dimension input · 14 joint targets · 50 Hz
Show details
Runtime contract
61-dimension input · 14 joint targets · 50 Hz
Positions, velocities, previous actions, gravity, and gyro.
Forward, lateral, and yaw velocity intent.
Neck and head orientation targets.
Six-axis torso offset command.
hip yaw · hip roll · hip pitch · knee · ankle
neck pitch · head pitch · yaw · roll
hip yaw · hip roll · hip pitch · knee · ankle
Verification
- Status
- Hardware verified
- Evidence
- Verified on physical MicroDuck hardware with gamepad Y button toggle. Robot smoothly sits down and stands back up.
- Target hardware
- MicroDuck v1 (Rockchip RK3566, 14 Dynamixel XL330-M077)
- Simulation
- mjlab (MuJoCo Warp) at 50 Hz
- Note
- Transition utilizes posture flags in twist magnitude; rise runs with softened standing gains.
Compatibility
- Robot model
- microduck-standard
- MJCF model
- robot_allcollisions.xml
- Terrain
- flat
- Required accessories
- None — standard duck setup
Run it on your duck
Use the canonical model and this policy slot to try the behavior locally.
Deployment stepsShow instructions
curl -L "https://huggingface.co/spaces/pollen-robotics/microduck-simulator/resolve/main/app/public/policies/BEST_alpha_sitstand.onnx" -o "/opt/robot/policies/BEST_alpha_sitstand.onnx"[policy]
sitstand = "/opt/robot/policies/BEST_alpha_sitstand.onnx"sudo systemctl restart robotd
robotctl healthuv run scripts/infer_policy.py --sitstand BEST_alpha_sitstand.onnx --new-cmd-obs