程丙南,郭 俊,梅志松,李艳军,王 陈
(芜湖安普机器人产业技术研究院有限公司,安徽 芜湖 241007)
在工业生产中,存在着大量重复性动作,例如组装、搬运、打包等。随着人力成本的日渐增加,工业机器人越来越多地被应用于这些场合,尤其是码垛作业[1]。
码垛大多为工业生产的后道工序,产品种类多,体积、重量较大,导致人工作业效率低、危险性高。将工业机器人用于码垛工序,使其按照预先设定的码垛方式,逐个逐层将各种产品从生产线上取走,分类摆放在规定托盘或其他载体上,无需人工操作,极大地提高了效率和安全,降低了生产成本[2]。
对于码垛机器人,若使用示教再现的现场编程方式,则存在精度低、效率低、后期改动维护复杂等问题。所以,为提高编程效率,使编程者远离危险的工作环境,改善编程环境,机器人虚拟离线编程逐渐被广泛应用[3]。但在很多情况下,离线编程未能很好地考虑实际情况,例如速度、垛型等问题。其基本思想是利用离线仿真技术,构造虚拟机器人及其工作环境;在虚拟模型中引入机器人和场景,同时操作者能够操纵机器人在场景中移动,可以选择不同的观察角度,从不同的侧面观察机器人的运动情况;可以在计算机屏幕上引导虚拟机器人末端执行器运动,进行虚拟在线示教,产生机器人作业轨迹,由此生成机器人语言程序,将编辑好的程序保存在PC机上,并传送给机器人控制器。
本文以四自由度关节型机器人IRB660为研究对象,运用SolidWorks软件建立码垛工作站的三维实体模型,导入RobotStudio,再利用Smart组件设置动态效果[4],并进行仿真,为机器人编程和调试提供安全灵活的环境,提高编程效率,指导现场生产,在一定程度上提高了现场操作人员的安全性,减轻了现场调试的工作量。
整体思路如图1流程图所示。工作站中的物体模型利用SolidWorks绘制,机器人模型由RobotStudio创建,二者共同组建工作站硬件部分;产品在传送带上运行及信号传递的仿真效果,则由Smart组件负责;机器人程序与Smart组件共同构成工作站的软件部分。
图1 设计流程图
工作站总览如图2所示。主体机器人型号为IRB660;码垛盘和机器人底座、夹具均用SolidWorks绘制;输送链、控制柜、示教器、安全围栏均来自RobotStudio自带部件库。其中,夹具需要添加工具属性,创建工具坐标系,使其能被RobotStudio识别为工具,并通过拖动安装至机器人法兰盘上,控制柜、示教器、安全围栏仅作为图形,不参与仿真。
图2 工作站总图
目前,大多同类设计采用的是,产生一个物体,机器人将其搬走,再产生下一个物体,这与实际严重不符。所以,本工作站设计物体连续产生,且种类随机。那么,则存在当输送链前端产生物体模型时,控制产生此物体模型的信号并不能立即发送至机器人,而是在物体到达输送链末端时,才向机器人发送对应信号。所以,产生物体模型和向机器人传送信号的动作不是同步进行,即连续产生了多个物体模型后,第一个物体模型才到达输送链末端。因此,当Smart组件发出信号,产生物体模型时,要锁存此信号,并在需要时发送至机器人。为解决此问题,本文采用动态设计。工作站动态设计为Smart组件的编制,主要有两部分:一是随机产生两种不同物体模型,二是向机器人发送物体对应信号[5]。
用SolidWorks绘制机器人底座、夹具、托盘模型,保存为STEP格式,然后导入RobotStudio,由于本文着重介绍工作站设计,对SolidWorks建模不做赘述。需要注意的是,将机器人夹具模型导入后,由于后续坐标系建立及Smart组件编辑需要,必须对其进行设置,将其设定为系统可以识别的工具,可以直接安装到机器人六轴法兰盘上。
第一步,修改机器人底座的本地原点,将底座原点修改至顶部合适位置,这样即可通过拖动直接将机器人安装至底座上;第二步,打开机器人工作空间显示,将两个托盘排放至合适位置;第三步,从RobotStudio自带的模型库中,导入输送链模型,为了仿真更接近实际效果,使输送链上可以同时存在多个物体,导入了两个模型,并进行拼接,再结合机器人工作区域,摆放至合适位置,如图3所示。至此,已完成工作站设计必要硬件部分的搭建[6]。
图3 工作站必要硬件部分图
2.3.1准备工作
仿真中,Smart组件整体逻辑为:仿真开始后,产生一个物体模型,颜色随机,红色或蓝色(代表两类不同产品);该物体模型从输送链前端往机器人方向运动,当一个物体模型移动一段距离后,产生下一个物体模型,这样依此类推,达到传送带运送产品的仿真效果,且每次产生的物体模型是随机的,即不确定红色还是蓝色,这样模拟实际生产效果。最后,当物体模型移动到输送链末端时,所有物体模型暂停运动,并向机器人发送对应信号,机器人控制工具移动至设定位置,抓取物体模型,将其摆放至设定位置,其中,工具抓取、松开物体模型的动作,也是由Smart组件完成。
2.3.2随机产生两种不同物体模型
利用Smart组件中的“生成随机数”组件,结合判断大小的组件,即可实现随机产生两种信号的组件结构,如图4所示。之后,在将这两个信号接入Source组件,产生模型复制体,模拟产品连续进入输送链的效果。
图4 产生两种不同物体模型Smart组件逻辑原理图
2.3.3物体运动及信号传递
前文提到,利用Source组件产生模型复制体。但是,由于复制体不止一个,需要将Source组件产生的复制体添加至Queue组件中,再利用LinearMover组件,使这些复制体沿直线运动,模拟产品在输送链上运动的效果。
利用PlaneSensor组件(面传感器)来传递信号,如图5所示。当工作站开始运行时,只有第一次产生模型复制体的信号由仿真组件给出,之后,利用1号面传感器的下降沿信号,触发产生模型复制体;当复制体运动到输送链末端,触发8号面传感器时,再把此复制体对应的信号传给机器人;所以,产生一个模型复制体的信号,需要利用2次,因此要用多个面传感器,结合LogicSRLatch组件和LogicGate组件,将信号保持并传递下去,图6表示了复制体经过1号、2号面传感器时的信号保持及传递,第3至7号面传感器同理。
图5 面传感器布局图
图6 面传感器信号传递图
2.3.4机器人抓取、松开动作
抓取、松开动作所需的组件为Attacher和Detacher组件。将LineSensor组件(线传感器)安装到夹具中心,当复制体移动到输送链末端,机器人接收到产品信号后,则激活线传感器,同时,末端复制体触发线传感器,激活Attacher组件,实现夹具抓住物体的效果;当机器人将物体移动至设定位置时,机器人取消激活线传感器,利用此信号激活Detacher组件,实现夹具松开物体的效果[5]。
机器人的标准I/O板提供的信号有数字输入DI、数字输出DO、模拟输入AI、模拟输出AO。I/O板是下挂在DeviceNet现场总线下的设备,此处采用DSQC651板,设定地址为10,连接总线为DeviceNet。码垛工作站I/O信号如表1所示[8]。
表1 机器人I/O信号
码垛程序编写思路:示教基准点、计算摆放偏移量。码垛程序编写主要示教点:起始点、抓取基准点、摆放基准点(两个)、过渡点。不同于大多码垛工作站,将产品紧密摆放,本项目为了接近实际效果,模型之间留出空隙;将模型的一个面设置为白色,代表实际生产中粘贴产品信息的位置。所以,码垛时这一面始终对着外面,利用过渡点进行姿态调整,奇数层和偶数层的垛型如图7a、b所示[9]。
图7 垛型及基准点图
以图7c圈中基准点为原点建立工件坐标系,所有产品的摆放位置,即相对于基准点的空间坐标,将由此点偏移计算得出。图中标注了XY轴正方向,Z轴正方向为竖直向上。许多码垛项目采用物体顶点进行偏移计算,存在无法兼容多种不同尺寸产品的问题,所以,这里使用物体的中心点,结合其长宽高数据,可以使偏移计算公式,适用任意尺寸,计算得出各点坐标如表2所示。
表2 各码垛点坐标
需要注意的是,由于每层的第二个物体相对于第一个物体,均需要旋转180°,而机器人编程时,旋转180°无法确定方向,不能直接使用轴运动指令旋转,所以需要拆分成两次旋转,每次旋转90°。
最后,设计复位程序,利用CRobT指令读取当前位置,再改变其Z轴坐标值,即可实现竖直向上移动,最后移动到Home点,完成复位。比起许多设计中采用的过渡点复位法,这种复位方法,在实际中可以有效避免机器人碰撞周围物体,更加安全、高效。
机器人系统与Smart组件的I/O逻辑连接,即为工作站逻辑设定,如图8所示。
图8 工作站逻辑图
完成上述设定,进行仿真模拟,期间效果如图9所示。当某一托盘满垛(8层、每层5个),仿真会自动停止并复位。效率上可达到10 s码垛一个产品,足以满足实际生产中的需求。
图9 仿真模拟图
本文根据工业实际生产情况,用SolidWorks绘制所需模型,在RobotStudio中选择合适的四自由度工业机器人,搭建一个自动化码垛工作站。为了更加贴近实际,利用Smart组件,对被码垛物体的种类进行设定;再通过编程、工作站逻辑设定,实现全自动码垛仿真。
与大多码垛工作站设计相比,本工作站设计更加贴近实际效果,在仿真中实现了产品连续、种类随机、垛型合理;在程序设计上,示教点极少,程序精炼,效率高。
该设计为实际生产中码垛机器人编程提供了可靠的思路、方法,但存在实际生产中,坐标系建立及码垛位置偏移方向达不到理论精度的问题,因此程序无法直接套用至实际项目中。所以,优化程序、路径等内容将作为后续的研究目标。
简而言之,仿真设计是为了方便现场调试,减少工程师任务量,降低调试危险度,提高编程效率;同时,使工业机器人在码垛作业上的应用更加便捷、广泛、安全、可靠。