在 Microduck 复刻中选择国产飞特 HL-1910-C001 替代 Dynamixel XL330-M288 的完整决策过程,含参数对比、协议差异、成本分析和 BAM 辨识方案。
复刻 Microduck 第一个绕不开的决策是舵机。
15 个舵机,整机运动全靠它们。Pollen Robotics 原厂用的是 Dynamixel XL330-M288,单价约 $17,15 只折合人民币 ¥2,580 左右。在整机 BOM 里,这是最大的一块。
如果用国产飞特 HL-1910-C001 替代,15 只 ¥1,500,省 ¥1,080。省了 42%,但代价是原厂预训练的 9 个 ONNX 行走策略全部报废——因为策略绑定的是 XL330 的动力学参数,换了舵机必须重训。
这个选择不光是省钱。它涉及协议兼容性、物理安装尺寸、力矩特性、控制精度,以及后续 sim2real 流程的改造成本。这篇文章把对比数据摊开来讲。
参数硬碰硬
先看两家舵机的官方标称参数。
Dynamixel XL330-M288(ROBOTIS,韩国):
- 重量:18g
- 尺寸:20×34×26mm
- 齿轮比:288.4:1
- 失速力矩:0.42 N·m @3.7V / 0.52 N·m @5.0V / 0.60 N·m @6.0V
- 空载速度:76 rpm @3.7V / 103 rpm @5.0V / 123 rpm @6.0V
- 位置传感器:接触式绝对编码器,12bit,360°
- 分辨率:4096 pulse/rev
- 控制算法:PID
- 通信:TTL 半双工总线,3.3V 逻辑(5V 兼容),最高 4Mbps
- 控制模式:电流控制、速度控制、位置控制、扩展位置控制、基于电流的位置控制、PWM 电压控制
- 齿轮材质:工程塑料
- 待机电流:17mA
- 输入电压:3.7~6.0V(推荐 5.0V)
飞特 HL-1910-C001(Feetech,深圳):
- 重量:19g(略重 1g)
- 尺寸:20.2×32.4×28mm(和 XL330 几乎一致)
- 齿轮比:约 270:1(标称数据)
- 失速力矩:约 0.55 N·m @6.0V(标称 5.5 kg·cm)
- 空载速度:约 120 rpm @6.0V
- 位置传感器:磁编码器,12bit
- 分辨率:4096 pulse/rev
- 控制算法:PID
- 通信:TTL 半双工总线,3.3V 逻辑,最高 1Mbps(默认 115200bps)
- 齿轮材质:金属齿轮(差异点)
- 输入电压:4.8~7.2V(推荐 6.0V)
注:飞特标称力矩以 kg·cm 为单位,Dynamixel 以 N·m 为单位。1 N·m ≈ 10.2 kg·cm。折算后:XL330 @6V 为 0.60 N·m ≈ 6.12 kg·cm;HL-1910 @6V 标称 5.5 kg·cm ≈ 0.54 N·m。两者接近,HL-1910 略低约 10%。
数据来源:Dynamixel 规格来自 ROBOTIS e-Manual(2026 年),飞特规格来自 Feetech 官方产品页和 AliExpress 商品页。复刻群实测数据待舵机到货后更新。
协议层面的关键差异
参数相近,但协议层有显著差异。
通信协议:XL330 用 ROBOTIS Protocol 2.0,HL-1910 用 Feetech 自定义串口协议(兼容 SCS 系列)。协议指令集不同,控制表地址不同,固件层面的适配不可避免。
波特率:XL330 最高支持 4Mbps,HL-1910 最高 1Mbps。在 50Hz 控制循环下,15 个舵机的 sync_read/sync_write 数据量约 300-500 字节,1Mbps 足够,但余量较小。如果在总线上挂 IMU 或 ToF 传感器(Microduck 架构中 IMU 作为第 16 个设备挂在同一条总线),1Mbps 的瓶颈会更明显。
半双工转接:Microduck 的 Robot HAT 使用 TX/RX 直连舵机总线的设计,需要半双工缓冲芯片。飞特 TTL 接口的 DE/RE 使能逻辑和 XL330 不完全相同,可能需要调整转接板电路。复刻仓库的 imu_to_dxl 板已经预留了兼容性调整的选项。
寄存器表:飞特和 Dynamixel 的控制表地址完全不同。Microduck 官方的 Rust 运行时使用 Dynamixel SDK 通过协议 2.0 读写控制表,如果换飞特舵机,需要重写底层的串口驱动层,或者加一层协议转换。
金属齿轮 vs 塑料齿轮
这是一个容易被忽略但影响实际体验的差异。
XL330-M288 的齿轮材质是全工程塑料。这是 ROBOTIS 有意为之的设计决策:塑料齿轮在过载时先磨损/断裂,保护舵机内部电机和编码器。对 Microduck 这种 800g 的机器人来说,摔倒时的冲击力直接通过齿轮传递,塑料齿轮作为「机械保险丝」是有道理的。
飞特 HL-1910 使用金属齿轮,耐用性更高,但摔倒时冲击能量没有耗散路径,可能传递到电机轴或编码器,长期来看损坏模式可能不同。
在复刻场景下,如果鸭子经常摔倒(训练初期这是必然的),金属齿轮的舵机可能更耐摔,但万一内部损坏,可能伤及电机而非仅齿轮。两种方案各有取舍,没有绝对优劣。
安装兼容性
好消息:两者的物理安装尺寸几乎完全兼容。
XL330 的安装孔间距是 20mm(中心距),HL-1910 也是 20mm。输出轴高度、法兰厚度、螺丝规格(M2)都一致。这意味着 Microduck 的 3D 打印件不需要修改就能安装 HL-1910。
实测结论:从 duck.whatled.com 的复刻进度来看,外壳和结构件已经用飞特舵机的 CAD 模型做过干涉检查,47 个 STL 零件的舵机安装位无需修改。
BAM 辨识的必要性
换舵机 = 重训策略。这是前提。
原厂 9 个 ONNX 策略(走、坐、站、踢、抓、溜冰、爬起来、蹲、叫)全部绑定 XL330 的动力学参数。HL-1910 的力矩-速度曲线、摩擦特性、回差与 XL330 不同,直接用这些策略会出问题。
BAM(Better Actuator Models)是解决这个问题的标准工具。上一篇文章详细拆解过 BAM 的 6 阶段流程,这里只强调在国产舵机场景下的实操要点:
- 单摆台架搭建:飞特舵机的单摆实验需要特别注意供电稳定性——HL-1910 推荐 6V,而 XL330 推荐 5V。电压不同,力矩特性也不同。
- 波特率适配:BAM 工具默认使用 Dynamixel 协议,对飞特舵机需要做串口协议适配。BAM 开源库(Rhoban/bam)允许自定义协议驱动,需要实现读/写寄存器的底层接口。
- 摩擦力矩标定:金属齿轮和塑料齿轮的摩擦特性不同。金属齿轮的静态摩擦力矩通常更高,Stribeck 效应更明显,这会影响 M4 阶段的摩擦模型拟合结果。
- 回差辨识:HL-1910 的齿轮间隙(backlash)标称约 ±1°,和 XL330 接近,但需要实际测量确认。BAM 的 M5 阶段用正弦激励下的滞后环来拟合,这个方法对任何舵机都通用。
成本对比总表
| 项目 | XL330-M288 ×15 | HL-1910-C001 ×15 | 差价 |
| 舵机本体 | ¥2,580 | ¥1,500 | -¥1,080 |
| BAM 辨识工时 | 不需要(官方已标定) | 约 1 个工作日 | +1 天 |
| 协议适配 | 不需要 | 底层驱动重写 | +2-3 天 |
| 策略重训 | 不需要 | 约 1-2 小时(GPU) | +GPU 算力 |
| 总成本 | ¥2,580 | ¥1,500 + 3-4 天开发 | 省 ¥1,080 |
飞特方案的实际省下来的不止是 ¥1,080。金属齿轮的长期耐用性可能减少备件采购,而协议适配和 BAM 辨识的投入是一次性的——一旦适配完成,后续同系列舵机都可以复用这套参数。
结论与建议
如果你只是想要一只会走路的鸭子、不在乎多花点钱、想最快跑起来:买 XL330,直接用官方策略。¥2,580 买个「开箱即走」,不亏。
但如果你想深入理解 sim2real、积累 BAM 辨识经验、或者批量复刻多只鸭子:HL-1910 是更合理的选择。节省的 ¥1,080 够再买 3-4 个备用舵机,而重训策略本身就是学习 sim2real 最好的方式。
对深星云复刻项目来说,选择 HL-1910 的决策已经落地。舵机已付 ¥1,500,待到货即开始单摆实验。协议适配层已在 Rust 运行时仓库中预留接口,BAM 指南已完成翻译和本地化。
后续会持续更新飞特 HL-1910 的 BAM 辨识结果、实测力矩曲线和行走策略训练进度,在 duck.whatled.com 上公开。
数据来源:ROBOTIS e-Manual (2026)、Feetech 官方产品页、AliExpress HL-1910 商品页、pollen-robotics/microduck 官方仓库、sxyseo/microduck-replica 复刻仓库。
