
标题:基于机器视觉定位拾取的工业机器人码垛设计
文档介绍:
第一章 绪论
1.1 课题研究背景
工业机器人是智能制造的主要设备,在搬运、焊接、装配、喷涂等许多工业部门得到了广泛的使用。码垛作业属于工业生产物流环节中的一部分,它要把物料按一定排列方式、层数堆放到托盘上,便于后面的存储与运输。传统的工业机器人码垛系统一般用示教再现或者离线编程的方法,让机器人按预定固定的路径、位置去抓取并放下物件。该方法在生产品种单一、物料的进料位置固定不变的情况下使用起来比较方便,而且生产效率较高。
但是随着市场需求的快速变化,制造业的生产模式也由原来的大批量标准化生产转变为小批量、多品种的柔性生产。在这样的情形下,生产线需要经常更换产品型号,物料的来料位置以及姿态都是随机的。传统的固定路径码垛方式不能适应物料位置的变化,当物料位置发生偏移时,机器人就会出现抓不到物料或者与其它物体发生碰撞的情况。另外,传统的方式在换产的时候要重新示教编程或者修改程序,调试周期长、成本高,不能满足柔性生产对于快速响应的要求。
机器视觉技术的引入为解决上述问题提供了有效途径。机器视觉就是给工业机器人加上了眼睛,让工业机器人可以在现场实时了解工件的位置、姿态以及工件种类等信息的基础上,根据需要的变化去调节对工件的抓取方式以及运动轨迹从而达成定位、取货以及码垛等工作的自动化控制。视觉引导的机器人系统具有较强的环境适应性,能够应对来料位置随机、品种繁杂的情况,使系统更加柔性和智能化。
ABB是世界上最大的工业机器人制造商之一,产品有小型搬运几十克物料的协作机器人、大型搬运几百公斤物料的工业机器人等。ABB近几年来推出的OmniCore控制器平台统一了全系列产品的控制架构,配合使用RobotStudio离线编程仿真软件,给复杂的机器人系统设计和调试提供了强有力的工具支持。RobotStudio用真实的虚拟控制器技术,可以在计算机上完成机器人工作站的搭建、程序的编写和运动的仿真,并且仿真结果和实际运行结果高度一致。因此,在虚拟环境中做视觉引导机器人系统方案验证就成为可能,大大降低了现场调试的成本以及项目的风险。
本课题是在以上背景下,在ABB工业机器人基础上,结合机器视觉系统、PLC控制器以及HMI人机界面等部分来完成视觉定位拾取的智能码垛系统的系统设计,并对系统的仿真进行验证,从而给实际生产线上应用该系统提供技术支持。
1.2 国内外研究现状
在工业机器人视觉引导技术方面,国内外的学者和工程技术人员做了大量的研究工作,取得了许多研究成果。
邱高磊等人的智能乒乓球拾取机器人采用机器视觉与机器人结合的方式,在检测到乒乓球位置之后驱动机器人拾取。陈佳园、石璇就地铁隧道特殊作业环境而言,设计了一种远程拾取机器人,有效地解决了复杂的环境当中目标识别和定位的问题。从以上的研究结果可知,在非结构化的环境中,用视觉引导技术进行物体的拾取工作时,有着较好的应用前景。余师辉等以PLC和机器视觉为基础设计出智能码垛控制系统,利用视觉系统来获取物料位置信息,然后由PLC控制机器人完成码垛任务,从而达到系统之间的协同控制。杨柳、常慧芳提出了一种基于视觉定位的拆垛码垛控制算法,对垛型规划以及抓取顺序进行改进。张飞等人的研究主要是对化肥袋包装进行智能码垛,在化肥袋的包装上使用了机器视觉的方法来进行识别、定位等操作。
在机器人路径规划上,罗轩提出了一种基于三维视觉的料框分拣避碰路径规划方法,用三维视觉信息来引导机器人在复杂环境中规划出无碰撞的路径。郜军涛就堆叠零件的拾取问题开展了三维视觉引导的机器人拾取关键技术的研究工作,对堆叠场景下抓取点的规划问题进行了研究。庄晓岩利用OpenCV研发出一个工业机器视觉软件,可以实现图像采集、处理、通信等各方面的功能。康佳就复杂的工业环境拆垛机器人视觉定位技术做了详细的研究,提出适合光照变化、背景干扰的定位算法。
国际上Ahmed等人对黄瓜采摘机器人的技术发展、挑战及未来走向做了系统的综述,概括出了农业采摘机器人中视觉引导技术的应用状况。Sayed等人对太阳能农业机器人进行系统综述,研究各种技术的协同使用。Ghorbanzadeh等人就机器学习以及深度学习技术在土壤性能预估时存在的可解释性难题做研究。
综合分析已有的研究可以发现,视觉引导的机器人系统已经成为了智能制造领域内的研究重点,涉及的技术有图像处理、机器人运动控制、系统集成等各个方面的内容。但是目前的研究大多集中于单一技术环节的改进上,对从视觉定位到机器人抓取再到码垛放置的全流程系统的集成以及基于Profinet工业以太网的异构设备协同控制等还缺乏系统的研究。另外用仿真软件对视觉引导码垛系统全过程验证的研究很少。本课题正好弥补了上述不足之处,对基于机器视觉定位拾取的工业机器人码垛系统进行设计与仿真研究。
1.3 主要研究内容
本课题主要的研究内容就是设计出一个基于机器视觉的智能码垛集成系统,然后进行仿真验证。具体有视觉定位技术研究和实现。视觉系统属于系统的感知层,主要对传送带上物料位置进行获取。本文主要研究内容为选择和参数设置工业相机、图像采集与预处理、物料识别与定位算法设计以及相机和机器人之间的手眼标定。经过视觉处理,从图像中得到物料在图像坐标系中的位置,然后进行坐标变换,将目标位置转换到机器人可使用的基坐标系中,给机器人抓取提供准确的目标位置信息。
根据视觉系统得到的目标坐标来编写ABB机器人RAPID程序,从而达到动态抓取和准确放大的整个作业过程。抓取部分要完成传送带物料到达检测、抓取点计算、吸盘工具控制等环节;放置部分要按照码垛规划,把物料堆叠成一定高度、一定排列顺序的托盘。用RobotStudio软件创建包含机器人、传送带、视觉相机和码垛区的虚拟工作站,对机器人的运动轨迹做离线编程并仿真优化,使运动过程高效又不发生碰撞。
采用以PLC为主控制架构,用Profinet工业以太网来完成视觉系统、机器人控制器、传送带驱动器以及HMI触摸屏之间数据实时交换及逻辑同步。PLC对整个工作站的流程进行调度,即传送带启停控制、视觉触发信号发送、机器人抓取完成信号接收、码垛计数和托盘更换判断。另外还要开发HMI人机界面,可以对系统的运行状态进行实时监控、对参数进行设定、对报警进行显示以及进行手动操作。
利用虚拟环境完成系统联调测试,在其中重现了视觉识别、机器人抓取和码垛放样的全部自动运转过程。检验视觉定位是否准确,机器人的运动轨迹是否合理,系统的通信是否实时,控制逻辑是否正确。根据仿真过程中出现的问题来调整参数,修正程序,得到一套可以落地实施、具有较强灵活性的智能码垛系统。
1.4 本章小结
本章介绍了课题研究的背景,论述了现代制造业柔性化发展的过程中,传统固定的路径码垛方式所遇到的困难,并且讨论了机器视觉技术给问题提供解决途径的可能性。主要对ABB机器人以及RobotStudio仿真软件的技术特点及本课题所用到的进行阐述。综述了国内外视觉引导机器人、码垛控制系统、路径规划和系统集成等研究现状,分析了现有研究存在的不足,确定了本文的研究定位。最后对本文的主要研究内容进行简要的总结,即视觉定位技术、机器人轨迹规划、系统集成控制、仿真验证这四个方面。
第二章 系统总体方案设计
2.1 系统功能需求分析
本课题所设计的以机器视觉定位拾取为基础的工业机器人码垛系统必须具备物料自动识别和定位的功能。系统应该可以自动检测传送带上是否有物料到达,对物料进行实时识别和位置测量。当物料随着传送带运动到机器人工作范围内的时候,视觉系统需要快速地对图像进行采集、处理,准确地计算出物料在空间中的位置坐标,再将坐标数据传送给机器人控制器。视觉定位精度要达到机器人的抓取要求,位置误差不能大于规定范围。
机器人接收到视觉系统给出的目标坐标之后,应当规划出一条合理的抓取路径,使得末端执行器能够到达抓取点的位置,并且开始执行吸盘的抓取动作,将物料从传送带上传送到指定位置。抓取时要兼顾机器人运动和传送带运动,保证抓取时物料与机器人末端执行器的相对位置准确。
机器人抓取的物料之后要放到托盘上指定的位置。码垛的垛型要按照事先确定的排列方式和层数来进行堆叠。系统要具备码垛计数功能,对每层放置的物料数量及当前码垛层数进行统计,根据计数结果判定下一层物料应该堆放的位置。当一层放满之后会自动移动到下一层的放置位置,整个托盘码垛结束后系统要发出提示信号,等托盘被取出之后再重新开始计数并进行下一个托盘的码垛工作。
整个工作站包含视觉系统、机器人、传送带、吸盘等很多个设备单元,各个单元之间要按一定的顺序进行工作。视觉系统要根据合适的时机启动图像采集,机器人要根据物料到达的位置执行抓取动作,传送带要在机器人抓取的同时停止或者保持同步运动。这些协调工作应该由PLC作为主控单元来统一调度。
系统应该设有操作界面对操作人员进行监控系统运行状况、查看产量统计信息、设定码垛参数、处理报警信息以及在需要的时候做手动干预。界面应该直观易用,减小操作的难度。
图2.1 功能结构图
2.2 系统总体架构
根据上面的功能需求分析可知,本文所设计的视觉引导机器人码垛系统是由感知层、决策控制层和执行层三部分构成。
感知层使用机器视觉系统,可以得到环境信息。视觉系统是由工业相机、镜头、光源、图像处理软件组成的。工业相机安在传送带的上方适当的地方,镜头视野范围包含机器人抓取区。光源可以产生稳定的、均匀的光照,从而减小环境光引起的图像质量下降。图像处理软件运行在工控机上,对采集到的图像进行处理分析,得到物料的位置信息。
决策控制层主要用PLC为主,再加上机器人控制器、HMI触摸屏等。PLC是整个系统的主要控制单元,它接收感知层提供的各种信息,在一定的控制逻辑下对它们进行处理并给出控制信号。PLC接到视觉系统识别出的物料坐标后,判断该物料是否在机器人抓取范围内,控制传送带的启停,向机器人发出抓取指令以及放置位置信息,接收到机器人完成信号后对码垛数量及垛型进行管理。机器人控制器根据PLC发出的命令控制机器人本体按照所规划好的路线运动。HMI触摸屏属于人机界面设备,供操作人员对系统运行状况进行观察并更改参数,也可对出现的异常情况做出应对。
执行机构为机器人本体、末端吸盘工具和传送带电机。机器人本体依照控制器的指令进行空间运动,末端吸盘从事物料的抓取与释放工作,传送带将物料送入到抓取位置。各个执行单元在决策控制层的协调下一起工作。
各层之间用工业以太网来通讯。本系统使用profinet协议实现PLC、机器人控制器、视觉工控机、HMI之间数据的实时传输。Profinet属于一种开放的工业以太网标准,具备较好的实时性、良好的兼容性以及较为灵活的配置方式,可以满足本系统对于通信实时性以及可靠性的需求。
图2.2 系统架构图
图2.1为本系统整体布局图。由上图可知,系统是由ABB工业机器人、传送带、物料、托盘、控制柜等构成的。机器人在布局中心位置,前方有传送带供物料输送,右侧有托盘供码垛堆放,控制柜设在机器人后面做系统控制。这样布局可以保证机器人抓取区与放置区之间的工位之间能够互相接触,并且运动路线较短、效率较高。

图2.3 系统整体布局图
2.3 工作流程设计
本系统的自动运行流程设计如下:
系统启动之后首先要进行初始化工作,机器人回到原点,传送带复位,码垛计数器清零等。初始化完毕之后,系统就会进入等待物料到达的状态。
当物料从上游工位输送到传送带上时,传送带把物料向机器人工作区送运过来。传送带上放置的光电传感器在物料到达一定位置的时候,向PLC发出信号。PLC接到信号后使传送带减速或者停止,并且启动视觉系统进行图像采集。
视觉系统在接收到触发信号之后,控制相机抓取传送带上物料的图像,对图像进行预处理、分割、特征提取,得到物料在相机坐标系中的位置坐标。事先标定的相机坐标和机器人基坐标之间的变换矩阵,把相机坐标转成机器人基坐标的坐标。视觉系统把坐标转换以后,用profinet网络发送到PLC上。
PLC收到视觉定位结果之后,判断物料的位置是否在机器人可以抓取的范围内。若在范围内,则PLC发出抓取指令,传送给机器人,使机器人定位到指定的位置。机器人控制器接收到指令之后,规划出从当前位置到抓取点的运动轨迹,使机器人运动到抓取点上方,下降使吸盘接触物料表面,开启真空发生器产生负压吸附物料,稍微停留一会儿后再抬起,完成抓取动作。机器人发出抓取结束信号给PLC。
PLC接收到抓取完成信号以后,根据当前码垛计数来确定放料的位置。码垛计数为当前层已放置数、当前已堆层数,根据垛型规划计算出下一个物料应该放在哪里。PLC把放置坐标传给机器人控制器。
机器人控制器根据放置的坐标规划出运动轨迹,把物料运送到托盘上目标的位置,下降到合适的高度后关闭真空发生器,使物料释放出来,完成放置动作。机器人发出放置完成信号,回到需要抓取的位置。
PLC接收到放置完成信号之后就更新码垛计数。当当前层还没有放满时,等待下个物料;当当前层已经满了但是还没有达到总层数的时候,更新层数计数,重置当前层计数,等待;当总层数已经达到的时候,托盘全部码垛完成,PLC输出完成信号,提醒操作人员取走托盘。托盘被取出之后,PLC重新开始所有计数器的重置工作,从下一个周期开始码垛。
上述流程循环执行,实现连续自动码垛作业。
2.4 控制模块设计
控制模块是整个系统的核心,起着协调各个设备工作的作用。本系统的控制模块是以PLC为主,通过Profinet网络同机器人控制器、视觉系统、HMI通信。
控制模块主要作用有以下几个方面,接收光电传感器的物料检测信号,控制传送带的开停,向视觉系统发出触发信号,接收视觉系统返回的物料坐标,向机器人发出抓取和放置指令,接收机器人的状态反馈,对码垛计数进行管理,通过HMI同操作人员进行交流。
控制模块设计按照模块化原则来设计,把不同的功能封装到不同的程序块里,方便调试和维护。由初始化模块、视觉触发控制模块、机器人调度模块、码垛管理模块、异常处理模块等组成。各个模块之间采用共享的数据块互相传递信息,耦合度低,内聚性好。
图2.2给出了控制模块的结构。从图中可知控制模块由PLC控制器、HMI触摸屏、控制按钮、信号指示灯等构成。PLC控制器是主要的处理单元,用通信接口同HMI触摸屏进行人机对话,同控制按钮接收操作指令,用信号指示灯显示系统状态信息。控制柜内装有电源模块、通信模块等,给整个控制系统提供电力以及网络通信的功能。

图2.2 控制模块结构图
2.5 本章小结
本章完成系统的总体方案设计。首先对系统功能需求进行分析,分为物料自动识别定位、机器人动态抓取、自动码垛、系统协同控制、人机交互等五个部分。在此基础上建立一个层次化的结构,可以分为四个部分,分别为感知层,机器视觉系统、决策控制层、主PLC、执行层,即机器人、吸盘、传送带驱动。各个层次用Profinet工业以太网相连。整体布局图展示出各个设备的空间位置关系,控制模块图表现控制系统组成的结构。最后对系统自动运行的工作流程进行了详细的说明,对物料检测、视觉定位、机器人抓取和码垛放置的全过程控制逻辑进行了详细的阐述,为各个模块的详细设计打下了基础。
第三章 机器视觉定位系统设计
3.1 视觉系统硬件选型
机器视觉系统硬件选型对定位精度、系统稳定有影响,要根据工作距离、视野范围、精度要求、成本等各方面因素来综合选择。本课题设计的视觉系统主要是由工业相机、镜头、光源和图像处理工控机构成的。
工业相机选型时应该考虑分辨率、帧率、传感器类型、接口类型等各方面因素。在本系统中,物料在传送带上运动,在物料到达抓取区域的时候,需要快速完成图像采集、处理等工作,对于相机的帧率、曝光等有一定要求。根据成本与性能的综合考虑,选择CMOS传感器的卷帘快门相机就可以达到要求。分辨率上视野范围为400mm×300mm,定位精度要求是±2mm,所以选500万像素分辨率来满足精度要求。接口上使用了千兆以太网接口,具有较长的传输距离以及稳定的传数据性能。同时相机需要有外触发功能,可以和PLC一起同步控制采样时间。
镜头选择应以相机靶面尺寸、工作距离和视野范围为依据,求得焦距。本系统的相机安装高度大约为800mm,视野宽度大约为400mm,相机的靶面尺寸为2/3英寸,按照成像公式可以得到需要的焦距约为12mm。选用定焦镜头来降低调试的难度,镜头应该具有手动光圈调节的功能以适应不同的光照条件。为了降低由于畸变而造成的位置精度降低问题,应该使用低畸变工业镜头。
光源是决定图像好坏的因素。优良的照明可以改善目标与背景之间的对比度,削减由于环境光造成的干扰。本系统所用的物料是规则形状的工件,表面有反光,用环形LED光源从上往下照,能保证照明均匀。光源要配备控制器,可调亮度和频闪模式,与相机触发同步减少能耗并延长光源使用寿命。
图像处理工控机是用来运行图像处理算法的计算机,必须要有足够的计算能力。选用工业级无风扇工控机,采用Intel酷睿i5以上处理器、8GB内存、固态硬盘等组成满足图像处理软件需要的配置。工控机应有千兆以太网接口用来连接相机,还要有Profinet通信接口或者用网关和PLC通信。
3.2 相机标定方法
相机标定属于视觉定位的根基部分,其核心任务就是找出相机成像几何模型以及内部参数,从而创建起图像像素坐标同空间物理坐标之间的映射联系。本系统要进行相机内参标定、手眼标定。
相机内参标定用来确定相机的焦距、主点坐标、畸变系数等内部参数。这些参数体现的是相机本身的成像特性,是开展畸变校正以及坐标变换的根基。采用张正友标定法进行内参标定,用平面棋盘格标定板,从不同的角度拍摄多张图像,提取棋盘格角点,求解投影方程得到相机内参和畸变系数。打印棋盘格标定板,粘贴在平整的平板上,把标定板放在相机视野内不同的位置、角度处,采集15到20张图像,用OpenCV或者MATLAB的标定工具箱进行计算。标定完成后得到相机内参矩阵及畸变系数,后续图像处理中先用畸变校正算法消除镜头畸变的影响。
手眼标定用来确定相机坐标系和机器人基坐标系之间变换的关系。本系统采用眼在手外的安装方式,相机安装在传送带上,与机器人基座相对位置不变。手眼标定就是求解相机坐标系到机器人基坐标的旋转矩阵和平移向量。在机器人末端装上标定针,控制机器人运动到不同的位置,使标定针尖端接触放置在相机视野内的固定参考点,记录机器人末端在基坐标系中的坐标和参考点在相机图像中的像素坐标。根据多点对应关系,用最小二乘法求解坐标系变换矩阵。为了提高标定精度,应该采集相机视野中不同的点,并且点数不小于9个。标定完成后,视觉系统识别出的物料坐标就可以用该变换矩阵转化为机器人可使用的基坐标系坐标。
3.3 图像处理与定位算法
图像处理和定位算法的主要目的就是准确地识别出传送带上物料的位置,然后计算出物料的坐标。本系统所设计的算法流程包含图像预处理、目标分割、特征提取、坐标计算这四个部分。
图像预处理阶段的主要任务就是改善图像质量,给后面的处理工作创造良好的条件。首先将彩色图像转为灰度图像来减少数据处理量。然后使用中值滤波算法消除图像中的噪声,中值滤波既可以去除椒盐噪声,又可以较好地保留边缘信息,适用于本系统应用场景。之后进行图像增强处理,用直方图均衡化法调整图像的对比度,使目标和背景的差别更加明显。光照条件变化大时,可以使用自适应阈值法代替全局阈值。
目标分割阶段把物料和背景分离开来。由于传送带背景单一,物料与背景在灰度上存在一定的差别,所以用阈值分割的方法就可以得到较好的结果。先求出图像灰度直方图,对物料和背景灰度分布进行分析,选择合适的全局阈值完成二值化,得到二值图像。全局阈值效果不好时,可以使用Otsu算法自动计算最优阈值。二值化之后图像上会有一些噪声点以及孔洞,利用形态学操作进行处理,开运算用于消除小的噪声点,闭运算用来填充目标内部的孔洞。之后利用连通域分析算法对图像中的各个连通区域进行标定,根据物料的面积和形状特征来挑选出目标区域,并且去除面积太小或者形状不符合要求的区域。
特征提取阶段求取物料位置和姿态的数值。规则形状的物料的位置用质心坐标表示,通过求目标区域内所有像素坐标平均值得到。质心坐标对目标旋转没有影响,在本系统的物料姿态有变的情况下,质心坐标可以满足要求。如果要进行更精确的定位,可以采用最小外接矩形法,求出目标区域的最小外接矩形的中心点即为抓取点坐标,矩形的方向就是物料的朝向信息。
坐标计算阶段把图像坐标系中的像素坐标转化为机器人基坐标系下的空间坐标。首先根据相机内参以及畸变系数,对质心坐标实施畸变校正,消除由于镜头畸变而造成的误差。最后利用相机投影模型把校正过的像素坐标变成相机坐标系下的空间坐标。需要知道物料所在平面的深度信息,本系统中物料放在传送带上,通过标定得到传送带平面在相机坐标系中的方程,就可以根据像素坐标求出对应的三维空间坐标。最后,用到手眼标定得到的变换矩阵把相机坐标系坐标转化为机器人基坐标系坐标。转换后的坐标通过Profinet网络传给PLC,用作机器人抓取的抓取目标位置。
3.4 本章小结
本章对机器视觉定位系统进行了详细的分析。首先对视觉系统的硬件进行了选型,即工业相机、镜头、光源、工控机等,分析各个设备选型时需要考虑的因素以及选择标准。然后介绍了相机标定方法,分为相机内参标定、手眼标定,前者用来确定相机内部参数,后者用来确定相机到机器人的坐标变换关系。最后设计出图像处理及定位算法,包含图像预处理、目标分割、特征提取以及坐标计算这四个部分,形成从原始图像到目标空间坐标的全部处理过程,给机器人抓取赋予了正确的地点信息。
第四章 机器人码垛系统设计
4.1 ABB机器人选型与配置
本系统使用ABB工业机器人作为执行单元来完成物料的抓取以及码垛的放置。ABB是世界领先工业机器人供应商,产品稳定、控制精确,配合RobotStudio仿真软件可以大大提高系统的设计和调试的效率。
根据本系统应用要求选择负载能力、工作半径、精度指标合适的机器人型号。本系统中的物料为规则工件,单件重量约为2kg,末端吸盘工具以及连接件大约1kg,所以机器人负载能力要达到3kg以上。码垛作业堆叠高度为1m,机器人抓取点、放置点在以基座为中心半径1.2m的范围内,所以需要机器人工作半径大于1.2m。综合考虑选择ABB IRB 1200型机器人,该型号负载能力为5-9kg,工作半径有700mm和900mm两种规格,选择900mm规格可以满足本系统作业范围的要求。IRB 1200速度高、精度好,是物料搬运和装配专用。
机器人控制器选择与IRB 1200配套的OmniCore控制器。OmniCore是ABB新一代统一控制平台,相比上一代系统能耗最高可以下降20%以上,并且提供更好的运动控制以及路径精度。控制器要具备基本的软件选项,包含基本运动控制软件、I/O接口软件和Profinet通信协议软件等,以供同PLC之间进行数据交换。另外还要配吸盘控制相关的I/O点,对真空发生器的启停以及检测物料吸附情况作出控制。
4.2 机器人末端吸盘设计
机器人末端执行器是直接和物料接触的部件,其设计的好坏直接影响到抓取的可靠性以及效率。本系统采用吸盘做末端执行器,相比于机械夹爪,吸盘适合于抓取表面平整的规则工件,具有结构简单、控制方便、抓取可靠、不损坏工件表面等特点。
选择吸盘要考虑到物料的形状、大小、表面状态和重量等各方面因素。本系统中使用的物料是规则长方体工件,上表面平滑光滑,可以使用吸盘进行抓取。按照物料的大小来选择直径为40mm的圆形吸盘,吸盘的材料为丁腈橡胶,丁腈橡胶有较好的耐磨性、耐油性,在工业生产中可以长时间使用。吸盘唇边采用波浪形,可满足物料表面细微起伏的情况,增大吸附的稳定性。
真空发生器的选型要依据吸盘的数量以及容积而定。本系统为单吸盘,真空发生器采用气动式,利用电磁阀来控制压缩空气的通断产生真空。真空发生器耗气量、真空度应与吸盘相适应,以保证产生足够大的吸附力。根据物料重量为2kg以及摩擦系数来估算出所需要的吸附力为30N,因此使用具有足够真空度的真空发生器就可以满足要求。
真空压力开关用来检测吸盘是否成功地吸附了物料,它是保证抓取可靠的重要的部件。吸盘与物料表面接触建立真空之后,真空压力开关检测到压力变化输出开关信号给PLC。当在某一时间间隔内没有检测到真空度满足设定值的时候,就会认为抓取失败,从而导致系统停止工作并发出报警信号,以防止出现未抓取物料就进行后续动作的情况发生。
吸盘工具的机械接口用法兰盘和机器人第六轴相连。法兰盘设计要考虑定位精度和拆装方便性,采用定位销加螺栓固定的方法。电气、气路管线沿机器人手臂外侧布置,用专用线夹、扎带固定,在机器人运动时管线不会缠绕,也不会与周边设备发生干涉。图4.1为机器人末端吸盘工具的结构。

图4.1 机器人末端吸盘结构图
4.3 机器人抓取轨迹规划
机器人抓取轨迹规划的目标就是让机器人的末端执行器从当前的位置平稳、快速地到达抓取点,并将物料抓取之后再回到安全位置。轨迹规划要顾及运动平滑、节拍时隙和安全这三个要素的关系。
抓取点位置的确定。抓取点坐标由视觉系统给出,视觉识别出的物料位置是物料的中心点,吸盘要对准这个中心点才能稳定地抓住物料。因此,抓取点的基坐标系坐标等于物料中心坐标,抓取姿态设置为吸盘平面与物料表面平行,即工具坐标系Z轴垂直于物料表面向下。传送带上物料表面法线方向为竖直向上,所以抓取姿态可以设为工具坐标系Z轴竖直向下,在所有的抓取任务中保持一致。
抓取轨迹的规划。为了提高效率,抓取轨迹要尽量直。采用三段式轨迹方案,安全点运动到抓取点正上方的一个接近点,再从接近点竖直向下运动到抓取点,完成抓取后再竖直向上返回到接近点。竖直方向运动可以保证在水平运动的过程中不和周围设备相撞。接近点设在抓取点上方50mm处,既满足安全又不会太长运动时间。在RAPID程序里使用MoveL指令做直线运动,工件坐标系选择的是机器人基坐标系。为了使运动平滑过渡,在轨迹转折处设置zone数据为fine,保证机器人准确地到达转折点之后再执行后面的运动,但对于接近点到抓取点往返运动,可以使用zone来提高效率。
吸盘控制逻辑植入到抓取轨迹当中。机器人到达抓取点之后,在等待10毫秒之后才输出吸盘吸附信号,并启动真空发生器。等待100毫秒,使真空度达到足够的水平,再读取真空压力开关的状态,判断是否吸附好了物料。如果吸附成功机器人向下移动接近点;如果吸附不成功程序跳转异常处理流程发出报警信号并停止运行等待人工干预。
运动参数的选择。机器人运动速度要达到效率和稳定性的双重目的。水平运动速度设为500mm/s,竖直运动速度设为200mm/s,加速度参数取系统默认值。经过仿真检验,单次抓取动作的时间为1.5秒左右,可以达到码垛作业的节拍要求。
图4.2为吸盘抓取工件工作状态图。从图中可以看出,吸盘与工件上表面紧密接触,真空发生器建立负压后,吸盘牢牢吸附在工件上,机器人手臂带动吸盘及工件一起移动,把工件从传送带上提起并移到放置处。

图4.2 吸盘抓取工件工作状态图
4.4 码垛放置规划
码垛放置规划任务就是根据预先设定的垛型来计算出机器人放置物料的目标位置,然后使机器人把物料精确地放到托盘上的指定位置上。
垛型设计。本系统使用最常用层叠式码垛方式,每层物料呈矩阵排列,层与层之间转90度提高堆叠的稳定性。以每层3行3列共9个物料为例,托盘尺寸为800mm×800mm,单个物料尺寸为200mm×200mm,层间间隙为10mm。第一层物料的放料坐标按行、列来计算,行间距为物料宽度加上间隙即210mm,列间距也相同。第一行第一列物料放置位置距托盘边缘100mm处作为计算依据,可以得到每一个放置点的坐标。第二层物料放置时,整体与第一层相旋90°,行距、列距交换,使物料错落成堆。
楼层的布置。根据物料的高度以及机器人可以到达的范围来确定码垛层数为5层。每层放置后下一层的放置高度为上层的高度加上200mm即为200mm。因此第n层物料的放置高度是物料高度的(n-1)次方。
码垛计数。PLC上需要有当前层已经放置的数量、当前层序号以及已完成总数这三块计数器。机器人完成一个放置动作之后,PLC更新当前层已经放置的个数加1,看是否达到该层预设数量9个。若小于,则获取下一个放置点的坐标并等待下一次抓取;若已到达,则继续判断当前层序号是否达到总层数5层。若不达到总层数,则增加当前层序号,把当前层已放置的数量重置为0,求得新层第一个放置点的坐标;若已达到总层数,说明整个托盘码垛完成,PLC输出完成信号并停止码垛过程。
放置轨迹的设计同抓取轨迹一样。机器人抓取物料之后运动到中间过渡点,再从过渡点运动到放置点正上方的接近点,竖直下降到放置点,释放物料后再竖直上升到接近点,最后返回过渡点或者直接去下一个抓取。过渡点的位置布置可以使机器人从抓取点到放置点之间不经过危险区域。
图4.3 机器人放置工件工作场景图
4.5 运输系统设计
运输系统是把物料由上游工位运送到机器人抓取区的系统,也是整个码垛系统的重要组成。本系统运输系统是以传送带为主,配合光电传感器完成物料的自动输送、到达检测。
选择传送到所带物料重量和尺寸、输送速度。本系统中物料单件重量约为2kg,传送带宽度应大于物料宽度,选择宽度300mm的平皮带传送带。传送带驱动电机选择减速电机,用变频器控制速度,根据需要调节输送速度。传送带表面做防滑处理,保证物料输送时不发生滑动偏移。
光电传感器被用作检测物料是否到抓取位置的装置。传感器的安装位置要保证物料被检测到时,物料和机器人抓取点之间距离在机器人工作范围内。传感器选择对射式光电传感器,发射端、接收端分别装在传送带的两边,物料经过时遮挡光线,传感器发出信号。该种检测方法具有较高的可靠性,不被物料颜色、表面材质所影响。
传送带和机器人之间用PLC来实现。当光电传感器检测到物料到达的时候,PLC会控制传送带减速或者停止,使机器人能抓取物料;或者保持传送带运动状态,让机器人用跟踪的方式抓取物料。本系统采用前一种方案,即物料到位后传送带停止,机器人从静止的传送带上抓取物料,控制简单,定位精度高。
传送带的启停控制要考虑加减速时间,防止物料因为惯性而移动。减速时间设置要保证物料到抓取区域时能平稳地停住,不能出现滑动或者倾倒的情况。加速时间设为物料能平稳起动,不能有大的冲击。
图4.4为传送带运输物料情况。图中物料以一定的速度通过传送带,被传送带带动到机器人抓取区。传送带表面平整、物料放置平稳、光电传感器安装于传送带两侧,对物料的到达进行检测。
本章完成了机器人码垛系统的设计。首先对ABB机器人进行选择,使用IRB 1200机器人配合OmniCore控制器。接着设计了机器人末端吸盘工具,即吸盘、真空发生器、真空压力开关等的选择及机械接口的设计。接着对机器人抓取轨迹进行规划,采用三段式轨迹,设计出接近点到抓取点之间运动的路径及吸盘控制逻辑。之后就对码垛放置规划进行了设计,包含垛型设计、层数规划和放置轨迹规划,给出了PLC中码垛计数的控制方法。最后设计出运输系统,有传送带的选择、光电传感器的配置以及启动停止的控制方法。通过吸盘工作状态图、放置工作场景图可以清楚地看到机器人作业的过程,形成机器人抓取和码垛作业完整的控制方案。
第五章 控制系统集成与仿真
5.1 PLC控制逻辑设计
PLC是整个系统的控制中枢,它控制视觉系统、机器人、传送带,使整个系统达到自动运转的目的。本系统使用西门子S7-1200系列PLC,该系列PLC具有较好的性价比以及丰富的通信功能,可以和Profinet协议配合使用,在中小型自动化系统中使用较多。
PLC的I/O点分配为数字量输入,传送带物料检测光电传感器信号、机器人抓取完成反馈信号、机器人放置完成反馈信号、吸盘吸附成功检测信号、系统启动按钮、系统停止按钮、急停按钮等。数字量输出传送带启动控制信号、传送带停止控制信号、视觉系统触发信号、机器人启动抓取控制信号、吸盘电磁阀控制信号、系统运行指示灯、报警指示灯等。可以采用模拟量输入模块进行气源压力的检测。
PLC控制程序用梯形图语言来编写,按照功能模块化的方式进行组织。主程序完成系统的初始化以及主循环调度工作。初始化模块在系统启动时执行,有复位所有的计数器、机器人回到原点的指令发出、传送带停止、系统状态标志设置等。主循环不断对系统的状态及各个输入信号进行检测,然后按照现在的状态执行相应的子程序。
视觉触发控制子程序是物料检测和视觉采集的总控者。当光电传感器检测到物料到达的时候,子程序会先检测传送带是否在运行,如果传送带是在运行状态中的话,就发出传送带停止的信号。等待传送带完全停止之后,发出视觉触发信号,开始对图像进行采集。另外再启动一个计时器,直到视觉系统得到返回处理结果为止。若超时没有得到结果,就进入超时处理,发出报警信号并停止工作。
机器人调度子程序用来向机器人发出抓取和放置指令。PLC接收到视觉系统返回的物料坐标后,子程序判断坐标是否在机器人可以抓取的范围内,如果在范围内就向机器人发送抓取指令,将坐标数据写入到机器人控制器的数据块中。机器人完成抓取后返回抓取完成信号,子程序收到抓取完成信号后,根据当前码垛计数计算出放置坐标,给机器人发送放置指令和放置坐标。机器人放完料后发送放置完成信号,子程序中增加计数器,并判断是否需要结束本轮码垛。
码垛管理子程序完成码垛计数、垛型数据的维护。子程序内部保存垛型配置参数,即每层行数、每层列数、总层数、物料尺寸、层间间隙等。这些参数可以由HMI来更改以满足不同的规格的物料以及托盘。子程序有俩个重要的接口函数,一个获取下一个放置坐标,根据当前计数来算出坐标值,另一个是更新计数器的状态,即放置完成时更新计数值。码垛完成的判断逻辑在该子程序中也实现了。
异常处理子程序主要用来监视系统运行过程中发生的各种异常状况,比如视觉定位超时、抓取失败、机器人运动超时等等。异常出现的时候子程序会把故障信息记录下来,发出报警信号,停止传送带的工作,同时使机器人停止运行。操作人员排除故障后,用HMI上设置的复位按钮消除报警并启动。
5.2 码垛计数与托盘管理
码垛计数、托盘管理属于本系统的关键部分,和码垛作业是否正确、连续有着直接的关系。系统要准确地统计已经抓取、已经放置的物料数量,判断什么时候完成一层、什么时候完成整垛,在托盘满之后等待更换。
计数机的设计。系统维护有三个主要的计数器,层内计数器用来记录当层已经放置了多少个物料,开始时设置为0,每次成功放置一个物料就加1,层计数器用来记录已经完成的总层数,开始时设置为0,每当层内计数器达到每层物料数量时加1,总计数器用来记录整个系统已经放置了多少个物料,用于产量统计。另外还要有一个标志位来表示当前托盘是否已经满了。
放样位置的计算。垛型确定之后,其所在的层数、行号、列号一起决定放置的位置。当层内计数器的值是k的时候,当前行号就是k除以每行列数的商,当前列号就是k除以每行列数的余数。放置点的X坐标为托盘起始X坐标加列号乘行间距,Y坐标为托盘起始Y坐标加行号乘列间距,Z坐标为当前层数减一乘物料高度。对旋转码垛的方式来说,奇偶层的行间距与列间距要进行调换。
托盘满处理逻辑。当层计数器达到预设总层数、层内计数器达到每层物料数量的时候,就认为托盘已经满。PLC输出满垛信号之后,指示灯或者HMI发出更换托盘的提示信息。与此同时停止了码垛作业,等待托盘被拿走。操作人员取出满托盘、放空托盘,然后按复位键,系统复位所有的计数器,重新开始码垛。
图5.1为托盘码垛完成后状态图。由图可知托盘上已经放了8个物料,排列整齐成两层。当物料的数量达到了设定的托盘容量的时候,系统就会发出“运走”来保证能够持续运作。图中的数字8代表需要运走8个才能工作的情况。

图5.1 托盘码垛完成需要运走状态图
计数防错的设计。为了保证计数的正确性,系统做了很多防止出错的措施。抓取完成、放置完成的反馈信号要同时满足才会开始计数,不能因为信号丢失而造成计数出错。每次放置之前会检测目标位置有没有被占用,防止重复放置。层内计数器设置有上限保护,防止因为程序错误造成计数溢出。关键计数器值会被周期性的存放到断电保持存储区中,在发生意外断电的时候可以恢复出来。
5.3 Profinet通信配置
Profinet是PROFIBUS & PROFINET International组织定义的工业以太网标准,具有实时性好、兼容性强、配置灵活等优点。本系统采用Profinet实现PLC、机器人控制器、视觉工控机和HMI之间的数据交换。
网络拓扑采用星型结构,以工业以太网交换机为中心,各设备通过网线连接到交换机。IP地址规划如下:PLC为192.168.1.10,机器人控制器为192.168.1.20,视觉工控机为192.168.1.30,HMI为192.168.1.40。子网掩码统一为255.255.255.0,网关设置为192.168.1.1。
在PLC端进行Profinet配置时,需要使用TIA Portal软件。先在硬件目录下添加机器人控制器作为Profinet IO设备,安装ABB机器人提供的GSD文件。导入GSD文件后,将机器人控制器拖拽到Profinet网络上,设置好它的设备名称以及IP地址。最后配置通信数据交换区,即PLC发给机器人的指令字节、坐标数据,机器人发给PLC的状态字节、完成信号。同样,将视觉工控机用作Profinet设备进行配置,设置输入输出数据区的大小以及数据类型。
机器人控制器端做Profinet配置时,使用RobotStudio软件连接控制器,在配置菜单中开启Profinet功能,把设备名称和IP地址设成和PLC端一样的值。然后定义数据映射关系,把PLC写入的数据块中的指令字节映射到机器人程序中的变量,把机器人程序中的状态变量映射到发送给PLC的数据块中。
通信协议的设计为PLC向机器人发出的数据是1个字节的指令码和6个浮点数的坐标数据。指令码01为抓取,02为放置,03为回原点。抓取指令目标坐标为坐标数据,放置指令的放置坐标为坐标数据。机器人给PLC发出一个字节状态码,即01为空闲,02为运行中,03为抓取成功,04为放置成功,05为故障。通信方式为主从式,PLC为主站,机器人为从站,主站主动发命令,从站被动应答。
5.4 HMI人机界面设计
HMI人机界面为操作人员同系统间的交互窗口,用来监视系统的运行状况,设定运行参数,察看产量情况,并对报警进行处理。本系统使用的是西门子KTP700触摸屏,同品牌的PLC有较好的兼容性。
HMI界面按功能分为若干个页面,用底部导航栏切换。主监控页面反映的是整个系统的运行情况,即传送带运行指示、机器人所处位置以及状态、码垛计数情况等等。在页面中央用图形化的形式显示托盘和存放的物料,使用不同的颜色区分出已经定位好的物料和未定位好定位好的物料,有利于操作员掌握码垛的进度。页面底部会给出当前层、当前层已经放置的个数以及总的完成数量。
参数设置页面是配置码垛参数的界面,可以满足不同的规格物料以及托盘使用。可以设置的参数有每层行数、每层列数、总层数、物料长度、物料宽度、物料高度、托盘长度、托盘宽度、起始偏移量等。参数输入用数字输入框,给出合适的取值范围。参数修改要输入密码以防止误操作。参数修改后系统提示保存,保存后新的垛型马上生效。
手动操作页面是调试系统、处理异常的页面。页面有独立的按钮来控制传送带启停、机器人运动到指定位置、吸盘吸附与释放等。手动操作时要将系统切换到手动模式,防止和自动程序发生冲突。页面中也设有轴位置的显示以及点动控制的功能,有利于调试时准确找到位置。
报警页面可以显示系统报警信息以及历史记录。当系统出现异常的时候,会弹出报警页面,显示出报警代码、报警内容以及报警的时间。常见的报警有视觉定位超时、抓取失败、机器人运动超时、气源压力不够等等。操作人员在发现问题之后按照报警提示去排除,然后确认无误之后点击确认按钮消除报警并重新启动运行。历史记录可以保存最近100条报警信息,方便以后进行分析。
产量统计页面可以查看到当日产量、累计产量、当前班次产量等。统计信息自动生成保存,可以按日期查询、导出。页面上还会给出系统运行时间、设备利用率这些指标,给生产管理工作提供数据支持。
5.5 RobotStudio仿真验证
RobotStudio是ABB机器人配套的离线编程和仿真软件,使用和真实的控制器一样的虚拟控制器技术,仿真结果和实际运行高度一致。本课题利用RobotStudio创建虚拟工作台,对所设计的系统做全流程仿真测试。
虚拟工作站创建。在RobotStudio里新建项目,从机器人库中选取IRB1200机器人并放置到工作站上。将传送带模型、物料模型、托盘模型和相机模型导入系统,按实际情况的布局尺寸调整位置。传送带放在机器人前面,机器人基座中心距传送带中心300mm,托盘放置在机器人右侧方便移动。相机安装于传送带上方500mm处,在抓取范围内。所有的模型的位姿参数用实际尺寸来精确设置。
配置smart组件。为了使物料在传送带上运动,使用了具有线性运动的Smart组件。此组件确定物料运动轨迹和速度,在仿真时可以让物料从传送带的一端产生、沿着直线运动到达另一端并消失。设置了物料生成器,按设定的时间间隔产生新的物料,模拟连续的进料。配置了传感器来检测物料是否到达抓取区域,当物料进入传感器范围时发出信号,模拟实际系统中光电检测的功能。
机器人程序编写和调试。在RobotStudio上编程RAPID程序来完成抓取和放置全过程。程序里定义了主程序、抓取子程序、放置子程序。主程序循环等待抓取信号,收到信号时就调用抓取子程序,抓取成功之后调用放置子程序,接着回到循环开始的地方。程序中用Profinet通信接口获取PLC发送的指令及目标坐标,写入状态信号供PLC读取。程序编写完毕后要进行语法检查以及逻辑检查。
仿真运行并加以检验。启动仿真之后,对物料由传送带的始端发出,往抓取区域移动的过程进行观察。当物料进入抓取区域的时候,传感器被触发,机器人启动抓取程序,根据视觉系统给出的坐标运动到抓取点上方,下降抓取物料后抬起,运动到放置点上方,下降释放物料后返回。该过程在仿真中一直运行,保证了机器人的轨迹没有碰撞,运动是平稳的,节拍也合适。经过仿真记录的数据得知单次抓取放置循环时间为3.2秒,满足设计指标。
调整完善。仿真过程中发现机器人从抓取点直接运动到放置点时轨迹经过传送带支架附近存在碰撞的风险,用在两点之间加中间过渡点的方法解决了这个问题。另一方面,在初始化的轨迹参数下,因为机器人的运动加速度比较大,所以末端出现剧烈的振荡,调整速度和加速度来使运动更加平滑。经过多次仿真的调整,得到可以满足所有要求的运动参数及轨迹。
5.6 本章小结
本章完成了控制系统集成设计以及仿真验证工作。首先对PLC的控制逻辑进行了设计,对I/O点进行了分配,把梯形图程序划分为各个功能子程序,各个子程序的执行过程也设计了出来。设计了码垛计数和托盘管理功能,设置了计数器、放置位置计算方法、托盘满处理方法和计数防错措施,并用满垛状态图给出了托盘完成后处理的过程。接下来就进行了Profinet通信网络的配置工作,设置好IP地址、通信协议等参数,使PLC同机器人控制器可以进行数据交换。之后又设计出HMI人机界面,包含主监控页、参数设置页、手动操作页、报警管理页和产量统计页等几个主要的页面。最后利用RobotStudio建立虚拟工作站,设置Smart组件进行物料的自动输送,编写RAPID程序进行仿真运行,并对仿真过程中出现的问题进行了分析,根据分析结果对轨迹进行了优化,得到了一套可靠的工艺方案。






