基于视觉检测的机器人分拣系统设计

基于视觉检测的机器人分拣系统设计
朱冬冬;秦琴;屠子美;洪剑雄
【摘 要】针对工业流水线分拣作业的需求设计了一套基于视觉检测的工业机器人分拣系统.系统采用工业相机获取工件图像和对应QR码标签信息,通过图像识别方法进行工件识别并计算工件中心坐标,将工件坐标统一至机器人坐标系并与机器人建立通信,控制机器人准确抓取并分拣工件.本系统主控计算机采用LabVIEW编程实现图像采集、图像处理与坐标变换等任务,并通过安川公司提供的MOTOCOM32.dll与机器人控制器建立实时通信.该系统具有较高的运行速度和准确度,可应用于工业流水线自动化分拣作业领域.
晴天小秘书【期刊名称】《上海第二工业大学学报》
【年(卷),期】2017(034)004
【总页数】6页(P258-263)
无水【关键词】工业机器人;机器视觉;自动化分拣
【作 者】朱冬冬;秦琴;屠子美;洪剑雄
【作者单位】上海第二工业大学环境与材料工程学院,上海201209;上海第二工业大学智能制造与控制工程学院,上海201209;上海第二工业大学环境与材料工程学院,上海201209;上海第二工业大学智能制造与控制工程学院,上海201209;上海第二工业大学智能制造与控制工程学院,上海201209;上海第二工业大学智能制造与控制工程学院,上海201209
【正文语种】锁接头中 文
【中图分类】TP241
随着制造业的发展,视觉检测技术在工业生产中得到越来越广泛的应用,对提高生产效率、生产智能化至关重要。工业机器人的工作,离不开分拣,分拣作业是大多数流水生产线上的一个重要环节,工件分拣也是工业产品批量生产环节重要的组成部分[1-4]。机器人分拣技术是机器人技术与视觉检测技术的组合,一些工业发达的国家在食品、医药、汽车生产等领域已有非常广泛的应用。近些年来,我国的机器人分拣技术发展迅速,越来越多地应用于物流等分拣现场。在传统流水线的分拣作业中,主要是人工的方法分拣,工人重复地长时间执行分拣动作已不能满足要求,大大影响了工作效率和准确性[5-8]。
在目前机器人分拣技术的应用中,根据不同的分拣对象使用不同的机器人类型:在食品分拣领域,需要应用具有高速执行功能的机器人;在物流搬运领域,需要负载能力高的机器人。本文根据机器人分拣系统所需要的技术要点,包括图像获取和预处理、坐标变换、通信等,设计了一种基于视觉检测的机器人分拣系统,可用于分拣作业中,也可用于教学和实验应用。
于全系统硬件主要由工业机器人、气动装备、工业相机与镜头、光源、PC机、路由器和分拣对象(多种形状的塑料小块)组成。
在本系统中,作为执行机构的工业机器人,采用日本安川电机有限公司生产的具有6个轴的工业机器人。机器人末端执行机构安装小型吸盘,实现对工件的吸取和释放;工业相机采用Allied Vision Technologies公司生产的Manta G201B ASG 30 fps 200 W像素以太网工业相机,固定安装在工作台上方70 cm处;辅助光源安装于工作台上方40 cm处,用于补光以达到最佳的拍摄效果;利用1台路由器,把机器人、工业相机、计算机连接到同一个局域网内,以达到它们互相通信的目的。主要系统硬件连接示意图见图1。
本系统采用LabVIEW作为软件平台,其包含机器视觉图像处理组件NI Vision Pack和通用工业相机驱动程序NI-IMAQdx,编写设计上位机程序,完成图像采集、分析、识别处理的工作。
机器人编程在机器人示教编程器上完成。
根据预期的系统执行流程,主要可以分为7个流程。其工作流程示意图如图2所示。
软件设计部分包含上位机控制程序和机器人执行程序的设计。上位机控制程序的功能包括控制工业相机拍摄、图像处理、目标定位、坐标变换和坐标信息发送,系统可实时显示图像和系统工作状态,具有启动/停止系统工作功能。
机器人执行程序的功能包括接收启动/停止信号,根据上位机发送的工件坐标信息和目标位置信息实时控制机器人执行分拣动作。
2.1.1 程序流程设计
结合本系统的运作流程选择状态机作为程序设计模式。程序与机器人的通信通过调用MOTOCOM32.dll动态链接库实现(MOTOCOM32是日本安川电机公司为其MOTOMAN系列机器人提供的软件开发工具,该工具具有数据文件传送、机器人控制、I/O信号读写等功能,可供用户根据需求开发自己的应用程序[9-10])。根据系统运行流程,依照状态机设计模式编写控制程序,如图3所示。
程序初始化包括显示控件初始化(指示灯、数值显示框、图像显示控件)和机器人通信初始化2部分。程序通过调用MOTOCOM32.dll动态链接库中的函数实现与机器人通信,运行程序前需保证计算机已接入USB电子加密器。
初始化成功后,通信状态指示灯亮、机器人伺服上电、机器人进入准备工作状态;上位机同时判断机器人是否处于运行状态以及停止按钮是否被按下。若按下停止按钮,则退出程序,与机器人控制器断开连接。在机器人空闲状态,程序将启动相机进行拍摄。当拍摄到目标工件,立即对工件进行图像处理定位和读取QR码信息,之后转入下一状态调用BscPutVarData函数将计算出的坐标信息发送至机器人控制器的指定变量中,然后控制机器人执行分拣动作。
2.1.2 图像获取、处理与坐标变换
使用NI公司提供的通用工业相机驱动程序NIIMAQdx执行相机各项操作,包括打开相机、执行拍摄和关闭相机。在采集到图像后,由于成像系统的像差、畸变等因素造成图像变形失真,本文使用NI公司提供NI Vision Pack中的IMAQ Set Calibration Info VI进行图像校正,校正使用图4(a)所示的点阵模板,点中心实际距离为10 mm。
野苹果园
图像经校正以后,灰度图像需进行二值化处理,以达到减小数据量、清晰化的目标,便于进一步的识别处理。图像二值化的方法有很多,主要分为全局方法和局部方法2大类。本文选用Niblack方法,Niblack方法是局部方法的一种,它根据以像素点为中心的领域内的点的情况计算阈值,在此设置的局部窗口大小为32×32像素。
经过二值化后的图像含有很多噪声,本文采用中值滤波法进行非线性平滑,中值滤波将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值[11-12],经测试中值滤波可以消除本系统图像的噪声,二值化及中值滤波算法实现及测试结果见图 4(b~c)。
在得到质量较好的二值图像后,使用IMAQ Match Multiple Geometric Patterns VI进行模板匹配操作,匹配成功后得到对应工件的中心坐标。
工件在图像上的坐标是以像素点为坐标的,必须要与机器人坐标统一才可执行。机器人提供用户自定义坐标的权限,因此,可以通过定义1个机器人的用户坐标系的x、y轴使之与图像坐标的u、v轴对齐,用户坐标系的z轴垂直于x、y轴,记原点位置为点O,见图5(a)。
ctp版材如此,通过坐标变换就可以达到目的。假定工件在图像坐标系上的坐标是(u,v),图像坐标系原
点与用户坐标系的原点重合,记为O,相机所拍摄到的视野为1个345 mm×265 mm的矩形区域,已知相机的有效像素为1 624×1 234,这样就可以得出工件中心在用户坐标系下以mm为单位表示的坐标(x1,y1):
取机器人末端点处在机器人用户坐标系下的坐标为(x2,y2),见图5(b)。坐标变换后,机器人需要在x、y方向上移动的距离为:
而对于z轴,机器人执行点到工件中心点的垂直距离是确定的,只需在机器人的编程中指定执行点到中心点z轴的运行距离即可。
本系统中,经过图像校正后,视场中心区域精度达到0.3 mm,视场外围由于镜头畸变误差增大,精度降低为1 mm,可以达到系统分拣的定位精度要求。
上位机控制程序的功能是获取图像并处理以及进行坐标转换和流程状态机的设计。机器人的运行程序是在示教编程器上完成的,从示教编程器上可以操作机器人本体运动,还可以设置自定义坐标。示教编程器上编程语言采用的是机器人公司所提供的一种类似于汇编语言的程序语言,通过该语言编程,可以实现机器人按照用户编程的意图运行。
在此系统中,机器人执行程序的设计相对简单,只需机器人按照预定的路线执行后回到初始位置。其运行流程见图6。
由图6可见,机器人未到上位机控制程序的启动信号时,处于循环等待接收启动信号的状态。当接收到启动信号时,即上位机调用了机器人启动任务的BscSrartJob函数,使机器人末端的控制点移动到工件中心位置,输出信号控制气嘴吸取动作,移动到相应的落料位置,输出信号控制气嘴释放工件,最后返回初始位置,完成整套动作。以下为机器人程序的主要部分及注释:

本文发布于:2024-09-21 16:36:11,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/149068.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:机器人   分拣   工业   系统   图像   坐标
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议