双目视觉机械臂焊缝检测与操控系统
2022-10-08李荣华薛豪鹏杨敏刘国安
李荣华,薛豪鹏,杨敏,刘国安
(1.大连交通大学 机械工程学院,辽宁 大连 116028; 2.上海宇航系统工程研究所,上海 201109)
焊接是一种劳动强度大、生产周期长、劳动环境恶劣且对操作工人会产生潜在危害的工作[1].随着工业化和现代化程度的提高,焊接机器人技术可极大地降低人工焊接的成本,改善工人的工作环境,并可逐步稳定和保证产品的质量.目前焊接机器人大致可分为三大类:示教再现型、离线编程型以及自主编程型[2].但现存焊接机器人无法自主识别焊缝位置,仍存在着示教耗时长、工作形式单一、效率低下等诸多问题.在智能制造时代,不仅要求机器人具有自主学习能力,并能够感知和适应周围的不同环境,将视觉图像反馈到本体控制中[3].因此,亟需基于视觉的智能化焊接技术.
视觉传感技术在自动化焊接的应用中,基于视觉的焊缝识别和焊前引导及焊缝跟踪技术是实现智能化焊接的前提[4].针对这一问题,很多学者进行了大量研究.韩俊文[5]提出了一种基于OpenCV3的焊缝识别系统,实现了对5A06与6063型号铝合金焊缝的识别;王文超[6]等提出一种基于磁光传感器的焊缝识别方法,通过提取焊缝中心位置,实现对微间隙焊缝的识别;Ming Y[7]等人提出一种基于机器视觉的焊缝表面缺陷监测系统.综上所述,精确识别焊缝位置并控制焊接机械臂进行焊接仍是待解决的难题.
本文面向当前背景下对焊接机器人智能化的需求,结合双目视觉技术,在已有的相机设备、焊接技术基础上,提出一套基于双目视觉的机械臂焊缝检测与操控系统,利用计算机编程语言Python结合图像处理软件OpenCV实现对角接焊缝位置的识别,并控制机械臂进行模拟焊接,实现焊缝的自动识别与焊接.
1 目标特征点提取
为了使机械臂末端能够精准地识别并提取焊缝位置,通过双目视觉测量系统,在不借助外部其他传感器的情况下,获得目标在不同相机下的图像信息.图1所示为通过双目相机拍摄到的左右相机图像,由于图片中存在各种噪声干扰,导致在进行特征点、线、面等特征提取时失败,因此需要进行图像预处理操作[8-9].图像预处理是对图像进行特征提取、分割以及匹配等操作前的处理,主要目的是消除图像中的无用信息、干扰因素等,增强显著性有用信息的可检测性,预处理过程主要有二值化、平滑、几何变换、图像滤波去噪等.
图1 双目相机拍摄图像
1.1 角接焊缝提取模型
由于双目相机采集到的图像不仅包含待测工件信息,还具有工件所在区域的复杂背景,在进行图像预处理过程中,首先需要通过掩膜处理将背景信息剔除.用选定的图像、物体对需要处理的图像进行遮挡或者控制图像处理的过程,将需要的区域图像值保留,不需要的值归零,得到包含有效信息的图像区域,即除去复杂背景的图片.同时将图片中已获取到的焊接件颜色相匹配的阈值作为感兴趣的值,对整个图像进行覆盖.
(1)图像去噪
实际焊接工作环境中,通常存在低照明度以及高温等恶劣条件,因此通过双目相机获取的图像不可避免会产生噪点[10-11],由此可造成重要信息判别失误等问题,影响后续的图像特征识别、提取等操作,因此为了提高识别精度,需要消除掉图像中的各种噪声干扰.在图像中常见的噪声有高斯噪声、瑞丽噪声、椒盐噪声、周期噪声等.图2为对图像进行高斯滤波、均值滤波处理后的效果图.
图2 滤波处理后的图像
针对不同的图像噪声,由于其特点不同需选择不同的处理算法,降噪处理后图片所呈现的效果并不一样,通过图2所示的不同滤波结果可明显看出高斯滤波效果更优,因此选用高斯滤波进行后续的图像处理操作,可大大降低后续噪声带来的干扰,确保焊缝位置的精确识别.
(2)二值化处理
图像阈值分割主要是利用图像中灰度差异,实现对图像的分割技术,将工件背景区域与工件区域的灰度划分为两个不同的等级.选定一个较为合理的阈值,像素点达到阈值时等于1,否则为0,从而产生相应的二值化图像.对于一幅大小为m×n的图像,阈值为Th,规定图像中像素灰度值小于Th的个数为Th0,图像中像素灰度值大于Th的个数为Th1,整幅图像的灰度平均值为θ,目标件中像素点个数占总图的比例为η0,灰度的平均值为θ0,背景中像素点个数占总图的比例为η1,灰度的平均值为θ1,类间方差为G,则有:
(1)
通过式(1)可推出类间方差G:
G=η0·η1·(θ0-θ1)2
(2)
(3)边缘检测
边缘检测是图像处理的一个重要环节,在对物体进行边缘检测时,首先对图像轮廓进行粗略计算,然后通过连接规则将检测到的轮廓点进行连接,并对不相关点进行剔除,保留图像的重要结构信息,提高图像处理的速度.其次通过一个N×N的核来和图像中的每一个像素点进行卷积,随后根据实际选取合适的阈值进行边缘部分提取.
(3)
使用式(4)、式(5)所示的两个卷积模板,检测水平边沿及竖直边沿.
(4)
(5)
(4)边缘直线检测
Hough变换检测直线实质是找到构成直线的所有像素点, 其基本原理是用图像边缘点计算参数空间参考点的轨迹,将图像空间转换到参数空间,通过处理参数实现直线检测.图3为通过霍夫变换检测到的实际效果图.
图3 霍夫变换检测直线
(5)相交点提取
在检测到直线后可得到一些相交点坐标,通过将交点坐标与剔除复杂背景后的ROI(感兴趣)区域进行比对,并满足以下两个条件:①交点坐标位于ROI区域的某个阈值范围内则可看作是焊缝的边界点之一,通过判断拟合直线得到的交点坐标在ROI区域的位置即可.②搜索该点最近的邻域点,若邻域内点的距离d<2 pixel,则认为这两点为一个点坐标,大小取该两坐标大小的均值.
图4所示为提取到的交点位置.
图4 相交点处理结果
1.2 辅助标志物的焊缝特征提取
在实际焊接中,由于工厂环境恶劣,导致视觉检测系统出现检测失败或检测结果与实际相差太大的情况.为了能够稳定获取焊缝位置信息,可采用贴标志点进行辅助识别方法,使得在某种复杂环境下可对焊缝位置进行精确识别,图5为焊缝处辅助标志物粘贴示意图.
图5 辅助标志物粘贴示意图
对具有标志物的焊缝图像进行Otsu二值化处理,虽然很大程度上去除了冗杂信息,减轻了计算量,但是并不能保证最终处理精度,在光照、温度、震动等外界环境干扰下,经过预处理后得到的图像效果不是很好,因此需要对图像进行形态学处理,去除图像中的杂乱“毛刺”,图6所示为提取到的焊缝位置及图像中的“毛刺”现象图.
图6 焊缝提取及图像中的“毛刺”
由于硬件以及环境的影响,噪声是图像处理中经常存在的现象之一.由于噪声的影响,图像在二值化后得到的边界十分不平滑,物体以及背景区域存在许多噪点,因此需要进行多次运算才能得到较为满意的处理效果.
SIFT算法所搜寻的一些特征往往对噪点、光亮度等因素没有影响,其搜寻的是一些特征十分突出的区域,如一些拐点、明亮度对比较高的点及物体边缘位置等,因此采用SIFT算法在处理信息量较大的数据时可快速实现匹配检测.图7为经过计算后的焊缝角点检测结果图.
图7 焊缝角点位置检测
2 立体匹配与坐标解算
双目相机从两个不同位置拍摄到的含同一对象的图像,通过匹配对应区域计算出视差,通过逆向过程恢复目标件的三维结构信息,通过建立合理的目标函数及约束条件,采用最优化算法求解方程.
理想状态下的双目视觉成像如图8所示,其中左右摄像机是完全平行的,基线b为左右相机光心的连线,空间上的任意一点P(X,Y,Z)在左右成像平面上的点分别为Pl(xl,yl)和Pr(xr,yr).
图8 双目视觉成像原理
通过三角测量法可以得到图像中物体的坐标值,其计算过程如式(6)所示.
(6)
式中,(u0,v0)为摄像机光心在像素坐标系中的坐标点,(ul,vl)、(ur,vr)分别代表目标在左相机和右相机中的像素坐标点,理想情况下两个相机焦距f大小是一致的,右相机是以左侧相机为基准计算的,(X,Y,Z)坐标值是以左侧相机为标准进行计算的.
3 焊接系统搭建与试验
整个焊接系统分为两部分,一是硬件搭建,二是算法编写及软件实现.整套焊接系统所需要实现的功能是通过双目相机识别到待测工件,通过对相机采集到的图像数据进行处理,最终得到焊缝起始位置坐标信息, 坐标经过转换后传递给机械臂,机械臂接收指令后,到达识别出的焊缝起始位置处,通过末端执行机构在焊缝上行进,完成模拟焊接的一个过程.图9所示为焊接操控系统实物图,图10为焊接模拟试验过程.
图9 焊接操控系统实物图
(a) 焊缝识别
为保证试验数据的可靠性,将角接焊缝按照不同的高度以及倾斜度进行随机放置.实验结果以焊缝起点位置坐标为参考,设置60组实验,随机选择几组不同位置的焊缝,针对不同环境下的算法分别进行实验,在室内光照下进行两组分别为不贴标志物和贴标志物检测对比试验,得到的检测坐标值及误差如表1.
表1 检测坐标值及误差试验数据
4 结论
通过表1数据可以看出,左右视图中的vl与vr值基本相同,在设计视觉算法允许误差内,左右成像平面满足平行线约束的条件.每组实验中系统计算的值与实际测量值呈现不同程度的误差,采用不贴标志物的方式下最大的一组误差为4.14%,最小的一组误差为1.86%;采用贴标志物的方式下最大的一组误差为2.56%,最小误差的一组误差为0.52%.通过上述实验数据,可得出采用不贴标志物的方式比贴标志物的方式平均偏差要稍高一些,但两种方式整体的误差都满足实验的精度的要求,符合预期的目标.因此,在光照等外界环境干扰不大的情况下,可以采用不贴标志物的方式进行角接型焊缝位置的识别;若是对精度要求相对较高或者外界干扰较大的情况下,可采取通过贴标志物的方式进行角接型焊缝位置的识别.