坐标系变换方程
如果有n个未知变换和n个变换方程,这个变换可由变换方程解出。例如:图1中变换TBT{^B_T}TTBT描述了操作臂指向的坐标系{T},它是相对于操作臂基座的坐标系{B}的,又已知工作台相对于操作臂基座的空间位置SBT{^B_S}TSBT,并且已知工作台上螺栓的坐标系相对于工作台坐标系的位置,即GST{^S_G}TGST,计算螺栓相对于操作手的位置,GTT{^T_G}TGTT。

由公式推导,得到相对于操作手坐标系的螺栓坐标系为:GTT{^T_G}TGTT=TBT−1{^B_T}T^{-1}TBT−1SBT{^B_S}TSBT GST{^S_G}TGST
基坐标系{B}
基坐标系{B}位于操作臂的基座上。它仅是赋予坐标系{0}的另一个名称。
工具坐标系{T}
工具坐标系{T}附于机器人所夹持的工具末端。
工具坐标系6点法标定:
机器人末端坐标系 {E}相对于机器人基坐标系{B}的变换关系为EBT{^B_E}TEBT; 工具坐标系 {T}相对于末端坐标系 {E}的变换关系为TET{^E_T}TTET; 工具坐标系 {T}相对于基坐标 {B}的变换关系为TBT{^B_T}TTBT; 三者的转换关系为:EBT{^B_E}TEBT ⋅\cdot⋅ TET{^E_T}TTET =TBT{^B_T}TTBT
采用四点法标定TCP如图所示,标定 TCP的4个位置,4 点之间各差90度且不能在一个平上。EBRi{^B_E}R_iEBRi分别为机器人末端坐标系 4 个点的旋转矩阵;BPEi{^B}P_{Ei}BPEi分别为机器人末端坐标系 4 个点的位置矢量; TBR{^B_T}RTBR为工具的旋转矩阵;EPT{^E}P_{T}EPT为工具的位置矢量;TBRi{^B_T}R_iTBRi分别为工具坐标系末端4个点的旋转矩阵;BPT{^B}P_{T}BPT为工具坐标系末端的位置矢量。因 4 个不同位姿下工具坐标系在基坐标系的位置不变,即BPTx{^B}P_{Tx}BPTx,BPTy{^B}P_{Ty}BPTy,BPTz{^B}P_{Tz}BPTz为定值;TER{^E_T}RTER,EPT{^E}P_{T}EPT各个参数不变也为定值。

[TBR1−TBR2TBR2−TBR3TBR3−TBR4]⋅[EPTxEPTyEPTz]=[BPEx2−BPEx1BPEy2−BPEy1BPEz2−BPEz1BPEx3−BPEx2⋮BPEz4−BPEz3]\begin{bmatrix} {^B_T}R_1- {^B_T}R_2\\ {^B_T}R_2- {^B_T}R_3\\{^B_T}R_3- {^B_T}R_4\\ \end{bmatrix}\cdot\begin{bmatrix} {^E}P_{Tx} \\{^E}P_{Ty}\\{^E}P_{Tz}\\ \end{bmatrix}=\begin{bmatrix} {^B}P_{Ex2}- {^B}P_{Ex1}\\ {^B}P_{Ey2}- {^B}P_{Ey1}\\{^B}P_{Ez2}- {^B}P_{Ez1}\\{^B}P_{Ex3}- {^B}P_{Ex2} \\ \vdots\\{^B}P_{Ez4}- {^B}P_{Ez3} \end{bmatrix}⎣⎡TBR1−TBR2TBR2−TBR3TBR3−TBR4⎦⎤⋅⎣⎡EPTxEPTyEPTz⎦⎤=⎣⎢⎢⎢⎢⎢⎢⎢⎡BPEx2−BPEx1BPEy2−BPEy1BPEz2−BPEz1BPEx3−BPEx2⋮BPEz4−BPEz3⎦⎥⎥⎥⎥⎥⎥⎥⎤
式中包含 EPx{^E}P_{x}EPx,EPy{^E}P_{y}EPy,EPz{^E}P_{z}EPz 3个未知量,系数为9×3的矩阵。因为系数矩阵不是方阵,不可直接求逆,因此使用广义逆矩阵,采用高斯消元求解。
计算出工具坐标系的位置后,还需要标定计算TCP的姿态。TCP姿态采用 z/x 方向标定,此过程保持TCP的姿态不变。将位置标定点 P4P_{4}P4作为第 1个 TCP姿态标定点,示教机器人沿+X 方向至少移动250mm后作为第 2个标定点P5P_{5}P5 ; 然后回到第 1个标定点示教机器人沿 +Z方向移动至少250mm作为第3个标定点P6P_{6}P6。

因为3个标定点的姿态保持不变,可得EBRi{^B_E}R_iEBRi 都相等。因为第1个姿态标定点与第2 个标定点( 沿 +X 方向) 之间的向量关系也就是工具坐标系沿+X 方向的向量,因此得到工具坐标系 T 的 X 轴轴向向量:
X=[BP5Ex−BP4ExBP5Ey−BP4EyBP5Ez−BP4Ez]X=\begin{bmatrix} {^B}P_{5Ex}- {^B}P_{4Ex}\\ {^B}P_{5Ey}- {^B}P_{4Ey}\\{^B}P_{5Ez}- {^B}P_{4Ez} \end{bmatrix}X=⎣⎡BP5Ex−BP4ExBP5Ey−BP4EyBP5Ez−BP4Ez⎦⎤
相似地,根据第1个姿态标定点与第 3个标定点( 沿+Z 方向) 之间的向量关系,由此可以得到工具坐标系T 的 Z 轴轴向向量:
Z=[BP6Ex−BP4ExBP6Ey−BP4EyBP6Ez−BP4Ez]Z=\begin{bmatrix} {^B}P_{6Ex}- {^B}P_{4Ex}\\ {^B}P_{6Ey}- {^B}P_{4Ey}\\{^B}P_{6Ez}- {^B}P_{4Ez} \end{bmatrix}Z=⎣⎡BP6Ex−BP4ExBP6Ey−BP4EyBP6Ez−BP4Ez⎦⎤
同理Y轴轴向向量由右手定则可得:Y=Z×X再对Z=X×Y 进行计算,以保证坐标系矢量的正交性。
得到每个轴的轴向向量之后,对其进行单位化操作,得到工具坐标 T 相对于基坐标 B 的姿态,左乘末端坐标系 E 旋转矩阵的逆,求出工具坐标系的旋转矩阵TER{^E_T}RTER=EBR−1{^B_E}R^{-1}EBR−1TBR{^B_T}RTBR。
用户坐标系{U}
用户坐标系{U}即,用户自定义坐标系;机器人可以和不同的工作台或夹具配合工作, 在每个工作台上建立一个用户坐标系。
用户坐标系有原点三点标定:
(1)示教第一个点为用户坐标系原点O
(2)在xyz任意轴上示教一点,例如X轴示教一点PxP_xPx,则用户坐标系x轴单位向量为n=(PxP_xPx-O)/norm(PxP_xPx-O)
(3)在剩余两轴上示教一点,例如Y轴示教一点PyP_yPy,则用户坐标系y轴单位向量为o=(PyP_yPy-O)/norm(PyP_yPy-O)
(4)计算得到则用户坐标系z轴单位向量a=n×o

即,建立好的用户坐标系为(在基坐标系下的描述):
UBU=[nxoxaxOxnyoyayOynzozazOz0001]{^B_U}U=\begin{bmatrix} n_x&o_x&a_x &O_x\\ n_y&o_y&a_y&O_y\\n_z&o_z&a_z&O_z\\0&0&0&1 \end{bmatrix}UBU=⎣⎢⎢⎡nxnynz0oxoyoz0axayaz0OxOyOz1⎦⎥⎥⎤
这样我们就在基坐标系{B}下,建立了一个用户坐标系{U},在用户坐标系下测量工作空间内各点位置,更方便记录描述参数,符合人的直观。在基坐标系下的点BP^BPBP与用户坐标系下的点UP^UPUP关系为:BP^BPBP=UBU{^B_U}UUBU UP^UPUP