1. CARLA初探

大家好,我是你们的老朋友。今天咱们正式开启CARLA仿真之旅。

说实话,我第一次接触CARLA是在三年前。那时候我正为一个自动驾驶项目头疼——实车测试成本太高,一次剐蹭就是几万块。后来我发现了CARLA,嗯,这玩意儿真香。

1.1 CARLA是什么?

CARLA的全称是 Car Learning to Act,说白了就是一个开源的自动驾驶仿真器。它由巴塞罗那计算机视觉中心(CVC)和丰田研究院联合开发,2017年首次发布。

你可以把它理解成一个专门为自动驾驶算法打造的"虚拟试车场"。在这个虚拟世界里,你可以控制车辆、行人、交通灯、天气,甚至传感器噪声。

核心特点:

  • 完全开源,MIT协议,商用也没问题
  • 基于Unreal Engine 4,画面逼真
  • 支持RGB相机、深度相机、激光雷达、GPS、IMU等多种传感器
  • 提供Python API,方便算法集成
  • 支持多客户端架构,可以分布式运行

我习惯把CARLA比作自动驾驶界的"GTA"。你想想看,在GTA里你能开车、撞人、闯红灯,CARLA里也能——只不过CARLA是给AI开的,而且撞了不用赔钱。

1.2 为什么选择CARLA?

市面上仿真器不少,比如AirSim、SUMO、LGSVL。为什么我推荐CARLA?

第一,生态成熟。 CARLA社区非常活跃,GitHub上有超过1万颗星。我在项目中遇到的大部分问题,Stack Overflow上都能找到答案。

第二,传感器仿真真实。 我记得有一次做激光雷达点云处理,用CARLA生成的雷达数据跟实际Velodyne采集的数据几乎没区别。这一点对算法验证太重要了。

第三,场景灵活。 你可以自定义地图、车辆、行人路径,甚至模拟极端天气。我曾经在项目中用CARLA模拟了暴雨天、雪天、夜间场景,帮团队发现了不少算法盲区。

对比项 CARLA AirSim SUMO
渲染引擎 Unreal Engine 4 Unreal Engine 4 无(微观交通流)
传感器仿真 丰富(相机、雷达、激光雷达等) 丰富 无
交通流仿真 支持(内置SUMO接口) 有限 专业级
Python API 完善 完善 有
开源协议 MIT MIT EPL-2.0

说白了,如果你做的是感知、规划、控制这类算法,CARLA是首选。如果你只做交通流仿真,SUMO更轻量。但大多数时候,我们两者结合用——CARLA做渲染,SUMO做交通流。

1.3 安装与启动(Windows)

嗯,这里要注意。Windows安装相对简单,但有几个坑我得提前说。

1.3.1 系统要求

  • Windows 10/11 64位
  • 至少8GB内存(我建议16GB)
  • 独立显卡(NVIDIA GTX 1060以上)
  • 50GB以上硬盘空间

1.3.2 安装步骤

  1. 下载CARLA:去GitHub Releases页面下载CARLA 0.9.14(我习惯用这个版本,稳定)
  2. 解压:解压到纯英文路径,比如 D:\CARLA。千万别放中文路径,否则你会哭的。
  3. 安装Python依赖:打开命令行,进入CARLA目录,运行:
    pip install -r PythonAPI/examples/requirements.txt
  4. 启动CARLA:双击 CarlaUE4.exe,或者命令行运行:
    CarlaUE4.exe -quality-level=Low

    我建议第一次用 -quality-level=Low,启动快。等熟悉了再调高画质。

避坑指南: 我曾经在Windows上遇到启动后黑屏的问题。后来发现是显卡驱动太旧。更新到最新NVIDIA驱动后就好了。另外,如果你用的是笔记本,记得在NVIDIA控制面板里把CARLA设为高性能显卡。

1.4 安装与启动(Linux)

Linux下安装稍微复杂一点,但性能更好。我个人习惯在Ubuntu 20.04上跑CARLA。

1.4.1 系统要求

  • Ubuntu 18.04/20.04/22.04
  • NVIDIA显卡 + 驱动(至少460版本)
  • Vulkan支持

1.4.2 安装步骤

  1. 安装依赖:
    sudo apt-get update
    sudo apt-get install -y build-essential cmake python3-dev libpng-dev libtiff5-dev libjpeg-dev libboost-all-dev
  2. 下载CARLA:同样从GitHub下载,或者用命令行:
    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
  3. 安装Python依赖:
    pip3 install -r PythonAPI/examples/requirements.txt
  4. 启动CARLA:
    ./CarlaUE4.sh -quality-level=Low

小技巧: 在Linux下,我习惯用 ./CarlaUE4.sh -RenderOffScreen 启动无界面模式。这样可以在服务器上跑,节省GPU资源。配合 tmux 或 screen,可以后台运行。

1.5 核心知识体系

为了让你更直观地理解CARLA的整体架构,我画了一张图。这张图是我做项目时总结的,希望能帮你建立全局认知。

CARLA 核心知识体系 CARLA 仿真引擎 传感器仿真 场景与地图 交通流与行人 传感器类型 RGB相机 / 深度相机 激光雷达 / 毫米波雷达 GPS / IMU / 语义分割 地图与场景 Town01 ~ Town10HD 自定义地图(RoadRunner) 天气系统(雨/雪/雾/夜) 交通参与者 车辆(AI控制/手动控制) 行人(随机/预设路径) SUMO交通流集成 Python API 控制层 感知算法验证 | 规划控制测试 | 数据生成

这张图展示了CARLA的核心架构。从上到下,你看到的是:仿真引擎 → 三大模块(传感器、场景、交通流)→ Python API → 实际应用。说白了,你只需要通过Python API就能控制整个仿真世界。

1.6 验证安装

安装完成后,我们来跑一个简单的测试脚本。打开Python终端,输入:

import carla
client = carla.Client('localhost', 2000)
client.set_timeout(10.0)
world = client.get_world()
print("CARLA连接成功!当前地图:", world.get_map().name)

如果输出类似 CARLA连接成功!当前地图:/Game/Carla/Maps/Town01,恭喜你,安装成功了!

小提示: 第一次启动CARLA时,可能会弹出防火墙提示。记得允许访问。另外,默认端口是2000,如果你同时跑多个实例,可以用 -carla-rpc-port=3000 指定不同端口。

好了,这一章的内容就到这里。CARLA的安装和启动其实不难,难的是后面怎么用它做自动化仿真。别急,我们一步步来。

可可精品资料库