YouDuck.ai

Getting started with Microduck

Last updated

This section follows the order you actually do things in: what to check before touching anything, how to power the joints, how to pair a pad, and what to look at when nothing moves.

Three things worth knowing first

It walks on trained policies, not gait code

Microduck is about 25 cm and 800 g, built around a Rockchip RK3566. A handful of Rust daemons run it, and robotd drives fifteen servos from a 50 Hz control loop fed by neural policies — .onnx files — rather than hand-written gait code.

That one fact redirects every diagnosis:

“The robot will not move” is most often a policy that did not load, not a motor that failed.

The bottom border of robotctl monitor names the .onnx currently loaded. A robot with no policy says so; one whose policy would not load says something else. The state stream’s held cannot tell those apart.

Nothing moves until Start is pressed

The gamepad’s Start button toggles the policy. With it off the robot stands powered and ignores the sticks completely.

This is the single most common “it is broken” misdiagnosis. Powering the joints (robot init) and enabling the policy (Start) are separate steps.

Function is split by daemon

Knowing who owns a symptom saves most of the search:

Symptom Owner
Motors, gait, safety clamps, fall verdict robotd
Reading the gamepad padd
Pairing a gamepad configd — bonding needs root, and padd is deliberately unprivileged
Wifi, identity, power configd
Camera, WebRTC, the web console mediad
Updates and rollback updaterd
The head’s ToF depth sensor tofd
The BLE path a phone uses btd

The reasoning behind each split is in System architecture (Chinese).

Three commands cover most of it

robotctl version    # running vs installed, per daemon — always run this first
robotctl health     # hardware and software in one report, non-zero when unhealthy
robotctl monitor    # requested vs applied, with the reason when they differ

version is first for a specific reason: a daemon still serving old code after an update looks exactly like the fix you just shipped not working.

Starting without hardware

  • The online simulator runs in a browser.
  • scripts/infer_policy.py drives an exported policy in CPU MuJoCo from the keyboard, no robot needed.

In this section

  • What Microduck is

    A 25 cm, 800 g open-source biped that walks on reinforcement learning policies. What it does, and how it differs from a robot toy.

  • First run

    Four steps from a powered board to driving the robot with a gamepad, and what to check when nothing moves.

  • Pair a gamepad

    Pairing an Xbox or DualSense pad, and what to try in order when it will not bond.

  • Gamepad controls

    Every button and hold, the three stick modes, and why there is no stop button.

  • Setting up a dev board

    From a blank board to one that takes branch builds, plus the table that tells you which Bluetooth configuration it needs.