火爆全网的 Microduck 复刻

224 阅读3分钟

Microduck 是一只 25cm 高、737g 的双足机器鸭,15 个 Dynamixel XL330 舵机(14 个受策略控制),用强化学习走路。
它的软件开源(Apache-2.0),硬件不开源 —— 没有 BOM、没有可编辑 CAD、没有 PCB 原理图、
没有任何装配文档。讨论社区请见:OOU

但官方在 microduck_rl 里发布了完整的 MJCF 仿真模型 + 47 个 STL 网格。
MJCF 里包含了完整的运动学树:每个零件挂在谁身上、相对位置精确到 0.1mm、
绕哪根轴转、行程多少、质量和惯量张量。

这些信息足以还原出装配关系。  本仓库就是把它还原出来的结果。


装配爆炸图

爆炸图

assembly-drawings/ 下共 7 张:

文件内容
01_正面 02_侧面 03_背面 04_四分之三装配完成态,原色
05_爆炸图_侧面15 个部件沿运动链炸开,标注名称与质量
06_爆炸图_四分之三立体视角,可看清左右腿镜像关系
07_分色对照_装配态与爆炸图同配色的装配完成态,对照用

装配结构

躯干主体 199g
├─ 左髋 yaw→roll 23g → 左髋 roll 6g → 左大腿 48g → 左小腿 22g → 左踝+脚 30g
├─ 颈根 37g → 颈俯仰件 6g → 头 yaw/roll 机构 49g → 头部总成+喙 189g
└─ 右髋 yaw→roll 23g → 右髋 roll 6g → 右大腿 48g → 右小腿 22g → 右踝+脚 30g

整机 737.2g   外形 144 × 141 × 264 mm

躯干和头几乎一样重(199g vs 189g)——头部占整机四分之一,重心很高,
这解释了为什么它的行走策略难训。

关节参数

每条腿 5 个自由度,头颈 4 个 —— 14 个受控。
整机实际装 15 个 Dynamixel XL330:第 15 个驱动喙/下颚,走被动连杆,不进动作空间。

关节行程
hip_yaw-25° ~ +30°
hip_roll±22°
hip_pitch / knee / ankle / head_pitch±90°
neck_pitch-90° ~ +60°
head_yaw±170°
head_roll±25°

CAD 装配体

cad/ 下是已应用世界变换的 STL —— 直接导入 CAD 就是装好的样子,
不用自己摆位置(上游那 47 个 STL 都是零件自身坐标系的,直接导入会全部堆在原点)。

  • 00_Microduck_整机装配体.stl —— 整机单文件,796792 三角面
  • 01 ~ 15 —— 按刚体分组的 15 个部件,文件名即部件名
  • 零件对照表.json —— 每个部件由哪些上游源网格组成

单位 毫米。可直接用 FreeCAD / Fusion 360 / SolidWorks / Blender / 各类切片软件打开。


可行性:能造出来吗

能造出机械,造不出整机。  现状:

项目状态
零件几何✅ 47 个 STL
装配关系✅ 精确到 0.1mm,已出图
关节轴线 / 行程✅ 14 个全有
质量 / 惯量✅ 15 个刚体全有
舵机型号✅ Dynamixel XL330 ×15 → docs/执行器选型.md
轴承✅ 22×16×4
电池✅ 索尼 NP-F970
自制 PCB⚠️ 无原理图,但功能已从源码完整还原 → docs/硬件方案逆向.md
主控✅ Radxa Zero 3W,市售模块(此前误判为定制载板)
紧固件清单✅ 已从 STL 孔位反推 → docs/紧固件反推.md
电池 / 传感器✅ NP-F550/F970 2S、IMX219、VL53L8CX、LSM6DSV16X
走线方案❌ 无
控制软件⚠️ Rust 运行时绑定 RK3566,需自行移植
官方策略 ONNX⚠️ 只对原本体有效,换电控后需重训

⚠️ 仿真 STL ≠ 可打印工程件。  仿真只关心外形与惯量,不保证配合公差、
螺纹孔、热熔螺母座和走线空间。直接打印大概率装不起来,需要自行补充工程细节。