DEEP 170 · 第十五辑 · 其他舵机案例库 · LEARN NOTES

收进学习手册 · 2026-09-11 · duck.whatled.com

解读 170 · xl320 案例研究

解读对象:bam/bam/params/xl320/(m1.json–m6.json 六档,m6.json 共 17 个字段)
需要的前置:解读 169(xl330 逐字段基准)· 解读 80(字段含义速查)

1. 型号是谁

Robotis Dynamixel XL-320,bam/README.md 已辨识模型库里的"上一代小球形舵机"——XL330 的
前辈。BAM 侧是 dynamixel/actuator.py 的 XL320Actuator:台架电压 vin=7.5 V、固件 P 增益
kp=32(xl330 是 400,口径完全不同)、error_gain=0.05048199(注释:示波器实测)、max_pwm=1.0。
它的辨识范围也为它单独定制:R 上限放宽到 40 Ω(其他电压舵机 ≤10),max_load_friction
放宽到 1.0(默认 0.5)。额定电压窗口、尺寸、重量等规格:参数库外信息,待验证。

2. m6.json 逐字段 + 与 xl330 基准对比

17 个字段(xl330 有 18——xl320 没有 command_delay,缺的字段加载时回落初始值 0.0,
即拟合时没辨识延迟;是当年流水线版本差异还是刻意为之,待验证):

字段 xl320 xl330 对比
kt 1.009 0.346 ×2.9
R 31.59 2.50 ×12.6,一整个量级(范围 3–40)
armature 0.00116 0.00157 ×0.74
q_offset −0.0212 0.0150 台架误差,只说明它家台架装偏方向相反
friction_base 4.3e-07 0.0119 几乎为零:库仑底没了
friction_stribeck 0.0163 0.00085 ×19:停转阻力全走 Stribeck 通道
load_friction_motor 3.1e-06 0.228 ≈0:电机侧载荷摩擦消失
load_friction_external 0.158 0.107 外载侧扛大旗
load_friction_*_stribeck 6.0e-09 / 0.245 1.5e-08 / 0.142 同上,外载侧主导
load_friction_*_quad 0.00362 / 0.00471 0.00527 / 0.00299 同量级
dtheta_stribeck 2.30 0.261 ×8.8,"多慢算慢"门槛宽 9 倍
alpha 1.71 8.53 峰又宽又平
friction_viscous 0.00723 0.00579 ×1.25

画像:XL-320 的 R=31.6 Ω 意味着堵转电流只有 7.5/31.6≈0.24 A,kt·vin/R≈0.24 N·m
的电压堵转力矩——比 xl330 的 1.04 N·m 弱 4 倍,和"上一代更弱"的直觉自洽。摩擦结构则
整个换了形状:xl330 是"有库仑底 + 电机侧载荷摩擦主导",xl320 是"无库仑底 + 外载侧
主导 + 宽而平的 Stribeck"。同一套 M6 模型,两组参数形状完全不同——这就是为什么不能拿
一颗舵机的 json 改个文件名冒充另一颗。存疑点:dtheta_stribeck=2.30 超出当前代码上限 1.0,
应是拟合时旧版范围不同所致(推断,待验证)。

3. 如果用它换掉 xl330:五落点具体值

按 解读 79 的落点:① microduck_constants.py 改
motor_name="xl320";kp_fw 口径换到 32 一族(不能照抄 200);vin_range 按实测窗口填
(额定值待验证,BAM 台架口径 7.5 V);延迟按 json 缺失回落 0.0 或台架重测。②
friction_dr_bam.py:forcerange 按 0.24 N·m 量级重估——低于决策树"0.5 N·m 量级"的
第二道门(解读 73),力矩先行一票否决,大概率走不到重训那步;
摩擦辨识值直接指向 params/xl320/m6.json。③ 回差角台架实测。④ 随机化范围按自己台架
离散度。⑤ assets 质量(单只重量:参数库外,待验证)。

你带走的收获

延伸

什么鸭 WHATDUCK · 复刻学习笔记 ← 全部手册 · 首页