Microduck 开源双足机器鸭技术架构
文章目录
部分视频或图片暂未收录,已在正文保留提示;需要时可查看原文。查看原文 ↗
Microduck 是一个迷你双足具身智能开发平台,由 Hugging Face 旗下开源机器人团队 Poollen Robotics 打造。
整机规格小巧,高约25cm,重800g左右。丰富的动态运动控制能力均基于强化学习。
Microduck 覆盖了从仿真训练流水线到端侧实时运动环境的软硬件开源生态。
1. 硬件架构与执行机构规范
| 模块 / 指标 | 技术规格与参数 |
|---|---|
| 主控芯片 (SoC) | Rockchip RK3566 |
| 物理规格 | 高度 25 cm / 整备质量 800 g |
| 执行机构 | 15 个高精度舵机(覆盖双足多自由度运动链) |
| 控制环路频率 | 50 Hz 闭环控制 |
| 板载感知套件 | ToF 深度传感器、机载摄像头、音频麦克风阵列 |
| 通信接口 | Wi-Fi、BLE (低功耗蓝牙)、WebRTC 通道 |
| 运动模态覆盖 | • 双足模态:动态行走、倒地姿态自起、低头拾物、坐下/起立、踢球、前滚翻。• 轮式模态:脚底加装轮组后切换专用 RL 策略,支持滑行、原地转圈、下坡及轮滑姿态自起。 |
2. 强化学习与 Sim2Real 迁移流水线
Microduck 不只会走路,还可以:
-
用游戏手柄控制双足行走
-
摔倒后自己重新站起来
-
低头捡地上的东西
-
完成坐下、起立、踢球、前滚翻等动作
给脚底装上轮子以后,还能切换另一套强化学习策略,实现滑行、转圈、下坡,以及在轮滑状态下自己起身。
动作基本都是强化学习练出来的。依托 microduck_rl 开源训练仓库,系统构建了端到端的高拟真物理仿真与真机迁移框架。
┌──────────────────────────────────────────────────────────┐
│ MuJoCo / MuJoCo Warp │
│ 50 Hz PPO 策略训练 + 物理引擎硬件级拟真建模 │
└────────────────────────────┬─────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────┐
│ Domain Randomization (域随机化) │
│ • 电机动/静摩擦力建模 • 电池放电动态电压衰减 │
│ • 信号传输与计算控制延迟 • 舵机齿轮传动齿隙 (Backlash) │
└────────────────────────────┬─────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────┐
│ 策略导出 (ONNX 格式) │
└────────────────────────────┬─────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────┐
│ 端侧部署 (Microduck Runtime / robotd) │
│ 50 Hz 实时推理与底层舵机驱动控制 │
└──────────────────────────────────────────────────────────┘
2.1 仿真与优化算法
-
仿真平台:MuJoCo / MuJoCo Warp。
-
核心算法:PPO (Proximal Policy Optimization),训练控制周期与真机保持一致(50 Hz)。
2.2 物理级误差拟真
为了消除仿真环境与物理现实之间的动力学差异,训练流程深度集成了域随机化参数与硬件非线性特性模拟:
-
传动非线性:显式建模舵机齿轮组的齿隙(Backlash)松动量。
-
电气特性:模拟电池电量下降引起的母线电压动态波动对执行器出力的影响。
-
延迟与摩擦:拟合端到端控制系统延迟以及关节轴承的动/静摩擦力分布。
3. 端侧软件工程架构
端侧系统主要使用 Rust 进行原生开发,采用无臃肿依赖、模块化解耦的微服务守护进程架构。
服务间统一通过 Unix Domain Socket + JSON-RPC 2.0 协议进行高效进程间通信。
┌────────────────────────────────────────┐
│ 外部输入层 (External Inputs) │
│ [游戏手柄] [手机 App] [自定义脚本] │
└──────┬──────────────┬─────────────┬────┘
│ │ │
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ padd │ │ btd │ │ configd │
└────┬────┘ └────┬────┘ └────┬────┘
│ │ │
└──────────────┼─────────────┘
│ 动作意图 (Intent)
▼
┌────────────────────────┐
│ robotd │
│ 50Hz Policy 推理 │
│ 动力学与安全边界校验 │
└────────────┬───────────┘
│ 底层 PWM/总线驱动
▼
[15 个舵机执行机构]
3.1 守护服务组件矩阵
| 服务名称 (Daemon) | 核心职责与设计细节 |
|---|---|
| robotd | 唯一执行控制服务。托管 50 Hz 实时运动控制循环,运行 ONNX 强化学习 Policy 推理,执行电机安全边界拦截。 |
| updaterd | 固件升级与自愈引擎。负责 OTA 镜像下载、签名鉴权、A/B 分区切换与异常回滚机制。 |
| mediad | 视觉感知与推流。负责摄像头视频流捕获、音频数据交换及 WebRTC 实时低延迟推流。 |
| tofd | 深度测距服务。驱动 ToF 传感器并发布近场障碍物与空间距离数据。 |
| padd | 物理手柄适配器。解析无线手柄按键与摇杆事件,映射为标准化运动意图。 |
| btd | 蓝牙通信协议栈。提供 BLE 广播、移动端配对与外设数据交换。 |
| configd | 设备基础配置中心。维护 Wi-Fi 网络连接参数、网络命名空间及设备身份鉴权。 |
3.2 动作意图与执行权限隔离
系统采取特权隔离设计:
-
padd、btd 等上层或外设模块仅能向 robotd 提交抽象的运动意图。
-
robotd 拥有底层舵机驱动的排他性控制权,在下发目标关节角前必须通过姿态极限、防撞自保等安全策略校验,彻底杜绝非法输入损坏机械结构。
4. 高可用OTA固件交付机制
针对具身智能设备频繁迭代模型与控制策略的特点,updaterd 实现了全闭环自愈型 OTA 更新流水线:
[Release 固件下载]
│
▼
[数字签名与完整性校验] ──(校验失败)──> [中止并告警]
│ (通过)
▼
[切换固件版本 / 分区]
│
▼
[重载与重启相关守护进程]
│
▼
[自动化健康检查 (Health Check)]
│
├─────────► [通过] ──────► [正式提交新版本并完成更新]
│
└─────────► [异常 / 崩溃] ─► [触发自愈回滚机制 (Rollback) 至上一稳定版本]
即使在极端情况下推送了导致 Runtime 崩溃的模型或代码,机器人也能在无人值守状态下自动恢复至可用版本,杜绝变砖风险。



