唐黄正,朱志伟
(长沙民政职业技术学院,湖南长沙,410004)
搬运与码垛是工业机器人常见的应用场合,当前工业机器人在生产线中主要通过在线示教的方式实现路径编程,但存在示教过程较复杂,机器人运动精度不高等弊端。利用RobotStudio 离线编程能够快速进行点位及路径示教,不消耗实际资源,能够降低设计成本,提高生产效率[1]。肖全等[2]利用SolidWorks 和RobotStudio 进行机器人搬运工作站的设计与路径仿真;祁晓玲[3]利用RobotStudio 设计了工业机器人流水线搬运的仿真工作站;蔡玉强等[4]针对牛奶箱搬运过程存在运动轨迹奇点与动作节拍时间长的问题,设计了基于RobotStudio 的牛奶箱搬运生产线仿真;王洋洋等[5]针对塑料瓶在传送带上位姿不固定无法准确抓取的情况,基于RobotStudio 设计了一种塑料瓶分拣机器人夹持式机构。
通过上述文献可看出,已经有不少研究者利用RobotStudio 离线编程仿真解决工业机器人搬运的问题,但是并没有带第七轴的装箱方案设计,并且能够通过数据分析找出装箱方案的最优解。机器人行走轴又称机器人第七轴,机器人轨道等,用于扩大机器人作业半径,扩展机器人使用范围功能,主要应用于焊接、铸造、机械加工、智能仓储、汽车、航天等行业领域。不管是焊接,喷涂,物流搬运等工艺上均有广泛应用。
在进行方案设计时,需要搭建一个工业机器人带七轴的料盒装箱工作站。首先在SolidWorks 当中完成料盒“Cassette”的建模,尺寸为“360mm×570mm×150mm”;接着完成箱子“Box”的建模,因为箱子需要装4个料盒,双层码垛装箱,所以箱子的尺寸为“750mm×600mm×320mm”,需要预留一些空隙。双层码垛装箱示意图如图1 所示。
图1 装箱示意图
接着将工业机器人“IRB2600”导入,此型号机器人可以用于物料搬运、组装等生产场合;将第七轴“IRBT2005”导入,此导轨可以配合机器人进行移动。将创建的模型导入,将外围设施布置好,即将工作站创建完成。
为了能够使工业机器人在装箱过程中处于工作区域当中,防止出现轴配置错误或者奇点,可以精确计算机器人的工作范围,以机器人所在的地面中心点为坐标原点建立坐标系,O 点(x0,y0,z0)为机器人在第七轴原点的底座中心坐标,P 点(x p,y p,zp)为机器人在第七轴末端的底座中心坐标,A 点(x a,y a,za)为料盒取料位置中心点坐标,B 点(xb,yb,zb)为箱子最下层放置位中心点坐标,此点为工业机器人所需到达的最远位置,需满足以下条件:
其中:R为机器人能够到达的最大范围,r为吸盘工具下表面到法兰盘中心的最短距离。通过测量,得到O 点坐标为(324.5,292,460),P 点坐标为(2174.5,292,460),A 点坐标为(675.9,-606.5,650),B 点坐标为(3388.3,462,660),R的数值为1650mm,r的数值为160mm,将数据代入到公式(1)中,可以计算出A 点和B 点都在工业机器人的工作范围内。
搭建的工作站如图2 所示。此工作站包括工业机器人及第七轴、拾取与放置区底座、物料及箱子,还有一些工业机器人外围设备。
图2 工作站布局
工作站整个流程为出料区产生料盒,工业机器人前往出料区拾取料盒,通过第七轴移动到末端,然后将料盒放置到箱子当中,出料区重复生成料盒,工业机器人重复进行料盒的取放,并且将料盒进行2×2 的码垛堆叠,最后完成全部装箱工作,机器人及第七轴都回原点,整体工作流程图如图3 所示。
图3 工作流程图
机器人对料盒要进行拾取放置动作,并且料盒也要不断生成,需要使用Smart 组件才能实现功能。其中,料盒取放需要用到“Attacher、Detacher、LineSensor、LogicGate[NOT]、LogicSRLatch”这几个子组件。其中,“Attacher”子组件功能是安装一个对象,这里用来拾取料盒;“Detacher”子组件功能是拆除一个已安装对象,这里用来放置物料;“LineSensor”是线传感器子组件,可以用来检测是否接触到物体,这里用来检测是否感应到料盒,如果感应到料盒,则会输出信号,代表可以进行拾取,否则不进行拾取;“LogicGate[NOT]”是逻辑门取反,拾取料盒是高电平脉冲信号控制,而放置料盒是低电平脉冲信号控制,所以需要将高电平信号进行取反;“LogicSRLatch”子组件用于信号置位复位,料盒的拾取与放置即信号的一个置位与复位过程,所以需要一个置位与复位的组件进行信号的保持。料盒不断生成则需要用到“Source”子组件,它的功能是能够创建一个图形组件的拷贝,而工作站出料区需要不断产生料盒,需要使用“Source”子组件不断复制料盒,直到箱子装满。
Smart 组件需要创建两个数字输入信号,其中Pick_di信号用于启动拾取或者放置动作,而Copy_di 用于控制料盒的产生;还需要创建一个数字输出信号PickOK_do,用于反馈拾放动作是否已完成。
接着将所有Smart 组件的信号都连接在一起,需要建立以下I/O 连接。
(1)料盒拾取输入信号Pick_di 触发线传感器“LineSensor”的激活。
(2)当线传感器“LineSensor”检测到料盒后,代表已到达料盒上方指定位置,其输出信号“SensorOut”触发“Attacher”的执行,即拾取料盒。
(3)“Attacher”的拾取动作完成后触发置位/复位组件“LogicSRLatch”执行“置位”动作,即保持拾取状态,这样料盒就不会掉落。
(4)“Detacher”的释放动作完成后触发置位/复位组件执行“复位”动作,即保持放置状态,这样不会发生误拾取。
(5)置位/复位组件的动作触发反馈信号PickOK_do动作,实现的最终效果为当拾取动作完成后将PickOK_do置为1,当释放动作完成后将PickOK_do 置为0。
(6)料盒拾取输入信号Pick_di 信号取反。
(7)取反的输出结果触发“Detacher”工具释放动作的执行。这两个信号连接,利用非门的中间连接,实现的是当关闭真空后触发释放动作执行。
(8)料盒复制输入信号Copy_di,如果置1,则能触发“Source”子组件的激活,从而产生料盒,如果置0,则不产生料盒。
Smart 组件设计逻辑如表1 所示。
表1 Smart组件逻辑表
Smart 组件创建好后,需要与机器人系统进行信号连接,这样才能实现Smart 组件与机器人系统之间的信号交互。机器人系统需要创建一个数字输入信号PickOK_di,用于接收Smart 组件反馈的料盒取放信号;还需要创建两个数字输出信号,其中Pick_do 信号用于控制Smart 组件的料盒取放信号,而Copy_do 用于控制Smart 组件料盒的重复产生。工作站逻辑设计如图4 所示。
图4 工作站逻辑图
当所有I/O 信号创建并连接好后,可进行程序编写和运动路径规划。示教的点位主要有原点、料盒拾取点,料盒放置进入点及料盒放置点。
料盒拾取位置是不变的,但是在放置时要进行2×2 的堆叠装箱,为了简化程序,可以将料盒放置进入点及料盒放置点使用MoveL Offs 偏移指令进行偏移,此指令能以选定目标点为基准,沿着选定工件坐标系的X、Y、Z 轴方向偏移一定的距离,这样不需要示教多个点,从而加快示教速度,同时也可以提高定位的精准度。同时配合使用FOR 循环嵌套,首先执行内层循环堆叠第一层的两个料盒,然后将偏移参数进行修改,接着执行外层循环堆叠第二层两个料盒,这样能够简单、快捷地实现装箱,示教点位少,运行速度快,运动路径如图5 所示。
图5 运动路径
工作站整个流程为工业机器人前往出料区拾取料盒,通过第七轴移动到末端将料盒放置装箱,TCP 速度将决定整个装箱时间,本文共设置了三种不同的速度进行测试,分别是500mm/s、1000mm/s 和2000mm/s。四个料盒装箱动作是基本相同的,只需要测试第一个料盒的工作流程。其中,图6~图8 为TCP 速度分别为500mm/s、1000mm/s 和2000mm/s 时,一个周期内机器人总电机功率、电机总能量以及TCP 速度的轨迹曲线。
图6 500mm/s 各参数轨迹曲线
图7 1000mm/s 各参数轨迹曲线
图8 2000mm/s 各参数轨迹曲线
通过对三种TCP 速度参数轨迹曲线进行分析,结果如表2 所示。
表2 数据分析
从上述数据可以看出,TCP 速度越快,则一个周期的时间越短,总电机功率的值越大,电机总能量也越大。如果实际生产当中对时间要求不高,则可以适当地调低机器人的运行速度,能够降低功率和功耗,在同一个运行周期,TCP速度500mm/s 时,能够比TCP 速度2000mm/s 节省约一半的能量;如果对时间要求较高,则应该调高机器人的运行速度,在同一个运行周期,TCP 速度2000mm/s 时,能够比TCP 速度500mm/s 减少一半的运行时间;而综合来讲,TCP 速度1000mm/s 是最适合的,一个周期只比TCP 速度2000mm/s 多用3s 时间,但是最大功率减少了约54.4%,且电机总能量减少了约35.7%,性价比最高,兼顾生产效率和能耗。
本文为解决带第七轴的料盒装箱工作站路径规划问题,通过搭建工作站,模拟工业机器人通过第七轴移动,拾放料盒并进行堆叠装箱的生产场景,最后通过设置不同的TCP速度,验证最优运行方案,能够有效地提高生产效率并降低能耗。