Read "C:\Users\xubo.zhang\DoubaoWork\chats\2026-08-31\new-chat-1\Microduck_一比一复刻手册.html": 1 2 3 4 5 6 Microduck 一比一复刻手册 7 79 80 81
82 89
90 91
92 93 94
95
96 Hugging Face × Pollen Robotics · 2026-08-27 发布 · 预售价 $399 97

Microduck「机器鸭」一比一复刻手册

98

25 cm 双足开源机器人:硬件组成盘点 + 电气架构与内部通讯 + 软件算法与技术栈。「已确认」信息出自官方/开源仓库,「推断/待定」已单独标注。

99
100
25 cm身高 / 14cm 宽
101
≤ 800 g整机重量(官标 780g)
102
15伺服电机(全身)
103
50 Hz板载控制环 / 策略推理
104
$399预售价(税/运费另计)
105
1 h续航(NP-F550 可换电)
106
107
108 109

本手册三大章节(点击卡片跳转)

110
111
① 硬件组成盘点硬件组成简图 + BOM 明细表(含市面价格)+ 15 关节/自由度分配。查看 →
112
② 电气架构与通讯电气架构总图 + Dynamixel 总线 / I²C / MIPI + 进程间 JSON-RPC + BLE/WebRTC/WebSocket。查看 →
113
③ 软件算法与技术栈7 个 Rust 守护进程 + 50Hz 控制算法 + PPO sim-to-real 训练流水线 + 技术栈明细。查看 →
114
115 116
117 复刻边界(必须知道):Microduck 是"开源软件 + 闭源硬件"。官方明确"暂无开源硬件计划":不发布 CAD、不发布 BOM、不发布可二供的电机规格书。软件侧(机载运行时、训练流水线、出厂全部策略)100% Apache-2.0 开放。软件可复刻、运动智能可复刻、硬件需自行逆向/选型。 118
119 120

复刻行动指南(三步)

121 122 123 124 125 126 127 128
步骤内容关键动作
第1步 先软后硬在仿真里把"会走路"跑通git clone microduck_rl → uv sync(需 CUDA 或 --hf-jobs)→ uv run train Mjlab-Velocity-Flat-MicroDuck --env.scene.num-envs 4096 → 导出 ONNX → MuJoCo 验证
第2步 机载移植把 runtime 跑到任意 RK3566 板Radxa Zero 3W 烧 Armbian → 修 overlay(/dev/ttyS2)→ 装 ONNX Runtime / librknnrt / GStreamer 插件 → provision(Wi-Fi/身份/键)→ 手柄接入
第3步 硬件逆向组装按 BOM 采购 + 自研桥接板15×XL330(按 id 段接线)→ imu_to_dxl 桥接板(IMU 上总线 id=200)→ ToF/音频 HAT(I²C)→ 相机(MIPI)→ NP-F550 → 壳体组装 → 总线校验
129

复刻成本快照:软件零成本(开源);硬件 DIY 单套件估算 $560~620(其中 15 舵机约 $360~420 占大头);官方整机 $399(量产摊薄)。预算敏感可先买整机做软件开发,再逐步逆向硬件。

130 131

资料来源

132
    133
  1. 官方发布博客 Meet Microduck · Press kit/Spec · 商店
  2. 134
  3. 机载运行时仓库 github.com/pollen-robotics/microduck(Rust,Apache-2.0,含 docs/design 设计文档)
  4. 135
  5. 训练流水线仓库 github.com/pollen-robotics/microduck_rl
  6. 136
  7. Progressive Robot 深度拆解 · 链接
  8. 137
  9. MarkTechPost 规格解读 · 链接
  10. 138
  11. 36氪《具身智能的寒武纪爆发,是由一只鸭子开始的》 · 链接
  12. 139
  13. 价格参考:ROBOTIS 官方 XL330-M288-T(KR $23.90 / US $27.49)、Radxa Zero 3W(ALLNET $18)、VL53L8CX(DigiKey / Pololu)、BMI270(DigiKey)、NP-F550/NFC(电商行情)
  14. 140
141
数据截至 2026-08-31。「已确认」出自官方页面/开源仓库;「推断」为基于设计文档与行业惯例的选型建议;价格随渠道/时间波动。官方整机预售价 $399(税/运费另计,首批交付目标 2026 圣诞前)。
142
143 144 145
146

1硬件组成盘点

147

"感知—决策—执行"三件套齐备:主控 RK3566(0.8TOPS NPU)+ 15× Dynamixel XL330 总线舵机 + 广角摄像头 / 8×8 ToF / 双 IMU / 麦克风 + 双 NFC 天线与 Wi-Fi/蓝牙。整机 $399;DIY 单件约 $560~620。

148 149

1.1 硬件组成简图

150
151
152 153 154 155 156 157 158 159 160 头部 HEAD 161 广角摄像头 MIPI-CSI 162 ToF: VL53L8CX 8×8 (I²C) 163 IMU#2(头部) · NFC天线1 164 扬声器 · REC指示灯 165 166 可开合鸭嘴(1-DOF 夹爪 · 嘴部舵机 · NFC天线2 · ~100g) 167 168 颈/头 4 舵机 169 170 身体 BODY / 躯干 171 主控板 Radxa Zero 3W 172 RK3566 · 1GB RAM · 32GB eMMC 173 Wi-Fi6 + BLE5.x · 0.8TOPS NPU 174 imu_to_dxl v2 桥接板 175 IMU#1(躯干, id=200) 176 挂载于 Dynamixel 总线 177 电池 NP-F550 · 2600mAh · 7.4V(可拆卸) 178 麦克风 · 音频Codec(I²C) · NFC读卡 · 手柄接收 179 180 181 182 183 184 185 186 左腿 5 舵机 (id 20-24) 187 右腿 5 舵机 (id 10-14) 188 髋yaw/roll/pitch · 膝 · 踝(左右各5)→ 全身 15 自由度(RL 动作=14,嘴部不参与) 189 190 电机总线: 15×舵机 + IMU板 191 /dev/ttyS2 · 1Mbps · Dynamixel v2 192 193
194
图 1 · 硬件组成示意(头/嘴/颈/躯干/双腿分区)
195
196 197

1.2 实物标注图(官方原型机·逐部件指明)

198

基于 Pollen Robotics 官方宣传图(第一只浅蓝/橙色原型机放大),用彩色箭头直接指向每个硬件模块的实际位置,左右引线标注型号与总线 id。

199
200 Microduck实物标注图 201
图 2 · 实物标注图 · 第一只原型机放大 · 7 大模块彩色箭头指向(头部/鸭嘴/颈部/躯干/翅膀/腿部/脚部),含型号与总线 id
202
203 204 205 206 207

1.3 硬件爆炸图(官方信息图·26部件全标注)

208

Microduck 官方模块化爆炸图,26 个部件逐层展开并编号标注,含规格参数、动作展示、尺寸图、颜色版本与内部结构。

209
210 Microduck官方爆炸信息图 211
图 3 · 官方爆炸信息图 · 26 部件逐层展开(头部/颈部/躯干/髋/大腿/小腿/脚踝/脚)· 含规格参数与尺寸
212
213 214

1.4 硬件明细 BOM 表(含市面参考价)

215

价格 2026-08 市场零售参考;量产整机 $399 依赖批量采购与定制。

216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234
模块型号 / 规格数量单价参考小计参考依据
主控 SoCRK3566:4×Cortex-A55 @1.8GHz · Mali-G52 · 0.8TOPS NPU · 1GB RAM · 32GB eMMC1——已确认
开发板Radxa Zero 3W(RK3566 SBC,板载 Wi-Fi6+BLE5.x,1GB/2GB/4GB 档)1$18~45$30已确认板型号推断
伺服电机Dynamixel XL330 系列(M288-T:5V/0.52Nm/TTL)15$23.9~27.5$360~420已确认训练模型即 XL330
深度传感器ST VL53L5/8CX 8×8 ToF(~400cm,I²C)1$9~25$15已确认
IMUBMI270(6轴,片上 SFLP 四元数)或同级2$2~4$6推断
摄像头广角前置(MIPI-CSI)+ REC 灯;分辨率/FOV 未定稿1$10~20$15已确认型号推断
电池NP-F550 2600mAh / 7.4V(8.2V 满 / 6.6V 关机)1$10~25$18已确认
NFC13.56MHz 读卡(PN532 类)+ 头/嘴 2 天线1+2$3~15$10双天线型号推断
音频麦克风 + 扬声器 + 音频 Codec(I²C,与 ToF 共享总线)1套$8~15$10已确认
桥接板/HATimu_to_dxl v2(IMU 上总线 id=200)+ ToF/音频 HAT1+1$10~20$15已确认自研
结构件/外壳3D 打印壳体(4 色)+ 五金1套$30~50$40推断无官方 CAD
PCB/线束定制电源/传感器 PCB、Dynamixel 总线线束1套$20~35$25推断
手柄蓝牙/USB 手柄(开箱可遥控行走)1$10~20$15随整机附赠
DIY 单套件合计(估算)≈ $560~620整机 $399(量产价)
235
官方明确"机械与电子设计文件未开源"——XL330 为唯一确切断言的可商用电机方案;「推断」项需自行选型验证。摄像头分辨率、ToF 量程、无线版本官方标注"尚未定稿"。
236 237

1.3 关节与自由度分配

238 239 240 241 242 243 244 245 246
RL 索引部位关节名称总线 ID 段说明
0–4左腿(5)hip_yaw · hip_roll · hip_pitch · knee · ankle20–245 个 XL330
5–8颈/头(4)neck_pitch · head_pitch · head_yaw · head_roll30–33与嘴部同段
9–13右腿(5)hip_yaw · hip_roll · hip_pitch · knee · ankle10–145 个 XL330
—(第15个)嘴/夹爪(1)mouth(1-DOF 开合夹爪)34不参与 RL(动作维度=14)
247

RL 输出 actions[1,14] 映射回 15 个电机槽(嘴部置 0);观测 obs[1,61](48 本体感受 + 13 指令)。

248
249 250 251
252

2电子电气架构与内部通讯方式

253

一条 Dynamixel 总线承载 15 舵机 + 1 IMU 桥接板;I²C 承载 ToF 与音频 Codec;MIPI-CSI 进摄像头并由 VPU 硬编;进程间 JSON-RPC over Unix Socket;对外 BLE / WebRTC / WebSocket 三入口。设计原则:控制环绝不等待任何客户端。

254 255

2.1 电气架构总图

256
257
258 259 260 261 262 263 264 265 Radxa Zero 3W · RK3566 266 4×A55 1.8GHz · Mali-G52 · 0.8TOPS NPU 267 1GB RAM · 32GB eMMC · Armbian Linux 268 7 个 Rust 守护进程 · systemd 269 Wi-Fi6 + BLE5.x 板载 270 271 272 Dynamixel 总线(执行+本体感知) 273 274 UART /dev/ttyS2 275 1Mbps · Dynamixel v2 半双工 276 277 15× XL330 · id 10-14/20-24/30-34 278 sync_read 124-136: 位速流 279 sync_write 目标位置(50Hz) 280 1Hz: 电压+温度(144-146) 281 imu_to_dxl v2 · IMU#1 · id 200 282 SFLP 片上四元数(BMI270类) 283 284 285 286 HAT 板 I²C 总线 287 288 I²C 289 290 VL53L8CX 8×8 ToF(烧~90KB固件) 291 音频 Codec(共享总线) 292 NFC 读卡(头/嘴双天线) 293 294 295 296 MIPI-CSI 摄像头 297 298 299 VPU H.264 硬编 + rkaiq 3A 300 301 302 303 进程间控制面:JSON-RPC 2.0 · NDJSON · Unix Socket(每服务一个,0660) 304 305 robotd50Hz控制环 306 mediad摄像头/WebRTC 307 tofdToF 15Hz 308 padd手柄→意图 309 btdBLE 网关 310 configdWi-Fi/身份 311 updaterdOTA 312 313 对外传输:BLE(GATT) · WebRTC(control可靠+teleop不可靠双通道/音视频轨) · WebSocket(LLM/Agent) · USB手柄 · D-Bus(BlueZ/NetworkManager) 314 315
316
图 2 · 电气架构与通讯拓扑(绿=执行总线,橙=I²C,蓝=MIPI/无线)
317
318 319

2.2 一条 Dynamixel 总线(核心设计)

320
321

· 拓扑:15 舵机 + imu_to_dxl v2 板(IMU#1,id=200)共享 /dev/ttyS2 @1Mbps、Dynamixel 协议 v2 半双工单线;无第二总线。

322

· 每 tick 两次事务(50Hz):sync_read 寄存器 124–136(PWM/电流/速度/位置)+ IMU;sync_write 目标位置;每秒一次 144–146(电压 + 每关节温度)。IMU 与舵机同事务读取(共用一个寄存器块)。

323

· 舵机启动配置:return_delay_time=0(默认 250 时 16 设备每 tick 多 ~8ms)、baud_rate=3、pwm_slope=255、shutdown=52;位置 P 增益写入、I/D 置 0。

324

· 电池电压:由舵机供电电压折算(无电量计);满电 ~8.2V、关机 6.6V(10s EMA 平滑);空电自动坐下并关机。

325
326 327

2.3 传感器 / 外设总线

328 329 330 331 332 333 334 335 336 337 338
外设接口频率/特性进程
ToF(VL53L5/8CX 8×8)I²C(HAT,与音频共享)15Hz 深度矩阵;上电传 ~90KB 固件tofd
IMU#1(躯干)Dynamixel 总线(id=200)随 50Hz 控制环;SFLP 片上四元数robotd
IMU#2(头部)未公开头部/视觉姿态参考—
摄像头MIPI-CSIVPU H.264 硬编(mpph264enc→webrtcsink)+ rkaiq 3A;帧流不跨 socketmediad
音频I²C(Codec) + I²Spet-detect 40 频带 log-mel 声音 CNN;每机独立音色mediad / robotd
NFC(双天线)13.56MHzNFC 标签触发行为(多鸭合唱/足球等)mediad / robotd
339 340

2.4 进程间通讯(控制面)

341
342

· 协议:JSON-RPC 2.0 + NDJSON + Unix Socket(每服务一个 /run/<svc>.sock,0660 + SO_PEERCRED 鉴权);tokio 异步 + 全程超时;订阅=连接上的通知流。

343

· 为什么不用 HTTP/WS/D-Bus/gRPC:Unix socket 自带文件系统权限、杜绝误绑 0.0.0.0;serde JSON 类型可跨 BLE/WebRTC 复用。

344

· 数据面:"特征而非帧"——robotd 只消费 mediad 算好的特征;视频/音频帧只在 WebRTC 内(DTLS-SRTP 加密)。

345
346 347

2.5 对外无线三入口

348 349 350 351 352 353 354 355 356
入口通道承载说明
BLEGATT(btd)配网/状态/OTA 的 API 子集物理在场+配对;不承载视频
WebRTCmediad 的 PeerConnection音视频轨 + control(可靠) / teleop(不可靠) 双 DataChannel遥操作/远程;<200ms 端到端目标
WebSocketmediad(agent 通道)get_frame(JPEG) + 意图 JSON-RPCLLM/Agent 接入,几十行即可
手柄USB/BLE HID(padd/gilrs)vx/vy/vyaw、头姿态、技能触发非特权客户端,只发意图
357

安全机制:意图 Deadman(指令停流→速度归零→原地站立);safety 层独占 RobotIo 写句柄(借用检查器强制);非有限值拒绝 + 行程钳位;跌倒检测(投影重力,200ms 去抖)只报告不拦截,恢复由专属策略序列接管;更新时移动中 safeToRestart=false 防摔。

358
359 360 361
362

3软件算法与技术栈

363

软件栈完全开源(Apache-2.0):microduck(机载 Rust 运行时)+ microduck_rl(训练流水线)。所有出厂行为都是 MuJoCo 仿真中 PPO 训练、域随机化 sim-to-real、导出 ONNX 部署的神经策略,50Hz 实时推理。

364 365

3.1 软件总体架构(7 个 Rust 守护进程)

366 367 368 369 370 371 372 373 374 375 376 377
进程职责关键点
robotd50Hz 控制环 + 总线 + 策略推理 + 安全层 + 健康上报唯一能触达电机总线的进程
mediad摄像头/麦克风、H.264 编码、WebRTC 网关、远程前端感知崩溃不拖垮运动控制
tofd8×8 ToF 深度矩阵(15Hz)只发布不读取
padd手柄→意图非特权客户端
btdBLE GATT 传输适配不持有任何状态
configdWi-Fi/身份/PIN/手柄配对robotd 挂了也要能用(恢复路径)
updaterdOTA:验签→原子切换→健康门→回滚minisign + zstd+tar + 引导计数
378

可靠性:configd/updaterd/btd 与 robotd 无 systemd 依赖;发布目录整体原子切换(releases/<ver>/→current);更新后健康门,不健康自动回滚;控制环 tick 用 MissedTickBehavior::Skip 保持周期稳定。

379 380

3.2 运动控制算法(50Hz 闭环)

381 382 383 384 385 386 387 388 389 390 391 392 393 394
项值 / 说明
控制频率50Hz(实测 50.0Hz / 15022 tick 丢 3)
观测空间obs[1,61]:gyro(3)+projected_gravity(3)+joint_pos(14)+joint_vel(14)+last_action(14)+command(13)
指令块(13)twist vx,vy,vyaw(3) + 头 neck/head pitch,yaw,roll(4) + body x,y,z,roll,pitch,yaw(6)
动作空间actions[1,14] → 映射 15 电机槽(嘴部排除)
策略切换共享 61 维观测契约 → 13 个任务策略运行中热切换
推理引擎ONNX Runtime(ort dlopen);加载时校验维度;启动预热
输出处理home pose + action_scale×action → 头/腿一阶低通 → safety 钳位 → sync_write
安全非有限值拒绝、行程钳位、意图 deadman、跌倒去抖 200ms、limp_fall 序列接管恢复
里程计足底接触式前向运动学 + IMU yaw 积分;无磁力计(相对里程)
395 396

3.3 训练流水线(sim-to-real)

397
398
399 400 401 402 ① CAD 建模Onshape 三维模型onshape-to-robot→ MJCF 模型 403 404 ② 物理仿真MuJoCo Warp (mjlab)BAM M6 执行器模型(XL330 电压律+反电动势+摩擦) 405 406 ③ RL 训练 PPO4096 并行环境域随机化:电压/跌落/延迟/摩擦±1° 回差 · CUDA 1-2h/步态 407 408 ④ ONNX 导出obs[1,61]→act[1,14]归一化器内嵌图中(禁手改 checkpoint) 409 410 ⑤ 真机部署RK3566 · ort50Hz 热切换 411 412 413
414
图 3 · sim-to-real 流水线(全部公开,--hf-jobs 免 GPU 训练)
415
416
417

· 执行器模型:Rhoban BAM M6(XL330 电压控制律 + 反电动势 + Coulomb/Stribeck/负载摩擦),非理想 PD——保真度是 sim2real 差距主源。

418

· 域随机化:电池电压、负载压降、指令延迟、摩擦;±1° 齿轮回差变体(14 关节各串 passive 回差铰,观测透过回差读)。

419

· 命令:uv run train Mjlab-Velocity-Flat-MicroDuck --env.scene.num-envs 4096 → uv run scripts/export.py → 部署。

420

· 出厂 7 行为 + 共 13 任务(速度跟踪/站立/坐起/地面捡拾/踢 70mm·15g 球/前滚翻/5 种轮滑),全部公开、可再训练、可热切换。

421
422 423

3.4 感知与其它算法

424 425 426 427 428 429 430 431 432 433
算法实现算力位置
鸭/物体检测YOLO11n @320×320,INT8 .rknn(3.9MB),mAP50 0.976RK3566 NPU(0.8TOPS,RKNN dlopen);p50 25.7ms / p95 58.4ms
声音事件检测~20KB CNN 于 40 频带 log-mel(板载麦克风)CPU 独立 worker(pet-detect)
音频身份/语音每机唯一音色(synthesis);合唱由 id 最低鸭指挥robotd sound.rs / aplay
里程计足底接触 FK + IMU yaw 积分robotd 每 tick
ToF 特雷门琴深度→音符/嘴部张合(15Hz)robotd theremin.rs
434 435

3.5 技术栈明细

436 437 438 439 440 441 442 443 444 445 446 447 448 449
层级技术 / 库
OS / 板级Armbian Linux(RK3566,overlay 修正)→ NetworkManager;systemd;ONNX Runtime / librknnrt / GStreamer 插件(mpph264enc、webrtcsink、rkaiq)
机载语言Rust(无框架,单 workspace;serde + tokio + tracing + gilrs + bluer + rustypot + ort)
IPCJSON-RPC 2.0 / NDJSON / Unix Socket;tokio_util LinesCodec;共享契约 duck-ipc-proto
运动学/里程计kinematics(MJCF 前向运动学)、odometry crate
训练框架Python:mjlab(MuJoCo Warp + rsl_rl)· PPO · BAM · 域随机化 · onshape-to-robot · HF Jobs/Space
媒体libcamera + rkaiq 3A · GStreamer webrtcbin · VPU MPP H.264 · WebRTC(aiortc 可选)
无线BlueZ(bluer)BLE GATT · Wi-Fi6 · NFC 13.56MHz
OTA/安全minisign 验签 · zstd+tar · 原子切换 · 健康门 + 引导计数回滚
许可软件 Apache-2.0;3D 模型 CC BY-SA-NC;机械/电子设计未开源
450
451 452
453 454 464 465