混合式弧焊机器人编程语言.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《混合式弧焊机器人编程语言.pdf》由会员分享,可在线阅读,更多相关《混合式弧焊机器人编程语言.pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第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)摘要:在对机器人语言的特点和系统构成分析的基础上,开发了混合式弧焊机器人语言。该语言除了具有一般程序设计语言所必需的顺序、分支、循环和子程序以外,还具有弧
2、焊机器人所必需的机器人运动控制和焊接等相关功能。为了实现这些功能,设计了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序言传统的示教再现型的弧焊机器人系统已经远远的不能满足现代
3、的焊接作业对于高效率、高精度、小批量、复杂形状以及遥控焊接作业的要求。为此,现代焊接生产技术国家重点实验室开发了开放式弧焊机器人控制系统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。从机器
4、人语言发展的历史来看,机器人语言从比较低级的动作级语言逐渐发展到比较高级的任务级语言 3J。动作级语言语句比较简单,易于编程;但是其缺点也比较明显,即不能进行复杂的数学运算,编程效率低,不能接收复杂的传感器信息。尽管如此,由于其简单实用,动作级语言仍然得到了广泛的应用。现在的大多数机器人语言都属于这一类,如I B M 公司为其机器人产品开发的商品化机器人语言A M L。任务级语言没有明确的规定机器人的动作,但机器人可以自动进行推理、计算,最后生成机器人的动作序列。这类语言为数不多,主要有I B M 公司开发的A U r m P A S S。这类语言的功能也远没有真正的达到人们的期望。但是,它确
5、实是一个非常具有收稿日期: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
6、 机器人语言的特点机器人语言被定义为能够控制机器人硬件并能够调用其它控制软件功能模块的计算机程序设计语言。由于机器人语言是一种程序设计语言,它应该包括普通程序设计语言的各种成分(控制结构、子程序、必要的数据类型及运算),又因为它是机器人语言,故它必须包含用于描述和控制机器人系统的指令或功能,主要包括J:(1)机器人的控制涉及大量的机器人运动学和控制算法,在机器人语言中必须包括专门的指令进行处理,使用户能够摆脱繁琐算法的约束,能在更高层次上操作机器人。(2)机器人操作的对象位于三维空间中,在机器人语言中应该提供对三维物体的描述方法。(3)机器人在一个复杂的空间环境中工作,必须使用传感器获取相关
7、万方数据1 0 6焊接学报第2 7 卷的信息,在机器人语言中必须包括相应的处理指令。(4)机器人都是用于特定的任务(装配、焊接和喷漆等),在机器人语言中必须包含执行相关任务的指令。1 2 机器人语言的组成根据机器人语言的类别不同,其组成也不同J。对于动作级机器人语言,主要包括:(1)位置说明。使用提供的数据结构定义物体的位置和特征。对于焊接作业,机器人末端焊枪以及工件的位置和姿态可以用4 4 的矩阵进行表示。(2)运动说明。通常用一系列机器人要达到的目标位置来说明,不仅需要说明初始状态和终止状态,为了避免碰撞,还应该说明路径上足够的中间点。此外,还需要说明运动的速度等。(3)传感和控制流程。焊
8、接过程中存在着焊接变形,同时又要保证焊接的质量,通常要使用焊缝跟踪系统和熔透控制系统等。故程序中要包含相应的传感信息处理。此外,机器人程序的流程通常由传感器信息控制,多数语言都提供了判定结构,如d 0 一w h i l e。(4)程序设计支持。提供必要的程序开发和调试功能,主要包括再线修改、跟踪传感输出和仿真。对于任务级机器人语言,允许用户使用高级语言描述任务(任务说明),系统的任务规划程序通过查询数据库(环境模型),将任务说明转换为机器人语言程序(程序合成),然后执行之。主要包括:(1)环境模型。用于描述物体(包括机器人)的几何和物理特性,以及工作空间中物体的状态。(2)任务说明。任务被描述
9、成工作空间中物体状态的序列,物体状态可以用物体之间的空间关系表示,通常用定义了语法和语义的高级语言来描述。(3)程序合成。首先将任务说明转换为可用的形式,得到一个由物体状态组成的集合,再根据物体的几何和物理特性,规划机器人的运动,从而产生动作级程序。目前任务级机器人语言还远没有达到实用的程度。但是动作级语言的编程效率比较低。因此,文中综合以上两种语言的优点,开发一种既具有相对较高效率又可以实用的语言H A 硼I,它由以下几个部分组成:(1)位置说明。通过定义的专用的数据结构指定机器人、工件以及障碍物的位置和姿态。(2)任务说明。用来说明机器人要执行的任务,不是简单的运动序列的指定,也不是“焊接
10、工件上的所有焊缝”这样高级的任务序列,而是分解机器人需要完成的任务指定其各个相对简单的任务阶段。如“先移动到焊缝起始点,然后以指定的速度焊接直线焊缝,最后焊接一段圆弧,之后回到机器人零位”。(3)数学运算及程序控制流程。用来进行简单的计算和控制流程的控制。(4)传感信息处理。用于控制传感信息的接收与否及相关处理。关于程序的输出、调试以及仿真等由程序的编译解释系统提供。2H A W R L 的开发对于六自由度四连杆机构弧焊机器人来说,一般采用D H 模型进行描述,因此,表达机器人的位置和姿态一般都采用六个关节的关节角或者4 4的矩阵。对于焊接工件来说,一般采用4 4 的矩阵描述它的位置和姿态。在
11、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 指令
12、集,包括运动控制指令、弧焊指令、程序控制指令、数学运算指令以及传感信息处理指令,如表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
13、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
14、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 条,分别
15、是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 用于控制焊缝跟踪和
16、熔透控制传感系统的传感信息是否作用于弧焊机器人的焊接过程。其指令格式与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。这些变量没有类型的规定,既可以做整型也可以做浮
17、点、双精度等类型来使用。当需要使用变量时,可以从上述的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
18、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 源程序以后,把源程序提交给编译解释器。编译解释器首先对源程序进行词法分析、语法分析和语义分析,检查错误,然后将正确的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 混合式 机器人 编程 语言
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内