3、Carla安装:源码编译安装、预编译包安装、Docker安装、安装验证

好,咱们正式开始动手了。这一章讲安装,我把它放在前面,是因为很多新手朋友一上来就被安装劝退了。说实话,Carla的安装确实有点门槛,但别怕,我把三种主流方式都给你捋一遍。

我个人习惯先讲清楚每种方式的适用场景,你再根据自己的情况选。别一上来就搞源码编译,那玩意儿耗时又折腾,除非你真的需要改底层代码。

3.1 安装方式总览

先看个表格,心里有个底:

安装方式 适用场景 难度 耗时
预编译包安装 快速上手、日常使用 ★☆☆☆☆ 10分钟
Docker安装 团队协作、环境隔离 ★★☆☆☆ 15分钟
源码编译安装 二次开发、定制修改 ★★★★☆ 1-3小时

你想想看,如果你只是学学怎么用Carla做仿真,预编译包就够了。但如果你要改传感器模型、加新的车辆动力学,那就得走源码编译。

3.2 预编译包安装(推荐新手)

这是我最推荐的方式。说白了,就是下载一个压缩包,解压就能用。

提示: 我建议你直接去Carla的GitHub Release页面下载。版本号选最新的稳定版,别追最新,容易踩坑。

3.2.1 下载与解压

# 以Carla 0.9.14为例
wget https://github.com/carla-simulator/carla/releases/download/0.9.14/CARLA_0.9.14.tar.gz

# 解压到指定目录
mkdir ~/carla
tar -xzf CARLA_0.9.14.tar.gz -C ~/carla

嗯,这里要注意:解压后大概有3-4GB,确保磁盘空间够用。我曾经在服务器上装过一次,忘了看磁盘,结果解压到一半报错,白等了半小时。

3.2.2 启动Carla

cd ~/carla
./CarlaUE4.sh

启动后你会看到一个3D场景窗口,里面有几辆车和建筑。如果窗口闪退,八成是显卡驱动问题。我遇到过好几次,后来发现是NVIDIA驱动版本太老。

警告: 如果你用的是虚拟机,Carla基本跑不起来。它需要真正的GPU支持。云服务器的话,得选带GPU的实例。

3.3 Docker安装(适合团队协作)

Docker方式的好处是环境完全隔离,不会污染你的系统。我在团队里推广的就是这种方式,大家拉同一个镜像,跑出来的结果一模一样。

3.3.1 拉取镜像

# 拉取官方镜像
docker pull carlasim/carla:0.9.14

# 查看镜像是否拉取成功
docker images | grep carla

3.3.2 运行容器

# 启动Carla容器
docker run --rm -it \
  --net=host \
  --gpus all \
  carlasim/carla:0.9.14 \
  ./CarlaUE4.sh

这里有个关键参数 --net=host,它让容器和宿主机共享网络。为什么要这样?因为Carla的客户端和服务器之间要通过特定端口通信,共享网络能省去端口映射的麻烦。

重点: 如果你在Docker里跑Carla,记得加上 --gpus all,否则它检测不到显卡,会直接报错退出。

3.4 源码编译安装(进阶玩家)

源码编译,说白了就是自己从源代码构建整个项目。这个过程比较痛苦,但能让你对Carla的内部结构有更深的理解。

3.4.1 环境准备

先确认你的系统满足要求:

  • Ubuntu 18.04 或 20.04(我建议用20.04,兼容性更好)
  • 至少16GB内存(编译时很吃内存)
  • NVIDIA显卡 + 驱动版本 >= 460
  • Python 3.7 或 3.8

3.4.2 克隆源码

git clone https://github.com/carla-simulator/carla.git
cd carla
git checkout 0.9.14

记得切到稳定分支。我见过有人直接拉master分支,结果编译到一半发现依赖冲突,折腾了两天。

3.4.3 安装依赖

# 安装系统依赖
sudo apt-get update
sudo apt-get install -y \
  build-essential \
  clang-8 \
  lld-8 \
  g++-7 \
  cmake \
  ninja-build \
  libvulkan1 \
  python3-dev \
  python3-pip

# 安装Python依赖
pip3 install --user -r PythonAPI/requirements.txt

3.4.4 开始编译

# 设置编译参数
export CC=/usr/bin/clang-8
export CXX=/usr/bin/clang++-8

# 开始编译(这个过程很长)
make setup
make launch

编译时间取决于你的机器配置。我自己的机器是i7+32GB内存,大概花了1小时40分钟。如果你用的是笔记本,建议晚上睡觉前跑上,第二天早上就好了。

注意: 编译过程中如果报错,别慌。大部分错误都是缺少某个依赖包。仔细看错误日志,缺什么装什么就行。

3.5 安装验证

不管用哪种方式安装,最后都要验证一下能不能正常工作。

3.5.1 启动Carla服务端

# 启动Carla
./CarlaUE4.sh -quality-level=Low

加上 -quality-level=Low 参数,能降低显卡负载。我第一次验证时没加这个参数,结果老显卡直接卡死。

3.5.2 运行客户端测试

打开另一个终端,运行Python客户端:

# 进入Python API目录
cd PythonAPI/examples

# 运行示例脚本
python3 spawn_npc.py -n 10

如果看到场景里出现了10辆车在跑,说明安装成功了。

验证要点:
  • 服务端窗口能正常显示3D场景
  • 客户端能成功连接并控制车辆
  • FPS稳定在20以上(低配机器可以接受)

3.6 常见问题与避坑

最后分享几个我踩过的坑:

  • 显卡驱动问题: 启动时黑屏或闪退,先检查 nvidia-smi 能不能正常输出
  • 端口占用: Carla默认用2000-2002端口,如果被占用,启动时加 -carla-rpc-port=3000 换个端口
  • Python版本: 别用Python 3.10以上,Carla的API还没完全适配

我曾经在客户现场部署时,发现他们的服务器装了多个Python版本,结果Carla的PythonAPI死活找不到正确的解释器。后来用虚拟环境才搞定。

好了,安装部分就这些。选一种适合你的方式,装好了咱们下一章见。