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
⚠️ 注意: 如果你用的是笔记本,尤其是轻薄本,大概率跑不动。Carla需要独立显卡,集成显卡基本没戏。我曾经用一台集显笔记本试过,启动后帧率不到5,画面跟幻灯片似的。

操作系统方面,我建议用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

💡 小提示: 下载速度慢的话,可以试试用镜像源。我记得有一次在公司网络下下载,速度只有几十KB,后来换了国内镜像,几分钟就搞定了。

方式二:源码编译(进阶)

如果你非要自己编译,也行。但我要提醒你,这个过程很折腾。你需要安装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
⚠️ 注意版本匹配: Carla的Python API版本必须和你的Python版本一致。比如Carla 0.9.14的API是给Python 3.7编译的,你用Python 3.8就会报错。我建议用Carla自带的Python环境,或者用conda创建一个3.7的环境。

问题4:显存不足

启动后画面卡顿,或者直接崩溃。这通常是显存不够用。

# 降低画质启动
./CarlaUE4.sh -quality-level=Low

# 或者限制分辨率
./CarlaUE4.sh -ResX=800 -ResY=600

问题5:地图加载失败

有时候切换地图会报错,说找不到地图文件。这是因为Carla默认只加载了Town01,其他地图需要手动下载。

# 下载所有地图(大概2GB)
cd ~/CARLA_0.9.14
./ImportAssets.sh
💡 我的经验: 如果你只是做标注工具开发,用Town01就够了。别急着下载所有地图,等需要的时候再下。我刚开始时一股脑全下了,结果大部分都没用上。

好了,环境搭建这块就讲到这里。你跟着步骤走,应该半小时内就能跑起来。如果遇到问题,先看看是不是上面列出的情况。实在搞不定,欢迎来群里问我。下一章咱们开始玩Python API,那才是真正有意思的部分。