手眼标定解决方案
上一篇教程介绍了手眼标定需要解决的问题, 本篇教程将描述手眼标定解决方案的背景思想。eye-to-hand和eye-in-hand的核心思想是一样的, 因此我们将先详细描述eye-to-hand的解决方案,然后再说明eye-in-hand与之的区别。
备注
您无需使用末端执行器,也无需知道其位姿(如果您已安装末端执行器)即可进行手眼标定。工具中心点 (TCP) 值不影响手眼标定结果。在本文及后续教程中, 末端执行器 一词指的是工具法兰(机器人的最后一个连接件)。
如何解决手眼标定问题?
第一步是选择标定对象,例如棋盘格。 Zivid 标定对象 (棋盘格和 ArUco 标记)将在本教程的下一部分中进行介绍。 |
|
标定物体的几何形状已知,因此可以从相机图像中检测到。 此外,还可以估计其相对于相机的位姿( \(H^{CAM}_{OBJ}\) )。 |
|
要计算相机和机器人之间的相对位姿 (\(H^{ROB}_{CAM}\)),我们需要以某种方式关联位姿。 |
|
末端执行器相对于机器人基座的位姿 (\(H^{ROB}_{EE}\)) 是已知的,由机器人控制器提供。 |
|
右图中缺失的一环是标定对象相对于末端执行器的位姿 (\(H^{EE}_{OBJ}\))。 |
|
为了*消除*这个位姿的影响,或者说把它*固定*下来,我们可以把标定对象直接安装在机械臂的末端执行器上。 |
|
现在看来我们已经具备了关闭位姿闭环的一切条件,从而计算出相机相对于机器人的位姿 (\(H^{ROB}_{CAM}\))。然而,事情并没有那么简单。 |
|
这是因为我们并没有真正*消除*相对位姿( \(H^{EE}_{OBJ}\) )。但是,我们已经将其设为常数,以确保标定对象相对于末端执行器的位姿( \(H^{EE}_{OBJ}\) )在机器人运动过程中不会改变。 这使我们能够将机器人移动到一系列不同的位姿。 对于其中任何一个而言, \(H^{ROB}_{CAM}\) 都可以表示为其余两个已知位姿变量的函数:
以及一个恒定的、未知的位姿:
通过这组方程,可以利用最佳的方式(例如蔡氏方法)来计算所需的位姿 \(H^{ROB}_{CAM}\). |
|
第一步是选择标定对象,例如棋盘格。 Zivid 标定对象 (棋盘格和 ArUco 标记)将在本教程的下一部分中进行介绍。 |
|
标定物体的几何形状已知,因此可以从相机图像中检测到。 此外,还可以估计其相对于相机的位姿( \(H^{CAM}_{OBJ}\) )。 |
|
为了计算相机和末端执行器之间的相对位姿( \(H^{EE}_{CAM}\) ),我们需要以某种方式使多个位姿之间形成闭环。 |
|
末端执行器相对于机器人基座的位姿 (\(H^{ROB}_{EE}\)) 是已知的,由机器人控制器提供。 |
|
能够使位姿环闭合的缺失位姿是物体相对于机器人基座的位姿( \(H^{ROB}_{OBJ}\) )。 |
|
为了*消除*这个位姿的影响或者将其*固定*下来,我们必须将标定对象进行刚性安装。 这样可以确保标定对象相对于机器人基座( \(H^{ROB}_{OBJ}\) )的位姿在机器人运动过程中保持不变。 |
|
现在我们有了闭合位姿环所需的一切,从而可以计算相机相对于末端执行器的位姿( \(H^{EE}_{CAM}\) )。 在手眼标定过程中,机器人被移动到一系列不同的位姿。 对于其中任何一个而言, \(H^{EE}_{CAM}\) 都可以表示为其余两个已知位姿变量的函数:
以及一个恒定的、未知的位姿:
利用这组方程,我们就可以采用优化过的技术(例如 Tsai 方法)来计算出所需的位姿 \(H^{EE}_{CAM}\) 。 |
|
现在我们已经解释了如何解决手眼标定问题,让我们来看看 手眼标定对象 选项。