英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料
V-Rep:一个万能且可量化的机器人仿真结构
摘要:从探索星球到打扫家庭,机器人学科的相关延伸及其多功能性是非常广袤的。驱动的集成,传感与控制使得机器人学科系统变得非常强大,却使得仿真工作也变得困难。此文献介绍一种万能且可量化的还非常简单通用的机器人仿真结构,V-Rep。
本文讨论的是一种便携灵活的仿真软件的实用性,这种软件直接包含各种技术,通过减少仿真模型配置的复杂性使仿真学和仿真模型对大众来说更易被理解。同时又通过提供内置即时可用的各种函数增强了产品力。作为一种处理手段的大集合,这涉及到众多的包括快速算法、系统核实、快速原型设计和一些例如安全/远程监控布置、训练、教育、硬件控制和工厂自动化模拟的应用程序。
Ⅰ. 引言
伴随着计算机在处理软硬件能力指数型增长(不涉及3D图形硬件),大大改变了机器人仿真(3D)领域的格局。这不仅激发了台式电脑更多的复杂性,并且逆向提供了圈内硬件运行仿真的能力(在真实时间上),或用仿真控制平台控制移动/嵌入式系统。
同时,这也能将各种运动学,物理学,图像处理技术,建筑学和一些为决定原理如何作用和系统的精准性、性能整合为一个仿真器。一个为万能的,可量化的和细致的仿真策略提供支持的强大系统解决方法。
实际上,一个通用的机器人仿真软件必须同时提供大多数手段和函数。当系统特异性不能被预见时,边摘录下这些潜在的机器人系统和他们的复杂性,还有就是,当想到一个灵活多变的控制器时,这些都能被简单轻易地编程(维护),能一并概括各式各样的模型。且可量化(也就是仿真实体应当处理许多模型,控制器,或者各种功能体)。
市面上当前有几种机器人仿真软件提供选择,例如Open HRP,Gazebo,还有Webots,一些提供相互不同的功能,而一些不提供编程技术的补充,他们的仿真模型和控制器仅仅一部分很轻便。模型,控制器其他功能部件区分得非常 清楚,因此需要分开处理。举个例子,通常在不同的硬件或软件平台上控制器编译是非常重要的,或者在能单独反馈两个不同的文件前,那些仿真模型和控制器都需要被仔细监督,当支持缩放时,通过相对隐蔽的硬连接建立渠道。
虚拟机器人实验平台(主要功能界面如图1所示),或只是一种整合所有要求到一个多功能和可压缩的仿真软件中。而提供传统手段同样适合其他仿真器,V-Rep增添了其他几种方式。本文第二章将介绍V-Rep的控制设计,各种可能的控制器形式在此注解,尤其是嵌入式脚本,那将成为仿真模型完整的一部分,非常便携灵活。第三章主要讨论所有提供的仿真功能,和所有仿真模型的集成及轻便性的好处。最后,第四章审视了三种典型的V-Rep仿真模型及各自作为安全启用本文内的介绍。
Ⅱ.仿真控制器
如果想建立复杂的仿真场景,那几乎不可能脱离一个控制框架。通过分割控制实体简化任务,他通过多盒或机器分割CPU负荷来加速仿真,且允许本地代码执行来控制仿真模型,然而许多的仿真要求并不应该在追寻这个目标的过程中被遗忘。
一个最重要且经常被忽略的方面是仿真模型的灵活性,轻便性以及扩展性:适应控制代码有多简单?当为让同一仿真模型在另一个机器上运行需要分配多少文件?是否会要求在其他平台上进行再编译?同一控制器有多少版本在市面上发行?不同版本的能否同时运行,在不丢失功能的情况下一个仿真模型能否多次实体化?
其他的仿真控制要求与仿真循环相连接,某些部分,尤其是例如实时运行器级别的这类低级控制,要求和仿真环同步(也就是在每一个仿真步骤同时决策)
在机器人仿真学中,提供同步/异步;内部/外部,本地/异地分布控制技术的重要性在今后被讨论。
A. 通用技术概述
一个仿真或仿真模型的控制代码的执行主要通过以下三种技术:
控制代码在另一台机器上执行这能代表一个单独的机器或机器人,能用特定的网络渠道与模拟器连接起来,(例如套接字,串口等)这种途径最主要的优势就是控制器的原始性。(控制代码能本地化且能在原始硬件上运行),另外一个优势是能减少电脑在仿真器上的负荷。再另一个方面,这种方式在关于仿真循环的同步引起了极大的限制,和网络带来的通信延时/延时处理。
控制代码在同一台机器上执行,但在另一步骤(另一个线路)而不是仿真循环。我们也可以减少收益或者平衡CPU多核的负载,但是伴随而来的是仿真环同步性的缺失。大多数的时候,通信延时和线路转换延时(很多资源使用前是琐止的,或者一些算不是不能再使用的)。这种控制技术常常通过模拟器的外部可执行文件和插件程序来实现。
控制代码在同一个机器和同一个仿真循环线路中执行,这种方式的主要优势是仿真环的固有同步性,没有任何的执行,通信或线路转换的滞后或延时。然而这是唯一一种可能增加CPU核心仿真循环负载的伴随出现的情况。这种控制技术常常通过仿真器插件程序来实现的。
上述方式的共同实现(也就是使用外部可执行或内置文件)。
上述技术最共同的安装履行(也就是使用外部可执行或插件程序)后果就是仿真模型缺乏轻便性和伸缩性:确实,当控制代码不能和各自的仿真模型相匹配时,它就不得不被各自分离/编辑/安装。这增加了平台间的兼容性问题,也增加了数据库之间的矛盾/从属问题。灵活性也被削减,因为每次都得为每一个可执行/内置小的代码修正进行重新编译和下载。在一个多机器人仿真场景中,模型副本将经由硬件设施每一个仿真模型实体建立新的控制实体而被支持。
B. V-Rep安装启用
V-Rep允许用户在不同的编程技术中同时(表1)甚至共生(图2)中选择。
嵌入式脚本。这代表了V-Rep最强大和与众不同的优势。最核心的仿真循环是一个简单的Lua脚本(称之为“核心脚本”),部分给定的仿真场景,已掌握一般的函数(举例来说,这被称之为处理运动学和动力学的特有功能)。在串级回路中,主脚本也负责带出子脚本(关于场景层级)。一个子脚本,不同于主脚本,在一个仿真环中与特定的任务相连接和处理仿真中个别的部分。这是仿真任务场景中一个完整的部分,可以同时被复制和序列化。例如,这代表了一个极度便携与可量化的控制因子:一个单独的文件包含了模型定义及其控制和函数。并且不存在平台间兼容性问题,不需要明确编辑,相同模型的不同版本间无冲突,模型实例较模糊,等等。子脚本可在单程或非单程方式中执行。子脚本的单程版本依旧保持着在第Ⅱ章第三点中所描述的技术优势,A:确实,V-Rep的线程管理器在处理线度上使得某种程度上作为协同程序出现,这掌控着线度执行回转和前行的精确时间,有效地提供了主脚本或其他子脚本的完美同步性。此外,每一个线路可以被单独以编程方式进入自由运行模式(也就是说允许作为线路临时运行)。嵌入式脚本亦可被视为“粘合部件”,约束了V-Rep中各种被支持的编程技术:子脚本可以注册ROS出版商/订阅者,他们可以公开和处理通信链路(比如插座和连续串口),启动可执行文件,下载/卸载插件程序,或者启动远程API服务器服务(参见下文第四点)。嵌入式脚本也包括回收脚本,例如作为低等级自定义连接控制器来使用。嵌入式脚本的函数可以经由两台机器被使用者扩张:使用Lua扩张数据库,或通过内置库注册常规Lua函数。
附件.嵌入式脚本在相同的方法中,扩展设备通过Lua脚本在V-Rep中被支持,能作为独立功能被使用(方便写入或输出),或作为基础执行代码(如同轻量化定制模拟器一样方便)。
插件.插件作为一种便捷的个性化方式模拟器在V-Rep中使用。可以注册特定的Lua指令,允许执行来自嵌入式脚本的快速回转信号函数。也可扩张一个特定仿真模型或物件的功能性。也执行特定的输入/输出,或为特定硬件提供一个界面。和ROS界面(参见以下项目)一样,远程API界面也经由插件程序所实施。
远程API客户端。V-Rep中的远程API界面能够跟V-Rep进行互补或可配合经由嵌套字通信的外部实体仿真。由远程API服务器服务和客户端组成。客户端侧几乎包括所有的硬件及实物机器人均可嵌入小型封装代码(C/C , Python, Java, Matlab amp; Urbi),包括快速数据送回和流转的远程功能。在客户端侧,一般都为常规函数,除两个特例情况以外:远程API函数接受一个操作代码额外争议,和返回一个相同错误代码。操作代码包含阻塞函数(等待至用户回应),或非阻塞函数(读取来自缓冲区的流动指令,或启动/停止服务侧的流动服务)。远程API使用缓冲,在所用平台的可用性,以及小型封装,使其成为对ROS界面一个有趣的替代品(参加下一条例)。
ROS节点。V-Rep执行一个ROS节点伴随包括通过ROS服务相应V-Rep请求的插件程序,或者通过ROS发行商/订阅者流出数据。出版商/订阅者通过服务呼叫来激活,也可通过内置V-Rep直接激活,经由一个嵌入式脚本指令。
Ⅲ.仿真功能
V-Rep基于一个万能建筑环境设计,在V-Rep中没有主要或中心功能。当然,V-Rep拥有各自相对独立的功能,可按需求安装/卸载,同样基于模型库。
想象一个这样的仿真场景,一个工业机器人搬起一些箱子然后移动到另一处;V-Rep估算拿起和抱住这些箱子的动力学和当动力学忽略不计时执行该环节其他部分的运动学仿真。这种方法使得快速精确地计算出工业机器人的移动成为可能,不会是一种使用复杂动力学数据库的完全仿真。如果机器人是非常固定死板的,不会受到环境影响的,那么在这种情况中,此类的混合仿真是非常适用的。
此外,对于在挑选方式中的各种适应性授权功能,V-Rep同样能在共生方式中使用他们,相互配合。在这种情况下的类人类机器人,比如,V-Rep可以通过(a)计算每一条腿的相对运动学来操纵腿的运动(也就是从计算的脚的位置和方向,所有腿的关节位置都能被计算);然后(b)通过将计算得到的关节位置作为目标关节来分配仿真模块。这涵盖了在通用方式中对一个类人类动作的具体说明,因此,每只脚都必须遵循六维度来简单分配:剩余的计算将机械化的执行。
函数一般与特定场景的物体或特定的计算模块相关联,在下文中两者都将被介绍到。
A. 场景对象
A V-Rep仿真场景或仿真模型都包含了各种被树状等级安装的仿真目标和基本任务。V-Rep支持接下来的几种场景物体。
关节:关节是将两个或多个场景物体连接到一起成为一个三围自由度物件的基础(棱柱形,后旋形,螺旋形或球形)。他们能在各种模式中操作(比如动力/扭矩模式,相对动力学模式等等)。
图形:形状为三角网眼,为机械身体的仿真和可视化使用。能够为快速动态碰撞响应作出优化,为原始或凸面形状作为分组。其他的场景物件或计算模块主要依赖于图形为此计算(比如相邻传感器,动力学模块,或网间距离计算模块)。
邻近传感器:执行一个包含于可配置侦查量的图形部分的极小距离计算,作为基于射线的简单反向执行检测。这导致一些列的操作及更多的实际仿真。
视觉传感器:视觉传感器可以提取复杂的图像信息从模拟场景(颜色,物体的大小,深度图等)。一个内置的过滤和图像处理功能,使组成过滤元件的块。视觉传感器为原图像采集硬件加速使用(OpenGL)。
力传感器:他们代表的形状之间的刚性连接,可以记录施加的力和力矩,并可以有条件地掰开当给定阈值超过。
图:图可以记录各种预定义的或自定义的数据流。数据流可以直接显示(给定数据类型的时间图),或是与每个其他结合起来显示图形,或三维曲线。
相机:他们让场景可视化与视图相关。
灯光:灯光照亮一个场景或单个场景物体,并直接影响摄像机或视觉传感器。
路径:他们允许复杂空间运动的定义(自由组合的平移,旋转和/或停顿,继承)并用于指导焊接机器人焊枪沿预定义TRA轨迹,或允许例如输送带运动。
傻瓜:一个虚拟的参考框架,可用于各种不同的任务,主要是用于与其他场景对象的连接,因此,可以被视为一个“帮手”。
米尔斯:他们代表可定制的凸体积,可以用来模拟表面切割的形状(例如,铣削,激光切割等)的操作。
A计算模块
场景对象是很少使用在他们自己的,他们宁愿在(或在一起)其他场景对象(例如,一个接近传感器将检测形状)操作。此外,v-rep提供几种计算可以直接操作在一个或几个场景对象的离子模块。以下是主要的计算模块:
运动学模块:允许任何类型的机构(支链,封闭,冗余,包含嵌套循环等)的运动学计算(向前/逆)。该模块是基于计算的大M PED最小二乘逆[ 8 ]。它支持条件、阻尼/无阻尼,和加权分辨率。
动力学模块:通过子弹物理库[ 9 ]和开放式动力引擎(10),允许刚体动力学计算和相互作用(碰撞响应,抓取等)。动力学基础模拟仍在其婴儿鞋,往往基于近似,这是很重要的,不仅依靠一个单一的物理引擎,以验证结果。在写作的时候,一个第三,高精度的物理支持,通过涡动力学[ 11 ]是在准备。
碰撞检测模块:允许任何形状或形状的集合之间的快速干涉检查。该模块是完全独立的动态碰撞响应的计算算法集成电路模块。它使用的数据结构的基础上的二叉树的面向包围盒[ 12 ]的加速度。额外的优化与时间一致性缓存技术实现。
网格计算模块:允许任意形状(凸、凹、开、闭等)或集合形状之间的快速最小距离计算。该模块采用同一数据结构作为碰撞检测模块。额外的优化也具有时间一致性缓存技术实现。
路径/运动规划模块:处理完整的路径规划任务和非完整路径规划任务(车型车辆)来自于通过快速扩展随机树(RRT)铝的方法算法[ 13 ]。也支持运动链的路径规划任务。
对于上述模块的通用性实现的一般方式,不作任何假设的基本模拟场景或模型。把它们集成在v-rep的目的,而不是对外部库的依赖是有点类似于有嵌入式脚本的目的,如第二节所描述的,绝大多数的模拟或仿真模型不需要任何具体还是高端工具。他们需要一套很好的基本工具。如果这些都集成到
模拟器,其任务定义直接连接到模拟模型,然后模型变得非常轻便:到不同的机器或平台模拟模型的分布是通过一个单一的模型文件;不需要分配,重新编译,安装或重
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[146370],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。