Polite bow

The Microduck bows from a two-foot stand, holds for half a second and comes back up. It stands still before the robot takes over again, so the stand network gets a calm duck.

Tested in simulation only. It has not run on a real duck yet. Try it on the floor, with room around it, and keep a hand near the duck.

Install

robotctl policy load ground_pick GinDuck/microduck-polite-bow

This is a phase-driven move, so it takes the ground pick slot and replaces the ground pick until you reset it. For walking mode only. To start it:

robotctl robot do ground_pick

To put the original ground pick back:

sudo robotctl policy reset ground_pick

Timing

The robot runs a ground-pick slot on the official set's timing: a 4.0 s period, handed back at phase 0.7, so after 2.8 s. This bow is built for that:

Time What happens
0.15 to 0.95 s Down
0.95 to 1.45 s Held
1.45 to 2.35 s Back up
from about 2.64 s Still, legs pulled back to the stand
2.8 s Handed back to the stand network

The timing was read from the source of pollen-robotics/microduck at b2b0d21 (2026-10-30). Another robot software version may behave differently.

How it was checked

Each duck bowed for 2.8 s, was handed to the official alpha_stand.onnx and was watched until 8 s, with the training's randomised physics.

Ducks Falls Largest tilt after the hand-back Foot slip after the hand-back (95 % of ducks up to)
No pushes 256 0 7.4° 1.7 mm
With pushes 96 2 9.1° (ducks that stayed up) 35.0 mm

With pushes the two falls came 1.2 s and 2.4 s after the hand-back. For comparison, the stand network alone fell once in 96 ducks in a similar test, so these numbers are too small to separate the two.

Pose while held Target Measured
Trunk 10.3° 10.3°
Neck -17.2° -14.8°
Chin 22.9° 22.8°

Training

Checkpoint 1750 of run bow-2, 3000 iterations with 4096 ducks, on the expressive-motions branch of pollen-robotics/microduck_rl with this motion added:

BOW_R2 = Motion("Bow", 4.0, (
    Comp("pitch", 0.18, (0.15, 0.95, 1.45, 2.35)),
    Comp("dz", -0.006, (0.15, 0.95, 1.45, 2.35)),
    Comp("neck_pitch", -0.30, (0.20, 0.95, 1.45, 2.25)),
    Comp("head_pitch", 0.40, (0.20, 0.95, 1.45, 2.25)),
), settle_from=0.62)

Licences

The network is released under Apache 2.0, like the training code. The preview video shows Pollen Robotics' 3D model of the Microduck, which is licensed under CC BY-NC-SA 4.0; the video is an adaptation under the same licence.

Trained by GinDuck with iMundo. Not an official Pollen Robotics policy.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support