九点标定(手眼标定)
概括
视觉技术在工业机械臂引导应用中的主要作用是精确获取对象物和目标物的坐标位置和角度,并将图像坐标转换为工业机械臂能识别坐标,指导机械臂进行操作。
手眼标定原理
原理:手眼标定是将机械手和摄像机的坐标系统一起来,解决相机与机械手之间的坐标转换关系,让机械手能精确抓取到摄像机定位的目标。
手眼标定流程
求解标定的转换公式只需要三组以上两个坐标系的对应点,所以在视觉应用中一般采用N点标定算法来实现手眼标定。
接收到工业机械臂的定位触发信号
相机图像(执行相机采集)–高精度匹配(进行定位,获取图像坐标系位置)–N点标定(通过图像坐标和工具预设的N点机器人坐标完成手眼标定)
手眼标定流程图和过程图如下:
场景:以相机引导机械手tool工具取放料为应用场景,介绍标定实施方法
在机器视觉与工业机械臂相结合的应用中,工业机械臂引导定位最为普遍,大致可分为单相机抓取定位引导、单相机纠偏引导、上下相机贴合定位引导。
单相机抓取定位引导
相机运动
相机固定
单相机纠偏定位引导
上下相机对位引导
该场景由两个相机组成,下相机倒装于机台上,用于对抓取的对象工件进行定位纠偏,上相机安装于机器人上随机器人一同移动,用于对象工件抓取定位和目标位置定位。
其他
一、眼在手上
顾名思义,相机和机械手相对位置固定,机械手会带着相机运动到固定位置拍照。一般情况下会事先示教机械手tool工具取放料的坐标,示教完成后,保持产品姿态不变,相机走到固定拍照位置,拍下带有取放料点位(产品)的照片作为标准位置。由于产品或载具的公差,每一批产品在同样的位置拍照后,计算该照片中取放料点位(产品)坐标和标准位置照片中取放料点位(产品)坐标的差值(即是常说的纠偏值),机械手tool示教坐标加上该差值即为当前位置产品的机械手tool取放料坐标。
其中,在当前位置和标准位置作差过程中,均是先将图片中取放料点位(产品)坐标先转换为物理坐标。在这之前就需要做九点标定:在某一个固定拍照位置,视野中贴一个Mark圆点,然后机械手带着相机走九个点,也就是九宫格形状,记下机械手在每个点的坐标,且机械手在每个点时相机拍摄图片保存,通过图像处理计算出每个Mark圆点的圆心像素坐标。然后运用Halcon相关算子,或者其他图像处理工具,将九个点的机械坐标和对应像素坐标输入,得出转换矩阵。就可以把图像坐标转换成物理坐标。
二、眼在手外
与之相反,眼在手外表示相机固定在机械手之外,不随着机械手运动。这种情况下不需要事先示教取放料点位(产品)坐标,因为需要的是相机的引导:拍照之后给出取放料点位(产品)坐标。所以这种情形下也不需要拍摄标准位置照片。
九点标定的过程:在相机视野中贴上九个Mark圆点(成九宫格排列),并且拍下这张图片保存,然后将机械手tool的中心依次移动到对准这九个Mark的中心,并记下tool对准每个Mark点中心时的机械手坐标,接下来就是通过图像处理计算出每个Mark圆点的圆心像素坐标。然后运用相关图像处理工具,计算出像素坐标和机械手坐标的转换矩阵。或者另外一种标定方式:让机械手tool蘸取颜料,依次走九宫格的九个点位,并在视野中铺上一张白纸,在白纸上拓出来九个点,这种方法也可以得到九对点位。
最后,每次取放料前,拍下产品照片,计算其像素坐标,然后转换为机械手坐标,引导机械手完成取放料。
总结
九点标定就是通过一组机械手坐标和对应的一组像素坐标来计算两个坐标系下坐标的转换关系,眼在手上的情况一般用于纠偏(需要得到一组相对于标准位的偏差值),眼在手外一般用于引导(需要得到一组坐标值)。需要注意的是:
-
眼在手上的结构,一般用于取放料的位置相对固定,有机械硬限位,此时这种手眼结构就是用来纠偏,弥补硬限位误差;在取放料位置随机的情形下,也可以采用这种眼在手上的结构,此时就不需要示教取放料坐标和做标准位,但是另需要校出相机和机械手的相对位置,才能计算出引导坐标,所以取放料位置随机的情况下一般不宜采用眼在手上的结构。
-
由上可知,眼在手外的结构,一帮用于取放料位置随机的情形,当然也适用于取放料位置相对固定的情形,此时这种结构的功能就是引导;当取放料位置相对固定时也可以示教取放料和做标准位,但一般不增加这两个步骤,因为眼在手外可以直接计算出引导坐标。
所以实际应用中,根据相机视野大小能否一次拍全,和机械结构的设计,采用不同的手眼安装方式计算出坐标的转换关系。