← Embodied AI course
The Microduck robot in its simulation and control interface

MICRODUCK · SYSTEM OVERVIEW

A small robot.
A complete system.

Microduck turns a simple question—how can a two-legged robot walk?—into a full journey through mechanics, electronics, software, control, and learning.

Explore the robot ↓See the whole system →
Two legsA real balance problemMany layersBody to behaviorOne goalLearn by building

WHY MICRODUCK?

One robot connects the whole course.

A walking robot cannot succeed through one model alone. Its body must carry loads, its sensors must estimate motion, its software must coordinate devices, and its controller must turn a requested movement into safe joint targets. Microduck makes those connections small enough to inspect, but rich enough to matter.

01

Mechanical structure

Start with the physical arrangement. See how shells, joints, links, and feet form two connected kinematic chains.

Open the 3D explorer ↓
02

Hardware

Follow power, sensing, computation, and actuation. Learn what each component contributes to reliable movement.

Read the overview ↓
04

Walking and learning

Watch a simulated policy, measure what it does, and separate a successful model run from reliable walking.

Enter the learning lab ↓

PART 01 · MECHANICS

Look inside before asking it to move.

The interactive model below shows how the released simulation assembly is organized. Select a part, separate the assembly, or move one joint to see which connected bodies follow.

MICRODUCK A TO Z

From parts to motion.

Explore the body. Discover how its parts move together.

Released simulation assembly

Loading the robot’s geometry…

Drag to rotate · Scroll or pinch to zoom
Camera

PREDICT · TRY · EXPLAIN

If the hip turns, does only the hip move?

A joint connects two bodies. Rotating it moves the attached body and everything connected farther along the chain. Try these three short investigations.

Can you locate a motor inside the torso without removing the motor itself?

In Assembly, select an outer shell and hide it, or separate the parts with the exploded-view slider.

PART 02 · HARDWARE

The body makes every action physical.

Motors create joint torque, bearings guide rotation, and the feet exchange forces with the ground. Sensors report joint motion and body orientation, while the onboard computer and power system keep the control loop running. A policy can only command movements that this physical system can produce.

  • ActuationMotors turn desired joint positions into torque and motion.
  • SensingJoint and body measurements tell the controller what happened.
  • ComputationOnboard services connect commands, estimates, and motor targets.
Study the hardware in detail →

PART 03 · SOFTWARE

A request is not yet an action.

When a user asks Microduck to walk forward, the request moves through several software layers. The runtime interprets the command, assembles the current observation, evaluates the movement policy, applies limits, and sends targets to the motors. Each layer answers a different question and can fail in a different way.

  1. 1

    RequestThe user specifies the intended movement.

  2. 2

    ObserveThe robot measures its joints and orientation.

  3. 3

    DecideThe policy proposes the next joint targets.

  4. 4

    Protect and applySafety logic checks the proposal before hardware execution.

Follow the full software path →

PART 04 · WALKING & TRAINING

Learning is an experiment, not a magic step.

During reinforcement learning, many simulated robots try actions and receive rewards. The policy improves by using that experience, but a higher reward does not automatically mean the robot walks straight, stops correctly, or transfers to hardware. Those claims require separate measurements.

What the demonstration shows

The embedded viewer below replays joint motion saved from a reference MuJoCo evaluation. It is not a video, live physics, or a policy running in your browser. You can rotate the 3D view and inspect the recorded motion without leaving this page.

Study MuJoCo, PPO, and sim-to-real →

RECORDED SIMULATION

See the result, then learn how to reproduce it.

This reference gives every student a concrete starting point. The playback shows what MuJoCo calculated during a saved evaluation. Use it to understand the output and controls; use the local workflow below to evaluate your own model.

Loading the recorded motion…

Drag to rotate · Scroll or pinch to zoom
0.0 s

Recorded reference evaluation. Camera movement and timeline controls are interactive. Robot motion is replayed from saved data; no physics is running on the website.

RUN IT ON YOUR MAC

Your model belongs in your local simulator.

The public website is the shared example. Your own training and evaluation stay on your computer, where Python can use MuJoCo and read the policy you produced. The local browser page is only the interface; the companion Python process performs the evaluation.

  1. 01

    Get the course project

    Clone the course repository and open the microduck-training-lab directory. The repository keeps the interface, evaluation code, and expected file formats together.

  2. 02

    Prepare the simulator

    Use Python 3.12 with MuJoCo, ONNX Runtime, NumPy, and the required BAM motor model. Keep this Mac environment separate from Linux-only CUDA packages.

  3. 03

    Train and export a policy

    The training recipe produces a policy that maps 61 observation values to 14 joint targets. Preserve the robot revision, recipe, and model checksum with every run so the result remains traceable.

  4. 04

    Evaluate locally in MuJoCo

    Start the local companion with python server.py, open the local address it prints, and choose Run local tests. MuJoCo then calculates new stand, walk, and turn trials from your policy.

  5. 05

    Judge the behavior

    Inspect the recorded motion together with speed, heading, balance, stopping, and fall measurements. A completed training run means only that optimization ended; these tests determine whether the learned behavior matches the task.

Course-ready local training is still being completed.

The evaluation path already runs on the Mac. The exact Mac training command and dependency setup will be published after that workflow is validated end to end. Until then, the website does not imply that local training is ready.

Open the local lab guide on GitHub ↗

What this model does—and does not—tell us

This is the released Microduck simulation assembly, not a complete manufacturing or purchase list. It contains … visible component instances, … distinct geometry files, and … adjustable joints. Repeated motor shapes are counted separately from controllable joints.

Sources, assumptions, and attribution

Geometry and the body hierarchy come from Pollen Robotics’ Microduck Simulator snapshot, dated by its pinned revision below. The starting pose uses zero for every hinge angle. The torso is fixed; no physics engine runs here. The mouth has no independent control in this selected hierarchy.

The training repository states that its 3D model files use Creative Commons BY-SA-NC; its source code uses Apache 2.0. The notice does not specify a Creative Commons version. These educational assets are reproduced with their attribution, without claiming a different license. Review the upstream terms before redistributing them, especially for commercial use.