基于机器视觉与RobotStudio的饼干包装生产线仿真
2022-03-23郝瑞林周利杰蔡国庆孙迎建
郝瑞林 ,周利杰 ,蔡国庆 ,刘 辉 ,孙迎建
(1.沧州市工业机械手控制与可靠性技术创新中心,河北沧州 061001;2.河北省工业机械手控制与可靠性技术创新中心,河北沧州 061001;3.河北水利电力学院 机械工程系,河北沧州 061001)
0 引言
针对饼干包装生产线上包装盒由于位置、角度不一致导致装箱困难问题,首先要变无序为有序,通过机器视觉技术可识别物体的位置、角度、类别、颜色、缺陷等信息,利用这些信息可将复杂多变的情况归类处理,实现预期目标[1-5]。得到位置、角度信息后,机器人便可对产品进行智能抓取。在生产线上调试费时费力不经济,可先通过软件仿真调试。RobotStudio是ABB机器人仿真软件,在食品、药品、汽车等生产线上均有应用,可仿真分拣、上下料、码垛、焊接等工作,实现建模、仿真、编程等基本功能,模拟真实环境,配置机器人周边设备[6-11]。本文基于机器视觉和RobotStudio软件设计饼干包装自动生产线仿真系统,可将无序放置的盒装饼干智能抓取且有序装箱[12-13]。
1 创建仿真模型
离线编程是机器人系统投资回报最大化的最佳方式。相较于并联机器人,串联机器人具有更大的工作空间、更加灵活的翻转角度。本文选用负载3 kg的ABB串联机器人IRB120_3_58_G_01,简称IRB120。首先在Solidworks软件中创建机器人的末端锁紧器、吸盘等部件的3D模型,然后将其导入RobotStudio软件。将包装生产线所有设备及原料进行布局,如图1所示。
图1 饼干包装生产线仿真模型Fig.1 Simulation Model of Biscuit Packaging Production Line
2 生产线仿真设计
2.1 生产线工作任务
生产线计划将一条传送带上3盒不同位置和角度的饼干,通过视觉识别自动放置到另一条传送带的箱子中。具体步骤如下:(1)200×50×50 mm的盒装饼干在盒传送带上运输时,呈现位置和角度均随机的不规则情况,末端传感器在检测到盒装饼干时,使盒传送带停止;(2)饼干箱可容纳3盒饼干,且均匀地由箱传送带运输,箱传送带传感器在检测到箱子到达时停止;(3)在盒传送带、箱传送带全部停止后,由工业相机对盒装饼干进行拍照,检测盒装饼干的中心位置(x,y)及偏离角度a,通过socket通讯将数据传送给机器人;(4)机器人接到信息后,通过对示教点的偏移指令用吸盘抓取饼干,并在提升过程中将饼干盒旋转至装箱角度,同时,盒传送带将后续饼干传送到末端,待抓取;(5)机器人按照次序放置第1盒饼干,放好后机器人末端提升100 mm,待下一次抓取,若后续饼干到达,则与抓放第1盒饼干过程相似,即拍照—抓取—放置,如此循环;(6)在放好第3盒饼干后,箱传送带末端传感器强制失效一段时间,则箱传送带运动,后续饼干箱到达后立即停止,再装箱直至MES下达的任务结束停止。
2.2 串联机器人运动规划
依据生产线任务,对串联机器人IRB120的运动轨迹进行规划设计。末端执行器为小型胶底吸盘,工具中心点TCP设置在吸盘末端圆心处。机器人运动规划路径如图2所示,“●”表示吸盘TCP经过的位置点,“→”表示吸盘TCP运动的轨迹。在放置点pPut1、pPut2、pPut3和拾取点pPick的正上方100 mm处分别设置1个点,使得运动更加顺畅、无磕碰。机器人初始位置位于pHome点,通过拍照计算盒装饼干中心点(即pPick点)和偏移角度,后经过a→b→c将盒装饼干从pPick点拾起,根据次序不同分别放置在3个不同放置点 pPut1、pPut2、pPut3,放置结束后通过g1/g2/g3返回pHome点。待3盒饼干全部装箱后,仍返回pHome点等待指令。
图2 机器人饼干装箱路径规划Fig.2 Path Planning of Biscuit Packing Robot
3 Smart组件设计与制作
Smart组件是RobotStudio用来制作动画的重要工具。在饼干包装生产线中,传送带起止、传感器触发、定时器间隔、饼干盒的随机摆放等都需要Smart组件进行仿真,实现各设备逻辑之间的配合。工作站中设计4个Smart组件,分别是锁紧块、吸盘组件、盒传送带和箱传送带。
3.1 锁紧块Smart组件
锁紧块Smart组件用于连接机器人第6轴法兰与末端执行器,便于机器人更换吸盘组件或夹持组件等末端执行器。在实际应用中,如遇生产线换线情况,在锁紧块上只需按下气动开关便可手动更换末端工具,无需拆除、锁紧螺丝等繁琐步骤。要实现该功能,锁紧块Smart组件中需添加线传感器(LineSensor)、获取父对象(GetParent)、安装(Attacher)、拆除(Detacher)、逻辑非门(Logicgate)、锁紧动作(Posemover)、松开动作(Posemover_2)等7个子组件。LineSensor用于检测是否接触到末端执行器,其SensedPart(圆块)通过GetParent找到吸盘组件。吸盘组件可通过Posemover或Posemover_2安装到锁紧块或从锁紧块拆除。锁紧块Smart组件设置输入信号Di1,用于激活LineSensor。
3.2 吸盘Smart组件
吸盘Smart组件用于吸附盒装饼干,安装在锁紧块Smart组件上,包含线传感器(LineSensor1)、安装(Attacher)、拆除(Detacher)和逻辑非门(Logicgate)等子组件。其中LineSensor1用于检测吸盘是否接触到盒装饼干,再通过Attacher和Detacher进行盒装饼干的吸附和放置。各子组件之间的属性连接如表1所示。
表1 吸盘Smart组件属性连接表Tab.1 Property connection table of suction cup smart components
吸盘Smart组件设置输入信号Di2,用于激活LineSensor1。各子组件之间信号连接如表2所示。
表2 吸盘Smart组件信号连接表Tab.2 Signal Connection Table of Suction Cup Smart Components
3.3 盒传送带Smart组件
盒传送带Smart组件用于运输盒装饼干,并仿真随机摆放饼干盒的位置及角度,包括定时器(Timer)、源(Source)、队列(Queue)、面传感器(PlaneSensor)、逻辑非门(LogicGate)、线性移动(LinearMover)、3个随机数(Random)、2个向量转换(VectorConverter)和3个表达式(Expression)等子组件。定时器负责触发,可仿真每个饼干盒放到传送带的时间间隔。Source可设置复制后的饼干盒位置Position与角度Orientation,分别由 3维数组表示:位置数组[x,y,z]中 z始终为0.8 m,x和y坐标由Random随机数经过转换后得到;角度数组[Rx,Ry,Rz]中只有 Rz(绕 z轴转过角度)变化,通过Random随机数使其变化。仿真得到x波动范围为20 mm,y波动范围为40 mm,角度波动范围为360°。PlaneSensor设置在传送带末端,若检测到饼干盒到达,则盒传送带停止。LinearMover可仿真传送带上物品移动的方向和速度。各子组件之间的属性连接如表3所示。
表3 盒传送带Smart组件属性连接表Tab.3 Property Connection Table of Case Conveyor Belt Smart Components
盒传送带Smart组件设置输出信号(biscuit_ready),表示饼干盒传送到位,使得传送带停止。各子组件之间信号连接如表4所示。
表4 盒传送带Smart组件信号连接表Tab.4 Signal Connection Table of Case Conveyor Belt Smart Components
3.4 箱传送带Smart组件
箱传送带Smart组件用于运输箱子,包括定时器(Timer_2)、源(Source_2)、队列(Queue_2)、面传感器(PlaneSensor_2)、逻辑非门(LogicGate_2)和线性移动(LinearMover_2)等子组件。定时器负责触发,可仿真每个饼干箱放到传送带的时间间隔。Source_2可复制饼干箱源源不断地输出。LinearMover_2可仿真传送带上物品移动的方向和速度。各子组件之间的属性连接如表5所示。
表5 箱传送带Smart组件属性连接表Tab.5 Property Connection Table of Box Conveyor Belt Smart Components
箱传送带Smart组件设置输出信号(box_ready),表示饼干箱传送到位,使得传送带停止。各子组件之间信号连接如表6所示。
表6 箱传送带Smart组件信号连接表Tab.6 Signal Connection Table of Box Conveyor Belt Smart Components
4 机器视觉识别
机器视觉部分基于海康威视VisionMaster平台实现,识别任务为计算饼干盒中心点位置(x,y)和摆放角度a,并把 x、y、a发送给机器人。以盒装饼干作为样本,方案分4步实施,包括图像源、快速特征匹配、格式化和发送数据。图像源使用本地灰度图像,像素格式MONO8。快速特征匹配需要创建特征模板,导入一张0°的盒装饼干图片,框出轮廓作识别模板,可得出任意图片盒装饼干上表面中心点x和y坐标、偏移角度等数据。格式化模块可将匹配结果以字符串格式排列起来,具体数据格式为“<2快速特征匹配.匹配点 x(%1.3f)>[0];<2 快速特征匹配 .匹配点y(%1.3f)>[0];<2 快速特征匹配 .角度(%1.3f)>[0];”,即x坐标、y坐标、角度之间以“;”隔开,以便机器人接收信息后解码。发送数据设置通信设备“TCP客户端0”,发送数据选择“3格式化.格式化结果[]”。在通信管理中设置TCP客户端0目标端口8000,打开Socket Tool监听8000端口可接收VisionMaster发送数据。图3为6张盒装饼干在传送带上的照片,计算可得到数据:(a)925.915;423.006;22.132;(b)976.519;406.725;-30.359;(c)927.618;422.206;11.451;(d)1031.800;309.349;-11.424;(e)967.905;550.991;15.368;(f)889.998;345.288;21.433。位置坐标和角度均已计算得出,下一步需根据现场情况进行相机标定,对得到数据进行坐标变换,以确定机器人运动到盒装饼干的上表面中心位置点。
图3 随机摆放的盒装饼干照片Fig.3 Randomly Placed Packed Biscuits
5 程序编写
根据任务要求,先对机器人控制器进行I/O配置,后通过工作站逻辑设置,将所有Smart组件之间的信号组成网络,最后完成离线程序的编写。假设工厂MES系统安排的生产任务为10箱饼干,生产线仿真流程如图4所示。
图4 饼干包装生产线流程图Fig.4 Flow Chart of Biscuit Packaging Production Line
根据流程图,工作站逻辑需要将各Smart组件的信号I/O连接起来。工作站需要检测盒、箱是否传送到位,即数字输入信号di3、di4;同时要有2个数字输出信号,do1负责打开或关闭吸盘吸气,box_move负责打开或关闭箱传送带上的面传感器。工作站逻辑信号连接如表7所示。
表7 工作站逻辑信号连接表Tab.7 Signal Connection Table of Workstation Logic
基于以上设置,通过Socket通信功能接收相机传来数据,通过拆解字符方式,分别获得当前饼干盒距离已存位置点pPick的偏移坐标(x1,y1)和需旋转的角度b,通过偏移指令对机器人末端进行编程运动规划。为了简化主程序,打包初始化(init)、拆解字(DecodeData)、旋转(rotZ)等3个子程序,使得主程序框架更加清晰。
6 仿真与优化
对饼干包装生产线进行仿真,饼干盒与饼干箱全部传送到位后,生产线开始拍照、计算偏移信息,机器人在抓取饼干盒后,盒传送带立即将后续饼干盒以设定速度继续传送,直到第2盒饼干到位。待3盒饼干都放置到饼干箱中后,箱传送带开始以设定速度传送,直到下一只箱被感知为止。仿真过程完全实现既定目标,吸盘抓取饼干和装箱过程实现100%准备率。假设盒传送带和箱传送带运动速度均为200 mm/s,盒装饼干每4 s投放1盒,箱每6 s投放1只,开始仿真运行,装箱10只的总时间为211.213 s。为缩短生产时间,可尽量降低pHome位置点高度,缩短盒装饼干投放间隔时间为2 s,缩短箱投放间隔时间为3 s,缩短装箱完毕后等待时间为1.2 s,装箱10只的总时间可缩短至150.239 s。根据需要调整各参数,直至满足生产需要为止。
7 结语
基于机器视觉与RobotStudio软件进行生产线仿真,可在不停产情况下任意调整参数,根据生产需求优化生产线至最合理状态。生产线结合机器视觉自动抓取随机摆放的饼干盒,省掉人工整理环节,降低人工环节出错率,提高自动化程度。若需进一步缩短生产时间,可考虑从生产线跟踪方向上研究机器人的运动规划。