CARLA
CARLA 是一个开源模拟器,它使自主驾驶研究领域平民化。模拟器是开源的,是基于虚幻引擎开发的。它是一个模块化和灵活的工具,配备了强大的API来支持ADAS系统的培训和验证。因此,CARLA试图满足ADAS各种用例的要求,例如训练感知算法或学习驾驶策略。CARLA是基于虚幻引擎从头开发的,用于执行模拟,它利用OpenDRIVE标准定义道路和城市设置。CARLA API可由用户自定义,并提供对模拟的控制。它是基于Python和C++的,它与项目的生态系统不断地生长,这个项目是由社区围绕主平台构建的。
CARLA由可扩展的client-server 体系结构组成。与仿真相关的任务部署在服务器上,包括世界状态及其参与者的更新、传感器渲染和物理计算等。为了生成逼真的结果,服务器应使用专用GPU运行。客户端由一些客户端模块组成,这些模块控制出现在场景中的代理(包括行人、车辆、自行车、摩托车)的逻辑。此外,客户端模块还负责世界条件设置。所有客户端模块的设置都是通过使用CARLA API实现的。车辆、建筑和城市布局是CARLA提供的开放式数字资产。此外,还支持不同天气条件和传感器套件灵活规格等环境条件。为了加速查询(例如道路上最近的航路点),CARLA使用RTrees。
在最新版本中,CARLA拥有更精确的车辆体积和更真实的核心物理特性(如车轮摩擦、悬架和质心)。这在车辆转弯或发生碰撞时非常有用。此外,通过利用OpenDRIVE文件提供的信息,将交通灯和停车标志添加到场景的过程已从手动更改为自动。
CARLA提出了一个基于RSS库的安全保证模块。该模块的职责是根据传感器信息保持车辆控制。换句话说,RSS根据传感器数据定义各种情况,然后根据安全检查确定适当的响应。情境描述了自我载体与环境元素的状态。利用OpenDrive信号,RSS模块可以考虑不同的路段,有助于检查路口的优先级和安全性。
Gazobe
Gazebo是一款开源、可扩展、灵活的多机器人3D模拟器。它在多种操作系统上都受支持,包括Linux和Windows。它支持室内和室外3D环境。
Gazebo依赖于三个主要的libraries,包括物理、渲染和通信library。首先,物理库允许用户定义模拟对象的物理属性,如质量、摩擦系数、速度、惯性等,从而使模拟对象的行为尽可能真实。Gazebo使用开放式动态引擎(ODE)作为其默认物理引擎,但它也支持其他引擎,如Bullet,Simbody和动态开源物理引擎(DART)。其次,对于可视化,它使用了一个称为面向对象图形渲染引擎(OGRE)的渲染库,这使得可视化动态3D对象和场景成为可能。第三,通信library使露台的各种元素之间能够进行交流。除了这三个核心库之外,Gazebo还提供插件支持,允许用户直接与这些库通信。
有两个核心元素定义任何3D场景。在Gazobe术语中,这些被称为world和model。世界用于表示三维场景,可以是室内或室外环境。它是一个用户定义的模拟描述文件(SDF)格式的文件,具有点域扩展名。世界文件由一个或多个模型组成。此外,模型是任何三维对象。它可以是静态对象,如桌子、房子、传感器、机器人或动态对象。通过以SDF格式定义对象的视觉、惯性和碰撞特性,用户可以从零开始自由创建对象。或者,他们可以定义插件来控制仿真的各个方面,例如,世界插件控制世界属性,模型插件控制模型属性等等。值得注意的是,Gazobe拥有广泛的社区支持,这使得共享和使用他人已经创建的模型成为可能。此外,它还有维护良好的文档和大量教程.
最后,Gazebo是一个独立的模拟器。然而,它通常与ROS结合使用。Gazebo支持几乎所有类型机器人的建模。Demo of prius in ros/gazebo介绍了一个复杂的场景,展示了Gazebo的高级建模能力,该场景模拟了普锐斯混合动力汽车在模拟M城市中行驶的模型。
LGSVL
LG电子美国研发中心(LGSVL)是一个多机器人AV模拟器。它为AV算法提出了一个开箱即用的解决方案,以测试自主车辆算法。它集成到一些平台上,使整个系统的测试和验证变得容易。模拟器是开源的,基于Unity游戏引擎开发。LGSVL为AD stack和模拟器主干之间的消息传递提供了不同的桥梁。
模拟器有不同的组件。为AV开发者提供开发、测试和验证平台的用户AD stack。模拟器支持ROS1、ROS2和Cyber RT消息。这有助于将模拟器与Autoware和百度阿波罗连接起来,后者是最流行的AD stacks。此外,多个AD模拟器可以通过ROS和ROS2桥接器(用于Autoware)和定制桥接器(用于百度阿波罗)与模拟器同时通信。LGSVL模拟器利用Unity的游戏引擎,帮助生成基于高清渲染管道(HDRP)技术的照片逼真的虚拟环境。模拟引擎为模拟环境模拟(交通模拟和物理环境模拟)、传感器模拟和车辆动力学提供了不同的功能。模拟器提供了一个Python API来控制不同的环境实体。此外,传感器和车辆模型通过设置JSON文件来提供一组可定制的传感器,该文件支持内部和外部参数的规范。模拟器目前支持摄像机、激光雷达、IMU、GPS和雷达。此外,开发人员可以定义定制的传感器。模拟器提供了各种选项,例如分段和语义分段。此外,LGSVL还提供功能样机接口(FMI),以便将车辆动力学模型平台集成到外部第三方动力学模型中。最后,基于3D环境指定天气条件、白天时间、交通代理和动态参与者。LGSVL的一个重要功能是从3D环境导出高清地图。
分析
- 观察1:LGSVL和CARLA最适合对自驾汽车提供的独特功能进行端到端测试,例如感知、地图绘制、定位和车辆控制,因为它们支持许多内置的自动化功能。
- 观察2:Gazebo是一种流行的机器人模拟器,但创建动态场景所需的时间和精力并不能使其成为测试自动驾驶汽车端到端系统的首选
- 观察3:MATLAB/Simulink是测试上层算法的最佳选择之一,因为Simulink中清晰显示了逻辑块。此外,它有一个快速绘图功能,使其更容易进行结果分析。
- 观察4:CarSim专门从事车辆动态模拟,因为其完整的车辆库和各种可调车辆参数。然而,它以高效的方式构建定制的上层算法的能力有限。
- 观察5:PreScan具有构建真实环境和模拟不同天气条件的强大能力。