网站首页
关于我们
新闻中心
解决方案
产品动态
合作伙伴
联系我们

ROS系统在Vortex中的仿真与可视化

时间:2019-11-19     发布者:     浏览次数:796次

ROS 是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。在某些方面ROS相当于一种“机器人框架(robotframeworks)”类似的“机器人框架”有:PlayerYARPOrocosCARMENOrcaMOOS和 MicrosoftRobotics Studio

1.jpg

ROS 运行时的“蓝图”是一种基于ROS通信基础结构的松耦合点对点进程网络。ROS实现了几种不同的通信方式,包括基于同步RPC样式通信的服务(services)机制,基于异步流媒体数据的话题(topics)机制以及用于数据存储的参数服务器(Parameter Server)

2.jpg


ROS并不是一个实时的框架,但ROS可以嵌入实时程序。Willow Garage的PR2机器人使用了一种叫做pr2_etherCAT的系统来实时发送或接收ROS消息。ROS也可以与Orocos实时工具包无缝集成
  • ROS的功能


ROS与其它机器人软件平台有什么不同?因为ROS不是一个集成了大多数功能或特征的框架。事实上,ROS 的主要目标是为机器人研究和开发提供代码复用的支持。ROS是一个分布式的进程(也就是节点)框架,这些进程被封装在易于被分享和发布的程序包和功能包集中。ROS也支持一种类似于代码储存库的联合系统,这个系统也可以实现工程的协作及发布。这个设计可以使一个工程的开发和实现从文件系统到用户接口完全独立决策(不受ROS限制)。同时,所有的工程都可以被ROS的基础工具整合在一起。
为了支持分享和协作的主要目的,ROS框架也有其它几个目标:


  • 小型化:ROS尽可能设计的很小 -- 不封装main() 函数 -- 所以为ROS编写的代码可以轻松的在其它机器人软件平台上使用。由此得出的必然结论是ROS可以轻松集成在其它机器人软件平台:ROS已经可以与OpenRAVE,Orocos和Player集成。
  • ROS不敏感库:ROS的首选开发模型都是用不依赖ROS的干净的库函数编写而成。
  • 语言独立:ROS框架可以简单地使用任何的现代编程语言实现。已经实现了Python版本C++版本和 Lisp版本同时,也拥有Java 和 Lua版本的实验库。
  • 方便测试:ROS内建一个了叫做rostest的单元/集成测试框架,可以轻松安装或卸载测试模块。
  • 可扩展:ROS可以适用于大型运行时系统和大型开发进程。



  • ROS中的仿真和可视化


ROS的仿真和可视化是非常有价值的特性。当所开发的软件只能在特定硬件上(如特定的机器人)运行时,生产力就会直线下降。物理机器人通常是开发的瓶颈,因为它可能是有限资源而只能由一个团队共用。此外,一些包括车辆和人形机这样的机器人,则需要团队进行实验。
有了一个合适的机器人仿真器,用户就可以在仿真环境下开发代码,允许并进行工作且不用专职人员负责实验。如果仿真器具有高保真度(为实际的机器人行为提供一个很好的近似),那么在物理系统上运行相同的代码可能需要很少改动,甚至不需要改动。
常见的障碍之一是,为仿真编写的代码可能需要较大修改才能在物理系统上运行。这是ROS可以解决的问题。通常,在ROS中为仿真编写的代码无需更改(甚至无需重新编译)就可以在目标物理系统上运行。在使用ROS的消息系统时,只需要消息类型、主题名称和服务器名称一致,节点就不关心系统中其他节点放在何处。
使用了ROS的机器人将其传感器数据发布到定义了消息类型的命名主题上,相应的仿真器也应该在具有相同消息类型的主题上发布相同的(仿真)信息。如果实现了这一点,则将感知处理系统从仿真转换到物理系统就只需要从物理系统(而不是仿真器)发布信息即可。
同样的,用户可能要开发与机器人(和环境)仿真器相关的人机界面,并且开发的代码可以在物理系统上无改变地使用。虽然在目标系统上运行物理硬件时,仿真器会变得多余,但是在仿真中开发的人机界面可以从仿真到硬件重复使用而无需更改。


  • 动力学仿真器Vortex


Vortex 动力学是一套完整的虚拟试验床,主要应用于移动机器人的机械运动和交互动态仿真。Vortex的实时精度保证虚拟机器人可以与真实世界系统相互连接,这就意味着在任何时间虚拟机器人都可以取得正确的结果。
Vortex 动力学应用虚拟机械模型,加速进行系统层次设计和分析。从接触动力学到特定土壤和高级运行环境,Vortex 提供创建逼真机器人模拟需要的所有工具。


3.jpg


Vortex 动力学模拟铰接集、接触和约束、逼真的履带式和轮式车辆、虚拟工件的精确抓取和高仿真的电缆行为。Vortex是一个多体动力学仿真平台,被全球研究人员和机构所认可。


应用 Vortex 动力学可以将复杂的硬件系统整合到真实的机器和控制系统,复杂的硬件包含触觉装置、运动平台和接口。Vortex动力学完整封装的 C++ API覆盖较大范围的仿真需求,可以与内置 3D 视景仿真快速集成,而且为了特殊的应用,可以配置和扩展 Vortex 动力学。通过Windows,Linux,Mac OS 分布式库,可以非常容易的将Vortex应用程序部署到多个平台上。
应用和服务的范畴:


  • 机器人和设备设计的工程模拟器;半自动和自动机器人;自动运动和路径规划(避障);应用软件在环控制器设计;
  • 广泛的陆地、海洋、海底和行星环境模型---不管是想在火星、深海或者战场仿真,Vortex皆可为机器人提供虚拟情景挑战:浮力和流体理学运动仿真、处于烟雾、灰尘、雾等视觉环境下的物理仿真、模拟块材质的运动(比如推土、土位移和压实)。


4.jpg

  • 机械系统的仿真;走、爬行、游泳和其它移动运动的动力学;人形手和其它特殊抓手的抓取仿真
  • 机器人或者远程遥控车辆(自动和固定);集成控制系统的培训模拟器;在仿真运行环境中
  • 进行场景交互培训



  • ROS与Vortex的数据通讯


ROS与Vortex需要通过UDP接口传输数据。实际中可能用到的有机器人遥控器对机器人的那种运动和语音之类的手段控制功能,而且还包括机器人后端控制系统向机器人下发配置数据、地图与导航路径数据、任务数据、特殊动作实时控制、软件更新等等数据以及机器人向机器人后端控制系统上传音视频设备实时获取的音视频数据、地图坐标数据、各种传感器收集的数据、告警数据、任务执行相关数据等等。
Vortex的网络拓展自带UDP通讯接口插件。而ROS系统下的RosBridge是一个可用于非ROS系统和ROS系统进行通信的功能包,非ROS的系统使用指定数据内容的基于JSON(或BSON)格式的网络请求(ROSBridge支持TCP、UDP、WebSocket三种网络通讯方式)来调用ROS的功能,非ROS系统能通过ROSBridge基于TCP/UDP/WebSocket与机器人上的ROS进行交互,实现了外部系统和机器人上的ROS的解耦合,外部系统完全可以与机器人使用不同的开发语言不同的OS平台。





官方公众号

北京盖特爱达科技有限公司(GET Group) 地址:北京市石景山区八大处路49号1号楼506室
邮编:100144
Add:北京市石景山区八大处路49号1号楼506室
电话(Tel):+86-010-62670890
传真(Fax):+86-010-62670830

Copyright © 2018 GET- 北京盖特爱达科技有限公司(GET Group). All Rights Reserved. 京ICP备01020304号    京公网安备110108003467号     技术支持:快帮云