Back to behaviors
Hardware verifiedlocomotionv1.0.0Apache-2.0

Alpha Dynamic Walk

Standard bipedal walking gait with 50 Hz velocity tracking (vx, vy, yaw_rate) and active head-pose orientation control.

By Pollen Robotics @pollen-robotics
MicroDuck walking under gamepad velocity control on hardware

About this behavior

The flagship locomotion policy for MicroDuck. Trained in MuJoCo Warp via mjlab and PPO using the BAM M6 actuator model for Dynamixel XL330 servos. Includes domain randomization on battery voltage, friction, and motor command delay. Exports a baked observation normalizer into the ONNX computational graph.

Runtime contract

61-dimension input · 14 joint targets · 50 Hz

Show details
50 Hz / 4×slot: walk
Observation vector61 dimensions · normalizer baked in
Proprioception48D

Positions, velocities, previous actions, gravity, and gyro.

Twist command3D

Forward, lateral, and yaw velocity intent.

Head pose4D

Neck and head orientation targets.

Body pose6D

Six-axis torso offset command.

Action targetsscale: 1×
Left leg5 joints

hip yaw · hip roll · hip pitch · knee · ankle

Neck & head4 joints

neck pitch · head pitch · yaw · roll

Right leg5 joints

hip yaw · hip roll · hip pitch · knee · ankle

Actuator model: Dynamixel XL330 (BAM M6 voltage control law). The beak motor is separate from this fixed locomotion action space.

Verification

Status
Hardware verified
Evidence
Verified on physical MicroDuck hardware with Rockchip RK3566 and 14 Dynamixel XL330 servos. Shipped as default walking policy.
Target hardware
MicroDuck v1 (Rockchip RK3566, 14 Dynamixel XL330-M077, 2S LiPo)
Simulation
mjlab (MuJoCo Warp) at 50 Hz
Note
Operates at 50 Hz control loop. Velocity envelope: -0.2 to +0.25 m/s forward/back, ±1.0 rad/s angular yaw rate.

Compatibility

Robot model
microduck-standard
MJCF model
robot_walk.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.

slot: walk
Try the simulation first. Hardware testing assumes a matching Microduck, clear space, and a safe surface. uDuck does not guarantee that a community policy is safe to run.
Deployment stepsShow instructions
1 Download the ONNX model BEST_alpha_walking.onnx
curl -L "https://huggingface.co/spaces/pollen-robotics/microduck-simulator/resolve/main/app/public/policies/BEST_alpha_walking.onnx" -o "/opt/robot/policies/BEST_alpha_walking.onnx"
2 Add the policy to robotd
[policy]
walk = "/opt/robot/policies/BEST_alpha_walking.onnx"
3 Restart the control loop
sudo systemctl restart robotd
robotctl health
Try it in simulation
uv run scripts/infer_policy.py --walking BEST_alpha_walking.onnx --new-cmd-obs

Sources