APP下载

基于RobotStudio的芯片智能分拣生产线设计

2021-08-23陈柳松谢永超

计算机测量与控制 2021年8期
关键词:下料位姿工位

杨 利,陈柳松,谢永超

(1.湖南铁道职业技术学院,湖南 株洲 412000;2.中车株洲所电气技术与材料工程研究院,湖南 株洲 412000)

0 引言

由于工业机器人占地面积小、分拣效率高,且工作时不知疲倦,能节省人力成本和管理成本,已成为工业生产过程中分拣生产线的主角。工业机器人智能分拣生产线是将工业机器人技术与自动识别技术相结合,让工业机器人“聪明”起来,能根据工件种类进行分类分拣。目前,自动识别分拣有传感器识别和机器视觉识别两种[1]。传感器识别是用特定传感器识别工件的颜色、形状或材质等特性[1],但当工件更换时,传感器也要相应调整。机器视觉识别是用工业相机代替人眼接收和处理真实物体图像,以获得所需物体信息或控制机器人运动的技术[2-3]。

本文研究的是基于机器视觉识别技术的芯片智能分拣生产线,根据机器视觉识别结果引导工业机器人将芯片分拣至不同区域。由于智能分拣生产线模块较多,各模块节拍需反复调试,导致研发周期较长。利用工业机器人虚拟仿真技术能够缩短研发周期。本文将基于RobotStudio仿真软件进行芯片智能分拣生产线的设计。

文献[5-20]基于RobotStudio软件,对输送链跟踪、生产线下料、轮毂打磨、焊接工艺、手电筒装配、异形轴加工等工业应用进行了仿真研究,为本智能分拣生产线的实现提供了技术参考,但均未涉及智能分拣。孙立新[1]基于RobotStudio搭建了机器人分拣工作站,但采用的是传感器分拣识别,而非机器视觉分拣识别;管菊花[4]基于RobotStudio 搭建了瓷砖智能识别分类仿真工作站,但对于机器视觉识别仿真过程描述较简单,且未提及生产节拍协调问题。

1 工作站模型搭建

一个完整的芯片智能分拣生产线由芯片下料机、输送链、工业相机及工业机器人等模块构成,如图1所示。其中下料机为震动下料机,利用震动电机激励原理完成芯片下料工作,因此下料后芯片的位姿不固定;输送链由步进电机驱动,完成芯片传输工作。在输送链上方设置两个工位:拍照工位和抓取工位。工位下方各安装一个光电传感器,当芯片达到工位时,输送链停止工作,触发相机拍照或工业机器人抓取;工业相机完成芯片检测工作,检测出合格品和瑕疵品;工业机器人为分拣机器人,将芯片分类分拣至合格品输送链或瑕疵品输送链。

图1 工作站布局图

由于芯片体积小、质量轻,产量高,生产线对分拣速度要求高,因此选取ABB IRB360并联型工业机器人(也称高速蜘蛛手机器人)为分拣机器人,其活动范围为800 mm,抓取重量达1 kg;工业相机选取Integrated Vision camera Cam00X;除此以外,本系统还需要先在Solidworks建模软件中完成芯片等物体模型的建立,如图2所示。图(a)为芯片模型,选择常见的塑料方扁平式封装芯片;由于芯片体积小,且不能承受重力,机器人夹具采用图(b)所示的双吸盘工具;图(c)为对射式光电传感器模型;图(d)为分拣盒模型,放置于合格品输送链或瑕疵品输送链下方。模型文件格式选择STEP AP203或AP214[4-6]。模型建好后导入RobotStudio软件中,按照图1合理布局。

图2 模型图

2 仿真系统设计

2.1 系统工作流程

系统工作流程如图3所示,分为三大流程。1)首先总输送链完成初始化后输出芯片,并且芯片的位置和姿态(位姿)在输送链范围内可随机变化。这是模拟现实工业环境下芯片位姿随机的情况。当芯片滑动至拍照工位时停止滑动,等相机拍照完成后继续滑动至抓取工位,等待工业机器人来抓取。抓取完成后下一块芯片接着滑动。同一时刻输送链上有多个芯片滑动;2)相机在检测到芯片到达拍照工位后打开光源并触发拍照,把检测到的芯片位姿信息发送给工业机器人,发送完成信号给输送链;3)分拣工业机器人初始化后进入Home点等待,当收到芯片到达抓取工位的信号后,根据相机发送的芯片位姿信息调整合适的姿态去抓取芯片,最后将合格品放置在合格品输送链,瑕疵品放置在瑕疵品输送链。

图3 系统工作流程

2.2 机械装置创建

利用RobotStudio 软件中的机械装置功能,可实现芯片下料机下料效果。首先在Solidworks软件中建立下料机模型,后导入RobotStudio软件中创建成“设备”类型的机械装置。由于下料机是震动下料机,机械装置的震动盘以基座中心为核心,进行±180°的旋转运动,“接点”参数设置如图4所示。

图4 下料机机械装置创建

2.3 Smart组件设计

在 RobotStudio 软件中,除机器人和机械装置之外的动态功能是通过Smart组件实现的,Smart组件设计是工作站设计核心内容之一[4-10]。本文中设计了2个Smart组件:输送链Smart组件和抓取Smart组件。其中输送链Smart组件完成芯片下料、芯片位姿变换、芯片传输、相机检测等功能。抓取Smart组件完成机器人抓取和释放芯片的功能。

2.3.1 输送链Smart组件

实际产线中输送链是由PLC通过步进电机驱动的,本系统中用输送链Smart组件模拟相关功能,设计连接图如图4所示。

首先Source子组件在输送链的起点复制出一个新芯片,这模拟芯片下料机动作。在输送链的范围内,输出芯片的位姿可随机变化,这与实际产线工况是一致的。其中位置变化实现过程为:Random子组件输出两个随机值x和y,经VectorConverter子组件转换为矩阵后赋给Soure子组件的position属性。姿态变化实现过程为:Random子组件输出一个随机值z,经VectorConverter子组件转换为矩阵后赋给Soure子组件的Orientation属性。识别结果变化实现过程为:Random子组件输出一个布尔型随机值result,输出0代表瑕疵品,1代表合格品。由于输送链宽度有限,芯片的输出位置范围很小,x和y的随机范围取-0.1~0.1。z的单位是弧度,随机范围为-1.57~1.57,利用公式(1)换算为姿态即-90~90°。

(1)

由于输送链上会同时出现多个芯片,因此利用Queue子组件将芯片存入队列。当Queue队列中有芯片时,触发LinerMover子组件使芯片沿着X轴的正方向以100 mm/s的速度滑动。当滑动到抓取工位时,该处的面传感器PlaneSensor检测到芯片后置位输出信号DoInPos,并将芯片移出Queue队列,暂停Soure输出芯片。

在实际产线中,通常相机数据是通过网络以socket通讯协议发送给工业机器人。在本仿真系统中通过RapidVariable子组件将芯片姿态值发送给工业机器人的angle变量,将芯片位置值发送给工业机器人的pos_XY变量,将芯片识别结果发送给工业机器人的result变量。

图5 输送链Smart组件连接图

2.3.2 抓取Smart组件

实际产线中芯片的抓取和释放是通过电磁阀连接气管实现的,本系统中用抓取Smart组件模拟该操作,DiGet为输入信号,DoGetOK为输出信号。LineSensor传感器安装在机器人夹具中间,当夹具夹到芯片时,LineSensor检测到芯片。此时开启DiGet信号,Attacher子组件便将芯片安装到夹具上,并将DoGetOK输出1。当机器人抓取芯片到目标位置后,DiGet信号复位,Detacher子组件将芯片从夹具上卸下,DoGetOK输出0。

2.4 工作站逻辑

工作站系统设计完后后,机器人、Smart组件之间需要通过I/O信号进行连接,以实现机器人、输送链、相机、传感器等模块的无缝链接[9-15]。本系统中I/O信号连接如表1所示。其中System2为机器人系统,添加了di1、di2两个输入信号和do1、do2两个输出信号;SC_Move为输送链Smart组件,SC_Get为抓取Smart组件。

表1 I/O信号连接表

系统抓取和放置一块芯片的流程为:机器人输出do1信号触发SC_Move组件输出芯片,待芯片滑动至抓取工位时SC_Move组件输出DoInPos信号告知机器人开始运动。机器人运动到抓取点后,输出do2信号启动SC_Get组件开始抓取芯片,待机器人成功放置芯片后,关闭SC_Get组件释放芯片。

3 机器人程序设计

3.1 机器人轨迹规划

芯片智能分拣生产线的路径规划非常重要。如图6所示,工业机器人需示教7个工作点,具体为1个原点Phome、1个抓取点Ppick及1个抓取预备点PpickReady、1个合格品放置点PplaceNormal、1个瑕疵品放置点PplaceBbad、2个放置预备点PplaceBReady和PplaceBReady。其中Ppick随芯片位姿变化,PplaceBReady和PplaceBReady可通过偏移实现。机器人分拣流程在1~11之间循环。分拣一个合格品流程为:1→2→3→4→5→6→7;分拣一个瑕疵品流程为:1→2→3→8→9→10→11。抓取点或放置点之前都示教了预备点,在达到预备点之前由于工业机器人运动区域较大,不存在碰撞可能,可采用MoveJ线性运动指令。而预备点到抓取点或预备点到放置点时,由于距离较小,机器人需降速20%,以避免碰撞或速度过快而挤压芯片。

图6 工业机器人轨迹规划图

3.2 工作坐标定义和调整

在工业机器人系统中,工作坐标系用来确定工件的位姿。工件坐标系由uframe(用户坐标框架)和oframe(目标坐标框架)组成,oframe可根据需要实时调整。创建工作坐标系时,需确定坐标原点和坐标方向[15-20]。

为了完成芯片的分类分拣,首先工业机器人要知道待抓取芯片的位姿信息,以保证准确地抓取芯片;其次要知道芯片被抓取后的目标位姿,以保证能够准确地放置芯片[1]。由于芯片位置不固定,因此机器人抓取芯片前必须先知道抓取点Ppick的位置,以调整合适的姿态完成任务。

本系统中创建了两个工件坐标:Workobject_1和Workobject_2。Workobject_1是基本工件坐标,工件坐标uframe和oframe框架不需要调整,作为除抓取点外其他点的基准,可取输送链上固定的一点为坐标原点,方向与大地坐标系方向一致。对应的工件坐标数据位为:

Workobject_1:=[FALSE,TRUE,"",[[0,0,0],[1,0,0,0]],[[399.364,-305.36,162.956],[1,0,0,0]]];

Workobject_2是抓取点Ppick的工作坐标,可取输送链末端抓取工位中点为坐标原点,方向与大地坐标系方向一致。对应的工件坐标数据为:

Workobject_2:=[FALSE,TRUE,"",[[455.263,-292.836,151.141],[0.347709,0.465871,-0.808289,0.0934435]],[[148.132,-50.1861,0],[0.999663,0,0,0.025956]]];

Ppick不是一个固定点,随待抓取芯片位姿的变化而变化。因此Workobject_2坐标框架需要根据相机识别出的芯片位姿信息实时更新。在Smart组件设计时通过RapidVariable子组件已经将芯片位姿数据发送给机器人的pos_xy和angle变量。pos_xy变量用于更新Workobject_2的工作坐标框架,angle变量用于机器人使用MoveL的RelTool功能更新旋转姿态。由于angle是弧度值,需先利用公式(1)转换为姿态值。 坐标框架Workobject_2的更新代码见3.3节。

3.3 机器人程序设计

以机器人分拣一块合格品芯片为例,部分关键代码及说明如下:

PROC Path_10()

MoveJ Phome,v200,z0,GripWObj:=Workobject_1;

WaitTime 1;

//输出信号触发输送链输出芯片

PulseDOPLength:=0.2, do1;

WaitDI di1, 1;//等待芯片滑动至抓取工位

//运动到PpickReady点,准备抓取

MoveJ PpickReady,v200,z0,GripWObj:=Workobject_1;

SetDO do2,1;//触发抓取Smart组件

WaitDI do2, 1;

WaitTime 2;

//通过更新工件坐标来更新抓取点位置

Workobject_2u.oframe.trans := pos_xy;

//弧度转换为姿态

angle:= angle*180/3.14;

//根据芯片姿态更新抓取的姿态

MoveL RelTool(Ppick,0,0,0Rz:=angle), v200, z0, GripWObj:=Workobject_2; WaitTime 0.5;

MoveL PpickReady,v200,z0,GripWObj:=Workobject_1;

// 放置芯片

If(result == 1){//合格品

MoveJ PplaceNReady,v200,z0,GripWObj:=Workobject_1;

MoveL PplaceNormal,v200,z0,GripWObj:=Workobject_1;

MoveL PplaceNReady,v200,z0,GripWObj:=Workobject_1;

}else

{

MoveJ PplaceNReady,v200,z0,GripWObj:=Workobject_1;

MoveL PplaceNormal,v200,z0,GripWObj:=Workobject_1;

MoveL PplaceNReady,v200,z0,GripWObj:=Workobject_1;

}

//回到home点

MoveL Phome,v200,z0,GripWObj:=Workobject_1;

ENDPROC

4 仿真节拍设计

编写机器人分拣代码、设置好工作站逻辑后,点击仿真开始按钮,系统能够实现自动分拣芯片的功能[12-18]。但芯片下料速度、输送链传输速度、相机检测速度、工业机器人分拣速度之间不合理,导致机器人长时间等待的现象,因此需要对系统各模块间节拍进行调节。

如前所示,芯片下料效果是通过Smart组件的Source子组件实现的,速度由开始信号DiMove决定;输送链传输效果是通过LineMover子组件实现的,速度可调节;相机检测速度及数据发送是通过RapidVariable子组件实现的,速度由发送信号DiTransmit决定;机器人分拣速度主要由机器人移动速度和程序运行速度决定,速度可调节。仿真发现,设置芯片下料速度为500 ms/块,设置输送链传输速度为1 000 mm/s,设置相机检测周期及数据发送周期为50 ms,机器人分拣周期为500 ms时,总输送链长度为1 m。分拣生产线的效率是最高的。当机器人分拣完上一块芯片时,下一块芯片刚好达到抓取工位。生产中可根据按比例调节各模块速度。

5 实验结果与分析

利用仿真成果指导现场生产:

1)将工业机器人代码下载至现场机器人;

2)由于仿真和现场的区别,需要根据现场布局重新示教机器人的7个工作点;

3)修改工件坐标Workobject_1和Workobject_2至输送链起点处。

4)根据仿真节拍调节现场各模块速度:下料机速度为500 ms/块,PLC控制输送链传输速度为1 000 mm/s,相机拍照速度为80 fps,相机数据发送周期为50 ms,机器人TCP速度为1 000 mm/s;

如图7所示,机器人能够根据相机识别结果将瑕疵品分拣至瑕疵品输送链,将合格品分拣至合格品输送链。经多次实验得到表2数据,可以看出生产线的分拣正确率均在99.5%以上,达到工业生产要求。当瑕疵品数量增加时,系统分拣正确率有所下降,经分析发现是机器视觉对瑕疵品的识别率降低导致。因此后续还需要进一步完善机器视觉算法以提高分拣效率。

图7 实验结果

瑕疵品数量/块合格品数量/块分拣时间/秒分拣正确率/%20050035599.830060045899.640070055999.5

6 结束语

本文利用虚拟仿真技术对芯片智能分拣生产线进行设计,在RobotStudio软件中建立了工作站模型、通过smart组件设计和机械装置创建、机器人路径规划和程序设计等工作实现了芯片下料、芯片传输、相机检测、智能分拣等生产过程。解决了生产过程中工业机器人与芯片位姿不一致、生产线节拍协调等问题。最后利用虚拟仿真成果指导现场生产:将仿真代码下载至现场工业机器人,根据仿真节拍调整现场生产节拍。实验结果表明,生产线的分拣正确率达到99.5%以上,满足工业生产要求。

猜你喜欢

下料位姿工位
基于TIA系统快速换批生产方法的应用
基于R-D SSD模型航空发动机安装工位检测算法
基于PLC的六自由度焊接机器人手臂设计与应用
基于位置依赖的密集融合的6D位姿估计方法
工位大调整
曲柄摇杆机构的动力学仿真
基于单目视觉的工件位姿六自由度测量方法研究
2100PCTC薄甲板制作工艺
废树脂料斗定量法计量验证试验
铝电解槽下料过程对电解质温度场的影响