易租购 YIZUGOU
行业资讯 | 2026-09-01 | 145 | 约 4 分钟

机器鸭Microduck爆火 深拆399美元的 Sim2Real 教科书

TL;DR Pollen Robotics 开源的 25cm 双足机器鸭 Microduck,最值钱的不是硬件,而是它把一整条 Sim2Real 工程管线——MuJoCo Warp

 

TL;DR  Pollen Robotics 开源的 25cm 双足机器鸭 Microduck,最值钱的不是硬件,而是它把一整条 Sim2Real 工程管线——MuJoCo Warp 并行仿真、PPO、执行器级建模、域随机化、ONNX 部署、带回滚的 OTA——全部以 Apache-2.0 公开,且每个环节都有可复现的命令入口。不买机器,仓库照样可以学。本文拆解这条管线,并给出能直接搬进你自己项目里的结论。

为什么值得工程师花 15 分钟

2026 年 8 月 27 日开放预购,24 小时订单超 260 万美元,交付积压 4-6 个月。但先泼冷水:它 25cm 高、不到 800g、RK3566 主控只有 1GB 内存、续航约 1 小时,不会说话,也干不了家务。

它做对的是一件更稀缺的事:仿真训练到真机部署的完整闭环——训练环境、奖励函数、域随机化参数、Sim2Real 配方——全部开源,且全程命令可复现。 机器上跑的就是你能读、能 fork、能重训的东西,这在消费硬件领域几乎反常规。

正确的打开方式:把它当成一份可运行的 Sim2Real 参考实现来读,而不是当成机器鸭来买。

一、硬件:每个"低配"都是设计决策

部件

选择

工程逻辑

主控

Rockchip RK3566 ( 1GB RAM / 32GB  存储)

50Hz  策略推理够用,成本远低于  Jetson

执行器

15 × Dynamixel XL330  总线舵机

便宜、可总线控制,齿隙摩擦可建模

感知

摄像头  + 8×8 ToF  矩阵  +  双  IMU (躯干 / 头部)

本体感知为主,视觉只是辅助

电池

可拆卸  NP-F550 ( 2600mAh ),续航约  1  小时

换电比充电快,迭代友好

三个选型逻辑值得琢磨:

RK3566 而非 Jetson——50Hz 循环意味着神经网络每 20ms 决定一次 15 个关节的目标位置,几万参数的 MLP 对算力要求极低。算力配给严格跟着任务走,这是压到 399 美元的前提。顺带一提:瑞芯微芯片 + 深圳 Seeed 代工,这只"法国鸭"的供应链大半在中国。

便宜舵机靠建模解决精度——XL330 的齿隙、摩擦、电压跌落全部建进仿真,策略训练时已适应这些缺陷。精度靠建模而不是采购。

双 IMU——头部姿态控制不依赖躯干估计,观测噪声更小。感知设计是围绕 RL 观测向量做的,不是堆传感器清单。

出厂预装 7 个行为:行走、坐立、踢球、拾取、轮滑、起身。注意最后那个——摔倒是预期内的正常状态。双足机器人敢把"自己摔倒再爬起来"作为出厂功能,说明 Sim2Real 做得扎实。

二、训练管线:4096 只虚拟鸭,1-2 小时训出步态

训练代码在 pollen-robotics/microduck_rl,技术栈 mjlab + MuJoCo Warp + rsl_rl(PPO):


MuJoCo Warp 仿真(4096 并行环境)→ PPO 训练(域随机化)
→ export.py 导出 ONNX(归一化器烘焙进图)→ RK3566 上 50Hz 执行
    

MuJoCo Warp:并行仿真不是"多开线程"。 它是 Google DeepMind 与 NVIDIA 合作、基于 NVIDIA Warp 做的 GPU 加速 MuJoCo 后端:保留 MjModel/MjData 范式,但给 MjData 加一个前置的"世界维度"——一个对象同时持有 N 个仿真实例状态。mjlab(UC Berkeley,arXiv:2601.22074)再包一层 Isaac Lab 风格的 manager-based API,把观测、奖励、事件做成可组合模块。更关键的是 mjlab 把仿真步捕获为 CUDA graph,内核序列只录制一次、之后逐步重放,消掉 CPU 侧调度开销。单卡 1-2 小时训出步态,靠的不是 GPU 更快,是 CPU-GPU 往返被干掉了。

非对称 actor-critic 是标配。 mjlab 的任务普遍发布两组观测:actor 只看本体感知,critic 额外拿到特权观测(真实地面摩擦、外力等)——训练时 critic 用真值辅助价值估计,部署时只留 actor。腿足运动的标准打法,在这个栈里是开箱即用的结构而非需要自己拼装的部分。

61 维共享观测契约:全文最被低估的设计。 所有策略共享同一个 61 维观测向量(48 维本体感知 + 3 维速度指令 + 4 维头部姿态 + 6 维躯干姿态)。观测契约统一,策略才能热切换——行走切起身,观测不断流、不重组;用不到的指令槽位零填充,契约长度永远不变。多策略真机项目值得把这一条写进设计原则第一条。

13+ 任务注册表,命名即文档。 uv run list-envs 可看全部任务,命名规则一眼读懂设计意图:

任务

干什么

Mjlab-Velocity-{Flat,Rough}

速度跟踪主任务(平地 / 粗糙地形)

Mjlab-VelStand-{Flat,Rough}

行走  +  跌倒恢复合成一个策略

Mjlab-StandUp-{Flat,Rough}

从趴 / 仰 / 坐姿起立

Mjlab-SitStand

坐  ↔  站单个策略内平滑切换

Mjlab-GroundPick

俯身用喙尖触地拾取

Mjlab-BallKick-Flat

盲踢  70mm/15g  球( actor  感知不到球)

Mjlab-Roulade

前滚翻,头部着地翻回脚

Mjlab-*Rollers* ( 5  个)

轮滑家族:平地 /Swizzle/ 蹲行 / 坡道 / 上轮起身

VelStand 值得单独看:把"行走"和"摔了爬起来"训进同一个策略,而不是切两个策略——对部署来说少一次切换窗口。踢球则是故意做减法:不堆感知维度,先验证任务在最小观测下能否成立,这是控制问题边界的教科书做法。

三、Sim2Real 的功夫不在算法,在执行器建模

理想仿真里完美的策略,上真机往往当场扑街,因为摩擦、延迟、噪声从没被完美建模过。Microduck 的答案是更诚实的仿真,做了四件事:

1. 物理执行器模型替代理想 PD。 每个 XL330 用 BAM(Better Actuator Models,Rhoban 开源,ICRA 2025)辨识的执行器模型:电压控制律(而非理想扭矩指令)、反电动势(back-EMF)、以及超越库仑-粘性的扩展摩擦模型(Stribeck、负载相关、二次项效应)。BAM 官方库里现成收录了 XL330 系列的辨识参数,参数由摆锤测试台实测辨识而来。对比大多数 hobby 栈里"仿真电机 = 理想 PD 控制器"——差距就在这。

2. 域随机化清单。 每个并行环境独立随机化:电池电压 + 负载下的电压跌落、指令延迟、摩擦系数。把"电压跌落"单独拎出来:一个只在满电下稳定的步态,半小时后就会发飘。这是踩过坑的团队才会写进训练环的参数。

3. Backlash 建模。 RL 布局的 14 个舵机关节各串联一个 ±1°(共 2°)齿隙模型,且真实编码器在齿隙输出端——观测也穿过齿隙读。策略学的不是"世界应该怎样",而是"传感器实际会报什么"。任务提供带/不带齿隙的变体,观测与动作维度不变,可直接做消融对比。

4. ONNX 导出烘焙归一化器。 scripts/export.py 把观测归一化直接烘进计算图。官方特别警告不要手工转换 checkpoint——手动转换几乎必然漏掉归一化,导出的策略在真机上表现诡异崩掉且极难调试。预处理逻辑有且只有一份实现,这条原则适用于一切端侧推理项目。

  可迁移结论:Sim2Real 成败,八成在仿真保真度,两成在算法。保真度的核心是把执行器物理缺陷显式建模进训练环境,而不是换更强的 PPO 变体。

四、真机架构:Rust 微服务 + single-writer

机器人端 pollen-robotics/microduck,纯 Rust,拆成 7 个 daemon(robotd / updaterd / configd / btd / padd / mediad / tofd),Unix Socket + JSON-RPC 2.0 通信。

只有 robotd 有电机控制权。 手机、手柄、你自己写的程序发的都是"动作意图",能否执行由 robotd 的安全层裁决。嵌入式领域几十年沉淀的 single-writer 原则,这里被执行得很彻底。

管理方式就是 SSH。 不联网时 duckctl 走蓝牙从笔记本直接驱动。"它是一台可以 SSH 进去的 Linux 设备",这件事本身就很极客。

ssh microduck
robotctl monitor    # 查看状态
robotctl configure  # 调整配置
robotctl update     # 升级固件 / 下发新策略

 

OTA 是可靠性下限。 updaterd 走教科书级 A/B 方案:下载 → 验签 → 切版本 → 健康检查 → 异常自动回滚。因为它的核心玩法是用户自训策略推上真机——"固件"高频变更、来源千差万别。开放修改权限的设备,必须有更严的部署安全网。

五、实战:从 clone 到 ONNX,五条命令

这是全文最干货的一节——不买硬件,今天就能把整条管线跑一遍(需 CUDA GPU + uv):


git clone https://github.com/pollen-robotics/microduck_rl && cd microduck_rl

# 1. 训练行走策略:4096 并行环境,约 1-2 小时出可用步态
uv run train Mjlab-Velocity-Flat-MicroDuck --env.scene.num-envs 4096

# 2. 查看器里回放训练运行(替换成你的 wandb run path)
uv run play Mjlab-Velocity-Flat-MicroDuck --wandb-run-path

# 3. 导出部署用 ONNX(归一化器自动烘焙进图)
uv run scripts/export.py Mjlab-Velocity-Flat-MicroDuck --wandb-run-path

# 4. CPU MuJoCo 里用键盘驱动导出的策略——不买真机也能验收
uv run scripts/infer_policy.py --walking output.onnx

# 5. 断点续训
uv run train Mjlab-Velocity-Flat-MicroDuck --env.scene.num-envs 4096 \
  --agent.run-name resume --agent.load-checkpoint model_29999.pt --agent.resume True
    

没有本地 GPU?任何 train 命令加 --hf-jobs,直接在 Hugging Face Jobs 云端跑同一套任务(配置见 scripts/hf/README.md)。

热切换排练是隐藏彩蛋。 infer_policy.py 支持同时加载多个策略 ONNX,模拟真机运行时的策略热切换:


uv run scripts/infer_policy.py --walking walk.onnx --standing stand.onnx \
  --sitstand sitstand.onnx --roulade roulade.onnx --new-cmd-obs
    

键盘即遥控器:方向键发速度指令,G 地面拾取、Y 坐/站、R 前滚翻、K/L 踢球。在纯 CPU 仿真里验收多策略热切换,再碰真机——这个"部署前排练"模式本身值得抄。

三个容易踩的坑:

• ARM 机器(Jetson / DGX Spark)首次 uv sync 会拉约 2GB CUDA wheels,uv 默认 30 秒 HTTP 超时会中断下载,先 export UV_HTTP_TIMEOUT=600

• macOS 只能跑评估(mjlab[cpu]),训练必须 NVIDIA GPU

• 仓库根目录的 AGENTS.md 是官方蒸馏的 sim2real playbook——奖励设计踩坑经验全在里面,读代码前先读它;配置不变量和奖励函数还有 pytest 回归测试兜底

六、上手路径与红线

开发循环四步:仿真训练 → 真机部署 → 修正迭代 → 发布共享。策略可直接传 Hugging Face Hub,别人下载权重即可在自己鸭子上复现——模型生态的玩法平移到了物理策略上。

· 价格:主机 $399;深玩 RL 加 $119 Dev Pack(备用电机/电池/NFC 标签/HF 算力抵扣券);$39 轮滑配件

  授权红线:软件 Apache-2.0 可商用,但 microduck_rl 里的 3D 模型是 CC BY-SA-NC(非商业)——想做衍生硬件生意,先读这条。

七、冷静部分:四个保留意见

1. 50Hz 偏低。 研究级人形普遍 200Hz 以上。对 800g 小平台是务实选择(摔不坏、速度低),搬到大平台,控制频率是第一个要重估的参数。

2. 1 小时续航是硬约束,真机迭代节奏受电池支配(好在仿真迭代不受影响)。

3. 别和 Open Duck Mini 混为一谈。 同一鸭形 IP 的两条路线:Open Duck Mini(2026 年 6 月)3D 打印自组装、BOM 约 400 美元、脑子自己装(树莓派/Jetson)、端侧跑多模态小模型;Microduck 出厂整机、主打运动控制策略。一个押语言模型上机,一个押控制模型落地。

4. 母公司不确定性。 发布两天后 NVIDIA 129 亿美元收购 Hugging Face 的消息公开(交易未交割)。好在 Apache-2.0 代码已在 GitHub,fork 成本为零。

八、回到那个判断

按传统机器人标准它很奇怪:不进工厂、不做家务,摇摇晃晃、动作笨拙,每台首次开机生成自己独一无二的声音身份并终身保留。这些"缺陷"恰恰让人想养一只——它的对手从来不是人形机器人,而是宠物和潮玩。

但对工程师,故事还有另一层:过去物理 RL 需要实验室经费和数万美元硬件(同门的 Reachy 2 就面向实验室市场),现在一个 ML 工程师 + 一张 CUDA 卡 + 399 美元,就能在自己地板上迭代运动策略。有人称这是具身智能的"树莓派时刻"——当"会摔跤、能自己爬起来、能被你自己重训"第一次成为消费硬件卖点,Sim2Real 就从实验室技能变成了桌面技能。

九、从"有用"到"想要"

Microduck 爆火,恰恰不是因为它是一台机器人。

按传统标准它确实"不合格":不会搬箱子、不能洗衣做饭、谈不上通用劳动力。过去几十年机器人行业一直在证明"我有用"——工业机器人证明效率,机器狗证明能巡检,人形机器人证明能进厂。机器人始终是工具,越有用越值钱。

但 Microduck 换了套游戏规则。它摇摇晃晃、动作笨拙、偶尔犯蠢,正因为如此,人才会对它产生奇怪的感情——不是"效率真高",而是"这小东西真可爱,我想养一只"。这句话比任何技术参数都重要。当一台机器人让人想"养",它的竞争就不在机器人市场,而在宠物、玩具、手办和潮玩的世界。

AI 有了身体,未必非要帮你干活。它可以什么都不干,只是陪着你、跟着你、记住你、形成自己的性格;你可以给它换外壳、装配件、训新动作。随着模型与 Agent 演进,同一只 Microduck 在不同主人手里会变成完全不同的"个体"——这是传统"机器人"定义装不下的东西,更像 AI 时代的新物种。

背后是更大的机会:Physical AI 进入普通家庭,未必从几十万元的人形机器人开始。人本来就会为大量"不提高生产力"的东西付钱——宠物、手办、游戏机、潮玩、皮肤,价值在陪伴、情绪、个性与表达。未来卖到几千万台的消费级机器人,可能不是最能干活的,而是最让人产生感情的那台。

从"有用"到"想要":过去的机器人努力让人觉得"它有用",Microduck 开始让人觉得"我想要"——这就是机器人从工业时代跨进消费时代的那道门槛。Physical AI 的 iPhone 时刻也许还没到,但它的第一只"电子宠物",可能已经出现了。

FAQ

Q:自己训步态需要什么? CUDA GPU + uv(4096 并行环境 1-2 小时出可用步态),或 --hf-jobs 云端算力。训练代码全开源。

Q:没有 GPU 也没有真机,能学到什么? 能。infer_policy.py 在 CPU MuJoCo 里跑导出的 ONNX,官网还有浏览器仿真器——整条管线零硬件成本可走通。

Q:开源协议能商用吗? 软件 Apache-2.0 可商用;3D 模型 CC BY-SA-NC,非商业——衍生硬件红线。

Q:在哪看代码? GitHub pollen-robotics/microduck(Runtime + SDK)、pollen-robotics/microduck_rl(RL 训练栈)。

需要机器人服务方案?

告诉我们您的使用场景、活动时间和所在城市,顾问将为您匹配合适机型。

免费获取方案