机器人仿真:谈一下VREP的优缺点
转自:机器人仿真:谈一下VREP的优缺点 | ExBot易科机器人实验室
目前市场上有很多建模和模拟软件,最常见的建模软件无非是CAD类,比如CATIA,SOLIDWORKS等等,这些软件的侧重点在于精确的机械建模,用于生产/工厂规划等等。另外一类软件是模拟分析软件,比如FEM软件ANSYS,可以进行非常精确的应力/材料/温度分析等等。还有一类是多体动力学软件,比如MSC公司的ADAMS,韩国的Recurdyn,这些软件是基于物理引擎的动力学模拟。在对比VREP和其他软件前先说一下物理引擎。
物理引擎是一种基于牛顿力学的数学算法,也就是说,通过这种算法能够模拟真实的物理世界,所谓“真实的物理世界”所指的是包含力的效应的动力学,而不是简单的运动学。举一个简单的例子,在CAD软件中已经包含的运动学模拟,比如两个小球可以互相移动,然后碰撞,停止。现在问题来了(挖掘机哪家强?),发生碰撞效应之后,力的传导是怎样的?会不会反弹?反弹多少?这些问题都可以由理论力学根据真实的小球质量,材料特性,摩擦力等等在纸上计算出来,然而在CAD中并不包含这部分算法。所有基于物理引擎的模拟软件,像VREP,ADAMS,Recurdyn都可以解决此类问题。我们所常见的FPS游戏CS,COD,侠盗猎车,赛车游戏NFS,还有Steam公司开发的DOTA2都是基于物理引擎的游戏,所以会给玩家带来真实的物理世界游戏体验。
关于物理引擎更多的知识请自己google,这里推荐一篇文章:How Physics Engines Work
CAD软件不包含物理引擎,而模拟软件则是基于物理引擎的。
ADAMS,Recurdyn或者ANSYS,这些软件的优点在于,这些公司研发的物理引擎算法非常精确,具有针对性,比如在轮胎分析领域,FEM软件绝对是不二之选,因为橡胶材料的模拟不仅涉及到形变,还有温变,这是一个非常专业的领域。其他等等等等很多例子不再另述。然而它们也有缺点。
首当其冲的就是价格,Recurdyn的专业版售价约3万欧元,之后还要每年续费,另外如果需要特别的工具包还要每个月付租金(默认工具包少的可怜)。ADAMS更贵,因为MSC公司是多体动力学软件的领头羊。VREP售价5000欧左右,之后的续费也非常合理。第二,上手不容易,不经过培训根本别想靠自学搞出点什么名堂来。培训有两条路,学术培训(大学授课)和商业培训。国内很多软件课基本学不到什么东西,因为很多教授自己都不懂,跟工业领域实际应用脱节太厉害。商业培训是要付很多钱的,除非是像比如Continental做轮胎需要在这一块研发投入很多财力人力,不然一般公司里不会考虑这种额外的费用和精力。第三,开源和自由编程。虽然物理引擎库算法精确,但是不开源,这在一定程度上限制了作为开发人员的可拓展性。
VREP就是在这三点上具有优势的。VREP集成了建模/编程/物理引擎。它具有三款物理引擎,Bullet/ODE/Vortex。Bullet和ODE都是是开源的,曾经用于很多游戏(个人测试下来ODE不太行)。Vortex是商业物理引擎,它的开发公司是CM-Labs,这家公司自己也有类似VREP的机器人模拟软件CM-Labs,虽然引擎库的计算精确性要比Bullet好很多,但是建模和编程环境没有VREP方便。第二,VREP本身也是开源的。它使用的是LUA语言进行编程。LUA是一个体积很小的编程语言,但是却集成了C库,Python,Matlab等等其他主流语言,这使得工程师非常容易上手。开源,快速,灵活的建模和模拟,同时保证一定的模拟精度,这是研发中非常重要的一部分。
VREP本身也有一些bug,它还是一个小软件,在不断改进中,去官网看看它的版本更新就有体会了。它是一个瑞士工程师开发的(也就是论坛网管coppelia),目前还有很多问题没有解决。比如,一个程序里所有代码页(scripts)的执行顺序是未知的,这会导致输入输出变量的先后顺序错位,导致计算错误。
总之,我个人觉得VREP是一款非常有趣的软件,主要因为我以前也没有真正接触过物理引擎,只是在游戏中听到过这个词,现在真正去了解了,发现非常有趣,很多以前学的牛顿学物理知识又有进一步的深入理解。同时,因为它是软件,在编程和分析错误方面也有很多新的经验和体会。
V-REP机器人及模拟自动化软件平台
V-REP(Virtual Robot Experimentation Platform),堪称机器人仿真界的NO.1,是全球领先的机器人及模拟自动化软件平台。V-REP让使用者可以模拟整个机器人系统或其子系统(如感测器或机械结构),通过详尽的应用程序接口(API)
【详细说明】
V-REP(Virtual Robot Experimentation Platform),堪称机器人仿真界的NO.1,是全球领先的机器人及模拟自动化软件平台。V-REP让使用者可以模拟整个机器人系统或其子系统(如感测器或机械结构),通过详尽的应用程序接口(API),可以轻易的整合机器人的各项功能。V-REP可以被使用在远程监控、硬件控制、快速原型验证、控制算法开发与参数调整、安全性检查、机器人教学、工厂自动化模拟及产品展示等各种领域。V-REP集成开发环境,基于分布式控制体系结构,每个仿真对象(模型)可以通过嵌入式脚本、一个插件、ROS节点、远程API客户端、用户定制解决方案实现单独控制。这些极大的扩展了V-REP的功能,并且成为的多机器人系统应用的理想平台。控制器的编写支持六种通用语言:C/C++、Python、Java、Lua、Matlab or Urbi。
V-REP主要特色
分布式控制:脚本(script)驱动,通过不限定数目的操作脚本同时运作(线性或非线性),可完全客户化定制模拟机器人,同时支持C++ API函数调用。
强大API(应用程序接口):拥有超过300组完整、高密度且齐全的API函数,也可从C/C++、Lua导入。(也可使用其他语言程序的API调用)。
便利的模型浏览器:整合模型浏览器支持场景建立时的拖拉操作,资料库随版本更新。CAD资料导入导出:支持DXF、3DS、OBJ、STL(ASCII & binary)等格式。
丰富的建模元素:提供超过10种建模元素,用户可以随意组合实现自定义模型的搭建。
动力学/物理:使用者可以选择一种或两种物理计算引擎,来模拟真实的动力学情形与物件间的互动状况。最新版本还集成了目前全球最专业的商业物理引擎Vortex,可以为客户建立更加准确、高效的动力学仿真模型。
正逆向运动学:反逆向运动学计算任何类型的机制(branched、closed、redundant、containing nested loops等等),采用一种混合模式允许值计算的联合动态控制值。
动态粒子:支持可客户化的颗粒,可用于模拟空气或水射流、喷气发动机、螺旋桨等。
碰撞检测与距离计算:在几何组件中快速判断各种干扰与碰撞,以及计算多个组件间的最小距离。
切削模拟:各种定制的表面切削操作模拟。
距离+视觉传感器模拟:强大、真实、精确并可自定义的距离传感器器模拟。可完全自定影像处理功能的视觉传感器模拟。
路径规划:在二到六个物件自由度下规划完整路径,或车载类工具的部分路径。
自定义使用者接口:在整合的编辑模式下,没有数量限制的用户自定义接口元件。
完全互动:在模拟过程中,模型可以在不同运动情形下被移动、旋转、复制黏贴、尺寸重设与刪除。