Advertisement

自动驾驶仿真环境创建 Carla 和AirSim

阅读量:

目前主流的开源自动驾驶仿真框架多采用VC与Unity Engine 4(UE4)相结合的方式进行搭建。近期对仿真框架进行了深入调研,在AirSim与UE4以及CARLA与UE4的基础上进行了深入研究。在环境搭建、测试优化以及使用体验方面积累了宝贵经验,并在此基础上形成了初步总结。

基于Windows 10 64位平台构建

AirSim篇

若需编译AirSim,则必须确保VS2019和UE4均已安装好;其中,在安装过程中需特别注意的是2019版本需要通过在线渠道获取最新的系统包;我最初尝试使用了一个网络外部存储(如网盘)提供的离线版本进行安装;但这种做法导致编译过程中出现故障无法正常运行。

  1. VS2019要最新版,在 cmake -G能看到 16 2019的生成器
image.png
  1. 安装VS2019时,请选择UE4安装组件配置(即使已经安装了UE4也需要配置以便实现关联)。
  2. 在VS中需要将Block设置为默认启动项目。
  3. 当VS编译完成后执行F5操作转至UE4启动并加载项目的编译文件即可直接播放运行。

AirSim仅仅是一个基础性的自动驾驶仿真中间层,在提供车辆对象控制功能的同时也包含了车身信息获取相关的接口。要真正发挥其作用还需进行相应的开发工作。

1. 学会替换场景。这个较简单,但也有些小坑

掌握更换汽车模型的技术(通常只提供单一的SUV版本)。这一项工作非常繁琐。因为一辆汽车不仅只是一个单一型号,并且还需要配置动力学参数、 skeletal setup、 animation blueprint settings以及 collision body configuration等众多组件才能成为一个易于操作和控制的对象。

3. 掌握Py脚本控制场景中对象的方法

3. 掌握设置传感器,并获取传感器数据

如下,我基于AirSim换了场景换了车,可同时控制7种不同的车

Carla篇

所有编译工作;切勿抱有任何侥幸心理。

严格按照官方的要求配置,你可能蹭蹭蹭,很顺利的就能完成编译。

在卡拉的编译过程中,在编译阶段需要预先配置一些先决软件和环境设置,请参考文档:https://carla.readthedocs.io/en/latest/build_windows/

Necessary software

  • 常用安装项:CMake、git、make、Python3 x64
    • VS 2017 开发环境
    • Unreal Engine 4 开发平台

小软件: CMake, git, make, Python3 x64

自己去官网下载最新版。

大软件, VS2017和UE4.24 zhe

我遇到的坑

最初安装的Visual Studio开发环境选择的是2019版,默认情况下它属于预装组件。然而其版本并非当前最新型态。基于此考虑,我决定不再安装默认版本,在编译过程中会遇到相应问题。为了规避这个问题建议及时更新至最新版本以避免出现此类错误。

在编译过程中会自动下载并安装一些第三方库;近期由于网络环境较差的原因, 通常体积较小(如几百或几千兆)的外网资源偶尔会出现无法下载的情况;并非因为被防火墙拦截, 而是因为加载速度较慢, 长时间未响应可能会导致连接中断;建议可以通过搭建代理服务器来绕过限制, 或者可以关注该应用启动时的具体时间段

为了节省时间,我选择了不依赖系统提供的批处理工具来手动下载软件包。随后完成了软件的安装、编译和调试步骤。然而,在与现有的安装脚本相协调方面遇到了困难。因此,遵循既定的操作流程更为合理。

3. 这是我遇到的最大困扰,就是安装环境要求必须是Visual Studio 2017版本。在Cmake构建时,默认会使用系统中的Visual Studio版本参数,并建议使用" Visual Studio 15 2017 Win64"这一特定设置。尽管我的电脑上安装了Visual Studio 2019编译器,在其安装配置中也是允许同时存在多个不同版本的编译环境的。因此我曾以为只要在我的Visual Studio 2019项目中正确配置好所需的各种编译库,在构建Carla源代码时就能顺利运行。然而事实证明这并不奏效——CMake始终无法识别2017年的配置文件。无奈之下我只得尝试将脚本中的相关设置从2017年版本改为2019年版本以简化问题。但即便如此,在构建Carla自建库时却遇到了错误。

最终稳妥地重新安装一次vs2017。按照文档指示选择所需的编译库及相关SDK进行安装。之后依次编译第三方依赖库及内置内核 library便顺利完成了整个过程。

4. 我编译到最后出现一个问题,提示一个文件没找到

F:/Project/UE4/carla/carlasmaster2017/Ureal CarLa/CarLa Master 2017 Plugins Carla Source Carla Server FrontendServer.cpp (18): fatal error C1083: 无法定位包含文件 carlA\Version.h

此操作必须采用手动方式进行。具体来说,在位于LibCarla\source\carla的目录中找到Version.h.in这个源文件,并将其复制至Unreal Engine 4的插件目录Carla下指定位置(即Unreal\CarlaUE4\Plugins\Carla\CarlaDependencies\include\carl),然后重命名为Version.h即可完成该功能。之后重新编译即可完成该功能。

5. 编译脚本全部通过过后,最后会启动UE4

然而在UE4环境下首次启动时却耗时很久,在界面进度条停留在39%的位置大约等待了四十分钟以上。值得注意的是此时计算资源使用率依然较低曾短暂怀疑程序出现了故障但通过查看任务管理器确认并未出现崩溃迹象。

大概40分钟左右,进度条变为45%,再等5分钟,到95%,CPU和内存占用率开始飙升

UE4应该是在编译工程, 只要没崩溃,就等吧

终于进入场景,开始进行场景构建和着色器编译

自带地图是个不大不小的场景,基本的交通场景模拟应该够了

最终,着色器没有编完就挂了,我的PC已经不弱了,UE4就是不太稳定

挂了没关系,杀掉UE4重启再打开工程就好,现在打开工程就快多了

编译后

看看着色器全部渲染完的效果

Carla自带了8个场景,后面再慢慢研究

全部评论 (0)

还没有任何评论哟~