- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Lua的工业机器人解释器实现的研究.doc
基于Lua的工业机器人解释器实现的研究
【摘 要】针对机器人编程语言和控制程序模块化的发展需求,提出一种基于Lua脚本语言的机器人语言解释器的实现方法。用Lua作为整个系统的构建者,对机器人语言进行词法、语法分析,调用控制代码完成对机器人的控制,具有扩充性和维护性强,系统开发效率高,解释效率高的特点。该解释器结合vs2008运行,利用robotic toolbox for matlab仿真验证,证明该解释器可以很好地解释工业机器人语言,为解释器的构建提供了一种新的模式。
【关键词】Lua;机器人语言;解释器;模块化
0 引言
工业机器人的快速发展,逐渐使人类从繁重、单调或是危险的工作中解放出来。为了缩短机器人的开发周期,需要一种简单易懂的语言对机器人进行编程,这就是机器人语言产生的初衷[1],它更符合人的语言习惯和思维方式,即使不懂编程语言的工作人员也能够很快的理解和运用。这就需要把这种类人思维的指令语言解析成为C/C++能够理解和运用的语言。机器人语言解释器的主要功能就是将文本形式的简单的机器人语言,也就是指令代码转换为程序需要的数据结构或格式,以控制机器人的运行,所以解释器在机器人软件系统中起到非常重要的作用,其解释效率将直接影响工业机器人的工作效率。
Lua的设计目的就是为了嵌入到应用程序中,从而为应用程序提供灵活的扩展和定制功能。轻量级Lua语言的官方版本只包括一个精简的核心和最基本的库。这使得Lua体积小、启动速度快,在目前所有脚本引擎中,Lua的速度是最快的[2]。这一切都决定了Lua是作为嵌入式脚本的最佳选择。因此选用Lua脚本语言构建解释器。
与文[3][4]中的解释器不同的是Lua不仅仅是把参数传递给主程序。基于Lua的解释器用Lua整合现有资源,构造整个系统的框架,调用控制模块来实现具体功能,降低模块之间耦合程度,其优势在于扩展性、复用性较强,并且方便实现更复杂的结构和逻辑,为将来更高级的机器人语言解析提供了可能。脚本语言无需编译,在解释器的开发阶段可以实现快速、实时的修改调试,缩短开发周期。
1 工业机器人控制系统及编程语言设计
1.1 工业机器人控制系统
操作者在界面利用规定的机器人语言指令编写程序,用解释器对机器人语言进行解析,调用相应的控制模块,控制模块包括路径规划模块、速度规划模块、运动学模块和动力学模块,完成轨迹规划、插补、逆运动学等运算,最后Lua把伺服电机需要的关节角度、关节角速度和加速度参数传递给运动控制器,实现对机器人的控制。
1.2 工业机器人编程语言设计
机器人编程语言需要运动指令和流程控制指令,解释器的任务是要对指令进行解析,控制机器人完成指令动作。
2 基于Lua的解释器设计
2.1 Lua简介
Lua是一种嵌入式语言,Lua具有与C/C++良好的交互能力,十分简洁的API,可以说是目前脚本语言中做的最好的[1]。我们可以把Lua作为C/C++的一个库,同样也可以把C/C++作为Lua的一个库。Lua与C/C++可以通过一个虚拟栈来进行数据交互,十分简洁,这一点对实现工程的模块化非常重要。解释器将C++作为 Lua的一个库来使用;
Lua提供了丰富的字符串处理函数;
灵活的table和function,table是Lua中一种特别的结构,类似数组,但它其中的元素可以是任意类型的,甚至可以是一个函数。Function具有参数变长机制,这些为解析工作提供了极大的方便;
Lua具有可移植性,Lua可以运行在任何平台上,包括:PlayStation、Xbox等等。
由于Lua具有的这些特点,它可以作为一种高效便捷的解析工具。
2.2 基于Lua解释器的体系结构
首先编辑机器人程序,编辑完成后,调用Lua读取文本中的机器人程序,解析每一句代码,检测词法语法错误,有错误时抛出错误类型,无错误时分解成指令和参数,根据不同的指令调用不同的控制模块:把示教点位置姿态信息传递给路径规划模块,得到路径参数,把速度参数和路径参数传递给速度规划模块,把速度规划参数和路径参数传递给插补模块,得到笛卡尔空间末端执行器插补状态参数,最后调用逆运动学求解模块,推出六个关节运行时间对应的位置、速度、加速度信息,传递给伺服驱动控制器完成动作。在这里Lua不仅是传统解释器的作用,而是整个系统的调度者,有利于机器人控制系统的模块化,这样一来,假如速度规划模块需要优化,我们可以直接把这个模块替换成优化后的模块。
2.3 基于Lua的解释器界面实现
常用的界面实现形式是Qt,基于Lua的解释器研究采用一种新颖的实现形式――Qtlua,Qtlua库旨在用Lua脚本语言使Qt应用程序可脚本化
文档评论(0)