• 24小时机器人维修热线:020-82000787

子锐站内搜索 互联网
  • 广州子锐机器人技术有限公司
  • 服务热线:020-82000787(8:30-17:30)
  • 联系手机:15889988091(非工作时间)
  • 座机:020-82000787
  • 传真:020-32887675
  • 邮箱:gz@zr-robot.com
  • 广州市番禺区东环街金山谷创意八街1号109
  • 当前位置:首页 > 机器人资讯 > 工业机器人解释器语义分析研究

工业机器人解释器语义分析研究

时间:2017-10-28   点击:   来源:互联网   作者:匿名
简介:工业机器人解释器语义分析研究 0引言 机器人语言解释过程是指对输入的源程序进行翻译,记录相关属性并生成中间代码或者目标代码的过程。解释器作为机器人软件系统的关键组成部分,它构成了机器人编程语言与控制系统的接口。语义分析作为解释器中必不可少的……

工业机器人解释器语义分析研究

0引言

机器人语言解释过程是指对输入的源程序进行翻译,记录相关属性并生成中间代码或者目标代码的过程。解释器作为机器人软件系统的关键组成部分,它构成了机器人编程语言与控制系统的接口。语义分析作为解释器中必不可少的一个逻辑环节,其执行速度直接影响着整个解释器的编译效率。

针对语义分析存在的低效率问题,本文研究了利用语法分析栈进行语义分析的方法。该方法通过遍历语法树,将文法符号及其相关属性存储于语法分析栈。当规约发生时,使用指针来灵活调用存储单元执行相应的语义动作,简洁高效地实现语义分析。

1工业机器人控制系统及解释器架构

1.1工业机器人控制系统设计

工业机器人控制系统结构如1所示。

工业机器人控制系统采用上位机(IPC)+WinCE嵌入式系统结构,使用NPM公司生产的运动控制芯片PCL6143实现对多轴的实时运动控制。对机器人系统的参数设置、示教调试等操作通过示教器实现。上位机和示教器间以RS232总线方式进行通讯,上位机接收示教器传输的参数和指令并对编程语言进行解释,形成中间代码发送到嵌人式平台,WinCE嵌入式系统再进行解释翻译得到可执行的Motionnet控制指令函数,机器人执行器在相关控制指令的控制下完成操作动作。

1.2机器人编程语言设计

机器人编程语言除了要具有一般语言的功能和结构特征外,还必须具备逻辑控制和运动控制功能,并且采用方便编写修改的文本形式来描述。结合机器人控制器的特点和所需执行的功能,将编程语言设计为完备正交的动作级语言,命名为IRL(IndustrialRobotLanguage)语言。IRL语言具有类似VAL语言的结构,分为监控类指令和程序类指令口,表1为IRL的部分指令集。

1.3解释器体系架构

整个解释器体系结构可以分为前、后两端,如2所示。前端在Windows操作系统中实现,解释器读入源程序预处理后,在ParserGenerator集成环境中完成词法/语法分析;创建符号表存储机器人各轴坐标、系统变量以及程序中的标记符等有关源程序构造的各种信息;遍历语法树,把文法符号和属性存储于语法分析栈,实现语义分析;采用三地址码形式生成中间代码文件,建立并管理运行时刻环境。解释器后端运行在基于WinCE平台的嵌入式系统上,通过总线将中间文件从前端载人,系统读取中间代码和符号表中的相关信息,根据语义分析所得到每条指令的语义对中间代码进行解释并与目标函数语义匹配生成最终的目标代码序列。

1.4词法/语法分析

词法分析程序读入预处理后的源程序,识别程序中的标记符号,保存标记的语义信息并给其分类,同时查找词法错误,给出错误提示并报告错误位置。语法分析程序根据标记序列和符号表提供的源程序信息构建语法树,采用LR语法分析技术进行具体的语法分析。IRL语言能用正则表达式清楚地描述,其文法符合LALR(1)上下文无关文法,故可以借助ParserGenerator提供的ALEX和AYACC工具自动生成词法和语法分析程序。词法分析框如3所示。

2语义分析

2.1语义分析方法

语义分析是解释程序最关键的阶段,语义检查、属性识别和计算、类型和运算合法性检查均在此阶段完成。IRL语言的语义分析主要是采用栈式结构进行属性计算和类型检查。

运用栈结构实现机器人语言指令的属性计算,首先通过前序遍历语法树,为每个文法符号产生语义记录,也就是将文法符号和属性移入栈中相邻的两个字段。若为多属性文法符号。则在栈外开辟某个较大的公共数据存储区存储实际属性值,把栈记录的属性值标记为指针;然后根据语法分析阶段描述的层次结构规约,机器人维修,引用相关的属性值完成语义分析。对于语义动作存在嵌套和判断的情况(如if判断语句),需对语法分析栈进行拓展,在栈中添加保存非终结符综合属性的综合记录和动作记录。建立truelist和fatselist列表管理跳转代码中的标号,ABB机器人维修,采用回填技术将标号插入指令中合适位置。

类型检查分为综合和推导两种形式,类型综合指表达式的类型是根据子表达式类型构造的。IRL语言具有标准语言的特性,其表达式数据类型为合成属性,所以语义分析中的类型检查可以以综合形式实现。基于栈结构的类型检查为语句、表达式等不同的语言表示构造具体的类型检查规则,当文法符号入栈时调用相应的规则来判断,确定是否出现类型错误。对于表达式的类型检查不仅要推断子表达式节点的类型错误,还必须为当前表达式节点确定类型并分配一个新的存储字段。

2.2语法分析栈结构描述

采用联合体union来说明综合属性的具体内容,指针指向综合属性存储单元,采用C语言对整个语法分析栈结构的描述如下:

2.3IRL语言指令语义分析

IRL语言运动指令Move中,P表示目标点,M表示移动方式。移动方式和点的坐标将作为多属性文法来处理,属性值被存储到公共数据区域通过指针来调用。4为Move指令语法分析栈。

3中间代码及目标函数生成

中间代码采用三地址码形式,子锐机器人,通过上位机和WinCE嵌入式系统之间的串口以文件方式传输,存储到系统的程序存储器中。嵌人式系统运行时,后端解释器不断地循环读取程序字节,再解释成能被WinCE系统识别执行的Motionnet目标函数。

4实验及结果

为验证基于语法分析栈的语义分析的正确性,在VC++开发的可视化集成开发环境IRLcompiler中(见5),用设计的IRL语言对PCB板点焊操作进行编程实验。

实验任务:系统初始化后,执行器以点到点的方式移动到P1点。若系统给出送丝到位信号则延时1S,焊接完毕;再以逆时针方向圆弧的方式向Pz点移动完成下一点的焊接,最终以直线方式回归原点。

实验结果:将解释生成的目标函数在YAMAHA四轴台式工业机器人上进行了运行,期望轨迹和实际轨迹如6所示。结果显示该方法可以准确高效地进行程序的语义分析,机器人对插补方式的判断、点坐标属性的计算、轴位置的估计准确无误。

5结论

本文在分析了机器人控制系统特点和解释器的一般模型后,研究了运用语法分析栈来实现解释器语义分析的方法。基于语法分析栈的语义分析方法能减少编程的工作量,缩短指令语义分析的时间,在解释效率方面比传统语义分析有较大的提高。

TAG:
免责声明:本网部分文章和信息来源于互联网,本网转载出于传递更多信息和学习之目的。如转载稿涉及版权等问题,请立即联系网站所有人,我们会予以更改或删除相关文章,保证您的权利。
扫二维码手机浏览
  • 广州子锐机器人技术有限公司
  • 地址:广州市番禺区东环街金山谷创意八街1号109
  • 电话:15889988091
  • 传真:020-82000787

Copyright © 广州子锐机器人技术有限公司版权所有 www.zr-robot.com     网站备案ICP:粤ICP备15095857号

留电回访
  • 您的姓名
  • 联系电话
  • 需要维修或帮助的产品型号及说明
  •  
24小时工业机器人维修热线:020-82000787(首次维修半价优惠)