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是怎么工作的了。
你看,整个架构分三层:最上面是你写的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脚本,你就正式入门了。后面的事情,咱们慢慢来。