Microduck 开源双足机器鸭技术架构

Microduck 是一个迷你双足具身智能开发平台,由 Hugging Face 旗下开源机器人团队 Poollen Robotics 打造。

| 服务名称 (Daemon)  | 核心职责与设计细节                                                         |
| :------------- | :---------------------------------------------------------------- |
| **robotd**   | **唯一执行控制服务**。托管 50 Hz 实时运动控制循环,运行 ONNX 强化学习 Policy 推理,执行电机安全边界拦截。 |
| **updaterd** | 固件升级与自愈引擎。负责 OTA 镜像下载、签名鉴权、A/B 分区切换与异常回滚机制。                       |
| **mediad**   | 视觉感知与推流。负责摄像头视频流捕获、音频数据交换及 WebRTC 实时低延迟推流。                        |
| **tofd**     | 深度测距服务。驱动 ToF 传感器并发布近场障碍物与空间距离数据。                                 |
| **padd**     | 物理手柄适配器。解析无线手柄按键与摇杆事件,映射为标准化运动意图。                                 |
| **btd**      | 蓝牙通信协议栈。提供 BLE 广播、移动端配对与外设数据交换。                                   |
| **configd**  | 设备基础配置中心。维护 Wi-Fi 网络连接参数、网络命名空间及设备身份鉴权。                           |

整机规格小巧,高约25cm,重800g左右。丰富的动态运动控制能力均基于强化学习。

Microduck 覆盖了从仿真训练流水线到端侧实时运动环境的软硬件开源生态。

1. 硬件架构与执行机构规范

[Release 固件下载]
        │
        ▼
[数字签名与完整性校验] ──(校验失败)──> [中止并告警]
        │ (通过)
        ▼
[切换固件版本 / 分区]
        │
        ▼
[重载与重启相关守护进程]
        │
        ▼
[自动化健康检查 (Health Check)]
        │
        ├─────────► [通过] ──────► [正式提交新版本并完成更新]
        │
        └─────────► [异常 / 崩溃] ─► [触发自愈回滚机制 (Rollback) 至上一稳定版本]

2. 强化学习与 Sim2Real 迁移流水线

Microduck 不只会走路,还可以:

  • 用游戏手柄控制双足行走
  • 摔倒后自己重新站起来
  • 低头捡地上的东西
  • 完成坐下、起立、踢球、前滚翻等动作

给脚底装上轮子以后,还能切换另一套强化学习策略,实现滑行、转圈、下坡,以及在轮滑状态下自己起身。

动作基本都是强化学习练出来的。依托 microduck_rl 开源训练仓库,系统构建了端到端的高拟真物理仿真与真机迁移框架。

| 模块 / 指标        | 技术规格与参数                                                                                      |
| :------------- | :------------------------------------------------------------------------------------------- |
| **主控芯片 (SoC)** | Rockchip RK3566                                                                              |
| **物理规格**       | 高度 25 cm / 整备质量 800 g                                                                        |
| **执行机构**       | 15 个高精度舵机(覆盖双足多自由度运动链)                                                                       |
| **控制环路频率**     | 50 Hz 闭环控制                                                                                   |
| **板载感知套件**     | ToF 深度传感器、机载摄像头、音频麦克风阵列                                                                      |
| **通信接口**       | Wi-Fi、BLE (低功耗蓝牙)、WebRTC 通道                                                                  |
| **运动模态覆盖**     | • **双足模态**:动态行走、倒地姿态自起、低头拾物、坐下/起立、踢球、前滚翻。• **轮式模态**:脚底加装轮组后切换专用 RL 策略,支持滑行、原地转圈、下坡及轮滑姿态自起。 |

2.1 仿真与优化算法

  • 仿真平台:MuJoCo / MuJoCo Warp。
  • 核心算法:PPO (Proximal Policy Optimization),训练控制周期与真机保持一致(50 Hz)。

2.2 物理级误差拟真

为了消除仿真环境与物理现实之间的动力学差异,训练流程深度集成了域随机化参数与硬件非线性特性模拟:

  • 传动非线性:显式建模舵机齿轮组的齿隙(Backlash)松动量。
  • 电气特性:模拟电池电量下降引起的母线电压动态波动对执行器出力的影响。
  • 延迟与摩擦:拟合端到端控制系统延迟以及关节轴承的动/静摩擦力分布。

3. 端侧软件工程架构

端侧系统主要使用 Rust 进行原生开发,采用无臃肿依赖、模块化解耦的微服务守护进程架构。

服务间统一通过 Unix Domain Socket + JSON-RPC 2.0 协议进行高效进程间通信。

3.1 守护服务组件矩阵

┌──────────────────────────────────────────────────────────┐
│                   MuJoCo / MuJoCo Warp                   │
│         50 Hz PPO 策略训练 + 物理引擎硬件级拟真建模           │
└────────────────────────────┬─────────────────────────────┘
                             │
                             ▼
┌──────────────────────────────────────────────────────────┐
│                 Domain Randomization (域随机化)           │
│   • 电机动/静摩擦力建模          • 电池放电动态电压衰减       │
│   • 信号传输与计算控制延迟       • 舵机齿轮传动齿隙 (Backlash) │
└────────────────────────────┬─────────────────────────────┘
                             │
                             ▼
┌──────────────────────────────────────────────────────────┐
│                     策略导出 (ONNX 格式)                   │
└────────────────────────────┬─────────────────────────────┘
                             │
                             ▼
┌──────────────────────────────────────────────────────────┐
│             端侧部署 (Microduck Runtime / robotd)         │
│                 50 Hz 实时推理与底层舵机驱动控制             │
└──────────────────────────────────────────────────────────┘

3.2 动作意图与执行权限隔离

系统采取特权隔离设计:

  • padd、btd 等上层或外设模块仅能向 robotd 提交抽象的运动意图。
  • robotd 拥有底层舵机驱动的排他性控制权,在下发目标关节角前必须通过姿态极限、防撞自保等安全策略校验,彻底杜绝非法输入损坏机械结构。

4. 高可用OTA固件交付机制

针对具身智能设备频繁迭代模型与控制策略的特点,updaterd 实现了全闭环自愈型 OTA 更新流水线:

           ┌────────────────────────────────────────┐
           │        外部输入层 (External Inputs)     │
           │   [游戏手柄]    [手机 App]    [自定义脚本] │
           └──────┬──────────────┬─────────────┬────┘
                  │              │             │
                  ▼              ▼             ▼
             ┌─────────┐    ┌─────────┐   ┌─────────┐
             │  padd   │    │  btd    │   │ configd │
             └────┬────┘    └────┬────┘   └────┬────┘
                  │              │             │
                  └──────────────┼─────────────┘
                                 │ 动作意图 (Intent)
                                 ▼
                    ┌────────────────────────┐
                    │         robotd         │
                    │   50Hz Policy 推理      │
                    │   动力学与安全边界校验   │
                    └────────────┬───────────┘
                                 │ 底层 PWM/总线驱动
                                 ▼
                        [15 个舵机执行机构]

即使在极端情况下推送了导致 Runtime 崩溃的模型或代码,机器人也能在无人值守状态下自动恢复至可用版本,杜绝变砖风险。