高茂源,王好臣,赵锦泽,于跃华,李家鹏
(山东理工大学 机械工程学院,山东 淄博 255000)
随着工业生产和运输领域自动化程度的提高,工业机器人得到了广泛应用,替代了许多重复性,重体力的工作。工业机器人的应用也有效的提高现代生产的效率。在生产和运输过程中一个最重要的流程就是码垛,伴随着工业自动化技术的成熟,国内外的机器人码垛技术有了跨越式的发展[1]。但如今大多数机器人码垛采用示教的方式,通过设置抓取点与放置点,然后对机器人程序进行编程实现码垛,但一旦改变物品的摆放位置,机器人将无法识别从而造成误抓取,所以这种方式智能化程度低且适应性差。机器视觉技术相当于模拟人眼去识别与判断,将机器视觉技术与机器人码垛相结合可实现产品的快速定位,从而提高作业效率,保证其可靠性与稳定性,实现码垛智能化[2]。严亮等人提出一种结合SURF算法和RANSAC算法,通过仿射变换得到目标关键点信息完成抓取的定位方法[3]。徐博凡等人提出一种视觉引导的FANUC机器人抓取系统[4]。
本研究提出一种双目视觉引导机器人码垛的定位方法,利用视觉处理软件Halcon完成了摄像机的标定,获得相机内外参数。通过极线校正获得共面行对准的两幅图像,提出一种手眼标定方法。利用图像滤波与灰度变换相融合的算法对图像进行预处理。将灰度级分布与立体匹配方法相结合得到效果更好的视差图,对其进行区域分割,筛选,形态学等操作获得产品区域的中心点,通过计算后传输给机器人进行定位、码垛。
机器人码垛定位系统主要由摄像机、视觉处理软件、工控机以及码垛机器人组成,即图像获取、图像处理与执行单元三部分。
在进行码垛产品定位之前需要对两个摄像机进行标定,然后完成手眼标定工作。工控机作为中央控制器控制机器人程序运行,当机器人收到开始信号后移动到拍照位置,由固定于机器人末端的两个摄像机拍摄码垛产品的图像并通过以太网传送至工控机[5]。由工控机的视觉处理软件执行图像处理工作,得到产品的中心坐标后转换为机器人所执行的位姿矩阵,将数据传送给机器人,机器人控制末端夹具进行定位、码垛。定位抓取系统示意图如图1所示。
图1 定位抓取系统示意图
为了准确获取码垛产品的位置,需要对摄像机进行标定。通过建立摄像机模型获得图像像素坐标与现实中物体空间坐标之间的关系,以此来求解摄像机的内外参数。由针孔成像模型可知世界坐标系(XW,YW,ZW)与像素坐标系(u,v)之间的转换关系为:
(1)
其中:M1为摄像机内部参数,包括焦距f,每个像元的高dx、宽dy,图像中心点坐标(u0,v0);M2为摄像机外部参数,包括摄像机坐标系转换为世界坐标系的平移向量T和旋转矩阵R。
双目标定是为了确定两个摄像机之间的结构参数,即平移向量T1和旋转矩阵R1,两个参数可由摄像机的世界坐标与图像坐标的转换关系求得[6]。设三维空间中的一点P,在世界坐标系下的坐标点为PW,左右两个摄像机坐标系下的坐标点分别为Pl,Pr,通过两个摄像机的结构参数将点Pl,Pr相联系,如式(2)所示。
Pr=R1(Pl-T1)
(2)
通过对两个摄像机进行标定已分别求出两个摄像机的外部参数,设左摄像机的外参矩阵为Rl,Tl,右摄像机的外参矩阵为Rr,Tr,世界坐标系下的坐标点为PW,与左右两个摄像机坐标系下的坐标点Pl,Pr建立联系可得矩阵方程:
(3)
联立式(4)~(5)可得:
(4)
通过与式(5)进行比较可知两个摄像机的结构参数可由以下公式计算:
(5)
其中:变量Rl,Tl,Rr,Rl均为已知。
手眼标定的目的是建立机器人末端坐标系与摄像机坐标系之间的转换关系,从而推导出摄像机相对于机器人末端的相对位姿关系[7]。传统的手眼标定模型一般都是通过摄像机获得标定物在多个不同位置的外部参数,然后得到机器人末端在不同位置的姿态,将其与摄像机标定所得的外部参数相结合,进而求出摄像机与机器人末端工具的相对位姿[8]。此过程计算量大,转换关系较多,而机器人末端工具进行抓取操作是基于机器人基础坐标系进行的,因此本研究将世界坐标系建立在机器人基础坐标系上,这样只要求出机器人基础坐标系与摄像机坐标系之间的转换关系,机器人就可以控制机器人末端夹具实现码垛作业。
假设空间中一点P在坐标系O1-xyz和O2-uvw下的坐标为(O1x,O1y,O1z)、(O1u,O1v,O1w),则坐标系O1-xyz到O2-uvw的变换矩阵可表示为:
(6)
其中:R表示两个坐标系之间的旋转投影,T表示平移投影。
定义一个与标定物相联系的参考坐标系,分别建立其摄像机坐标系和机器人基础坐标系与参考坐标系之间的转换关系,通过消除参考坐标系,实现摄像机坐标系到机器人基础坐标系的转换。通过摄像机标定可得摄像机与参考坐标系之间的转换关系为Tcam-tran,然后控制机器人末端工具获得参考坐标系的x,y,z轴在机器人基础坐标系下的单位投影,驱动机器人获得x轴上一点、y轴上一点以及参考坐标系原点在机器人基础坐标系下的坐标,结合式(8)可以得到参考坐标系与机器人坐标系之间的转换关系Trob-tran,综上由坐标系的转换顺序可得:
Trob-cam=Trob-tran·Ttran-cam
(7)
在采集与传输图像的过程中会受到噪声的干扰,使图像中的重要细节丢失,不利于图像分析与识别[9]。为了消除图像噪声与增强对比度,需要对其进行图像去噪和灰度变换。针对图像的中存在的多种噪声,提出一种图像平滑与图像增强相融合的方法。设原始图像像素灰度为N(u,v),中值滤波后的图像像素灰度为M(u,v),高斯滤波后的图像像素灰度为G(u,v),处理后输出的图像像素灰度为T(u,v),处理过程可表示为:
T(u,v)=N(u,v)+
[(2N(u,v)-M(u,v)-G(u,v))·s]
(8)
其中:s为动态因子,通过取不同的值来改变中值滤波和高斯滤波后的图像像素灰度值与原始图像的像素灰度值的差值。此方法通过消除椒盐噪声与高斯噪声之后对图像进行灰度变换,可以更好地平滑图像,增加对比度。
为了减少图像处理的搜索范围,需要确保匹配点在极线上搜索,这样就需要两个摄像机的光轴平行且成像平面在一个水平面上,这样在所拍摄的两幅图像中,寻找图像点在另一成像平面中的匹配点,只要在等高像素行寻找即可[10]。但在实际使用中,由于安装误差等因素使得两个相机的空间位置存在旋转和平移,成像平面不共面且光轴不平行,因此为使其符合理想双目立体视觉模型,需要对左右摄像机所拍摄的图片进行极线校正。本研究使用Bouguet算法[11]来进行极线校正,该算法的原理是对左右摄像机所拍摄图像进行平行重投影,使两幅图像落到其像素行对准的同一个前向平行平面上。
通过摄像机标定所得数据,利用视觉处理软件对摄像机拍摄的左右图像进行畸变消除和极线校正后可得左右摄像机的主点坐标行坐标相等,即外极线水平,两个摄像机的相对位姿可由一个平移向量T=[10,0,0]来表示,这样就确保了左右两幅图像成像平面共面且光轴平行。如图2为摄像机拍摄初始的左右图像。
图2 初始图像
如图3所示为极线校正后的结果,通过极线校正后的两个图像的相对位置发生了变化,左右两个图像的对应点可以在等高像素找到,但图像边缘不规则,可通过裁剪等后处理来提取有效的图像部分。
图3 极线校正后的图像
视差图获取的最重要的一步就是立体匹配。基于特征的立体匹配算法是通过提取特征点获得视差图,但所提取的特征点稀疏,导致视差图不连续,不利于后续处理。而基于区域的SAD与SSD算法受光照影响很大,所获得的视差图效果不佳。为了获得密集且效果好的视差图,将两幅图像的灰度级分布与NCC立体匹配算法相结合[12]。灰度直方图是关于灰度级分布的函数,首先得到两幅图像原始的灰度直方图,使其中一幅图像的灰度直方图与另一图像的近似,这样就达到两幅图像的灰度级分布相同的目的。如图4为左图图像的灰度直方图,图5为右图图像的灰度直方图,通过比较可以看出,两幅图像的灰度级分布大致相同。
图4 左图图像的灰度直方图
图5 右图图像的灰度直方图
然后利用NCC方法完成立体匹配,匹配函数表示为:
S(r,c,d)=
(9)
其中:r,c为输入图像对应像素的行和列坐标,g1,g2为输入图像的灰度值,d为左右图像上的对应点的视差。在立体匹配前对左右图像的灰度级分布进行近似可以明显提高匹配精度,获得更好的视差图像。对匹配点的搜索添加约束区间,通过图像金字塔的方法来提高NCC算法匹配的速度,从而降低其计算量[13]。将灰度级分布与NCC匹配函数相结合获得的视差图如图6所示。
图6 码垛产品的视差图
从获取的视差图中可以很明显看出码垛产品的轮廓区域,为了更加准确定位到产品区域,对视差图进行图像处理。利用图像处理软件Halcon中的get_region算子将视差图像由图像变量转换为区域变量,对转换后的区域变量进行形态学运算、连通域的选择等操作从而精确地定位到产品的区域,将从视差图中提取的产品区域分别映射到左右图像中,得到区域中心点分别在左右图像的坐标为pL=(xL,yL),pR=(xR,yR),然后利用Halcon中image_points_to_world_plane算子将中心点在图像中的坐标转换为摄像机坐标系下的坐标。如图7所示为极线校正后的双目视觉系统,设码垛产品的区域中心点P在摄像机下的坐标为(XC,YC,ZC),两个摄像机中心间的距离为B,由两摄像机的成像平面共面可得yL=yR=y。
图7 平行双目系统
由图7可得几何关系:
(10)
因此计算出点P的三维坐标为:
(11)
结合手眼标定模型即可得到摄像机坐标系到机器人基础坐标系的转换关系,机器人就可以控制其末端夹具进行码垛作业。码垛定位的过程如图8所示。
图8 码垛定位的过程
搭建双目视觉系统与机器人系统来进行码垛定位实验。通过摄像机拍照将码垛产品的信息传输给工控机,进行图像处理后获得产品区域中心坐标,将计算结果传输给机器人,引导机器人定位,抓取。码垛定位结果如表1所示。
表1 视觉定位结果与实际坐标比较 mm
通过对3个码垛产品进行定位可得x,y,z方向坐标的误差,所产生的误差主要来源于手眼标定时坐标系的建立、双目相机的标定和摄像机的畸变以及立体匹配的精度,这都会影响视觉定位的结果。通过比较表1可知在x,y,z方向中实际坐标与视觉定位的最大误差为0.526 mm,满足其定位精度。
本文研究了双目视觉引导机器人码垛定位的方法,通过双目标定和手眼标定得到了机器人基础坐标系与摄像机坐标系的转换关系,为了提高图像质量,利用一种融合算法对图像进行预处理。将灰度级分布与立体匹配相结合得到视差图,并对其进行处理后得到了产品区域的中心点,通过计算传输给机器人进行定位、码垛。实验表明:本方法可快速准确的定位到目标位置,识别精度高,具有很好的应用前景。