2. Carla环境搭建:系统要求、安装Carla、启动Carla服务器、客户端连接测试、常见问题排查
好,咱们正式开始动手了。这一章我带你把Carla跑起来。说实话,环境搭建是劝退很多人的第一道坎。我见过太多人卡在安装这一步,代码写得再好,跑不起来也是白搭。所以这一章我会把每个细节都掰开揉碎了讲,你跟着一步步来就行。
2.1 系统要求:你的电脑够不够格?
先说说硬件。Carla这玩意儿挺吃资源的,毕竟要实时渲染3D场景。我个人习惯是,在动手之前先确认机器配置,免得装了半天发现跑不动。
| 组件 | 最低要求 | 推荐配置 |
|---|---|---|
| 操作系统 | Ubuntu 18.04 / Windows 10 | Ubuntu 20.04 / Windows 11 |
| CPU | 4核 2.5GHz | 8核 3.0GHz以上 |
| 内存 | 8GB | 16GB或更高 |
| 显卡 | NVIDIA GTX 970 / AMD RX 580 | NVIDIA RTX 2070或更高 |
| 显存 | 4GB | 6GB以上 |
| 存储 | 20GB可用空间 | 50GB SSD |
操作系统方面,我建议用Ubuntu 20.04。为什么?因为Carla对Linux的支持更成熟,很多底层优化都是针对Linux做的。Windows也能跑,但偶尔会遇到一些奇奇怪怪的兼容性问题。
2.2 安装Carla:两种方式,任你选
安装Carla有两种主流方式:下载预编译包和源码编译。我建议新手直接下载预编译包,省时省力。源码编译那是进阶玩家干的事,而且编译一次少说半小时,搞不好还要解决各种依赖冲突。
方式一:下载预编译包(推荐)
去Carla的GitHub Releases页面,找到最新版本。目前稳定版是0.9.14。下载对应系统的压缩包就行。
# 以Ubuntu为例
wget https://carla-releases.s3.eu-west-3.amazonaws.com/Linux/CARLA_0.9.14.tar.gz
tar -xzf CARLA_0.9.14.tar.gz
cd CARLA_0.9.14
解压完你会看到一个叫CarlaUE4.sh的文件,这就是启动脚本。Windows下是CarlaUE4.exe。
方式二:源码编译(进阶)
如果你非要自己编译,也行。但我要提醒你,这个过程很折腾。你需要安装Unreal Engine 4.26,然后配置一堆依赖。
# 克隆Carla源码
git clone https://github.com/carla-simulator/carla.git
cd carla
# 更新子模块
git submodule update --init --recursive
# 安装依赖
./Setup.sh
# 编译
make launch
嗯,这里要注意,Setup.sh会下载很多东西,包括Unreal Engine。整个过程下来,你的硬盘会多出30GB左右的数据。我当初第一次编译时,等了一个多小时才完成。
2.3 启动Carla服务器:让模拟器跑起来
安装完成后,咱们来启动Carla服务器。说白了,Carla服务器就是一个3D渲染引擎,它负责生成场景、控制车辆、处理传感器数据。
# 进入Carla目录
cd ~/CARLA_0.9.14
# 启动服务器(默认窗口模式)
./CarlaUE4.sh
# 或者无窗口模式(节省资源)
./CarlaUE4.sh -RenderOffScreen
启动后你会看到一个3D城市场景,这就是Carla的默认地图Town01。服务器默认监听localhost:2000端口。
-RenderOffScreen:无窗口渲染,适合服务器环境-quality-level=Low:低画质模式,老显卡可以试试-carla-rpc-port=3000:自定义RPC端口-fps=10:限制帧率,降低CPU占用
我个人习惯在开发时用窗口模式,方便观察场景。但如果是批量跑数据,我会用无窗口模式,能省不少显存。
2.4 客户端连接测试:验证环境是否正常
服务器跑起来了,接下来咱们写个简单的Python脚本,测试一下客户端能不能连上。
# test_connection.py
import carla
import time
# 连接到Carla服务器
client = carla.Client('localhost', 2000)
client.set_timeout(10.0) # 设置超时时间
try:
# 获取世界对象
world = client.get_world()
print(f"✅ 连接成功!当前地图: {world.get_map().name}")
# 获取所有蓝图
blueprint_library = world.get_blueprint_library()
print(f"📦 可用蓝图数量: {len(blueprint_library)}")
# 生成一辆车
vehicle_bp = blueprint_library.filter('vehicle.tesla.model3')[0]
spawn_point = world.get_map().get_spawn_points()[0]
vehicle = world.spawn_actor(vehicle_bp, spawn_point)
print(f"🚗 车辆已生成: {vehicle.type_id}")
# 让车辆动起来
vehicle.apply_control(carla.VehicleControl(throttle=0.5))
time.sleep(3)
# 清理
vehicle.destroy()
print("🧹 清理完成")
except Exception as e:
print(f"❌ 连接失败: {e}")
运行这个脚本,如果看到绿色的成功信息,说明环境搭建成功了。如果报错,别慌,咱们看下一节。
2.5 常见问题排查:我踩过的坑,你别再踩了
环境搭建这块,问题真的不少。我把最常见的几个问题列出来,你遇到了直接对照着排查。
问题1:启动Carla时黑屏或闪退
这通常是因为显卡驱动问题。我曾经在一台双显卡笔记本上折腾了一整天,最后发现是NVIDIA驱动没装好。
# 检查显卡驱动
nvidia-smi
# 如果没有输出,重新安装驱动
sudo apt-get install nvidia-driver-470
问题2:客户端连接超时
客户端报TimeoutError,说明服务器没启动或者端口不对。
- 确认Carla服务器已经启动
- 检查端口号是否一致(默认2000)
- 防火墙有没有拦截?我遇到过公司网络防火墙把端口封了的情况
问题3:Python API导入失败
报ModuleNotFoundError: No module named 'carla',说明Python环境没配置好。
# 方法一:手动添加路径
import sys
sys.path.append('~/CARLA_0.9.14/PythonAPI/carla/dist/carla-0.9.14-py3.7-linux-x86_64.egg')
import carla
# 方法二:安装到系统环境
pip install ~/CARLA_0.9.14/PythonAPI/carla/dist/carla-0.9.14-py3.7-linux-x86_64.egg
问题4:显存不足
启动后画面卡顿,或者直接崩溃。这通常是显存不够用。
# 降低画质启动
./CarlaUE4.sh -quality-level=Low
# 或者限制分辨率
./CarlaUE4.sh -ResX=800 -ResY=600
问题5:地图加载失败
有时候切换地图会报错,说找不到地图文件。这是因为Carla默认只加载了Town01,其他地图需要手动下载。
# 下载所有地图(大概2GB)
cd ~/CARLA_0.9.14
./ImportAssets.sh
好了,环境搭建这块就讲到这里。你跟着步骤走,应该半小时内就能跑起来。如果遇到问题,先看看是不是上面列出的情况。实在搞不定,欢迎来群里问我。下一章咱们开始玩Python API,那才是真正有意思的部分。