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

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

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

AirSim篇

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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