DH 常数(杆长、扭角)名义上是量出来的,装配完成之后却无法直接测量;而这组参数一旦不准,一切位姿都会系统性失准。运动学标定的思路,正是用末端位姿的量测值反推参数——这是一个标准的非线性辨识问题。课程把它定位在「了解」层次(录播 1:51:03:「只讲一下基本原理」),但本节仍把原理讲全,对应的录播区间是 1:49:32–1:55:29。
先修补 · 最小二乘(本节只用到这一条)
标定要用到的「超定方程最小二乘」,一句话就能说清:方程数多于未知数、又没有精确解时,就取使残差平方和最小的那个解。
ξmin∥Aξ−b∥2 ⟹ ξ=(ATA)−1ATb
(推导思路:展开目标函数,对 ξ 求导并置零,即得正规方程 ATAξ=ATb;A 列满秩时 ATA 可逆。)式中的 (ATA)−1AT 称为 A 的左广义逆——本节式 2.87 的 Δξ=(Φ∗TΦ∗)−1Φ∗TΔx∗ 正是它的直接套用(把 A 换成 Φ∗、b 换成 Δx∗ 即可)。
不过有两点要提醒。① 要让 ATA 可逆,A 必须列满秩;若量测位姿过于集中,ATA 就会接近奇异——这正是「tm≫4n」的由来。② 上式只对线性问题能一步到位,而本节的 k(ξ) 是非线性的,因此必须迭代求解。
要做标定,先得把正运动学中隐含的参数显式写出来。令 a,α,d,ϑ 分别为四列 DH 参数向量,把它们拼成一个 4n 维的参数向量,则式 2.82 改写为(原书式 2.84)
xe=k(a,α,d,ϑ).
接下来还要引入两个位姿:xm 为测量位姿(由限位装置或三角测量给出),xn 为用标称参数 + 传感器读数算出的位姿;两者的偏差记为 Δx=xm−xn(录播 1:52:00:「一个是算的、一个是测的……不会太大」)。这个偏差很小,正是后文「小偏差假定」的由来。
标定三步法(原书式 2.85–2.89)
- 线性化:在标称参数附近一阶展开(录播 1:53:10 老师:「在标称值附近给它展开……整理之后得到了(下式)」):
Δx=∂a∂kΔa+∂α∂kΔα+∂d∂kΔd+∂ϑ∂kΔϑ=ΦΔξ,
其中 Φ=[ ∂k/∂a ∂k/∂α ∂k/∂d ∂k/∂ϑ ] 为 m×4n 的运动学标定矩阵,即参数空间到操作空间的雅可比(原书脚注);Δξ 为参数偏差。这里要留意一个字母差异:英文原版把参数偏差记作 ζ,中文版沿用同一字母,本编改记为 ξ,以区别于 DH 关节变量 q——对照原书时请注意这个差异。
- 超定量测 + 最小二乘:一组位姿只能给出 m 个方程,而未知数有 4n 个,方程数不够用,因此必须量测 t 个位姿,使方程总数 tm≥4n;为避免 Φ 病态,还建议 tm≫4n。把各次量测堆叠起来(原书式 2.87),得 Δx∗=Φ∗Δξ,再取最小二乘解
Δξ=(Φ∗TΦ∗)−1Φ∗TΔx∗,
其中 (Φ∗TΦ∗)−1Φ∗T 即 Φ∗ 的左广义逆。
- 修正 + 迭代:参数按 ξ′=ξ+Δξ 更新(原书式 2.89)。要注意,这是非线性参数估计:每轮迭代都得用上一轮的参数重算 Φ,并重算 Δx(新的量测值与新的正运动学计算值之差),如此反复,直到 Δξ 收敛到给定阈值(录播 1:55:00–1:55:18:「再迭代,一直到这个差值特别小……满足你的要求之后就停止迭代」)。
这三步串起来,并不是走一遍就结束——它本身就是一个闭环(见下图):每转一轮,参数、线性化矩阵、偏差三者同时刷新,直到修正量收敛。
标定闭环(本教程绘):非线性问题线性化求解的通用套路——「算、比、解、更」四拍循环。一步线性化只在小偏差下才准,所以靠迭代收敛(录播 1:55:00:「再迭代,一直到这个差值特别小」);四拍与三步法一一对应(标定三步法)。
谁做标定、何时做(原书 + 录播 1:50:43–1:51:01)
厂家负责做出厂标定,以保证手册里标称的精度(录播:「一般都是厂家的,厂家给你的手册上就会有明确的(标定后的参数值)」);用户则在使用中遇到碰撞、检修或更换部件之后,需要重新标定。另有一类「用户级标定」,它与参数辨识无关:对于增量式(非绝对式)位置传感器,只要把机械手调到给定的参考姿态,再用该姿态值初始化传感器即可。
默写点 · 合上书再写(主动回忆)
先不看正文与速查卡,把下面几条写出来,再展开核对。写不出来,就说明这一节还没真正「拿走」——还没变成你自己的东西。
- 写出 Δx=ΦΔξ,说明 Φ 的维数与物理含义。
- 量测数条件是什么?为什么建议远大于?
- 一轮迭代里哪三样东西被更新?
核对
Φ 是 m×4n 的运动学标定矩阵(参数空间到操作空间的雅可比);Δξ 是 4n 维参数偏差。
tm≥4n;建议 tm≫4n——量测位姿太集中会让 Φ∗TΦ∗ 接近奇异(病态)。
① 参数 ξ′=ξ+Δξ;② 用新参数重算 Φ;③ 用新参数重算正运动学、得到新的 Δx。迭代至 Δξ 收敛。
- 一个闭环:机械误差 → 精度损失 → 位姿量测 → 线性化 + 最小二乘 → 参数修正。未知数共 4n 个,量测方程总数须满足 tm≥4n(宜远大于,以防病态)。
- 一个本质:标定是迭代的非线性最小二乘——一步线性化只管得住小偏差,收敛靠的是循环。
常见错误清单 · 自查两条
- 以为做一轮线性化就能得到最终参数——xe=k(ξ) 是非线性的,Φ 与 Δx 都随参数更新而变,必须迭代;
- 量测位姿取得「太整齐」——所有位姿挤在工作空间的一隅,会让 ΦTΦ 接近奇异;量测应铺满工作空间并留有余量(tm≫4n)。