3D视觉引导机械手原理分析

发布时间 2023-08-25 15:28:54作者: 一杯清酒邀明月
  下面以康耐视的3D点云相机举例,由于相机出厂默认校准过,所以以下忽略内参推导(后面有机会可以专门做一篇分享),只对外参部分做分享。

1. 手眼标定的意义:

  所谓标定,就是求解坐标系之间相对位置关系的变换矩阵的过程。

2. 眼在手外:

  这里我们可以讲A坐标系理解为机械臂的底座坐标系,B坐标系为相机坐标系,P点可以理解为需要引导抓取的物体。
  只要求出B在A上的变换矩阵,我们就可以知道零件在机械臂上的位置。

  上面可以看出,End在Board上、Base在Camera上这两个变换矩阵是未知的,但是End和Board上是相对位置固定的,所以可以通过移项将其消除,不参与运算,这样未知变换就只剩Base到Camera了,下面是方程组移项过程。

  接下来让End抓着Board,走n个不同的位置和姿态(记录End在Base上的位置),同时让相机拍照(记录Board在Camera上的位置)。对于n张图片,End在Board的位置是固定不变的,联立方程组后可以得到,下图等号两边相等的关系。其中Base到Camera就是需要求的结果。

  得到Base在Camera下的变换矩阵之后,通过连乘,就能得到最终零件在Base下的坐标位置。

3. 眼在手上:

  与眼在手外不同,这里的相机坐标系C是移动的,机械手末端坐标系B也是移动的,但是坐标系B的位置是已知,并且与相机坐标系C永远保持一致,所以只有求得C在B上的变换矩阵,通过矩阵连乘仍然可以得到点P在A坐标系下的位置。

  这里仍然有两个未知的变换关系,Base在Board、End在Camera。可以将Base在Board的变换矩阵消除,之求解End在Camera的变换矩阵。

  和前面一样,经过n次的走位取图联立方程组,我们就可以求出End在Camera上的变换矩阵。

  和前面一样,经过n次的走位取图联立方程组,我们就可以求出End在Camera上的变换矩阵。

  最终通过矩阵连乘,我们就可以得到零件在Base上的位置。