MicroDuck 复盘:不止是玩具,是 Sim2Real 标准件的定价锚点
MicroDuck 身量小得有点可爱,25 厘米高,800 克重,预购价不到四百美元,放在桌上就是一只会眼神呆萌看着你的机械鸭子。但它从不是玩具——GitHub 上已有上千星标、224 个 fork、一千一百多次提交,develop 分支几乎天天在动,这是一款活跃更新的活项目。它爆火的理由叠了不止一层:挂 Hugging Face 旗下 Pollen Robotics 的招牌,天然带话题和信任;四百美元不到的售价,把以往要几位数人民币起的双足硬件底线直接拉到个人研究者够得着的位置;一只会轮滑、会捡起袜子、会踢球、会自己从躺着翻起来的小鸭子,光 demo 视频就够在社区里滚动起来。可这些只是让更多人看见它,真正留得住行内人的,是它把 Sim2Real 的脏活做成了可以端到端复现的开源工程。
技术硬度是它区别于多数玩具开源的分水岭。训练基于 MuJoCo-Warp(MJX)加 mjlab 框架,GPU 原生并行即可起 4096 个环境同时推进,50 Hz 步长驱动,把“仿真里训的策略能不能在实机上走起来”这个问题压缩到两三小时能训出一套可用步态的高度。执行器没有偷懒当成理想 PD 模型,在 friction_dr_bam.py 里,BAM 把电压控制律、反电动势、库仑与 Stribeck 摩擦、负载相关的库仑摩擦、电池压降、命令延迟统统建模,再通过 RandomizationCfg 对每个环境逐份随机化——有的环境的电池已经老化、电压跌落得更狠,有的命令延迟更高,实机拆不开的不确定性在仿真里被刻意摊开训练。最见功力的是一分不少地模拟了齿轮齿隙:用 add_backlash.py 在 14 个舵机关节各插入一个 ±1° 的被动铰链,把实机那 2° 总间隙 1:1 搬进仿真,而编码器观测一路“穿过”齿隙去读,如实复现硬件上位置读数的真实行为。所有任务共享一套 61 维观测契约,拆开是 48 维本体感受(关节位置、速度、力矩、IMU、投影重力向量)加 13 维命令(3 维线速度加 4 维头部姿态加 6 维身体姿态),未被使用的命令槽一律零填充而非裁剪,于是任意策略都能热插拔进同一个身体。导出环节把观测归一化器(RunningMeanStd)直接烘焙进 ONNX 图,scripts/export.py 一条命令就能产出 CPU 或实机上直接跑、无需二次适配的 artifact。任务谱系覆盖之广,本身就说明这套管线是被大规模验证过的:
| 任务族 | 覆盖技能 |
|---|---|
| Velocity-{Flat,Rough} | 主任务:速度命令 + 头部姿态行走 |
| VelStand / StandUp | 行走 + 跌倒恢复、面朝下/上/坐姿站立 |
| SitStand | 命令式坐↔站转换 |
| GroundPick / BallKick | 嘴尖触地站回、踢 70mm/15g 球 |
| Roulade | 前滚翻恢复站立 |
| Rollers 系列 | 直排轮:速度跟踪、对称滑冰、蹲滑、坡道下滑、原地旋转 |
顺着这只鸭子往外看,它背后正在放大的不只是几条赛道,更是一整套生态杠杆。近处是桌面级具身智能平台:成千上万台实机跑同一套观测契约,会天然沉淀出含失败、扰动、磨损在内的大规模真实轨迹数据集,这正是下一代 World Model 与 Foundation Policy 稀缺的燃料,也是个会自行滚雪球的数据飞轮。往中间是单机多策略热切换:共享观测契约等于统一了低层接口,未来可以直接在上面挂 VLA 或语言规划器这类高层决策,MicroDuck 便从“一个会走会踢球的鸭子”升格成通用控制范式里那个可复用的低层执行标准后端。更外层是 Sim2Real 工程化本身的外溢:若是把“BAM 加域随机化加齿隙建模”再进一步封装成硬件无关的 ActuatorModule,新机型只需改 MJCF、填一组舵机参数就能复用整套管线——到那一步,它公开的就不仅是“把仿真焊通了”,而是把“焊法”本身做成了标准件。再远一些,ROSCon 与 ICRA 的课堂已开始拿它布置作业,两三年内很可能长出一条“入门即用这套管线”的人才供给链。
MicroDuck 真正的稀缺性,不在“把仿真焊通了”这一锤子买卖,而在于把“焊法”做成了可复用、可规模化、可数据化的工程标准件:61 维标准观测契约让技能像插件一样热插拔,BAM 加域随机化加齿隙的标准执行器建模让新机型只改参数不改代码,ONNX 加归一化烘焙的标准导出流程让策略从仿真直达实机零适配。这三件事叠在一起,才可能把桌面级双足从“玩具”“教具”推到“具身智能标准后端”的位置。一只四百美元的鸭子,就这样把“Sim2Real 标准件”的价格打到了零。想验证这份判断的开发者,git clone、uv sync、uv run train 三条命令,十分钟跑通一次 smoke-test,便能亲自走一遍这套“从仿真到实机”的完整闭环。