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


主流的开源自动驾驶仿真框架,现在都是利用vc加UE4来构建,最近调研了一些仿真框架,重点研究了AirSim加UE4 以及Carla加UE4的解决方案,在建立编译环境及制作仿真环境和使用时,走了很多坑,在此进行一个简单的总结。

我是在Win10 64平台上建立的,其他平台这里就不讲了,自动驾驶仿真平台,大部分又要具备开源库的编译能力,又要具备优异式引擎的使用,对一些模型动画,蓝图脚本等有一定了解,具备一些综合能力知识才能玩得转,

AirSim篇

编译AirSim,前提是VS2019和UE4要装好。 2019要使用在线安装最新版本,我先是用了一个网盘的离线版本安装,编译就有问题,走不过去。

  1. VS2019要最新版,在 cmake -G能看到 16 2019的生成器

image.png

  1. VS2019 安装时,要选择 UE4 install组件,即使先装了UE4也要选,才能关联
  2. VS里面要把Block选择为默认启动项目
  3. VS编译完成,F5执行,转到UE4启动,加载项目编译,可play运行

AirSim只是一个单纯的自动驾驶仿真中间层,提供了一些车对象控制,和车身信息获取的接口,要把他用好,还需要自己做不少工作。

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

2 学会替换汽车模型 (缺省只有一个SUV模型),这个最麻烦,因为汽车并非仅仅一个模型,还有动力学参数,骨架设置,动画蓝图设置,碰撞体设置等诸多资源,才能构成一个可控制的车

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

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

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

Carla篇

所有的编译需要按严格按照官方的这个环境配置来做,一点侥幸心理都不要有,

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

卡拉的编译首先需要安装一些前置软件和环境, https://carla.readthedocs.io/en/latest/build_windows/

Necessary software

  • Minor installations: CMake, git, make, Python3 x64
  • Visual Studio 2017
  • Unreal Engine 4.24

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

自己去官网下载最新版。

大软件, VS2017和UE4.24 zhe

我遇到的坑

1. 首先我装的vs环境是2019,第1个是CMake,2019是自带的,但是版本不是最新的,我觉得2019自带的我就不用装了,但是在编译时出就报错,老老实实去下载最新的装好,这个报错就过去了。

2. 接着的坑是,在编译的时候会去下载一些第三方库进行编译,最近的网络访问外网很差,两三兆的库有时候都会下载失败,倒不是被墙,而是下载太慢,时间长了就会中断,要么搭梯子,要么看运行的时间段

我尝试跳过自带的批处理去手动下载包,然后安装编译调试,但是很难和安装脚本匹配,建议还是循规蹈矩.

3. 这是我遇到的最大的坑,就是安装环境要求的是vs 2017., Cmake -G的参数是 " Visual Studio 15 2017 Win64", 虽然我装的是2019,但在20119的安装配置里面,也是可以同时装上2017的编译环境的,所以我一直都觉得,我只要在VS2019中把2017的编译库也都装好,是可以用的,但是CMake始终不认2017配置,无奈我只能手动把脚本里面的2017配置改成2019,这样各种第三方库倒是全部编过了,但在编译Carla自己库的时候,却报错了,所以这种歪门邪道不能解决问题。

最后老老实实重新再安装一个vs2017,按照文档的要求选择相关编译库和SDK装好,再编译第三方库和自带的库就一切顺利了。

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

F:/Project/UE4/carla/carla-master2017/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServer.cpp(18): fatal error C1083: 无法打开包括文件: “carla/Version.h”: No such file or directory

这个只能通过手动方式,我在LibCarla\source\carla下面找到Version.h.in这个文件,拷贝到Unreal\CarlaUE4\Plugins\Carla\CarlaDependencies\include\carla 下面,改名Version.h, 再编译算过了

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

但第一次启动等很久,在UE4这个39%的进度条下起码等了40分钟左右,CPU占用率也不高,一度以为程序崩溃了,看任务管理器,又好像没崩溃。

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

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

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

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

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

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

着色器编译一部分后,场景要好看多了,也可以运行,但是缺省运行只是个空场景,可以漫游,

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

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