本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权
保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借
阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进
行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
本论文属于
(请在以上方框内打“√”)
学位论文作者签名:指导教师签名:
日期:年月日日期:年月日
保密,在年解密后适用本授权书。
不保密。
华 中 科 技 大 学 硕 士 学 位 论 文
IV
摘要
作为对机器人进行有效控制和利用的前提,机器人编程语言在整个机器人数控
系统中占有十分重要的地位,它直接影响着工业机器人的基本作业和离线编程等,
从而影响到用户对机器人的控制效率。本文以 MOTORMAN SK6 机器人为研究对
象,设计和实现了一套工业机器人编程语言,使对机器人的编程变得简单而高效。
本文研究了工业机器人编程语言系统及其需求,在此基础上设计了一套机器人
编程语言,包括环境的建模、指令集的定义、编程方式的设计、程序结构的定义和
目标指令的设计等,并且根据机器人控制器的整体结构,设计了机器人语言系统的
软件结构。
对工业机器人编程语言解释器的关键技术进行了研究,确定了两遍扫描的工作
流程,从而确定了解释系统的软件结构。研究了词法分析流程,设计了基于正则表
达式的语法分析方法;设计了易于进行插入和管理的符号表,给出了语义分析程序
的结构。整个解释器实用而高效,满足工业机器人控制实时性的要求。
设计了机器人程序编辑器的菜单结构、界面、软件结构及各个模块的实现方
案,并编程实现。最后,对工业机器人语言解释器和程序编辑器进行了测试,实验
结果表明,本文设计和研发的工业机器人编程语言达到了机器人控制要求。
关键词: 工业机器人,编程语言,解释器,编辑器,正则表达式
华 中 科 技 大 学 硕 士 学 位 论 文
Abstract
As the premise of effective control of robot, the robot programming language
occupies a very important position in the entire robot CNC system,it directly affects the
job and off- line programming of industrial robots, thus affecting the efficiency of user's
control of the robot. In this paper, MOTORMAN SK6 robot is served as the research
object, and a kind of industrial robot programming language is designed and realized,
making robot programming easy and efficient.
In this paper, industrial robot programming language system as well as its
requirements is researched, and on this basis. Based on it, a set of robot programming
language is designed, including the modeling of the environment, the define of instruction
set and the target instruction, the design of the programming mode and program structure,
etc. Software architecture of the robot language system is designed according to the
overall structure of the robot controller.
The key technologies of industrial robot programming language interpreter are
discussed, in which twice scanning workflow is identified, and designed the software
architecture of the interpretation system. The procedure of lexical analysis is studied and
syntax analysis method based on regular expression is designed. A kind of symbol table
that is easy to insert and to manage is designed and program's structure of semantic
analysis is given. The entire interpreter is practical and efficient, to meet the real-time
requirements of industrial robot control.
The robot program editor interface and its software architecture are designed, and
implementation scheme of each module are put forward and realized. Finally,
experimental tests have been carried out on the industrial robots interpreter and program
editor, and the experimental results show that industrial robot programming language
designed and developed in the paper meets the requirements of robot control.
Keywords: industrial robots, programming language, interpreter, editor, regular
expression
华 中 科 技 大 学 硕 士 学 位 论 文
VI
目录
摘要 IV
Abstract V
目录 VI
1 绪论 ································································································· 1
1.1 课题来源 ···························································································· 1
1.2 课题的研究背景和意义 ····································································· 1
1.3 国内外研究现状和发展趋势 ······························································ 2
1.4 本文研究的主要内容 ········································································· 4
2 工业机器人编程语言研究与设计····················································· 5
2.1 工业机器人语言系统概述 ·································································· 5
2.2 机器人语言系统需求分析 ·································································· 6
2.3 机器人语言设计················································································· 7
2.4 编程方式设计 ·················································································· 15
2.5 机器人语言系统设计 ······································································· 17
2.6 本章小结 ·························································································· 20
3 工业机器人语言解释器的设计和实现 ··········································· 21
3.1 解释器软件构架设计 ······································································· 21
3.2 词法分析 ·························································································· 24
3.3 语法分析 ·························································································· 27
3.4 语义分析及目标代码生成 ································································ 29
华 中 科 技 大 学 硕 士 学 位 论 文
VII
3.5 本章小结 ·························································································· 36
4 工业机器人程序编辑器的实现 ······················································ 38
4.1 程序编辑器需求分析及总体设计····················································· 38
4.2 程序编辑器实现方案 ······································································· 40
4.3 程序编辑器的软件结构及各模块的实现 ········································· 41
4.4 本章小结 ·························································································· 47
5 工业机器人编程语言测试实验 ······················································ 48
5.1 测试环境 ·························································································· 48
5.2 实验内容 ·························································································· 49
5.3 本章小结 ·························································································· 52
6 结论与展望 ···················································································· 53
6.1 总结 ································································································· 53
6.2 展望 ································································································· 53
参考文献 57
附录 攻读硕士学位期间发表的论文和申请的专利 ······························ 61
华 中 科 技 大 学 硕 士 学 位 论 文
1 绪论
1.1 课题来源
本研究课题来源于华中科技大学国家数控系统工程技术研究中心承担的国家自
然科学基金和重大专项:
1.国家自然科学基金“基于特征的数控机床运动控制参数自整定策略研究”
(50905069);
2.“高档数控机床与基础制造装备”科技重大专项“开放式高档数控系统、伺
服装置和电机成套产品开发与综合验证”(2012ZX04001012)。
1.2 课题的研究背景和意义
工业机器人是广泛应用于工业中的自动执行工作的机器装置,是工业自动化的
重要发展方向。在发达国家中,工业机器人自动化生产线成套设备已成为自动化装
备的主流。
在工业机器人发展的早起,机器人一般只能运行固定的程序,专用性强,且无
法扩展。随着工业自动化中对柔性作业的需求的增加,这种机器人已经很难满足现
代工业生产的要求,于是,用于机器人编程的机器人语言应运而生。如今,机器人
语言已经成为机器人数控系统中的一个不可或缺的部分,机器人的作业在很大程度
上都依靠用机器人语言编制的程序来完成。在工业机器人的发展过程中,机器人语
言也不断地发展和完善。
作为人机交互的重要接口和机器人实现其智能化的重要方式,机器人语言的重
要性已经日益凸显出来。和计算机语言用符号表示计算机进行的操作类似,机器人
语言也用符号来描述机器人的动作,使机器人能按照编程者的意图完成各种复杂的
动作和操作
[4]
。机器人语言不仅涉及到机器人技术,也和计算机编程语言密切相
关,因此,它们的发展是相辅相成的。
华 中 科 技 大 学 硕 士 学 位 论 文
机器人语言也是机器人系统先进水平的重要标志之一
[6]
。一般来说,从机器人
语言中即可看出其机器人数控系统的功能。正如人类社会中,复杂的语言表明其有
很高的文明程度,在工业机器人领域中,某个机器人系统提供的机器人语言功能越
多则在一定程度上表明其越先进。
我们以日本安川 MOTORMAN SK6 机器人为对象,展开了一系列研究课题。
比如开发自己的机器人控制系统、进行对机器人控制算法的研究、探讨多台机器人
之间通信以实现机器人之间的协调工作以及实现整个机器人与外围设备如机器视觉
等的连接和互动等。机器人语言作为机器人数控系统中的重要部分,也需要进行研
究和开发,鉴于这种情况,我们研究了机器人语言系统,设计和实现了用于机器人
编程控制的机器人语言。
1.3 国内外研究现状和发展趋势
研究工业机器人语言发展的历史,可以看出,机器人语言的发展趋势是从最低
级的动作级语言到较高级的对象级语言再到最高级的任务级语言。动作级语言是最
简单的机器人语言,但由于简单实用,在工业机器人发展的早中期应用广泛。对象
级语言相对动作级语言,其功能有一些拓展,如可以进行数学运算、可与传感器互
动等,能完成比动作级语言更复杂的功能。任务级语言是面向任务的机器人语言,
它是智能化的理想编程语言,然而,由于涉及多项复杂技术,目前还没有真正实用
的任务级机器人编程系统
[12]
。
1.3.1 国外研究现状
相对于工业机器人,机器人语言的诞生和发展要较晚一些。在工业机器人的概
念出现 20 年后的 1973 年,Stanford 人工智能实验室最早研究和开发了 WAVE 语
言,用于控制机械手的动作。WAVE 语言不仅描述了机械手的基本动作,还能配合
力和视觉进行一些协同控制。第二年,该实验室在 WAVE 语言的基础上开发了 AL
语言,这是一种编译形式的语言,可以控制多台机器人联合协调工作,该语言对以
后机器人语言的发展产生了较大的影响
[14]
。
华 中 科 技 大 学 硕 士 学 位 论 文
最早进入商业应用的语言是美国 Unimation 公司于 1979 年研发完成的 VAL,
它发展于BASIC 语言,故其结构也类似与BASIC 语言。
与此同时,欧洲的机器人技术也得到很大发展,出现了许多机器人语言。其中
比较有代表性的有1978 年意大利Olivetti 公司推出的非文本型语言SIGLA、英国爱
丁堡大学开发出的 RAPT 语言及 1980 年意大利 DEA 公司推出的用于控制该公司
PRAGMAA 3000 装配机器人的编程语言 HELP
[17] [18] [19] [20]
等。
80 年代,日本的机器人技术发展很快,开发出了多种机器人语言。1981 年在
日本东京举行的第十一届国际工业机器人讨论会上,日本推出了两种机器人语言,
即东京大学开发的 GEOMAP 语言和 Komatsu 公司用于焊接机器人编程的 PLAW 语
言
[21][22]
。1984 年,日立公司推出类似 PASCAL 语言的 ARL 语言
[23]
。日本的
FANUC 公司和美国的GM Fanuc 公司共同推出KAREL 语言,用于控制机器人、视
觉系统和机器人工作单元
[24] [25]
。
在机器人语言发展历程中,有人也对普通计算机程序设计语言在机器人上的应
用做了一些探索和研究,比如普渡大学的R. P. Paul 等人在1983 年用C 语言编写了
一些专门用于机器人控制的库函数,并整合 C 语言系统将之命名为 RCCL。最初,
RCCL 在 VAX-11/780 小型计算机上实现
[27]
。后来加拿大 McGill 大学智能机器研究
中心等机构扩展了 RCCL,实现了对多个机器人的控制
[28]
。这是机器人语言发展历
史上的重大进步。
随着机器人技术的不断发展,机器人语言也不断地向前推进,其功能不断扩
展,使用上也更加容易理解和上手。现在应用比较广泛的且有代表性的工业机器人
编程语言是 ABB 公司开发的 RAPID 语言。它是一种英文编程语言,所包含的指令
可以移动机器人、设置输出、读取输入、还能实现决策、重复其它指令、构造程
序、与系统操作员交流等功能,是有较强功能的机器人语言。在 RAPID 语言中提
供了丰富的指令集,同时还可以根据自己的需要编制专属的指令集来满足在具体应
用中的需要,这样一个具有高度灵活性的编程语言为机器人的各种应用提供了无限
的潜能。而且,可以通过示教器和ABB 公司提供的RobotStudio Online 进行程序的
在线编辑,也可以使用文本编辑软件在电脑中进行离线编辑,在完成编辑后使用存
华 中 科 技 大 学 硕 士 学 位 论 文
储介质或网络便可快捷地上传到机器人控制系统中。所以,可以说 ABB 的 RAPID
语言代表了现今机器人语言发展的最高水平,目前已在其 20 多种机器人产品上应
用
[31] [32]
。
1.3.2 国内研究现状
国内从上世纪 80 年代后期开始进行机器人语言的研究,也开发出了一些机器
人语言。其中,比较有代表性的是哈尔滨工程大学在 AST486 机中用 TURBO
PASCAL 语言实现的 ROBOT-L 语言系统,它将编辑、编译、运行三个模块组合在
一起构成了一个集成环境,用菜单进行驱动,为用户提供了一个良好的界面,使用
方便
[33]
。ROBOT-L 已经在其机器人路径规划系统中应用
[34]
。
1.3.3 发展趋势
总的来说,机器人语言将沿着自动化、智能化的方向发展。可以展望,随着工
业自动化各项技术的不断发展,机器人语言的功能也将不断扩展,比如可以进行多
台机器人之间的通信,支持各种模型,能进行推理、决策等,甚至能像人一样自主
学习。
1.4 本文研究的主要内容
本文对工业机器人编程语言进行了研究,设计并实现了一种机器人编程语言,
而且在MOTORMAN SK6 机器人上进行了测试。具体研究内容包括:
(1) 进行了对工业机器人编程语言的需求分析,结合国内外机器人语言的发
展状况,设计了一套工业机器人语言,定义了机器人物理环境模型,确定了机器人
编程语言的结构、语法、指令集等,并设计了编程方式。
(2) 设计了机器人语言解释系统,用计算机程序设计语言实现了对机器人语
言程序词法、语法和语义的分析,并进行语法错误检查;最后将机器人程序转化为