1. CARLA初识:CARLA是什么、为什么选择CARLA、CARLA的安装与启动

1.1 CARLA到底是什么?

先说说CARLA这个名字。它全称是Car Learning to Act,一个开源的自动驾驶仿真器。说白了,它就是一个虚拟的驾驶世界——里面有车、有路、有行人、有红绿灯,还有各种天气和光照变化。

我个人习惯把CARLA比作「自动驾驶的飞行模拟器」。你想啊,飞行员不能真拿客机练手,自动驾驶也一样——总不能刚写了几行控制代码,就开到路上去吧?CARLA就是那个让你安全试错的地方。

我记得第一次打开CARLA时,看到那个虚拟城市在眼前渲染出来,说实话挺震撼的。你可以在里面自由放置车辆、控制传感器、甚至模拟车祸场景。嗯,这玩意儿比我想象中强大得多。

核心要点:CARLA是一个基于Unreal Engine 4的开源仿真器,专为自动驾驶系统的开发、训练和验证而设计。它提供了完整的传感器套件(摄像头、激光雷达、GPS、IMU等)、动态交通流控制、以及丰富的场景编辑器。

1.2 为什么选CARLA?

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

原因其实很简单——生态好、上手快、社区活跃。我在项目中遇到过好几次,用其他仿真器跑着跑着发现某个传感器不支持,或者文档写得像天书。CARLA在这方面做得相当不错。

具体来说,有这几个理由:

  • 开源免费:MIT协议,随便用,商用也没问题。你想想看,这省了多少授权费。
  • 传感器齐全:摄像头、激光雷达、毫米波雷达、GPS、IMU、深度相机……基本上你能想到的它都有。
  • Python API:接口设计得很清爽,几行代码就能控制车辆。对新手极其友好。
  • 场景丰富:内置了Town01到Town10多个地图,还有动态行人、自行车、天气系统。
  • ROS集成:如果你做机器人开发,CARLA可以直接对接ROS/ROS2。

我的小建议:如果你之前用过Gazebo或者AirSim,你会发现CARLA的API设计更「Pythonic」。它不像某些仿真器那样需要你写一堆配置文件,而是直接用代码控制一切。这一点我特别喜欢。

1.3 CARLA的架构长什么样?

为了让你有个整体印象,我画了一张架构图。你看完就知道CARLA是怎么工作的了。

CARLA 仿真系统架构图 用户层(Python API / ROS 接口) 控制车辆 · 配置传感器 · 获取数据 · 管理场景 client.get_world() · vehicle.apply_control() · sensor.listen() 核心层(CARLA Server) 世界管理器 地图加载 · 天气控制 物理引擎 碰撞检测 · 动力学 渲染引擎 Unreal Engine 4 渲染 数据层(传感器与数据流) RGB 摄像头 图像数据 激光雷达 点云数据 毫米波雷达 距离/速度 GPS/IMU 位置/姿态

你看,整个架构分三层:最上面是你写的Python代码,中间是CARLA服务器负责物理和渲染,最下面是传感器数据输出。数据流是双向的——你发指令下去,传感器数据传回来。

1.4 安装与启动:手把手教你跑起来

这部分我尽量说得细一点。毕竟安装这一步卡住了,后面什么都干不了。

1.4.1 系统要求

组件 最低配置 推荐配置
操作系统 Ubuntu 18.04 / Windows 10 Ubuntu 20.04 / Windows 11
CPU 4核 2.5GHz 8核 3.0GHz+
GPU NVIDIA GTX 960 NVIDIA RTX 2060+
内存 8GB 16GB+
硬盘 20GB 空闲 SSD 50GB+

注意:我曾经在一台只有8GB内存的笔记本上跑CARLA,结果加载地图时直接卡死。后来加了根内存条才搞定。所以内存这块别省,16GB起步最稳妥。

1.4.2 安装步骤(Ubuntu 20.04为例)

我个人习惯用包管理器安装,省事。当然你也可以从源码编译,但新手不建议那么折腾。

# 1. 安装依赖
sudo apt-get update
sudo apt-get install -y libomp5

# 2. 下载CARLA包(0.9.14版本为例)
wget https://carla-releases.s3.eu-west-3.amazonaws.com/Linux/CARLA_0.9.14.tar.gz

# 3. 解压
mkdir ~/carla
tar -xzf CARLA_0.9.14.tar.gz -C ~/carla

# 4. 安装Python API
cd ~/carla/PythonAPI/carla/dist
pip install carla-0.9.14-cp38-cp38-linux_x86_64.whl

# 5. 验证安装
python3 -c "import carla; print(carla.__version__)"

如果输出 0.9.14,说明安装成功了。就这么简单。

1.4.3 启动CARLA

启动分两种模式:

  • 带图形界面:直接双击 CarlaUE4.sh,或者终端运行 ./CarlaUE4.sh。你会看到一个虚拟城市窗口弹出来。
  • 无图形界面(服务器模式):./CarlaUE4.sh -RenderOffScreen。适合在服务器上跑,或者你只想用Python控制。

我的习惯:开发调试时用图形界面,方便观察。跑批量测试时用无界面模式,省GPU资源。你想想看,一边跑仿真一边还能刷网页,多舒服。

1.4.4 第一个Python脚本

启动CARLA后,打开另一个终端,运行下面这段代码:

import carla
import random

# 连接CARLA服务器
client = carla.Client('localhost', 2000)
client.set_timeout(10.0)

# 获取世界对象
world = client.get_world()

# 生成一辆车
blueprint_library = world.get_blueprint_library()
vehicle_bp = blueprint_library.filter('model3')[0]
spawn_point = random.choice(world.get_map().get_spawn_points())
vehicle = world.spawn_actor(vehicle_bp, spawn_point)

# 让车动起来
vehicle.apply_control(carla.VehicleControl(throttle=0.5, steer=0.0))

print("车辆已生成,正在前进...")
print(f"车辆位置: {vehicle.get_location()}")

运行后,你会看到CARLA窗口里出现一辆特斯拉Model 3,缓缓向前开。嗯,这就是你的第一个自动驾驶仿真程序。

1.5 常见问题与避坑

这部分是我踩过的坑,你遇到了直接对照着看就行。

  • 端口被占用:CARLA默认用2000端口。如果报连接失败,先看看是不是有其他程序占用了。用 lsof -i :2000 查一下。
  • GPU显存不足:如果启动后黑屏或者闪退,试试降低画质。在启动命令加 -quality-level=Low。
  • Python版本不匹配:CARLA 0.9.14 对应 Python 3.8。我之前用Python 3.10装了半天装不上,后来才发现版本不对。
  • Windows用户注意:下载 .exe 安装包,别下成Linux版了。解压后直接双击 CarlaUE4.exe 启动。

一句话总结:CARLA是一个功能强大且对新手友好的自动驾驶仿真器。安装过程不复杂,启动后跑通第一个Python脚本,你就正式入门了。后面的事情,咱们慢慢来。

可可精品资料库