Will it run?
Models

Hugging Face releases training loop, not just demo video

By Marco Vane Clawpit staff
Hugging Face releases training loop, not just demo video

Pollen Robotics, the robotics team of Hugging Face in Bordeaux, opened pre-orders this week for Microduck, a 25 cm open-source biped priced at $399. Unlike typical robotics launches that rely on edited video, this release includes code, training environments, reward functions, domain randomization settings, and a sim-to-real recipe, all publicly hosted on GitHub. Seven pre-trained behaviors are provided out of the box and can be triggered from an attached gamepad: walking, sit-and-stand, kicking, grasping, rolling on rollers, and fall recovery. Shipments are slated to arrive before Christmas.

The hardware weighs under 800 g, is 14 cm wide, and carries 15 motors in the legs, neck, and head, plus a suction-based object picker on the base. Computing is based on a Rockchip RK3566 with an AI accelerator, 1 GB RAM and 32 GB storage. The sensor suite is unusual at this price point: a front camera with a dedicated indicator LED, two IMU units (one in the body, one in the head), a compact LiDAR, an 8 × 8 time-of-flight matrix, microphones and a speaker, two NFC antennas, Wi-Fi and Bluetooth. Power comes from a removable NP-F550 battery rated at 2 600 mAh, sufficient for about one hour of operation.

The policies are trained in the microduck_rl package built on MuJoCo Warp with PPO. Pollen reports training times of one to two hours on a CUDA-compatible GPU for walking, using 4 096 parallel environments; users without a local GPU can invoke the same command with the `--hf-jobs` flag on Hugging Face Jobs. The core of the sim-to-real pipeline resides in the actuator model: each servo uses a Dynamixel XL330 BAM M6 model with voltage control law, EMF feedback, Coulomb friction, stiction and load-dependent friction, instead of an ideal PD controller. Per-environment randomization covers battery voltage, voltage sag under load, command latency, and friction magnitude. Backlash variations are trained against ±1° gear play, 2° total, across all 14 servo joints in the RL layout; because the real encoder sits on the output side of the same gear train, observations are read through it.

Policies are exported to ONNX with built-in observation normalization; Pollen warns that checkpoint points converted manually can be error-prone for this reason. Runtime on the robot is implemented in Rust, driving a control loop at 50 Hz and motor channels. Each policy shares a 61-dimensional actor-observation vector: 48 proprioceptive values plus three turn commands (3), four head-pose values (4), and six body-pose values. The shared contract enables hot-swap of walking, recovery, and trick policies during execution. Environments that ignore a command slot reset it rather than drop it. The detailed specification covers 13 tasks: speed tracking, stand-up, sit-to-stand, ground lift, kicking a 70 mm, 15 g ball (the actor is blind to the ball), roll, and five roller-sliding environments.

Software is released under the Apache-2.0 license; mechanical and electronic design files remain closed. Microduck follows the Reachy Mini, which sold more than 10 000 units, but shifts the use case: Reachy Mini is designed to sit on a desk and interact, while Microduck is built to leave the desk, fall, and get back up. Each unit generates a unique voice signature on first power-up and preserves it permanently, without spoken output, only a distinctive acoustic fingerprint.