CARLA是一个开源的自动驾驶模拟器。它是从头开始构建的,用作模块化和灵活的API,以解决自动驾驶问题中涉及的一系列任务。 CARLA的主要目标之一是帮助自动驾驶研发民主化,它是一种易于用户使用和定制的工具。为此,模拟器必须满足一般驾驶问题(例如学习驾驶策略,训练感知算法等)内不同用例的要求。 CARLA基于Unreal Engine来运行模拟,并使用OpenDRIVE标准(今天为1.4)定义道路和城市环境。通过使用Python和C ++处理的API授予对模拟的控制权,该API随项目的发展而不断增长。
为了简化开发,培训和验证驾驶系统的过程,CARLA演变成由社区围绕主要平台构建的项目生态系统。在这种情况下,重要的是要了解有关CARLA如何工作的一些知识,以便充分理解其功能。
CARLA官方文档
CARLA仿真器由可扩展的客户端-服务器体系结构组成。
服务器负责与仿真本身相关的所有事情:传感器渲染,物理计算,世界状态及其参与者的更新等等。 由于它旨在获得逼真的结果,因此最合适的方法是使用专用GPU运行服务器,尤其是在处理机器学习时。
客户端由一些客户端模块组成,这些客户端模块控制场景中演员的逻辑并设置世界条件。 这可以通过利用CARLA API(Python或C ++)来实现,CARLA API是在服务器和客户端之间进行中介的层,该层不断地发展以提供新的功能。
·交通流管理:除了用于学习的系统外,还内置了一个控制车辆的系统。它作为CARLA提供的指挥者,以逼真的行为再现城市般的环境。
·传感器:车辆依靠它们来发布周围环境的信息。在CARLA中,它们是附着在车辆上的一种特殊的行为体,它们接收到的数据可以被检索和存储,以简化这一过程。目前该项目支持不同类型的传感器,从摄像头到雷达、激光雷达等等。
·记录器:此功能用于为世界上的每个演员一步步重演模拟。它允许访问世界上任何地方的时间线中的任何时刻,是一个很好的追踪工具。
·ROS bridge和Autoware实施方法:作为一个普遍化的问题,CARLA项目结和致力于将模拟器整合到其他学习环境中。
·开放性资产:CARLA为城市环境的不同地图提供便利,并对天气条件进行控制,同时提供一个蓝图库,其中有大量的行为者可供使用。然而,这些元素可以定制,并且可以按照简单的准则生成新的元素。
·场景运行器:为了简化车辆的学习过程,CARLA提供了一系列描述不同情况的路线,供大家迭代。这些也为CARLA挑战赛奠定了基础,开放给大家测试自己的解决方案,并进入排行榜。
CARLA快速而稳定地发展,扩大了所提供的解决方案的范围,并为自动驾驶的不同方法开辟了道路。在这样做的同时,它从未忘记自己的开源性质。该项目是透明的,就像一个白盒子,任何人都可以访问工具和开发社区。在这种民主化中,CARLA找到了自己的价值所在。
要执行下面的make命令,必须使用具有管理员权限的Visual Studio 2017原生控制台x64,否则可能会出现权限错误。!!! 重要 要执行下面的make
命令,您必须使用Visual Studio 2017 native console x64 具有管理员权限,否则可能会出现权限错误。
# Make sure to meet the minimum requirements
# Necessary software:
# CMake
# Git
# Make
# Python3 x64
# Unreal Engine 4.24
# Visual Studio 2017 with Windows 8.1 SDK and x64 Visual C++ Toolset
# Set environment variables for the software
# Clone the CARLA repository
git clone https://github.com/carla-simulator/carla
# make the CARLA client and the CARLA server
make PythonAPI
make launch
# Press play in the Editor to initialize the server
# Run example scripts to test CARLA
# Terminal A
cd PythonAPI/examples
python3 spawn_npc.py
# Terminal B
cd PythonAPI/examples
python3 dynamic_weather.py
# The PythonAPI will be built based on the installed Python version
# The docs will use Python3, as support for Python2 was provided until 0.9.10 (not included)
·x64系统:仿真器需要运行64位系统
·30gb硬盘空间:安装所有需要的软件和CARLA将需要相当大的空间。确保有30/50GB左右的可用磁盘空间。
·GPU:CARLA的目标是真实的模拟,所以服务器至少需要4GB的GPU。对于机器学习,强烈建议使用专用GPU。
·两个TCP端口,良好网络状态:端口默认为2000和2001。 确保防火墙和任何其他应用程序都没有阻止它们。
**·CMake:**从简单的配置文件生成标准的构建文件。
**·Git:**管理CARLA存储库的控制系统。
**·Make:**生成可执行文件
**·Python3 x64:**主要的脚本语言
Visual Studio 2017
从这里获取2017版。社区是免费版本。使用Visual Studio安装程序安装两个额外的元素。
·Windows 8.1 SDK
**·x64 Visual C++ Toolset:**在Workloads section,选择 Desktop development with C++.
注意:其他版本的Visual Studio 可能会引发错误。完全卸载Visual Studio,请在Program Files (x86)\Microsoft Visual Studio\Installer\resources\app\layout
目录运行.\InstallCleanup.exe -full
进入虚幻引擎网站并下载Epic Games Launcher。在Engine versions/Library
,下载Unreal Engine 4.24.x。确保运行它以检查所有的东西是否正确安装。
安装了VS2017和UE4.24,在右键点击.uproject文件时,应该会出现一个生成Visual Studio项目文件的选项。如果没有这个选项,说明UE4.24的安装出了问题。请创建一个UE项目进行检查,必要时重新安装。
可以从官方项目资源站获取,也可以通过终端使用命令获取:
git clone https://github.com/carla-simulator/carla
\Util\ContentVersions.txt
包含了CARLA的相关资产。这些资产需要在Unreal\CarlaUE4\Content\Carla
目录下解压。
此步骤用于CARLA寻找Unreal Engine。如果未设置,CARLA将会循环搜索最新版本的Unreal Engine.
最后步骤是build CARLA. 不同的make
命令来创建不同的依赖库。这些都需要运行在CARLA的根目录下。
·make PythonAPI :只需要第一次配置前运行或者进行版本更新后运行。之后Python脚本就可以执行。
make PythonAPI
·make launch : 编译服务器模拟器并启动虚幻引擎。按 "播放 "键启动观众视图,关闭编辑器窗口退出。摄像机可以用WASD键移动,在移动鼠标的同时点击场景进行旋转。
项目第一次可能会要求建立UE4Editor-Carla.dll
等其他实例。同意才能打开项目。在第一次启动时,编辑器可能会显示有关着色器和网格距离字段的警告。这些需要一些时间来加载,在此之前城市将无法正常显示。
最后,可以通过下面脚本测试一下模拟器。在PythonAPI/examples和PythonAPI/util
里面有一些例子脚本,可能对初学者特别有用。
下面的命令将在城镇中产生一些NPC,并创建一个天气循环。每个脚本应该在一个终端中运行。
# Terminal A
cd PythonAPI/examples
python3 spawn_npc.py
# Terminal B
cd PythonAPI/examples
python3 dynamic_weather.py
# The PythonAPI will be built based on the installed Python version
# The docs will use Python3, as support for Python2 was provided until 0.9.10 (not included)
注意:如果仿真器运行FPS很低,那么在Edit/Editor preferences/Performance
中UE editor,关闭“Use Less CPU when in background”