共计 2330 个字符,预计需要花费 6 分钟才能阅读完成。
背景与痛点
CARLA 是一款开源的自动驾驶模拟器,它提供了高度真实的城市环境、多样的传感器模型和灵活的 API 接口。对于自动驾驶算法的开发和测试来说,CARLA 是一个非常强大的工具。然而,对于新手开发者来说,从环境搭建到第一个 Demo 的实现过程中往往会遇到不少困难,比如复杂的依赖项安装、Python 客户端配置问题、API 使用不熟悉等。本文将一步步引导你完成这些过程,避开常见的陷阱。

环境搭建
CARLA 官方推荐在 Ubuntu 系统下运行,以下是在 Ubuntu 20.04 LTS 上安装 CARLA 的详细步骤。
- 首先,安装必要的依赖项:
sudo apt-get update
sudo apt-get install -y build-essential clang-8 lld-8 g++-7 cmake ninja-build libvulkan1 python3-dev python3-pip libpng-dev libtiff5-dev libjpeg-dev tzdata sed curl unzip autoconf libtool rsync
- 下载 CARLA 发行版。可以从 CARLA 官网(https://carla.org/)下载预编译的版本,或者从 GitHub 仓库克隆源代码自行编译。这里以预编译版本为例:
wget https://carla-releases.s3.eu-west-3.amazonaws.com/Linux/CARLA_0.9.13.tar.gz
tar -xvf CARLA_0.9.13.tar.gz
cd CARLA_0.9.13
- 启动 CARLA 服务器:
./CarlaUE4.sh
如果一切顺利,你将看到一个虚幻引擎窗口,显示 CARLA 的默认地图。
Python 客户端配置
CARLA 提供了 Python API,用于与 CARLA 服务器交互。以下是配置 Python 客户端的步骤。
- 首先,确保 Python 版本为 3.7 或更高,并安装必要的 Python 包:
pip install carla
- 创建一个 Python 脚本,连接到 CARLA 服务器。以下是一个基础示例:
import carla
# 连接到 CARLA 服务器
client = carla.Client('localhost', 2000)
client.set_timeout(10.0)
# 获取 CARLA 世界对象
world = client.get_world()
# 打印当前地图名称
print(world.get_map().name)
运行这个脚本,如果成功连接到 CARLA 服务器,它将打印当前地图的名称。
第一个自动驾驶 Demo
现在,我们来实现一个简单的 Demo:生成一辆车,并让它沿着道路行驶。
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_points = world.get_map().get_spawn_points()
# 随机选择一个生成点
spawn_point = random.choice(spawn_points)
# 生成车辆
vehicle = world.spawn_actor(vehicle_bp, spawn_point)
# 设置车辆为自动驾驶模式
vehicle.set_autopilot(True)
# 让车辆行驶 10 秒
import time
time.sleep(10)
# 销毁车辆
vehicle.destroy()
这个 Demo 会生成一辆特斯拉 Model 3,并让它自动驾驶 10 秒,然后销毁车辆。
避坑指南
- 端口冲突 :CARLA 默认使用 2000 端口,如果端口被占用,可以修改启动参数:
./CarlaUE4.sh -carla-rpc-port=3000
然后在 Python 客户端中修改端口号:
client = carla.Client('localhost', 3000)
-
Python 版本兼容性 :CARLA 对 Python 版本要求较严格,建议使用 Python 3.7 或 3.8。
-
CARLA 版本与 Python 客户端版本不匹配 :确保 CARLA 服务器和 Python 客户端的版本一致,否则可能会遇到 API 不兼容的问题。
-
显卡驱动问题 :如果启动 CARLA 时出现图形渲染错误,请确保安装了最新的 NVIDIA 驱动。
进阶建议
-
官方文档 :CARLA 官方文档(https://carla.readthedocs.io/)是学习 CARLA 的最佳资源,包含了详细的 API 说明和教程。
-
社区论坛 :CARLA 有一个活跃的社区论坛(https://github.com/carla-simulator/carla/discussions),遇到问题时可以在这里寻求帮助。
-
修改 Demo:尝试修改上面的 Demo,比如生成多辆车、添加行人、使用不同的传感器等,这样可以更深入地理解 CARLA 的功能。
-
探索更多功能 :CARLA 支持丰富的传感器(如摄像头、激光雷达、雷达等)和复杂的交通场景,可以尝试实现更复杂的自动驾驶功能。
结语
通过本文,你已经完成了 CARLA 的环境搭建、Python 客户端配置,并实现了第一个自动驾驶 Demo。CARLA 的功能非常强大,建议你继续探索官方文档和社区资源,逐步掌握更多高级功能。尝试修改 Demo 代码,或者实现自己的自动驾驶算法,这将帮助你更快地成长为一名自动驾驶开发者。
