好文集ChatGPT Plus¥119

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 崩溃的模型或代码,机器人也能在无人值守状态下自动恢复至可用版本,杜绝变砖风险。

全文完
查看原文