3、Carla安装:源码编译安装、预编译包安装、Docker安装、安装验证
好,咱们正式开始动手了。这一章讲安装,我把它放在前面,是因为很多新手朋友一上来就被安装劝退了。说实话,Carla的安装确实有点门槛,但别怕,我把三种主流方式都给你捋一遍。
我个人习惯先讲清楚每种方式的适用场景,你再根据自己的情况选。别一上来就搞源码编译,那玩意儿耗时又折腾,除非你真的需要改底层代码。
3.1 安装方式总览
先看个表格,心里有个底:
| 安装方式 | 适用场景 | 难度 | 耗时 |
|---|---|---|---|
| 预编译包安装 | 快速上手、日常使用 | ★☆☆☆☆ | 10分钟 |
| Docker安装 | 团队协作、环境隔离 | ★★☆☆☆ | 15分钟 |
| 源码编译安装 | 二次开发、定制修改 | ★★★★☆ | 1-3小时 |
你想想看,如果你只是学学怎么用Carla做仿真,预编译包就够了。但如果你要改传感器模型、加新的车辆动力学,那就得走源码编译。
3.2 预编译包安装(推荐新手)
这是我最推荐的方式。说白了,就是下载一个压缩包,解压就能用。
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驱动版本太老。
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的客户端和服务器之间要通过特定端口通信,共享网络能省去端口映射的麻烦。
--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死活找不到正确的解释器。后来用虚拟环境才搞定。
好了,安装部分就这些。选一种适合你的方式,装好了咱们下一章见。