刘志昌
(1.北京理工大学 计算机学院,北京 100081;2.珠海格力电器股份有限公司 装备动力技术研究院,广东 珠海 519070)
随着科技的发展,现在很多制造工业都在用高科技设备来进行生产活动,电子元器件插装与检测是3C电子制造行业比较关键的工序,目前标准形状的电子元器件采用通用的贴装机器进行贴装,但是IPM、IGBT、二极管、整流桥等异形电子元器件由于形态特殊与结构复杂,现阶段还是采用手工插装作业。随着电子制造业对产品质量要求和自动化产品需求越来越高,对异形插装的装配自动化及装配质量与效率等环节急迫需要进行智能化设计,对插装机器人的智能化感知、决策和执行能力提出更高要求,采用异型插件机器人+视觉(如图1所示)解决方案,替代制造业产线中的一线技术工人[1]。避免了人工插装存在的误插和误检问题,有效提高了插装的生产效率和稳定性[2],可替代人工,节省大量劳动力,实现自动化产线及自动化工厂作业。
图1 异形插件机器人视觉
其中,1工控机、2 PCB板、3上光源、4上相机、5工业机器人、6旋转机构、7异型电子模块、8下光源、9下相机、10运动控制器、11流水线。
机器视觉[3,4]是通过光学的装置和非接触的传感器自动地接收和处理一个真实物体的图像,以获得所需信息或用于控制机器人[5]运动的装置。机器视觉技术主要是代替人眼实现识别、定位、检测等功能,在异形插件视觉系统中,视觉通过固定仰视相机拍照定位引脚位置,轴二俯视相机定位PCB板焊接孔位置,通过视觉的两点对位工具计算出机器人坐标、机器人接收坐标将异型元器件准确插装到PCB板的焊接孔中,实现视觉检测、定位及坐标转换一系列视觉算法功能,实现异形插件机器人的自动运行[6]。
然而现在行业内的标准插件机主要是针对来料一致,插件位置固定,且只能适合单一产品、换型困难,而异形插件机虽可试用不同产品类型,但产品类型多、无法达到兼容的效果;本文提出了一种机器人视觉高精度定位补偿和检测算法,通过对图像进行预处理[7],采用几何模板匹配算法[8,9]、圆度拟合算法[10]对元器件与电路板进行精确定位,再对位置信息进行像素点拟合与坐标转换实现元器件缺陷检测与是否插装判断,实现SCARA机器人[11]抓取任意形状元器件进行插件操作,经过实验验证与产线测试,所提出的算法具有良好的稳定性与准确性。
该方案是基于模块式的开发方式,根据机器人异形元器件插装作业需求,算法采用自主研发的基于几何模板匹配算法、坐标系变换、图像边缘特征点提取、坐标转换、定位偏移矫正及缺陷检测算法模块,以算法速度、定位精度及缺陷检测准确率为设计要求,按照算法功能和模块为划分指导,高精度异形元器件插件视觉定位与检测算法设计流程如图2所示,算法整体由电子元器件插件定位、PCB板定位及针脚检测三部分组成。
图2 高精度定位与检测算法设计流程
算法具体步骤如下:
(1)机器人夹取元器件到下相机拍照位置,工业相机进行拍照采集针脚图像,对图像进行灰度化处理并进行滤波操作,提高图像质量;
(2)将图像进行二值化操作,并选取最佳图像做为模板ROI绘制,做模板掩膜处理,保存模板图像信息,再采集图像进行模板匹配定位,输出元器件位置信息与旋转角度信息;
(3)对坐标系进行变换和特征点提取操作,提取针脚和针孔的特征点,对特征点进行像素坐标点提取,确定像素中心点位置;
(4)图像像素坐标与机器人坐标转换;
(5)采用kabsch方法计算偏移量,精确定位圆孔与针脚位置坐标;
(6)对照注册位置映射关系,将针脚点与圆孔位置一一映射,根据设置的参数,确定针脚是否满足插装。
几何模板匹配定位算法是在图像定位算法中比较通用的算法之一,该算法具有精度高和鲁棒性强等优点,被广泛的应用于工业领域目标定位与检测解决方案;该算法采用图像边缘梯度信息对需要定位物体在图片中进行匹配[12],并结合金字塔自动分层及搜索策略,实现了快速稳定的模板匹配定位模块功能。
几何模板匹配定位算法流程是选择一张边缘较好的图像作为模板图像,后续输入的图像作为目标图像,将模板图像与目标图像经过相同的图像预处理过程,对图像进行去噪和特定区域选择,然后经过高斯金字塔分层,在金字塔每层利用曲面拟合的方法进行边缘计算,得出图像的边缘梯度信息后,然后对图像进行阈值判断和极大值抑制得到图像特定区域的边缘位置,在边缘位置处对像素梯度值进行曲面拟合,模板和目标图像的边缘梯度值作为匹配信息,经过边缘检测算法后,进行相似性度量计算,得出匹配算法的相似程度。
在异形插件视觉定位解决方案中,采用模板匹配方法对针脚进行定位与识别,其效果如图3所示,存在模板无法匹配到目标这种情况,该问题是由于部分异形元器件在插件操作前,需要在折弯机中对异形元器件引脚进行折弯处理,处理后的针脚裁剪不一致,会导致针脚存在-5~5度之间的偏差,造成针脚一致性差以及针脚轮廓信息量少问题,因此采用该定位算法对Mark点进行模板匹配时结果不稳定。
图3 模板匹配效果
在上述模板匹配算法中,针对定位效果不佳情况下,基于模板匹配边缘梯度信息查找的方法,开发了一款适合异形插件的针脚定位和检测算法,该算法通过设置针脚区域作为模板进行模板匹配粗定位,对标准图像针脚位置进行手动框选,得到注册图像针脚的中心点,利用Blob连通域分析方法,在ROI区域中检测定位当前针脚点,获取针脚像素坐标转移至机器人坐标,计算其与注册标准位置的偏移量,并将PCB电路板点集映射至针脚区域,检测针脚是否合格。该算法涉及到图像自适应阈值分割获取针脚区域、优化提取针脚中心坐标、RANSAC直线拟合[13,14]、计算模块中心位置与标准位置偏移量以及针脚检测等算法,该算法对针脚中心点提取与拟合效果如图4所示。
图4 针脚提取效果
算法实现流程首先对针脚图像进行检测区域框选,然后对框选区域内单个针脚进行框选,针对单个针脚点的灰度进行KMEANS灰度聚类[15,16],并找出背景灰度值,设置检测区域灰度阈值,根据阈值初步对针脚进行检测,然后根据初步检测结果,再次精细化KMEANS聚类,优化阈值,将合格点的像素坐标点转化为机器人坐标,然后对各个针脚进行RANSAC直线拟合,计算拟合直线针脚点方向和中心点,将检测图像中心点与注册图像中心点进行偏移量计算,输出映射矩阵检测出针脚点与注册位置进行对比,判断检测是否合格。
1.1.1 KMEANS灰度聚类算法
由于元器件针脚平面存在不平整情况,在图像采集时效果较差,形成四周明亮中间暗淡的情况。如果采用预设值进行灰度阈值处理,则造成针脚中间灰度信息损失,此为针脚阈值分割技术难点。
将针脚灰度图转为灰度立体图,可知针脚中间区域和背景灰度值存在一定差异,如何准确寻找出背景和针脚的准确分割值?基于目标灰度值分布特点,采用KMEANS灰度聚类算法分割目标物体,即根据物体属性相似,对应的灰度信息也相似的思想,对图像进行区域划分,并进行相似属性区域合并,最终前景与背景能够实现准确分离。
KMEANS是非常经典的聚类算法,至今也还保留着较强的生命力,图像处理中经常用到KMEANS算法,或者其改进算法进行图像分割操作,在数据挖掘中KMEANS经常用来做数据预处理。采用KMEANS计算最佳分割阈值,对针脚图像进行二值化阈值,实现针脚区域完整分割。
1.1.2 RANSAC随机一致性采样直线拟合原理
如图5所示,如对4针脚元器件提取针脚中心坐标,其坐标排布成曲线趋势,然而元器件4个针脚应分布在一直线附近,并能拟合出一条准确的直线,来表征模块的整体方向,最后根据模块拟合直线的方向,计算该模块与注册标准位置模块之间的整体偏移位置与角度。
图5 针脚坐标分布
因此如何对拟合出一条准确的直线,是针脚定位研究的重点。基于坐标点分布情况,采用准确性和鲁棒性较高的RANSAC直线拟合方法,以提高针脚整体定位精度和鲁棒性。
RANSAC算法是通过反复选择针脚点位置数据中的一组随机子集信息来达成目标,被选取的数据点子集被假设为拟合直线局内点,其验证方法如下:
(1)设置针脚点信息一组模型适用于假设的局内点,所有的未知参数都需要从假设的这个局内点进行计算得出。
(2)用(1)中得到的针脚点模型去测试所有的其它数据,如果这个针脚点适用于所估计的模型,认为此针脚点也是局内点。
(3)如果有足够多的针脚点被归类为假设的一组局内点,那么所估计的针脚点信息模型就足够合理。
(4)用所有假设的针脚点信息去重新估计模型。
(5)最后,通过估计针脚点信息与模型的错误率来进行评估模型。
这个验证过程被重复执行与迭代,每次所产生的新模型把针脚点信息太少而舍弃掉,如果针脚点信息所在的模型比现有的模型更好,则进行选择替代。如图6所示,根据RANSAC直线拟合算法效果,从效果图上来看拟合直线定位更加准确,并经过实际元器件插装效果验证,对插装精度能够有效进行改善,符合算法设计要求。
图6 针脚直线拟合效果
1.1.3 偏移量计算
其中包括计算模板匹配后的机器人偏移量、Kabsch计算机器人偏移量和直线拟合计算机器人偏移量。其中计算模板匹配后的机器人偏移量需要事先设置注册时模板匹配到的位置和机器人坐标;Kabsch计算机器人偏移量和直线拟合计算机器人偏移量,需要事先设置注册时的点集和机器人坐标。最后通过GetRobotOffset获取机器人的偏移量(偏移量计算如图7所示)。
图7 偏移量计算
注册机器人的插装点为标准位置O,图像的标准位置对应到机器人的工具坐标系的C点。当机器人再次抓取物料在A点进行视觉定位后,图像的定位得到物料相对图像标准位置的偏移量角度为θ,物料在机器人工具坐标系的坐标为点A(x1,y1),补偿值的计算方式如下:
(1)A绕O旋转θ角度得到B(x,y)
x=x1×cosθ+y1×sinθy=-x1×sinθ+y1×cosθ
(2)计算B点到C点的偏移量,即机器人需要补偿的偏移量
Delta_x=x-x0Delta_y=x-y0
PCB焊盘区域的定位功能与针脚定位算法相同,首先设通过交互界面绘制一个矩形区域,矩形区域的具有明显特征的边缘区域作为模板查找区域,将该区域焊盘孔圆形的区域信息保存,即得到模板匹配的焊盘孔模板图像(如图8(a)所示)和焊盘孔的中心点边缘信息(如图8(b)所示);将输入的目标图像与模板图像进行相似性度量对比,得到目标图像中焊盘孔的中心点信息,再利用坐标变换算法将焊盘孔中心点信息变换到当前图像的位置处,得到焊盘孔在整个图像中的位置坐标(如图8(c)所示);最后将模板匹配的结果和焊盘孔的中心点通过手眼标定方法转到机器人坐标系下,得到在机器人坐标系下的焊盘孔位置信息的补偿量。
图8 模板图像
由于生产物料元器件模块引脚之间存在一致性差的问题,需要在模块插装前对元器件针脚质量进行视觉检测,以保证高质量元器件插装;可根据输入模块所有针脚间距参数方案,通过检测针脚间距相关性设计方法,可判断元器件针脚是否合格。
以上方案对于2、3、4针脚数目较少的元器件插装检测可行,然而对于像IPM模块存在数十个针脚且针脚间距不同等情况,若采用输入参数的方案,需要输入参数多,操作复杂,因此基于异形元器件针脚插装映射思路,提出了一种针脚映射检测的方法,该方法具有参数设置少和鲁棒性强的特点。
该检测方法原理是将PCB板焊盘孔和元器件针脚映射变换过程采用注册标准位置转换与单一性转换矩阵计算方法;假设我们能定位到PCB板和针脚的任意位置坐标,首先注册PCB板和针脚模块的标准位置坐标,然后建立两者PCB板孔坐标和针脚注册标准位置坐标之间的映射关系。对于任意位置的PCB板和针脚,分别映射到其注册标准位置,再根据预先建立的映射矩阵H,PCB板映射到针脚位置,最后判断针脚点是否在新孔洞内,即完成了对针脚是否适合插装检测。
工业相机与SCARA机器人的手部末端构成手眼视觉系统,根据相机与机器人相互位置的不同,手眼视觉系统分为眼在手上系统和眼在手外系统。眼在手上系统的相机安装在机器人手部关节末端(end-effector),机器人工作过程中相机随机器人末端一起移动;眼在手外系统的相机安装在机器人本体外的固定位置,在机器人工作工程中不随机器人末端一起运动[17]。
所谓手眼系统,就是人眼看到一个东西时候要让手去抓取,就需要大脑知道眼和手的相对坐标关系。大脑比作B,眼睛比作A,手比作C,如果A和B的关系知道,B和C的关系知道,那么C和A的关系就知道了,也就是手和眼的坐标即可计算之间的关系。
进行手眼标定时,操作机器人夹持标定靶,进行姿势变换采集数据,其姿势分解为旋转和平移,因此坐标变换时仅需要考虑平移和旋转动作,其过程如图9所示。
图9 标定变换过程
其坐标点平移和旋转变换过程,可由如下公式表示
利用SCARA四轴机器人对异形插件视觉算法进行识别定位与测试验证,实验平台如图10所示,其中该平台中的视觉系统处理器是Intel i3-8100,内存为16 G,可扩展的多网口模块,与机器人和相机进行通信处理数据;机器人实验平台由小型的光学平台、工业相机、SCARA机器人及光源组成,光学平台主要是固定相机与光源,将电路板和元器件进行打光采集图像,得到最佳光源照射角度和图像最佳信息,相机分为上相机和下相机,上相机主要采集电路板图像,下相机主要采集元器件针脚图像,电路板下面光源主要是将电路板孔打亮,获取清晰的目标边缘信息,下相机上的环形光源是将电子元器件针脚位置打亮,用于对针脚位置中心点进行定位;SCARA机器人是用于根据视觉拍摄图像的位置信息进行元器件定位,将元器件插装到电路板上,作为整个动作的执行者,而相机作为眼睛指导机器人进行插装,整体构成了高精度异形元器件插件视觉定位验证平台。
图10 实验平台
在测试过程中,机器人工作流程如下:通过手动发送触发信息,机器人接收到信息执行抓取元器件动作,移动到下相机拍照处,对元器件针脚图像进行拍照,提取元器件针脚点像素点信息,对该点进行定位与像素中心点查找,再通过对中心点拟合完成针脚点集信息计算;与此同时,系统中的上相机对需要定位的电路板进行拍照,将拍照图像传入视觉系统中,对图像进行焊盘孔进行粗定位和ROI区域进行提取,将ROI区域进行像素点提取并对中心点集进行查找;将电路板和元器件点集信息进行对比与拟合,计算出是否适合插装,然后将检测结果是否适合插装反馈给机器人,若不适合插装进行抛料处理,若适合插装,则给出插装位置信息,机器人根据插装信息进行插装动作。
在控制器生产车间中异形插件机器人作业光环境受到外界干扰比较大,比如车间的生产照明灯、环境光及产线上的各种光源等,为了提高插件算法的精度和稳定性,实验室测试采用针脚检测光源和面光源对针脚与PCB焊盘孔进行打光,通过该打光方案有效的提高了针脚的前景和背景对比度,背光源也能够较好采集焊盘孔边缘的信息,有利于对图像进行边缘查找与阈值设定,能够达到较高的定位精度与检测准确率。
实验分别采用2、3、4针脚元器件进行插装测试,一部分是元器件针脚的定位结果测试,结果见下文,将机器人注册标准位置与实测物理坐标的距离作为定位误差,包括X方向、Y方向及旋转角度误差;另一部分是将PCB板定位测试;采用机器人夹持工件,在3×3 mm,正负1度的范围内随机移动,然后触发相机,进行图像采集,并保存对应的机器人坐标。然后利用程序读图及对应的坐标,与算法得到的定位结果进行对比,用于判断算法的精度。
经过对3个模块的测试数据结果分析,在实验室环境下,针脚定位、PCB板定位及针脚检测算法能够很好实现物料定位与检测功能,并且定位误差在0.1 mm以内,该算法效果能够很好地完成元器件针脚定位与检测功能任务,相对于传统的处理方法,本算法能够较好提高异形插件视觉系统的准确性和鲁棒性,结果也验证了算法设计的合理性和有效性,能够满足异形元器件插装的精度要求。
分别采用了2、3、4针脚模块进行测试,测试结果见表1。
表1 4针脚PIN测试结果
本文研究了高精度异形插件视觉定位与检测的关键技术,提出了图像模板匹配、坐标系变换、针脚点和针孔点提取、偏移量计算及针脚检测等算法,从原理上对针脚点和焊盘孔进行点集查找与计算,通过标准位置与偏移量计算方法,从算法原理上提高了异形插件系统的定位精度与检测准确性,并通过在机器人异形插件平台上进行了实验验证,能够实现较高精度的异形元器件针脚与电路板焊盘孔定位与检测,算法具有良好的稳定性与鲁棒性,并通过不同数据验证与分析验证了本文算法的有效性和准确性。
本研究算法是结合SCARA机器人进行元器件插件实现与应用开发,在后续的工作中,还需要从两方面优化该算法,一个是从算法适用性方面开展研究,对现有算法开展通用化与模块化设计工作,推广到自动化通用平台中;另一个是从算法精度与速度方面进行优化,对底层算法各个模块进行分析,将精度与速度影响较大的部分进行研究,如金字塔分层、并行处理机制等,使该算法在行业中具有很好的可复制性与可推广性。