一、基本步骤
(1)在机器人动作范围内找一个非常精确的固定点作为参考点;
(2)在工具上确定一个参考点(最好是工具中心点Tool Center Point, TCP);
(3)手动操纵机器人的方法移动TCP,以四种不同的工具姿态与固定点刚好碰上。
前三个点任意姿态,第四点是用工具的参考点垂直于固定点,第五点是工具参考点从固定点向将要设定的TCP的x方向移动,第六点是工具参考点从固定点向将要设定的TCP的在z方向移动,如下图所示:
![](https://img-blog.csdnimg.cn/2020042216481368.png)
(4)通过前4个点的位置数据即可计算出TCP的位置,通过后2个点即可确定TCP的姿态
二、标定过程
1、TCP位置标定
假设取1、2、3、4四个标定点之间相差90°且不在同一平面上,如下图所示:
![](https://img-blog.csdnimg.cn/20200422165522154.png)
![](https://img-blog.csdnimg.cn/20200422165819985.png)
给定如下坐标系定义:
【1】基坐标系(0坐标系):B
【2】末端坐标系:E
【3】工具坐标系:T
给定如下变换矩阵定义:
【1】末端坐标系 E 相对于基坐标系 B的变换关系 : E B T ^{B}_ {E}T EBT
【2】工具坐标系T 相对于末端坐标系 E的变换关系 : T E T ^{E}_ {T}T TET
【3】工具坐标系T 相对于基坐标系 B的变换关系 : T B T ^{B}_ {T}T TBT
显然可以知道:
E B T ⋅ T E T = T B T (1) ^{B}_ {E}T · ^{E}_ {T}T = ^{B}_ {T}T \tag{1} EBT⋅TET=TBT(1)
对于选定位置点 i = 1、2、3、4,有:
【1】 E B T ^{B}_ {E}T EBT不等,设:
E B T = [ E B R i B P E i 0 1 ] (2) ^{B}_ {E}T = \begin{bmatrix} \pmb{^{B}_ {E}R_{i}} & \pmb{^{B}P_ {Ei}}\\ 0 & 1 \\ \end{bmatrix} \tag{2} EBT=[EBRiEBRiEBRi0BPEiBPEiBPEi1](2)
【2】 T E T ^{E}_ {T}T TET不等,但其位置 E P T ^{E}P_ {T} EPT相等,设:
T E T = [ T E R i E P T 0 1 ] (3) ^{E}_ {T}T = \begin{bmatrix} ^{E}_ {T}R_ {i} & \pmb{^{E}P_ {T}} \\ 0 & \pmb{1} \\ \end{bmatrix} \tag{3} TET=[TERi0EPTEPTEPT111](3)
【3】 T B T ^{B}_ {T}T TBT 不等,但其位置 E P T ^{E}P_ {T} EPT相等,设:
T B T = [ T B R i B P T 0 1 ] (4) ^{B}_ {T}T = \begin{bmatrix} ^{B}_ {T}R_ {i} & \pmb{^{B}P_ {T}}\\ 0 & 1 \\ \end{bmatrix} \tag{4} TBT=[TBRi0BPTBPTBPT1](4)
关注公式(2)、(3)、(4)中加粗符号,有:
E B R i ⋅ E P T + B P E i = B P T (5) \pmb{^{B}_ {E}R_ {i}} · \pmb{^{E}P_ {T}} + \pmb{^{B}P_ {Ei}} = \pmb{^{B}P_ {T}} \tag{5} EBRiEBRiEBRi⋅EPTEPTEPT+BPEiBPEiBPEi=BPTBPTBPT(5)
在实际中, E B T ^{B}_ {E}T EBT 由机器人正解方程可以直接测得,因此,我们直接读取四个位置点的姿态 E B R i ^{B}_ {E}R_ {i} EBRi和位置 B P E i = 1 , 2 , 3 , 4 ^{B}P_ {Ei = 1, 2, 3, 4} BPEi=1,2,3,4。假设:
E B R 1 ⋅ E P T + B P E 1 = B P T (6) ^{B}_ {E}R_ {1}· ^{E}P_ {T} + ^{B}P_ {E1} = ^{B}P_ {T} \tag{6} EBR1⋅EPT+BPE1=BPT(6)
E B R 2 ⋅ E P T + B P E 2 = B P T (7) ^{B}_ {E}R_ {2}· ^{E}P_ {T} + ^{B}P_ {E2} = ^{B}P_ {T} \tag{7} EBR2⋅EPT+BPE2=BPT(7)
则,(6) - (7)得:
( E B R 1 − E B R 2 ) ⋅ E P T = B P E 2 − B P E 1 (8) (^{B}_ {E}R_ {1} - ^{B}_ {E}R_ {2} )· ^{E}P_ {T} = ^{B}P_ {E2} - ^{B}P_ {E1} \tag{8} (EBR1−EBR2)⋅EPT=BPE2−BPE1(8)
同理可得:
( E B R 2 − E B R 3 ) ⋅ E P T = B P E 3 − B P E 2 (9) (^{B}_ {E}R_ {2} - ^{B}_ {E}R_ {3} )· ^{E}P_ {T} = ^{B}P_ {E3} - ^{B}P_ {E2} \tag{9} (EBR2−EBR3)⋅EPT=BPE3−BPE2(9)
( E B R 3 − E B R 4 ) ⋅ E P T = B P E 4 − B P E 3 (10) (^{B}_ {E}R_ {3} - ^{B}_ {E}R_ {4} )· ^{E}P_ {T} = ^{B}P_ {E4} - ^{B}P_ {E3} \tag{10} (EBR3−EBR4)⋅EPT=BPE4−BPE3(10)
由(8)、(9)、(10)可得:
[ E B R 1 − E B R 2 E B R 2 − E B R 3 E B R 3 − E B R 4 ] ⋅ E P T = [ B P E 2 − B P E 1 B P E 3 − B P E 2 B P E 4 − B P E 3 ] (11) \begin{bmatrix} ^{B}_ {E}R_ {1} - ^{B}_ {E}R_ {2}\\ ^{B}_ {E}R_ {2} - ^{B}_ {E}R_ {3}\\ ^{B}_ {E}R_ {3} - ^{B}_ {E}R_ {4} \end{bmatrix}· ^{E}P_ {T} = \begin{bmatrix} ^{B}P_ {E2} - ^{B}P_ {E1}\\ ^{B}P_ {E3} - ^{B}P_ {E2}\\ ^{B}P_ {E4} - ^{B}P_ {E3} \end{bmatrix} \tag{11} ⎣⎡EBR1−EBR2EBR2−EBR3EBR3−EBR4⎦⎤⋅EPT=⎣⎡BPE2−BPE1BPE3−BPE2BPE4−BPE3⎦⎤(11)
由于 E P T ^{E}P_ {T} EPT为 3x1 列向量,而等式右边为 9x3的矩阵,因此方程(11)为不相容方程组,不可直接用非齐次线性方程组求解的方法或者solve求解。采用最小二乘法的矩阵形式,因其系数矩阵不是方阵,不可直接求逆, 因此使用广义逆。采用高斯消元法得到:
E P T = [ E B R 1 − E B R 2 E B R 2 − E B R 3 E B R 3 − E B R 4 ] \ [ B P E 2 − B P E 1 B P E 3 − B P E 2 B P E 4 − B P E 3 ] (12) ^{E}P_ {T} = \begin{bmatrix} ^{B}_ {E}R_ {1} - ^{B}_ {E}R_ {2}\\ ^{B}_ {E}R_ {2} - ^{B}_ {E}R_ {3}\\ ^{B}_ {E}R_ {3} - ^{B}_ {E}R_ {4} \end{bmatrix}\verb|\| \begin{bmatrix} ^{B}P_ {E2} - ^{B}P_ {E1}\\ ^{B}P_ {E3} - ^{B}P_ {E2}\\ ^{B}P_ {E4} - ^{B}P_ {E3} \end{bmatrix} \tag{12} EPT=⎣⎡EBR1−EBR2EBR2−EBR3EBR3−EBR4⎦⎤\⎣⎡BPE2−BPE1BPE3−BPE2BPE4−BPE3⎦⎤(12)
则式(12)所求得的 E P T ^{E}P_ {T} EPT即为TCP的位置向量。
2、TCF姿态标定
在第1部分已经得到工具坐标系(TCF)的位置,而计算TCP姿态采用z/x方向标定。
此过程中TCF的姿态保持不变(如第一节 – 基本步骤中图所示)。取第一个姿态标定点为位置点4(下图记作标定点1);机器人从位置点4出发,沿+x方向移动一定距离得到位置点5(下图记作标定点2);机器人从位置点4出发,沿+z方向移动一定距离得到位置点6(下图记作标定点3)。如下图所示:
![](https://img-blog.csdnimg.cn/20200422194847806.png)
由于3个标定点中的TCF姿态不变,故 E B R i = 4 , 5 , 6 ^{B}_ {E}R_{i = 4,5,6} EBRi=4,5,6均相等,且由(12)得 E P T ^{E}P_ {T} EPT 保持不变,故可得到工具坐标系 T 的 x 轴轴向向量 X X X ,且:
X = B P E 5 − B P E 4 (13) X = ^{B}P_ {E5} - ^{B}P_ {E4} \tag{13} X=BPE5−BPE4(13)
同理,可得到工具坐标系 T 的 z 轴轴向向量 Z Z Z ,且:
Z = B P E 6 − B P E 4 (14) Z = ^{B}P_ {E6} - ^{B}P_ {E4} \tag{14} Z=BPE6−BPE4(14)
进而由右手定则得工具坐标系 T 的 y 轴轴向向量 Y Y Y :
Y = Z × X (15) Y = Z \times X\tag{15} Y=Z×X(15)
为进一步保证坐标系矢量的正交性,重新计算 Z Z Z :
Z = X × Y (16) Z = X \times Y \tag{16} Z=X×Y(16)
将(13)、(15)、(16)单位化得到 X ′ , Y ′ , Z ′ X^{'}, Y^{'}, Z^{'} X′,Y′,Z′,得到工具坐标 T 相对于基坐标 B 的姿态 T B R ^{B}_ {T}R TBR,且
T B R = [ X ′ Y ′ Z ′ ] (17) ^{B}_ {T}R = \begin{bmatrix}X^{'} Y^{'} Z^{'} \end{bmatrix} \tag{17} TBR=[X′Y′Z′](17)
又末端坐标系 E 旋转矩阵为 E B R ^{B}_ {E}R EBR,且:
E B R T E R = T B R (18) ^{B}_ {E}R\ ^{E}_ {T}R=^{B}_ {T}R \tag{18} EBR TER=TBR(18)
故由(17)、(18)即可得到工具坐标系的旋转矩阵 T E R ^{E}_ {T}R TER,即:
T E R = E B R − 1 T B R (19) ^{E}_ {T}R = ^{B}_ {E}R^{-1}\ ^{B}_ {T}R \tag{19} TER=EBR−1 TBR(19)
3、TCF标定结果
由(12)和(19),可得到工具坐标系 T E T ^{E}_ {T}T TET 标定为:
T E T = [ T E R E P T 0 1 ] (20) ^{E}_ {T}T = \begin{bmatrix} ^{E}_ {T}R & ^{E}P_ {T} \\ 0 & 1 \end{bmatrix} \tag{20} TET=[TER0EPT1](20)
显然,TCF六点法标定的最小条件是能够获取到6个位置点的位姿 E B T i = 1 , 2 , 3 , 4 , 5 , 6 ^{B}_ {E}T_{i=1,2,3,4,5,6} EBTi=1,2,3,4,5,6,且为使式(12)能求解,应保证位置点1,2,3,4不在同一平面上。
三、参考文献
【1】康存锋,王红伟,张鹏飞等.焊接机器人工具坐标系标定的研究与实现[j].北京工业大学学报 2016, 42(1).
【2】兰虎等.《工业机器人技术及应用》.