数控加工机器人后置处理的研究及软件实现

2015-04-26 08:24陈胜奋谢明红
机床与液压 2015年3期
关键词:刀位后置坐标系

陈胜奋,谢明红

(华侨大学机电学院,福建厦门 361021)

0 前言

随着科技的发展,工业机器人在很多方面得到了应用,例如焊接、装配、运输、包装及产品检验[1]。但在将工业机器人直接利用来对工件进行成型加工,还是一个相对新的研究领域。目前国内制造业的发展飞快,广泛地应用使用了CAD/CAM软件,同时对复杂曲面或形状工件的需求量日益增加。所以CAD/CAM生成的刀位文件已经在五轴数控机床上得到广泛的应用,但对工业机器人来说却相差甚远,国内外研究现状也是差距很大,目前,国内基本还是采用传统示教方法[2]。所以将CAD/CAM的数据进行处理与加工机器人进行连接,这对工业机器人加工是非常必要的,可以轻松实现复杂工件加工。然而,加工机器人控制器一般不接受CAD/CAM等刀位数据,因此,国内外很多学者对特定环境下的NC代码进行研究。如SMITSI等[3]对机器人离线编程的轨迹规划和加工代码进行研究,NETO Pedro等[4]提出一种新的基于CAD的离线机器人编程解决方案。王引等人[5]对将G代码的数据信息转化成虚拟刀具5个点的坐标进行研究。总之研究一种能将刀位文件转换为工业机器人工作语言的后置处理器,将会开辟工业机器人应用新的领域,极大推动国内工业行业的发展。

1 工业机器人后置处理

数控加工中的刀位文件中的加工信息数据是以工件坐标系为参考基准即加工坐标系,并没把具体的加工设备结构及其他参数考虑进去。因此后置处理器的任务就是通过读取CAD/CAM软件处理生成的刀位文件,然后根据加工设备的一些具体参数,运动特性及控制指令格式,进行坐标系变换,逆运动学求解,解的唯一性选择,最后生成加工设备可以读取的数据文件[6]。加工机器人的后置处理流程如图1所示。

图1 加工机器人的后置处理框图

1.1 相关坐标系及轴的定义

目前,机器人制造厂商所开发的机器人加工语言不尽相同,对坐标系的定义也不一样。图2是加工机器人末端执行器(刀具)方位进行定义。

图2 机器人各坐标系名称

利用PRO/E生成刀位文件[7]。PRO/E处理输出的刀位文件包含工艺参数,刀心的位置矢量和姿态矢量以及其他指令。刀位文件中的坐标系是建立在工件坐标系上的,而工业机器人控制系统能够识别的语言中数据是建立在机器人坐标系上的,并且只是关节的转动角度。因此要开发一种根据工业机器人的结构参数,通过相应坐标的转换,分离变量法求逆解,把刀具的位置矢量和姿态矢量转换成工业机器人6个关节的转动角度的后置处理器。

如图2所示,OtXtYtZt为刀具坐标系,OwXwYwZw为工件坐标系,OX0Y0Z0为机器人基坐标系,OsXsYsZ为工作台坐标系。当工业机器人摆放固定时,机器人基坐标系就固定不变,Z轴垂直于底座。工件坐标系是把工件上的某点当作坐标系原点从而建立的一个坐标系,这样便于数据编程,这也是CAD/CAM生成刀位文件的参考坐标系,方向与基坐标系一致;刀具坐标系中刀尖点是其坐标原点,固定在刀具上,Z轴垂直于刀轴。工作台坐标系是固定在工作台上,当工作台摆放固定时,工作台坐标系也是固定的,方向与机器人基坐标系一致。安装刀具,使刀具的轴线与第6轴的轴线重合。Om(轴4、轴5和轴6的交点)为刀具旋转中心,显然,目的就是把刀位文件中的数据即工件坐标系下的坐标,转换为机器人基坐标系下刀具的运动,进而求出各个关节角的角度。

1.2 坐标系的转换

如图2所示,在初始状态下,工件坐标系和刀具坐标系的方向是一致的。刀具坐标系原点Ot到Om的向量为rm(0,0,l)。刀具在工件坐标系下的姿态矢量为u(i,j,k)和位置矢量rp(x,y,z)。

根据上述的坐标变换,可得:

POm是Om在工件坐标系下的坐标,POt是刀位点在工件坐标系的坐标即为u。a是刀轴单位矢量即为rp。

当工业机器人和工作台安装固定不动时,机器人坐标系与工作台坐标系相对位置也就固定下来。当工件装夹到工作台上面时,工作台坐标系和工件坐标系的相对位姿也可以确定。设机器人坐标系与工作台坐标系相对位置为ro1(ex1,ey1,ez1),可以通过固定工件时得到工作台坐标系与工件坐标系相对位置ro2(ex2,ey2,ez2),工件坐标系的方向与机器人的坐标系一致(可以通过装夹做到)。工件坐标系和机器人基坐标系之间的转换矩阵为

当机器人坐标系与工件坐标系不一致时,则需要在后处理过程中进行坐标变换。设工件坐标系相对基坐标系的旋转矩阵M和平移矢量ro在机器人控制器中定义,编程时作为已知参数输入。以POOm表示Om在机器人基坐标系中的位置,则映射关系如下:

同理可得aO表示刀轴在机器人坐标系下的姿态,则映射关系如下:

2 去冗余与逆运动学求解

对于6自由度工业机器人,当最后3个关节轴相交于一点时,这样是存在解析解,把这种求解称为工业机器人的解耦。

通常用欧拉角来表示空间物体的姿态[8]。由于五轴数控G代码对欧拉角的(α,β,γ)中的γ没有给出(γ为刀具轴线旋转方向),因此一般六自由度工业机器人对于五轴G代码是冗余的。可以通过固定第6个轴的转动(即θ6为0)来去除冗余。

如图3所示,数控加工机器人最后3个关节轴相交于点O4,所以可以对点O4进行解耦,将6个关节轴分为(θ1,θ2,θ3)和(θ4,θ5,θ6)两个部分,分别对这两组解进行求逆解。

各个连杆的参数如表1所示。

表1 各个连杆的参数表

求取所需的逆解,可以采取分离变量法来求解。从前面可以知道,手腕的位置只与θ1,θ2,θ3角度有关,所以可以得到下式:

这样可以求出θ1,θ2,θ3,再把θ1,θ2,θ3代入式(7)可以求出θ4,θ5,θ6。

3 逆解优化方法

对于6个自由度的工业机器人来讲,逆解θi是通过反三角函数求得,而反三角函数解往往存在不只一个,所以关节角θi,i=1,2,…,6,是一般都存在多组解的。当对避障问题不进行考虑的情况下,文中所用目标函数D如下:

式中:li(i=1,2,3)是关节i直接驱动的连杆的长度。用计算“最短行程”解作为目标函数,使得选择的解是体现每次转动的位移最小。即D取到最小值时,θ1,θ2,θ3就是所求的最优解。

由于最后3个旋转轴相交于一点,连杆长度为0,不能采用目标函数D。所以文中采用最优解是直接取代数均值来作为目标函数T。

这样可以得到θ4,θ5,θ6的最优解。

4 软件实现机器人工作代码

由于机床结构参数都不相同,很难得到通用的加工代码,但机床结构参数不影响加工时刀具的加工轨迹及姿态和通用信息,所以就可以用刀位文件来保存这些数据。不同CAD/CAM软件生成的格式又不大相同。文中的刀位文件是由PROE软件生成的,它包含了刀具的位姿状态和一些指令信息,下面简要介绍Proe刀位文件中的一些具体信息所代表的含义。

表2 PRO/E刀位文件命令符的功能

在读取PROE刀位原文件的时候,先判断读到是否是标识符,否则就一直往下读。直到出现标识符,提取标识符,继续读取文件遇到GOTO时开始记录运算,然后就将接下来读到的字符转换成数据结构类型。转换后就可以提取到GOTO后的位姿矢量数据,在读到GOTO后面字符的时候,须把整个数据读完。字符在刀位文件中是分两行,获得数据后就按照前面的得到的公式进行计算,得到最终所要的数据。然后再接着读取后面的内容,重复此过程,直到出现标识符FINI就完成了整个刀位文件读取和数据的转换。用此种方式转换一个原文件所需时间相对较短。而将整个刀位文件读取后再转换,这种方式所需的时间比上种方式多了很多。

G代码后置处理包括刀位原文件文件的读取,提取关键标识符,刀位坐标,刀轴姿态,然后将提取到的数据根据机器人的结构转换成机器人各个关节的转动角度,最后生成加工代码。当然PROE刀位文件中也包含了一些冗余的信息注释,在读取的时候可以直接读过去,例如MFGNO指令,这样可以除去冗余信息。

图3 后置处理流程图

后置处理流程图如图3所示。

根据图3的流程图,可以定义一个结构体,用来存取工业机器人所需的加工代码信息。

首先读入刀位文件,提取刀位坐标及姿态和工艺等参数信息存放在对应后置处理前的变量里,应用运动学反解求出机械臂的各关节角,并存放在后置处理后的变量中,然后把计算后的结果显示到界面,即可生成作业程序。

struct NODE

{

int Flag;//判断G01还是G00

double Feed;//进给速度

int Speed;//保存主轴转速

double x,y,z;//刀位文件中的刀位点坐标

double posture[3];//刀位文件中的刀具姿态

double post_x,post_y,post_z;//后置处理后的刀位点坐标

double post_posture[3];//后置处理后的刀具姿态

Float A,B,C,I,J,K;//机器人加工时各个关节角位置

};

代码转换过程是将APT文件读入,读取标识符,提取刀位数据、刀具参数、工艺参数等。利用刀位数据和工业机器人自身结构参数求解工业机器人的位姿矢量,然后再将运动参数求得机械臂各个关节角度。

打开软件,点击“读取文件”按钮,选择要加工的刀位原文件代码,在软件界面上显示如图4所示。点击“转换”按钮,进入刀位数据的后置处理,得到工业机器人加工代码,在软件上显示图5所示。

图4 读入刀位文件数据界面

图5 机器人加工代码生成界面

5 总结

通过对CAD/CAM软件生成的刀位文件数据进行分析,提取刀位数据信息及一些控制指令。结合6R机器人的结构,通过各坐标系之间的平移和旋转变换,推导出工件坐标系下的刀位数据在机器人基坐标系下各个关节角度。结合各个关节角的最优解生成机器人加工代码控制指令,最终达到控制机器人的运动目的。

[1]郭益友.工业机械手在机械制造工艺中的发展及应用[J].淮南职业技术学院学报,2002,2(1):36-38.

[2]许阳,刘建群,刘雷.基于CPAC的六自由度开放式机器人控制系统的开发[J].制造业自动化,2013,35(5):29-31.

[3]MITSI S,Bouzakis K-D.Off-line Programming of an Industrial Robot For Manufacturing[J].The International Journal of Advanced Manufacturing Technology,2005,26(3):262-267.

[4]NETO Pedro,MENDES Nuno.Direct Off-line Robot Programming Via a Common CAD Package[J].Robotics and Autonomous Systems,2013,61(8):896-910.

[5]王引,仇晓黎,刘明灯,等.基于NC代码的工业机器人加工轨迹规划研究[J].组合机床与自动化加工技术,2012(8):14-17.

[6]刘雄伟,张定华,王增强,等.数控加工理论与编程技术[M].北京:机械工业出版社,2000.

[7]葛卫京,杜娟,智红英,等.Pro/E后置处理程序的研究[J].太原科技大学学报,2013,34(8):303-304.

[8]崔鲲,孙论强,吴林.V01弧焊机器人运动学反解及臂形标志的确定[J].机器人,1997,19(6):444-446.

猜你喜欢
刀位后置坐标系
非正交五轴联动数控机床后置处理算法开发
基于西门子系统的液压刀架PLC控制研究
基于线接触加工的二次曲面刀位轨迹研究
拖拉机复杂曲面零部件数控加工刀位轨迹优化
解密坐标系中的平移变换
坐标系背后的故事
基于重心坐标系的平面几何证明的探讨
沉淀后置生物处理组合工艺的工程应用
基于遗传算法的航空制造刀位轨迹优化研究
Review of Research on the Prevention of HPV Infection and Cervical Cancer