时间:2024-07-28
焦 键
(重庆水利电力职业技术学院,重庆 402160)
随着涂胶机器人的广泛应用不仅提高了生产效率,同时也节省了大量的人工。其中,涂胶环节是工艺生产的一个重要环节,涂胶密封的好坏直接影响着工件的质量[1]。涂胶质量主要包括涂胶的直径尺寸以及涂胶的位置距离,即涂胶胶体的宽度。
传统的涂胶质量检测主要是通过人工或离线视觉等方法。人工检测是在涂胶过程中,利用人眼来检测被测物体,凭借经验来判断工件的涂胶是否满足生产要求,该方法效率低,精度差,工件质量标准不统一;离线视觉检测属于成品检测,通过相机拍下涂胶面后再根据视觉算法得到胶面的质量参数[2],从而判断质量,当检测到工件未达到生产工艺要求时,需对成品进行返工,无法保证实时生产质量。为解决上述问题,本文提出一种涂胶质量的检测方法,保证在工件涂胶过程中亦可完成胶体质量检测,以此为基础,在后期研究中再将涂胶设备设计成闭环,利用线阵相机的实时反馈,控制涂胶的精度让涂胶机器人能够根据实时数据进行涂胶纠偏,从而提高生产效率。
工业生产中常用机器视觉技术来完成视觉定位和图像检测,以提高生产的柔性和自动化程度。工业相机是机器视觉系统中的一个关键组件,按传感器的结构特性可分为面阵相机和线阵相机,选择合适的相机直接决定了所采集到的图像分辨率及质量。
文献[3]提出了一种基于机器视觉的涂装缺陷检测系统;文献[4]提出了一种基于机器视觉的物料识别、定位、抓取系统。上述检测对象都具有形状、尺寸、三维等特性,需实现像素矩阵拍摄,故均选用了面阵相机作为视觉采集模块。不同于面阵相机,线阵相机具有更高的精度和更快的拍照速度,更适用于一维线性目标,考虑到检测对象是视野为细长的胶条带状,因此本文选用线阵相机,通过逐行连续扫描,以达到对涂胶表面均匀检测。
表1 选用的相机型号及参数
线阵相机常用的光源有卤素灯、LED和高频荧光灯。LED光源具有寿命长,稳定性好,功耗小等特性,是目前主流的机器视觉光源。
考虑到涂胶质量需检测的主要包括胶体断裂、气泡和溢胶等缺陷。对于不同的缺陷,在采集的图象中将会表现出各种灰度的差异,一般都会呈现出黑、灰、白等,同时考虑受光源照射角度或相机接受角度的影响,缺陷的对比度也会不断发生变化。这里通过相机及光源在不同角度安装测试数次,最终选择背光斜射和正面照射结合,相机接近法线方向安装。
Linea相机与PC硬件通过Ethernet连接,可通过CamExpert设置参数,并导出参数配置文件。电源和触发信号的连接如图1所示。
图1 连接示意图
当相机与PC通过Ethernet连接好以后,在PC上做如下配置:
第一步:连接相机。安装好软件以后,在电脑的任务栏右下角会显示SaperaGigEServer的图标,右击该图标选择“ScanNetWork”,扫描到相机后,SaperaGigEServer图标提示连接相机,可能会有黄色感叹号,黄色感叹号说明PC和相机的IP不在一个段上,此时可以通过SaperaGigEServer的SHOW Status Dialog Box 来查看当前相机IP,并修改PC的IP到同一个网段上,黄色感叹号消失。说明相机已经连接好。
第二步:配置参数。相机连接好以后可以通过Sapera CamExpert软件,根据项目设计需求配置相机参数,并对设置的参数进行验证。
1) Trigger elector:SingleLineTrigger(Start);
2) Trtgger Mode:On;
3) TriggerSourse:RisingEdge;
4) Line Selector:Line1;
5) LineFormat:SingleEnded;
6) Input Line Detection Level:Threshold for 24 V.
7) ImageHeight:200;其他参数均为默认设置。参数配置好后,可以通过Line Status参数实时监视有没有触发信号。配置好以后点击Grab按钮,当触发Line1采集信号的时候,有图像被采集到,说明相机的连接和参数设置成功。
根据实际需求,制作如图2所示的标定模板。
图2 标定板模型
标定过程借助Sapera CamExpert软件。开始标定前,通过Sapera CamExpert将相机改为无外部触发,图像宽度设为200,点击“Grab”实时采集图像。
1) 焦距的调整
如果图像不清晰,调节镜头上的旋钮,使图像清晰为止。
2) 激光的标定
激光的用途是标定线阵相机的照射位置,起到辅助工业机器人编程的作用。标定过程如下:移动标定板,使某一黑线处在中心位置(positonx=1024),如图3(a)所示。接着沿着这条黑线的方向平移标定板,使捕捉的图像全黑,如图3(b)所示。保持相机和标定板位置不动,调节安装在夹具上的激光器,使十字激光对准该条黑线所在的十字,如图3(c)所示,此时标定完成。其中激光十字代表线阵相机采集点。
图3 标定示意图
在完成了上述安装调试与标定工作后,接下来准备进入图像采集与处理阶段,具体流程如图4所示。
图4 图像检测流程
利用Halcon一行一行的采集图像,如图5(b)所示为局部采集图像。之后将图像拼接到一起,如图5(c)所示。需要注意的是,在使用halcon的Image Acquisition时,默认的grab_timeout值为5 000,在这个项目中相机是处于halcon外部触发方式,一旦相机5 000毫秒内无触发,程序会抛出异常。需要将grab_timeout设置的小一些,并且在抛出异常后选择continue。采集程序如下:
open_framegrabber (' GigEVision', 0, 0, 0, 0, 0, 0, 'default', -1, 'default', -1, ' false', 'default', '123', 0, -1, AcqHandle)
set_framegrabber_param (AcqHandle, ' Height', 2)
set_framegrabber_param(AcqHandle,'grab_timeout',100)
grab_image_start (AcqHandle, -1)
gen_empty_obj (imageconcated)
while (true)
try
grab_image_async (Image, AcqHandle, -1)
catch(exception)
continue
endtry
endwhile
tile_images (imageconcated,imagetiled,1,'vertical')
write_image(imagetiled, ' bmp', 0, 'd:/1.bmp')
close_framegrabber (AcqHandle)
图5 采集的图像
拼接后的图像,通过对每一行灰度值导数进行分析,可以判断出胶的像素宽度,通过像素宽度与实际宽度的对应关系,计算得到胶的宽度。程序如下:
im=imread(' D:1.bmp');
j=1:1:2048;
[m,n]=size(im);
center=1123;
dest(:, : ,1) = im;
dest(:, : ,2) = im;
dest(:, : ,3) = im;
for i=1:m
dao=diff(im2double(im(i,:)))./diff(j);
if i==2701
plot(dao)
end
b2w=find(dao>0.17);
try
b2w_index=find(b2w>center);
catch
mmm=1;
end
pix_left=b2w(min(b2w_index));
w2b=find(dao<-0.15);
w2b_index=find(w2b
pix_right=w2b(max(w2b_index)); center=round((pix_right-pix_left)/2)+pix_left;
dest(i,center-1:center+1,1)=255;
dest(i,center-1:center+1,2)=0;
dest(i,center-1:center+1,3)=0;
dest(i,pix_right-1:pix_right+1,1)=0;
dest(i,pix_right-1:pix_right+1,2)=255;
dest(i,pix_right-1:pix_right+1,3)=0;
dest(i,pix_left-1:pix_left+1,1)=0;
dest(i,pix_left-1:pix_left+1,2)=255;
dest(i,pix_left-1:pix_left+1,3)=0;
end
imwrite(dest,' D: esult.jpg');
图6 检测结果
经验证,相比于多台面阵相机的方案,采用线阵相机更能节省成本,并且具有更强的鲁棒性,特别适合长条状涂胶质量的检测,无论是单幅图像的采集还是拼接,能够实时满足工业生产的需求。需要注意的是,在实际生产环境中,灯光照射及相机角度都会对检测过程造成一定的影响,因此需要在图像采集前调试好照射角度或相机接受角度。根据本次的测量过程,在后续设计过程中可以利用线阵相机,将涂胶设备设计成闭环设备,利用线阵相机的实时反馈,控制涂胶的精度。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!