Back to behaviors
Hardware verifiedroller skatev1.0.0Apache-2.0

Roller Skate Velocity Drive

High-speed skating locomotion utilizing passive roller skate wheels mounted under the feet, featuring asymmetric velocity limits and turn rate damping.

By Pollen Robotics @pollen-robotics
MicroDuck gliding on roller skate wheels across smooth floor

About this behavior

Converts MicroDuck into a mobile skating robot. When passive roller blade attachments are installed and D-pad up is held, robotd switches to the roller policy suite. Velocity profile allows up to +0.6 m/s forward acceleration and -0.5 m/s braking, with angular velocity clamped to 0.3 rad/s to prevent tipping.

Runtime contract

61-dimension input · 14 joint targets · 50 Hz

Show details
50 Hz / 4×slot: rollers
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 equipped with official Pollen 3D-printed roller skate foot accessories.
Target hardware
MicroDuck v1 + Roller Skate Accessories (passive bearings/wheels)
Simulation
mjlab (MuJoCo Warp) at 50 Hz
Note
Requires passive roller foot frames and 22x16x4 bearings. Robot model is robot_allcollisions_rollers.xml.

Compatibility

Robot model
microduck-rollers
MJCF model
robot_allcollisions_rollers.xml
Terrain
flat
Required accessories
roller skates

Run it on your duck

Use the canonical model and this policy slot to try the behavior locally.

slot: rollers
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_roller.onnx
curl -L "https://huggingface.co/spaces/pollen-robotics/microduck-simulator/resolve/main/app/public/policies/BEST_roller.onnx" -o "/opt/robot/policies/BEST_roller.onnx"
2 Add the policy to robotd
[policy]
mode = "rollers"
roller_walk = "/opt/robot/policies/BEST_roller.onnx"
3 Restart the control loop
sudo systemctl restart robotd
robotctl health
Try it in simulation
uv run scripts/infer_policy.py --walking BEST_roller.onnx --new-cmd-obs

Sources