在开始Carla Leaderboard的征程前,正确的环境配置是成功的一半。许多开发者在第一步就因版本问题折戟沉沙。以下是经过实战验证的配置方案:
重要提示:切勿随意升级pip版本!保持pip版本在21.0以下可避免90%的依赖冲突问题
常见依赖缺失问题解决方案:
bash复制# 解决libgeos-dev缺失问题
sudo apt-get install -y libgeos-dev libgl1-mesa-glx
# 解决OpenGL相关错误
sudo apt-get install -y libglu1-mesa-dev freeglut3-dev mesa-common-dev
官方推荐的Dockerfile模板中,基础镜像配置是关键:
dockerfile复制FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04
在Dockerfile的"BEGINNING OF USER COMMANDS"区域,需要特别注意以下配置:
dockerfile复制# 必须安装的核心依赖
RUN apt-get update && apt-get install -y \
clang \
python-opencv \
libqt5core5a \
cmake \
qtbase5-dev \
python3-tk
# Python包管理技巧(避免版本冲突)
RUN pip install --upgrade "pip<21.0" && \
pip install setuptools==45.0.0 wheel==0.34.2
| 错误类型 | 解决方案 | 验证方法 |
|---|---|---|
| pip版本冲突 | 锁定pip<21.0 | pip --version |
| 缺少GEOS库 | 安装libgeos-dev | ldd检查二进制依赖 |
| CUDA不兼容 | 匹配驱动与CUDA版本 | nvidia-smi检查 |
| 内存不足 | 增加swap空间 | free -h查看 |
推荐使用以下参数启动,平衡性能与资源消耗:
bash复制./CarlaUE4.sh -quality-level=Low -world-port=2000 \
-carla-rpc-port=2000 -benchmark -fps=10
创建test_run.sh时,这些参数至关重要:
bash复制export SCENARIOS=${LEADERBOARD_ROOT}/data/all_towns_traffic_scenarios_public.json
export ROUTES=${LEADERBOARD_ROOT}/data/routes_devtest.xml
export TEAM_AGENT=${LEADERBOARD_ROOT}/leaderboard/autoagents/human_agent.py
export DEBUG_CHALLENGE=1 # 必须开启调试模式
对于本地开发机,这些调整可以显著提升体验:
当测试失败时,优先检查这些关键日志:
code复制# Carla服务器日志
CarlaUE4.log # 位于Carla根目录
# Python端错误
leaderboard/record.log # 运行记录
scenario_runner/logs/ # 场景执行详情
在Docker容器内调试时,可以使用这些方法:
bash复制# 进入运行中的容器
docker exec -it <container_id> /bin/bash
# 实时查看日志
docker logs -f <container_id>
# 使用VS Code远程调试
code --remote attach <container_id>
在将Docker镜像提交到云端前,请确保完成以下验证:
经验法则:本地测试覆盖的场景越多,云端失败的概率越低。建议至少完成50次不同条件的本地测试再提交
Q:Docker构建时出现"pip升级失败"错误
dockerfile复制RUN python -m pip install --upgrade "pip<21.0"
Q:缺少libGL.so.1等OpenGL库
bash复制RUN apt-get install -y libgl1-mesa-glx libglib2.0-0
Q:场景运行到一半卡死
Q:传感器数据异常
Q:云端测试结果与本地不一致
Q:Docker镜像上传失败