TL;DR

Microduck 是 Pollen Robotics 推出的微型双足机器人(约 25cm, 800g)的嵌入式控制软件栈。它展示了如何在资源受限的边缘设备(Rockchip RK3566)上,通过 Rust 编写的轻量级守护进程集群和 RL(强化学习)策略实现稳定的双足行走、翻滚及交互功能。

它解决什么问题

传统机器人操作系统(如 ROS)在微型、低功耗嵌入式平台上往往显得过于臃肿,且实时性难以保证。Microduck 旨在解决“如何在低成本 SoC 上高效运行高频率控制回路(50Hz)并加载神经网络策略”的问题。随着强化学习在机器人运动控制中的普及,Sim2Real 的部署链路变得至关重要——该项目提供了一套从策略加载、硬件抽象到 OTA 更新的完整闭环,填补了小型化具身智能终端在工程落地上的空白。

核心做法

系统采用无框架(no framework)的 Rust monorepo 架构,通过 Unix Socket 上的 JSON-RPC 协议实现模块间通信。核心组件包括: - robotd: 主控制守护进程,负责 50Hz 的控制回路、电机总线驱动及神经网络策略推理。 - updaterd: 负责安全 OTA,支持签名验证、健康检查及回滚机制。 - mediad/tofd: 分别处理 WebRTC 视频流和深度传感器数据。 - configd/btd/padd: 管理 WiFi、蓝牙配对及游戏pad输入。 策略模型由独立仓库 microduck_rl 使用 MuJoCo + PPO 训练,导出为 ONNX 格式后由 robotd 加载执行。这种解耦设计使得控制逻辑、感知处理和通信层相互独立,便于维护和替换。

作者

项目由 Pollen Robotics(一个专注于机器人技术的组织)维护。README 未提供团队成员的具体背景信息,但从项目质量、文档完整性及 Sim2Real 工作流的成熟度来看,团队具备深厚的嵌入式系统与强化学习工程化经验。该项目并非学术原型,而是具有明确商业产品导向(提供实体机器人购买链接)的工程实现。

社区反应

截至数据抓取时,项目拥有 11,628 Stars 和 1,481 Forks,显示出极高的社区关注度。这主要得益于其小巧的形态、有趣的演示视频以及 Rust 在机器人领域的应用热度。然而,79 个 Open Issues 表明项目仍处于快速迭代或早期稳定阶段,可能存在未解决的 Bug 或待实现的 Feature。主语言为 Rust,生态相对垂直,主要受众为嵌入式 AI 工程师和机器人爱好者。

怎么上手

  1. 硬件依赖: Rockchip RK3566 SoC(Microduck 本体)。
  2. 环境准备: 安装 Rust 工具链。若需开发,参考 docs/robot/install-dev.md 配置开发板。
  3. 最小复现: - 克隆仓库并构建:cargo build - 使用模拟器快速验证:运行 scripts/duck-sim,它会在 MuJoCo 中模拟真实守护进程的行为。 - 实体部署:通过 duckctl(蓝牙)或 SSH 连接机器人,使用 robotctl 进行驱动配置。
  4. 策略训练: 需访问关联仓库 pollen-robotics/microduck_rl 获取 MuJoCo 环境和 PPO 训练代码。

争议与局限

  • 硬件锁定: 系统深度绑定 Rockchip RK3566,迁移到其他平台(如 NVIDIA Jetson 或 STM32)需要重写底层驱动和硬件抽象层,通用性受限(推断)。
  • RL 泛化能力: 虽然演示了行走、翻滚和捡拾,但 RL 策略通常对未见过的地形或扰动敏感。README 未提及具体的鲁棒性测试数据(如推倒恢复的成功率统计),实际部署中可能需要大量的 Domain Randomization 或在线适应(推断)。
  • 实时性保障: 尽管 Rust 提供了内存安全,但在 Linux 非实时内核上运行 50Hz 的控制回路并同时进行 ONNX 推理,可能面临调度抖动风险。项目未明确说明是否使用了 PREEMPT_RT 补丁或实时内核优化(推断)。

相关项目

  • Open Source Robotics Foundation (OSRF) ROS/ROS2 — Microduck 摒弃了 ROS,采用更轻量的自定义守护进程架构以适配微型嵌入式资源。
  • Unitree Go2/Go1 SDK — 商业级四足机器人,Microduck 则是微型双足,且更强调 RL 策略的直接部署而非传统模型控制。
  • Locomotion Base (NVIDIA Isaac) — 提供通用的 RL 机器人训练框架,Microduck 则是具体的端到端嵌入式实现及硬件载体。
  • TinyDuck (Academic Projects) — 许多学术界的微型双足项目仅停留在仿真或简单 PID,Microduck 提供了完整的 RL + OTA + 多传感器融合的生产级软件栈。
  • MicroROS — MicroROS 旨在将 ROS2 微缩化,而 Microduck 选择了完全自定义的 Rust JSON-RPC 架构以追求极致精简和性能。