📌 项目地址:pollen-robotics/microduck | ⭐ 10,814 颗星 | 🔧 Rust | 📜 未标注

先说清楚这个仓库是什么

Microduck 是 Pollen Robotics 做的双足鸭子机器人,高约 25 厘米,重 800 克,15 个舵机,主控是一块 Rockchip RK3566。GitHub 上 10814 个 star。

README 里那句话说得很准:这个仓库是鸭子的大脑。50 Hz 的控制循环驱动十五个舵机,跑的是神经网络策略;无线电、相机也归它管;还有一套更新机制,负责把新软件推到机器人上而不刷成砖。

想让它走起来,关键不在这个仓库。策略在隔壁的 microduck_rl 里训练:MuJoCo 仿真加 PPO,加域随机化,训练完导出 ONNX,本仓库负责加载运行。这是目前足式机器人圈常见的 sim2real 路线,Microduck 把整条链路都开源了。

它会什么

  • 走路:拿起游戏手柄就能开。
  • 滚动:装上轮子,切到 roller 模式,它会换载另一套策略。
  • 捡东西:喙贴到地上,按一个键。
  • 摔倒自己爬起来:把它推倒,它自己站起。
  • 还会坐下、踢球、按指令前滚,叫声是“属于它自己的声音”。

我特意记下 roller 模式这个细节:轮式和足式用的是两套不同的策略文件,运行时按模式加载。这说明策略是可插拔的,不是写死在控制代码里。

有鸭子的人怎么用

机器人端所有操作走 robotctl,覆盖驾驶、配置、语音、Wi-Fi、更新、日志,官方建议从 cheatsheet 入手。

有两个设计我觉得值得单独说。

一个是 duckctl:从笔记本通过蓝牙直接操控机器人,不需要网络,也不需要 ssh。现场调试时这很省事,你不用先想办法把机器人连上网。

另一个是更新机制。每次更新都经过验证和健康检查,装坏了可以回滚,还可以把版本 pin 住不动。消费级硬件上敢做 OTA 的开源项目不多,这套机制本身就值得读代码。

没有鸭子也能玩

这部分对大多数读者最有用。scripts/duck-sim 在 MuJoCo 里跑一套仿真的鸭子躯体,跑的是真实的守护进程代码,不是简化版 demo。可以一个窗口跑一只,也可以同时跑四只,当作四台能登录的机器。

也就是说,研究 sim2real 或者改控制逻辑,不用先买硬件。仿真跑通后,开发流程是:本机构建,通过 ssh 装到机器人上,官方说全程约一分钟(见 dev-push 文档)。

代码层面

Rust,不用框架,一个 workspace。系统拆成一组守护进程,通过总线通信。完整架构在 architecture 文档 里,一页讲完所有 daemon、总线、更新如何到达机器人,然后每个部分单独一页。

为什么拆成多进程?我的理解是:各子系统互相独立,更新和回滚才做得干净。一个 daemon 挂了不会拖死整机。

三个入口

  • 只想玩:买硬件,从 cheatsheet 开始。
  • 想改运动行为:去 microduck_rl,MuJoCo + PPO + ONNX 导出全在那里,本仓库只负责加载运行。
  • 想读代码:先看 architecture 文档,再看 CONTRIBUTING.md 里的构建和测试约定。

一万 star 说明看热闹的人不少,但这个仓库真正稀缺的地方是:它是一份完整的、跑在真实量产硬件上的 Rust 机器人软件,从控制循环到可回滚 OTA 都能读到源码。

这篇文章对你有帮助吗?

发表回复