罗月童, 江玉清
(合肥工业大学 计算机与信息学院,安徽 合肥 230009)
基于机器视觉的水泥灌装定位系统的关键技术研究
罗月童, 江玉清
(合肥工业大学 计算机与信息学院,安徽 合肥 230009)
针对传统工业上水泥灌装速度慢,精度低,文章采用Eye-in-hand和Eye-to-hand 2种视觉系统相结合的水泥灌装视觉定位系统建立坐标系统,完成像素坐标向物理坐标转换,并采用迭代逼近求解的优化方法完成定位。新的视觉系统具有视野范围大、定位精度高的特点。采用迭代逼近的方法减少了机械中由齿轮间隙和相机畸变带来的误差,达到快速和精确定位的目标。
水泥灌装;机器视觉;自动定位;迭代逼近
传统工业水泥灌装采用半自动控制的方式,通常由操作工人根据水泥灌装车的位置,手动控制工业机械臂移动水泥出料口位置到水泥灌装车的装料口位置,该方法灌装速度慢,导致工作效率低下;灌装精度低,导致水泥损耗,且损耗的水泥粉尘易破坏环境,危害工人健康。水泥灌装操作可归结为工业机器人完成最多的一类操作“抓取—放置”动作[1]。为了完成这类操作,对被操作物体定位信息的获取是必要的,机器人必须知道物体被操作前的位置,以保证机器人准确地抓取。
本文设计实现的水泥灌装视觉定位系统由视觉系统、机械臂系统和计算机控制中心组成。通过结合2种手眼模式构成高效视觉系统完成定位,并最终采用迭代逼近的方法,完成像素坐标向物理坐标的精确转换。Eye-to-hand[2]手眼模式为相机安装在固定的高度,不随机械臂改变而改变;Eye-in-hand[3]手眼模式为相机位于机械臂的末端,随机械臂一起移动。
1.1 关键问题分析
水泥灌装视觉定位系统主要利用相机拍照获得水泥灌装车上灌装口的位置图像,进而通过图像处理技术获得灌装口的中心位置的像素坐标,最后将该中心的像素坐标转换为物理坐标,完成定位。
设计灌装系统时,会尽量保证相机拍照所得图像的质量,如通过设计合适的外部光源,保证灌装系统的工作范围内光照均匀,并且具有相应的除尘装备。因此对图像采用相应的图像处理技术[4-5]即可准确地获得灌装口中心的像素坐标。由于灌装车体型大,停靠位置不固定,整个视野范围为8 000 mm×4 000 mm,这就要求相机能够覆盖该视野范围;另外灌装口大小为500 mm×500 mm,当前工业标准要求最终的定位精度在5 mm以内。由以上分析可知,当前灌装工作具有现场视野范围大、定位精度高等特点。目前工业常用相机的像素尺寸为656×492,采用单一相机,为保证视野,相机安装位置较高时,每个像素所代表的物理距离较大,产生的绝对误差越大;为保证精度,当相机安装较低时,无法满足视野要求。若单独采用高分辨率(500万像素)相机,单一Eye-to-hand视觉系统可以达到工业标准,但高像素相机成本太高,且灌装系统中相机安放室外,灌装现场条件较差,容易损坏,不符合工业上节约成本的要求。因此,结合工业相机设计一套高效的视觉定位系统是本文的关键问题。
1.2 设计方案
Eye-to-hand视觉系统中相机安装在一个固定的高度,以保证足够大的视野,在目前工业相机像素尺寸不高的情况下,Eye-to-hand视觉系统具有视野范围大、精度低的特点。Eye-in-hand视觉系统相机安装在机械臂末端,通常控制相机与目标物的距离以保证精度,且该视觉系统视野处在变化之中,不能保证目标一直在视场中,有时会存在丢失目标现象。因此Eye-in-hand视觉系统具有高精度、视野范围小的特点。因此,本文采用了结合2个视觉系统的方案[6-7],利用Eye-in-hand视觉系统高精度和Eye-to-hand视觉系统大视野的特点。
定位系统在工作时,当车辆进入指定位置,接收到开始信号后,Eye-to-hand视觉系统开始工作,如图1a所示,由于Eye-to-hand视觉系统的大视野特点,能够保证灌装车在相机的视野范围之内,对所得图像进行分析得到车辆位置以及装料口的位置,计算出来的位置精度低;引导Eye-in-hand视觉系统移动到相应的位置,如图1b所示,此时可以保证装料口在Eye-in-hand视觉系统相机视野范围内,再次拍摄图像,由于Eye-in-hand视觉系统的高精度特点,能够完成最终定位,其流程图如图2所示。
图1 现场图
图2 系统定位流程图
确定本文系统采用2种视觉系统结合的方法后,如何定位目标物体,并完成像素坐标向物理坐标的转换成为本系统的关键所在。
视觉定位图像处理获得目标的像素坐标,机械臂所能识别的是物理坐标,建立像素坐标与物理坐标的对应关系是两级视觉定位的关键问题。像素坐标的获得主要是利用图像处理技术,首先利用改进canny算子[8]对图像进行处理获得边缘轮廓,其次利用随机Hough变换[9]对轮廓处理找圆,最后利用先验知识对找到的圆进行过滤获得目标灌装口。采用该方法定位精度较高,且已通过实验验证,存在1~2个像素坐标的误差,由于本文主要研究对象为两级视觉系统的定位工作,在此不做过多说明。
定位过程分为相机标定和坐标转换2个部分。其中相机标定又分为相机的内部参数标定和外部参数标定。内部参数标定参考文献[10-11]。视觉系统中相机安装过程中确保相机的光轴中心垂直于地面,定位系统的实现主要利用图像处理获得的像素坐标结合相机标定获得参数,转换为最终的物理坐标。
(1) Eye-to-hand视觉坐标转换与标定。水泥灌装Eye-to-hand视觉系统中世界坐标系XwOwYw和相机图像坐标系XpOpYp的构造如图3a所示,因为Eye-to-hand视觉系统中相机固定,所以相机坐标系原点Op对应于世界坐标系中物理坐标固定为(X0,Y0),相机安装不能保证图像坐标系与世界坐标系完全平行,设夹角为∂,相机坐标系中每个像素点与世界坐标系中单位毫米对应的转换关系为rate_x、rate_y。对应于相机坐标系中一点p(x,y),转换到世界坐标系中的物理坐标P(X,Y),具有如下转换关系:
X=(xcos∂-ysinα)rate_x+X0,
(1)
由(1)式可知在标定过程中目标点坐标p(x,y)为已知量,故在Eye-to-hand视觉系统中需要标定X0、Y0、rate-x、rate-y、∂共5个参数。本文采用直接线性变换[12]的标定方法,对上述5个参数进行标定,即在上述坐标系统中采集图像坐标系中点p(x,y)与世界坐标系中点P(X,Y)明确对应关系的点作为已知量,构造方程组,利用最小二乘法得到最终的标定参数,由于共有5个未知参数,需至少采集5组样本数据,进行最终的方程求解。本文通过采集多组样本点,最终取平均值的方式,以提高标定参数的精度。
(2)Eye-in-hand视觉系统坐标转换与标定。水泥灌装中Eye-in-hand视觉系统中世界坐标系XwOwYw和摄像机图像坐标系XpOpYp的构造如图3b所示,因为Eye-in-hand视觉系统中相机随机械臂移动,故相机坐标系统中某一像素点(x0,y0)对应当前机械臂末端停止位置,机械臂末端与相机相对位置固定,因此(x0,y0)为固定值,停止位置(X1,Y1)为已知量;相机坐标系与图像坐标系的夹角为∂,相机坐标系选择∂角后与世界坐标系平行,可拆解为以下2个过程:① 旋转∂1角后,相机坐标系y轴与机械臂的小臂平行,∂1在相机安装位置决定,为一固定值;② 旋转∂2角后,相机坐标系的y轴与世界坐标系的y轴平行,完成旋转。
∂2可由机械臂当前的停止位置结合机械臂长度利用几何知识计算可得,在Eye-in-hand视觉系统中为一已知量,本文中对其计算过程不做说明。相机坐标系中每个像素点与世界坐标系中单位毫米对应的转换关系为rate_x,rate_y。对应于图像坐标系中一点p(x,y),转换到世界坐标系中的物理坐标P(X,Y),具有如下转换关系:
(2)
由(2)式可知在标定过程中目标点坐标p(x,y),机械臂停止位置(X1,Y1),偏转角∂2为已知量,故在Eye-in-hand视觉系统中需要标定x0、y0、rate_x、rate_y、∂1共5个参数。同样采用直接线性变换的标定方法,对上述5个参数进行标定,与Eye-to-hand视觉系统中方法相同,此处不再说明。
图3 视觉坐标示意图
灌装系统工作时,Eye-to-hand视觉系统利用图像处理获得像素坐标p(x,y),结合上文处理所得的标定参数对灌装口进行粗定位,移动机械臂到目标位置(X1,Y1),Eye-to-hand粗定位完成;Eye-in-hand视觉系统工作,图像处理获得目标的像素坐标p2(x,y),利用机械臂停止位置(X1,Y1),计算偏转角∂2,并结合标定参数计算目标像素点的物理坐标,移动机械臂完成定位。
采用本文视觉定位系统,在实验室环境下经过测试发现试验误差大于系统要求的精度,系统不能满足要求。设计实验并分析误差来源,实验所用工业相机的像素尺寸为656×492,机械臂移动的物理坐标x的范围为(-4 300,4 300),y坐标的范围为(0,1 800),Eye-to-hand视觉系统中相机高度为6 m,Eye-in-hand视觉系统中相机高度为2 m。精度要求为5 mm。
将目标物体放在给定物理坐标下,通过视觉定位,测得最终停靠位置与给定物理坐标的误差(欧氏距离,即出料口中心与水泥车装料口中心在水平方向上的距离),具体情况见表1所列。
表1 误差比较 mm
由表1数据可知,3种模式误差均大于实验所要求的误差精度。其中Eye-to-hand可以完成全自动灌装,但是由于相机安装高度过高,导致其误差远大于精度要求。优化前的结合模式(即Eye-to-hand与Eye-in-hand视觉系统均工作1次)与Eye-in-hand视觉系统的误差范围基本相同,其主要优势在于当待测物体不在Eye-in-hand视觉系统的视野范围内时,可以预先通过Eye-to-hand视觉系统粗定位,引导Eye-in-hand视觉系统到待测物体区域,再次定位;而单一的Eye-in-hand视觉系统在待测物体不在其视野范围内时,无法完成全自动灌装。在结合模式下,Eye-to-hand视觉系统粗定位后,引导Eye-in-hand视觉系统到达目标区域, Eye-in-hand视觉系统下的定位后误差大于实验精度要求的5 mm。本文从以下2个方面分析误差并提出解决方案。
(1) 机械误差。对于给定的物理坐标,由于齿轮间隙的存在,机械臂在运动到给定物理坐标处,会存在一定范围内的随机误差。这主要是由齿轮间隙造成的,齿轮间隙在机械臂初始运动和正反转时对精度影响较大,当机械臂朝一个方向移动时,齿轮间隙对精度的影响将逐渐减小。实验中将目标物体的中心置于给定物理坐标处,朝同一个方向运动2次,其误差结果如图4所示,由图4可知,第2次逼近误差明显小于第1次逼近误差,由此可知控制机械臂朝同一个方向运动多次,产生的机械误差逐渐减小。
(2) 相机畸变。在Eye-in-hand视觉系统中,待测物体偏离相机中心的距离越大,图像畸变越大,图像处理所得圆心的坐标与实际的坐标偏差越大。相机中心距离待测物体中心距离分别为15、10、5 mm时,所拍图像及其处理后所得目标物位置如图5所示,图中矩形边框突出处理后偏差。由实验可知相机中心与目标中心偏差越小,最终处理的畸变越小,找到的圆心坐标越准确。
据此本文提出了多次逼近迭代的优化方案,即Eye-in-hand视觉系统完成定位后,重新拍照分析图片中误差是否在允许范围之内,若不在,再次定位,重新移动机械臂。由上文的误差分析可知,机械臂始终朝一个方向的运动过程中,齿轮间隙对精度影响不断减小。
图4 机械误差实验结果
为确保机械臂始终朝一个方向运动,在未达到标准机械臂再次移动阶段,机械臂末端对应像素点与灌装口圆心对应像素点成一线段,是为了防止机械臂运动幅度过大导致机械臂末端移动超过灌装口圆心对应像素点。本文对机械臂移动采用不完全移动,即按当前计算得到的移动幅度的百分比运动机械臂,以确保不超过运动范围,导致再次运动时方向不变,避免机械臂反向移动产生的齿轮间隙误差。
图5 相机中心与目标中心偏移图像处理的畸变情况
综上所述,在逼近过程中机械臂移动由于机械误差的存在通过不改变移动方向,增加逼近次数,减小齿轮间隙误差对精度的影响;另外相机中心与待测物体的中心距离越来越近,使得畸变误差越来越小,因此采用逼近求解的方式能够有效地解决精度不足的情况。具体流程如图6所示。
图6 逼近迭代求优的过程
实验的配置环境为 2.93 GHz Intel I3 CPU,2.0 G内存,编程环境为Microsoft Visual Studio 2005,程序主框架采用C++编写,使用了opencv等函数库。实验所用工业相机的像素为656×492,其中标定参数如下:Eye-to-hand视觉系统中(X0,Y0)=(0,350 0);rate-x、rate-y分别为7.8、7.9;偏转角∂为7°;Eye-in-hand视觉系统中机械臂末端对应像素点(x0,y0)=(331,238),rate_x1、rate_y1分别为2.1、2.0,偏转角∂2为4°。 工业上水泥灌装车的灌装口如图7a所示,为一正圆;实验室采用模拟灌装口如图7b所示。
系统工作时,首先Eye-to-hand视觉系统开始工作,如图8a所示,获得较大的视野范围,精度低,计算出待测物的物理坐标;然后根据Eye-to-hand视觉系统获得的目标位置,引导Eye-in-hand视觉系统到目标位置,继续拍照分析,可得目标圆心与图片中心之间距离如图8b所示,通过计算可得此时的误差为15 mm;Eye-in-hand视觉系统继续工作,当移动到下一个位置拍照分析时,目标圆心与图片中心之间距离如图8c所示,计算此时的误差为8 mm;Eye-in-hand视觉系统继续工作移动到下一个位置拍照分析,目标圆心与图片中心之间距离如图8d所示,通过计算此时的误差为3 mm,达到标准,停止工作。对多个目标点进行定位,并统计结果,见表2所列。表2中3、4、5行中第2个括号表示在迭代过程中Eye-in-hand视觉系统中定位灌装口像素坐标的变换情况。
图7 灌装口示意图
图8 视觉定位系统工作流程
待定位物理坐标(1500,2800)(0,4300)(-1500,2800)(3700,2150)Eye⁃to⁃hand定位坐标(1515,2823)(18,4322)(-1475,2820)(3717,2173)Eye⁃in⁃hand第1次迭代(1510,2816)(324,245)(9,4313)(325,243)(-1482,2815)(322,246)(3711,2165)(324,244)Eye⁃in⁃hand第2次迭代(1508,2810)(326,242)(4,4308)(327,240)(-1490,2809)(325,241)(3705,2155)(328,240)Eye⁃in⁃hand最终定位(1502,2802)(332,239)(3,4302)(331,240)(-1498,2800)(330,238)(3701,2151)(331,238)最终误差/mm3420
本文提出了结合Eye-in-hand和Eye-to-hand 2种视觉系统的方法,避免了Eye-to-hand视觉系统中由于相机安装高度高导致的像素比精度不够,最终引起定位误差大的情况,同时也避免Eye-in-hand视觉系统中容易丢失目标的现象,导致无法定位或多次无用操作。本文方法利用Eye-to-hand视觉系统对目标进行粗略定位,保证目标物体位于Eye-in-hand视觉系统视野之中,进而利用Eye-in-hand视觉系统进行精确定位,并采用逼近迭代的方法优化最优解,以达到工业标准。本文方法针对当前机械臂自由度为2的情况,可以简单地处理最优路径的方法,但是随着工业的发展,可能会出现自由度为3、4或者更多的情况。根据目标位置并结合反向动力学[13],确定多自由度机械臂移动的最优路径,将是下一步的研究目标。
[1] 蔡鹤皋.机器人技术的发展与在制造业中的应用[J].机械制造与自动化,2004,33(1):6-7,10.
[2] 孙琦,罗志增.Eye-to-Hand机器人系统的平面工件识别研究[J].杭州电子科技大学学报,2010,30(1):46-49.
[3] MOHEBBI A,KESHMIRI M,XIE W F.An eye-in-hand stereo visual servoing for tracking and catching moving objects[C]//The 33rd Chinese Control Conference,CCC 2014.Washington,D.C.:IEEE Computer Society,2014:8570-8577.
[4] 曾俊,李德华.彩色图像SUSAN边缘检测方法[J].计算机工程与应用,2011,47(15):194-196.
[5] 张宇伟,王耀明,蒋慧钧.一种结合sobel算子和小波变换的图像边缘检测方法[J].计算机应用与软件,2007,24(4):133-134,161.
[6] ALSHALFAN K A.Eye-in-hand/eye-to-hand configuration for a WMRA control based on visual servoing[C]//2013 IEEE 11th International Workshop of Electronics,Control,Measurement,Signals and their application to Mechatronics (ECMSM).Washington,D.C.:IEEE Computer Society,2013:1-6.
[7] LUO R C,CHOU S C,YANG X Y,et al.Hybrid Eye-to-hand and Eye-in-hand visual servo system for parallel robot conveyor object tracking and fetching[C]//40th Annual Conference of the IEEE Industrial Electronics Society,IECON 2014.New York:IEEE,2014:2558-2563.
[8] 苏恒阳,袁先珍.一种改进的Canny的图像边缘检测算法[J].计算机仿真,2010,27(10):242-245.
[9] 周封,杨超,王晨光,等.基于随机Hough变换的复杂条件下圆检测与数目辨识[J].仪器仪表学报,2013,34(3):622-628.
[10] 鲁新国,王琰,杨大为.基于计算机视觉的线性摄相机标定技术研究[J].沈阳理工大学学报,2007,26(5):43-46.
[11] 谭启蒙,胡成威,高升.空间机械臂视觉相机内参标定技术研究[J].航天返回与遥感,2013,34(6):74-80.
[12] 陈卫东,尹红娟,朱奇光.改进直接线性标定的移动机器人视觉定位算法[J].小型微型计算机系统,2013,34(4):872-876.
[13] 刘鲁源,刘畅,王欣东.机器人反向动力学方程的并行计算[J].自动化学报,1994,20(6):687-693.
(责任编辑 闫杏丽)
Research on key technology of cement filling positioning system based on machine vision
LUO Yuetong, JIANG Yuqing
(School of Computer and Information, Hefei University of Technology, Hefei 230009, China)
In view of low speed and accuracy of the traditional industrial cement filling, a new visual positioning system is made based on the Eye-in-hand and Eye-to-hand visual systems, then a coordinate system is established to transform pixel coordinates to physical coordinates and a method of iterative approach is used to achieve a better result. The new visual system has the characteristics of big vision and high precision, and the method of iterative approach reduces the error from gear clearance and camera distortion, thus achieving a fast and accurate positioning.
cement filling; machine vision; automatic positioning; iterative approach
2015-12-15;
2016-03-14
国家自然科学基金资助项目(11305205;61370167;61305093);安徽省高等学校自然科学研究重点资助项目(KJ2016A751)
罗月童(1978-),男,安徽青阳人,博士,合肥工业大学教授,硕士生导师.
10.3969/j.issn.1003-5060.2017.01.006
TP399
A
1003-5060(2017)01-0031-06