📌 这是个人 Fork 仓库(中文说明)
本仓库是 pollen-robotics/microduck 的个人派生版,由
yunloong-Y(GitHub)与yunlong616(Gitee)维护,已设为 Public。
- 🇨🇳 本地运行(无需硬件)中文指南:见
LOCAL_RUN_CN.md—— 用--fake仿真模式在 macOS / Linux 跑通robotd控制循环与robotctl交互。- 🤖 原版是 RK3566 上的鸭子机器人「大脑」:50Hz 控制环 + 15 路舵机 + 神经网络策略(ONNX)。
- 🔁 同步源:上游
main分支(pollen-robotics)。本 Fork 在main上叠加了中文文档与一套--fake冒烟测试 CI。想看原版项目与购买硬件,请回上游:https://github.com/pollen-robotics/microduck
A tiny biped robot that moves using reinforcement learning policies.
Get yours here · Cheat sheet · Training the policies · How it works · Contributing
This repo is the duck's brain. About 25 cm and 800 g of robot, run by a handful of daemons on a Rockchip RK3566: a 50 Hz control loop driving fifteen servos from neural policies, the radios and the camera, and the update machinery that gets new software onto a robot without bricking it.
Everything you need to run a Microduck is here. If you want one, get yours here.
The policies it runs are trained next door, in microduck_rl — MuJoCo and PPO, the sim2real recipe, and the export to ONNX that this repo loads.
walk.MP4 |
roller_cut.mp4 |
| It walks. Pick up a gamepad and drive. | It rolls. Put wheels on, hold D-pad up, and it loads the other brain. |
grasp.MP4 |
standup.MP4 |
| It picks things up. Beak to the floor, one button. | It gets back up. Knock it over and it stands itself up. |
It also sits, kicks a ball, rolls forward on command, and quacks in a voice that is its own.
| Cheat sheet | Every robotctl command: drive, configure, voice, chorale, theremin, wifi, updates, logs. Start here. |
| Gamepad | The full button mapping, and pairing a pad — once per pad, plus what to do when it will not bond. |
duckctl |
The robot from a laptop over Bluetooth, with no network and no ssh. |
| Updates | Install, roll back, pin. Every update is verified, health-gated and reversible. |
| microduck_rl | Where the policies come from: MuJoCo, PPO, domain randomisation, and the ONNX export this repo loads. |
| How it works | The whole system on one page — the daemons, the bus, how an update reaches a robot — then a page per part. |
| Set up a dev board | From a blank board to a robot that takes branch builds. |
| Dev cheat sheet | Branch builds, release candidates, driving from a laptop, and the restart traps after an update. |
| Push your branch | Build on your machine, install over ssh, about a minute. |
| CONTRIBUTING.md | Building, testing, layout, conventions, releasing. |
| Docs index | Everything, including the design pages and the open problems. |
Rust, no framework, one workspace. robotd owns the control loop and the motor bus; updaterd
installs signed releases and rolls them back when a robot comes up unhealthy; configd owns wifi
and identity; btd is the Bluetooth path a phone uses; padd reads the gamepad; mediad streams
the camera over WebRTC; tofd serves the depth sensor. They talk over one JSON-RPC contract on
Unix sockets, and every client — the app, the console, the gamepad, your script — sends exactly the
same calls.
The interesting decisions are written down: docs/design/ is why things are the
way they are, and docs/project/ is what has gone wrong and what would close it.
No duck was harmed in the making of this robot. Several were consulted.
