保姆级教程:在Ubuntu 20.04上从源码编译Carla 0.9.14(含Python 3.8环境配置与常见编译错误修复)
深度指南:Ubuntu 20.04系统下Carla 0.9.14源码编译全流程解析
自动驾驶仿真平台Carla的源码编译一直是开发者面临的挑战之一,尤其是在较新的操作系统和Python环境下。本文将详细介绍在Ubuntu 20.04 LTS系统中从源码编译Carla 0.9.14的完整流程,特别针对Python 3.8环境配置和常见编译错误提供解决方案。
1. 环境准备与系统配置
在开始编译Carla之前,确保系统环境满足基本要求至关重要。Ubuntu 20.04默认使用较新的软件包版本,这既带来了优势也引入了新的兼容性问题。
1.1 基础依赖安装
首先更新系统并安装必要的开发工具:
sudo apt update && sudo apt upgrade -y
sudo apt install build-essential clang-8 lld-8 g++-9 cmake ninja-build \
libomp-dev libpng-dev libjpeg-dev libtiff-dev libssl-dev \
python3-dev python3-pip python3-setuptools python3-wheel \
libgl1-mesa-dev libglu1-mesa-dev xorg-dev freeglut3-dev
注意:Ubuntu 20.04默认使用clang-8而非clang-6,这是与早期版本的主要区别之一
1.2 Python环境管理
Carla 0.9.14官方推荐使用Python 3.8环境。建议使用conda创建独立环境:
conda create -n carla python=3.8 -y
conda activate carla
pip install --upgrade pip
pip install numpy pygame setuptools nose2
为验证环境配置正确,执行以下检查:
- Python版本:
python --version应显示3.8.x - GCC版本:
gcc --version应显示9.x.x - Clang版本:
clang --version应显示8.x.x
2. Unreal Engine 4.26安装与配置
Carla 0.9.14需要Unreal Engine 4.26支持,以下是详细安装步骤:
2.1 获取Unreal Engine源码
- 注册Epic Games账户并关联GitHub账号
- 接受Epic Games组织邀请
- 克隆指定版本的Unreal Engine仓库:
git clone -b 4.26 https://github.com/EpicGames/UnrealEngine.git ~/UnrealEngine-4.26
2.2 编译Unreal Engine
进入源码目录执行编译:
cd ~/UnrealEngine-4.26
./Setup.sh
./GenerateProjectFiles.sh
make -j$(nproc)
编译过程可能需要数小时,取决于硬件配置。完成后验证:
~/UnrealEngine-4.26/Engine/Binaries/Linux/UE4Editor
2.3 环境变量配置
将以下内容添加到 ~/.bashrc 文件末尾:
export UE4_ROOT=~/UnrealEngine-4.26
export PATH="$UE4_ROOT/Engine/Binaries/Linux:$PATH"
执行 source ~/.bashrc 使配置生效。
3. Carla 0.9.14源码编译
3.1 获取Carla源码
克隆Carla仓库并切换到0.9.14版本:
git clone https://github.com/carla-simulator/carla.git ~/carla
cd ~/carla
git checkout 0.9.14
3.2 解决依赖问题
执行以下命令安装Carla特定依赖:
sudo apt install libboost-all-dev libxerces-c-dev libproj-dev \
libgeos++-dev libopenscenegraph-dev libtinyxml2-dev
对于Ubuntu 20.04特有的依赖冲突,可能需要手动调整:
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-8 100
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-8 100
3.3 编译流程
Carla编译分为几个关键步骤:
-
基础构建 :
make setup make PythonAPI -
核心组件编译 :
make LibCarla make CarlaUE4Editor -
打包发布 :
make package
完整编译可能需要4-8小时,建议使用 -j$(nproc) 参数并行编译。
4. 常见问题与解决方案
4.1 Python相关错误
问题1 : ImportError: libboost_python38.so.1.72.0: cannot open shared object file
解决方案:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/carla/Build/boost-1.72.0-install/lib
问题2 :Python API编译失败
检查并确保:
- conda环境已激活
- Python版本为3.8.x
- 已安装所有Python依赖
4.2 Unreal Engine集成问题
问题 :CarlaUE4项目无法正确加载
解决方案:
- 确认UE4_ROOT环境变量设置正确
- 检查Unreal Engine版本是否为4.26
- 重新生成项目文件:
cd ~/carla/Unreal/CarlaUE4 ../../../UnrealEngine-4.26/Engine/Build/BatchFiles/Linux/GenerateProjectFiles.sh
4.3 图形驱动问题
对于NVIDIA显卡用户,确保安装最新驱动:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-driver-450
5. 运行与验证
完成编译后,可通过以下方式启动Carla:
-
服务器模式 :
cd ~/carla/Unreal/CarlaUE4/Binaries/Linux ./CarlaUE4 -quality-level=Epic -carla-server -
Python客户端 :
cd ~/carla/PythonAPI/examples python3 manual_control.py
关键验证点:
| 组件 | 验证方法 | 预期结果 |
|---|---|---|
| 服务端 | 查看终端输出 | 显示地图加载信息 |
| 客户端 | 运行示例脚本 | 可连接并控制车辆 |
| PythonAPI | 导入carla模块 | 无报错,功能正常 |
6. 性能优化建议
-
编译参数调整 :
- 使用
make -j$(nproc)充分利用多核CPU - 对于内存不足的情况,减少并行任务数
- 使用
-
运行时优化 :
./CarlaUE4 -quality-level=Low -benchmark -fps=20 -
资源管理 :
- 关闭不必要的图形效果
- 使用
-nosound参数禁用音频 - 考虑使用无头模式运行
在实际项目中,我们发现使用SSD存储可以显著提升场景加载速度,特别是在处理大型地图时。另外,保持系统swap空间充足(建议至少16GB)能够避免因内存不足导致的崩溃问题。
更多推荐
所有评论(0)