1、CARLA入门:CARLA是什么、为什么选择CARLA、安装与启动、基本架构概览
1.1 CARLA到底是什么?
说实话,我第一次接触CARLA的时候,心里想的是:「又一个仿真器?」
但用了一段时间后,我改变了看法。CARLA(Car Learning to Act)是一个开源的自动驾驶仿真平台。它由巴塞罗那计算机视觉中心(CVI)和丰田研究院联合开发。说白了,它就是一个专门为自动驾驶算法测试而生的虚拟世界。
在这个世界里,你可以控制车辆、行人、交通信号灯,甚至天气和时间。我习惯把它比作「自动驾驶的《侠盗猎车手》」——只不过,我们是在认真做研究。
核心定位:CARLA 不是游戏引擎,而是一个面向自动驾驶算法开发、训练和验证的专业仿真平台。
1.2 为什么选择CARLA?
市面上仿真器不少,比如AirSim、LGSVL、SUMO。为什么我推荐CARLA?
原因有三:
- 开源且活跃:代码完全公开,社区非常活跃。我在项目中遇到过一个传感器同步的bug,提交issue后两天就有人回复了解决方案。这在商业软件里几乎不可能。
- 传感器模型丰富:内置了摄像头、激光雷达、毫米波雷达、GPS、IMU等。你想想看,要自己从头写一个激光雷达点云生成器,那得花多少时间?
- 灵活的接口:支持Python和C++ API。我个人习惯用Python快速原型,C++做性能优化,CARLA两者都支持。
我的经验:如果你做的是感知算法,CARLA的传感器仿真精度足够用。但如果你做的是控制算法,建议结合Simulink做联合仿真,因为CARLA的车辆动力学模型相对简化。
1.3 安装与启动
嗯,这里要注意。CARLA的安装方式有两种:预编译包和源码编译。
我建议新手直接用预编译包。源码编译太折腾了,我第一次编译花了整整一个下午,还遇到了各种依赖冲突。
1.3.1 预编译包安装(推荐)
- 访问CARLA官网的Releases页面,下载对应操作系统的最新版本(目前是0.9.15)。
- 解压到本地目录,比如
C:\CARLA或/home/user/CARLA。 - 安装Python依赖:
pip install carla
1.3.2 启动CARLA
启动方式很简单,直接运行CARLA的可执行文件:
# Linux/Mac
./CarlaUE4.sh
# Windows
CarlaUE4.exe
启动后你会看到一个3D窗口,里面有一条街道和几辆车。这就是CARLA的默认场景。
避坑指南:我曾经遇到过启动后黑屏的问题。后来发现是显卡驱动版本太低。CARLA基于Unreal Engine 4,对显卡有一定要求。建议NVIDIA显卡驱动更新到最新版本。
1.3.3 验证安装
启动CARLA后,打开另一个终端,运行以下Python脚本:
import carla
client = carla.Client('localhost', 2000)
client.set_timeout(10.0)
world = client.get_world()
print("CARLA连接成功!")
print(f"当前地图: {world.get_map().name}")
如果打印出地图名称,说明安装成功。
1.4 基本架构概览
CARLA的架构其实不复杂。我画了一张图帮你理解:
从上图可以看出,CARLA采用经典的客户端-服务器架构:
- 服务器(Server):就是那个CarlaUE4进程。它负责渲染画面、模拟物理、运行传感器。服务器可以运行在带GPU的机器上,也可以运行在远程服务器上。
- 客户端(Client):通过Python或C++ API连接服务器。你写的所有控制代码都在客户端运行。客户端可以控制车辆、读取传感器数据、修改天气等。
这种架构的好处是什么?我举个例子:你可以在一台高性能服务器上跑CARLA,然后用你的笔记本远程连接。这样笔记本只需要发送指令和接收数据,渲染工作全交给服务器。
1.5 核心模块速览
| 模块 | 功能 | 我的使用建议 |
|---|---|---|
| 地图与场景 | 提供Town01~Town07等地图,支持自定义地图导入 | 新手先用Town03,路况适中,场景丰富 |
| 传感器套件 | 摄像头、激光雷达、毫米波雷达、IMU、GPS等 | 做感知算法时,记得调整传感器位置和参数 |
| 交通管理器 | 控制NPC车辆和行人的行为 | 生成自定义交通流的核心工具,后面会详细讲 |
| 车辆动力学 | 模拟车辆加速、刹车、转向等物理特性 | 精度够用,但做控制算法建议结合Simulink |
小技巧:启动CARLA时加上 -quality-level=Low 参数可以降低画质,提高运行帧率。我在调试阶段经常这么干,等调试好了再切回高画质。
好了,这一章的内容就是这些。CARLA的入门其实不难,关键是动手去试。启动起来,跑一跑示例脚本,你很快就能上手。
可可精品资料库