手眼标定是指求解出工业机器人的末端坐标系与相机坐标系之间的坐标变换关系,或者工业机器人的基底坐标系与相机坐标系之间的坐标变换关系。手眼标定有两种情形:第一种是相机(眼)固定在机器臂(手)的末端,相机相对于机器臂末端是固定的,相机跟随机器臂移动,这种方式的手眼标定成为 Eye-in-hand;第二种是相机(眼)和机器臂(手)分离,相机相对于工业机器人的基座是固定的,机器臂的运动对相机没有影响, 这种方式的手眼标定成为 Eye-to-hand。
1、眼在手上的手眼标定
对于 Eye-in-hand 手眼标定方式,需要求解工业机器人的末端坐标系与相机坐标系之间的坐标转换关系。 Eye-in-hand 手眼标定的原理示意图如图 1所示。这其中有几个坐标系, 基础坐标系(用 base 表示) 是机器臂的基底坐标系,末端坐标系(用 end 表示) 是机器臂的末端坐标系, 相机坐标系(用 cam 表示) 是固定在机器臂上面的相机自身坐标系,标定物坐标系(用 cal 表示)是标定板所在的坐标系。任意移动两次机器臂,由于标定板和机器臂的基底是不动的,因此对于某个世界点,其在 base 坐标系和 cal 坐标系下的坐标值不变,在 end 坐标系和 cam 坐标系下的坐标值随着机器臂的运动而改变。根据这一关系,可以求解出end坐标系和 cam 坐标系之间的转换矩阵。具体求解过程如下。
对于手眼标定矩阵的求解,即求解出 end 坐标系和 cam 坐标系之间的转换矩阵,目前有许多方法,基本原理都是根据上述约束关系来求解的。 cal 坐标系下的某个点
P
0
P_0
P0,根据已知的相机外参(转换矩阵
T
1
T_1
T1)能够转换到 cam 坐标系下点 P1 ,再根据待求的手眼标定矩阵(转换矩阵 X )能够转换到 end 坐标系下点
P
2
P_2
P2,然后根据已知的机器人自身参数(转换矩阵
T
3
T_3
T3)能够转换到 base 坐标系下点
P
3
P_3
P3。因此能够得到关系式如下:
T
3
X
T
1
P
0
=
P
3
(1)
T_3XT_1P_0=P_3 \tag{1}
T3XT1P0=P3(1)
移动机器臂,对于同一点,
P
0
P_0
P0和
P
3
P_3
P3的坐标值不变,只是
P
1
P_1
P1和
P
2
P_2
P2的坐标值改变了,上述关系式变为如下形式:
T
3
′
X
T
1
′
P
0
=
P
3
(2)
T_3{^\prime}XT_1^{\prime}P_0=P_3 \tag{2}
T3′XT1′P0=P3(2)
上式中
T
3
′
T_3^\prime
T3′和
T
1
′
T_1^\prime
T1′同样是第二次测量的已知参数。联立(1)和(2)式可以得到如下关系式:
T
3
X
T
1
=
T
3
′
X
T
1
′
(3)
T_3XT_1=T_3{^\prime}XT_1^{\prime} \tag{3}
T3XT1=T3′XT1′(3)
对式(3)变换一下,可得:
T
3
′
−
1
T
3
X
=
X
T
1
′
T
1
−
1
(4)
T_3 ^{\prime-1}T_3 X=XT_1^{\prime} T_1^{-1} \tag{4}
T3′−1T3X=XT1′T1−1(4)
上式可以看成
A
X
=
X
B
AX=XB
AX=XB方程形式,且矩阵
A
=
T
3
′
−
1
T
3
A=T_3 ^{\prime-1}T_3
A=T3′−1T3和
B
=
T
1
′
T
1
−
1
B=T_1^{\prime} T_1^{-1}
B=T1′T1−1都是已知的。对手眼标定方程
A
X
=
X
B
AX=XB
AX=XB求解,即可得到手眼转换矩阵
X
X
X的值。
2、眼在手外的手眼标定
eye-to-hand的手眼标定示意图如下图2所示。相机固定在机器臂之外,相机和机器臂底座相对静止。其中,相机坐标系为
O
c
O_c
Oc,标定板坐标系为
O
w
O_w
Ow,机器臂末端坐标系为
O
e
O_e
Oe,机器臂底座坐标系为
O
b
O_b
Ob。涉及到几个坐标系的转换,即标定板坐标系到相机坐标系的转换关系
T
w
c
T_w^c
Twc,相机坐标系到机器臂底座坐标系的转换关系
X
X
X,机器臂底座坐标系到机器臂末端坐标系的转换关系
T
b
e
T_b^e
Tbe,其中相机坐标系到机器臂底座坐标系的转换关系
X
X
X即为需要求解的手眼标定矩阵。
对于上述转换关系,标定板固定在机器臂末端,在某一位姿下,标定板上的点在标定板坐标系下的坐标值是
P
1
P_1
P1,经过
T
w
c
、
T
c
b
、
T
b
e
T_w^c、T_c^b、T_b^e
Twc、Tcb、Tbe的坐标系转换关系转换之后,标定板上的点能够转到机器臂末端坐标系下的坐标值
P
3
P_3
P3,转换关系如下:
T
b
e
X
T
w
c
P
1
=
P
3
(1)
T_b^eXT_w^cP_1=P3 \tag{1}
TbeXTwcP1=P3(1)
然后机器臂变换一下位姿,能够得到另一组上述形式相同的公式,即:
T
b
e
′
X
T
w
c
′
P
1
=
P
3
(2)
T_b^{e\prime}XT_w^{c\prime}P_1=P3 \tag{2}
Tbe′XTwc′P1=P3(2)
上述公式(1)和(2)中的
T
b
e
、
T
b
e
′
T_b^e、T_b^{e\prime}
Tbe、Tbe′能够通过机器人的位姿输出得到,
T
w
c
、
T
w
c
′
T_w^c、T_w^{c\prime}
Twc、Twc′能够通过单目相机标定的外参得到。上式(1)(2)能够转换成以下形式:
T
b
e
X
T
w
c
=
T
b
e
′
X
T
w
c
′
(3)
T_b^eXT_w^c=T_b^{e\prime}XT_w^{c\prime} \tag{3}
TbeXTwc=Tbe′XTwc′(3)
进一步的能够转成:
T
b
e
′
−
1
T
b
e
X
=
X
T
w
c
′
T
w
c
−
1
(4)
T_b^{e\prime-1}T_b^eX=XT_w^{c\prime}T_w^{c-1} \tag{4}
Tbe′−1TbeX=XTwc′Twc−1(4)
公式(4)能够理解成
A
X
=
X
B
AX=XB
AX=XB的形式,此时
A
=
T
b
e
′
−
1
T
b
e
A=T_b^{e\prime-1}T_b^e
A=Tbe′−1Tbe、
B
=
T
w
c
′
T
w
c
−
1
B=T_w^{c\prime}T_w^{c-1}
B=Twc′Twc−1,其中
A
、
B
A、B
A、B都是已知数。通过变换多次机器臂末端位姿,对手眼标定方程
A
X
=
X
B
AX=XB
AX=XB求解,即可得到手眼转换矩阵
X
X
X的值。