混合式弧焊机器人编程语言.pdf
第2 7 卷第7 期焊接学报v 0 1 2 7N o 72006 年7 月T R A N S A C O N SO F 唧C H I N A 礴砸L D I N GI N S T T r【J,1 1 0 NJ u l y2006混合式弧焊机器人编程语言张连新1,高洪明1,张广军1,吴林1,胡增臣2(1 哈尔滨工业大学现代焊接生产技术国家重点实验室,哈尔滨1 5 0 0 0 1;2 长春客车厂工业公司铁路客车配件厂,长春1 3 0 1 1 3)摘要:在对机器人语言的特点和系统构成分析的基础上,开发了混合式弧焊机器人语言。该语言除了具有一般程序设计语言所必需的顺序、分支、循环和子程序以外,还具有弧焊机器人所必需的机器人运动控制和焊接等相关功能。为了实现这些功能,设计了H A W R I 的数据表示方法、指令集和变量,提出了数据和程序分离的程序结构形式。从而使得H A w R I 兼有机器人级机器人语言简单易用以及任务级机器人语言编程效率高的优点。试验表明,应用H A w R L 可以高效、快速、容易地生成机器人程序并被正确地执行;同时,它也提供了机器人和外部设备的统一接口。关键词:机器人语言;机器人编程;弧焊机器人中图分类号:嗍文献标识码:A文章编号:0 2 5 3 3 印x(2 0 0 6)0 7 1 0 5 一0 5张连新O序言传统的示教再现型的弧焊机器人系统已经远远的不能满足现代的焊接作业对于高效率、高精度、小批量、复杂形状以及遥控焊接作业的要求。为此,现代焊接生产技术国家重点实验室开发了开放式弧焊机器人控制系统O A A W R C S(o p e na I h i t e c t u r ea I w e l d i n gI D b o tc o n t m ls y s t e m)。要使得O 从w R c s 能够方便地集成各种其它设备以及系统 1 ,如焊缝视觉跟踪系统等,0 A A W R c s 就必须要为它们提供良好的接口形式。机器人语言提供了一种通用方式来解决机器人与外部设备的通讯问题,同时,机器人语言也是机器人系统先进水平的重要标志之一心J。从机器人语言发展的历史来看,机器人语言从比较低级的动作级语言逐渐发展到比较高级的任务级语言 3J。动作级语言语句比较简单,易于编程;但是其缺点也比较明显,即不能进行复杂的数学运算,编程效率低,不能接收复杂的传感器信息。尽管如此,由于其简单实用,动作级语言仍然得到了广泛的应用。现在的大多数机器人语言都属于这一类,如I B M 公司为其机器人产品开发的商品化机器人语言A M L。任务级语言没有明确的规定机器人的动作,但机器人可以自动进行推理、计算,最后生成机器人的动作序列。这类语言为数不多,主要有I B M 公司开发的A U r m P A S S。这类语言的功能也远没有真正的达到人们的期望。但是,它确实是一个非常具有收稿日期:2 0 0 5 0 5 2 0实用意义的发展方向H 7J。基于以上分析,综合动作级机器人语言和任务级机器人语言的优点,作者拟介绍该实验室开发的混合式弧焊机器人编程语言H A 砒(1 l y b 瑚a r cw e l d i n gm b o tl a J l g u a g e)。H A w R I 不仅包含了动作级的指令和简单的任务级指令,同时具有一些运算功能,故称为混合式弧焊机器人编程语言。运用H A 吼,不仅可以实现机器人作业程序的手动编写,同时实现了离线编程系统、遥操作系统以及示教编程器与O A A W R C S 的通用接口。1机器人语言的特点及组成1 1 机器人语言的特点机器人语言被定义为能够控制机器人硬件并能够调用其它控制软件功能模块的计算机程序设计语言。由于机器人语言是一种程序设计语言,它应该包括普通程序设计语言的各种成分(控制结构、子程序、必要的数据类型及运算),又因为它是机器人语言,故它必须包含用于描述和控制机器人系统的指令或功能,主要包括J:(1)机器人的控制涉及大量的机器人运动学和控制算法,在机器人语言中必须包括专门的指令进行处理,使用户能够摆脱繁琐算法的约束,能在更高层次上操作机器人。(2)机器人操作的对象位于三维空间中,在机器人语言中应该提供对三维物体的描述方法。(3)机器人在一个复杂的空间环境中工作,必须使用传感器获取相关 万方数据1 0 6焊接学报第2 7 卷的信息,在机器人语言中必须包括相应的处理指令。(4)机器人都是用于特定的任务(装配、焊接和喷漆等),在机器人语言中必须包含执行相关任务的指令。1 2 机器人语言的组成根据机器人语言的类别不同,其组成也不同J。对于动作级机器人语言,主要包括:(1)位置说明。使用提供的数据结构定义物体的位置和特征。对于焊接作业,机器人末端焊枪以及工件的位置和姿态可以用4 4 的矩阵进行表示。(2)运动说明。通常用一系列机器人要达到的目标位置来说明,不仅需要说明初始状态和终止状态,为了避免碰撞,还应该说明路径上足够的中间点。此外,还需要说明运动的速度等。(3)传感和控制流程。焊接过程中存在着焊接变形,同时又要保证焊接的质量,通常要使用焊缝跟踪系统和熔透控制系统等。故程序中要包含相应的传感信息处理。此外,机器人程序的流程通常由传感器信息控制,多数语言都提供了判定结构,如d 0 一w h i l e。(4)程序设计支持。提供必要的程序开发和调试功能,主要包括再线修改、跟踪传感输出和仿真。对于任务级机器人语言,允许用户使用高级语言描述任务(任务说明),系统的任务规划程序通过查询数据库(环境模型),将任务说明转换为机器人语言程序(程序合成),然后执行之。主要包括:(1)环境模型。用于描述物体(包括机器人)的几何和物理特性,以及工作空间中物体的状态。(2)任务说明。任务被描述成工作空间中物体状态的序列,物体状态可以用物体之间的空间关系表示,通常用定义了语法和语义的高级语言来描述。(3)程序合成。首先将任务说明转换为可用的形式,得到一个由物体状态组成的集合,再根据物体的几何和物理特性,规划机器人的运动,从而产生动作级程序。目前任务级机器人语言还远没有达到实用的程度。但是动作级语言的编程效率比较低。因此,文中综合以上两种语言的优点,开发一种既具有相对较高效率又可以实用的语言H A 硼I,它由以下几个部分组成:(1)位置说明。通过定义的专用的数据结构指定机器人、工件以及障碍物的位置和姿态。(2)任务说明。用来说明机器人要执行的任务,不是简单的运动序列的指定,也不是“焊接工件上的所有焊缝”这样高级的任务序列,而是分解机器人需要完成的任务指定其各个相对简单的任务阶段。如“先移动到焊缝起始点,然后以指定的速度焊接直线焊缝,最后焊接一段圆弧,之后回到机器人零位”。(3)数学运算及程序控制流程。用来进行简单的计算和控制流程的控制。(4)传感信息处理。用于控制传感信息的接收与否及相关处理。关于程序的输出、调试以及仿真等由程序的编译解释系统提供。2H A W R L 的开发对于六自由度四连杆机构弧焊机器人来说,一般采用D H 模型进行描述,因此,表达机器人的位置和姿态一般都采用六个关节的关节角或者4 4的矩阵。对于焊接工件来说,一般采用4 4 的矩阵描述它的位置和姿态。在H A W R I 中,为了描述机器人以及工件的位置,用六个连续的浮点数中间以“,”作为分割来表示一组关节角,如O 0 1 8 0 2 0 5 3 0 5 4 0 0 5 0 0;用1 2 个连续浮点数中间以“”作为分割来表示一个位姿,因为表示机器人位姿的4 4矩阵的最后一行分别为O,O,0,1,如1 0 0 0 O O,O O 0 0 1 0 0 0 8 0 0 0 0 0 0 O 1 0 4 0 0 O。通过这两种方式,就可以表达机器人工作空间中物体的三维信息了,从而实现各个物体的位置说明。2 1H A W R L 指令集及其说明根据程序设计和焊接机器人的实际需要,设计了H A 硼I 指令集,包括运动控制指令、弧焊指令、程序控制指令、数学运算指令以及传感信息处理指令,如表1 所示。通过这些指令,就可以实现焊接任务说明、程序流程控制和传感信息处理了。对于机器人进行弧焊作业时,一般只要能够完成P T P 和C P 两种轨迹运动就可以了。对于肿方式,机器人用来完成不关心运动路径情况下的快速运动,如回零位和快速运动到焊接起始点等;对于c P 方式,通过直线和圆弧两种轨迹基本上可以拟合出任意复杂形状的焊缝,从而完成焊接任务。对于三个运动控制指令M O v J、M O v L、M O V c 就是用来控制机器人来完成上述三种运动形式的。其指令格式完全一样,以M o v L 为例M O v Lv L=操作数。表示弧焊机器人从前一点移动到当前点的移动方式为直线移动,速度由操作数指定。弧焊指令有6 条,分别是A R c O N、A R c O F F、w v O N、W V O F F、w E u)A、w E L D V。前面的四个指令用来控制电弧的状态,指令格式相同,在程序中需要改变电弧状态的地方直接插入即可,不包含任何参数。后面的两个用来设置焊接电流和焊接电压,指令格式为w E L D v=操作数。表示设置焊接电压的大小为操作数。万方数据第7 期张连新,等:混合式弧焊机器人编程语言1 0 7表1H A W R L 指令集(O P 表示操作数)T 曲I e1H A W R L(h y b r i da 忙w e 妇i n g 咖f 切【u n g 噱9 e)m m a n d ss e t(O PI e p 怆n t so p e 例1 d)运算指令共有1 3 条,s E T、A D D、s U B、M U L、D、A N D、O R、X O R、M O D、S I N、C O S、A T A N、S Q R T。这些指令用来在程序中进行一些数学运算。它们的指令格式相同,如A D D 操作数l;操作数2。表示把操作数2 的值和操作数1 进行运算之后将运算结果保存在操作数1 中。其中的操作数1 必须是变量,操作数2 可以是变量、整型数或实数。程序控制指令有1 0 条,分别是L A B L E、脚、P A U S E、D E L A Y、I F E L S E E N D I F、S U B R E T、G o S U B、W H I L E E N D W H I L E、S RA R,I P E N D P、s T A R T DE N DD。L A B L E 指令的使用格式是“标号:”,标号必须是标识符,必须以字母开头。标号用来表示跳转的行号标志。其它的程序流程控制命令与普通的程序设计语言中的对应指令使用格式基本一致,在此不再详细叙述。对于传感信息处理指令包括渔C K O N、耵认C K O F F、孙吁N、P m r I D F F 用于控制焊缝跟踪和熔透控制传感系统的传感信息是否作用于弧焊机器人的焊接过程。其指令格式与A R C O N 相同,只需把它插入到程序中需启动或关闭传感系统的位置即可。2 2H A W R L 的变量计算机高级语言程序一般由语句构成,而语句中会有变量。在这样的通用计算机程序设计语言中,变量可以由用户根据需要进行定义,尤其像c语言,变量在使用之前一定要先定义。这样保证了用户对变量使用的灵活性。在H A W R I 中也要提供一些变量供用户使用,但涉及的变量不会很多。为了方便编译模块的开发,故在H A 毗中事先定义了变量P 1 一P 2 0 0 和Q l Q 2 0 0。这些变量没有类型的规定,既可以做整型也可以做浮点、双精度等类型来使用。当需要使用变量时,可以从上述的4 0 0 个变量中随便选择一个。2 3w 州R L 的程序结构为了使程序的层次更加清晰,规定程序的语句和对应的数据分开来保存。程序文件和数据文件保存为同名的文件,一r l p 和,泓r l d,前者表示程序文件,后者表示与同名的程序文件对应的数据文件。程序文件由S T A R,I P 开始,E N D P 结束。数据文件由S 1 帅开始,E N D D 结束,例如M o v e p r l D 弘I I l l r l pS T A R 佃标识程序的开始程序体E N D P标识程序的结束M o v e p I D 舭n r l ds T A R T D标识程序数据的开始对应于程序的所有数据E N D D标识程序数据的结束。万方数据1 0 8焊接学报第2 7 卷3H A W R L 编程实例H A W R L 程序的整个执行过程如图1 所示。首先生成H A W R L 源程序,主要由以下四种途径:(1)由离线编程系统采用离线示教或离线编程的方式生成;(2)由遥操作系统通过遥示教生成;(3)通过示教编程器进行现场示教的方式生成;(4)通过手动的方式直接用H A 聊也进行编写。当通过以上的方式得到了H A W R I 源程序以后,把源程序提交给编译解释器。编译解释器首先对源程序进行词法分析、语法分析和语义分析,检查错误,然后将正确的源程序编译解释生成孙n c 编程语言的目标代码并下载到P M A c 中进行执行。关于程序的编译解释器在此不再赘述,另有论文将详细说明其工作原理以及开发过程。i 线编程系匀遥操作系统至鍪竺堡兰卜-丑斥蕊H A w R L 源程序I二巫叠编译解释系统图1H A W R L 程序执行过程图F i g 1F l O wc h a r l0 fe 舱c u t i n gH A W R Lp n D g 噶m s下面给出一个H A 吼源程序的例子圳e r l p 用来焊接如图2 所示形状的焊缝。图2 焊缝形状图F i g 2O i a g 阻m0 fw e I dS 1 1 a p e*E x a n l p l e d p*S r r A R r r P程序开始M O=1 0 0,P I P 方式运动到焊接起始点A R C O N,启弧I FP 1 0=l如果成功启弧(P 1 0 是标志)M O V LV L=5 0焊接一段直线焊缝M O V CV C=3 0M O v CV C=3 0焊接一段圆弧M O V LV L=5 0焊接一段直线焊缝A R C O F F熄弧M O=1 0 0焊接完成,机器人回零位E 璐E如果启弧失败P A U S E停止E N D I FE N D P程序结束,*下面是对应于E x 锄p l e r l p 的数据文件,*E 咖k d d*s T A R T D程序数据开始2 8 3 0 4 7 1 1,0 0 0 0 0 1 0 0 0 0 0 0 0 0,0 0 0 0 5 5 0 一0 0 0 a|5 5 4 0 0 0 0 0 3,机器人处于图2 中A 点时机器人的各个关节角的值1 1 7 3 5 8 4 8,9 7 9,0 0 0 晒5 0 一0 5 8 8 8 7 引1 6 5 5 2 3 1 9 1 8 纠8 3 0 2机器人处于图2 中B 点时机器人的各个关节角的值1 3 1 5 8 3 3,6 4 5 9 8 1 5,6 1 9 6 9 6 8 O 0 0 1 0 9 9 一0 2 6 3 1 9 9,2 6 9 3 4 3 1 2机器人处于图2 中C 点时机器人的各个关节角的值一1 1 3 3 4 4 0 8,6 1 9 4 7 9,一5 9 4 8 5 8,0 0 D D 0 0 叫一0 2 3 8 3 1 7,一1 2 0 4 3 6 3 6,机器人处于图2 中D 点时机器人的各个关节角的值一2 3 3 9 3 9 2 5,0 0 0 0 0 0 0 0 0 0 0 0 0 1,o 0 0 Q 5 5 0,一O 0 0 0 0 0 1,0 0 0 0 8 8 2,机器人处于图2 中E 点时机器人的各个关节角的值0 0 0 0 0 3 4,0 0 0 0 0 0 0,0 0 0 0 0 0,0 0 0 0 0 5 0 一0 0 0 0 0 5 4,0 0 0 0 0 3机器人零位E N D D程序结束*上面的程序源文件和与之对应的数据文件经过编译解释器的处理,生成的孙L A c 目标代码如下。*P H 籼1 0 0*O P E NP R O G1 0 0 程序开始C L 巳RC A L L1 3P T P 子程序,到达A 点P 1 1=1启弧I F(P 1 0=1)如果启弧成功c A I I 1 3 0直线插补子程序,到达B 点c A I I,9 0圆弧插补子程序,到达D 点C A L L1 3 0直线插补子程序,到达E 点P 1 1=0熄弧c A I J 2 0 0,回零位子程序,机器人回零位E L S EP 1 2=1机器人停止E N D c L O S E程序结束|*|下转第1 1 2 页 万方数据1 1 2焊接学报第2 7 卷命有较大的实际意义,并且对生产过程具有指导意义。参考文献:1 魏洪涛镀锌钢板点焊研究进展 J 上海金属,1 9 9 4,1 6(2):2 53 1 2 H o l l i d a yR,P a r k e rJD,W i u i 鲫8NT R e l a t i v e0 0 n t r i b u t i o n 0 fe l e c t r o d et i pg m w 山m e c h 蕊s n l si ns p o tw e l d i n g 孟n cc t e ds t e e l s J w e l d i n gi nt I ew o d d,1 9 9 4,3 7(4):1 8 6 一1 9 3 3 P a I i s o tR,s ts,G 帆唧e sAF,d f M 0 d e l i n g 也er n e c h a I l i c a lb e h a v i o ro fa 咖l t i c r y s t a l l i n ez m cc 枷n go nah o t d i pg a l v 蚵z e ds I e e ls l e e f J c o n l p u 诅t i o n a lM a 沁r i a lS c i e n c e,2 0 0 0,1 9(1 2):1 8 9 2【)4 4 王敏,唐逸民镀锌钢板点焊的工艺性能 J ,上海交通大学学报,1 9 9 9,3 3(2):1 5 6 一1 5 8 5 王敏镀锌钢板点焊工艺研究 J 汽车工艺及材料,1 9 9 9(5):4 8 6 吴志生,单平,廉金瑞,等深冷处理提高镀锌钢板点焊电极寿命的机理 J 焊接学报,2 0 0 3,2 4(2):7 一l O 7 吴志生,廉金瑞,胡绳荪,等离子注入钨的镀锌钢板点焊电极寿命试验研究 J 汽车技术,2 0 0 3(2):3 5 3 7 作者简介:王璐,女,1 9 8 2 年6 月出生,硕士研究生。主要研究方向为电阻焊工艺及有限元分析。E m a i l:v i c k v s 沁e d u c n 上接第1 0 8 页把经过编译解释生成的P M A c 程序下载到珊队c中并执行,机器人就可以完成如图2 所示焊接任务了。图3 为应用机器人示教编程器编辑生成的E x 锄p l e r l p 和E x 锄p l e,r l d 执行的结果。当然对于通过离线编程系统和遥操作系统都可以得到同样的结果。图3 州R L 程序焊接试件F i g 3W e|d n g-鳅s p e c i m e n0 fH A W R Lp n D g 聊n通过上面的程序可以看出,指令非常简单,易于编程,易于学习,具有动作级语言的特点。但是可以通过简单指令容易的指定机器人的焊接任务,如仅需要说明运动的速度和插补方式就可以了,复杂的插补算法和路径规划都不需要编程过程来考虑,大大地提高了编程的效率和简化了任务的说明过程。因此,H A 删艮好地结合了动作级语言和任务级语言的优点,完全满足了弧焊的编程需要,同时也为其它的外部设备提供了统一的接口,一定程度上增加了机器人的可扩展性。4结论(2)动作级语言简单易用,但编程效率低,然而任务级语言远没有达到实用的角度。因此,开发一种既简单易用,又具有相对较高编程效率的机器人编程语言是迫切需要的。(3)H A W R I 方便的实现弧焊机器人程序的编写,并且编程简单易学,显示了较高的编程效率和复杂焊接任务的表达与描述能力。(4)H A W R I 提供了机器人离线编程系统、遥操作系统和示教编程系统与O A A W R c s 的统一接口,提高了系统的扩展性和集成能力。参考文献:1 张连新,高洪明,吴林,等基于P M A c 的开放式弧焊机器人控制系统 J 焊接学报,2 0 0 3,2 4(1):8 5 8 8 2 别卫春,朱志红,叶伯生,等删c I R 机器人语言解释系统的研究与实践 J 机电一体化,2 0 0 0(3):2 7 3 0 3 张爱红,张秋菊机器人示教编程方法 J 组合机床与自动化加工技术,2 0 0 3(4):4 7 4 9 4 J 唧hJ,雎i 珏矗J A l t a i m:am k b a s e dv i m a l】a r l g l l 8 9 ef o r a l lr n o b i l eI D I)0 _ I s J J 咄n a l0 fV i 舢8 lL a n 伊a g e s 锄dC O I 婶u 峨,1 9 9 8,9(2):1 2 7 一1 5 0 5 S t 枷s l a 0L,G u i d oB,n e o d I a r i sK M 幽i l er o l 烈p I D 弘唧i n gu s i I l gn a t l l r a ll 肌g u a g e J R o b o t i c sa n dA u t o n o“跏sS y s t e 吣,2 0 0 2,3 8(3):1 7 l 一1 8 1 6 戴齐,姚先启机器人程序设计语言 J 机器人,1 9 9 7,1 9(5):3 9 0 4 0 0 7 叶屹,顾国昌,潘洪泉小型机器人语言R O B c r r L J 计算机工程与应用,1 9 9 6(6):3 l 一3 4 作者简介:张连新,男,1 9 r 7 8 年出生,博士研究生。研究领域为工(1)机器人编程语言可以提供一种通用的方式业机器人控制,机器人焊接技术,焊接自动化与智能化,发表论文6来解决机器人与其它设备的接口,同时也是机器人篇。系统水平先进的重要标志。E m a i l:I J i 戚n z h a n g k t e d u。万方数据混合式弧焊机器人编程语言混合式弧焊机器人编程语言作者:张连新,高洪明,张广军,吴林,胡增臣作者单位:张连新,高洪明,张广军,吴林(哈尔滨工业大学,现代焊接生产技术国家重点实验室,哈尔滨,150001),胡增臣(长春客车厂工业公司,铁路客车配件厂,长春,130113)刊名:焊接学报英文刊名:TRANSACTIONS OF THE CHINA WELDING INSTITUTION年,卷(期):2006,27(7)被引用次数:4次 参考文献(7条)参考文献(7条)1.张连新;高洪明;吴林 基于PMAC的开放式弧焊机器人控制系统期刊论文-焊接学报 2003(01)2.别卫春;朱志红;叶伯生 HNC-IR机器人语言解释系统的研究与实践期刊论文-机电一体化 2000(03)3.张爱红;张秋菊 机器人示教编程方法期刊论文-组合机床与自动化加工技术 2003(04)4.Joseph J;Pfeiffer J Altaira:a rule-based visual language for small mobile robots 1998(02)5.Stanislao L;Guido B;Theocharis K Mobile robot programming using natural language外文期刊2002(03)6.戴齐;姚先启 机器人程序设计语言 1997(05)7.叶屹;顾国昌;潘洪泉 小型机器人语言ROBOT-L 1996(06)本文读者也读过(10条)本文读者也读过(10条)1.王浩.谢存禧.WANG Hao.XIE Cun-xi 开放式机器人解释器的研究期刊论文-机械设计与制造2010(8)2.郝福江.王玉松.李亚群 弧焊机器人高速焊接工艺改进期刊论文-电焊机2003,33(11)3.林君.殷树言.陈志翔.卢振洋 弧焊机器人图形仿真系统的研究期刊论文-制造业自动化2003,25(3)4.姚河清.王运东 熔化焊机器人焊接专家系统会议论文-20025.刘频.陈焕明.熊震宇.LIU Pin.CHEN Huan-ming.XIONG Zhen-yu 纠偏技术在弧焊机器人路径规划中的应用期刊论文-电焊机2009,39(4)6.胡卫龙.齐龙江.庄永亮 便携式机器人控制器的研究与设计期刊论文-工业控制计算机2001(3)7.刘永.王克鸿.杜姗姗 弧焊机器人空间焊缝焊接参数与姿态规划研究期刊论文-南京理工大学学报(自然科学版)2003,27(2)8.王克鸿.刘永.徐越兰 SK6弧焊机器人离线编程系统、仿真及通讯的研究会议论文-20049.任福深.陈树君.管新勇.殷树言.白立来.REN Fu-shen.CHEN Shu-jun.GUAN Xin-yong.YIN Shu-yan.BAI Li-lai 基于PMAC的开放式弧焊机器人系统接口设计期刊论文-电焊机2008,38(12)10.何京文.He Jingwen 机器人焊接系统离线编程实例研究期刊论文-航天制造技术2007(5)引证文献(4条)引证文献(4条)1.张连新.高洪明.张广军.吴林 混合式弧焊机器人语言编译解释系统期刊论文-焊接学报 2006(10)2.吴斌.何永义 服务机器人通用控制软件的研究与实现期刊论文-计算机测量与控制 2010(5)3.张连新.高洪明.张广军.吴林 开放式弧焊机器人系统控制软件的开发期刊论文-焊接学报 2007(1)4.张连新.高洪明.吴林.张广军 弧焊机器人示教编程器的设计期刊论文-焊接学报 2006(8)本文链接:http:/