基于机器视觉的三维运动装置定位抓取系统
2017-09-15陈飞,王飞,刘雷
陈 飞,王 飞,刘 雷
(常熟理工学院 电气与自动化工程学院,常熟 215500)
基于机器视觉的三维运动装置定位抓取系统
陈 飞,王 飞,刘 雷
(常熟理工学院 电气与自动化工程学院,常熟 215500)
将机器视觉技术应用于三维运动装置定位抓取上,以圆柱体工件为研究对象,设计了基于机器视觉的三维运动装置,采用“PC+CCD+运动控制卡”的运动控制方式。采用LabVIEW软件设计监控界面,通过调用库函数节点向Galil运动控制卡发送命令控制轴的运动,通过固定于Z轴上的相机捕获工件所在的XY轴位置,通过XY位置补正及Brenner清晰度评价算法准确确定工件XYZ轴位置,继而对其进行抓取并置于指定位置。实验证明,所设计的系统能有效地实现定位抓取。
LabVIEW;机器视觉;三维运动;Brenner算法;定位抓取
0 引言
运动控制是工业自动化应用的重要领域,随着计算机技术、现代电力电子技术、传感器技术、机电一体化技术等的迅速发展及强劲市场需求的推动下,运动控制技术得到了前所未有的大发展,应用越来越广泛。随着生产线的复杂化,越来越多的技术整合到运动控制系统之中,包括视觉、数据库等,运动控制在生产线的角色已不再只是控制“运动”,对系统的整合性要求也日益增加[1],基于虚拟仪器技术、基于视觉引导的运动控制方式成为了研究的热点。
基于机器视觉的三维运动装置定位抓取系统采用“PC+CCD+运动控制卡”的运动控制方式,实现将上位机和下位机分层控制,PC作为上位机,可对多轴运动的位置、加速度、速度等参数进行设定,完成人机界面管理、信息显示和预处理;运动控制卡作为下位机,是运动控制的核心,用以接收来自PC机的控制信号并进行实时处理[2]。通过运动控制卡来控制轴运动使相机捕获到圆柱形工件,通过相机拍摄工件图片,PC机通过对图片的处理,得出圆心坐标像素偏移量,经过处理转化为电机脉冲将偏移量叠加到已计算好的位置数据来确定XY轴运动距离,Z轴通过清晰度函数来确定运动距离。PC机向运动控制卡发送命令,控制各轴的运动抓取工件并置于指定位置。采用“PC+CCD+运动控制卡”的控制方式可充分发挥三者的优势——PC强大的数据处理能力,相机拍摄的精准性,运动控制卡对电机的精确控制,提高系统的可靠性和精确性[3]。
图1 系统总体结构图
1 三维运动装置构架
本系统的运动控制装置控制轴数为3轴:X、Y、Z, X、Y、Z向可以单轴单方向运动,也可以实现联动控制。通过X、Y、Z 三轴配合带动相机与镜头运动精确找到需抓取的圆柱形工件,因该工件为金属,抓取通过磁铁来实现。在寻找目标物体时,通过XY轴联动找到目标物体,然后通过位置补正和图像清晰度函数对物体进行精确定位。其系统的总体结构如图1所示,包括(1)三轴运动平台的控制系统,其硬件主要由工控机、运动控制卡、三轴运动平台、电源等构成;(2)抓取机构;(3)视觉系统,包括辅助定位的CCD、光源、电源等。
系统选择的运动控制板卡为GALIL运动控制卡,所用型号为DMC-1842。该卡采用PCI bus总线,可控制4轴[4]。ICM-1900ID是一款专门为DMC-18xx、DMC-9940、DMC-21x2系列的运动控制板卡设计的信号接口板[5]。GALIL运动控制器和ICM-1900ID间用100芯线缆连接。三维运动平台选用三菱伺服电机,X轴和Y轴选用HF-KN23J-S100,Z轴选用HF-KN23J-S100。伺服驱动器选用的三菱伺服放大器0.2KW MR-JE-20A (用于X轴和Y轴)和0.1KW MR-JE-10A (用于Z轴)。视觉系统中选用的CCD为BASLER工业相机,型号为acA750-30gc,固定于Z轴上。抓取机构采用磁铁,固定于Z轴上。系统使用PCI-6514卡中的P6.0,P6.2,P6.4来控制XYZ轴伺服电机的开启,使用数字输出P6.7来控制磁铁的ON与OFF。
Galil运动控制卡为每轴准备了专用的前、后极限输入和原点输入,在接口板上使用PS2505双向光耦对输入进行隔离,并使用74LS07(U7、U8)将信号发送至Galil控制器。在ICM-1900D上XL、YL、ZL分别为X、Y、Z轴的限位输入,将每轴的限位信号集中在一个5位的接线端子内,从左向右,各引脚依次为:电源-(V-)、前极限输入(FL)、后极限输入(RL)、原点输入(HM)和电源+(V+)。V+/V-为外部输入的DC电源,可用做限位信号传感器的电源[4]。
2 三维运动装置定位抓取软件设计
系统软件设计分为6个独立的模块,其系统主界面如图2所示。登录模块:主要对用户的权限进行限制,输入不同的用户名与密码,用户所进行的操作权限是不一样的,起到对于一些重要参数的保护作用;总复位模块:主要是对系统进行硬件的初始化和轴的回原点;手动测试模块:如图3所示该模块包含了两部分内容:1)对轴的位置参数进行设置实现手动控制轴的运动;2)对相机功能的测试;相机校验模块:该模块主要是通过XY轴的联动找到所要抓取的工件,并获取圆心坐标;自动测试模块:该模块是在完成相机校验后,通过对工件位置偏差的自动补正及图像清晰度算法使相机的处于最佳拍摄距离时确定的XYZ轴运动位置,实现准确抓取工件,并将工件置于指定位置;退出程序模块:当系统的所有步骤完成后,用户想停止运动控制平台则可以将程序退出。在整个程序设计中采用了单生产者多消费者架构,便于对程序进行维护及系统功能的完善。
图2 系统主界面
图3 手动测试程序前面板
2.1 手动测试程序设计
手动测试程序主要是系统在自动运行前对轴、相机功能的检测,其前面板如图3所示。相机的检测通过NIIMAQdx选板中的相关函数对打开相机、获取图像、保存图像、关闭相机进行依次检查。对轴的控制需具备LabVIEW关于调用库函数相关知识。LabVIEW通过调用库函数节点(Call Library Function node,简称CLN)实现对第三方硬件动态链接库(DLL)和API(应用程序接口)函数的调用。本系统中利用CLN调用Galil运动控制卡DMC-1842的驱动程序。首先在框图程序中创建一个空的CLN,CLN位于“函数模板→互连接口→库与可执行程序子模板”,继而按照文献[6]的步骤进行相关设定,最后按照功能要求完成程序设计。图4所示程序框图实现Z轴相关参数的配置:SP是轴运动的速度,AC是轴在运动之初的加速度,DC是当轴快运动到位时的减速度,而PR是手动时设置所需要的运动长度。将所有的设置参数放在一个数组中,经过For循环与IGalil调用节点的command相连接,再将“BG Z”的指令发给command,即可使Z轴运动到设定位置。同理,X、Y轴的运动到点只需将Z改为X、Y。轴Z的停止是发送“ST Z”指令给IGalil调用节点的command。同理,X、Y轴的运动停止分别发送“ST X”、“ST Y”。命令的使用及含义参见Galil_DMC-18×2使用手册[4]。
手动测试可以实现对X、Y、Z轴运动的调试,可对其位置、速度、加减速度进行设置,如图3所示的前面板中X轴的速度为50000计数单位/秒、X轴的位置为50000计数单位。自动运动时需要实际距离,在手动测试中可以通过以下操作将计数单位换算成距离,以X轴为例,可以先手动让电机停在需要的终点位置,然后在配置中设置绝对位置为0,再通过回原点指令让电机回到原点,电机停止运动通过TP指令读出此时X轴的位置即为X轴所运动的距离。但指令中所读出的距离单位是计数单位,因此需要对读取的数值进行转换,让电机从绝对零点运行10000个计数单位读出此时的输出位置“坐标显示”,得到的比例即为10000/“坐标显示”,通过多次运动计算和调整即可得出电机需要运动的实际距离与计数单位之间的关系,Y、Z轴同理。
图4 LabVIEW与Galil运动控制卡交互程序框图(部分)
2.2 相机校验程序设计
相机校验模块主要功能是自动调整工作距离,从而确定Z轴到工件需运动的距离,其流程如图5所示。首先进行相机初始化,继而控制XY轴联动找到目标工件,通过相机获取工件图片,其次对所获得的图片进行处理分析,运用NI IMAQ VISION工具进行ROI提取,从而得到圆的中心像素点坐标,对找到的工件进行XY轴位置的补正。
根据Brenner算法来确定Z轴运动位置,Brenner算法是评价图像清晰度函数,是以Brenner算子为基础,只计算相差两个单元的两个象素的灰度级差,具有简捷实用、计算量少等特点[7]。一幅大小为M×N的灰度图像f(x,y)的Brenner清晰度评价算法的定义为:
由式(1)图像清晰度评价函数得出每次校验的Brenner值,再通过比较值的大小,得出最清晰的工件图片Z的位置,即确定了完成抓取工件Z轴所需运动的距离。
图5 相机校验程序流程图
图6 自动测试程序流程图
2.3 自动测试程序设计
通过手动测试程序检查运动平台及相机是否处于正常工作状态,相机校验程序用于工件圆心位置即XY轴坐标和Z轴运动距离的确定。自动测试程序流程图如图6所示,首先对相机和轴位置进行初始化,继而XY轴联动寻找目标工件(Z轴位于最佳工作距离处),找到工件后进行拍摄并进行处理后获取圆心,此时圆心并未在参考坐标系正中,因此需计算XY轴需补正的量,计算结束后得到新的X、Y、Z轴需运动的距离,再一次XYZ轴联动,同时打开磁铁通道吸取目标工件,运动到放料位释放工件。
3 结束语
基于机器视觉的三维运动装置定位抓取系统以“PC机+CCD+运动控制卡”为主要硬件,以LabVIEW作为开发语言,开发效率高,可大大减少开发时间,而且调试比较方便,可以使运动系统的控制更加方便和快捷。以PC机作为上位机,运用LabVIEW进行程序设计实现对轴运动的位置、加速度、速度等参数进行设定,完成人机界面管理、信息显示和预处理;运动控制卡作为下位机是运动控制的核心,用以接收来自PC机(LabVIEW)的控制命令并进行实时处理,实现运动控制;用CCD相机辅助寻找目标工件,降低了因定位误差而造成的运动控制系统不能正确完成任务,视觉的引入相当于外部的闭环控制机制,保证运动控制系统能自动补偿由于位置变化而带来的误差。
[1] 运动控制--未来先进“智能制造”的核心[EB/OL].http://www.robot-china.com/zhuanti/show-1042.html.
[2] 贺昌勇,张厚江,祖汉松.基于虚拟仪器运动控制技术的现状与发展趋势[J].林业机械与木工设备,2014, (2):9-12.
[3] 梁永忠.基于LabVIEW的多轴运动控制器应用研究[D].广东: 广东工业大学,2010.
[4] Galil_DMC-18×2使用手册[EB/OL], http://www.power-land.com/download.aspx?nid=46.
[5] ICM-1900ID说明书[EB/OL], http://wenku.baidu.com/link?url=d3ey3pZs9XN_XusSB7PyTLD_Oh4LLdHyEmU1WPS X9PC3RDvLQ4JsGIRoKuTY5S4VuQF16erZE1U0Rt6TQqkvhT zjx9qGULqM_gL40PpZ-Le.
[6] 陈树学,刘萱编著. LabVIEW宝典[M].北京:电子工业出版社,2011.
[7] 王健,陈洪斌,周国忠,安涛.改进的Brenner图像清晰度评价算法[J].光子学报,2012,41(7):855-858.
A positioning and grabbing system by three-dimensional motion device based on machine vision
CHEN Fei, WANG Fei, LIU Lei
TP27
:A
:1009-0134(2017)08-0025-04
2017-04-23
陈飞(1978 -),女,浙江鄞县人,副教授,硕士,研究方向为计算机先进控制技术与先进检测技术。