Pollen Robotics, the Bordeaux-based team now part of Hugging Face, is taking pre-orders for Microduck, a 25-centimeter bipedal robot in which walking, sitting, kicking, roller-skating, and standing back up after a fall are all neural policies trained in a physics simulator and exported to the hardware. The price is $399.
An open training loop, not a polished demo
What separates Microduck from most robotics launches is not the hardware. It is that the training loop is public. The training environments, reward functions, domain-randomization settings, and the sim-to-real recipe are all on GitHub. Pollen is shipping the policy stack rather than a polished demo video.
Microduck follows Reachy Mini, which has shipped more than 10,000 units. Where Reachy Mini was built to sit on a desk and interact, Microduck is built to leave the desk, fall over, and get back up.
Hardware built to fall over
The hardware is small and unusually complete for the price. The robot stands 25 cm tall, is 14 cm wide, and weighs under 800 grams. Fifteen motors drive the legs, neck, and head, plus an articulated beak designed to pick objects off the floor. Compute is a Rockchip RK3566 with an AI accelerator, 1 GB of RAM, and 32 GB of storage. A front camera sits behind a dedicated camera-use indicator. Two IMUs are fitted, one in the body and one in the head. Range sensing comes from a compact LiDAR, an 8×8 time-of-flight matrix. There are microphones, a speaker, two NFC antennas, and Wi-Fi and Bluetooth. Power is a removable NP-F550 battery at 2600 mAh, rated for about an hour of runtime.
Seven trained behaviors in the box
Seven trained moves ship in the box and can be driven from a bundled game controller before any code is written: walk, sit and stand, kick, grab, roller-skate, and self-recovery. The robot does not speak, but each unit generates its own audio identity on first wake and keeps that voice permanently.
Training stack and GPU cost
The behaviors are trained in microduck_rl, built on mjlab, which uses MuJoCo Warp with PPO. Pollen reports roughly one to two hours on a CUDA GPU for a usable gait at 4096 parallel environments. Without a local GPU, appending --hf-jobs runs the same command on Hugging Face Jobs.
Sim-to-real: actuator modeling and randomization
The sim-to-real work is concentrated in the actuator model. Each servo uses the BAM M6 model of the Dynamixel XL330, with voltage control law, back-EMF, and Coulomb, Stribeck, and load-dependent friction, rather than an ideal PD controller. Per-environment randomization covers battery voltage, voltage sag under load, command delay, and friction magnitude. Backlash variants train against ±1° of gear play, 2° total, in series with each of the 14 servo joints in the RL layout. Because the real encoder sits on the output side of that play, the observations read through it.
Trained policies export to ONNX with the observation normalizer baked into the graph. Pollen warns against deploying hand-converted checkpoints for exactly this reason. On the robot, a Rust runtime drives the 50 Hz control loop and the motor bus.
Shared observation contract and task registry
Every policy shares a 61-dimensional actor observation: 48 proprioception dimensions plus commands for twist, head pose, and body pose. That shared contract is what lets walk, recover, and trick policies hot-swap mid-run. Environments that ignore a command slot zero-pad it rather than dropping it. The published registry covers 13 tasks: velocity tracking, stand-up, sit-stand, ground pick, ball kick, 15 g ball, actor ball-blind, roulade, and five roller-skating environments.
Software is Apache-2.0. The mechanical and electronic design files are not open.