- 广州子锐机器人技术有限公司
- 服务热线:020-82000787(8:30-17:30)
- 联系手机:15889988091(非工作时间)
- 座机:020-82000787
- 传真:020-32887675
- 邮箱:gz@zr-robot.com
- 广州市番禺区东环街金山谷创意八街1号109
- 当前位置:首页 > 机器人资讯 > 面向开放式工业机器人解释器的开发
面向开放式工业机器人解释器的开发
面向开放式工业机器人解释器的开发
1引言
工业机器人替代人类作业在结构化的工业现场中,将人类从繁重的、单调的、甚至危险的作业环境中解放出来。机器人解释器作为机器人系统的一个模块,其主要功能是将用文本格式(ASCII码)表示的机器人运动程序,以程序段为单位转换为后续程序所需要的数据结构或格式。所以机器人解释器是机器人系统软件的关键部分,其功能的强弱将会影响到工业机器人的性能。在解释器的研究中,文献田使用LEX和YACC来自动构造解释器,开发出了一套数控系统平台NC代码解释器软件;文献田提出了用职责链的设计模式来构建命令解释器,并且在AutoCAD平台上得到应用;文献喂出了一种基于XMLschema映射的智能文本解释器构造方法,同时具有良好的维护性;在对各种类型的解释器研究后得出有效的解释器开发方法远比硬件支持要重要的结论。
为此,提出一种开放式工业机器人运动代码解释器的开发方法,该方法通过设计模式的运用,将解释器模式和职责链模式相融合,运用XML等关键技术,使得所设计的解释器系统具有功能命令可扩充性,代码可维护性的特点,并且基于MeasurementStudi08.1仿真工具给出一个成功的应用例子。
2基于XML的解释器设计
目前不少学者使用LEX和YACC来自动构造解释器,针对复杂数据结构和语句的程序设计语言来说,其效果是明显的。但对于工业机器人解释器,采用手工编写的词法、语法分析程序更适合:一方面机器人运动程序语言比较简洁。没有复杂的数据结构和多变的语法形式,如MOVLP1,P2,V=12即可实现通过两点的直线运动;另一方面采用手工编写的分析程序往往分析速度更快,可以满足机器人控制系统的实时性要求。
为了实现机器人解释器的开放性,在修改、添加和删除个别指令时程序代码无需做较大的改动,这要求语法规则文件和程序代码之间的耦合度尽可能小,因此把语法规则文件和程序代码之间相分离。设计的解释器主要有五大模块所组成:词法分析、语法分析、语义分析、中间数据生成和执行,给出一种适用于工业机器人解释器的模型,机器人解释器模型,如l所示。XML(ExtensibleMarkupLanguage,可扩展标记语言),XML以树形结构包含和描述数据,数据类型(数据结构)以及文档结构,用于描述其他语言,而且突破了HTML固定标记集合的约束,可以使用标记(语义)来界定和说明所要描述的数据,是一种可扩展的跨平台的数据表示和交换技术的元语言网。
我们把解释器解释过程中所需语法规则嗣,如l所示。用正则表达式表达并与XML建立映射关系,使语法规则和程序代码相分离,在分析程序中用XPath技术来查询调用。这样,当添加或修改命令内容时只需要修改XML文档中相应的内容,而程序无需做任何的修改,进一步提高了系统的可重构性,降低维护成本。
3基于解释器设计模式的机器人解释器的设计
3.1以命令解释器模式增强系统的可维护性和可扩展性
设计模式(DesignPattern)使人们可以更加简单方便地复用成功的设计和体系结构,将已证实的技术表述成设计模式,能够提高已有系统的文档管理和系统维护的有效性。UML类为解释器模式在机器人解释器上的应用,如2所示。
机器人运动程序经过分析后,命令关键字和参数串存储在中间数据缓冲区内,没有复杂的数据结构,命令解释器只需按顺序解释执行即可。我们把表示机器人运动命令的句子表示为一个抽象的语法树,www.zr-robot.com,而不同的命令相应不同的类。使用解释器模式就意味着可以很容易改变和扩展机器人的运动命令形式,因为通过类来表示不同的机器人运动命令,可以通过继承来改变或者扩展该命令,子锐机器人,这些命令类也易于直接编写和添加。
3.2解释器模式下职责链模式的引入
但是,解释器模式也有其不足之处,解释器模式为机器人每一种命令至少定义了个类,对命令进行解释需要分别来判断和选择,机器人运动命令较多时,将增加系统的开销。为此,引入职责链模式的使用,机器人解释器系统的最终类,如3所示。
如3所示,把三种命令通过指针指向,即用指针指向把三种命令串连起来,从而构成一条职责链,于是命令的执行就可以职责链首开始,这样就可以遍历到对应输入命令所对应的实现方式。首先将命令发送到第一个命令类,如果可以解释则开始解释并返回结果,KUKA机器人维修,否则继续将命令传到下一个命令类来解释,如此重复,直至所传送命令得到解释,其实现代码如下所示:
由以上代码可以看出解释器的实现方式,当需要增加新的执行命令时,只需要将新添加的命令类添加到职责链上即可,系统具有较好的可扩展性,可维护性。
4实例仿真
根据上述命令解释器系统的设计方法,开发了机器人命令解释器终端系统,机器人解释器运行实例,如4所示。系统除了具有基本的文字编辑功能,还可以通过载入已有的程序文件和编辑现成的程序代码进行解释。首先是进行语法分析,如果程序代码有误将提供错误信息提示操作者进行修改,否则生成中间数据,等待操作者的下一步执行。
为了验证所设计的系统有效性,基于某公司的MeasurementStudi08.1仿真开发工具,利用ScatterGraph控件的绘功能模块模拟机器人的运动方式,来实现五角星和蝴蝶形两种形状。机器人解释器仿真结果,如5、6所示。可见所设计的解释器系统能够很好的解释所添加的命令。
5结论
通过利用设计模式的思想通过利用设计模式的思想,将解释器模式、职责链模式相融合和基于XML等技术来开发机器人解释器,具有代码可扩展性,重用性良好的开放性特征,而且兼有开发周期短,解释效率高的特点,仿真实例证明可以很好地解释工业机器人运动程序,适用于机器人控制系统平台的开发。针对不同的运动控制卡,开发相应的输出数据处理模块,即可将用户所编制的标准程序转换成不同的运动程序,实现平台的开放性。