本赛事使用 CARLA 仿真环境开展自动驾驶算法评测。主办方提供测试环境、算法范本和 SDK;参赛方完成算法开发与本地测试后,提交算法 Docker 镜像。
1 系统组成
Docker 镜像包含程序及其运行环境,启动后以容器形式运行。测试平台由以下组件组成。
Controller 测试管理:接收任务、安排场景、启动和结束测试、整理结果。
Host 仿真环境:提供道路、车辆、交通环境和传感器信息。
Client 算法容器:包含 SDK、算法、依赖和模型权重,负责读取环境信息并提交驾驶动作。
容器通过平台内部网络通信,连接设置由平台提供。算法通过指定 SDK 与 Host 交换数据。正式比赛只提交 Client 算法镜像,其他组件由主办方部署。
标准车配置
标准车采用基于林肯 MKZ 2017 的 IVFC 定制仿真车型,配有赛事涂装和车顶外观组件,沿用基础车型的行驶与控制设置。
标准车配备以下 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 安装与使用环境要求与资源下载
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标准车技术手册
