吴闯,刘金平,马明豪,王象元,王毅
核工业工程研究设计有限公司 北京 101300
遥控操作焊接技术可以有效改善焊接环境,发挥机械臂可达性、稳定性好等方面优势的同时,充分发挥人的高效决策能力以及高度学习能力,同时计算机对焊接过程中某些复杂场景信息的计算能力可以补足人在计算方面的薄弱点,使得人可以专心决策,而使机械臂作为决策执行者,因此遥控焊接对于恶劣焊接场景有很大的应用前景。
视觉传感和遥控焊接过程的监控是实现遥控焊接的重要手端[1]。因此,本文设计视觉系统的方案,并根据视觉系统辅助条件下设计焊接遥控操作的控制策略及焊枪姿态优化方式,且实时监控焊接过程,并给操作员提供焊缝坡口特征信息,便于其决策并实时改变焊枪姿态,实现更好的遥控焊接质量。
视觉检测传感器内部集成了图像采集系统和激光发射器,外部包括保护壳、滤光系统和防飞溅挡板,模型如图1所示。
图1 传感器模型
本文选取能发射650nm的激光器,其具有较高的工作使用寿命,并配备激光功率适配器,可以更改激光的照射强度,激光照射在工件表面形成“一字形”的条纹,能够较好地反应焊缝坡口形貌,如图2所示。
图2 激光工作原理
由于工件对激光有反光等影响,对结构光提取增大了难度,故使用滤光片消除影响结构光提取的干扰因素,让试验能正常进行。
视觉传感自适应控制系统在Python的基础上结合OpenCV、Halcon等图片处理软件平台进行试验和调试。
图像处理利用Opencv进行预处理,焊缝特征点提取使用Halcon进行连续不间断的提取。
相机标定过程中使用Halcon得到相机参数,并进行精度检验,光平面使用Matlab进行数据处理和平面拟合,手眼标定用Matlab进行坐标系的转换。PC机与机器人的通信利用Python中的UDP通信进行数据交换。
三角测量法是利用光线空间传播过程中的光学反射规律和相似三角形原理,在接收透镜的物空间与像空间构成相似关系,同时利用边角关系计算出移动距离[2]。根据激光的入射角度不同可分为以下两种情况。
(1)正入射 激光与工件表面垂直,正入射原理如图3所示。激光正入射到参考平面M处、测量平面N处,并分别在CCD上的M"和N"处成像。
图3 正入射原理
根据几何光路可知,ΔOPN:ΔOP'N'得到式(1),即
由光路图可知
联立式(1)、(2)可得
进而即可求解得到m,在已知参考平面的情况下,通过m即可完成测距。
(2)斜入射 激光与工件表面夹角α>0,如图4所示。
图4 斜入射原理
由ΔOPN:ΔOP'N'得到式(4),即
解得m即可。
结构光三角测量法不用接触工件,得到的距离就有较高的精度;
可以测量的范围较大,对待测表面要求低;
结构简单,性价比高。
实际焊接过程中,要将得到的图像灰度处理成只有黑白两色状态。利用OpenCV中Imread里的函数进行处理。
转换之后的灰度图像如图5所示。由于焊接环境以及线结构光的发射,在线结构光的转折部分存在干扰噪声。这些噪声与椒盐噪声类似,对目标特征的识别与检测有很大影响。另外,线结构光条纹的边缘呈锯齿状,但是起伏幅度较小。
图5 灰度图像分析处理
利用Matlab对图5a进行处理,可以直观地看到图中的噪点分布没有规律,且噪点较多,如图5b所示。
对图像进行平滑处理,将影响图片质量的噪声去除[3]。根据滤波器的不同可分为以下三种。
(1)均值滤波 令Sxy表示中心在(x,y)点,尺寸为m×n的矩形坐标组,均值滤波的表达式为
利用OpenCV中的 Blur算法对图像均值滤波。
(2)高斯滤波 高斯滤波原理是加权平均图像中任意一个邻域点内的像素值,确定该点的像素值。高斯滤波过程中所选模板内的值并非全部都是1,而是根据二维高斯分布函数来确定,之后利用改模板与图像进行卷积计算。
二维高斯是构建高斯滤波的基础,其概率分布函数式为
式中σ——二维高斯分布函数的标准差。
利用OpenCV中的 GaussianBlur算法对图像进行处理。
(3)中值滤波 中值滤波是一种非线性滤波技术,其滤波思想与均值滤波过程中叠加求平均值的方式截然不同。在中值滤波过程中,所采用的是排序统计思想。原理是利用任意一点像素值周围的灰度中值,来替换该点的灰度值。使用中值滤波对消除噪声很合适。
利用OpenCV中的 MedianBlur 算法对图像进行处理。
其中,中值滤波的效果受卷积核尺寸的大小Ksize影响,本文通过编历卷积核大小为1、3、5、7,滤波效果如图6所示。从图6可看出,当卷积核为3时,图片边缘虽然保存有较好的效果,但是噪声相对于卷积核为5时,效果略差一些,卷积核为7时,图片边缘细节较为模糊。
图6 中值滤波效果
本文中为了得到更好的图片边缘效果以及减少噪声的干扰,因此Ksize取值为5。
二值化处理,又叫做黑白处理。为突出焊缝图像中的特征,将结构光变为白色,其余地方变为黑色,呈现的图像为黑白分明的图像。
用OpenCV中的Threshold算法对中值滤波后的图像进行二值化处理。分析得出,图像二值化后,图像黑白分明,结构光和背景处噪点数量明显减小。
边缘检测可以提取出目标区域与周围像素不一样的轮廓。本项目中,边缘指的是线结构光在采集图像中的边缘。由于光的反射、散射等原因,线结构光在图像中较为宽粗。边缘检测步骤为滤波、增强、检测[4]。本文在初步检测线结构光边缘时,选用Canny检测与Sobel检测方法并对其结果进行比较分析。
(1)Sobel边缘检测 Sobel检测算法为离散型差分算法,也称为一阶微分算法。主要运算思想是通过任意像素点邻近的灰度值进行计算,得到该点的灰度值。图像边缘附近的灰度值变化幅度较大,呈阶跃现象[5]。因此,利用计算得到的一阶梯度值与阈值进行比较,确定其是否为边缘。
(2)Canny边缘检测 结合最优思想,Canny检测可使图像中的实际边缘检测数量最大化。局部化检测良好,检测的点与实际边缘线上的点距离较近,而且检测到像素边缘之间的距离最小。Canny边缘检测步骤如下。
1)噪声去除:由于边缘检测很容易受到噪声的影响,因此用中滤波去除噪声。
2)计算图像梯度:计算得到Gx和Gy,从而找到边界的梯度和方向,即
3)抑制非极大值:在得到Gx和Gy之后,对图像进行处理,如果扫描到的点在相同梯度上最大,则被判定为边界点,从而筛除非边缘像素点,仅留下边缘检测线。
4)滞后阈值:设置两个阈值:minVal和maxVal。图像的灰度值高于maxVal时判定为边界,低于minVal1的则不是边界。在两个阈值中间,看取得的点与被判定为边界的点是否相连,相连则为边界点,反之则不是。
(3)差分图像及骨架提取 将原图像与区域连接生成的图像差分运算,为差分图像。在此基础上再次进行灰度转化与二值化,在此基础上进行分析处理。从目标外围到目标内围,对目标不断腐蚀,直到目标是单层像素宽度。该单层像素即目标的骨架。通过以上流程,达到细化线结构光边缘的目的。细化线结构光优化流程如图7所示。与原图像进行比较可知,差分图像中的线结构光清晰明亮。在像素层面上,线结构光线宽大幅度降低并且没有断裂现象,差分效果好。
图7 细化线结构光优化流程
(4)特征点提取 焊点即为焊缝与线结构光的交点。在提取边缘后,通过对其腐蚀膨胀、直线拟合得到4条线结构光,进而转换成4条结构光两两延长求交点的问题,从而求出焊点。
具体操作步骤如下:
1)首先对变间隙焊缝的视频进行分帧处理,得到306张图片,依次对其进行灰度处理。
2)自适应阈值控制,使其对所有的图片都适用,对线结构光图像进行二值化处理后再进行腐蚀膨胀处理。
3)利用Halcon中的特征检测对线结构光进行特征区域选取,并对区域内图像特征突出放大。
4)利用霍夫变换,对特征区域内的结构光进行直线拟合,利用Halcon中的fit_line_contour_xld算法可以延长拟合到的直线求交点。
利用Halcon对视频实时处理,得到连续的焊缝特征像素点,并以txt格式保存下来,经过后续的相机标定、激光平面标定和手眼标定,就可以把像素点在实际坐标系下的点计算出来,再对实际坐标下的点进行UG三维建模,三维模型如图8所示。
图8 实物和三维模型
三维建模后,坡度宽度和深度的误差均在0.02cm内,满足精度要求。
本文研究的遥控操作返修机器人视觉系统焊缝图像处理算法能够准确识别焊缝并对待焊试件进行三维建模,方便遥控操作返修工作的顺利开展。首先通过视觉检测传感器采集焊缝信息,并初步采用图像处理三角测量算法进行计算;
而后对图像平滑处理,利用中值滤波将影响图片质量的噪声去除;
通过图像二值化处理、结构光的边缘细化处理,利用远端场景恢复算法形成待返修焊口三维模型。