李 伟,奚春彦
(1.中国科学院 研究生院,北京 10039;2.中国科学院 沈阳计算技术研究所,沈阳 110168)
在当今迅猛发展的工业自动化时代里,越来越多的环节需要自动化程度更高的设备来完成,加之人工成本的不断上升,工业环境更高要求,工业机器人的应用大大提高了工作效率,节约生产成本,并且工业机器人是“高档数控机床与基础制造装备”重大专项中重要的功能部件[1]。在工业机器人的应用过程中,需要对应用了机器人的加工生产线进行调试,由于数控设备的价格昂贵,调试人员的误操作可能会危及机床设备甚至操作者自身的人身安全。因此,先期的工作不适合在实际设备上运行。
机器人仿真系统作为机器人设计和研究中安全可靠、灵活方便的工具,具有重要的作用,它可应用于机器人的许多方面[2]。仿真系统的应用使调试人员在实际操作之前能在数控系统上进行模拟操作,减少失误以及提高工作效率。另外,对于刚接触工业机器人的操作员来说,此系统可以提供与现实工业机器人几乎相同的操作步骤,在操作员真正操作工业机器人之前,可以增加其操作的熟练程度,增加安全系数[3]。
本文基于GLS25 桁架自动化加工单元,设计了基于OpenCASCADE 的应用了桁架机器人的数控加工生产线的仿真系统,通过离线示教编程,模拟桁架机器人在数控加工生产线上的运动过程,在调试机器人之前,能够检测程序的正确性。避免了直接操作实体可能造成的事故和不必要的损失。
桁架机器人即直接坐标机器人,由3 个相互垂直的移动运动轴(PPP 型)组成。一般情况下X、Y 轴为水平轴,Z 轴为垂直轴,而且三个轴都是主动轴,其自由度为3。桁架机器人的结构如图1 所示,由相互垂直的三个轴构成空间直角坐标系,空间中的任意一点即可用空间坐标(x,y,z)来表示[4-5]。
图1 桁架机器人结构示意图
其中GLS25 桁架自动化加工单元的运动轴为两轴,其工作流程示意图如图2 所示,主要由以下几部分组成:1 为双面工件爪,2 为第一数控加工机床,3 为反转盘,4 为工件盘,5 为第二数控加工加床。工件爪的移动方向如图中方向所示。具体工作流程如下[6-7]。
图2 GLS25 工作流程图
①双面工件爪移动到工件盘上方抓取未加工的工件。
②双面工件爪将移动到第一数控加工机床,将工件放入卡盘,卡盘卡住工件,双面工具爪松开工件,开始对工件进行第一次加工。
③双面工具爪移动到工件盘上方,如果下方有未加工的工件,抓取工件,如果没有则工件盘转动,将有未加工工件的一列转动到工件爪下方,然后再抓取工件,如果工件盘已没有未加工的工件则工作停止。
④移动到第一数控加工机床,卡盘松开工件,双面工具爪未抓取工件的一面抓取已加工一次的工件,双面工具爪翻转,重复②过程。
⑤双面工具爪移动到反转盘处,将已加工一次的工件反转后再抓起。
⑥移动到第二数控加工机床,将已加工一次的工件放入卡盘,卡盘卡住工件,双面工具爪松开工件,开始对工件进行第二次加工。
⑦重复①~⑤过程
⑧移动到第二数控加工机床,卡盘松开工件,双面工具爪未抓取工件的一面抓取加工完成的工件,双面工具爪翻转,重复⑥过程。
⑨移动到工件盘,将加工完成的工件放入工件盘的一列中。
⑩重复上述过程。
OCAF 对于Open CASCADE 是一个其类库的辅助工具,是一种基于Open CASCADE 的RAD(Rapid Application Development,快速开发工具)框架,为用户(即开发人员)提供了一个快速开发的手段[8]。
首先利用OCAF 建立了一套独立的支撑框架,这个支撑框架的主要作用就是为系统的建模模块、可视化模块及数据管理模块等提供与模块无关的底层支撑,这样就实现了系统模块化设计。在这个支撑框架的基础上,完成了离线示教编程模块、模型仿真模块、运动仿真模块、机器人语言编译模块的设计开发。系统中使用的类库模型包括应用框架、数据转换类、建模数据类以及可视化类。其中每个类库模型及其内容如表1 所示[8]。
表1 类库模块及其内容
基于GLS25 桁架自动化加工单元,仿真系统对桁架机器人以及数控加工生产线等物体建立初始实体模型,根据系统各组成部件的位置信息和几何信息,形成加工环境的三维实体显示,通过离线示教编程界面获取调试程序,系统根据调试程序控制桁架机器人运动,从而检测调试程序是否正确,并且输出能够应用于数控系统上的G 代码,同时能够载入用户编写的G 代码,通过运动检测其正确性。仿真系统的整体设计如图3 所示。
图3 仿真系统整体结构
2.1.1 界面以及控制指令
以MFC 的SDI(Single Document Interface)应用程序为基础,通过向MFC 框架类中添加相应的OpenCASCADE 类库提供的相关方法,完成基于
OCAF (Open CASCADE Application Framework)的单文档程序框架的设计,在此基础上设计离线示教编程界面,离线示教编程界面如图4 所示。
图4 离线示教编程界面
根据数控系统的G 代码,设计指令集如表2 所示。
表2 指令集合
2.1.2 数据的存储
根据程序指令设计其数据结构,用于存储离线示教编程的数据[4]。本课题设计了线性链表,方便控制指令的添加删除。线性链表中每个节点的数据结构如下:
根据每个命令参数设置其具体参数的数据,具体参数的结构如下:
根据桁架机器人的工作流程,将其模块化,运动部分为双面工件爪、工件盘、反转盘,每个必须单独进行建模仿真;而支架、数控加工机床为非运动模块,可将其作为整体建模[9]。
OpenCASCADE 能够自己创建一些基本模型,本课题通过自己创建模型,然后将其导入到本课题中使用。通过UG,对桁架机器人及其生产线进行建模仿真,将模型导出为IGES 格式。在系统中通过OpenCASCADE 类库模型中的数据转换类中的接口函数将IGES 格式文件转换为OpenCASCADE 能够使用的模型文件。其过程为:载入文件、检查文件一致性、设置转换参数、完成模型转换、提取转换结果。
通过设计的指令集,在系统内部进行判断编译。首先获取存储数据的数据链表,然后通过遍历链表[6],检查每个节点的命令标识,根据不同的命令标志,进行相应的处理。根据每次处理的不同,将相应的G 代码添加一个字符串变量中,最终将其写入文件,此文件能够被数控加工系统读取。同时本系统也可以载入其他符合格式的G 代码文件,并通过运动检验其正确性。其伪代码为:
桁架机器人为3 自由度机器人,本系统的桁架机器人只有两轴,故在空间上只设计Y 轴以及Z 轴坐标[10]。
在Y 轴运动方向上设计6 个关键点,依次为双面工具爪停靠原点(非零点)、第一加工点、反转点、抓取工件点、下料放置点、第二加工点。离线示教编程过程中,当要添加直线运动操作时,会要求输入运动终点Z 以及Y。此时会对此点进行判断:当Z 不为零时,Y 的位置必须为上述六个关键中的后五个点,否则判断示教程序错误;当Z 为零时,Y 的值不能超过系统预设的最大运动范围,否则运动越界,示教程序错误。图为运动仿真效果图5 所示。
图5 运动仿真界面
本文基于OpenCASCADE 设计并实现了桁架机器人应用于数控加工生产线的仿真系统。用户可以利用本系统进行离线示教编程,仿真出桁架机器人运动过程,能够方便调试人员调试桁架机器人控制系统。本系统已成功测试桁架机器人控制程序。今后的开发工作中,在对模型仿真有初步研究的基础上,结合硬件数控信号的操作,建立完善的加工仿真系统。
[1]杨书评,宫迎辉,王海丹,等. 机器人自动化及生产线关键标准研究[J]. 制造业自动化,2010,8(32):191-193.
[2]陈素丽,任福深. 基于OpenGL 的弧焊机器人仿真设计[J]. 科学技术与程,2012,12(3):1671-1815.
[3]彭健钧,郭锐锋,张世民,等. 数控加工仿真系统的研究与应用[J]. 小型微型计算机系统,2010,(6):1241-1244.
[4]刘军. 开放式直角坐标机器人运动控制系统研究[D].天津:天津大学,2010.
[5]杨春华,黄朝志. 基于OpenGL 的机器人数控作业的仿真[J]. 微计算机信息,2004,20(5):120-121.
[6]张新予,匡以顺. 一种桁架机器人的机构设计及实现[J]. 装备制造技术,2008(7):57-58.
[7]刘丹阳,化春雷,李焱,等. FANUC 0iD 数控系统在自动生产线中与桁架机器人通讯[J]. 机床电器,2011(5):16-18.
[8]张渊. 基于Open CASCADE 的虚拟三维建模平台的开发[D]. 济南:山东大学,2007.
[9]蒋先刚,涂晓斌. 三维模型图形接口程序设计[J]. 微计算机信息,2007,23(12-1):291-293.
[10]Zhang Wenxiang,Zou Fengshan,Qu Daokui,Xu Fang.Research of Key Technologies on 3D Simulation System of Industrial Robot[C]. Proceedings of the 7th World Congress on Intelligent Control and Automation,2008,565-568.