CARLA自动驾驶仿真入门指南:从环境搭建到第一个仿真场景

1次阅读
没有评论

共计 2149 个字符,预计需要花费 6 分钟才能阅读完成。

image.webp

1. CARLA 仿真平台简介

CARLA 是一个开源的自动驾驶仿真平台,基于 Unreal Engine 构建,提供高度可配置的传感器模拟和环境控制能力。它的核心特点包括:

CARLA 自动驾驶仿真入门指南:从环境搭建到第一个仿真场景

  • 高精度物理引擎:支持车辆动力学、传感器物理模拟
  • 模块化设计:地图、车辆、传感器均可自由组合
  • Python API:提供便捷的编程接口控制仿真

架构上分为服务端 (Server) 和客户端 (Client) 两部分:

graph LR
    A[Client-PythonAPI] --> B[Server-UnrealEngine]
    B --> C[传感器数据]
    B --> D[物理仿真]

2. 环境搭建指南

系统要求

  • Ubuntu 18.04/20.04 (推荐)或 Windows 10
  • NVIDIA 显卡(建议 GTX 1080 以上)
  • 至少 50GB 可用磁盘空间

安装步骤

  1. 安装依赖项:
sudo apt-get install -y \
    python3-pip \
    libomp5 \
    libpng16-16
  1. 下载预编译包(以 0.9.13 版本为例):
wget https://carla-releases.s3.eu-west-3.amazonaws.com/Linux/CARLA_0.9.13.tar.gz
tar -xzf CARLA_0.9.13.tar.gz
  1. 安装 Python 依赖:
pip3 install --user pygame numpy

3. Python API 基础使用

基础代码框架

import carla
import random

# 连接服务器
client = carla.Client('localhost', 2000)
client.set_timeout(10.0)  # 设置超时

# 加载地图
world = client.load_world('Town01')

# 生成车辆蓝图库
blueprint_library = world.get_blueprint_library()
car_bp = random.choice(blueprint_library.filter('vehicle.*'))

# 设置生成点
spawn_points = world.get_map().get_spawn_points()
spawn_point = random.choice(spawn_points)

# 生成车辆
vehicle = world.spawn_actor(car_bp, spawn_point)
print(f'Spawned {car_bp.id} at {spawn_point.location}')

添加传感器示例

# 添加 RGB 摄像头
camera_bp = blueprint_library.find('sensor.camera.rgb')
camera_bp.set_attribute('image_size_x', '800')
camera_bp.set_attribute('image_size_y', '600')

# 将摄像头安装在车辆上
camera_transform = carla.Transform(carla.Location(x=1.5, z=2.4))
camera = world.spawn_actor(camera_bp, camera_transform, attach_to=vehicle)

# 定义传感器回调函数
def camera_callback(image):
    image.save_to_disk('output/%06d.png' % image.frame)

# 注册回调
camera.listen(camera_callback)

4. 常见问题解决

渲染问题

  • 黑屏 / 花屏:尝试禁用集成显卡,确保使用 NVIDIA 显卡
  • 低帧率:在 CarlaSettings.ini 中降低质量设置

连接失败

try:
    client = carla.Client('localhost', 2000)
    client.set_timeout(2.0)
    world = client.get_world()
except RuntimeError:
    print("请先启动 CARLA 服务端: ./CarlaUE4.sh")

5. 性能优化建议

  • 使用 --quality-level=Low 启动服务端
  • 减少同时活跃的物理对象数量
  • 对于 AI 车辆,设置适当的traffic_manager.global_percentage_speed_difference

6. 创建自定义场景

尝试修改以下参数:

# 修改天气
weather = carla.WeatherParameters(
    cloudiness=80.0,
    precipitation=30.0,
    sun_altitude_angle=70.0)
world.set_weather(weather)

# 生成行人
pedestrian_bp = random.choice(blueprint_library.filter('walker.*'))
pedestrian = world.spawn_actor(pedestrian_bp, random.choice(spawn_points))

进阶学习资源

  1. CARLA 官方文档
  2. CARLA GitHub 仓库
  3. 自动驾驶仿真技术白皮书

通过本文的实践,你应该已经能够搭建基础仿真环境并运行简单场景。建议下一步尝试构建完整的感知 - 决策 - 控制闭环系统,或探索更复杂的地图场景。

正文完
 0
评论(没有评论)