问题:法兰不是工具尖端
机器人知道安装工具的法兰位置,但要把尖端放到孔上,还需知道法兰到尖端的偏移。直观方法是让尖端停在同一参考点并改变工具朝向。四个、十个甚至一百个姿态就能保证正确吗?不能,关键是运动揭示了哪些未知坐标,而不仅是数据行数。
摘要。推导工具中心点TCP位置的线性标定模型,不包含完整工具朝向。构造残差近零却垂直坐标误差225 mm的例子,再展示可辨识但对噪声敏感的情况,以20,000次合成重复比较几何。这不是机器人实测或厂商内部算法复现,而是解释测量信息性的计算。
两个坐标系,一个尖端
t是法兰坐标系中的法兰到尖端向量,刚性固定工具下不变。第i姿态的旋转矩阵Rᵢ把法兰向量转至基座坐标,pᵢ是法兰在基座中的位置。固定点c也在基座坐标中,最初未知。t、p、c单位毫米,R无量纲。先旋转t再加pᵢ,得到基座中的尖端。
第一行要求每个姿态的同一尖端到达同一点。第二行仅移项,用来求t和c共六个未知坐标。I为不改变向量的单位矩阵。堆叠各姿态得到Hx=b,x=[t;c]。四个姿态有十二个方程,却不意味着十二份不同信息。
完整无噪声例子
选择合成真值t=(30,−20,150) mm、c=(500,200,300) mm,生成器知道,估计器不知道。各旋转按pᵢ=c−Rᵢt生成。R=I时p=(470,220,150),绕z轴90°时Rt=(20,30,150)、p=(480,170,150)。数据变了,但竖直分量仍150,这正是问题线索。
使用绕z的0°、90°、180°、270°四姿态。若t_z和c_z同时增加100 mm,全部pᵢ不变,因为绕z旋转保持(0,0,100)。仅靠这些方程,没有统计估计器能区分两种工具,数据不含这种差别。这称为不可辨识,并非提高数值精度可以解决。
零残差也可能对应错误结果
残差Hx−b衡量解重建标定数据的程度。NumPy最小二乘给出t=(30,−20,−75) mm,残差范数约3.4×10⁻¹³ mm。z距真值225 mm,数据却几乎完美重建。求解器选了无穷解中的最小范数者,这只是数学约定,不是工具长度的物理知识。
秩表示被独立约束的未知量组合数。这里秩5而非6,缺一个方向。重复一百次不改变秩,虽可减小已观测方向的噪声,却不能揭示缺失方向。四个相同姿态秩仅3,只知道旋转尖端与固定点的差。数量与多样性是不同资源。
可辨识不等于稳定
绕不同轴旋转可以使秩达到六。但姿态差别很小时,问题仍可能接近不可辨识情形。比较两组四个朝向:单位旋转加绕x、y、z各1°;单位旋转加绕同样三轴各90°。这只是数学构造,不是实际机器人运动指令;模型没有表示可达性、碰撞、接触和机械限制。
为了理解敏感性,把H分为三个操作:旋转未知量坐标,逐方向缩放,再旋转至数据坐标。这就是奇异值分解SVD。零因子表示一个方向从数据中消失;很小的因子表示痕迹极弱。重建未知量需要除以该因子,也放大痕迹中的误差。
uⱼ、vⱼ分别是数据方向和未知量方向;在本参数化中sⱼ无量纲。求和重建被观测方向,省略缺失方向只给最小范数解,并未测到它。条件数κ比较最大和最小因子:1°组约205,90°组约2.22。它不是毫米精度,也非通用评分,依赖所用矩阵、单位和参数化。
噪声会放大多少?
给p的每个坐标加入独立零均值高斯噪声,标准差0.2 mm,旋转仍精确。每个可辨识几何生成20,000次标定,每次联合求解全部姿态。测量估计尖端与真值距离平方平均后的平方根,即三维RMSE,单位毫米。它不是最大误差,也不是单个坐标标准差。
| 朝向 | 秩 | κ₂ | 尖端RMSE (mm) |
|---|---|---|---|
| I × 4 | 3 | ∞ | — |
| Rz(0°,90°,180°,270°) | 5 | ∞ | — |
| I, Rx(1°), Ry(1°), Rz(1°) | 6 | 204.987 | 16.6504 |
| I, Rx(90°), Ry(90°), Rz(90°) | 6 | 2.21525 | 0.220980 |
小旋转使法兰坐标0.2 mm噪声对应尖端RMSE约16.65 mm,多样朝向则约0.221 mm。这是该几何和合成模型的结果,不能把改善倍数推广到所有机器人。横线表示不可辨识情形,不虚构其精度。NumPy种子20260929,先小角度组后多样组,代码、版本和结果可下载。

无需模拟也能预测离散程度。H精确、满秩且噪声独立方差σ²时,估计协方差为σ²H⁺(H⁺)ᵀ,H⁺为伪逆。前三个对角元素开方给尖端坐标标准差:小角度约9.588 mm,多样朝向约0.1277 mm,与重复试验一致。三维距离组合三个分量,故其RMSE大于单坐标标准差。
不能用同一公式声称秩五系统缺失方向的不确定性为零;那里只是伪逆施加约定,数据并无约束。如果旋转也不确定,则H本身有噪声,而不只是b,简单模型不再充分。小角度误差造成的尖端位移随法兰到尖端距离增长,长工具尤其需要注意。
从线性系统到可信验证
代码用数值稳定的分解求最小二乘。显式求HᵀH逆更不稳妥,因为其条件数是H条件数的平方,可能加重精度损失。m个姿态、六个未知量对应3m行六列,忽略常数的稠密分解成本约m·6²。这个小问题中,信息充分的几何通常比节省少量乘法更重要。
应与增加物理信息的方法比较。若独立测得c,单姿态形式上可得t=Rᵀ(c−p),因为旋转的逆为转置。但c的测量不确定性仍进入结果,并未免费获得精度。已知长度或正则化通过外部约束缩小解集,必须声明并验证,否则会把假设提供的信息误认为标定证据。
设备验证应使用拟合之外的姿态,并尽可能采用独立计量参考。需区分重复性即重复试验的离散程度,与相对参考的准确性;量化工具变形、夹持间隙、参考点滑动和机器人运动学不确定性。这些验证只是建议,本文未执行。拟合姿态残差低只是内部检查,不是精度或安全认证。
所查Universal Robots文档描述在同一点用三个或四个不同朝向的位置学习TCP,并提示姿态差异不足的问题。这说明问题有实际意义,却不能证明厂商采用本文的模型、求解器或噪声处理。本文分析显式可复现模型,并非验证商业产品。
我们对尖端理解了什么
若许多姿态都提供同一信息,数量仍不够。确定尖端需要让全部坐标可观测的变化;稳定确定还需要变化留下的痕迹相对测量误差足够大。例子区分三个常混淆的问题:解是否唯一、对噪声多敏感、设备上多可靠?秩、条件数和独立验证分别回答它们,彼此不能替代。
工业与协作机器人是EL-AI计划探索的方向。本文帮助理解问题,并不宣布标定服务、实际安装或公司试验成果。理想模型结束之处仍有应用问题:参考质量、角度不确定性以及实际工作条件下的尖端验证。
来源与可复现性
Universal Robots — PolyScope X, SW10.12, Teaching TCP Position.
下面程序复现单轴反例。无需Rᵀ,因为联合求解堆叠姿态;lstsq同时返回秩,此处为5。归档还包括完整实验、各几何20,000次重复、绘图代码和结果。表达式和例子是本文执行的教学分析,并非经过同行评审的原创研究。
import numpy as np
I = np.eye(3)
Rz = np.array([[0.,-1,0],[1,0,0],[0,0,1]])
t = np.array([30.,-20,150]); c = np.array([500.,200,300])
Rs = [I, Rz, Rz@Rz, Rz@Rz@Rz]
H = np.vstack([np.hstack([R,-I]) for R in Rs])
b = -np.concatenate([c-R@t for R in Rs])
x, _, rank, _ = np.linalg.lstsq(H,b,rcond=None)
print("rank:", rank, "estimated tip mm:", x[:3])
print("residual mm:", np.linalg.norm(H@x-b))
# Zero residual does not identify the missing direction.
代码、数据与说明 · JSON. 教学计算使用 Python 3.14.0,图使用 Matplotlib 3.11.2。分析由 AI 辅助,不声称经过同行评审或人工审核。原创 ImageGen 封面仅作示意,不记录 EL-AI 人员、场所或实际安装。来源查阅于 2026 年 9 月 29 日。

