手眼标定的坐标转换
这里涉及到的坐标系有四个:机器人基坐标系base、法兰上的工具坐标系tool、相机坐标系camera和标定板坐标系cal;此外,涉及到了四个关键的4x4齐次转换矩阵,对于眼在手上和眼在手外分别进行说明,下面是两种配置方式的坐标转换过程:
每一种配置方式,都是两个移动的坐标系和两个静止的坐标系,并且这四个坐标系构成了一个闭环。
[1] 对于moving camera(眼在手上)方式,如下图所示,机械臂基坐标系和标定板坐标系是静止的(不变量),两者之间存在一个固定的转换矩阵;法兰上的工具坐标系和相机坐标系是移动的,两者之间存在一个固定的转换矩阵;需要求的是法兰上的工具坐标系与相机坐标系之间的转换矩阵。其中,M1**(Base_H_Tool)可以从机器人示教器或者控制读出,Mx(Cam_H_Tool)**是需要求取的未知矩阵,M2 **(Cam_H_Cal)**可以从拍摄照片计算出来,M3 **(Base_H_Cal)**未知,但是是一个固定的转换矩阵,利用坐标转换,有如下的等式关系:Mx=M2 M3 ^ (-1) M1 即
Cam_H_Tool = (Cam_H_Cal)X(base_H_cal)^(-1)X(Base_H_Tool)
如果我有许多个这样的等式,利用M3 (Base_H_Cal)不变,可以构建关于Mx(Cam_H_Tool)的方程组,解方程组,求得Mx(Cam_H_Tool)中各个元素的值,在这个过程中我们不必去求M3 (Base_H_Cal)计算消去具体是多少,只是利用了其固定不变这个特性而已。总结:求不变量(Cam_H_Tool)
[2] 对于stationary camera (固定相机-眼再手外)方式,如下图所示,机械臂基坐标系和相机坐标系是静止的(不变量),两者之间存在一个固定的转换矩阵;法兰上的工具坐标系和标定板坐标系是移动的,两者之间存在一个固定的转换矩阵;需要求的是**相机坐标系和机械臂基坐标系之间的转换矩阵。其中,M1(Base_H_Tool)**可以从机器人示教器或者控制读出,Mx **(Cam_H_Base)**是需要求取的未知矩阵,M3 **(Cam_H_Cal)**可以从拍摄照片计算出来,M2 (tool_H_cal) 未知,但是是一个固定的转换矩阵,利用坐标转换,有如下的等式关系:Mx=M3 *M2(-1)*M1(-1),即
Cam_H_Base = (Cam_H_Cal)X(tool_H_cal)^(-1)X(Base_H_Tool)^(-1)
如果我有许多个这样的等式,利用M2**(tool_H_cal)**不变,可以构建关于Mx **(Cam_H_Base)的方程组,解方程组,求得Mx(Cam_H_Base)中各个元素的值,在这个过程中我们不必去求M2(tool_H_cal)**具体是多少,只是利用了其固定不变这个特性而已。