机器人系统常用仿真软件介绍和效果
1 主要介绍以下七种仿真平台(侧重移动机器人仿真而非机械臂等工业机器人仿真):
1.1 USARSim-Unified System for AutomaTIon and Robot SimulaTIon
USARSim是一个基于虚拟竞技场引擎设计高保真多机器人环境仿真平台。主要针对地面机器人,可以被用于研究和教学,除此之外,USARSim是RoboCup救援虚拟机器人竞赛和虚拟制造自动化竞赛的基础平台。使用开放动力学引擎ODE(Open Dynamics Engine),支持三维的渲染和物理模拟,较高可配置性和可扩展性,与Player兼容,采用分层控制系统,开放接口结构模拟功能和工具框架模块。机器人控制可以通过虚拟脚本编程或网络连接使用UDP协议实现。被广泛应用于机器人仿真、训练军队新兵、消防及搜寻和营救任务的研究。机器人和环境可以通过第三方软件进行生成。软件遵循免费GPL条款,多平台支持可以安装并运行在Linux、Windows和MacOS操作系统上。
"http://sourceforge.net/projects/usarsim/"
1.2 Simbad
Simbad是基于Java3D的用于科研和教育目的多机器人仿真平台。主要专注于研究人员和编程人员热衷的多机器人系统中人工智能、机器学习和更多通用的人工智能算法一些简单的基本问题。它拥有可编程机器人控制器,可定制环境和自定义配置传感器模块等功能,采用3D虚拟传感技术,支持单或多机器人仿真,提供神经网络和进化算法等工具箱。软件开发容易,开源,基于GNU协议,不支持物理计算,可以运行在任何支持包含Java3D库的Java客户端系统上。
"http://simbad.sourceforge.net/"
1.3 Webots
Webots是一个具备建模、编程和仿真移动机器人开发平台,主要用于地面机器人仿真。用户可以在一个共享的环境中设计多种复杂的异构机器人,可以自定义环境大小,环境中所有物体的属性包括形状、颜色、文字、质量、功能等也都可由用户来进行自由配置,它使用ODE检测物体碰撞和模拟刚性结构的动力学特性,可以精确的模拟物体速度、惯性和摩擦力等物理属性。每个机器人可以装配大量可供选择的仿真传感器和驱动器,机器人的控制器可以通过内部集成化开发环境或者第三方开发环境进行编程,控制器程序可以用C,C++等编写,机器人每个行为都可以在真实世界中测试。支持大量机器人模型如khepera、pioneer2、aibo等,也可以导入自己定义的机器人。全球有超过750个高校和研究中心使用该仿真软件,但需要付费,支持各主流操作系统包括Linux, Windows和MacOS。
"http://www.cyberboTIcs.com/"
1.4 MRDS-Microsoft RoboTIcs Developer Studio
MRDS是微软开发的一款基于Windows环境、网络化、基于服务框架结构的机器人控制仿真平台,使用PhysX物理引擎,是目前保真度最高的仿真引擎之一,主要针对学术、爱好者和商业开发,支持大量的机器人软硬件。MRDS是基于实时并发协调同步CCR(Concurrency and Coordination Runtime)和分布式软件服务DSS(Decentralized Software Services),进行异步并行任务管理并允许多种服务协调管理获得复杂的行为,提供可视化编程语言(VPL)和可视化仿真环境(VSE)[28,29]。支持主流的商业机器人,主要编程语言为C#,非商业应用免费,但只支持在Windows操作系统下进行开发。
"http://msdn.microsoft.com/zh-tw/library/bb648760.aspx"
"http://msdn.microsoft.com/library/bb648760"
"http://www.microsoft.com/en-us/download/details.aspx?id=29081"
1.5 PSG-Player/Stage/Gazebo
PSG是由美国南加州大学 (USC)开发的一套针对机器人和传感器系统研究的免费平台,包含网络服务部分Player和机器人平台仿真部分Stage与Gazebo。Player定义了机器人和传感器与Stage和Gazebo通信接口,Stage是2D环境,提供基本碰撞检测和距离传感器模型但不支持物理仿真,Gazebo是3D环境使用ODE物理引擎。PSG提供声纳、激光扫描测距仪、碰撞检测和执行器等虚拟机器人设备,支持进行多机器人仿真。它是目前在研究和教学方面最流行的开源机器人仿真软件,开发的程序通过简单的修改甚至无需修改即可应用于实体机器人的控制,因此可以大大降低研究成本、缩减研究周期。大量的主要智能机器人期刊和会议发表的文章都使用PSG作为真实和模拟的仿真实验平台。免费软件,基于GNU协议,这款软件是在Unix系统上开发,只支持Linux和Mac OS。
"http://playerstage.sourceforge.net/"
"http://www.gazebosim.org/"
1.6 MissionLab
MissionLab是佐治亚理工学院 (Gatech)开发的一组功能强大的平台用于开发和测试单个或一组机器人行为。通过Missionlab生成的代码可以直接控制主流商用机器人,包括ARTV-Jr、iRobot、AmigoBot、Pioneer AT和MRV-2等。Missionlab最主要的优点在于它支持仿真和真实机器人同时实验。MissionLab是分布式体系结构,主要有六个核心组件:mlab、CfgEdit、cdl、cnl、HServer和CBRServer。使用CMDL和ODL作为开发配置语言。它起初是为DARPA开发用于研究在敌对环境多智能体机器人系统灵活反应控制,现已开源,仅支持Linux操作系统。
"http://www.cc.gatech.edu/aimosaic/robot-lab/research/MissionLab/"
1.7 MORSE-Modular OpenRobots Simulation Engine
MORSE是一款通用的多机器人仿真平台,主要特点是能控制实际仿真的自由度,可以自由设计符合自己需求的组件模型,运用Blender实时游戏引擎进行原始渲染,设计适合的体系结构,支持通用的网络接口。它提供了大量可配置的传感器和执行器模块,高度的可扩展性,提供人与机器人的交互仿真,使用Python编程,有丰富的文档并且易于安装但无法进行精确的动力学仿真,时钟同步能力性能较差,多机器人仿真时可能出现不同步情况。目前有5所学校和科研机构使用,开源软件,仅限于Linux和MacOSX操作系统。
"https://www.openrobots.org/wiki/morse/"
1.8 其他常用机器人仿真软件
ROS----"http://www.ros.org/"
V-Rep----"http://www.v-rep.eu/"
MRPT----"http://www.mrpt.org/"
空中机器人仿真模拟软件
Orbiter----"http://orbit.medphys.ucl.ac.uk/"
Flighntgear----"http://www.flightgear.org.cn/forum.php"
2 评价指标
为了从机器人研究者的角度去客观地评价这些仿真软件,需要制定统一的标准。本文的基于Alexander、Craighead、Michael等学者前期工作,确定了评估机器人仿真平台的通常标准:逼真度、可扩展性、开发简易性和成本,这四个标准可以用来判断任何一款虚拟机器人仿真软件,但对于多机器人系统而言,由于其分布式等特点,对网络化的要求也越来越高,因此网络功能也是一个不可缺少的重要指标。仿真软件按照这些标准被分为高中低三个层次。
2.1 逼真度
2.1.1 物理逼真度
物理逼真度是指物理环境的相貌、声音和感受逼近真实操作环境的程度。当一个仿真软件不能模拟操作环境的感受,它可以模拟环境视觉和听觉部分。Alexander证明研究效果可以被更高逼真度的仿真软件加强。以机器人操作为例,操作者一般是远离操作环境的,一个高逼真度的视觉和听觉仿真软件与操作真实机器人相比相差不大。通过每个仿真软件的视觉渲染和音频性能确定它们物理逼真度的等级。一个高物理逼真度的仿真软件可以渲染高分辨率纹理、材质、灯光、反射和凹凸贴图等。模型使用大量多边形,而不是使用纹理贴图作为几何建模主要部分。机器人的运动特性必须被正确显示。一个高物理逼真度的仿真软件还包括机器人和环境感觉的高度融合。一个中物理逼真度的仿真软件能够通过3D渲染环境,对于物体细节则没有要求。一个低物理逼真度的仿真软件只能通过2D渲染环境并没有声音。
2.1.2 功能逼真度
功能逼真度是指仿真中机器人行为逼近真实机器人执行任务操作环境和装备反应的程度。功能逼真度的首要目的就是指仿真软件使用者期望得到与真实装备相比相似的行为。通过比较物理特性仿真性能确定功能逼真度等级。高功能逼真度定位为仿真大部分作用在机器人和驱动器的力学特性包括重力、牵引力、电机或与其他物体机器人等碰撞产生的加速度都能精确显示,并能详细测量和记录状态信息用于分析。中功能逼真度包括机器人整体的动力学仿真,但无法对单个关节进行仿真。低功能逼真度是指软件不能仿真在机器人上的力学行为只能仿真速度和位置等运动学特性。
2.2 可扩展性
可扩展性是指仿真软件适应多种应用的能力。主要表现为仿真实验算法开发实现不能受限于仿真软件功能。包括是否可以较容易地增加和减少机器人,定制传感器和驱动器模块种类的多少,能否提供模块化的标准接口支持第三方软件开发,仿真程序应用与真实机器人的可移植性的好坏。
2.3 开发简易性
开发简易性是指使用仿真软件开发适用机器人的难易程度。包括环境与机器人配置的复杂程度,软件配置新装备的复杂程度,支持编程语言的种类,软件的开发文档的丰富性,通信接口配置的通用性。
2.4 成本
成本包括费用花费和时间花费。主要为初次安装和开发过程中必须消耗的时间、软件的价格等。如果软件是开源免费的并且安装使用简易则为低成本,软件免费但是安装使用复杂或软件付费但是安装使用简单定为中,软件购买昂贵并且安装使用需要一定经验定位为高。
2.5 网络功能
网络功能是分布式多机器人系统的一个重要组成部分,包括是否支持远程操作真实机器人,是否有完备的仿真机器人的网络接口和大型复杂场景的多终端联合调试仿真等。
3 仿真效果
可以参考视频录像
"http://i.youku.com/u/UMTg1NDE4MDM2"