王闯闯,何智成,成艾国
(湖南大学 汽车车身先进设计制造国家重点试验室,长沙 410082)
汽车生产制造过程中,传统的汽车焊点质量检测方法是人工抽检,即手持超声波探伤仪对焊点进行检测,这种方法存在检测效率低,易受人为因素干扰,不能覆盖所有关键焊点等问题,严重影响汽车整车质量。针对上述问题,急需开发一套自动检测焊点质量系统。本研究利用超声波探伤仪设计了一套自动检测焊点系统,该系统是在机器人末端执行器处安装超声波探头,通过机器人驱动探头到达焊点正上方,使探头前端水膜恰好垂直接触焊点表面时采集回波信号实现对焊点质量的识别。但由于探头检测焊点质量时对位置精度要求较高,自动化检测又存在滚床磨损、车身尺寸制造误差以及车间环境干扰等因素,导致焊点的定位精度无法保证,不能有效实现车身焊点的自动化检测。因此,本研究的关键是如何精确获取汽车焊点的位姿。
为了获得目标物体精确的位置与姿态,国内外学者进行了大量的研究。何庆稀等[1]提出了一种基于末端位姿闭环反馈的机器人精度补偿方法,对工业机器人末端的位姿进行修正,提高绝对定位精度。解则晓等[2]提出了一种基于线结构光视觉引导的机器人定位系统,实现了工业机器人对随机位姿目标对象的三维定位。SCHMIDT等[3]利用eye-to-hand和eye-in-hand模块先后进行全局定位和局部定位,从而实现柔性机器人系统中工件的自动定位。路清彦等[4]通过采用典型的几何图案测试机器人系统的定位误差,得出不同的图案会产生不同的定位误差。尹湘云等[5]通过建立基于支持向量机回归的误差校正模型,对机器人末端在同一平面上的定位误差进行校正,从而提高工业机器人的平面定位精度。
针对汽车焊点的实际检测工况,本研究将影响定位精度的因素分为两类,一类是目标物体的位置变化,另一类是控制系统本身的非线性、强耦合性以及周围复杂环境的扰动。针对上述误差来源,提出了一种基于视觉引导和支持向量机回归的焊点精确定位方法。首先利用机器视觉系统高精度、非接触等特点实现机器人的实时纠偏,完成焊点的初步定位。然后利用基于智能计算方法所具有的非线性学习能力来对视觉引导后的机器人位置进行误差补偿,实现精确定位,考虑到响应时间和所需样本数量,选择支持小样本理论的支持向量机回归(Support Vector Machine Regression,SVR)来构建控制系统的误差补偿模型。最后搭建了一套完整的现场试验平台,验证该定位方法的有效性。
超声波检测焊点时的理想位置是探头轴线与焊点中心平面的法线恰好重合,如图1所示。
图1 超声波探头理想位置
本研究通过试验获取探头检测白车身关键区域焊点的位置精度需求(即探头完成焊点质量识别所允许的最大位置误差范围为x,y≤0.6 mm,z≤0.4 mm),见表1。
表1 探头的位置精度需求 mm
由上述可知,检测探头的位置精度需求较高,再加上夹具磨损和车身尺寸制造误差均会导致焊点位置偏离示教点,因此必须对示教好的机器人进行实时纠偏。本研究设计了一套点激光测距仪-单目摄像机的三维定位系统。将摄像机C和激光测距仪D固定连接在一起,并使激光测距仪测距方向和摄像机光轴方向基本一致,如图2所示。S为激光测距仪光束打在焊点附近的光斑,M为出光点,MS即激光测距仪实际测量长度。激光测距仪D作为一维数据采集系统,可以提高机器视觉系统沿光轴方向的定位精度。
摄像机的标定是实现从二维图像信息到三维环境的桥梁,在机器人执行任务之前,利用已知的标定参照物对所用摄像机模型的内外参数进行计算。
P(Xc,Yc,Zc)是空间任意一点,Oc XcYcZc是摄像机坐标系,Oe XeYeZe是机器人的机械接口坐标系,Ow XwYwZw是机器人的世界坐标系,如图2所示。
图2 机器人视觉坐标映射关系模型
目标点P在摄像机图像平面的投影坐标为(u,v),在机器人世界坐标系下的坐标为P(xw,yw,zw),齐次变换为:
式中:k为比例因子;ax,ay,u0,v0为摄像机内部参数;R和T为摄像机外部参数;H为单应性矩阵。
利用张氏标定算法[6]求解出单应性矩阵H,为减小标定算法引入的误差,以及机器人的绝对定位误差与重复定位误差,标定时任意抽取其中的9个点,计算3次,求取平均值。
机器视觉定位控制策略采用基于图像的视觉伺服控制[7-8],利用点激光测距仪一方面是为获取焊点的高度信息,另一方面是为保证单目摄像机在相同高度下对焊点进行拍照处理,尽可能地减小图像处理的误差,然后计算当前焊点与示教点的坐标偏差值(Δx,Δy,Δz) 。
前期工作需要利用机器人示教一台白车身上所有关键焊点的运动轨迹,包含激光测距初始点S1,摄像机拍照初始点S2,探头检测点S3;然后在检测下一台白车身时根据机器视觉定位流程实时纠正示教轨迹,定位流程如图3所示。
图3 定位流程图
机器视觉具体定位流程如下:(1)白车身进入待检工位,机器人根据示教程序,运动至激光测距初始点S1。(2)激光测距仪工作,获取当前焊点相对示教焊点的高度偏差Δz。(3)机器人继续运动至相机拍照初始点S2,然后根据上位机传输的 Δz,调整末端执行器距焊点的高度,保证摄像机在焊点同一物距下拍照。(4)摄像机工作,计算当前焊点所在平面的坐标偏差值(Δx,Δy)。(5)机器人继续运动至探头检测点S3,根据上位机传输的(Δx,Δy),纠正机器人到达当前焊点的期望位置。
按照上述机器视觉定位流程,基于C#编写汽车焊点定位软件,图像处理结果如图4所示。
图4 焊点图像处理
机器人视觉定位过程中存在较大误差,如标定过程中引入的噪声干扰、车间生产线环境存在严重的不确定性和复杂的扰动以及机器人本身是一个非线性、强耦合的系统,在实际位姿和期望位姿之间有较大误差,导致控制系统定位精度较低。
针对上述存在的问题,必须对式(1)反求出来的机器人坐标进行补偿,考虑到前期标定工作的繁重,采集样本的数量与系统的复杂性关系,采用支持小样本理论的智能计算方法来提高机器人视觉系统的定位精度。
支持向量机是建立在统计学习理论的VC维理论和结构风险最小原理基础上的一种机器学习方法,它能够很好地解决小样本、非线性、高维模式识别等实际问题[9],因此本研究采用支持向量机回归的方法来构建误差补偿模型。
支持向量机以其出色的学习能力已经在一些领域等到广泛应用,经常用于数据分类和回归。假定训练数据样本集为:
在分类的基础上引入不敏感损失函数ε、松弛变量ξ、ξ∗以及惩罚因子C,以便将线性回归问题很好地转化为非线性回归问题,如式(2)所示。
对于非线性回归问题,利用非线性映射φ把样本集映射到某个高维特征空间,再采用线性回归的方法来解决。假设利用y=φ(x)变换到特征空间Y,那么求解的最优超平面为:
由于在高维空间中,求解φ(w),φ(xi)需要知道函数y=φ(x)的表达式且易造成“维数灾难”,所以引入核函数K(x,xi) =φ(x)φ(xi),以此来隐式地定义特征空间,还可利用此法在计算内积和模型设计中避开特征空间,避免造成“维数灾难”。常用核函数的类型包括:线性核函数、多项式核函数、径向基核函数与两层感知器核函数。
将核函数K(x,xi)带入式(3)中可得:
式中:不敏感损失函数ε控制回归模型对样本数据的不敏感区域的宽度;惩罚因子C表示对超出ε管道样本点的惩罚程度,其值影响模型的复杂性和泛化能力。
核函数的类型参数g决定映射到高维空间的方式,因此ε、C、g参数的选择对支持向量机回归模型的拟合精度和泛化能力非常重要[10]。
常用的支持向量机参数优化算法有交叉验证、遗传算法、粒子群优化(Particle Swarm Optimization,PSO)等,PSO相比交叉验证法可以快速实现在更大范围内搜索最佳参数;相比遗传算法则省去了选择、交叉、变异等过程,尤其在处理高维问题时收敛速度和精度更好,因此本研究采用基于种群中追随最优粒子的粒子群优化算法对支持向量机回归模型的重要参数进行优化。
PSO寻优可以理解为一群初始化的随机粒子(随机解),通过跟踪个体极值pBest和全局极值gBest不断地更新自己的速度和位置,如式(5)所示。
式中:p表示粒子当前的位置,在支持向量机回归参数优化中为{ε,C,g}的取值;v=[−vmax,vmax]表示粒子的速度,决定下一次迭代过程中{ε,C,g}的更新方向和大小;w≥0为惯性因子;c1,c2为学习因子,通常取2;r1,r2∈(0, 1)的随机数;β为约束因子,控制速度的权重。
首先利用机器视觉系统进行初步定位,获取视觉引导后的机器人末端的三维坐标,然后构建基于粒子群优化的支持向量机回归模型,预测视觉坐标与真实坐标的偏差,并将偏差值输入到机器人的控制器中,实现精确定位。图5为系统定位误差补偿策略框图,包含获取视觉位置(初步定位)与误差补偿(精确定位)。获取视觉位置部分包含图像采集、特征提取、坐标转换等;误差补偿部分由3个SVR(SVR是多输入、单输出结构)组合对末端执行器的三维坐标(x,y,z)进行误差预测,从而实现系统的位置补偿。
基于粒子群优化的支持向量机误差补偿算法流程如图6所示。
图6 误差补偿模型构建流程图
算法具体步骤如下:
(1)按照上述机器视觉定位流程引导机器人检测30个关键焊点,反求出机器人的坐标(xi′ ,yi′ ,zi′),xi为回归模型的自变量,其中i=1, 2,…,30。
(2)以获得理想超声回波信号的焊点位置为标准,测量机器人的真实坐标(xi,yi,zi),计算Δxi=xi′ −xi,Δyi=yi′ −yi,Δzi=zi′ −zi分别作为x,y,z三个方向上的定位误差,并将{Δxi, Δyi, Δzi}作为因变量yi,其中前20组数据作为训练集,后10组数据作为测试集。
(3)选择直接反映回归效果的均方差(MSE)作为适应度函数。
(4)在初始化种群{ε,C,g}中,ε=[0 , 0. 2],C=[0.1,104],g=[0.01,103]。确定群体规模m=20,给定惯性因子w∈[0 . 4, 1. 2]以及最大迭代次数itermax=200,约束因子β=1。
(5)计算每个粒子的适应度值piBest,将适应度最好粒子的个体极值作为初始的全局极值gBest。
(6)按照式(5)更新粒子的速度和位置,并将每个粒子的适应度piBest与其对应的适应度比较,若优,则更新piBest,否则保留原值;将更新后每个粒子的piBest与全局极值gBest比较,若优,更新gBest,否则保留原值。
(7)判断是否满足终止条件,如果所得解不再变化或已达最大迭代次数就终止迭代,输出最优解{ε,C,g},否则返回步骤(6)。
(8)利用所得的最佳参数{ε,C,g}以及训练集获得支持向量机回归模型,并用测试集测试模型回归效果,评价指标为MSE和响应时间,直到获得满意的回归模型。
(9)利用回归模型对机器视觉定位系统进行误差补偿,实现精确定位。
汽车焊点质量自动化检测系统由机器人子系统、视觉定位子系统、超声波检测子系统和待检测白车身组成,如图7所示。
图7 焊点质量自动化检测系统
系统中上位机与机器人控制器之间的通讯通过设定TCP/IP完成。上位机对视觉系统获取的图片进行处理,计算出纠偏值(Δx,Δy,Δz),再通过千兆网线传输到机器人控制器中,实现对机器人的纠偏。
系统试验平台如图8所示,主要由研华工控机、FANUC机器人R-1000IA、控制器R-30IB、Basler工业相机、Computar镜头、红色Led环形光源、Cognex激光测距仪,Olympus超声波探头组成。
图8 系统试验平台
现场试验过程简述如下:
(1)在白车身上选择10个关键焊点,手动示教机器人的运动轨迹并测量焊点的真实坐标(xi,yi,zi),其中i=1, 2,…,310。
(2)等待下一台白车身进入待检工位,利用已开发的机器视觉系统,引导机器人实时纠正示教轨迹,实现初步定位,并测量视觉引导后的机器人坐标(xi′ ,yi′ ,zi′ )。
(3)将(xi′ ,yi′ ,zi′)输入到训练好的SVR模型中,输出预测误差(Δxi′ ,Δyi′ ,Δzi′ )。
(4)将预测误差(Δxi′ ,Δyi′ ,Δzi′)输入到机器人控制器中,控制机器人完成焊点的精确定位。
(5)作为验证,测量当前焊点的真实坐标(x′′,y′′,z′′),并计算出真实误差 Δxi=xi′′ −xi′,Δyi=iiiyi′′ −yi′ ,Δzi=zi′′ −zi′。
图9为10个关键焊点各方向的误差预测效果,可以看出3个SVR模型输出的预测误差基本可以跟踪真实误差。图10为误差补偿后机器人末端的三维坐标与真实坐标分布图。由图10可知,补偿后的坐标和真实坐标基本一致,验证了该定位方法的有效性。
图9 各方向误差预测结果
图10 补偿后机器人坐标与真实坐标分布图
为了验证PSO的优势,同时选择交叉验证法和遗传算法对SVR模型进行参数优化,结果见表2。从表中可以看出,粒子群优化参数的SVR模型误差最小,且响应速度与交叉验证相当,比遗传算法收敛更快。主要原因是交叉验证法需要人为设置搜索范围、步进长度等参数,易陷入局部最优,导致预测精度不高;遗传算法优化的过程需要经过选择、交叉、变异等步骤,导致响应时间较长,不适用于实时在线检测。
表2 SVR模型不同参数优化方法的结果比较
常用的误差补偿模型有线性插值、神经网络等,为了验证所选SVR模型的优势,利用同样的样本数据,构建线性插值和BP神经网络模型,比较三者的误差预测能力,见表3。
表3 误差补偿后机器人的位置误差 mm
由表3可知,SVR模型的误差预测能力最好,可以稳定地将x,y方向定位误差控制在0.5 mm以内,z方向控制在0.4 mm以内,满足表1中的探头精度需求,验证了该定位方法的有效性和优越性。
(1)本研究在机器视觉定位的基础上,结合基于粒子群优化的支持向量机视觉误差补偿模型,提出了一种新的焊点定位方法,并通过试验平台验证了该定位方法的可行性,提高了汽车焊点的定位精度。
(2)通过对比不同的误差预测模型及支持向量机参数优化算法,基于PSO的SVR误差补偿模型不但可以稳定地获得较高的定位精度,而且相比遗传算法、神经网络可以加快收敛速度,提高了焊点的检测效率。