参赛指南

参赛指南

  本赛事使用 CARLA 仿真环境开展自动驾驶算法评测。主办方提供测试环境、算法范本和 SDK;参赛方完成算法开发与本地测试后,提交算法 Docker 镜像。

1 系统组成

  Docker 镜像包含程序及其运行环境,启动后以容器形式运行。测试平台由以下组件组成。

  Controller 测试管理:接收任务、安排场景、启动和结束测试、整理结果。

  Host 仿真环境:提供道路、车辆、交通环境和传感器信息。

  Client 算法容器:包含 SDK、算法、依赖和模型权重,负责读取环境信息并提交驾驶动作。

 
图 1 系统组成与通信关系

  容器通过平台内部网络通信,连接设置由平台提供。算法通过指定 SDK 与 Host 交换数据。正式比赛只提交 Client 算法镜像,其他组件由主办方部署。

标准车配置

  标准车采用基于林肯 MKZ 2017 的 IVFC 定制仿真车型,配有赛事涂装和车顶外观组件,沿用基础车型的行驶与控制设置。

 
图 2 IVFC 定制林肯 MKZ 标准车外观示意

  标准车配备以下 12 个传感器,覆盖车辆前后及两侧。

传感器

数量

布置位置

简要参数

RGB 相机

6 个

前向、后向、左前、右前、左后、右后

图像分辨率 1600×900

毫米波雷达

5 个

前向、左前侧、右前侧、左后、右后

量程 250 米

激光雷达

1 个

车顶

32 线,水平 360° 扫描,量程 70 米

  各类传感器每仿真秒采样 10 次。测试开始时车辆保持制动,等待算法接管。

2 环境要求与资源下载

  建议使用 Linux 测试机。运行软件包括 Docker、NVIDIA 驱动和 NVIDIA Container Toolkit。算法范本基于 Ubuntu 22.04。

本地测试配置参考

项目

配置参考

CPU

建议 12 个逻辑 CPU 或以上

内存

建议 32 GiB 或以上,并预留系统运行空间

GPU

NVIDIA A100 40 GB

磁盘

建议保留 100 GiB 或以上可用空间

比赛测试环境

CPU:Intel Platium * 16 Core
内存:128 GB
GPU:NVIDIA A100 40 GB * 1

资源下载

资源

用途与入口

本地测试套件

Host、Controller 配套组件与示例场景

docker pull ivfc-registry.cn-beijing.cr.aliyuncs.com/ivfc/webber-manus:client-v20261014

算法范本镜像

carla-frenetix

docker pull ivfc-registry.cn-beijing.cr.aliyuncs.com/ivfc/webber-manus:host-v20261014

SDK 安装包

carla_io_sdk 及使用说明

见附件

基础软件安装

  Docker Engine:按官方 Ubuntu 安装说明完成安装与检查。

  NVIDIA Container Toolkit:安装显卡驱动后,配置容器的显卡访问。

评测运行环境

  后台会在固定 Docker 环境中运行参赛方镜像。当前运行方式如下:

docker run --rm \
  --network carla-net \
  --read-only --tmpfs /tmp:size=2g \
  --cap-drop ALL --security-opt no-new-privileges:true \
  --shm-size 1g \
  -v [CONFIG_DIR]:/config:ro \
  -v [OUTPUT_DIR]:/output \
  -e CARLA_BRIDGE_CONFIG=/config/bridge.json \
  -e CARLA_HOST_TOKEN=[HOST_TOKEN] \
  [IMAGE]:latest

  其中 [CONFIG_DIR] 为评测配置目录,[OUTPUT_DIR] 为评测输出目录,[HOST_TOKEN] 为 Host 鉴权令牌,[IMAGE] 为参赛镜像名称。其余环境变量见本节末表格,由主办方按同样的 -e 方式注入。容器的工作目录由镜像自身的 WORKDIR 决定,主办方不再另行指定。算法需要 GPU 时,主办方另行添加 --gpus all。

  主办方导入镜像的方式:

docker load -i myteam-algo.tar
docker image inspect myteam-algo:l

  以下是测评中内容的最重要事项:

  • 容器内不挂载参赛方代码,算法必须完整包含在镜像内。

  • 评测输入数据会挂载到 /config,其中 bridge.json 是 SDK 连接配置,route.json 是路线文件(可能不存在)。

  • 环境变量由主办方注入,入口脚本应优先读取环境变量,并保留固定路径作为默认值。

  • 结果输出目录为 /output,可写;根文件系统为只读,临时文件请写入 /tmp。

  • 容器内不联网,只能访问 Host 的 HTTP 地址;不得连接 CARLA 的 2000 / 2001 / 2002 端口。

  • 容器以非特权模式运行,全部 capabilities 已丢弃;入口进程必须前台运行并受时间上限约束。

环境变量

变量

默认值

说明

CARLA_BRIDGE_CONFIG

/config/bridge.json

SDK 配置文件路径

CARLA_ROUTE_FILE

/config/route.json

路线文件路径,可能不存在

CARLA_OUTPUT_DIR

/output

输出目录

CARLA_MAX_SIM_SECONDS

120

仿真时间上限,按 timestamp 判定

CARLA_MAX_WALL_SECONDS

400

墙钟时间硬上限,防止程序挂死

CARLA_HOST_TOKEN

——

Host 鉴权令牌

  两个时间上限的区别:仿真时间只在 CARLA 推进帧时前进,是评测计分的实际时长;墙钟时间始终在走,用于防止程序挂死。实时倍率低于 1 时两者差距较大(例如 6 路激光雷达下约 0.32 倍),两个上限都必须遵守。

3 安装与使用环境要求与资源下载

 
图 3 参赛流程

Docker 镜像使用

  1. 准备运行环境。安装 Docker 与显卡支持组件,确认 Docker 和显卡可用。

  2. 导入镜像。下载本地测试套件和算法范本,核对版本与完整性后,按照配套说明导入 Docker。

  3. 启动测试环境。通过配套入口启动 Controller 和 Host,等待环境就绪后选择测试场景。

  4. 运行算法范本。运行 carla-frenetix,检查任务是否完成及日志、结果是否生成。

  5. 结束测试。保存场景名称和运行结果,按套件说明关闭本次任务。

SDK 安装

  从赛事入口下载 carla_io_sdk。使用算法范本时,检查镜像内的 SDK 版本;已安装指定版本的环境可直接运行配套示例。

  自行制作算法镜像时,按照 SDK 安装说明,将指定版本安装到算法使用的运行环境中,并在打包前完成安装检查。SDK 不得修改、替换或升级。

SDK 使用

  测试开始后,算法通过 SDK 获取环境与任务信息,计算驾驶动作并提交控制,循环执行至任务结束。连接设置由测试平台提供。

  接入自研算法时,保留示例运行流程,替换驾驶决策部分,并将模型权重和依赖一并放入算法镜像。完成后按相同步骤进行本地测试。

4 算法参考与本地测试

算法选择

  初次参赛建议使用 carla-frenetix 完成环境检查和示例测试,再接入自研算法。

测试步骤

  1. 运行检查。确认镜像可离线启动,无需人工输入或额外文件,并能自动结束。

  2. 场景测试。运行指定场景,记录任务完成情况、驾驶行为和失败原因。

  3. 提交前复测。导出最终镜像,重新导入测试,确认提交版本与测试版本一致。

评测运行要求

  算法仅通过指定 SDK 与 Host 通信。评测期间不访问互联网,不临时下载模型或安装依赖;结果与临时文件保存在平台指定位置,其他文件保持只读。

  算法需要 GPU 时,由主办方配置显卡访问。默认仿真时间上限为 120 秒,实际运行时间上限为 400 秒;运行时遵守平台下发的两类时限。

5 作品提交

  提交物为算法 Docker 镜像归档。镜像须包含运行环境、SDK、算法代码、全部依赖和模型权重,启动后自动运行并输出日志。

镜像内容要求

  镜像导入后必须可以直接运行,不需要任何额外的文件挂载或命令行参数。

  镜像内必须包含算法运行所需的全部内容:基础系统、Python 运行环境、第三方依赖、carla_io_sdk、算法代码与模型权重。

  不要依赖评测时在线下载模型、安装额外依赖或人工干预。

  不要依赖交互式输入,例如 input()、确认提示、图形界面等。

  镜像内必须安装主办方指定的 carla_io_sdk。参赛方不得替换、升级或修改该 SDK。后台会在评测前校验镜像内的 SDK 版本与文件哈希。

可参考的范本镜像

  主办方提供的算法镜像范本为 carla-frenetix,其结构如下:

项目

范本镜像 carla-frenetix

平台

linux/amd64

基础系统

Ubuntu 22.04

Python 环境

独立虚拟环境 /opt/planner-venv

算法入口

/opt/carla-planner/carala_client_planner.py

第三方依赖

已全部预装在镜像内

工作目录

/workspace

入口设置

ENTRYPOINT ["/ros_entrypoint.sh", "python", "/opt/carla-planner/carala_client_planner.py"]

推荐约定

  • 使用 ENTRYPOINT 指定入口,不要只设置 CMD,避免运行时被覆盖。

  • 入口必须是前台运行的单一主进程,日志输出至 stdout 或 stderr。不要使用后台守护方式或进程管理器。

  • 入口脚本必须受时间上限约束,正常结束返回 0,异常返回非 0。

  • 建议以非 root 用户运行。

  • 镜像内不要包含与本算法无关的大体积文件,例如数据集、其他镜像层。

关于多个镜像标签的说明

  • 归档文件中可能包含多个镜像或多个标签。主办方按 manifest.json 中 RepoTags 的顺序导入,并以其中第一个标签对应的镜像作为评测对象。

  • 因此,请确保归档中只包含一个镜像,或保证第一个标签就是参赛方要提交的镜像。

  • 若归档内存在多个镜像,最终被评测的可能不是参赛方预期的那个。

提交步骤

  1. 导出镜像。使用 Docker 镜像导出功能生成 .tar 或 .tar.gz 文件,不使用 .zip、.7z 或 .rar。

  2. 整理归档。每个提交目录仅保留一个镜像归档,建议归档中只包含一个待评测算法镜像。

  3. 上传网盘。将归档上传至百度网盘,生成包含提取码的完整分享链接,并检查文件可访问。

  4. 填写提交文件。按提交规范的示例,在 JSON 文件的 url 一项填写完整分享链接,提取码包含在链接中。文件名使用简单英文或数字,例如 submission.json。

  5. 提交并核对。向赛事入口提交 JSON 文件,核对提交状态,保持网盘文件和分享链接有效。

  镜像归档上传至网盘,JSON 文件提交至赛事入口。

提交检查

  1. 镜像平台为 linux/amd64,SDK 为原版 carla_io_sdk。

  2. 代码、模型和依赖完整,离线运行无需人工操作。

  3. 最终镜像已重新导入并完成测试,日志与结果可读取。

  4. 提交目录仅有一个 .tar 或 .tar.gz 归档。

  5. JSON 文件格式正确,文件名不包含特殊字符。

  6. 分享链接有效,且链接内包含提取码。

  提交后保留镜像归档、JSON 文件、分享链接、测试结果及提交回执。

6 文档下载

  文档包含参赛者手册、CARLA仿真平台调试手册和CARLA标准车技术手册

附件【carla-controller-0.3.1.zip】
附件【carla-io-sdk-0.3.1.zip】
附件【参赛手册与仿真文档.zip】