2020⁃12⁃31
计算机应用,Journal of Computer Applications
2020,40(S2):112-116ISSN 1001⁃9081
CODEN JYIIDU http ://www.joca
基于DELMIA 的机器人制孔离线编程系统开发
赵安安*,张
程,郭
峰,周新房
(中航飞机股份有限公司,西安710089)(*通信作者wwh891219@163 )
摘要:针对机器人自动化制孔系统中离线编程软件使用较复杂的问题,提出一种基于DELMIA 软件及其二次开
发的新型机器人制孔离线编程方法,开发了一套更加简单快捷的离线编程系统。首先设计了离线编程系统的总体架构,梳理了工艺流程,分析了制孔点坐标系生成方法,自动获取了孔位法向参数,通过程序计算出材料的夹层厚度,经过基准点的映射与计算后,最终自动规划制孔路径,生成离线代码。仿真结果表明,该系统极大缩短了机器人制孔前期离线编程时间,减少了人工操作量,尽可能地实现了离线编程过程的全自动化,对开发统一的机器人自动化制孔离线编程系统具有指导意义。
关键词:机器人制孔;离线编程;DELMIA 二次开发;路径规划;法向正中图分类号:TP311.56;TP319
文献标志码:A
Development of off -line programming system for robot drilling based on DELMIA
ZHAO An ’an *,ZHANG Cheng ,GUO Feng ,ZHOU Xinfang
(AVIC Aircraft Company Limited ,Xi ’an Shaanxi 710089,China )
Abstract:In order to solve the complexity problem when using off -line programming software in automatic robot drilling
system ,a new off -line programming method based on Digital Enterprise Lean Manufacturing Interaction Application
(DELMIA )software and its secondary development was proposed ,and a set of more simple and fast off -line programming system was developed.Firstly ,the overall architecture of the off -line programming system was designed ,the process flow was sorted out ,and the generation method of the hole coordinate system was analyzed.The normal parameters of the hole position were obtained automatically.The interlayer thickness of the material was calculated by the program.After the mapping and calculation of the datum point ,the drilling path was automatically planned and the offline code was generated.The system greatly shortens the off -line programming time in the early stage of robot drilling ,reduces the amount of manual operation ,and realizes the full automation of off -line programming process as far as possible ,which has guiding significance
for the development of unified automatic robot off -line programming system.Key words:robot drilling;offline programming;secondary development on Digital Enterprise Lean Manufacturing
Interaction Application (DELMIA );path planning;normal alignment
引言
本文所述机器人自动化制孔是指利用工业机器人在航空
产品表面(如机翼蒙皮、机身壁板)上进行制孔(如图1所示)。机器人的功能是带动末端执行器移动并调整姿态,在机器人带动下,末端执行器的位姿将满足以下两个制孔条件:1)刀具刀尖点(Tool Center Point ,TCP )移动到制孔点;2)电主轴方向垂直于产品表面。在机器人运行过程中需要利用相机确定基准孔的位置并利用激光传感器(或压力传感器)确定法向位置。机器人调整完毕后,制孔过程由末端执行器控制。一个工位完成后机器人可利用第七轴或自动导引运输车(Automated Guided Vehicle ,AGV )移动到下一个工位。可以看出,整个过程涉及复杂的运动,且末端本身也有多个驱动轴,运动过程中很容易与产品或工装发生碰撞干涉,另外路径规划对制孔效率影响也很大,所以离线编程对机器人制孔系
统的意义非常大。
离线编程是通过软件在虚拟三维场景中仿真与调整机器人运动轨迹,最终生成程序传输给机器人。随着机器人应用的广泛普及,传统示教在很多场合变得效率低下且不适用,而离线编程一方面可实现远程编程,便于修改机器人程序,避免一些危险事故,另一方面能够完成机器人性能及轨迹的优化。因此,采用离线编程的方式可大幅提高工作效率与质量。
目前,离线编程软件包含专用型及通用型两大类。专用型离线编程软件主要由各机器人本体厂商研发,
如KUKA Sim (KUKA 公司)及Robot Studio (ABB 公司)等[1-2],ABB 研发的Robot Studio 仿真系统采用了实际机器人控制系统中的控制算法,图形仿真结果和实际机器人运行基本一致,编程采用
ABBGG 机器人的RAPID 语言,可以导入CATIA 文件模型。专用离线编程软件虽与机器人本体兼容性较好,但仅限于同一
文章编号:1001-9081(2020)S2-0112-05
DOI :10.11772/j.issn.1001-9081.2020050636
收稿日期:2020⁃02⁃18;修回日期:2020⁃07⁃06;录用日期:2020⁃07⁃13。
作者简介:赵安安(1983—),男,陕西西安人,高级工程师,硕士,主要研究方向:飞机制造;张程(1986—),男,陕西西安人,工程师,硕士,主要研究方向:飞机装配;郭峰(1979—),男,陕西西安人,高级工程师,主要研究方向:飞机数字化集成装备;周新房(1977—),男,陕西西安人,高级工程师,主要研究方向:飞机工艺装备控制。
第S2期赵安安等:基于DELMIA的机器人制孔离线编程系统开发
品牌机器人应用,通用型离线编程软件一般都由第三方软件
公司负责开发和维护,不单独依赖某一品牌机器人,如RobotMaster[3-4]、RobotWorks、RobotArt[5]、DELMIA(Digital
Enterprise Lean Manufacturing Interaction Application)[6-8]等。
其中,RobotMaster、Robot Works分别为基于MasterCAM、SolidWorks进行的二次开发,所使用的平台与航空制造领域
所应用的CAD(Computer-Aided Design)平台差异较大,不利
于从三维设计模型数据进行离线编程数据的转换,且售价昂
贵;RobotArt由北京航空航天大学研发,但该软件对于机器人
制孔支持不够完善;哈尔滨工业大学基于CAD平台,运用
ObjectARX开发了一种任务级的离线编程系统,之后该校又
以Solidworks作为新的系统平台,应用COM(Component
Object Model)和ATL(Active Template Library)编程技术,开发
控制了一个功能较为完全的机器人离线编程系统。DELMIA
是法国DassaultSystemes旗下的CAM(Computer-Aided Manufacture)软件,与国内航空企业所采用的CAD软件——
CATIA(Computer Aided Three-dimensional Interactive Application)属于同一平台,可实现无缝集成。DELMIA包含
有超过400种的机器人资源,属于专家型软件,操作难度较
高。德国宝捷公司的FASTIP图形仿真系统正是基于
在此环境下,本文基于DELMIA平台,结合我国航空领域的机器人制孔系统,对离线编程系统的结构及实现方式进行深入研究。
1离线编程软件架构
1.1DELMIA及其二次开发
由于DELMIA与CATIA的无缝集成使得它在航空领域具有非常大的优势,利用CATIA生成的数模无需转换且不丢失任何三维信息可直接导入DELMIA软件平台(利用3D图形文件如STP等中间格式转化时会丢失线型、颜等状态),从而保证产品数模的完整性,保留了依赖于状态传递的信息。
基于DELMIA的二次开发有两种方法:一是基于CAA (Component Application Architecture),它是DE
LMIA的一套C++函数库,在DELMIA运行时加载,能够从底层增强DELMIA的功能;另一种是利用COM对象进行二次开发,COM 对象是遵循COM规范的可执行二进制代码,可以实现应用与组件的互操作,开发人员无需了解组件功能实现方式,只利用其提供的接口就可以实现功能。由于前者受DELMIA版本影响较大,且需要用编译型语言C++,不便于修改,不宜用于机器人制孔环境。本文选择第二种方法,利用虚拟编程应用程序(Visual
Basic for Applications,VBA)以宏的形式进行开发,这
种方法受DELMIA版本影响较小,且可满足离线编程的需求。
1.2离线编程系统架构
离线编程二次开发在DELMIA平台中的“Device Task Definition”模块内进行。该模块属性树包含ProcessList、ProductList和ResourcesList(图2)三个节点。ProductList和ResourceList节点分别用于存放产品(即待制孔对象)和资源(工装等)数据,ProcessList用于存放工艺仿真过程。
图2属性树
离线编程系统涵盖机器人制孔的完整工艺流程,主要功能包括制孔点位坐标系生成、基准孔映射、制孔路径规划及离线代码生成,系统总体结构如图3所示。离线编程所需的产品和工装定位、生成相关指令、仿真等功能在DELMIA内都可以完全实现,无需进行二次开发。这些模块都以宏的形式进行开发,最后利用自定义的工具栏将相关功能模块的图标集成到DELMIA的主界面,便于使用。
2制孔点坐标系生成
在DELMIA里需要对每一个待制孔生成一个坐标系(在DELMIA内称为Tag),本文称其为制孔点坐标系(其三轴方向为n、o、p)。制孔点坐标系原点与待制孔圆心重合,p轴(代表电主轴方向)与产品表面垂直,其余两轴自由(o轴约束条件可以为水平且保证末端与产品无干涉)。由于产品上孔非常多,手工生成Tag效率太低且DELMIA里自带工具生成的Tag 并不是与产品表面垂直的,所以需要用程序生成Tag。具体分为以下几个步骤。
2.1点位法向生成
生成Tag点首先需要生成垂直于产品表面的法向。在DELMIA里Part对象表示零件,零件的Hybrid Shape Factory方法可以获得工厂对象,Hybrid Shape Factory对象的Add New Line Normal方法可以添加法向量,其前两个参数分别是参考曲面和参考点。具体生成时由于不同点可能在不同几何图形集里,所以需要针对不同的结构形式采用对应的生成方法。为适应不同的结构形式可以采用递归的方法进行。本文规定生成的法向代表了Tag的p轴。
图1机器人自动化制孔示意图
图3离线编程系统架构
113
第40卷
计算机应用
2.2
坐标系转换
在DELMIA 环境下,有一个环境零点,在该点建立坐标系,称为o 系。设产品本身坐标系为w 系,产品上的孔位置坐
标为p ,p 与w 的关系可以通过Point.GetCoordinates 获得(假设p 相对w 的位姿为O
B T )。当产品导入o 系后生成的Tag 是相对
于o 系,此时需要将p 从w 转到o 系,所以需要获得w 在o 下的位姿矩阵,这可以通过Product 对象的Position.GetComponents
方法获得。最后利用以下关系进行坐标转换:
P o =T o
w •P w (1)同理,产品法向向量(即Tag 的p 分量)也可以利用该公式进行转换:
p o =T o
w •p w (2)
2.3
YPR (Yaw Pitch Roll )角设定
完成坐标系转后需要在DELMIA 里生成Tag 。根据DELMIA 要求,所有Tag 都放在一个Product 下(其默认名称为TagGroup ),在生成Tag 前需要先生成TagGroup ,然后利用TagGroup 的GetTechnologicalObject 方法获取Tag 的工厂对象,最后用工厂对象的CreateTag 方法生成Tag 。DELMIA 提供了两个方法用于设置Tag 的位姿:SetXYZ 和SetYPR ,分别用于设置其位置和角度。
Tag 的p 方向(产品法向)已经得到,约束o 轴为水平方向,又o 与p 垂直,即对o 有如下约束(假设o 系的Z 轴向垂直
向上):
{
o z =0o ·p =0
(3)
则有o x p x +o y p y =0,可由p x 和p y 表示o x 和o y 。这时可以确定Tag 系在o 系下的表示:
T =éëêêùû
úún x
o x a x n y
o y a y n z o z a z (4)
当确定Tag 三个坐标轴在o 系的方向后,就可以求YPR 角。在DELMIA 里YPR 角表示Tag 绕o '系(o 系平移到Tag 点位置后形成的坐标系)的o 'x 、o 'y 、o 'z 三轴旋转角度α、
β、γ,采用相当于绕自身坐标系旋转的右乘表示:
T =Rot (a ,α)Rot (o ,β)Rot (n ,γ)(5)
用Rot (a ,α)的逆左乘上式,得:
éëêêùûúúcos α
-sin α0sin αcos α00
1-1
éëêê
ù
ûúún x o x a x n y o y a y n z o z a z =
éëêê
êêùûúúúúcos β0sin β010-sin β
0cos βéëêê
êêù
ûúúúú1000cos γ-sin γ0sin γcos γ(6)
两侧进行矩阵相乘,有:éëêêùû
úú
n x cos α+n y sin αo x cos α+o y sin α
a x cos α+a y sin αn y
cos α-n x
sin α
o y cos α-o x sin α
a y cos α-a x sin αn z o z a z =
éëêê
êù
û
ú
ú
ú
cos β
sin βsin γsin βcos γ0cos γ
-sin γ-sin β
sin βcos γcos βcos γ(7)
利用对应元素相等可得:
ìí
î
ïïïïα=atan2(n y ,
n x )β=atan2(-n z ,
n x cos α+n y sin α)γ=atan2(-n y cos α+a x sin α,o y cos α-o x sin α)(8)
其中,α的另一个互补的解atan2(-n y ,-n x )也是可能的,需要
根据物理实际进行取舍。2.4
夹层厚度计算
机器人自动化制孔的对象往往是具有多层结构的产品,
由于每次一层结构的材料不同,制孔时所采用工艺参数(电主轴转速、进给速度等)也不相同,所以有必要计算每个夹层的厚度。为便于计算,所有产品(包括夹层)都需要在同一坐标系下建模。夹层计算原理见图4,具体计算步骤如下:1)用AddNewLinePtDi 方法将已经计算出的产品法向P 复制到夹层;
2)用AddNewIntersection 方法计算P 与原产品的交点(一
般为两个);
3)用GetMinimumDistance 方法计算两个交点的距离。
对每一个夹层用以上方法计算确定夹层厚度,最后利用Parameters 对象将参数信息保存。
以上生成了Tag 并求得了Tag 的位姿,进行了相关参数设
置,整个过程是全自动的,无需人工操作。接下来需要针对这些Tag 建立对应关系、制定制孔路径并设置工艺参数。
3
基准孔映射
在进行机器人制孔时,需要用工业相机确定基准孔的位
置,利用该位置修正一般孔的位置偏差,所以需要知道基准孔与一般孔的对应关系。一般情况下,基准孔与一般孔是线性修正的,即基准孔位于一般孔的两端,如图5(a )所示。
人工建立基准孔与一般孔的对应关系是一项枯燥乏味且效率低下的工作,而且面对上千个孔位进行操作时极易出错,所以这一项工作应尽可能由程序完成。但是由于以下原因,
导致“两点确定一条直线”
的修正方法无法用程序自动完成:
图4
夹层厚度计算
图5基准孔与一般孔对应关系
114
第S2期赵安安等:基于DELMIA 的机器人制孔离线编程系统开发
1)有时孔位并不完全在一条直线上,无法利用“搜索落到直线上的点”的方法确定关系;2)在十字交叉点处,会产生歧义,无
法确定一般孔应该由哪些基准孔修正。
目前来看,基准孔与一般孔的位置关系是线性的,这是由产品孔位特点决定的。例如在机身壁板制孔时,孔打在肋板和桁条,桁条上的孔以线性为主。当着眼于整个肋板时,会发现孔位的相对关系是一个整体关系,仅仅利用某些线性关系相当于忽略了一部分拓扑信息,所以笔者认为应该从整体角度看待孔位分布。本文提出一种基于被修正孔的对应关系确定方法(图5(b )),其建立步骤如下:1)扫描所有孔,将其放入集合A ,即A ={p 1,
p 2,…,p n },n 为所有孔总数。
2)确定所有基准孔,放入集合S ,则一般孔位于集合B =(A -S )。
3)对B 中所有元素b i 依次执行如下操作:以b i 为圆心,以
依赖半径R (基准孔对一般孔的修正范围)为圆心确定圆,所有落入圆内的S 中的元素标记为b i 的基准孔。
伪代码如下:
Set A ,S
for_each p in points A .insert (p )
for_each b in basepoints S .insert (b )B =A -S
while (B not empty )c 1=circle(b i ,R )S 1=S.in_circle(c 1)
b i .basepoint=S 1B .remove b i
采用以上方法时,首先确定基准孔,然后依次扫描待制孔,将满足一定条件的基准孔作为修正孔,这样完全可以由程序控制二者对应关系。
4
制孔路径
实际上,制孔路径的设置也属于工艺性的一部分,因为不
同的制孔路径对最终孔的质量会有影响,但目前这种工艺特性较为复杂,当制孔精度满足要求时并不需要对这种特性进行深入分析,本文也不对这种工艺性进行探讨,仅从几何角度考虑如何生成制孔路径。4.1
由Tag 生成Operation
制孔路径属于机器人操作的一部分。在DELMIA 里,机
器人相关操作都在属性树的Program 节点里,利用DELIMA 里的“New Task ”工具(图6),可以在Program 里生成RobotTask 节点,在该节点里可以插入机器人相关操作。
DELMIA 里的RobotTask 对象可以对机器人程序进行控
制,利用CreateOperation 方法可以插入相关操作,再用
GetRobotMotion 方法可以获得机器人运动对象RobotMotion ,该对象的SetTagTarget 方法可以设置某一个Tag 点为其运动点。这样就完成了机器人运动点与Tag 的映射。在生成Operation 时需要利用Parameters 对象将相关制孔参数写入
Operation 中。4.2
制孔路径算法
与基准孔映射类似,本文旨在寻一种自动生成制孔路
径的方法。假设机器人运动指令均为点到点(Point To Point ,PTP )指令,在制孔时,机器人所走轨迹可视为线段的叠加,路径算法就是对线段端点(即Tag 点)的排序。在生成路径时,利用DELMIA 里的Selection 对象的SelectElement3方法可以多选Tag ,生成路径的过程就是对这些Tag 进行排序并生成Operation 。排序算法的选择应具有一定的物理意义,而不一定非要路径最短。具有物理意义即要求路径的直观性,使操作人员对于路径可预测。一般情况下,制孔点大致呈线性排布,大部分情况下可以采用最邻近点算法(其本质为贪心算法),流程如图7所示。
当然,对不同的情况采用不同的算法能够对路径进行优化(防止折返运动)。例如,当孔位呈“棋盘状”分布时,采用逐行扫描的方法具有最清晰的物理意义和较短的路径距离。4.3
路径轨迹
在确定路径顺序后,应以可视化的方法显示轨迹,便于操作人员确定制孔状态。为生成轨迹,可以在产品数模里新建一个Part ,每当生成一个Operation 就在Part 的对应位置里点生成一个点,并依次将点连成线,这样就生成了制孔轨迹线。
5
离线代码生成
以上生成了机器人制孔程序(RobotTask 节点),现在需要
将其导出,用于现场上位机进行制孔操作。离线代码与上位机交互需要规定一种数据传递格式,目前以数控(Numerical Control ,NC )代码表示的方法得到认可。国内对这方面的研究也比较深入,但这种以数控编译器为目标的实现方法,对自动化制孔来说过于复杂,不够灵活。可以以简化的方式实现离线代码解释,如将基本指令以如下形式表示:
指令参数1参数2…参数n 例如对于制孔指令,其调用方式为:DRILL x y z a b c p1p2…
DRILL 表示了这是一个制孔操作,后面的参数表示了孔
位及工艺参数。基于NC 代码进行离线代码表示,语法及语义简单,便于上位机解释器的开发,这种代码与机床代码相似,
操作人员易于掌握,且可读性强,
现场调试方便。
图6New Task
工具
图7路径算法
115
第40卷
计算机应用6离线编程系统应用验证
基于本项目设计的离线编程软件,完成了西安飞机工业有限责任公司某项目的工艺试验及产品试验件的试制。针对该项目,采用本系统开发软件与EI 公司所用软件分别进行了1000个孔的离线编程实验,完成了法线计算、坐标系生成、路径规划、离线代码生成及仿真等内容,图8所示为工位、顺序、压力角压力等参数设置界面,图9为工艺路径规划界面,图10为最终离线代码生成界面。
采用本套系统只需在DELMIA 中进行少量选取操作,相
关参数均为程序自动优化生成;而采用EI 公司系统需要人工进行大量参数(如材料叠层厚度、路径轨迹等)设置,操作较复杂,用时较长。各项过程效率对比如表1所示。
采用本系统在参数界面设置完成基准检测目标点与制孔目标点,选择所需路径算法,软件自动计算出机器人位姿参数与夹层厚度,从而生成机器人运动轨迹与制孔参数,在软件代码生成界面生成NC (Numerical Control )代码,将该代码仿真
后导入机器人控制器,最终机器人精确定位到了目标点并完成一系列制孔。通过该实验,表明所开发软件满足需求,各个工艺步骤能以自动化的形式完成,精准而快速地生成离线代码。
7
结语
本文基于DELMIA 对机器人自动化制孔中的离线编程进
行了研究,分析了Tag 生成的位姿变换算法、夹层厚度计算、路径生成算法等,并将其在DELMIA 内实现。整个过程尽可能地实现自动化离线代码生成,减少了手工操作步骤。
由于DELMIA 的相关文档非常匮乏,其中很多COM 接口未在官方文档中提及,笔者对其某些功能的研究也难免有所疏漏,而且还有些操作未到实现方法,希望在后续研究中能够完善相关内容。
参考文献(References )
[1]
ZHU W ,QU W ,CAO L ,et al.An off -line programming system for robotic drilling in aerospace manufacturing [J ].The International Journal of Advanced Manufacturing Technology ,2013,68(9):2535-2545.
[2]
GÎRBACIA
F ,DUGULEANĂ
M ,STAVĂR
A.
Off -line
programming of industrial robots using co -located environments
[J ].Advanced Materials Research ,2012,463/464:1654-1657.[3]马骏.基于弧焊机器人的金属表面堆焊制字工艺及离线编程研究[D ].镇江:江苏科技大学,2019:4.
[4]
张世炜,吴沙,李晓甫,等.基于Robotmaster 的半挂车机器人喷粉离线编程应用研究[J ].专用汽车,2018(12):86-90.[5]张小红.基于RobotArt 的ABB 机器人码垛工作站教学设计[J ].电子测试,2019(22):112-114.
[6]薛宏,罗,刘博锋,等.大飞机活动翼面机器人自动制孔应用研究[J ].航空制造技术,2019,62(19):86-91,98.[7]马国庆,刘丽,于正林,等.基于Delmia 的工业机器人离线编程研究[J ].制造业自动化,2019,41(9):101-105.[8]柴建豪.面向布线的线束机器人轨迹规划和离线编程研究[D ].长春:长春理工大学,2018:5.
[9]
MIEGEL V ,BARGFREDE J ,ANSELMBY J.Method and system for off -line programming of multiple interacting robots :WO 2005124486A2[P ].2005-09-22.[10]刘斌彦.基于CAA 的自动钻铆离线编程系统开发[D ].南京:南京航空航天大学,2017:9.[11]孟国军.工业机器人离线编程系统关键技术的研
究[D ].武汉:华中科技大学,2011:8-9.[12]张生芳.通用数控代码编译器研究[D ].大连:大连铁道学院,2002:13-15.
[13]田永中,周建平,梁楚华.开放式数控系统中G 代码编译器的设计与研究[J ].机械设计与制造,2011(3):154-155.
[14]
贾旭,卢晓红,王鑫鑫.基于PMAC 的微铣床数控系统中G 代码编译研究[J ].组合机床与自动化加工技术,2012(3):104-
107.
图8
参数设置
图9
工艺规划
在线编程和离线编程的特点图10软件总体界面
表1
采用不同系统效率对比单位:min
系统EI 系统本系统
法线计算1205
坐标系生成24010
路径规划
30010
离线代码生成及仿真15(无压力角动作模拟)
30(含压力角动作模拟)
116
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论