之前的文章调用了一堆opencv接口,但是从来没有涉及任何手眼标定的理论知识,这次聊一聊手眼标定的理论知识。
手眼标定行业内分为两种形式,根据相机固定的地方不同,如果相机和机器人末端固定在一起,就称之为"眼在手" (eye in hand),如果相机固定在机器人外面的底座上,则称之为"眼在外" (eye to hand)。本文只聊眼在手上。
1、AX=XB推导
eye in hand,这种关系下,两次运动,机器人底座和标定板的关系始终不变。求解的量为相机和机器人末端坐标系的位姿关系。
这就是如雷贯耳的AX=XB等式。
顺着该式往下说,我们发现A是机械臂两个末端点间的变换关系,该如何理解?设a和b是基于机械臂base坐标系下的两个点,则a和b之间的空间变换(姿态和位置的齐次矩阵)是a*A=b,其中矩阵A是a点和b点的空间变换,则A=a-1*b,即形式如上图的A.对于B而言,是标定板固定不动,相机改变姿态拍摄得到标定板的位姿,即是相机标定时的外参。后续有机会也可以学习9点标定法等。这样就可以理解下面这张图了:
要注意的地方是:机械臂的欧拉角姿态要清楚欧拉角的顺序。
2.如何求解AX=XB?
可搜索关键字:经典手眼标定算法之Tsai-Lenz的OpenCV实现。
具体内容请听下回分解~