• 欢迎访问少将全栈,学会感恩,乐于付出,珍惜缘份,成就彼此、推荐使用最新版火狐浏览器和Chrome浏览器访问本网站。
  • 吐槽,投稿,删稿,交个朋友
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏少将全栈吧

Microduck 逆向复刻实战:从 47 个 STL 到步态训练的全链路拆解

Build in Public admin 1小时前 10次浏览 已收录 扫描二维码

如果你对双足机器人感兴趣但买不起一台 $399 的 Microduck,或者想深入理解 sim2real 的工程细节,这篇把整个逆向复刻链路掰开讲。

不是产品评测,是一线实操记录。基于 Pollen Robotics 官方开源的 47 个 STL 零件、GitHub 源码和公开文档,反推出装配、电控和软件方案,再用国产替代件走一遍。

Microduck 是什么:25cm 的 sim2real 教具

Pollen Robotics 在 2025 年发布了 Microduck——一台 25cm 高、800g 重的开源双足机器人。15 个舵机关节,靠强化学习策略驱动,50Hz 控制循环跑在一块 Rockchip RK3566 板子上。

关键卖点是 sim2real 闭环:策略在 MuJoCo 仿真里训练,导出 ONNX 模型,直接部署到真机。整个训练栈开源,包括物理仿真环境(microduck_rl 仓库)、BAM 执行器物理模型、域随机化配方。这意味着你可以在电脑上训出一个新步态,然后一键推到机器人上跑。

官方标配用 Dynamixel XL330-M288 舵机,单只约 $17,15 只总价折合人民币约 ¥2,580。这是复刻时最大的成本项,也是国产替代的切入点。

逆向反推:47 个 STL 怎么变成装配图

Pollen 开源了全部 47 个 STL 文件,但没有给完整的装配指南。逆向反推的核心工作是:从零件几何反推装配关系、紧固件系统和轴承规格。

分批推进策略

把 47 个零件分成 14 批,每批 3-4 个相关零件,按功能模块分组:

  • 腿部组件(股骨、胫骨、脚掌)→ 关节参数反推
  • 颈部和头部组件 → 线缆走线空间分析
  • 躯干结构 → 主控板和电池安装位

每个零件先用网格提取软件读取基本几何,再在 CAD 里逆向建模。关键数据包括孔位、轴承座尺寸、舵机安装接口。最终产出 7 张装配图、14 个关节参数表、完整的 M2 紧固件清单和 14 只轴承的规格表。

打印可制造性验证

47 个零件不是都能直接 3D 打印的。有些需要支撑、有些孔径需要补偿。30 种可打印零件做了 100% 可打印性体检,包括最小壁厚、悬垂角度、桥接距离。外壳已经实际打印验证(代打 ¥99),材料是 PLA 299g + TPU 26g。

经验教训:仿真 STL ≠ 工程件。打印公差没定标前,批量打印有整批报废的风险。第一批必须先打孔径测试片做公差定标,再决定是否批量开打。

国产替代:飞特 HL-1910-C001 替代 Dynamixel XL330

这是整个复刻中风险最高也最有价值的一步。直接买 Dynamixel XL330-M288 没有技术挑战,但成本 ¥2,580 占了大头。换成飞特 HL-1910-C001(Feetech 国产),15 只 ¥1,500,省了 ¥1,080。

但换执行器 = 策略必须自训。官方 9 个 ONNX 策略绑定的是 XL330 的动力学参数,切国产舵机后这些策略只能降级为参考。需要走完整的 BAM 辨识流程:

  1. 搭单摆台架,采集舵机实际响应数据
  2. 用 BAM(Body Actuator Model)工具做 M1-M6 六阶段参数拟合
  3. 验证模型精度
  4. 移植到 MuJoCo 仿真,重新训练行走策略

BAM 是 Rhoban 实验室开源的执行器辨识工具,专门解决 sim2real 中执行器建模问题。核心思路是用单摆实验采集真实输入-输出数据,拟合出包含电机动力学、摩擦、反弹间隙的物理模型,再注入仿真。

RL 训练:MuJoCo 里的鸭子学走路

microduck_rl 仓库提供了完整的训练环境,基于 mjlab(MuJoCo Warp)和 PPO 算法。训练在 GPU 上跑,4096 并行环境大约 1-2 小时能跑出可用的步态。

训练配置

  • 观测空间:61 维(关节角度、速度、IMU 姿态、命令速度)
  • 动作空间:15 维(15 个舵机目标角度)
  • 控制频率:50Hz
  • 并行环境数:4096(官方推荐)
  • 域随机化:摩擦系数、质量分布、电机延迟、IMU 噪声

实验迭代记录

不是一次跑通的。实验日志显示清晰的迭代路径:

  • exp001 A/B 对照:IMU 随机化对步态稳定性的影响,用真实数据出结论
  • exp001b 扰动测试:推挤恢复能力 + 3D 回放验证
  • expC 长训:跑满 2198 迭代后交棒(ep_len 逐步上升但步态未完全成形)
  • expD 512 env 续训:ep_len 从 315 涨到 744,鸭子能站稳但步态不够流畅
  • expE gait-ramp:调整步态奖励函数让”走得好”和”站着不动”在奖励曲线上可区分,50k 迭代重训中

核心经验:奖励塑形是 sim2real 的关键瓶颈。如果奖励函数不能区分”有效前进”和”原地晃动”,PPO 会收敛到一个看起来在动但实际没走远的策略。gait-ramp 的思路是让步态奖励随前进速度线性增长,同时惩罚原地高频抖动,让 agent 在奖励地形上更倾向于选择”真走”而非”假动”。

电控架构:七守护进程共一块板

Microduck 的软件架构值得学习。七个 daemon 跑在 RK3566 上,通过 Unix socket + JSON-RPC 通信:

  • robotd:唯一接触硬件的进程。50Hz 控制循环独占 Dynamixel 总线,15 个舵机和 IMU 在一次 sync_read 里全部读完。安全层会拦截危险指令。
  • configd:管理 WiFi、机器人名称、配对 PIN、手柄绑定。和 robotd 无依赖关系,所以 robotd 挂了还能改配置。
  • updaterd:发布版管理。签名验证 → 安装 → 健康检查 → 不健康自动回滚。A/B 式更新,不会变砖。
  • btd/padd/mediad:三个传输层,分别处理蓝牙、手柄、WebRTC。都不拥有机器人状态,可独立替换。
  • tofd:ToF 传感器守护进程,发布 8×8 深度矩阵,只发布不读取。

这种设计的好处是容错性强:控制循环崩了不影响更新和配置,传输层挂了不影响行走。每个 daemon 的职责边界清晰,适合学习嵌入式系统架构设计。

成本拆解:复刻一只鸭子要花多少钱

总投入约 ¥2,500-3,200(不含已有的 3D 打印机和工具):

  • 飞特 HL-1910-C001 ×15:¥1,500(已付)
  • Radxa ZERO 3W 主控:¥299(已付)
  • 外壳代打印:¥99(已付)
  • 电子件(相机/ToF/电池/转接板/调试板):约 ¥320-370
  • 机械件(轴承/M2紧固件/耗材):约 ¥260-350

对比官方整机 $399(约 ¥2,870),复刻成本接近但多了国产替代的技术积累和完整逆向经验。

30 天冲刺计划

第 1 周(D1-7):逆向反推收口 + 打印定标 + 长货期件下单

第 2 周(D8-14):批量打印 41 件 + PCB 打样 + 真实 IMU 数据采集

第 3 周(D15-21):总线联调(16 设备 sync_read)+ 躯干装配 + 刷机跑官方运行时

第 4 周(D22-30):整机装配 + 上电 + 低增益站立 + 遥控行走 + 复盘

目标:10 月初让鸭子走出第一步。

从复刻中能学到什么

这次复刻不只是”省钱造一只鸭子”。真正有价值的是:

  1. sim2real 全链路实操:从 BAM 执行器辨识到 MuJoCo 训练到 ONNX 部署,完整走一遍
  2. 国产舵机替代验证:飞特 HL 系列能否替代 Dynamixel XL330,数据说话
  3. 机器人软件架构:Pollen 的七守护进程设计是嵌入式系统架构的优秀参考
  4. 逆向工程方法论:从公开 STL 反推装配关系,分批验证、先定标再批量

Pollen Robotics 把 Microduck 的全部设计开源,包括硬件、软件和训练栈,是机器人社区难得的教学资源。如果你对 sim2real 感兴趣,Microduck 是目前最好的入门平台之一。

项目进度持续更新在 duck.whatled.com。

喜欢 (0)
[🍬谢谢你请我吃糖果🍬🍬~]
分享 (0)
关于作者:
少将,关注Web全栈开发、项目管理,持续不断的学习、努力成为一个更棒的开发,做最好的自己,让世界因你不同。