Built to order

Microduck-Inspired Sim-to-Real Biped Robot: Teach a Tiny Walking Robot New Tricks with Reinforcement Learning

This project builds a Microduck-inspired biped robot: a 25 cm (design target) duck-shaped biped with 11 MG90S servos that learns to walk in a MuJoCo simulation with PPO, then runs the policy on the robot at a 50 Hz loop (design target). Six behaviors — walk, sit, stand, crouch/nap, kick and self-right — run from a policy dashboard with telemetry and a fall test. The honest student-scale echo of Pollen Robotics' $399 Microduck, demoed at NVIDIA GTC Berlin on 21 October 2026. Suitable for B.E./B.Tech final-year projects in IoT & Embedded and Robotics engineering.

IoT & Embedded MPU6050 6-Axis IMURaspberry Pi Zero 2 W3D-printed duck biped bodyMuJoCo simulation PPO trainingPolicy dashboard gamepad controlHybrid
Microduck-Inspired Sim-to-Real Biped Robot: Teach a Tiny Walking Robot New Tricks with Reinforcement Learning — project thumbnail preview
More project photos (3)

The problem

At NVIDIA's GTC Berlin keynote on 21 October 2026, Jensen Huang asked four tiny robots to sit, stand and take a nap — and they obeyed. The robots were Microducks, built by Pollen Robotics (part of Hugging Face): a 25 cm, under-800 g open-source biped with 15 motors, a camera, an 8x8 time-of-flight sensor and two IMUs, sold as a $399 preorder, whose every movement is a policy trained in simulation and transferred to hardware. The point is not the duck shape; it is the method — sim-to-real learning — which a student build can honestly reproduce at servo scale. The problem: a $399 import with custom actuators is out of reach for most college budgets, and a hand-coded gait teaches nothing about how modern robots learn to move. This project closes that gap: a 3D-printed duck biped with MG90S servos, a Pi Zero 2 W, and a MuJoCo + PPO pipeline the student runs on a laptop, with the policy exported to the physical robot.

Microduck's reference numbers set the context: 25 cm tall, about 780 g, 15 motors, 7 shipped behaviors (walk, sit, stand, kick, pick-up, roller-skate, self-right), a 50 Hz onboard policy loop, and a training recipe Pollen documents openly — MuJoCo simulation, PPO, 4,096 parallel environments, roughly 1-2 hours on a single CUDA GPU, with domain randomization over battery sag, command delay and up to 1 degree of joint backlash (all reported). This build keeps the method and rescales the hardware honestly: 11 MG90S servos (5 degrees of freedom per leg plus a beak gripper) instead of 15 custom actuators, a Pi Camera and a single-point time-of-flight sensor as stand-ins for Microduck's camera and 8x8 lidar, and one MPU6050 IMU instead of two. What transfers is the real science — reward design, domain randomization, the sim-to-real gap, and measured transfer results — plus the experimental discipline the topic demands: tethered first transfers, fall trials, and a self-right success rate counted over real attempts, never claimed in advance.

How it works

A training run works like this. The student builds a MuJoCo model of the biped — same link lengths, masses and servo limits as the printed robot — and defines the reward: forward velocity, staying upright, and a penalty on jerky joint effort. PPO (Stable-Baselines3) trains the policy in simulation with domain randomization on — battery sag, joint backlash and command delay vary every episode — until the reward curve flattens. The trained policy is exported to ONNX and copied to the Pi Zero 2 W, which reads the MPU6050 and joint state, runs the policy at a 50 Hz loop (design target) and writes servo commands through the PCA9685 driver. Early transfers run under the tether; once the robot walks without it catching, the student runs the measured trials — walking distance before a fall, self-right success over 10 attempts, loop rate — and the dashboard logs every episode to CSV for the report's results section.

  1. The student assembles the 3D-printed duck biped: 11 MG90S servos, Pi Zero 2 W, PCA9685 servo driver, MPU6050 IMU, Pi Camera and time-of-flight sensor, powered by a 2S LiPo through a UBEC.
  2. A MuJoCo model matching the printed robot's link lengths, masses and servo limits is built, and the reward is defined: forward velocity plus upright posture minus joint-effort penalty.
  3. PPO training runs on the laptop (Stable-Baselines3) with domain randomization — battery sag, joint backlash up to 1 degree and command delay — until the reward curve flattens.
  4. The trained policy is exported to ONNX and deployed to the Pi Zero 2 W, which runs the observation-to-action loop at a 50 Hz loop (design target).
  5. First transfers run under the overhead tether on a soft mat; the student compares simulated vs real gait and notes the reality gap honestly in the report.
  6. Behaviors are switched from the dashboard or gamepad — walk, sit, stand, crouch/nap, kick, self-right — while joint telemetry and IMU data stream live.
  7. Measured trials follow: walking distance before a fall, self-right success over repeated attempts and loop rate, all logged to CSV for the report.

Tech stack:

  • 3D-printed duck biped body (PLA · 25 cm design target · beak gripper)
  • 11x MG90S metal-gear servos (5 DOF per leg · beak gripper · 2.0 kg-cm at 6 V)
  • Raspberry Pi Zero 2 W (quad-core Cortex-A53 at 1 GHz · 512 MB · Wi-Fi)
  • PCA9685 16-channel PWM servo driver (I2C · 50 Hz servo pulses)
  • MPU6050 6-axis IMU (posture sensing · fall detection · I2C)
  • Pi Camera + VL53L0X time-of-flight sensor (camera and ranging stand-ins)
  • MuJoCo simulation + PPO training (Stable-Baselines3 · ONNX export · domain randomization)
  • Policy dashboard + gamepad control (behavior switching · telemetry · CSV episode log)
Parameter Value
Reference system Microduck by Pollen Robotics / Hugging Face: 25 cm tall, about 780 g, 15 motors, camera + 8x8 time-of-flight sensor + 2 IMUs, 7 shipped behaviors, 50 Hz policy loop, $399 preorder (reported across 4 outlets, Oct 2026); GTC Berlin demo 21 Oct 2026 (sit/stand/nap commands)
Student robot 25 cm tall (design target), under 1 kg (design target), 3D-printed PLA duck body, 11 MG90S servos: 5 DOF per leg (hip roll · hip pitch · knee pitch · ankle pitch · ankle roll) + 1 beak-gripper servo
Servos MG90S metal-gear micro servos: 4.8-6 V, stall torque about 2.0 kg-cm at 6 V, speed 0.08 s/60 deg at 6 V, 180 deg travel (typical manufacturer values)
Compute Raspberry Pi Zero 2 W: quad-core Cortex-A53 at 1 GHz, 512 MB RAM, 2.4 GHz Wi-Fi (manufacturer spec); PCA9685 16-channel PWM driver over I2C
Sensors MPU6050 6-axis IMU: accel ±2g/±4g/±8g/±16g + gyro ±250/±500/±1000/±2000 deg/s (datasheet values); Pi Camera (vision stand-in); VL53L0X single-point time-of-flight (ranging stand-in for 8x8 lidar)
Training MuJoCo physics simulation + PPO (Stable-Baselines3); domain randomization: battery sag · joint backlash up to 1 deg · command delay; Microduck's reported recipe: 4,096 parallel environments, about 1-2 h on a single CUDA GPU (reported)
Deployment Trained policy exported to ONNX; onboard loop 50 Hz (design target); behavior switching via dashboard or USB gamepad
Behaviors shipped Walk · sit · stand · crouch/nap · kick · self-right after a fall (6 policies); beak pick-up of objects under 30 g (design target)
Power 2S LiPo (7.4 V nominal) + UBEC to 5-6 V servo rail; separate Pi supply rail to avoid brownouts (design note)
Safety Overhead tether + soft mat for first transfers; servo current limit in software; physical kill switch; indoor flat-floor use only
Measured results Walking distance before a fall · self-right success over repeated trials · policy loop rate — all measured by the student during trials and logged to CSV (no results pre-claimed)
Honest boundary Commodity servos and a single-point ranging sensor, NOT Microduck's custom actuators and 8x8 lidar; the policy is trained by the student at small scale, and transfer results are measured, not promised

Project features

The biped's capabilities are six. First, sim-to-real walking: a PPO policy trained in MuJoCo walks the real robot, on the same observation-to-action loop Microduck uses, exported to ONNX and run at a 50 Hz loop (design target). Second, six switchable behaviors: walk, sit, stand, crouch/nap, kick and self-right, selected from the dashboard or a gamepad — the student-scale echo of the GTC voice commands. Third, domain randomization in training: battery sag, joint backlash and command delay are randomized so the policy survives the messiness of real servos. Fourth, live policy telemetry: joint angles, IMU pitch and roll, loop rate and battery voltage stream to the dashboard while the robot moves. Fifth, a fall-and-recover test rig: an overhead tether catches the robot during early transfers, and a dashboard fall button lets the student measure self-right success over repeated trials. Sixth, measurable transfer results: walking distance before a fall, self-right success rate and loop rate are logged per episode for the report.

  • [Sim-to-real PPO walking] A PPO policy trained in a MuJoCo model of the biped walks the physical robot — reward-shaped for forward speed, upright posture and low joint effort, exported to ONNX and run at a 50 Hz loop (design target) on the Pi Zero 2 W.
  • [Six switchable behaviors] Walk, sit, stand, crouch/nap, kick and self-right policies selectable from the dashboard or a USB gamepad — the student-scale stand-in for the sit/stand/nap voice commands demoed at GTC Berlin.
  • [Domain randomization] Training randomizes battery sag, up to 1 degree of joint backlash and command delay (mirroring Microduck's reported recipe), so the transferred policy tolerates real servo slop instead of collapsing on first contact.
  • [Live policy telemetry] Joint angles for both legs, IMU pitch/roll, policy loop rate and battery voltage stream to the dashboard in real time, with an episode event log for every policy switch, fall and self-right.
  • [Tethered transfer rig] An overhead tether and soft floor mat catch the robot during the first sim-to-real transfers, so early policies can fail safely while the student measures the reality gap.
  • [Fall-and-recover trials] A dashboard fall test plus automatic self-right policy lets the student count self-right successes over repeated trials — the project's headline measured result, reported honestly, never pre-claimed.
  • [Beak gripper] A single-servo articulated beak picks up small light objects (design target: under 30 g), echoing Microduck's pick-up behavior at student scale.
  • [Working policy dashboard] The dashboard (working demo UI included) switches policies, plots the training reward curve, shows live telemetry and logs every episode to CSV.

What is included

  • Assembled duck biped: 3D-printed PLA body and head with beak gripper, 11 MG90S servos, Pi Zero 2 W, PCA9685 driver, MPU6050, Pi Camera, time-of-flight sensor, 2S LiPo with UBEC
  • MuJoCo biped model matched to the printed robot plus the complete PPO training pipeline (reward definition, domain randomization, ONNX export)
  • Policy dashboard app: behavior switching, live joint/IMU telemetry, training reward curve, fall test, CSV episode log (working demo UI included)
  • Overhead tether transfer rig and soft mat procedure card with the staged transfer checklist
  • Wiring diagram and biped assembly layout with servo calibration procedure
  • Component list with Indian supplier sourcing notes for the servos, Pi Zero 2 W, driver board and sensors
  • Project report PDF (sim-to-real method, reward design, domain randomization, measured transfer results, honest Microduck delta)
  • PPT presentation for final review
  • Viva Q&A preparation document (reinforcement learning, PPO, sim-to-real gap, domain randomization, why the policy fails on the real robot)

Limitations & prerequisites

  • This is NOT Microduck: the reference robot uses 15 custom actuators, an 8x8 lidar and two IMUs, while this build uses 11 commodity MG90S servos, one IMU and a single-point ranging sensor — the page states this delta everywhere it matters.
  • Transfer is not guaranteed: a policy that walks perfectly in MuJoCo can stumble on the real robot, and the report's job is to measure that gap honestly — tethered trials exist precisely because early transfers fail.
  • MG90S torque limits the build: about 2.0 kg-cm stall at 6 V per servo means the robot must stay light (under 1 kg design target) and on flat indoor floors — no stairs, no rough ground, no carrying loads beyond the 30 g beak target.
  • Training needs a GPU for comfortable iteration: Microduck's reported 1-2 hour recipe assumes a CUDA GPU; on a CPU-only laptop the same training runs much slower, and the report documents the hardware actually used.
  • No voice understanding: the GTC demo's spoken commands are echoed by dashboard buttons and a gamepad in this build — an offline keyword spotter is an optional extension, not a shipped claim.
  • The camera is a stand-in: the shipped build does not do vision-based navigation — the Pi Camera is present for future policies and for recording trials, not for closed-loop visual walking.
  • Battery life is session-scale (design target: tens of minutes of active policy running per charge, not hours); the 2S LiPo must be balance-charged and never left charging unattended, and the report's safety section states this.

Frequently Asked Questions

What is Microduck, and why did it inspire this project?

Microduck is a $399 open-source biped robot from Pollen Robotics, part of Hugging Face — 25 cm tall, about 780 g, with 15 motors, a camera, an 8x8 time-of-flight sensor and two IMUs — whose movements are reinforcement-learning policies trained in simulation and transferred to hardware. At NVIDIA's GTC Berlin keynote on 21 October 2026, Jensen Huang had four Microducks sit, stand and nap on command. It inspired this project because it made sim-to-real learning tangible: the method, not the duck, is what a student can honestly reproduce with commodity servos and a laptop.

How does sim-to-real learning actually work in this build?

The student builds a MuJoCo model of the printed biped, defines a reward (forward speed, upright posture, low joint effort), and trains a PPO policy in simulation while randomizing battery sag, joint backlash and command delay. The trained policy is exported to ONNX and run on the Pi Zero 2 W at a 50 Hz loop (design target), reading the IMU and joint state and writing servo commands. The reality gap — where simulation and hardware disagree — is measured in tethered trials and reported, not hidden.

Why not just hand-code the walking gait?

A hand-coded gait works on day one but teaches nothing about how modern robots learn movement, and it breaks the moment the floor, battery or servo changes. A learned policy with domain randomization is the current industry method — it is also far better viva material, because the student can explain reward design, why training failed, and what the transfer measurements actually showed.

What will the robot actually do when it is finished?

Six switchable behaviors: walk on a flat indoor floor, sit, stand, crouch/nap, kick a light ball, and self-right after a fall — selected from the dashboard or a gamepad, with live joint and IMU telemetry. The beak gripper picks up objects under 30 g (design target). What it will not do is climb stairs, walk on rough ground, or understand spoken commands — those limits are stated on the page.

Is this project suitable for a final-year project?

Yes — for IoT & Embedded, Robotics and related programs, because it combines five defensible engineering layers in one build: 3D-printed biped mechanics, servo power and control electronics, reinforcement-learning training, embedded ONNX deployment, and a measured experimental evaluation. Every spec number is datasheet-sourced or explicitly labeled as a design target, and the honest delta from Microduck's custom hardware is strong viva material.

Components & software requirements
  • 3D-printed duck biped body (PLA · 25 cm design target · beak gripper)
  • 11x MG90S metal-gear servos (5 DOF per leg · beak gripper · 2.0 kg-cm at 6 V)
  • Raspberry Pi Zero 2 W (quad-core Cortex-A53 at 1 GHz · 512 MB · Wi-Fi)
  • PCA9685 16-channel PWM servo driver (I2C · 50 Hz servo pulses)
  • MPU6050 6-axis IMU (posture sensing · fall detection · I2C)
  • Pi Camera + VL53L0X time-of-flight sensor (camera and ranging stand-ins)
  • MuJoCo simulation + PPO training (Stable-Baselines3 · ONNX export · domain randomization)
  • Policy dashboard + gamepad control (behavior switching · telemetry · CSV episode log)
Delivery information

Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.

Support terms

Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.

Download free synopsis (PDF)

Enter your name and WhatsApp number — the synopsis PDF downloads immediately. We may send occasional project updates on WhatsApp; no spam.

Get a quotation