1. CARLA仿真器概述与安装准备
CARLA是一款开源的自动驾驶仿真平台,基于虚幻引擎(Unreal Engine)构建,专为自动驾驶系统的研发、测试和验证而设计。它提供了高度可配置的传感器套件、动态交通场景和丰富的API接口,支持从简单的算法验证到复杂的端到端系统测试。
1.1 硬件需求分析
在安装CARLA之前,需要确保你的系统满足以下硬件要求:
- 显卡:至少需要NVIDIA GTX 1070或更高性能的显卡,推荐RTX 2080及以上。CARLA依赖GPU进行场景渲染,显存不足会导致运行崩溃(这也是"carla运行时显存不足"问题的根源)
- 内存:最低16GB,推荐32GB。大型地图加载和复杂场景模拟会消耗大量内存
- 存储:至少100GB可用空间(SSD强烈推荐)。CARLA的完整安装包和地图资源体积庞大,机械硬盘会导致加载时间过长
- 处理器:Intel i7-8700K或AMD Ryzen 7 2700X及以上
提示:如果计划使用多个高分辨率传感器(如多个128线激光雷达),建议配置RTX 3090/4090级别的显卡和64GB内存。
1.2 系统环境准备
CARLA支持以下操作系统环境:
- Ubuntu 18.04/20.04(推荐):最稳定的运行环境,社区支持最好
- Windows 10/11:功能完整但可能存在驱动兼容性问题
- Docker:跨平台解决方案,适合快速部署但性能有损耗
对于Ubuntu用户,建议参考"保姆级避坑指南:在nvme ssd上安装ubuntu 24.04"完成系统安装,特别注意:
- 分区时预留足够swap空间(建议32GB)
- 安装NVIDIA驱动时禁用nouveau驱动
- 配置正确的locale和时区设置
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. CARLA安装方法详解
2.1 预编译包安装(推荐新手)
这是最简单的安装方式,适合快速开始:
bash复制# 创建安装目录
mkdir ~/carla && cd ~/carla
# 下载最新预编译包(0.9.15版本)
wget https://carla-releases.s3.eu-west-3.amazonaws.com/Linux/CARLA_0.9.15.tar.gz
# 解压安装包
tar -xzvf CARLA_0.9.15.tar.gz
# 下载附加资源包(可选)
wget https://carla-releases.s3.eu-west-3.amazonaws.com/Linux/AdditionalMaps_0.9.15.tar.gz
tar -xzvf AdditionalMaps_0.9.15.tar.gz -C Import
安装完成后,运行启动脚本:
bash复制./CarlaUE4.sh
2.2 源码编译安装(高级用户)
如果需要自定义功能或开发插件,需要从源码编译:
bash复制# 安装依赖
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 libomp5 libpng-dev \
libtiff5-dev libjpeg-dev tzdata sed curl unzip autoconf \
libtool rsync libxml2-dev git
# 克隆CARLA仓库
git clone --recurse-submodules https://github.com/carla-simulator/carla
cd carla
# 切换稳定分支
git checkout 0.9.15
# 编译CARLA
make PythonAPI
make launch
编译过程可能需要2-4小时,取决于硬件性能。如果遇到编译错误,通常需要:
- 检查所有子模块是否完整克隆
- 确认gcc和clang版本兼容
- 确保虚幻引擎版本匹配
2.3 Docker方式安装
对于需要隔离环境或快速部署的场景:
bash复制# 拉取官方镜像
docker pull carlasim/carla:0.9.15
# 运行容器(需要NVIDIA容器工具包)
docker run -it --gpus all \
-p 2000-2002:2000-2002 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
carlasim/carla:0.9.15 \
/bin/bash ./CarlaUE4.sh
3. 常见问题解决方案
3.1 显存不足问题处理
当出现"carla运行时显存不足"错误时,可以尝试:
-
降低渲染质量:
bash复制
./CarlaUE4.sh -quality-level=Low -
减少传感器数量:每个摄像头约占用1-2GB显存,激光雷达占用更多
-
使用无渲染模式(仅限算法测试):
python复制settings = world.get_settings() settings.no_rendering_mode = True world.apply_settings(settings)
3.2 RST错误处理
类似于"搞定rst错误和分区方案"中提到的问题,CARLA可能因网络连接不稳定出现RST错误:
- 检查防火墙设置,确保2000-2002端口开放
- 禁用IPv6:
bash复制sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1 - 调整TCP缓冲区大小:
bash复制sudo sysctl -w net.core.rmem_max=26214400 sudo sysctl -w net.core.wmem_max=26214400
3.3 鱼眼相机集成
针对"ubuntu2022 carla 0.9.15 集合社区鱼眼相机"的需求,安装步骤如下:
-
下载社区开发的鱼眼相机插件:
bash复制git clone https://github.com/carla-simulator/carla-fisheye-plugin.git -
编译并集成到CARLA:
bash复制mkdir build && cd build cmake .. && make cp libFisheyePlugin.so ~/carla/Plugins/ -
Python端调用示例:
python复制camera = world.spawn_actor( blueprint_library.find('sensor.camera.fisheye'), carla.Transform(carla.Location(x=1.5, z=2.4)) )
4. 进阶配置与优化
4.1 性能调优指南
-
渲染参数调整:
- 编辑
CarlaUE4/Config/DefaultEngine.ini:code复制[ConsoleVariables] r.VSync=0 r.ScreenPercentage=100 r.PostProcessAAQuality=4
- 编辑
-
交通流优化:
python复制traffic_manager = client.get_trafficmanager() traffic_manager.set_hybrid_physics_mode(True) traffic_manager.set_global_distance_to_leading_vehicle(2.5) -
内存管理:
- 定期调用
world.tick()释放资源 - 使用
gc.collect()手动触发Python垃圾回收
- 定期调用
4.2 传感器配置方案
典型自动驾驶传感器套件配置示例:
python复制sensors = {
'rgb_front': {
'type': 'sensor.camera.rgb',
'x': 1.5, 'y': 0.0, 'z': 2.4,
'pitch': 0.0, 'yaw': 0.0, 'roll': 0.0,
'width': 800, 'height': 600,
'fov': 90
},
'lidar': {
'type': 'sensor.lidar.ray_cast',
'x': 1.5, 'z': 2.4,
'channels': 64,
'range': 100,
'points_per_second': 1000000
}
}
4.3 多机分布式测试
配置CARLA服务器集群:
-
主节点启动:
bash复制
./CarlaUE4.sh -carla-port=2000 -quality-level=Epic -
从节点启动:
bash复制
./CarlaUE4.sh -carla-port=3000 -quality-level=Low -no-rendering -
Python客户端连接:
python复制client = carla.Client('master', 2000) client.connect() secondary_client = carla.Client('worker1', 3000) secondary_client.connect()
在实际项目中,我们通常会遇到各种环境配置问题。根据我的经验,最稳妥的做法是:
- 使用Ubuntu 20.04 LTS作为基础系统
- 安装NVIDIA官方驱动而非开源驱动
- 为CARLA单独创建conda环境
- 定期清理
/tmp目录下的临时文件 - 对于长期运行的测试,建议配置自动重启脚本监控进程状态
