自动钻铆技术的发展和应用体现了飞机制造的自动化、数字化、柔性化和集成化[1-3]。飞机钻铆零件由于蒙皮曲面复杂、孔位数量巨大、加工精度要求高[4],且其钻铆任务规划相当复杂,若使用汽车工业等生产线采用的在线示教编程,不仅工作量大,设备的生产时间被大量占用,且任务规划的准确性难以保证,因此离线编程成为飞机自动钻铆技术所必须的核心软件技术之一[5]。
离线编程是指,进行加工设备任务规划的软件系统通过操作加工设备数模和相关规划算法,在脱离现实加工环境的情况下完成加工任务规划并对结果进行仿真修正,最终编译为加工设备任务代码。一般来说,自动钻铆离线编程系统分为工艺信息提取与管理、运动仿真、NC代码输出三大模块。运动仿真模块既可以对所提取工艺信息的准确性加以验证又是NC代码能否输出的先决条件,起到了承前启后的作用。通过运动仿真模块可以实现整个加工过程的直观查看,判断加工过程的合理性,比如各轴运动顺序合理性、钻铆点可达性、碰撞干涉等[6]。近年来,人们对运动仿真模块进行了深入研究。许瑛等[7]在钻铆机器人运动学反解研究中,建立了以铆接点信息矩阵为变量的反解方程,并利用 MATLAB求出各关节角度的显式表达式,但没有考虑工件处于动坐标系中的加工情况。陈亚丽[8]在机器人自动钻铆系统的研究中,提出多约束路径最短的加工路径优化模型,并结合蚁群退火混合优化算法对加工路径进行了优化。上述方法对具有托架调姿系统的钻铆系统并不适用。目前关于动坐标系下的运动学反解研究较少。马伟等[9-10]以五轴数控钻铆机为研究对象,在CATIA/CAA二次开发平台上实现了钻铆自动定位和运动仿真功能,主要从软件开发的角度展开讨论,对调姿过程和反解模型并未作出具体介绍。韦世峰[11]在钻铆路径规划研究中重点考虑加工安全性,通过施加避让点的方式设置安全距离,避开干涉部件,该方法虽在一定程度上提高了加工的安全性,但适用范围有一定局限性,对压铆插钉顶身机构可能无法使用。ZHA等[12]通过仿真集成环境RoboSim,验证了工业机器人离线编程系统中孔位信息和路径规划的正确性,但该仿真环境主要面向工业机器人,难以满足各种常见自动钻铆系统的运动仿真需求。
本文以五轴自动钻铆系统为研究对象,着重研究离线编程系统中的运动仿真。基于该钻铆系统调姿过程中工件和托架始终相对静止的特征,提出了一种面向动坐标系位姿点的机床运动学反解算法,并在此基础上建立了具有动态干涉检验特性的钻铆路径规划方法,最后采用CAA二次开发方法,在CATIA DMU模块开发了运动仿真系统。
典型的五轴数控机床均可简化为3个移动副和2个旋转副[13],本文研究的自动钻铆系统见图1,其中托架系统可绕其自身旋转轴做2个方向的旋转运动,因此该自动钻铆系统属于五轴数控机床。
图1 五轴自动钻铆系统
Fig.1 Five-axis automatic drilling and riveting system
该自动钻铆系统调姿运动过程分为2个运动支链:托架的调姿运动和上下末端执行器C形架在X、Y上的平移运动。根据机构运动关系描述可得该自动钻铆机运动简图(图2)。机床可通过调节移动副Z1和Z2调节托架在竖直方向的位置。Z1和Z2的调整量不同会导致托架系统左右两侧在Z方向上产生高度差,左侧补偿移动副可进行长度方向的补偿,该高度差用托架绕着本身坐标系YM轴旋转的β角表示,Z1和Z2之间的关系可通过β角的大小以及托架两侧的旋转副的中心距离L来表示,同时托架本身也可绕XM轴旋转α角,最终托架通过调整角和β角使钻铆点法矢方向与C形架上下末端执行器中心点连线法矢方向相同。末端执行器根据托架调整好的工件姿态,分别向X和Y方向平移相对应的一段距离,即可到达期望位置。
图2 自动钻铆系统运动结构简图
Fig.2 Automatic drilling and riveting kinematic sketch
图2涉及的坐标系统如下。
(1)世界坐标系ODXDYDZD:又称为绝对坐标系,为数模装配环境中所定义的全局坐标系。
(2)工件坐标系OPXPYPZP:又称设计坐标系,此处设工件坐标系到世界坐标系的转换矩阵为
(3)托架坐标系OMXMYMZM:托架坐标系建立在托架上,以右侧α角和β角旋转轴的交点为坐标原点,定义α角旋转轴为XM轴,β角旋转轴为YM轴,ZM轴通过右手螺旋法则确定。由于工件通过工装固定于托架上,因此一旦钻铆点位姿信息由工件坐标系转到托架坐标系后,位姿关系就只与机床相关,为离线程序的统一提供方便。托架坐标系为动坐标系,在初始状态下托架坐标系原点在世界坐标系下为OM(OMx,OMy,OMz),ZM与Z1平行,此处设工件坐标系到托架坐标系的转换矩阵为
(4)机床坐标系OTXTYTZT:本文机床坐标系原点定义在上末端执行器压力角中心处,为转换表达方便,ZT轴沿末端执行器制孔钻铆方向,XT、YT与机床X、Y轴运动方向一致。
本文所涉及的五轴自动钻铆离线编程的整体架构见图3。在软件环境中加载自动钻铆机和工件模型,提取孔位信息并将其转换到托架坐标系下。在运动仿真模块中对钻铆点按加工顺序进行运动仿真和实时干涉检验。在已验证无干涉发生后,即可通过NC代码输出模块将仿真验证的孔位路径信息按机床代码规范格式输出。
图3 离线编程系统整体架构
Fig.3 Off-line programming system architecture
对于同一类工件,固定在托架上的工装是其定位的唯一依据。在机床调姿运动过程中工件上钻铆点坐标和法矢在托架坐标系下始终不变,所以在进行机床运动学反解过程中将钻铆点位信息全部转换到托架坐标系下作为输入,可避免因工件的更换或工件位置的调整而带来的重复性工作。
设托架坐标系OMXMYMZM下任一点坐标值和法向向量分别为PM=(xM, yM, zM)T和NM=(lM, mM, nM)T,调整托架将钻铆点位置与法矢调整为加工姿态。托架调姿的目的是使工件加工处的外法矢与动力头的加工轴线平行,以保证铆接质量。在托架调姿过程中,相关矩阵表示方法参考机器人位置运动学相关知识[14]可分为三步,分别为:滑动副Z1沿Z向做平移运动,驱动量为Z1,位置变化矩阵为trans(0,0,Z1);托架坐标系绕其本身坐标系Y轴转动角度β,位置变化矩阵为rot(y,β);托架坐标系绕其本身坐标系X轴转动角度α,位置变化矩阵为rot(x,α)。设初始状态下托架坐标系相对于机床坐标系的位姿矩阵则托架经过调整姿态之后相对于机床坐标系的位置矩阵设为即
(1)
由图2可知,在机床坐标系下,上下末端执行器中心连线的方向向量为NT=(0, 0, -1)T。方向向量从托架坐标系转换到机床坐标系的表达式为
(2)
将式(1)中的代入式(2),可得
(3)
解式(3)可得
α=arctan(mM/nM)
(4)
β=arcsinlM
(5)
上下末端执行器C形架的结构特点使得竖直Z向的进给运动全靠托架左右立柱的Z向滑动副完成,因机床坐标系原点在刀尖点压力角处,所以托架最终Z向调整状态就是将托架坐标系下的钻铆点Z向坐标转换到机床坐标系Z坐标值为0。则任意钻铆点坐标从托架坐标系转换到机床坐标系的表达式为
(6)
将式(1)中的代入式(6)得
(7)
初始状态下,刀尖点位于机床坐标系的零点位置,所以机床坐标系下XT和YT的坐标值即为机床运动主轴X轴和Y轴的驱动量。Z2可由β角和托架转轴中心长度L以及Z1的关系求得
Z2=Z1-Lsinβ
(8)
至此,由式(4)、式(5)、式(7)、式(8)已全部求出5个轴的反解量,综合上述可得
(9)
其中,(xM, yM, zM)和(lM, mM, nM)分别为钻铆点在托架坐标系下的坐标值和法矢值,(PMx, PMy, PMz)为托架坐标系初始状态下在机床坐标系下的原点坐标。
在运动过程中,用户更关心的是机床各部件干涉情况,而在整个机床加工运动过程中,对运动路径上可能出现的碰撞干涉难以完全预测,所以在整个仿真运动过程中需要实时干涉检验。基于此,本文提出了一种具有实时干涉检验功能的钻铆路径规划方法。为实现运动过程的连续性,将各轴反解量分解为若干运动步数,各运动步的单步运动相互连接形成整个路径上的连续运动。在各单步运动结束之后作一次干涉检验,若有干涉现象发生则生成相应的预警报告,否则继续进行下一单步的运动,通过连续单步静态干涉检验实现机床整个运动过程动态干涉检验[15]。具体实施步骤如下。
(1)根据式(9)求解各钻铆点由初始状态到钻铆状态各轴驱动量,计算相邻两点各轴驱动量差值Q=(ΔX, ΔY, ΔZ1, ΔZ2, α)T,设定总驱动步数为T。
(2)根据Q和T计算各轴单步驱动量,设为Q′=(ΔX/T, ΔY/T, ΔZ1/T, ΔZ2/T, Δα/T)T,该Q′等价于各运动轴的速度。
(3)仿真环境下以T为总驱动步数,Q′为单步驱动量,驱动各轴运动。若有干涉则将T拆分为k段,即Ti=(TXi, TYi, TZ1i, TZ2i, Tαi)T,i=1,2,…,k,k个Ti内各元素的总和均为T,然后由Q′和Ti计算第i段各轴驱动量,得Qi=(ΔXTXi/T, ΔYTYi/T, ΔZ1TZ1i/T, ΔZ2TZ2i/T, ΔαTαi/T)T,分别赋予Qi段具体运动步数,并返回步骤(2)。
(4)执行该路径规划算法直至无干涉现象发生,将各分段路径相关信息输出。
上述钻铆路径规划方法在一对相邻钻铆点间的具体流程图见图4。
图4 钻铆路径规划流程图
Fig.4 Flow diagram of route planning
由于该五轴自动钻铆系统为五轴联动运动方式,各轴运动具有一定独立性,所以上述钻铆路径规划实质上是躲避可移动障碍物,通过改变潜在障碍物的运动速度或运动时间顺序实现在空间上避免运动部件的相互干涉。
为满足自动钻铆运动仿真路径多样性和复杂性的需求,本文在CATIA DMU模块采用CAA二次开发的方法满足复杂多变的个性化需求。CAA在DMU Kinematics Simulator模块提供了丰富的机构运动和模拟仿真等方面的二次开发接口,如CATIKinMechanismFactor、CATIKinCmd等;在干涉检验方面也有相关开发接口,如CATIAClashes、CATIClashResult等,可调用相关接口运用该接口下的相关函数实现部件间干涉检验以及输出相关信息。
对于已经创建完成的DMU运动模型,只需改变5个运动轴的驱动命令值即可实现各运动关节的驱动。当前状态下各轴驱动量可通过CATIKinMechanis接口下的GetCmdValues()函数获得,而要改变各轴驱动量的值只需调用SetCmdValues()函数,为各驱动轴赋予新值即可。在干涉检验方面,对于自动钻铆机这类具有复杂运动关系的机床而言,因大部分运动部件都有各自运动副的约束,所以没有必要对所有运动部件一一进行干涉验证。一般认为,只要被选择的待干涉检验部件相互接触或相互在空间位置上重合就认为具有干涉关系,即干涉类型主要为接触或碰撞。若有干涉发生,可通过CATIClash接口下的Compute()函数计算干涉情况,用GetResult()函数获取计算结果并输出,主要输出信息为具有干涉关系的两部件的名称、干涉类型、干涉量。
下面以某飞机壁板类零件为实例验证该模块的可行性。机床主要参数及工件加载后各坐标系原点位置信息见表1。
表1 机床信息及主要参数
Tab.1 Machine information and main parameters mm
参数取值OP(411.1, 2 128.4, -11 867.0)OM(405.0, 1 433.9, -1 794.0)OT(-271.9, 1 502.1, -431.2)L3 188.0
由第2节描述以及表1可求得工件坐标系到托架坐标系的转换矩阵如下:
(10)
系统获得的在工件坐标系下钻铆点的位姿信息通过式(10)转换到托架坐标系下。限于篇幅本模块选取4个钻铆点作为验证点,在工件坐标系和转换到托架坐标系下各验证点的坐标值和法矢值见表2。
在托架坐标系下,将初始状态下钻铆点的位置和法矢信息代入到反解公式(式(9)),即得到自动钻铆机做调姿运动时各轴需要给定的驱动量,见表3。
表2 钻铆点初始坐标及法矢信息
Tab.2 The initial coordinates and normal vector riveting point
名称坐标值(mm)法矢值钻铆点1OPXPYPZP(12 171.5, -171.2, -640.0)(0, -1.000 0, 0)OMXMYMZM(2 098.5, -164.6, 54.5)(0, -1.000 0, 0)钻铆点2OPXPYPZP(11 354.7, -129.0, -643.3)(0.002 4, 0.013 1, 0.999 9)OMXMYMZM(1 281.7, -122.4, 51.1)(0.002 4, 0.013 1, 0.999 9)钻铆点3OPXPYPZP(10 526.7, -229.5, -644.1)(-0.003 3, -0.003 0, -0.999 9)OMXMYMZM(453.7, -223.0, 50.4)(-0.003 3, -0.003 0, -0.999 9)钻铆点4OPXPYPZP(12 036.6, 145. 2, -644.1)(-0.002 1, -0.015 0, -0.999 8)OMXMYMZM(1 963.6, 151.8, 50.3)(-0.002 1, -0.014 9, -0.999 8)
表3 不同钻铆点对应各轴驱动量
Tab.3 Every axis’ drive quantity of different point
名称X(mm)Y(mm)Z1(mm)Z2(mm)α(°)β(°)钻铆点1735.734512.22713.69413.69400钻铆点2-80.939555.16318.50110.938-0.7490.136钻铆点3453.737453.75312.39823.0180.172-0.191钻铆点4600.768827.87611.41918.1510.858-0.121
以下通过表1~表3中的数据,以钻铆点1和钻铆点2之间的运动验证该运动仿真模块的可行性。设定两点之间的驱动步数T=50,以2.2节中的路径规划方法驱动机床做仿真运动,系统初次运动会检测到托架工装和上末端执行器发生干涉,如图5a所示,由于上末端执行器在运动调姿过程中无Z方向位移,因此此时可视托架系统为可移动障碍物,托架在Z向的移动时间滞后其他驱动轴的运动可避开干涉。将T拆分为T1和T2,每段路径设定驱动步数为50,通过重新规划的运动路径成功避开了上末端执行器和托架系统的相互干涉,如图5b所示。路径调整前后运动示意图见图5c。
图5 运动路径调整前后对比图
Fig.5 Comparation of different movement path
(1)在离线编程运动仿真模块中将其划分为机床运动学反解、钻铆路径规划、仿真环境的实现3个子模块。机床运动学反解基于动坐标系钻铆点位姿信息利用几何解析法求解;在钻铆路径规划模块,本文提出了一种具有实时干涉检验功能的路径规划方法,对路径中出现的干涉现象通过将当前路径拆分为若干段以规避障碍物而予以避免;运用CATIA CAA二次开发在DMU模块实现了加工动态仿真,对运动路径上出现的碰撞干涉情况会生成预警报告并能及时调整运动路径,避开障碍物。
(2)实例验证表明,机床运动学反解算法正确,在仿真环境中系统能准确识别干涉部件并可运用钻铆路径规划方法调整运动路径而成功避开障碍物,从而为后续离线编程系统的开发奠定基础。
[1] 韩峰,田威,廖文和,等. 面向并联机构的轻型自主爬行钻铆系统法向调姿算法[J].航空学报,2015,36(6):2083-2090.
HAN Feng,TIAN Wei,LIAO Wenhe,et al.Normal Posture Adjustment Algorithm for Light Weight Auto-crawling Drilling System Based on Parallel Mechanism[J].Acta Aeronoutica et Astronautica Sinica,2015,36(6):2083-2090.
[2] 王珉,陈文亮,郝鹏飞,等. 飞机数字化自动钻铆系统及其关键技术研究[J]. 航空制造技术,2013(1/2):80-83.
WANG Min,CHEN Wenliang,HAO Pengfei,et al. Aircraft Automatic Drilling and Riveting System and Its Key Technology[J].Aeronautical Manufacturing Technology,2013 (1/2):80-83.
[3] TIAN W,ZHOU Z,LIAO W. Analysis and Investigation of a Rivet Feeding Tube in an Aircraft Automatic Drilling and Riveting System[J]. International Journal of Advanced Manufacturing Technology,2012,61(5/8):691-701.
[4] 何晓煦,田威,曾远帆,等. 面向飞机装配的机器人定位误差和残差补偿[J]. 航空学报,2017,38(4):287-297.
HE Xiaoxu,TIAN Wei,ZENG Yuanfan,et al.Robot Positioning Error and Residual Error Compensation for Aircraft Assembly[J]. Acta Aeronoutica et Astronautica Sinica,2017,38(4):287-297.
[5] ZOUC, LIU J. An Off-line Programming System for Flexible Drilling of Aircraft Wing Structures[J]. Assembly Automation, 2011,31(2):161-168.
[6] 殷俊清,王仲奇,康永刚,等. 仿真技术在飞机自动钻铆中的应用[J]. 航空制造技术, 2009(24):84-87.
YIN Junqing,WANG Zhongqi,KANG Yonggang,et al. Application of Simulation Technology in Aircraft Automatic Drilling and Riveting[J]. Aeronautical Manufacturing Technology,2009(24):84-87.
[7] 许瑛,胡小平,徐华,等. 基于Matlab的飞机自动钻铆机器人运动分析[J]. 制造业自动化,2009,31(7):25-28.
XU Ying,HU Xiaoping,XU Hua,et al. Research on the Architecture of Networked Collaborative Manufacturing Platform Based on Web Services[J]. Manufacturing Automation,2009,31(7):25-28.
[8] 陈亚丽. 机器人自动钻铆系统离线任务规划方法研究[D].南京:南京航空航天大学,2015.
CHEN Yali. Method Research on Robotic Off-line Task Planning of Robot Automatic Drilling and Riveting System[D]. Nanjing: Nanjing University of Aeronautics and Astronautics, 2015.
[9] 马伟,徐岩,皱宜勇,等.基于CATIA的五轴自动钻铆定位方法研究[J].机械制造与自动化,2014,43(4):175-176.
MA Wei,XU Yan,ZHOU Yiyong,et al. Study of Automatic Location Method of Five Axis Riveting Machine Based on CATIA[J]. Machine Building & Automation, 2014,43(4):175-176.
[10] 马伟. 五轴自动钻铆定位系统结构设计与仿真模块开发[D].南京:南京航空航天大学,2014.
MA Wei. Structure Design and Simulation System Development of Five-axis Riveting Automatic Positioning System[D]. Nanjing: Nanjing University of Aeronautics and Astronautics, 2014.
[11] 韦世锋. 飞机部件自动钻铆机床离线编程与仿真规划研究[D]. 南京:南京航空航天大学,2016.
WEI Shifeng. Research on Off-line Programming and Simulation of Automatic Drilling and Riveting Machine for Aircraft[D].Nanjing: Nanjing University of Aeronautics and Astronautics,2016.
[12] ZHA X F, DU H. Generation and Simulation of Robot Trajectories in a Virtual CAD-based Off-line Programming Environment [J].International Journal of Advanced Manufacturing Technology. 2001,17(8):610-624.
[13] YANG J,ALTINTAS Y. Generalized Kinematics of Five-axis Seril Machines with Non-singular Tool Path Generation[J].International Journal of Machine Tool & Manufacture,2013,75(12):119-132.
[14] NIKU S B. 机器人学导论:分析、控制及应用[M].孙富春,朱纪洪,译. 北京:电子工业出版社,2013:33-39.
NIKU S B. Introduction to Robotics: Analysis, Control, Application[M].SUN Fuchun, ZHU Jihong, trans. Beijing: Publishing House of Electrinics Industry,2013:33-39.
[15] 李伊,刘恩福,刘晓阳,等. 基于CATIA/CAA的复杂产品装配干涉矩阵自动生成方法研究[J]. 机械设计与制造,2016(1):36-39.
LI Yi,LIU Enfu,LIU Xiaoyang,et al. Research on Automatic Generation Method of Assembly Interference Matrix for Complex Product Based on CATIA/CAA[J]. Machinery Design & Manufacture,2016(1):36-39.