模拟汽车与gta5,最近一项关于模拟汽车驾驶的开源平台,引起了广泛的关注和讨论。这一平台允许用户在虚拟环境中体验真实的驾驶感受,甚至可以与全球的玩家实时对战。而与之相比,知名游戏GTA5的驾驶模拟也备受追捧。但这两种仿真体验的性能如何?近日针对这个问题,一份详尽的性能测试报告发布了出来。该报告详细评估了这两种模拟场景在处理实时数据、网络连接和图形渲染等方面的表现,并对其进行了综合分析。让我们一起来看看这份报告带来了哪些有趣的发现。
开源驾驶仿真平台性能测试报告
作为一个贫穷的研究人员,我心目中理想的驾驶仿真器是这样的(优先度排列):
免费,容易获得;能在Linux系统下运行;持续更新:一个驾驶仿真器少说也有几十GB,安装不易,自然不想天天换来换去,最好能在三到五年内不被淘汰;用户友好的交互接口;提供绝大多数主流的数据模态;用户基数大:报错了有成熟的社区一起解决问题;环境配置的要求不要太变态,或者有对应的docker;软件稳定,不会轻易崩溃;画面美观:做论文demo效果会比较好;描绘出理想的模样,就该开始找候选人了。《2020年自动驾驶仿真蓝皮书》基本把现有的驾驶仿真器都列举了一遍,经过快速的检查,首先排除以下商业仿真平台:
CarSim, CarMaker, Cognata, rFpro, VTD, AAI, TAD Sim (腾讯,未找到开放网址), Metamotor (2020年被收购), GaiA, 51Sim-One, PanoSim, Parallel Domain (这个的demo是真的好看), CarCraft (Waymo内部使用,不对外开放), VI-WorldSim, PTV Vissim
许愿一个大佬测评以上软件,如果大家众筹让我测评也不是不可以(手动狗头)。

顺带一体,所有基于GTA V的仿真器似乎在几年前已经被R星叫停了,考虑到版权因素,应该在有发表需求的研究里是不能用了(但私底下谁不想拿它玩一玩呢)。
在剔除了海量精美的付费软件之后,清单上剩余的免费/开源仿真器就屈指可数了。

接下来,将从应用场景,用户体验,安装难易度等方面对这些软件进行测评,部分仿真器提供视频展示(流量预警)
测试环境:Ubuntu 18.04 + CUDA 11.2 + NVIDIA Driver 470.57.02
硬件配置:i9-10900X CPU + 64GB RAM + RTX 2080 Super GPU (8GB)
警告个人精力有限,测评不可避免存在疏漏和主观意见。欢迎交流讨论。不推荐复现此次测评。因为几款仿真器使用的虚幻引擎版本均不同且不互相兼容,而低版本的虚幻引擎在环境配置时单纯刷新source ~/.bashrc 会出现问题。文中会提及安装软件时的一些注意点,但具体流程还请以官方为主。CARLA仿真器简介:Carla是一个开源的驾驶仿真器,由C++ 和虚幻引擎构成。通常适用于驾驶决策仿真任务。可输出的数据模态包括图像,激光雷达,雷达,语义,GPS,IMU等,可自由配置。
安装指南:CARLA Simulator
Carla官方的安装文档已经非常成熟了,如果只是运行仿真器,下载可运行程序就够了。想自己折腾的就从源码开始编译,我写文章的时候0.9.12还不够稳定,推荐0.9.11,无脑跟教程走只会遇到一个bug。就是make build的时候libboost目前调用的是1.72.0版本:
首先,你需要手动下载boost-1.72.0的压缩包;其次,如果你在编译过程中遇到了什么字符相关的库找不到的报错,可能是因为boost-1.72.0某些版本中这个悲伤的bug导致的,就是自定义的函数命名和默认C语言库起了冲突(大致是这个原理,具体细节还请放过一个三年没写C的孩子)。处理方法要参考这里,解压boost-1.72.0,将自定义的string.h 和调用这个库的所有地方改成其他名字,然后再打包,扔到<carla path>/Build 下面;最后,记得在<carla path>/Util/BuildTools/setup.sh 的对应行进行修改,以防build过程中自动删了你改过的包。
如果是走Linux Build路线又想要可直接运行的./CarlaUE4.sh,在make launch成功后跑一下make package就行了。这一个细节不知道为什么官方文档上写得不是特别清楚,可能是他们觉得太简单,我们可以自行领悟吧。
用户体验:
在体验完一圈驾驶仿真器之后,看到CARLA我真是感动得泪流满面,简直是出走后四处碰壁的游子回到了温暖的家。经典果然还是经典,CARLA的动力学仿真确实是所有仿真器中最正常的,天气系统和NPC的行为也非常正常,应该是一直在优化的。基本上驾驶决策常用的数据模态都有提供(事件相机和红外相机没有,这是AirSim的独门绝技),获取也很方便,总之一句话,赞美CARLA。
仿真器展示:
# 因为是自己编译的./CarlaUE4.sh,先进入./Dist找到文件 ./CarlaUE4.sh # 启动服务器端 # 然后因为懒,就跑跑<carla path>/PythonAPI/examples 吧,以下每条指令单独开一个窗口。 python3 ./dynamic_weather.py python3 ./spawn_npc.py python3 ./synchronous_mode.py python3 ./open3d_lidar.py

仿真器简介:SUMO 全称 Simulation of Urban MObility,是一个开源的驾驶仿真器,主要用于交通流仿真,也可用于车间通讯仿真、验证交通模型等任务。
安装指南:sudo apt-get install sumo sumo-doc sumo-tools
仿真器部分功能展示:
最开始,看到这个软件简陋的界面时,我以为大概没什么好说的,然而,很快,我看到了前人的SUMO使用心得。对不起,是我头抬得太高了。
【SUMO仿真文档】_妈妈说不要造轮子-CSDN博客
【SUMO使用技巧】_妈妈说不要造轮子-CSDN博客
由于SUMO的仿真任务和我没有太大关联,而且仿真大程度上依赖于用户自己导入的数据。而我手头暂时没有,所以就放一张从OpenStreetMap导入到SUMO的地图吧~

看起来很简陋?放大地图后,每个路口的细节都标注得一清二楚。我开始心动了。

而从2020年开始,CARLA开始支持和SUMMO,VISSIM 联合仿真。我觉得自己好了,自己行了,下一期测评就它吧(如果没有教程的话可以考虑写一版了)。

码着,过两周有空再写。计划要用RoadRunner和CARLA快乐联动,不过好像地图太大会导入事故,反正卫星先放着。
LGSVL仿真器简介:这是由LG公司基于Unity开发的驾驶仿真器。适用于驾驶决策任务。输出的数据模态包括图像,激光雷达,雷达,语义,GPS,IMU等,可以通过json文件自由配置。
安装指南:Installation procedure - SVL Simulator
确认配置符合要求之后,直接下载即可。Linux下记得右键性质,允许程序运行。
用户体验:
从可视化交互界面的角度来说,LGSVL是做的最好的。一键变天,一键加传感器,包括上传代码,全部可以在网页界面完成。但是呢,车的动力学着实有点迷惑,您的车是完全没有摩擦力的吗?按下前进键之后,即使松开,地面也仿佛没有摩擦力一般,车辆会一直保持匀速前进。但是如果想用这个仿真器来做模仿学习,录入数据大概会很痛苦。点云的仿真很有问题,肉眼可见的有误差。npc也是非常迷惑,比如,骑自行车的人比开车的还快;过马路的时候只要绿灯了,npc车辆就直接从npc附近碾过去。而目前还没有提供改npc的接口。此外,目前提供的地图还太少了。如果再过几年,可能会成长成一个厉害的仿真平台,目前只能持观望态度了。
仿真器展示:

仿真器简介:由百度-阿波罗开发的驾驶仿真平台。少数既可以在线仿真,也可以自己电脑安装运行的仿真器。适用于驾驶规划仿真,路径预测等任务。
安装流程:
在线的跟着用户指南走就好了。电脑安装的流程参考官方文档(文档放Github路径里也是够难翻)。需要注意的是,因为必须通过docker安装,为了防止各种奇奇怪怪的报错,最好还是把docker运行权限改一下。不加 sudo 执行 Docker 命令用户体验:
革命尚未成功,同志仍需努力。离成为一款成熟的仿真器,Apollo还有很长时间要走。官方提供的场景比较少,大型地图屈指可数,文档支持也不够完善。封装得比较严实,不过改地图,放npc的自由设置空间还是有的。再过几年,还是有潜力成长成一个优秀的仿真器的。
仿真器展示:
LGSVL x Apollo 联合仿真适用任务:驾驶决策规划仿真
听起来还不错,这俩一个规划仿真一个决策仿真,说不定能互补。但是,对电脑配置要求很高!官方说8GB的显存能带得动,但实际操作下来,我觉得这个体验报告还是请显存10GB以上的兄弟们去做吧。
此外,虽然据说Apollo官方在6.0版本中已经修好了桥接的脚本,但我不知为何还是跑不起来。要和Apollo 5.0以下的版本联动,需要下载LGSVL魔改版的Apollo。虽然我的桥接根据运行log证明是跑起来了,但实际上又动不起来,一言以蔽之,这个功能还在开发中,容易出错,最好再观察几年,贸然跳坑容易踩雷。

仿真器简介:由微软开发的仿真器,基于虚幻引擎。主要面向无人机仿真,也提供了驾驶仿真的接口。适用于驾驶决策仿真任务。输出的数据模态包括GPS,IMU,RGB图像,深度图,语义分割,红外相机,事件相机,点云(需要额外配置)。
安装指南:Welcome to AirSim
用户体验:
安装流程非常简单,直接跟着官网教程走就好了。下载封装好的包,Linux用户还可以选择源码编译(注意UE4版本一定要和官网要求的一致!)延续了微软一向的风格,封装过于严密,自定义地图,NPC,天气都不可行。接口调用比较简单,容易上手。这款仿真器更适合Windows系统用户。Github上提供的地图适用于驾驶仿真的寥寥无几,而虽然AirSim可以从Unreal Engine Market中获取更多可用于自动驾驶的地图,其中绝大多数都只兼容Windows,最终导致在Linux中适用于自动驾驶任务的只有一款非洲大草原。

仿真器展示启动任意地图都会加载setting.json 文件的配置,子窗口的内容需要按0 才会显示。

展示视频对应的配置文件如下,三个子窗口分别对应深度图,语义分割图,和视差图。
{ "SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/master/docs/settings.md", "SettingsVersion": 1.2, "SimMode": "Car", "OriginGeopoint": { "Latitude": 47.641468, "Longitude": -122.140165, "Altitude": 122 }, "TimeOfDay": { "Enabled": false, "StartDateTime": "", "CelestialClockSpeed": 1, "StartDateTimeDst": false, "UpdateIntervalSecs": 60 }, "SubWindows": [ {"WindowID": 0, "CameraName": "0", "ImageType": 3, "VehicleName": "", "Visible": false, "External": false}, {"WindowID": 1, "CameraName": "0", "ImageType": 5, "VehicleName": "", "Visible": false, "External": false}, {"WindowID": 2, "CameraName": "0", "ImageType": 6, "VehicleName": "", "Visible": false, "External": false} ], "SegmentationSettings": { "InitMethod": "", "MeshNamingMethod": "", "OverrideExisting": true }, "DefaultSensors": { "Lidar1": { "SensorType": 6, "Enabled" : true, "NumberOfChannels": 4 }, "Distance": { "SensorType": 5, "Enabled" : true, "Yaw": 0, "Pitch": -90, "Roll": 0 }, "Imu": { "SensorType": 2, "Enabled" : true } } }SUMMIT
论文:SUMMIT: A Simulator for Urban Driving in Massive Mixed Traffic
适用任务:驾驶决策仿真
输出数据:RGB图像,点云,深度图,语义分割,碰撞判定等,CARLA有的它都有。
安装指南:Ubuntu 20.04安装基于CARLA的SUMMIT无人驾驶仿真平台
不建议在20.04上安装,可能会因为clang版本出现大问题。Ubuntu 18.04/16.04挺好的。
用户体验:

在测评开始之前,我期望值最高的一款仿真器就是SUMMIT,按照论文所宣称的,这是“CARLA的改进版“,”能够模拟更为复杂的交通情况“,”利用SUMO轻松导入世界地图“。而实际情况呢?这款软件很大程度上照搬了CARLA 0.9.8,对应了两年前的UE4.22,这一前置条件已然导致了虚幻引擎在现有的Ubuntu上闪退概率更高。而在我千辛万苦装上之后,原创的demo程序一个也跑不起来,根据写得奇烂无比的官方文档——我第一次看到民间教程能比官方写得更详细靠谱的,只能模模糊糊猜它的地图导入方法——依旧繁琐复杂。最终,不祥的预感在我查到了论文的发表时间时达到了顶峰,2020年ICRA accept,大概从投稿之后,作者就没有再积极地维护过整个路径,最新的更新(2021.01)只是改了改依赖的SUMO版本和PythonAPI中的小细节。可以看出,作者根本没有随着引擎更新和CARLA更新进度改进仿真器的动力。对于任何试图长期使用这款仿真器的人来说,这都是一个危险的信号。
仿真器展示:在导入地图方面不如预计的方便,所以就用默认地图随便展示一下。关于这款仿真器真的没什么好说的,总之完全不推荐,无论你的任务是什么都不推荐,除非以后SUMMIT的作者还有更新的诚意,或者有可爱的学弟学妹求我,否则我绝对不会再浪费任何时间来讨论SUMMIT。

Term 1 - 车道保持;Term 2 - 轨迹定位 & 追踪;Term 3 - 高速场景下的轨迹规划。
适用任务:驾驶决策任务体验与教学
安装指南:
安装Unity Hub;从Github上按需求下载Term 1, 2, 3;[Ubuntu] 解压文件,进入文件夹,右键将**.x86_64 的权限改为允许运行;双击**.x86_64运行。如果顺利的话,会看到这样的界面,选择分辨率和画质,然后就能开始仿真了。

用户体验:
作为一款和在线课程绑定的驾驶仿真平台,Udacity的优点和缺点都很明显:安装最为方便快捷,几乎对电脑配置没有要求。另一方面,场景少得可怜,动力学模拟差到悲伤。只适合用于了解自动驾驶决策模型的设计原理和流程,无法实际应用。
此外,Udacity有一个致命问题,它在Ubuntu下并不稳定。我是并行安装所有平台的,结果刚打开最先安装好的Udacity,它就快乐地崩了,电脑重启,我10+GB的内容全部得重新下载(╯-_-)╯╧╧
仿真器展示
三个Term对应着不同的课程任务。
Term 1 是车道保持任务,支持键盘和程序两种控制模式,一共有两张地图。车辆可前进、左右转和倒车,前进最高限速30MPH。手动控制手感不是很好,容易翻车——如视频展示,我目前为止没能在第二张地图里成功跑完过一圈。

Term 2 好像是轨迹定位/追踪?没有找到控制方法,好像只是单纯的数据输出。仿真器只有输出激光雷达和雷达数据的过程。基础任务的运行如视频所示。进阶任务是追赶前方车辆。你追,它逃,大家插翅难飞~

Term 3 是轨迹规划任务。手动控制方法和Term 1一样,也有程序控制接口。给大家展示一下看起来不太聪明的NPC们:只要我不动,它们就会自动乱成一团。
TORCS适用任务:驾驶决策任务体验与教学
仿真器简介:TORCS本职是一款游戏,但是优秀的前辈们通过各种蛇皮操作,让它同样可以应用于驾驶仿真中。最开始,我对TORCS非常嫌弃,这都1202年了,怎么还有人会用这种分辨率的软件。但是,考虑到现实中,很多本科生是买不起显卡的,而这是为数不多不需要显卡就能跑的仿真器,还拥有过相当大的用户基数和多样的地图库,所以,对于特定人群来说,这个仿真器恐怕还是无可替代的。
安装流程:Ubuntu18.04搭建 TORCS无人驾驶训练 开发环境
gcc版本如果太高会编译失败,我用gcc-5过了,注意,Ubuntu 20.04不支持低于gcc-7的版本。
仿真器展示:

经过多次测试,我们的模拟汽车与gta5 开源驾驶仿真平台表现出色,不仅能够在不同环境下顺畅地运行,还拥有极高的精度和稳定性。我们将继续不断优化和完善,让更多使用者能够享受到这款出色的仿真平台带来的便利和乐趣。