- 广州子锐机器人技术有限公司
- 服务热线:020-82000787(8:30-17:30)
- 联系手机:15889988091(非工作时间)
- 座机:020-82000787
- 传真:020-32887675
- 邮箱:gz@zr-robot.com
- 广州市番禺区东环街金山谷创意八街1号109
- 当前位置:首页 > 机器人资讯 > 基于G代码的工业机器人的自动编程
基于G代码的工业机器人的自动编程
基于G代码的工业机器人的自动编程
1引言(Introduction)
工业机器人编程技术对工业机器人的推广应用及其应用效率的发挥起着越来越重要的作用,从某种意义上说已是工业机器人应用的瓶颈问题。在线编程(包括示教编程、传感器辅助编程等D柔性差、效率低;特别是随着加工制造业数字化、无纸化的发展趋势,常常要求在只提供电子纸的情况下进行加工,并没有实物或是模型,就无法通过示教来实现。因此,基于CAD/CAM系统的形交互式离线编程,就成为了工业机器人发展的一个趋势。
德、美、日、法等工业发达国家从20世纪50年代中后期开始,就对工业机器人离线编程技术进行了研究,近年来更是取得了长足的发展,如法国Dasaault公司开发的CATIA应用软件、日本Panasonic公司的DTPS离线编程和仿真软件、美国Delmia公司的Ultraarc软件等,其中一些单元技术已经或正在趋于成熟。但从总体上看,工业机器人离线编程技术尚不成熟,大都处在研究阶段,国内更是鲜见成熟的工业机器人离线编程软件。
现有的离线编程软件大多是对CAD/CAM系统形格式(如DXF、IGES等D进行编译(而有一些软件是直接编制自己的机器人CAD建模系统D,进以产生机器人代码并加以控制。这样,虽然具有很强的适用性,但是编码过程繁琐,工作量巨大。笔者结合这两点考虑,提出利用G代码作为中转,实现机器人的自动编程的方法。
G代码早在20世纪70年代就已经作为一种ISO标准被广泛应用于各种数控机床中,它将纸中工件的点、线、面的信息提取为加工工具的运动路径这就大大简化了将其转换为机器人加工指令的难度。并且几乎所有的大型CAD/CAM制软件如UG、Pro/e、MasterCAM及AutoCAD都可以直接生成G代码文件。因此对于工业机器人自动编程G代码可以作为一座很好的桥梁既避免了独立开发机器人CAD/CAM软件的巨大工作量又提供了一条机器人与数控机床(通过G代码)直接进行交流的途径同时还增加了本软件的通用性。
2系统结构(Systemstructure)
目前很多大型的CAD/CAM系统像UGS公司的Unigraphics,PTC公司的Pro/Engineer,IBM公司的CATIA等,其CAM子系统与CAD和CAE等子系统在系统底层一级集成式开发,CAD子系统提供强大的复杂产品造型与设计功能生成的产品数字化定义模型为CAM子系统提供完备的数据服务;CAM子系统直接在产品数字化模型上进行NC轨迹计算,利用强大的后置处理模块生成NC指令。该自动编程系统在文件一级(NC代码)操作平台的CAD/CAM产品模型,利用特征识别(eatureRecognition)技术直接在产品模型上获取一定复杂程度的加工区域几何表示及其加工工艺规范,同时也支持用户的交互指令操作。
可以将该自动编程系统看作是一种以现有CAD/CAM系统为依托的专用CAM子系统的延续开发1为其结构原理。CAD/CAM平台为自动编程系统提供功能支持,利用CAD软件制作加工工件的电子纸再利用合适的CAM软件将之转化为G代码。
1自动编程系统结构原理框
自动编程系统利用生成的G代码根据机器人的运动特点进行必要的坐标转换生成合适的机器人运动指令并对加工轨迹进行交互模拟仿真;同时,自动编程系统中的仿真与转换模块与机器人控制器进行通信实时传输数据控制机器人完成加工作业。
ISO-G代码标准中使用了笛卡儿坐标系,排除了各种数控机床实际结构上的差别,在进行坐标系的转换时,如果机器人加工坐标系也是笛卡儿坐标系(如直角坐标系、圆柱坐标系)则需进行必要的旋转、平移转换,而对于关节坐标系,还需进行机器人的逆运动学方程的求解。另一方面由于数控机床和机器人在加工特点上的差异,对于机器人加工时所必须的末端执行器的姿态,无法从G代码中直接得到,将不同的指令按照不同的算法求得机器人相应的姿态,并利用轨迹仿真模块进行改正和优化这也是轨迹仿真模块除预测碰撞之外的另一重要用途。
3G代码的功能转换与扩展(FunctionaltransformandextensionofG-codes)
由于机器人坐标系统跟数控机床有很大的差异,对于空间点的定义以及执行末端在空间点处的姿态就有很大的差异,因此必须分析G代码各指令中参数的具体含义,将其转化为机器人的位姿。对于G代码中缺少执行末端的姿态描述的,必要时要结合三维立体求出特定点、线或面的法向量,并由此确定机器人的加工姿态,这就要求必须从机器人运动学、动力学的角度,分析机器人的运动特点,利用立体几何的知识在三维空间中求解。因此,要实现G代码在机器人系统上的应用,应该做到:
♦针对机器人的运动特点将G代码中有待扩充的一些指令合理地编译为机器人指令;
♦为了操作简便必须具有友好的人机界面,能够对G代码进行文本显示以及所表示的运动轨迹的仿真显示,对机器人的加工过程进行简单的模拟仿真;
♦为了实现软件的自动化、智能化,该软件应该具有一定的纠错功能对于G代码格式文件的语法错误能够识别并加以处理;对于机器人的工作空间和工件的形状能够进行仿真检验防止加工工具超出其运动空间或加工工具与工件之间发生干涉、碰撞等事故;
3.1轨迹插补转换
在数控机床系统和机器人系统中关于直线插补的定义比较简单,也具有一定的相似性,都是给定两个端点来确定该线段,而对于圆弧插补却存在很大的差异。
在G代码中,有两种定义圆弧的方式,一种是以圆弧的起始点、终止点以及圆心(S-E-O)来定义的,另一种是以圆弧的起始点、终止点以及半径(S-E-R)来定义的,而在机器人JOB文件中,圆弧是以圆弧上的3个点来定义的。因此,再将G代码中的圆弧插补转换成机器人文件的相应指令时,应当首先求出圆弧上的第三个点。
3.1.1S-E-O格式的圆弧插补转换
如2(a)所示,子锐机器人维修,已知圆弧的起点A(x1,y1,z1)终点B(x2,y2,z2)以及圆心0(x0,y0,z0)。对于第三点,可以取弧上的任意一点,我们取圆弧AB的中点。而又由于在由点A、B、O确定的圆上,有2个点(上所示为C1、C2)满足上述要求,因此还必须根据所求弧是顺弧还是逆弧来确定。结合数控机床或者机器人坐标系中,远离加工工件的方向为坐标正向的规定,设向量积:
3.1.2S-E-R格式的圆弧插补转换
根据已知条件仅仅依靠圆弧的起点、终点和半径,无法在三维空间中确定特定的圆,因此必须依靠在G代码中选定平面指令(G17,G18,G19)先选定平面,再在平面内对圆弧进行编辑。
在一个平面内,由两点及半径可以确定两个相交的圆,两个圆的公共弦AB将这两个圆分成四个圆弧,由此可以求出四个共线的圆弧中点。对于这四个点,首先可以考察它们离公共弦A距离的大小来判断大弧、小弧,对于顺弧、逆弧的选择则要靠以下的方法来解决。如2(b)所示(假设所求为小弧。大弧亦同),由向量倾角的公式:
3.2关于点的姿态的确定
由于在G代码中对于执行末端的姿态涉及很少,也不符合机器人的要求,因此对于机器人的姿态需要加以补充。
由于多数情况下,数控机床是选择3,个基本平面XY、YZ、ZX来进行加工的,我们可以定义加工工具的法线跟加工平面的夹角和加工工具在加工平面的某条坐标轴之间的夹角来唯一的确定加工工具的姿态,如3所示。
3加工姿态的确定
这样以来大部分点的姿态就可以确定了,但是为了避免加工工具在加工过程中的脉动现象,以及在加工平面发生变化时,点的姿态的错误定义,还必须在仿真演示阶段进行修改和优化。
4自动编程的软件实现(Softwarerealizationofauto-programming)