// the find
pollen-robotics/microduck
A Tiny biped duck robot 🦆
microduck is the runtime for Pollen Robotics' toy biped duck robot: a Rust codebase running on an embedded Rockchip board that drives 15 servos from an RL policy at 50Hz, handles camera/BLE/gamepad IO, and manages signed OTA updates. It's for people who bought the physical robot and want to hack on it, or for developers curious about a real, shipped sim2real control stack rather than a lab demo.
The daemon split (robotd, updaterd, configd, btd, padd, mediad, tofd) all talking over one JSON-RPC contract on Unix sockets means the app, console, and your own script hit the exact same interface — no special-cased client paths. The updater is health-gated and reversible, which is the part most hobbyist robot projects skip and then brick devices over. There's a MuJoCo-backed simulator (duck-sim) so you can develop against the real daemons without owning hardware. The ONNX policy loader has test fixtures for bad shapes, NaN states, and recurrent (LSTM) policies — someone actually thought about malformed model inputs instead of only testing the happy path.
Most of the repo is dead weight without the physical robot ($$ purchase required) — only the simulator path is usable standalone, and that's not the point of the project. Policy training lives in a separate repo (microduck_rl), so judging whether the walking/getting-up behavior is actually good means reading a different codebase entirely. Target is Rockchip RK3566 embedded Linux specifically, so contributing meaningfully needs cross-compilation setup and either a dev board or the retail unit — casual PRs are basically locked out. No coverage numbers or test summary beyond a green CI badge, so it's unclear how much of the daemon logic (vs. just the policy-loading path) is actually exercised by tests.