2. 环境搭建

CARLA作为一款开源的端到端自动驾驶仿真平台,其环境搭建的成败直接决定了后续开发与算法验证的效率。许多初学者在安装过程中遭遇的“黑屏”“崩溃”“版本不兼容”等问题,往往并非源于代码缺陷,而是对系统依赖链、版本匹配规则和编译机制缺乏系统性认知。本章将围绕系统要求、版本选择、依赖配置、安装流程及排障方法五个维度展开,帮助您建立一套可复现、可诊断的CARLA环境搭建方法论。

CARLA环境搭建决策与排障链路 系统要求评估 OS / GPU / RAM / 存储 版本选择 0.9.x / 1.x / 源码版 依赖配置 Python / CUDA / 驱动 安装执行 包安装 / 编译 启动验证:./CarlaUE4.sh -quality-level=Low 成功:进入仿真环境 失败:进入排障流程 ① 检查GPU驱动 / CUDA ② 验证Python依赖包 ③ 检查端口/资源占用 重新验证 版本匹配矩阵(见正文表1) 常见错误码速查(见正文表2) 案例:CUDA 11.8 vs 12.0

上图展示了CARLA环境搭建的整体决策链路:从系统要求评估出发,经过版本选择、依赖配置、安装执行,最终通过启动验证进入排障闭环。这张图的核心价值在于揭示了环境搭建并非线性过程,而是一个需要反复迭代的工程系统。接下来,我们将逐一拆解每个环节的具体操作与判断标准。

2.1 系统要求:硬件与操作系统的底线思维

核心原理:CARLA基于Unreal Engine 4构建,其渲染与物理计算对硬件有硬性要求。理解这些要求背后的原理,比死记硬背参数更有价值——例如,显存(VRAM)不仅影响纹理加载,更直接决定仿真中可同时渲染的车辆与行人数量;而内存(RAM)则与地图分块加载、传感器数据缓冲密切相关。

硬件/软件项最低要求推荐配置说明
操作系统Ubuntu 18.04 / 20.04Ubuntu 20.04 / 22.04Windows仅支持0.9.x部分版本,且功能受限
GPUNVIDIA GTX 1060 6GBNVIDIA RTX 2070及以上必须支持Vulkan API;AMD GPU需额外编译
显存6 GB8 GB以上决定最大渲染负载
内存16 GB32 GB多传感器仿真时内存消耗显著
存储30 GB可用空间SSD 50 GB以上地图数据与缓存文件占用大
Python3.73.8 / 3.9CARLA Python API依赖特定版本
风险提示:若使用笔记本电脑,请确认是否配备独立NVIDIA显卡且支持独显直连。部分双显卡笔记本(如Optimus技术)会导致CARLA默认使用集成显卡,表现为启动后黑屏或帧率极低。此时需在NVIDIA控制面板中强制指定CARLA使用独立显卡。

判断方法:在终端执行 nvidia-smi 查看GPU驱动与显存信息;执行 lspci | grep -i vga 确认显卡型号;执行 free -h 检查内存。若系统不满足最低要求,建议优先升级GPU驱动或增加内存,而非盲目降低仿真画质——因为CARLA的物理引擎计算不受画质设置影响。

2.2 版本选择:从0.9.x到1.x的演进逻辑

核心原理:CARLA的版本迭代遵循“功能增加—稳定性提升—架构调整”的周期。0.9.x系列是目前最稳定的长期支持版本,适合教学与算法验证;1.x系列引入了新的传感器抽象层和更高效的渲染管线,但部分旧API已被移除。选择版本的本质是权衡“生态兼容性”与“新特性需求”。

版本系列特点适用场景已知问题
0.9.13最稳定,文档丰富教学、基础研究不支持最新Python 3.10+
0.9.15修复了部分传感器bug多传感器融合实验需手动编译部分组件
1.0.0新渲染管线,性能提升大规模场景仿真API变动大,迁移成本高
源码版最新特性,可深度定制研究型开发编译耗时2-4小时,依赖复杂
经验之谈:对于初学者,强烈建议选择 CARLA 0.9.13 + Python 3.8 的组合。这一组合经过社区大量验证,几乎所有第三方工具(如Scenario Runner、ROS bridge)都对其有良好支持。若您需要与ROS 2 Humble集成,则需选择0.9.15及以上版本。

操作流程:访问CARLA官方GitHub Releases页面,下载对应版本的压缩包。注意区分“CARLA_0.9.13.tar.gz”(完整包,约20GB)和“Additional Maps”(附加地图包)。下载后校验SHA256哈希值,确保文件完整性。

2.3 依赖配置:Python环境与GPU驱动的精确匹配

核心原理:CARLA的Python API通过Cython绑定底层C++库,因此Python版本必须与预编译的 .so 文件兼容。同时,CARLA依赖NVIDIA驱动提供的Vulkan支持,驱动版本过旧会导致渲染模块崩溃。

# 推荐使用conda创建独立环境
conda create -n carla python=3.8
conda activate carla
# 安装CARLA Python API(以0.9.13为例)
pip install carla==0.9.13
# 验证安装
python -c "import carla; print(carla.__version__)"

判断方法:执行 python --version 确认Python版本;执行 nvidia-smi | grep "Driver Version" 查看驱动版本。CARLA 0.9.13要求NVIDIA驱动≥455.23.05,而1.0版本要求≥525.60.13。若驱动过旧,需从NVIDIA官网下载对应驱动包手动安装。

常见误区:不要使用系统自带的Python 3.10+直接安装CARLA API,因为预编译的二进制文件可能不兼容。同样,不要同时安装多个CARLA版本到同一Python环境,会导致 carla 模块冲突。

2.4 安装执行:包安装与源码编译的抉择

核心原理:预编译包安装简单快捷,但无法修改C++底层代码;源码编译提供最大灵活性,但需要完整的编译工具链。对于绝大多数课程学员,预编译包已足够;仅当需要修改传感器模型或渲染逻辑时,才考虑源码编译。

  1. 预编译包安装:解压后进入目录,执行 ./CarlaUE4.sh -quality-level=Low 启动。首次启动会生成缓存文件,耗时约1-2分钟。
  2. 源码编译:需安装CMake、Clang、Ninja等工具,并配置UE4环境变量。编译过程约需2-4小时,且对内存要求极高(建议32GB以上)。
  3. Docker方式:适用于无GPU环境或需要快速部署的场景,但性能损失约10%-15%。
实战建议:在校园网或受限网络环境下,建议使用镜像站下载CARLA压缩包。同时,将解压后的CARLA目录路径加入 ~/.bashrc 中的 PYTHONPATH,便于Python脚本直接调用。

2.5 常见安装问题与排障案例

案例背景:某学员在Ubuntu 20.04上安装CARLA 0.9.13,启动后终端无报错,但窗口黑屏且CPU占用率持续100%。

分析过程:首先执行 nvidia-smi 确认驱动正常;接着检查 ~/.config/UnrealEngine/ 下的日志文件,发现Vulkan初始化失败。进一步排查发现,该学员的显卡驱动为470.86,虽满足最低要求,但系统缺少Vulkan运行时库。

解决步骤:

# 安装Vulkan运行时
sudo apt update
sudo apt install libvulkan1 vulkan-utils
# 验证Vulkan支持
vulkaninfo --summary | grep "deviceName"

结果对比:安装Vulkan库后,CARLA正常启动,帧率稳定在60FPS。复盘发现,问题根源并非驱动版本过旧,而是系统缺少Vulkan API的运行时组件——这是Ubuntu Server版或精简版系统的常见问题。

错误现象可能原因快速排查命令
启动即崩溃驱动不兼容 / 缺少Vulkanvulkaninfo --summary
Python API导入失败Python版本不匹配python -c "import carla"
端口2000被占用多实例冲突lsof -i:2000
地图加载缓慢磁盘IO瓶颈iotop
总结复盘:环境搭建的排障应遵循“由外到内”原则:先检查系统级依赖(驱动、Vulkan、Python),再检查CARLA自身配置(端口、缓存),最后才考虑代码问题。建议每次修改环境后,使用 ./CarlaUE4.sh -quality-level=Low 进行最小化验证,避免在复杂场景下排查基础问题。