郭 明,侯伯杰,高建设,张慧慧
(郑州大学机械与动力工程学院,河南 郑州 450001)
在自动化生产中,工业机器人[1]的应用越来越多,机器人在对零件进行搬运、切割、喷涂等方面的应用大大提高了自动化生产的效率。这些应用中的机器人控制系统主要是基于各种传感器将检测到的信息传送给机器人,机器人系统根据传感器获得的信息进行下一步操作,机器人系统的效率与精度也依赖于各种传感器技术的发展。其中机器视觉技术的发展为机器人感知外界信息提供了一种新的方向。机器视觉自动检测技术效率高、速度快、精度高、检测结果稳定可靠、方便信息集成,另外经过一系列发展的视觉技术的成本不断降低,同其它自动化设备一样可以在各种恶劣和危险的环境中应用。
近年来,机器视觉在机器人系统中应用广泛,文献[2]将视觉运用到了药房取药机器人系统中,实现了取药机器人准确识别定位药品,且药品定位信息准确,提高了药房的取药效率。文献[3]设计了一种双目视觉识别定位、机械手捡拾和自主避障的轮式智能捡球机器人,通过机器视觉识别定位,引导机器人去抓取乒乓球、高尔夫球、网球等多种小型球类的拾取任务,解决了人工拾取球问题。文献[4]运用视觉重构与机器人运动联合技术,提出了一种通过双目视觉提取工件轮廓的三维坐标,然后生成机器人空间曲线的姿态轨迹完成切削任务的机器人切割系统。文献[5]把机器视觉应用于农业领域,提出了应用结构光视觉技术实现谷粒体积流量的测量。该结构光三维视觉测量系统,应用梯形微元积分求和法建立谷粒流体积计算模型,实现了滑槽输送谷粒体积的在线测量,推动了精准农业的发展。文献[6]设计了一套零件搬运过程中机械零件的位姿检测系统,实现了对零件的形状与位姿识别,但根据不同的零件需要编写相应的程序选取零件特征,通用性较差,且只能满足机械零件上下料的位姿检测。
目前存在的机器人视觉检测系统应用广泛,对于机器人加工零件,例如待切割、待涂喷、待磨抛等类的零件很大一部分为异形、体积较大等特征的零件,现存机器人视觉检测系统均不能对此类零件进行位姿测量。对于切割零件来说,通常此类零件体积较大,且大多存在异形,当零件边缘毛边需要切割时,零件的边缘轮廓特征采用视觉难以准确提取。即便提取也需要相机具有较大的视野范围和复杂度很高的提取算法,反而会降低视觉定位精度和导致系统鲁棒性变差。另外对于刚性较差的其它类待加工零件,夹具并不能对其进行精确定位,因此难以实现精确切割、涂喷和磨抛等加工,通常保留较大的加工余量,后续需要进行人工处理。为了能够使机器人一次性完成加工工作,对于初始不同位姿的加工零件,机器人的初始加工对刀点及后续加工路径需要进行相应调整。调整也就需要对待加工零件的初始位姿进行求解,以修正零件在不同初始位姿下的机器人加工轨迹。对于该类零件位姿难以确定的难题,提出了一种采用参照物的双目视觉位姿测量方法,并且设计了一套基于双目视觉零件的位姿测量系统,可以对米量级大型零件进行位姿测量。
这里的零件位姿测量系统主要由4个模块组成,分别为图像采集模块、图像处理与特征匹配模块、位姿测量模块、位姿输出模块。其具体流程,如图1所示。在对位姿测量系统双目相机进行标定后,将两个相机所采集的图像进行图像处理,主要包括滤波处理和特征检测。特征提取时,提取图像中参照物角点,在将该特征提取后,对两幅图像所对应的同一点进行匹配,然后由位姿测量模块对该零件的所处位姿进行计算,最后输出该零件的所处的位姿信息。
图1 位姿测量系统流程图Fig.1 Flow Chart of Pose Measurement System
视觉系统中所用相机采集的图像由于光照的不同,以及周围环境中的灰尘等影响,会出现不同条件下相机采集的工件图像存在较大差异的现象。对相机采集到的工件图像进行预处理可以消除图像中影响期望特征提取的错误特征,提高工件特征的明显度,也可以过滤掉环境影响的错误信息来简化数据的复杂度,从而改进下一步特征识别与匹配的可靠性。
特征检测是检测出进行处理后的零件图像中的特征。特征匹配是将提取出来的特征点进行立体匹配以获得其世界坐标信息。
对图像进行滤波处理可以增强图像,通过滤波,可以强调图像中的一些特征,对拍摄过程中相机采集到的影响期望特征提取的干扰噪声进行滤除。滤波方法主要有:均值滤波、中值滤波、高斯滤波等。采用高斯滤波的方法去除干扰噪声,效果明显。
视觉系统中采集到的图像,主要包括零件的角点特征、边缘线特征和面特征等。这里的零件位姿检测系统中图像采集模块是采用了两个黑白相机,在灰度空间的特征检测中,由于灰度图像为一维图像,检测出图像中的特征后可以直接从图像中提取出来。该系统采用Harris角点特征检测[7]直角三角形参照物的三个顶点,由于切割零件表面角点少,参照物角点特征明显,在生成特征向量后进行匹配时,设定相应阈值即可对误差点进行剔除。匹配后的角点为进行下一步位姿测量提供数据。
在进行立体匹配得到左右相机图像的匹配特征点坐标后,即可用双目视觉测量方法求解匹配点世界坐标。由相机成像原理可知,对于空间中一点P(XW,YW,ZW),到像素坐标系uv的转换关系[8-9],如式(1)所示。
式中:Z—点P的深度;ρw、ρh—每个像素点各自的宽和高;u0和v0—主点横纵坐标;f—相机的焦距;R—相机外参旋转矩阵;t—平移向量。式中没有考虑相机畸变,相机畸变会导致相机失真,这里在标定时引进了高阶畸变补偿成像过程中导致的畸变[9],径向畸变参数矫正公式如下:
式中:(x,y)—畸变点原始位置;r—该点到主点距离;(xdistorted,ydistorted)—矫正径向畸变之后的位置;k1,k2,k3—径向畸变系数。
切向畸变的矫正公式如下:
式中:p1、p2—切向畸变系数。
单个相机标定后相机内参和外参均可得到,因此只需要知道空间点的景深Z就可以得到空间点的坐标。单目相机并不能获得其景深,采用双目视觉获得景深的方法获取Z值[8],如图2 所示。空间中一点P,在双目视觉系统中的左相机的图像平面成像点为p1和右相机的图像平面成像点为p2,双目系统中的两个相机的焦距均为f,OR和OL分别是左右相机的坐标系原点。左边相机的光轴和右边相机的光轴是平行的。左边相机的成像平面上p1的横向坐标为XL,右边相机的成像平面上p2的横向坐标为XR。定义双目视差d=XL-XR。
图2 双目视觉视差与深度原理图Fig.2 Schematic Diagram of Binocular Visual Parallax and Depth
已知:
最后,质量管理不到位。质量是工程施工进度的主要影响因素之一,结合我国建筑工程实践来看,在建筑工程施工中,针对施工人员工作行为以及技术操作的管理未得到有效的落实,不规范操作的现象十分常见,这为工程施工质量埋下了严重的隐患,不可避免的波及到了施工进度。
根据相似三角形原理有:
上式两式相加有:
又因为:
可得:
得:
由式(6)获得Z值后即可通过式(1)求得匹配点世界坐标。这里采用的直角三角形参照物示意图,如图3所示。在特征匹配后即可通过双目相机标定后的参数、式(1)和式(6)求解出三角形参照物的三个顶点的世界坐标。
图3 参照物Fig.3 Reference
其中直角三角形直角点为标定物坐标系的原点O,直角三角形的直角短边和直角长边为标定物坐标系的X轴方向和Y轴方向,Z轴方向垂直于标定物直角三角形平面。参照物由人工定位贴附于零件上,参照物坐标系相对于零件坐标系即不存在旋转,也不存在Z轴方向的平移,只存在X,Y轴方向的平移。得到参照物坐标系位姿后,零件坐标系姿态与参照物坐标系姿态一致,零件坐标系原点位置BO(x,y,z)可以通过式(7)得到。
可简写为:
其中BO,AO分别是零件坐标系原点位置和参照物坐标系原点位置,t=(x,y,0)代表两个坐标系之间的平移变换。更为简洁方法为在人工进行贴附时,直接贴附与零件坐标系重合,那么BO=AO。
得到三角形参照物三维位姿具体步骤如下:
(1)假设所匹配的直角三角形三个顶点求解的世界坐标分别为A=(x1,y1,z1),B=(x2,y2,z2),C=(x3,y3,z3)。分别计算,找到最小值。若为最小,则点A为参照物坐标系原点O,即为参照物的世界位置。另外两种情况同理。
(2)确定参照物坐标系原点O坐标后,假设步骤一所得结果O=A,分别计算|。找到较小值。若较小,则可以得到为参照物坐标系X轴方向为参照物坐标系Y轴方向,即为参照物坐标系Z轴方向,也同为零件坐标系Z轴方向。其它两种情况同理。
(3)对所求叉积结果单位化得r=(r1,r2,r3),即为参照物坐标系Z轴在世界坐标系中的单位方向向量,至此,参照物坐标系三个坐标轴方向确定,即可求取参照物坐标系的三个欧拉角。
为了测验该零件位姿测量系统的可行性,搭建了零件位姿测量系统实验平台,如图4 所示。该实验平台主要有2 个型号为CGU2-130M 的黑白相机,接口为USB2.0 兼容USB3.0 并由USB供电,镜头焦距为12mm,视角为28.5°,相机三脚架,自制标定板,自制不等腰直角三角形参照物,笔记本电脑组成。
图4 系统实验平台Fig.4 System Experiment Platform
由前文可知,若想计算三维空间物体的几何信息,从式(1)可知必须知道相机的参数,保证这些参数的精确性是获得位姿测量系统实验准确性的前提,而相机标定[10]就是获得这些参数。实验采用MATLAB 2016b标定工具箱对双目相机系统进行标定。其中一组标定板左右相机图片,如图5(a)所示。
图5 相机标定图片Fig.5 Camera Calibration Picture
图6 软件系统界面Fig.6 The Main Interface of the Software System
标定结果,如表1所示。
表1 相机标定参数Tab.1 Camera Calibration Parameters
这里设计根据上述系统结构运用C#语言联合MATLAB语言编译的动态链接库设计了零件位姿测量系统软件,软件环境为Visual Studio 2015,MATLAB 2016b。该软件测量实验过程中的系统界面,如图5所示。这里的实验零件,如图4所示。图4(a)所示零件为客车操控台壳体零件总长约为230cm,图4(b)所示为客车车门壳体零件总体长约150cm,宽约80cm。本次实验设定了零件坐标系与参照物坐标系完全一致。对该位姿下的两个零件分别进行了15次和8次重复拍摄求解位姿。其中一次匹配结果,如图7所示。
图7 参照物角点匹配Fig.7 Reference Object Corner Matching
对两个零件的位姿测量数据记录,如表2、表3所示。表中位置为参照物位置,姿态表述方式α、β和γ为欧拉式ZXZ序列的欧拉角。
表2 操控台壳体位姿测量数据Tab.2 Pose Measurement Data of Console Shell
由表2中可以看出该系统的在X轴方向位置波动在(0~0.17)mm之间,Y轴方向的波动在(0~0.10)mm之间,Z轴方向的波动在(0~0.27)mm之间;α角角度波动在(0~0.34)°之间,β角角度波动在(0~0.29)°之间,γ角角度波动在(0~0.33)°之间。从实验结果看,该系统能够有效测量多种零件的位置和姿态,各个参数的偏差均较小,本测量系统能够为零件切割系统提供精度较高的位姿。
针对机器人加工系统中,由于大型加工零件的不易定位,用机器人对零件进行加工总是保留很大余量,后续需要人工处理的问题,提出了一种对这些零件进行位姿测量的方法,设计了一款零件位姿测量系统软件,方便机器人根据初始位姿的不同对加工路径进行修正,且该系统成本低廉。并且用该方法对不同零件位姿进行了实验测量。
结果表明:该系统能够有效测量多种零件的位置和姿态,为机器人加工系统修正加工路线提供了技术支持。