第二章 环境搭建:Ubuntu系统配置、CARLA源码编译、Prescan安装与许可激活
说实话,搞自动驾驶仿真这行,环境搭建往往是劝退率最高的环节。我见过太多人卡在这一步,明明代码逻辑都懂,就是跑不起来。嗯,今天咱们就把这块硬骨头啃下来。
2.1 Ubuntu系统配置——打好地基
我个人习惯用Ubuntu 20.04 LTS,原因很简单:稳定,而且CARLA和Prescan对它的支持最成熟。你问我为什么不用22.04?我在项目里试过,Prescan的许可服务在22.04上偶尔会抽风,排查起来特别头疼。
2.1.1 基础环境准备
装完系统第一件事,更新源和驱动。别跳过这步,我曾经图省事直接装CARLA,结果编译到一半报显卡驱动不兼容,白白浪费两小时。
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装基础开发工具
sudo apt install build-essential cmake git wget -y
# 显卡驱动(以NVIDIA为例)
sudo apt install nvidia-driver-470 -y
2.1.2 依赖库安装
CARLA编译需要一堆依赖库。说白了,就是告诉系统:我要用这些工具,你提前准备好。我整理了一个清单,照着装就行:
| 依赖库 | 用途 | 安装命令 |
|---|---|---|
| Python3.8 | CARLA脚本接口 | sudo apt install python3.8 python3.8-dev |
| libpng-dev | 图像处理 | sudo apt install libpng-dev |
| libtiff5-dev | 纹理加载 | sudo apt install libtiff5-dev |
| libjpeg-dev | JPEG解码 | sudo apt install libjpeg-dev |
ldconfig -p | grep libcarla 检查一下。如果啥都没输出,说明库没装全。
2.2 CARLA源码编译——从零开始造轮子
为什么非要源码编译?直接用预编译包不香吗?你想想看,预编译包是别人配好的环境,你没法改底层代码。做仿真场景互导时,我经常需要修改CARLA的传感器模型,这时候源码编译就是必须的了。
2.2.1 下载源码
CARLA的GitHub仓库大概2GB左右,网速慢的话建议用代理。我记得第一次下载时等了快一小时,结果中途断了,气得我直接写了个断点续传脚本。
git clone https://github.com/carla-simulator/carla.git
cd carla
git checkout tags/0.9.13 # 我推荐这个版本,Prescan兼容性最好
2.2.2 编译过程
编译CARLA分三步:先编译UE4引擎,再编译CARLA插件,最后打包资源。每一步都可能踩坑,我一个个说。
- 编译UE4:运行
./Setup.sh,它会自动下载UE4源码。这里注意,磁盘空间至少留80GB,不然编译到一半报空间不足,那叫一个崩溃。 - 编译CARLA插件:运行
make CarlaUE4Editor,大概需要40分钟。我习惯泡杯咖啡等着,顺便看看编译日志,提前发现警告信息。 - 打包资源:运行
make package,生成可执行文件。这一步如果报错,八成是Python依赖没装全。
fatal error: 'rpc/rpc.h' file not found,查了半天发现是libtirpc-dev没装。所以编译前一定跑一遍 sudo apt install libtirpc-dev。
2.3 Prescan安装与许可激活——老司机的经验之谈
Prescan的安装比CARLA简单,但许可激活是个坑。我帮三个同事远程解决过激活问题,总结下来就两点:网络环境和系统时间。
2.3.1 安装步骤
Prescan的安装包是ISO文件,挂载后运行安装脚本就行。注意,安装路径不要有中文,Prescan对Unicode支持不太好。
# 挂载ISO
sudo mount -o loop Prescan_2021.1.iso /mnt
# 运行安装
cd /mnt
sudo ./install.sh
# 安装完成后卸载ISO
sudo umount /mnt
2.3.2 许可激活
Prescan的许可分两种:节点锁定(Node-Locked)和浮动许可(Floating)。我个人推荐节点锁定,简单稳定。浮动许可虽然灵活,但一旦服务器挂了,所有客户端都用不了。
激活流程:
- 打开Prescan,点击Help -> License Manager
- 选择Node-Locked,输入许可文件路径
- 点击Activate,等待验证
sudo ntpdate ntp.aliyun.com。
2.4 知识体系总览
说了这么多,我画张图帮你理清思路。环境搭建的核心逻辑就是:系统打底 -> 工具编译 -> 许可激活,环环相扣。
这张图你看懂了吗?说白了,环境搭建就是一条流水线。系统装好了,依赖配齐了,CARLA和Prescan才能顺利跑起来。我刚开始做的时候也犯过傻,跳过系统配置直接装CARLA,结果编译报错一堆,最后老老实实重装系统。
好了,环境搭建就聊到这儿。记住,这一步慢点没关系,基础打牢了,后面做场景互导才能顺风顺水。