2、环境准备:操作系统要求、硬件配置建议、依赖库安装

说实话,做联合仿真最怕什么?不是算法写不出来,而是环境搭到一半崩了。我见过太多人卡在这一步,最后放弃了整个项目。所以这一章,咱们把地基打牢。

2.1 操作系统要求

我个人习惯用 Ubuntu 20.04 LTS。为什么?因为 Carla 和 LGSVL 对它的支持最成熟。Windows 也能跑,但坑多,我不推荐。

注意: 别用 Ubuntu 22.04 尝鲜。我试过,Carla 的某些依赖在 22.04 上会报错,折腾了两天才退回来。

如果你非要用 Windows,记得开 WSL2。但说实话,性能损失不小,调试也麻烦。

2.2 硬件配置建议

联合仿真很吃资源。你想想看,两个仿真器同时跑,还要实时渲染,显卡压力很大。

组件 最低配置 推荐配置
CPU Intel i7 8代 / AMD Ryzen 5 Intel i9 12代 / AMD Ryzen 9
GPU NVIDIA GTX 1660 (6GB) NVIDIA RTX 3080 (12GB)
内存 16 GB 32 GB
存储 SSD 256 GB NVMe SSD 1 TB

我在项目中遇到过用 1660 跑联合仿真,结果帧率掉到个位数。后来换了 3080,才勉强流畅。嗯,这里要注意:显存低于 8GB 的话,建议把渲染质量调低。

2.3 依赖库安装

2.3.1 Python 环境

Python 版本建议用 3.8。别追新,3.10 以上有些库还不兼容。

# 创建虚拟环境,我习惯用 conda
conda create -n carla_lgsvl python=3.8
conda activate carla_lgsvl

# 安装核心依赖
pip install numpy opencv-python pillow
pip install pygame  # 用于可视化
pip install shapely  # 处理几何数据
小技巧: 用 conda 而不是 venv。因为 Carla 的 Python API 依赖一些底层库,conda 处理得更好。

2.3.2 C++ 编译环境

虽然大部分工作用 Python 就够了,但有时候需要编译自定义传感器或算法模块。C++ 环境是必须的。

# 安装编译工具链
sudo apt update
sudo apt install build-essential cmake
sudo apt install libboost-all-dev  # Carla 依赖 Boost
sudo apt install libprotobuf-dev protobuf-compiler  # 序列化用

我曾经因为 Boost 版本不对,编译 Carla 的客户端代码时卡了一整天。后来发现是系统自带的 Boost 太旧,手动装了 1.71 才解决。

2.3.3 CUDA 与 GPU 驱动

联合仿真离不开 GPU 加速。CUDA 版本建议用 11.611.7

# 先检查显卡驱动
nvidia-smi

# 如果驱动版本低于 510,先更新驱动
sudo apt install nvidia-driver-525

# 安装 CUDA 11.7
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run
sudo sh cuda_11.7.0_515.43.04_linux.run
避坑指南: 我曾经直接在已有驱动上装 CUDA,结果系统崩了。建议先卸载旧驱动:sudo apt purge nvidia-*,再重装。

装完后别忘了配环境变量:

echo 'export PATH=/usr/local/cuda-11.7/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

2.3.4 其他关键依赖

还有一些零碎的库,容易漏掉:

  • Eigen3:线性代数库,Carla 的传感器数据处理会用到
  • OpenGL:渲染相关,LGSVL 依赖它
  • FFmpeg:视频流处理,录制仿真数据时必备
sudo apt install libeigen3-dev
sudo apt install libgl1-mesa-dev
sudo apt install ffmpeg

总结一下: 环境准备说白了就是三板斧——系统选对、硬件够用、依赖装全。我见过太多人跳过这一步直接跑代码,结果报错后回来补环境,反而更浪费时间。

你想想看,与其花三天 debug 环境问题,不如花半天一次性配好。这笔账,划算。

下一章咱们开始正式搭建 Carla 和 LGSVL 的联合仿真平台。到时候我会手把手带你配置通信接口,让两个仿真器「聊起来」。