第一章:课程导论与环境准备
大家好,欢迎来到这门实战课程。我是你们的老朋友,一个在自动驾驶仿真和高精地图领域摸爬滚打了好几年的工程师。今天咱们正式开始第一讲——课程导论与环境准备。
说实话,每次带新人入门,我最怕的就是环境配置这一步。明明代码逻辑都懂,结果卡在编译上三天三夜,心态直接崩了。所以这一章,我会把坑都提前指出来,让你少走弯路。
1.1 Carla高精地图生态介绍
先聊聊Carla。这个仿真器,说白了就是自动驾驶界的「我的世界」。它开源、灵活,而且对高精地图的支持越来越完善。
我个人习惯把Carla的地图生态分成三层:
- 基础路网层:OpenDRIVE格式,描述道路拓扑、车道线、交通标志。这是Carla原生支持的。
- 语义层:包括交通信号灯、停止线、人行横道等。Carla用自定义的JSON文件来管理。
- 动态层:车辆、行人、天气。这些由Carla的Python API控制。
你想想看,高精地图在仿真里扮演什么角色?它就像给自动驾驶车配了一副「透视眼镜」。车还没到路口,地图已经告诉它前面是左转车道还是直行车道。我在做项目时遇到过,有些团队直接用Carla默认地图跑算法,结果换到真实道路场景就各种失灵——问题就出在地图精度上。
核心观点:Carla的高精地图导入,本质上是把OpenDRIVE格式的路网数据,转换成Carla引擎能理解的二进制路网。这一步做不好,后面的感知、规划、控制全是空中楼阁。
1.2 课程目标与学习路径
这门课的目标很明确:让你从零开始,掌握Carla高精地图的导入、编辑、验证全流程。具体来说,学完你能做到:
- 独立完成OpenDRIVE地图的导入与调试
- 使用RoadRunner或手动编辑路网文件
- 在Carla中验证地图的拓扑正确性
- 编写Python脚本批量处理地图数据
嗯,这里要注意,我们不搞花架子。每一章我都会带着你动手操作。代码示例、配置文件、踩坑记录,全部打包给你。
1.3 双系统环境搭建
说到环境,我建议你准备一台性能还行的电脑。至少16GB内存,独立显卡(NVIDIA GTX 1060以上),固态硬盘。Carla这玩意儿,吃配置得很。
我个人推荐双系统方案:Windows用来日常办公和文档编辑,Ubuntu用来跑Carla和编译源码。为什么?因为Carla在Linux下的性能更稳定,而且很多依赖库在Ubuntu上装起来更省心。
1.3.1 Ubuntu 20.04安装要点
- 下载Ubuntu 20.04 LTS镜像,用Rufus制作启动U盘
- 分区建议:/ 分区50GB,/home 分区100GB,swap 分区16GB
- 安装时选择「最小安装」,省去不必要的软件包
小技巧:安装完成后,先换国内源。我用的是清华源,速度飞快。命令:sudo sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
1.3.2 Windows环境准备
Windows这边,主要用来跑RoadRunner(地图编辑工具)和查看文档。你需要安装:
- Visual Studio 2022(C++开发组件)
- CMake 3.20以上
- Python 3.8(注意版本,Carla 0.9.14只支持到3.8)
我曾经在Windows上试过直接编译Carla,结果折腾了两天,各种DLL缺失。后来老老实实切到Ubuntu,半小时搞定。所以,听我一句劝:编译Carla,请用Ubuntu。
1.4 Carla 0.9.14源码编译安装
好,重头戏来了。Carla 0.9.14的源码编译,我把它拆成五个步骤。每一步我都会告诉你「为什么这么做」,而不是机械地复制粘贴。
1.4.1 下载源码
git clone https://github.com/carla-simulator/carla.git
cd carla
git checkout 0.9.14
为什么要指定版本?因为Carla的API变化很快。0.9.14是一个相对稳定的版本,而且对高精地图的支持比较成熟。我见过有人直接拉master分支,结果编译到一半发现依赖冲突,那叫一个酸爽。
1.4.2 安装依赖
sudo apt-get update
sudo apt-get install build-essential clang-8 lld-8 cmake ninja-build \
libvulkan1 python3-dev python3-pip python3.8-dev \
libpng-dev libtiff5-dev libjpeg-dev tzdata sed curl \
unzip autoconf libtool rsync libxml2-dev
这里有个坑:clang版本必须用8。我之前试过clang-10,结果编译到一半报错,查了半天才发现是编译器版本不兼容。嗯,Carla对编译器版本很挑剔。
1.4.3 编译Carla
export CC=/usr/bin/clang-8
export CXX=/usr/bin/clang++-8
make setup
make launch
make setup这一步会下载很多依赖库,包括Unreal Engine的修改版。这个过程比较慢,取决于你的网速。我建议你找个网络好的时间段,泡杯咖啡慢慢等。
注意:编译过程中如果报错,先检查磁盘空间。Carla编译需要至少30GB空闲空间。我遇到过有人编译到99%报错,一看磁盘满了,那叫一个崩溃。
1.4.4 编译Python API
make PythonAPI
这一步会生成Python客户端库。编译完成后,你会看到PythonAPI/carla/dist/目录下有个carla-0.9.14-py3.8-linux-x86_64.egg文件。这就是我们要的。
1.4.5 验证安装
启动Carla服务端:
./CarlaUE4.sh -quality-level=Low
然后打开另一个终端,运行:
cd PythonAPI/examples
python3 spawn_npc.py -n 10
如果能看到10辆车在场景里跑,恭喜你,环境搭建成功了。
1.5 避坑指南
最后,分享几个我踩过的坑:
- 显卡驱动:NVIDIA驱动版本不要太高。我试过535版本,Carla启动直接黑屏。后来降到525,一切正常。
- Python版本:Carla 0.9.14只支持Python 3.8。别用3.9或3.10,否则API调用会报错。
- 内存不足:编译时如果内存不够,可以加
make launch -j2限制并行任务数。我16GB内存的机器,用-j4编译没问题。
好了,第一章的内容就到这里。环境搭好了,后面咱们才能放开手脚搞地图。下一章,我会带你深入OpenDRIVE格式,手把手解析路网文件。到时候见!
课后作业:按照本章步骤,在Ubuntu上成功编译Carla 0.9.14,并截图发给课程助手。有任何问题,随时在群里交流。