马丽雅,吴自然,吴桂初
(温州大学 数理与电子信息工程学院,温州 325000)
为了减少工人在工业自动化生产流水线上的重复劳动,越来越多的工业机器人加入到工业生产的过程中来。引入机器视觉技术使得工业机器人朝着更加智能化和柔性化的方向发展,极大的提高了生产效率。当前用于自动生产线上的工业机器人大多都是利用离线编程的方式来使机器人完成动作,虽然这种方式可以提高工业自动化的水平,然而却没有达到人们所期望的智能化工业生产。为了能够实现智能化的自动包装生产,工业机器人必须要知道在传送带上的待包装工件的实时位置信息,因此需要将图像传感设备在安装在工业机器人,从而可以获取外部图像信息,使其增强自适应性来满足包装或分拣种类众多工件的要求[1]。柔性化制造要根据包装纸对象尺寸变化来移动相机的位置,所以需要在线重新标定。因此和传统的机器人分拣和包装作业相比较,使用机器视觉的工业机器人对于目标物体的识别和定位有着极其重要的意义[2]。
本文以纸盒为抓取对象,然后利用工业机器人把纸盒放置在包装纸上,通过包装纸上的胶水粘合从而完成包装,当前制造业要求包装纸和纸盒之间的误差仅有几十微米,所以纸盒定位准确对于包装来讲十分重要。机器视觉技术的研究在国外已经从实验室阶段走向了成熟,且广泛应用于实际生产生活中,例如ABB公司的IRB340工业机器人在Flex Picker视觉系统的引导下,可以在传送带上抓取工件并放到预先指定的地方[3]。但是在实际应用中一直存在着些还未解决的问题,比如在复杂的生产环境下,视觉系统容易受到光照和粉尘等因素的影响,使工业相机在识别工件时的识别算法的普适性和实效性受到一定的影响[4]。近些年来,我国工业机器人取得了很大的进展,例如天津大学黄田教授发明了Diamond机构的平面Delta机构[5]。李渊等人提出了基于机器视觉的纸盒包装定位方法,以区域中心为特征点确定感兴趣区域,综合中值滤波Canny算子、总体最小二乘法等方法检测直线,计算修正位移和角度,克服包装过程中光电跟踪定位不准确的问题[6]。
系统原理图如图1所示,系统工作流程为:摄像机固定在工作台上方,包装纸从传送带的下侧进入摄像机视觉,通过图像处理算法找到包装纸的角点并判断是否为待抓取纸盒,如果确定为待抓取纸盒,则机械臂使用吸盘,将纸盒运送到包装纸的位置。包装纸主视图如图2所示,P0点为包装纸中心点,P1和P2点为包装纸的角点,利用这两个角点可计算出包装纸的中心点,从而利用机械臂将纸盒放在包装纸上。
图1 系统原理图
图2 包装纸主视图
1)相机:考虑到目标尺寸大小约为55mm×40mm,其定位精度不高于0.025mm/像素,可以计算出所需的相机靶面短边的像素为40/0.025=1600,长边的像素为55/0.025=2200。最终选用的是500万像素的德国Basler Aca2500-14gm工业相机,其分辨率为2592×1944。在选用此型号的相机后,测得定位精度可达到0.0218mm/像素,实际目标尺寸为55mm×42mm。该相机的特点是分辨率高,精度高,图像质量稳定、传输能力高。高分辨率可以保证被检测产品始终保持在相机视野范围之内。使用千兆以太网与计算机通讯,相机安装在传送带正 上方。
2)镜头:目标尺寸大小为55mm×40mm,又根据相机到物体的距离大于800mm,可以计算出放大倍率α与镜头焦距f,图像的高度为Hi,目标高度为Ho,目标与镜头的距离为Do,放大倍率 =Hi/Ho=4.3 m m/(1944×0.025)≈0.088。镜头焦距f=Do/(1+1/α)≈65。通过查询对应的镜头参数与选型原则,选用的是型号为HF75SA-1的长焦镜头,该镜头焦距75mm,光圈F1.8,具有低畸变、抗震性能好等特点。
3)光源:使用的是高均匀性条形白色照明光源,特点为具有更高的均匀性,更高的亮度。起照明作用的光源对机器视觉系统十分的重要,是影响机器视觉系统的至关重要的因素[7]。
4)机器人:采用Epson的LS6-602S型SCARA机器人,该机器人具有4个自由度,SCARA机器人具有结构紧凑、工作空间大、操作灵活等优点外同时还具有较高的重复定位精度和较好的性价比。末端重复定位精度达到0.017mm,编程方便,适合用于生产线上抓取作业。
5)末端执行器:末端执行器采用吸盘、真空发生器、电磁阀、气管和气泵。
6)传送带及包装对象:由伺服电机进行驱动,包装对象为纸盒。
(4)赤佬顶锑多金属矿田已知矿床(点)密集,且分布范围广,矿床类型均为锑、汞等低温热液矿床,勘查深度较浅。其中最具规模的赤佬顶锑矿床的主矿体赋矿标高为409~134m,目前最深开采标高至+170m左右。推测该矿田受隐伏岩体和构造的控制,区域重、磁异常规模大(数十平方千米),电磁法剖面反映隐伏岩体埋藏深(-600m标高以下),显示该地带找矿空间广阔,具备寻找中大型中-高温热液矿床的条件,是本区最具找矿前景的区域,有望成为粤北地区又一重要的多金属矿集区。
2.2.1 摄像机标定
标定板为两个正方形中心各自有一个圆,利用其圆心点来进行标定。使用该类的模板的有点是,由于圆心坐标是通过霍夫变换累加计算,可以消除实际工作中灰尘颗粒的干扰。因此这种标定版的鲁棒性好,不易受到干扰,标定板如图3所示。标定的步骤为:首先移动工业机器人到达标定板中的目标位置且多次移动机械手的位置,获得目标点在机器人坐标系中的位置。接着第二步是利用相机拍照成像,对图像分析处理,获得目标点在相机坐标系中的位置。然后利用相机和机器人坐标系中的目标点位置,计算出从相机坐标系到机器人坐标系的转换参数。最后一步是利用标定中获得的参数,对相机中给定的像素点坐标机器人坐标系中的坐标,并发送给工业机器人,从而工业机器人能够移动机械臂到达指定位置。
图3 标定板
摄像机标定的目的是为了求解模型的参数,然而参数是相对于模型的,所以需要确定摄像机的成像模型[8]摄像机标定采用线性摄像机模型标定,使用线性方程来求解,简易且快速,在计算机视觉领域是研究的热点之一[9]。摄像机标的关键是实现世界坐标系(xw,yw,zw)坐坐标系(u,v)之间的转换。使机器人坐标系中的点和图像平面中的点一一对应。各个坐标系的关系如图3所示。因为摄像机是固定在传送带的正上方,所以不用考虑视觉系统绕x轴和y轴的旋转,这里只需要考虑绕z轴的旋转。为了得到图4中与机器人坐标系平行的图像坐标系,需要进行坐标转化得到图像坐标(u,v),如图5所示,转换关系为:摄像机坐标系(x,y,z)中的物点P在图像物理坐标系(X,Y,Z)中像点Pu的坐标关系下:
f为焦距,即图像平面到投影中心的距离。
图像物理坐标系与图像像素坐标系的关系如下:
dx,dy分别为一个像素在X与Y方向上的物理尺寸,u0,v0是图像中心(光轴与图像平面的交点)坐标。使用齐次坐标表示为:
sx为X方向上的采样频率,sx=1/dx,即单位长度的像素个数,sy为Y方向上的采样频率,sy=1/dy。
式(5)中,矩阵T=[txtytz]T是世界坐标系的原点在摄像机坐标系中的坐标,矩阵R是正交旋转矩阵,其矩阵的元素满足:
摄像机外部参数共有六个,其决定了摄像机光轴在世界坐标系中的空间位置,在正交旋转矩阵中有3个独立变量,再加上tx,ty,tz。
联立上述式(1)、式(3)、式(4),可以得到如下像素坐标系和世界坐标系的关系:
为使计算方便,建立机器人原点及坐标系与世界坐标系的原点及坐标系重合。利用标定板的两个圆心点在机器人坐标系中的坐标与图像坐标系中的坐标,将上述参数计算出来,标定过程完成。
图4 标定系统坐标系
图5 坐标转换图
2.2.2 霍夫变换
Hough变换检测直线的基本思想是点-线的对偶性[10]。在极坐标系中画出所有通过点(x0,y0)的直线,会得到一条正弦曲线[11]。对同一条直线上的不同点画在极坐标系中,得到的曲线将会在θ-ρ平面相交,这就说明了一条直线能够通过在θ-ρ平面中相交的曲线个数来检测,相交的曲线个数越多,说明这个直线由越多的点组成,可以通过设置曲线的阈值来判别是否检测到直 线[12]。本实验的视觉检测对象为包装纸,放置在传送带上的包装纸的角点特征不明显(如图6所示),这是由于在生产包装纸的过程中造成,所以需要利用霍夫变换检测到的直线之间的交点来找到包装纸真正的角点(如图7所示)。
图6 带检测图
图7 直线检测角点图
图8 软件流程图
本系统是使用C#在Visual Studio 2015环境中编写,使用WPF设计软件界面,方便工人操作,同时作为一个开发框架,方便未来识别新的对象,实验新的算法。寻找图像角点的动态链接库使用的编程语言为C++。软件实现流程图如图8所示,首先启动机器人与PC通信和打开相机拍照,然后调用图像处理模块和坐标转换函数得到包装纸的角点坐标,工业机器人接受到坐标后,在纸盒存放区域吸取纸盒,再放置到包装纸上。重复上述过程实现生产线中的自动包装。经过软硬件调试,本实验系统顺利的完成了“识别包装纸点-抓取纸盒-放置纸盒”的过程。实现工业机器人相应的动作之前,需要在工业机器人与视觉处理之间建立相应的通信接口,通信接口有Socket通信、调用视觉处理函数。基于Windows系统搭建了相关设备之间的通讯联系,客户端是工业机器人控制器,服务端是PC机,利用Socket通信实现服务端与客户端之间的通讯。本文采用的是将视觉处理程序封装为动态链接库,在相机采集图像的程序中调用库函数的方法。
由于现场采集环境伴随着光照不均、背景干扰等影响,因此采集图片时常会因为各种因素使得效果不理想,导致图像处理环节的质量下降。根据所获图像的特点进行图像预处理,降低各种因素的干扰带来的影响,以便于后期包装纸角点的提取[13]。首先判断采集到的图片(如图9(a)所示)是否为单通道,若是,则不需灰度化,否则先对图像进行灰度化。考虑到图像在采集过程中可能会受到外界的影响,所以要对图像进行滤波处理来减少这些噪音对图像质量的影响[14],然后再通过二值化转化为黑白图像,二值化时采用的是基于灰度直方图的自动阈值选择方法[15]。图像的数据经过二值化处理后大大减少,更加凸显包装纸角点区域的边缘,如图9(b)所示。接下来进行边缘提取,得到图像的边缘图,如图9(c)所示。特征识别和提取是角点定位的关键步骤,提取的特征是都合理将会对后续结果又重要的影响。边缘提取的方法采用的是Canny算子提取边缘[15],Canny算子使用高斯函数对图像进行平滑处理,通过搜寻图像梯度的局部极大值来确定目标的边缘。并且Canny算子不易受噪声的干扰,适用于不同的场合来检测到弱边缘且边缘连续性较好。如图9(c)所示。由于我们只需得到角点坐标,因此可以提取感兴趣区域即可,即ROI区域。接着在利用霍夫变化提取直线,利用直线的交点从而找到角点,如图9(d)所示。
图9 图像的分析处理示意图
本文中所述的目标对象是包装纸,在对包装纸定位的过程中,首先需要确定图像坐标系的偏转角度,利用机器人末端执行器与相机,分别找到标定板(如图3所示)中两个正方形的8个顶点在机器人坐标系中的坐标与图像坐标系的坐标,计算出正方形内圆的圆心在机器人坐标系中的坐标M1和M2,并利用霍夫变换计算出在图像坐标系中的坐标C1和C2,即可计算相机偏移角度θ,接着利用相机采集包装纸的图像,利用霍夫变换算法来寻找包装纸的角点坐标Co,再利用式(1)~式(7)将图像坐标转化为机器人坐标系下的坐标Mo。最后机械臂使用吸盘将纸盒放置在相机找到的位置。如图10所示为识别与定位的流程图。
图10 识别与定位流程图
在对包装纸定位的过程中,首先可计算出M1(48.789,317.625)、M2(28.538,296.676)、C1(929,1428)、C2(1900,501),相机偏移角度为θ=2.35°,接着利用相机采集包装纸的图像,利用霍夫变换算法来寻找包装纸的角点坐标Co(666,822),再利用式(1)~式(7)将图像坐标转化为机器人坐标系下的坐标Mo(53.99,304.323)。最后机械臂使用吸盘将纸盒放置在相机找到的位置。
为了验证系统的稳定性与准确性,进行了10次实验。表1为视觉定位结果与机器人末端实际位置对比,本实验取得了预期的效果。坐标(x,y,z)中x表示机械臂末端在机器人坐标系中X轴分量,y表示机械臂末端在机器人坐标系中Y轴分量,z表示机器人末端装置端相对原始位置下降的距离。可以计算10组数据中视觉定位坐标与实际机器人末端坐标之间的欧式距离ρ作为误差,十组数据的误差的均值为0.031。实验结果表明该系统的测量误差均在企业要求的0.05mm范围之内,很好的满足了工业应用的要求。
根据实验结果可以看出,在图像的分析处理阶段,图像的角点在寻找过程中难以确定,所以最后选择了活霍夫直线来检测,可以使实验结果更加合理。本文基于机器视觉的包装纸盒定位抓取系统进行了研究,并实验验证了本系统的可靠性,解决了包装纸盒自动包装的问题。实验证明,该系统具有较高的定位精度,提高了生产效率和系统柔性,满足工业生产的要求。基于机器视觉的机器人的高效作业替代了繁重的体力劳动,提高了自动化水平和作业质量,机器人自动分拣将会越来越广泛的应用于生产领域。
表1 视觉定位结果与机器人末端实际位置对比