🎯 传感器与关节标定专题

编码器零位/方向校准、IMU 六面标定、力矩标定、关节零位与限位——控制精度的天花板由标定决定,而不是由 PID 决定。
编码器标定电角度零位IMU标定力矩标定
🎯 本页学习目标
1. 会做无感/有感 FOC 的电角度零位标定(对齐 U 相与 d 轴),并理解标错的症状
2. 理解 IMU 六面标定(零偏/刻度/非正交)与关节零位/限位标定流程
3. 会用力臂砝码法标定关节力矩,掌握标定数据的管理与复标时机
建议用时:约 30 分钟

1 为什么标定是精度的天花板

控制器眼里只有数字:角度 3.7 rad、电流 4.2 A、力矩 12 N·m。如果数字本身是错的(零位偏了 5°、刻度偏了 8%),再好的控制算法也在精确地放大错误。工程事故的常见链条:零位错 → Iq 没对准 q 轴 → 有效力矩变小且发热变大 → 工程师以为是 PID 不好 → 越调越糟。所以排查规律是:先标定,后参数

📏 全站约定:凡出现"电机出力不足但电流正常""闭环疯转""换向咔哒"三类症状,第一步永远是复查零位与方向(见故障诊断决策树),而不是动 PID。

2 电角度零位标定(FOC 的地基)

FOC 需要知道转子 d 轴相对 U 相绕组轴线的角度 θe0。标定思路:给 U 相注入定向电流把转子"拉"到 U 轴对齐位置(此时编码器读数就是零偏):

1安全准备
卸负载或固定关节;限流 30%;确认可自由微动的行程余量。
2通电对齐
电压/电流模式输出 U 轴定向矢量(如 VU 为正,VV=VW=−VU/2),转子自动转到 d 轴对齐 U 相。
3读零偏
等待 1~2 s 稳定,读编码器机械角 θm,记 θe0 = θm·极对数(或多圈绝对角)。
4方向校验
开环小电压正转:编码器角必须同向单调增;反向则改方向标志,再回第 2 步。
5写参数复验
保存零偏;闭环速度正反转各一圈,无疯转、无异响、力矩对称即为合格。
✔ 要做
· 重复标定 3 次取平均(重复性 <0.5° 电角度)
· 装减速器前后各标一次(装配应力会改变零位)
· 温度剧变后复标(磁编码器温漂)
· 记录标定日期与工装版本
✘ 别做
· 带负载标定(转子被卡住,对的是负载不是 U 轴)
· 用手转电机"目测"零位
· 同时改方向标志和零位(一次只改一个)
· 标定后不复验闭环就上负载
🧰 SimpleFOC 一句话标定:motor.initFOC() 内部就是这套流程(电压对齐 + 方向检测),但它对"负载卡死/弱磁吸力"没有防护,批量产线建议改用受限电流的定制对齐程序。

数值 worked example:21 对极电机算电角度零偏

设电机 21 对极(p=21),编码器 16384 线(cpr=16384)。通电对齐 U 轴后,稳定读得编码器机械角 θm = 3.7 rad(对应计数值 enc_count = 3.7/2π × 16384 ≈ 9648)。电角度零偏公式与代入:

\text{zero\_elec} = \left(\frac{enc\_count}{enc\_cpr} \times p\right) \bmod 2\pi = (\theta_m \times p) \bmod 2\pi

用计数口径复核:9648 / 16384 × 21 = 12.366 → 小数 0.366 × 2π ≈ 2.30 rad,两种口径一致。注意零偏必须对 2π 取模——77.7 rad 直接写进参数会让 FOC 换向错 12 圈电角度,电机疯转(先标定后参数,见第 1 节)。

3 IMU 六面标定

IMU(姿态/加速度计)误差 = 零偏 bias + 刻度 scale + 轴间非正交 misalignment。六面法:把 IMU 的 6 个面分别朝上静止采样(各 30~60 s),得到 6 组重力读数,解出 12 参数(3 轴零偏+3 轴刻度,非正交项可并入刻度矩阵):

b_i = (a_{i,up} + a_{i,down})/2, \qquad s_i = (a_{i,up} - a_{i,down})/2g

陀螺仪零偏:静止采集 1~5 min 取均值(上电温漂段跳过前 30 s)。标定后静止姿态漂移应明显收敛。要点:①六面工装的平面度比 IMU 本身精度更重要;②标定后参数写入非易失存储,与安装位置绑定;③整机更换 IMU 或结构大修后必须复标。

4 关节零位、限位与方向

电角度零位解决"电机层",关节零位解决"机构层":关节零位 = 机器人站立姿态(或 URDF zero pose)对应的编码器读数。流程:①关节置于机械零位工装(定位销/靠块);②记录减速器输出端编码器读数(注意:输出端绝对值编码器与电机端编码器不同源);③定义正方向(与 URDF/仿真一致!);④写入软限位(机械限位内缩 2~5°)+ 限位减速策略(接近限位自动降速)。方向与仿真不一致,是 sim2real 首日事故的高频原因。

5 力矩标定(砝码力臂法)

1装力臂
输出轴装水平刚性力臂(长 L,精度 ±0.5 mm),末端挂钩。
2多点加载
0~额定×1.2 之间取 5~7 个砝码点,每点稳定 2 s 采样均值(应变式)或锁电流读力矩(电流反推式)。
3线性拟合
最小二乘拟合 τreal = k·τread + b,残差 <1% F.S. 合格;明显的迟滞(加载/卸载不重合)说明减速器摩擦/背隙超差。
4复标时机
更换减速器/重装结构后;温度跨 20℃;摔机/堵转事故后立即复标。
⚠️ 电流反推力矩的坑:τ = Kt·Iq·i 只在"摩擦可忽略"时成立。谐波/蜗轮等大摩擦传动的关节,空载电流可达额定的 10~20%,必须外加摩擦补偿(查表或 LuGre 模型),否则零附近力矩误差可达 30%+。这也是 QDD 准直驱方案"力控好"的本质:减速比小 → 摩擦折算小 → 电流即力矩。

数值例:砝码力臂法完整算一遍

力臂长 L = 0.25 m(精度 ±0.5 mm),三个砝码点 0.5 / 1.0 / 1.5 kg:

四类标定对比表(速查)

标定项标定对象工具精度目标复标触发
电角度零位转子 d 轴相对 U 相绕组轴线的电角度零偏 θe0驱动板自身(定向电流)+ 编码器重复性 <0.5° 电角度(3 次取平均)拆装编码器/减速器、温度剧变(磁编码器温漂)、闭环疯转/出力不足时
IMU 六面法加速度计 3 轴零偏 + 3 轴刻度(非正交并入刻度阵)六面标定工装(平面度是关键)+ 静置采集程序零偏/刻度残差 <1% F.S.;陀螺零偏另测(静止 1~5 min 均值)更换 IMU、结构大修、贴片应力变化(摔机)后
关节零位URDF zero pose 对应的输出端编码器读数 + 正方向 + 软限位机械零位工装(定位销/靠块)方向与 URDF 一致零歧义;限位内缩 2~5°拆装关节、固件/URDF 更新后、sim2real 部署前必查
力矩(砝码)τread → τreal 的线性映射(斜率 k、零点 b,即 Kt·i 与摩擦)刚性力臂 + 标准砝码(5~7 点)拟合残差 <1% F.S.,迟滞可解释更换减速器、温度跨 20 ℃、摔机/堵转事故后立即复标

6 本节自测

1. 电角度零位标定时,给 U 相注入定向电流的目的是?
💡 解析:定子 U 轴通电产生的磁场会把转子 d 轴吸到对齐位置——这是"用物理对齐代替数学搜索"的巧妙做法。对齐瞬间的机械角与电角度的差就是零位偏置。
2. 关节力矩标定后,零附近力矩误差仍高达 30%,最可能的原因是?
💡 解析:大减速比传动的摩擦折算到电机轴后,空载电流可达 10~20% 额定,零附近"电流里全是摩擦,不是负载"。对策:摩擦补偿模型,或改用输出端力矩传感器/小减速比方案。
3. 关于标定数据的维护,下列做法正确的是?
💡 解析:标定参数属于"硬件个体",应绑定序列号存非易失区(或产线数据库),而非写进固件——换一台电机参数就不同。自动上电标定会打断正常使用且带载时不可靠;温漂/老化/事故都需要按触发条件复标。
4. IMU 六面标定中,把 IMU 的 6 个面分别朝上静止采样,核心目的是求解哪组参数?
💡 解析:六面法利用 6 个面的重力读数解出 12 参数——3 轴零偏 + 3 轴刻度(非正交项并入刻度矩阵),公式 b_i=(a_up+a_down)/2、s_i=(a_up−a_down)/2g(见第 3 节)。陀螺仪零偏需另行静止采集 1~5 min 取均值,不是六面法求解的对象。
5. 关于电角度零位标定,下列做法属于常见误区(错误做法)的是?
💡 解析:这是「✘ 别做」清单里的高频坑(见第 2 节):带负载标定时转子被卡死,读到的机械角不是 U 轴对齐位置,零位必错,越调越糟。正确做法是先卸负载或固定关节、限流 30% 再对齐。
6. 关于关节零位、限位与方向,下列说法正确的是?
💡 解析:软限位要内缩 2~5° 留安全余量并加限位减速(见第 4 节);正方向必须与 URDF/仿真一致,否则是 sim2real 首日事故的高频原因;输出端绝对值编码器与电机端编码器不同源,要分别记录。
7. 「U 相通电对齐法」标电角度零位,为什么能把转子拉到已知位置?
💡 解析:直流通电不旋转,合成磁势方向固定在该相绕组轴线上;永磁转子总要把自己 d 轴转向对齐该磁势——于是得到一个物理上确定的参考角。「对齐→读零偏→验方向」重复取平均可压低随机误差(本节主流程)。
8. IMU 六面法静置标定能解出哪些误差参数?
💡 解析:六面静置利用「静止时比力=重力在各轴投影、模长恒为 g」这组约束——6 个姿态给出冗余方程,最小二乘同时解出零偏与刻度;芯片级非正交误差通常并入刻度矩阵处理。陀螺零偏则靠「静置积分平均」单独标。工装平面度不够时,重力方向本身就不准,标定白做。
9. 关节已经有电机端高分辨率编码器,为什么很多设计还要在输出端再加一个?
💡 解析:谐波/RV 传过去要经历柔轮变形、齿面啮合——重力/冲击下电机端计数与输出真实角会出现度级偏差;力控与碰撞检测更需要输出端真值。双码盘不是简单备份(B),用途和分辨率都不同(本节第 3 小节)。
10. 砝码力臂法标定关节力矩常数,拟合残差却高达 8% F.S.,最可能的原因是?
💡 解析:静态砝码法假设「输出端力矩=砝码×力臂」无损传到电机端,但静摩擦会让电流停在一段区间内不变化(死区),残差呈系统性而非随机性——解决靠正反双向加载取均值、或动态辨识摩擦模型(D)。砝码精度与采样时长的影响属于次级(A/B)。
11. 换装了一只「同型号全新」的关节电机,原标定参数能否直接复用?
💡 解析:磁钢充磁一致性、编码器安装角度、IMU 贴片应力都会造成个体差(本节「数据按硬件个体管理」原则)。工程做法是给每只关节建标定档案,设定「碰撞/拆装/漂移超阈值→强制复标」的触发条件。C 之类「部分复用」要经过残差验证,不能拍脑袋。
12. 下列哪个事件不需要触发关节复标?
💡 解析:复标触发条件围绕「机械/电磁关系是否被扰动」:碰撞、拆装、换件都会改变零位/刻度关系(A/B/D);整机搬迁不改变关节内部几何与电磁关系,自检零漂正常即可继续使用(C)。这一条帮你在产线/赛场快速判断「要不要重新标」——把复标当成例行仪式同样浪费产能。
📌 本节要点速查:①电角度零位=U 相通电把 d 轴拉到对齐位置,三步「对齐→读零偏→验方向」,重复 3 次取平均、重复性 <0.5°;②IMU 六面法解 3 轴零偏+3 轴刻度(非正交并入刻度),工装平面度比芯片精度更重要,参数绑定安装位置;③关节零位绑定 URDF 正方向,软限位内缩 2~5° 并加限位减速,电机端/输出端编码器不同源;④力矩标定=砝码力臂+最小二乘拟合(残差 <1% F.S.),大摩擦传动必须补偿否则零附近误差 30%+;⑤先标定、后参数,数据按「硬件个体」管理并设定复标触发条件。
📌 本节小结:①标定决定精度天花板,排查永远"先标定后参数";②电角度零位=U 轴通电对齐法,三步:对齐→读零偏→验方向;③IMU 六面法解零偏/刻度,关节零位绑定 URDF 正方向;④力矩标定用砝码力臂+线性拟合,大摩擦传动必须摩擦补偿;⑤标定数据按"硬件个体"管理,设定复标触发条件。
🤔 思考题:1. 极对数填错(实际 21 对填成 14)时,零位标定看起来"成功",为什么闭环一定会失败?
2. 设计一个批量产线的标定工装:如何在一分钟内完成 6 个关节模组的零位+方向标定?(提示:多轴同时对齐电流)

M 参考来源