机器人仿真系统调研

仿真是机器人学习和研究过程中最重要的工具之一,是指通过计算机对实际的物理系统进行模拟的技术。机器人仿真基于交互式计算机图形技术和机器人学理论,生成机器人的几何图形,并对其进行三维显示,用来描述机器人及工作环境的动态变化过程。

传统的产品开发流程
产品定义—>概念设计—>方案评审—>详细设计—>样机试制—>测试—>方案优化等流程。但是随着产品复杂度的增大,尤其对于机器人这种多自由度复杂系统,直接采用上述流程的弊端越来越大。首先,当测试发现问题时,需要对方案进行迭代优化,尤其对于硬件设计,加工以及组装的过程耗时费力,中间一旦出现问题,迭代的周期很容易就会拖长。
[图片]

为了提升产品开发的效率,现在产品的开发往往采用基于仿真驱动的开发流程。在方案评审环节之后通过仿真对方案进行评估,针对方案中不合理的部分进行迭代优化,然后再对方案进行详细设计。这样可以缩短开发周期,降低开发成本,减小设计风险。

[图片]
最后,很多个人和团队不具备搭建硬件平台的条件。对于一些工业机械臂而言,其价格达到几十万甚至更高,这对于一些机器人爱好者或者初学者是无法承受的,而仿真可以提供一个廉价的学习环境,使用者可以在仿真环境中轻松搭建自己的机器人硬件,来实现和测试自己的软件算法。
在这里插入图片描述

仿真系统的系统架构
一个完整的机器人仿真平台主要负责三件事:模型建模、动力学计算、可视化显示。这分别对应了仿真平台的三个组成部分:模型描述、动力学引擎、渲染引擎。

[图片]
在这里插入图片描述

▍模型描述
主要负责机器人模型的建模,使用计算机语言向仿真平台描述机器人是如何构成的。机器人的基本构成可以使用连杆(link)和关节(joint)来描述。除此之外,还需要知道这些基本组成部分的一些物理信息,例如连杆的质量属性,惯量属性,颜色,以及关节的种类(到底是转动关节还是平动关节)。
目前业界主要使用URDF(Unified Robot Description Format)和SDF(Simulation Description Format)文件来描述机器人模型,他们都是XML语法框架下用来描述机器人的语言格式。虽然URDF是ROS中的标准格式,但它缺乏许多功能来描述更复杂的场景。例如,URDF只能指定单个机器人的运动学和动力学特性,它无法指定摩擦特性和处理闭链结构。此外,它不能指定环境信息,例如灯光、高度图等。SDF的提出就是为了解决URDF的缺点,它可以实现对机器人所有内容的完整描述,其可扩展性更适合于复杂的仿真。

▍动力学引擎
可以根据物体的物理属性计算运动、旋转和碰撞。动力学引擎的基础是系统动力学,动力学是对现实世界中物体运动规律的数学描述,这种数学描述主要是基于常微分方程的,物理引擎核心的任务就在于求解常微分方程。
常用的机器人仿真物理引擎有ODE,Bullet,MuJoCo等。Bullet和ODE开发的初衷主要是用于3D电影和游戏。因此,在数值求解器上用的是一阶的半隐式欧拉方法(Semi-implicit Euler method),主要追求的是速度、稳定性而非精度。MuJoCo是一个近期开源的物理引擎,旨在促进机器人学、生物力学、图形和动画以及其他需要快速准确模拟的领域的研究和开发。MuJoCo提供了速度、精度和建模能力的独特组合,主要应用于强化学习和最优化控制领域。

[图片]
在这里插入图片描述

▍渲染引擎
使用计算机图形学技术,根据机器人模型和纹理渲染出机器人的三维图形,这样我们可以通过可视化平台观察机器人运行的正确性。目前机器人渲染引擎主要使用OpenGL。OpenGL(Open Graphics Library)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口。这个接口由近350个不同的函数调用组成,用来从简单的图形比特绘制复杂的三维景象。OpenGL常用于CAD、虚拟实境、科学可视化程序和电子游戏开发,具有强大的通用性和可移植性。
[图片]
在这里插入图片描述

三、仿真评价指标
为了客观评价仿真软件的优劣,需要制定统一的标准。早期的研究学者确定了评估机器人仿真平台的通常标准:逼真度、可扩展性、开发简易性和成本。这四个标准可以用来判断任何一款机器人仿真软件。但随着仿真软件的发展以及应用场景的丰富,在不同开发环境下对仿真软件的评价标准也稍有不同。特殊地,对于足式机器人仿真而言,其结构为多自由度的开链或闭链结构,导致其动力学模型比一般的轮式机器人更为复杂,并且机器人运动过程中需要与环境实时进行多点接触,这对仿真器在多物体碰撞检测方面的性能要求就会很高。使用精确的数学模型来描述动力学模型和碰撞模型固然是好的,但是这无疑会增大求解器的负担。因此,仿真器需要在计算精度与计算速度之间进行合理的权衡。除此之外,仿真器还需要考虑扩展性、维护性以及兼容性等因素,这些因素对于开发者项目的开发、部署以及后期维护都很重要。下表列出了一些更为丰富的评价指标。

评价指标 指标描述
计算速度 仿真计算效率
计算精度 仿真结果与理论值的接近程度
接触模型 接触模型准确,确保动力学仿真结果与实际相近
编程环境 支持的编程语言
兼容性 支持的操作系统
可扩展性 支持的第三方工具,包括矩阵计算、数值优化、数据分析等
开源 源代码开源程度,API接口开放程度
成本 包括资金花费和时间花费
Webots CoppeliaSim(V-rep ) Gazebo
开源 [x] [x] [x]
支持的编程语言 [] C++ [] Java [] URBI [] MATLAB [] Python [] C++ [] C++
支持的操作系统 Linux Windows,Linux或macOS Linux,Mac,Window
物理引擎 ODE ODE Bullet Newton Vortex Dynamics ODE Bullet Simbody DART

Webots
Webots是瑞士公司Cyberbotics发布的一种用户友好型机器人模拟仿真器。它可以在Windows,Linux或macOS上运行,并且支持大多数编程语言,例如C/C++,Java,URBI,MATLAB和Python。还可以使用API或任何标准TCP/IP网络从外部控制Webots模拟器。Webots模拟器使用ODE(开放动力引擎)在逼真的3D环境中模拟物理。它还支持对碰撞和接触点进行精确建模,这可以使用虚拟机器人测试各种场景。Webots甚至附带一个机器人模型库,可使用PR2,Atlas,Aibo甚至是某些NASA机器人。Webots还支持VRML97,因此可以使用大多数建模软件(Solidworks,AutoCAD,Blender和Inventor)导入机器人设计。还可以导入地图和地形数据以在测试环境中创建准确的世界表示。
[图片]
在这里插入图片描述

https://blog.csdn.net/ZhangRelay/article/details/100519183

  1. 文档:http://wiki.ros.org/webots_ros2
  2. 源码:https://github.com/cyberbotics/webots_ros2
    Gazebo
    Gazebo模拟器是一个免费的开源平台,可用于设计,开发,测试和可视化几乎任何类型的机器人。Gazebo可在Linux,Windows和Mac上运行,并且内置了对ROS(机器人操作系统)的支持。Gazebo支持多种高性能物理引擎,例如ODE,Bullet,Simbody和DART。它还使用ORGE 3D图形引擎来渲染具有准确照明,阴影和纹理的高质量环境。Gazebo模拟器还附带了一些机器人模型,例如PR2,DX,Irobot Create和TurtleBot,因此即使没有自己的机器人模型,也可以快速上手。它还支持广泛的传感器,并且可以模拟噪声和传感器故障,以准确模拟实际问题。甚至可以在云中运行Gazebo,并使用简单的Web浏览器与模拟器进行交互。如果想在笔记本电脑上工作,这是完美的选择,因为可以租用AWS实例来快速测试和设计机器人
    CoppeliaSim(V-rep 老版名称)
    V-REP(现在更新命名为CoppeliaSim)是免费的,用于教育目的,如果计划将其用于商业项目,则可以升级到专业版。可以在Windows,Linux或macOS上运行V-REP,并且可以使用六种不同的编程语言对其进行编程。它还具有ROS&BlueZero支持,因此可以只使用3D模拟器并使代码在另一个平台上运行。V-REP支持四种不同的物理引擎(Bullet, ODE, Newton, and Vortex Dynamics)。它可以准确地处理对象的交互,例如碰撞,接触点和抓取。V-REP还支持粒子物理学来模拟空气和水,因此可以准确地对喷气发动机和螺旋桨建模。V-REP还可以模拟各种传感器,甚至可以通过插件将新传感器添加到模拟器。V-REP甚至支持路径和运动规划,甚至可以计算正向和逆向运动学。它还支持网格编辑,因此可以在模拟器中对设计进行小的调整,或者可以轻松导入任何五种不同3D模型格式(Obj,STL,URDF等)的模型
    NVIDIA ISAAC Platform for Robotics
    在NVIDIA ISAAC平台是由领先的显卡厂商这也是迅速成为AI行业的大玩家之一的NVIDIA开发。它可以在启用GPU的桌面上运行,也可以在AWS,Google Cloud或Azure上的云中运行。它还支持NVIDIA Jetson AGX Xavier,Jetson TX2和Jetson Nano。由于ISAAC机器人技术平台是由NVIDIA制造的,因此它提供了所有机器人模拟仿真器中最好的图形。它还对更复杂的任务(例如机器学习和数据处理)具有更好的GPU支持。NVIDIA ISAAC机器人平台也支持称为GEM的软件模块。这些模块可使开发者快速向机器人添加功能,例如关键字检测,LIDAR,立体视觉和预先训练的神经网络视觉识别系统。ISAAC模拟器还运行在虚幻引擎4的增强版上,虚幻引擎4是一个开放源代码游戏引擎,可为PC和控制台上的某些顶级视频游戏提供支持。NVIDIA ISAAC机器人技术平台和虚幻引擎都是开源平台,因此,如果是经验丰富的C++程序员,则可以使用自己的自定义代码来增强其功能

Robot Virtual Worlds

Robot Virtual Worlds是功能齐全的模拟器,可让用户对虚拟LEGO Mindstorms机器人进行编程。它具有免费试用版,或者,如果想使用所有高级选项,则可以升级并支付完整的许可证费用。该模拟器的主要目的是用作教育平台,向年轻人介绍机器人技术的基础知识。它具有内置的3D仿真器,可以在其中构建和测试LEGO机器人,然后在类似游戏的环境中竞争挑战。Robot Virtual Worlds还支持使用NXT-G或LabVIEW对LEGO Mindstorms机器人进行编程。还可以使用内置扩展系统在模拟器中创建自定义机器人模型或级别。该模拟器对于教师也非常有用,因为“机器人虚拟世界”提供了适合所有年龄和技能水平的学生的课程。教师还可以设置各种机器人竞赛,以在完全虚拟的环境中挑战和评估学生。

Microsoft Robotics Developer Studio
Microsoft Robotics Developer Studio可用于在3D模拟环境中创建,测试和开发各种机器人。由于它是由Microsoft制造的,因此只能在Windows操作系统上运行。它支持大多数机器人平台,例如LEGO Mindstorms,VEX,并且还支持不同类型的传感器。 不幸的是,微软关闭了机器人研究部门,而对MRDS的支持却很少。发布的最终版本是Microsoft Robotics Developer Studio 4,并且看起来微软在可预见的将来不会更新MRDS。

猜你喜欢

转载自blog.csdn.net/hai411741962/article/details/134733853