2. 环境搭建

说实话,搞自动驾驶仿真这行,环境搭建往往是劝退率最高的环节。我见过太多人卡在这一步,明明代码逻辑都懂,就是跑不起来。嗯,今天咱们就把这块硬骨头啃下来。

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
注意:驱动版本别乱选。CARLA对CUDA版本有要求,我建议装470或525系列,太新或太旧都可能出问题。

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插件,最后打包资源。每一步都可能踩坑,我一个个说。

  1. 编译UE4:运行 ./Setup.sh,它会自动下载UE4源码。这里注意,磁盘空间至少留80GB,不然编译到一半报空间不足,那叫一个崩溃。
  2. 编译CARLA插件:运行 make CarlaUE4Editor,大概需要40分钟。我习惯泡杯咖啡等着,顺便看看编译日志,提前发现警告信息。
  3. 打包资源:运行 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)。我个人推荐节点锁定,简单稳定。浮动许可虽然灵活,但一旦服务器挂了,所有客户端都用不了。

激活流程:

  1. 打开Prescan,点击Help -> License Manager
  2. 选择Node-Locked,输入许可文件路径
  3. 点击Activate,等待验证
注意:激活时确保系统时间准确。我遇到过因为时间偏差超过5分钟,激活失败的案例。建议激活前先同步NTP:sudo ntpdate ntp.aliyun.com。

2.4 知识体系总览

说了这么多,我画张图帮你理清思路。环境搭建的核心逻辑就是:系统打底 -> 工具编译 -> 许可激活,环环相扣。

环境搭建知识体系 Ubuntu 20.04 LTS 系统依赖:驱动、库、Python CARLA源码编译 Prescan安装与激活 场景互导环境就绪

这张图你看懂了吗?说白了,环境搭建就是一条流水线。系统装好了,依赖配齐了,CARLA和Prescan才能顺利跑起来。我刚开始做的时候也犯过傻,跳过系统配置直接装CARLA,结果编译报错一堆,最后老老实实重装系统。

我的建议:装完环境后,写个脚本一键检查所有依赖。我自己的脚本会检测CUDA版本、Python路径、Prescan许可状态,省得每次手动排查。

好了,环境搭建就聊到这儿。记住,这一步慢点没关系,基础打牢了,后面做场景互导才能顺风顺水。