Ubuntu 20.04 部署 CARLA 0.9.14:从版本适配到 PythonAPI 重装的避坑指南

张开发
2026/4/6 4:56:14 15 分钟阅读

分享文章

Ubuntu 20.04 部署 CARLA 0.9.14:从版本适配到 PythonAPI 重装的避坑指南
1. 为什么选择 Ubuntu 20.04 CARLA 0.9.14 组合最近在给实验室搭建自动驾驶仿真环境时我花了整整三天时间才搞定 CARLA 0.9.14 在 Ubuntu 20.04 上的部署。这个组合看似简单但实际安装过程中会遇到各种版本适配的坑。先说结论如果你用的是近三年购买的硬件设备Ubuntu 20.04 是最稳妥的选择。我最初尝试用 18.04结果网卡和蓝牙驱动直接罢工连WiFi都连不上。CARLA 0.9.14 虽然是2022年的版本但它的稳定性经过大量项目验证。最新版的 CARLA 虽然功能更炫酷但对硬件要求更高而且很多第三方插件还没适配。就像我导师常说的做研究要选成熟稳定的工具而不是追新。这里特别提醒使用 Nvidia 30/40系显卡的同学一定要先装好闭源驱动否则连 Unreal Engine 编辑器都打不开。2. 系统环境准备避坑第一关2.1 硬件驱动那些事儿装系统前先到主板官网查清楚网卡型号。我的华硕天选4笔记本就栽在这——它的 MediaTek MT7922 无线网卡直到 Ubuntu 20.04.5 才获得官方支持。如果你发现装完系统连不上网络可以先用手机USB共享网络然后执行sudo apt update sudo ubuntu-drivers autoinstall显卡驱动更要命。曾经因为没装驱动CARLA 启动时报错 Vulkan not supported。后来用下面这套组合拳搞定sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt install nvidia-driver-535 nvidia-settings装完记得验证nvidia-smi如果看到显卡信息就稳了。千万别用开源 nouveau 驱动性能差不说还容易导致 UE4 崩溃。2.2 基础依赖安装官方文档说装个 build-essential 就行实际远不止这些。这是我整理的全家桶sudo apt install clang-10 lld-10 g-9 cmake ninja-build libvulkan1 python3-dev libomp5重点说下 clang 的问题。CARLA 0.9.14 强制要求 clang-10但 Ubuntu 20.04 默认是 clang-12。解决办法很暴力sudo apt remove clang-12 sudo apt install clang-10如果遇到 E: Unable to locate package clang-10先更新源sudo apt-add-repository deb http://apt.llvm.org/focal/ llvm-toolchain-focal-10 main wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -3. Python 环境最头疼的版本适配3.1 Anaconda 的甜蜜陷阱很多教程推荐用 Anaconda但这恰恰是最大的坑我最初在 conda 环境用 Python 3.10编译时自动生成 py3.10 的包结果运行时报 Segmentation fault。后来查官方文档才发现猫腻make PythonAPI ARGS--python-version3.8这个参数很多人会忽略。CARLA 0.9.14 官方只明确支持到 Python 3.8虽然 3.7 也能跑但部分传感器数据会解析错误。我的建议是完全不用 conda直接用系统 Python 3.8如果必须用 conda创建环境时指定版本conda create -n carla python3.83.2 依赖库版本锁定即使 Python 版本对了第三方库版本不对照样翻车。这是我验证过的版本组合库名可用版本危险版本numpy1.21.6≥1.22.0pygame2.1.2≥2.2.0opencv-python4.5.5.64≥4.6.0用这个命令一键安装正确版本pip install numpy1.21.6 pygame2.1.2 opencv-python4.5.5.644. 编译安装魔鬼在细节里4.1 源码编译三件套官方文档把编译过程说得太轻松了。实测这三个命令至少要跑1小时16核i964G内存make LibCarla # 耗时约25分钟 make package # 注意硬盘要有50G空间 make PythonAPI ARGS--python-version3.8遇到卡死别慌先检查内存是否不足可用htop查看是否开了 VPN某些地区访问 GitHub 会超时终端是否开了代理会导致 wget 下载失败4.2 常见编译错误处理错误1fatal error: carla/rpc/LightState.h file not found这是因为 UE4 头文件路径问题。解决export CARLA_BUILD_PATH/path/to/carla/Unreal/CarlaUE4错误2ERROR: Vulkan not supported检查显卡驱动后还需要sudo apt install vulkan-utils vulkaninfo | grep GPU5. PythonAPI 重装最后的救赎当所有努力都失败时终极解决方案就是重装 PythonAPI。注意这不是简单的 make clean而是全套组合拳make clean make LibCarla make package make PythonAPI ARGS--python-version3.8重装后测试时务必指定 Python 版本python3.8 spawn_npc.py -n 50有个隐藏技巧编译前先修改PythonAPI/util/setup.py把bdist_egg改成develop这样修改代码后无需重新编译。6. 实战检验跑通第一个Demo验证安装是否成功我习惯用这个四步测试法启动服务端./CarlaUE4.sh -quality-levelLow另开终端运行python3.8 manual_control.py观察是否有警告日志按 H 键查看帮助菜单能否正常显示如果车辆能正常操控但地图显示粉红色那是 Vulkan 着色器编译问题。执行cd ~/.cache/UnrealEngine/Common/ rm -rf DerivedDataCache/7. 性能优化技巧在 RTX 3060 上测试时默认设置只能跑 30fps。通过这几个参数可以提升到 60fps./CarlaUE4.sh -benchmark -fps60 -quality-levelLow关键参数说明-RenderOffScreen无GUI模式节省30%资源-carla-server纯服务端模式-nosound禁用音频子系统对于深度学习应用建议在config.py中修改settings { synchronous_mode: True, fixed_delta_seconds: 0.05 }8. 避坑总结新硬件优先选 Ubuntu 20.04别死磕 18.04Python 版本必须锁定 3.8conda 环境要特别注意编译失败先看内存和网络别急着重装系统Vulkan 问题多由显卡驱动引起重装 PythonAPI 比重新编译整个工程更快最后分享个血泪教训千万别在办公室网络环境下编译我司的防火墙把 GitHub 请求拦截了三次每次都是编译到一半失败。后来用手机热点一次过。如果遇到奇怪问题换个网络环境可能就解决了。

更多文章