海外访问:www.kdjingpai.com
Ctrl + D 收藏本站

CARLA 是一个开源的自动驾驶研究模拟器,基于 Unreal Engine 开发。它为研究人员提供了一个灵活的平台,用于开发、训练和验证自动驾驶系统。CARLA 支持多种传感器模拟,如摄像头、激光雷达和雷达,并提供丰富的城市地图、车辆和行人等数字资产。用户可以通过 Python API 或 C++ 控制仿真环境,调整天气、交通和场景等条件。CARLA 的设计目标是支持复杂交通场景的测试和多智能体交互研究,广泛应用于学术界和工业界。它的开源特性让用户可以免费使用并贡献代码,适合自动驾驶算法开发和测试。

 

功能列表

  • 传感器模拟:支持多种传感器,如 RGB 摄像头、激光雷达、雷达、深度传感器和 GPS,生成逼真的感知数据。
  • 交通场景生成:提供城市、郊区、高速公路等多种地图,支持动态交通流和行人行为模拟。
  • 灵活的 API:通过 Python 和 C++ API 控制仿真环境,包括车辆、行人、天气和交通规则。
  • 地图编辑:支持基于 ASAM OpenDRIVE 标准的自定义地图创建,可通过 RoadRunner 等工具生成。
  • 场景录制与回放:允许录制仿真过程并精确回放,方便比较不同配置的结果。
  • 多客户端架构:支持多个客户端同时控制不同智能体,适合多智能体研究。
  • ROS 集成:通过 ROS 桥接与机器人操作系统无缝连接,支持 AutoWare 等框架。
  • 交通管理:内置 Traffic Manager 控制 NPC(非玩家角色)行为,模拟真实交通挑战。
  • 物理模拟:集成 Chrono 库,支持高精度的车辆动力学和多体动力学模拟。

使用帮助

安装流程

要在本地使用 CARLA,用户需要安装并配置环境。以下是针对 Ubuntu 系统的安装步骤,Windows 用户可参考官方文档。

  1. 检查系统要求
    CARLA 支持 Unreal Engine 4.26 或 5.5 版本。推荐硬件配置为 Intel i7/i9(9-11代)或 AMD Ryzen 7/9,显卡需支持 DirectX 11 或以上,至少 16GB 内存和 50GB 磁盘空间。
  2. 下载 CARLA
    用户可以选择从 GitHub 下载预编译包或源码编译:

    • 预编译包:访问 CARLA 官网(http://carla.org)或 GitHub 发布页面(https://github.com/carla-simulator/carla/releases),下载最新版本(如 0.9.15)。解压后即可使用。
    • 源码编译:克隆 GitHub 仓库:
      git clone -b ue5-dev https://github.com/carla-simulator/carla.git CarlaUE5
      

      需要先关联 GitHub 账户与 Epic Games 以访问 Unreal Engine 5.5 仓库。

  3. 安装依赖
    进入 CARLA 根目录,运行安装脚本:

    cd CarlaUE5
    sudo -E env GIT_LOCAL_CREDENTIALS=github_username@github_token ./CarlaSetup.sh
    

    脚本会自动下载 Unreal Engine 5.5 和依赖项,可能需要输入 GitHub 凭据。Windows 用户需使用 Visual Studio 2022 的 x64 Native Tools 命令提示符运行类似命令。

  4. 编译 CARLA
    在 CARLA 根目录运行:

    cmake -G Ninja -S . -B Build --toolchain=$PWD/CMake/Toolchain.cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_ROS2=ON
    

    编译完成后,运行 ./CarlaUE4.sh 启动模拟器。

  5. 安装 Python 客户端库
    CARLA 提供 Python API,需安装客户端库:

    pip3 install carla
    

    推荐在虚拟环境中安装,避免版本冲突。支持 Python 2.7、3.6、3.7 和 3.8。

使用主要功能

  1. 启动模拟器
    运行 ./CarlaUE4.sh -quality-level=epic(高质量)或 -quality-level=low(低配硬件)。模拟器启动后显示城市视角,等待客户端连接。
  2. 运行示例脚本
    CARLA 提供多个 Python 示例脚本,位于 PythonAPI/examples 目录。例如:

    • 生成交通:运行 python3 generate_traffic.py,在模拟器中生成动态车辆和行人。
    • 手动控制:运行 python3 manual_control.py,通过键盘和鼠标控制车辆,WASD 键移动,鼠标调整视角。
    • 传感器数据采集:运行 python3 03_RGB_camera.py,从 RGB 摄像头获取图像数据并保存。
  3. 操作 Traffic Manager
    Traffic Manager 控制 NPC 行为。示例:

    tm = client.get_trafficmanager()
    tm.set_desired_speed(vehicle, 30.0)  # 设置车辆速度为 30 km/h
    tm.set_percentage_random_left_lanechange(vehicle, 20.0)  # 20% 概率随机左换道
    

    可通过 API 设置 NPC 的速度、换道行为等。

  4. 自定义地图
    用户可通过 RoadRunner 或 OpenDRIVE 创建地图。导入地图到 CARLA:

    python3 import_map.py --path /path/to/your_map.xodr
    

    然后在模拟器中加载新地图。

  5. 录制与回放
    启动录制:

    client.start_recorder("recording01.log")
    

    回放录制:

    client.replay_file("recording01.log", start_time=0.0, duration=60.0)
    
  6. ROS 集成
    安装 ROS 桥接(https://github.com/carla-simulator/ros-bridge):

    git clone https://github.com/carla-simulator/ros-bridge.git
    

    启动 ROS 节点后,CARLA 可与 AutoWare 等框架交互。

特色功能操作

  • 传感器配置:通过 Python API 添加传感器到车辆。例如,添加 RGB 摄像头:
    blueprint_library = world.get_blueprint_library()
    camera_bp = blueprint_library.find('sensor.camera.rgb')
    camera = world.spawn_actor(camera_bp, carla.Transform(carla.Location(x=1.5, z=1.4)))
    camera.listen(lambda image: image.save_to_disk('output/%06d.png' % image.frame))
    
  • 多智能体模拟:通过多客户端架构,多个 Python 脚本可同时控制不同车辆。每个客户端连接到模拟器端口(默认 2000-2002)。
  • Chrono 物理模拟:启用 Chrono 库后,车辆动力学更真实,适合研究车辆控制和动态响应。配置方法参考官方文档(https://carla.readthedocs.io/en/latest/adv_chrono/)。

应用场景

  1. 自动驾驶算法开发
    研究人员使用 CARLA 测试感知、规划和控制算法。例如,通过模拟激光雷达和摄像头数据,训练深度学习模型进行目标检测和路径规划。
  2. 交通场景测试
    开发者可在 CARLA 中创建复杂交通场景,如交叉路口碰撞测试或恶劣天气下的驾驶,验证自动驾驶系统的鲁棒性。
  3. 教育与培训
    高校和培训机构使用 CARLA 教授自动驾驶原理。学生通过 Python API 实现简单控制算法,学习传感器数据处理和车辆控制。
  4. 多智能体研究
    CARLA 的多客户端架构适合研究多车辆协同驾驶,模拟车队通信或竞争性驾驶场景。

QA

  1. CARLA 支持哪些操作系统?
    CARLA 官方支持 Ubuntu 18.04 和 20.04,Windows 7 及以上版本。MacOS 暂无官方支持,但社区有部分非官方解决方案。
  2. 如何解决编译过程中的依赖问题?
    确保安装所有依赖(如 CMake、Ninja)。运行 CarlaSetup.sh 脚本会自动安装缺失依赖。若失败,检查官方 FAQ(https://carla.readthedocs.io/en/latest/faq/)。
  3. 可以离线运行 CARLA 吗?
    是的,CARLA 支持离线运行。下载预编译包或编译源码后,无需联网即可运行模拟器和脚本。
  4. 如何获取更多地图?
    下载额外地图包(如 Town06、Town07)或使用 RoadRunner 创建自定义地图,导入 OpenDRIVE 文件到 CARLA。
0已收藏
0已赞

相关推荐

找不到AI工具?在这试试!

输入关键词,即可 无障碍访问 必应 搜索,快速找到本站所有 AI 工具。

回顶部

zh_CN简体中文