大家好,我是小智。今天小智同事说小智应该搞点有深度的东西出来,所以小智今天就发一篇之前写的手眼标定论文的注解。

很多同学通过看小智之前写的手眼标定文章,都知道了手眼标定怎么做了,但是作为一名技术大佬,只会用怎么行,还要对标定原理懂才行。所以今天小智就和大家讲一讲手眼标定过程中最多的tsai-lenz算法。

如果还不会知道如果进行手眼标定,可以扫描文末的二维码关注小智的机智人公众号,后台回复手眼标定,就可以免费获取教程了。

  • 今天注解的论文名称是:A New Technique for Fully Autonomous and Efficient 3D Robotics HandEye Calibration主要讲解了一种实现手眼标定的计算方法
  • 该方式适合手在眼外和手在眼上两种情况
  • 本文中所说的夹爪=机器人末端执行器=机器人末端

为什么需要手眼标定?手眼标定标什么?

当我们要使用机械臂结合视觉进行抓取时,通过相机获取了物体在空间中的位姿信息,但此时的位姿信息是基于相机坐标系的,并不能直接使用。 我们想让机器人末端执行器到达目标位置,那就要知道目标位置在机器人坐标系下(一般指机器人底座)的位姿。我们可以这样推导出来:

目标在机器人坐标系下的位姿=目标在相机坐标系下的位姿—>相机在夹爪(末端)坐标系下的位姿—>夹爪(末端)在机器人基坐标系下的位姿

等式右边的三个位姿我们怎么获取呢?

所以为了让机械臂能够到达视觉所识别出来的空间位姿,就必须要知道相机和机械臂末端执行器之间的位姿关系,手眼标定就是标定出机械臂末端和相机之间的位姿关系。

AX=XB是什么?有什么用?

继续上图:

上图表示的是机械臂与相机坐标系的变换关系,i代表i时刻的机器人末端、相机等之间的位姿关系,j表示j时刻它们的位姿关系。

注意:i、j时刻标定板与机器人位置保持不变。

我们用H表示坐标变换(H指homogeneous matrices 齐次变换矩阵)。 例如表示i时刻下夹爪(gripper)的坐标变换:

我们已知多组:

  1. 夹爪在机器人坐标系中的坐标
  2. 标定板在相机坐标系中的坐标  

  1. 夹爪和相机之间的位姿关系:

并且我们知道标定过程中,机器人基坐标和标定板之间的相对位置关系保持不变,所以有:

可以得到:

我们通过已知条件可以得到: Ci到Cj之间的转换关系:

Gi到Gj之间的转换关系:

Hgi这里使用的是相机中标定板的位姿

通过上面两个公式可以得到:

设:

即可以得到:

我们的目标是求出相机和夹爪之间的位姿关系即求出AX=XB中的X下面讲的Tsai-Lenz算法就是用来求解X的一种算法。

Tsai-Lenz算法求解步骤是什么?

1.问答

  1. 要求解

中的Hgc,首先要知道H是什么? > H 为齐次变换矩阵,它由3x3的旋转矩阵和3x1的平移矩阵组成。

  1. 什么是两步法? 所谓两步法就是先求Hgc(相机和夹爪之间的齐次矩阵)的旋转部分,再使用旋转部分求出平移部分。 我们将
按{9)展开计算得

2.步骤

求解旋转矩阵R: 在Tsai-Lenz论文中使用旋转轴+旋转角的方式来表示旋转。作者使用了修正的罗德里格斯参数表示旋转变换。 在齐次矩阵中的R表示一个旋转矩阵,R的特征向量和特征值一定是它的旋转轴和1。 我们可以定义R的旋转轴为Pr(旋转向量),则有:

有了旋转轴和旋转角我们就可以确定一个旋转。 使用修正的罗德里格斯变换重新定义Pr:

接下来上公式,然后证明:

上面两个公式告诉了我们之间的关系。注意我们需要两组以上的数据才能求出现在我们证明上面的公式:

这张图描述了各个向量之间的关系。从图中,我们根据向量之间的关系,可以得到:

也可以通过代数方式证明:

下次直接截图补充,用markdown写证明过程是真的累~ 根据等式[14]可以得到:图片(15) 同时我们可以得到:共线。 即:

这个特性我们从图中就可以看出,也可以从等式[15]中得到。

接下来是非常核心的等式:

证明过程:

(19) 通过公式[13],[16],[19],我们可以得到:

使用skew来计算X乘,就可以得到等式[12]:

通过等式[12]和等式10我们就能实现手眼矩阵的计算,明天小智将使用Python、C++、MATLAB来实现Tsai-Lenz手眼标定算法。

写在最后

这是第一次做论文注解,下次给大家讲一讲路径规划算法的相关论文,请大家持续关注。

我是小智,机器人领域资深玩家,现深圳某独脚兽机器人算法工程师一枚

初中学习编程,高中开始学习机器人,大学期间打机器人相关比赛实现月入2W+(比赛奖金)

目前在做公众号,输出机器人学习指南、论文注解、工作经验,欢迎大家关注小智,一起交流技术,学习机器人

话不多说,扫码上车