第一章:课程导学与环境搭建
大家好,我是你们这门课的主讲。在自动驾驶这个行当摸爬滚打了快十年,踩过的坑比走过的路还多。今天咱们开始第一讲——说白了,就是先把家伙事儿备齐了。
你可能会问:为什么非得用CARLA?我直接用真实数据不行吗?嗯,这个问题我当年也纠结过。真实数据当然好,但成本太高了。一次路测下来,油钱、人工、设备损耗,再加上各种审批流程,折腾一天可能就采集了几百帧数据。而在CARLA里,你可以在十分钟内模拟出各种极端场景——暴雨、夜晚、突然窜出的行人。我个人习惯是先用仿真把算法跑通,再去实车验证,效率能翻好几倍。
1.1 CARLA模拟器简介
CARLA是个开源的自动驾驶仿真平台。它基于Unreal Engine 4开发,画面效果相当不错。你想想看,它能提供什么?
- 高保真视觉渲染:光照、天气、路面材质都模拟得很真实
- 灵活的传感器套件:摄像头、激光雷达、毫米波雷达、GPS/IMU,想装几个装几个
- 交通流模拟:可以生成各种车辆和行人,模拟真实交通场景
- Python API:这是咱们的重点,通过Python就能控制整个仿真世界
我记得2019年刚接触CARLA时,它才到0.9.6版本。那时候文档少,社区也不大,遇到问题只能自己翻源码。现在好多了,0.9.14版本已经相当成熟,社区也很活跃。
核心观点:感知算法验证不能只靠真实数据。仿真环境能让你低成本、高效率地测试算法在各种极端条件下的表现。说白了,就是让你的算法在"温室"里先长结实了,再放到"野外"去历练。
1.2 感知算法验证的意义
做感知算法的人都知道,模型在训练集上跑得再好,到了新场景也可能翻车。为什么会这样?因为真实世界的分布太复杂了——光照变化、天气影响、传感器噪声、遮挡物,这些因素排列组合起来,你的模型根本没见过。
我曾经在一个项目中,把目标检测模型在KITTI数据集上训到了90%以上的mAP。结果一上路,遇到个逆光场景,模型直接漏检了前方停着的卡车。差点出事。从那以后,我特别重视在仿真环境里做充分的验证。
用CARLA做感知验证,有几个实实在在的好处:
- 可控性:你可以精确控制天气、光照、交通密度,复现特定场景
- 可重复性:同样的场景可以跑一百遍,确保算法表现稳定
- 安全性:在仿真里撞车不花钱,不伤人
- 效率:一天能跑几千个场景,实车测试根本做不到
1.3 课程目标与学习路径
这门课的目标很明确:让你能独立在CARLA上搭建感知算法验证流程。具体来说,学完这门课,你应该能:
- 熟练安装和配置CARLA 0.9.14
- 用Python API控制车辆、传感器和场景
- 部署目标检测、语义分割、深度估计等感知算法
- 设计自动化验证流程,评估算法性能
- 分析仿真结果,定位算法缺陷
学习路径我建议这样走:先搭环境,再学API基础,然后逐步深入到具体算法验证。别急着跳步,我见过太多人一上来就想跑复杂的多传感器融合,结果环境都没配好,折腾两天放弃了。
我的建议:每学完一章,一定要动手实践。光看不练,等于白学。代码这东西,写一遍和看一遍,效果天差地别。
1.4 Windows/Linux双系统环境配置
说到环境配置,这可是个老大难问题。我当年第一次装CARLA,在Windows上折腾了整整一天,各种依赖缺失、版本冲突。后来换了Linux,半小时搞定。所以我的建议是:能用Linux就别用Windows。
但考虑到很多同学可能只有Windows电脑,咱们两种系统都讲。
Windows系统配置
- 操作系统:Windows 10/11 64位
- CPU:Intel Core i5以上或AMD Ryzen 5以上
- 内存:16GB以上(我建议32GB)
- 显卡:NVIDIA GTX 1060以上,6GB显存
- 硬盘:至少50GB空闲空间
- Python:3.7或3.8版本
Linux系统配置(推荐)
- 操作系统:Ubuntu 20.04或22.04
- CPU:Intel Core i5以上
- 内存:16GB以上
- 显卡:NVIDIA GTX 1060以上
- 硬盘:至少50GB空闲空间
- Python:3.7或3.8版本
注意:如果你用Windows,一定要确保显卡驱动是最新的。我曾经遇到过因为驱动版本太旧,CARLA启动后画面全是花屏的情况。更新驱动后就好了。
1.5 CARLA 0.9.14安装与启动
好,咱们开始动手。安装CARLA 0.9.14其实不复杂,但有几个坑要注意。
下载与解压
去CARLA官网的GitHub Release页面下载0.9.14版本的压缩包。Windows用户下载 .zip 文件,Linux用户下载 .tar.gz 文件。下载后解压到你想放的目录,比如 D:\CARLA_0.9.14 或 /home/yourname/CARLA_0.9.14。
启动CARLA服务器
打开终端(Windows用命令提示符或PowerShell),进入CARLA目录,运行:
# Windows
CarlaUE4.exe
# Linux
./CarlaUE4.sh
第一次启动可能会慢一些,因为要加载各种资源。看到出现一个3D城市画面,就说明启动成功了。
小技巧:启动时可以加一些参数,比如 CarlaUE4.exe -quality-level=Low 可以降低画质,提高运行速度。如果你的显卡不太给力,这个参数很管用。
常见问题
启动时如果报错,多半是显卡驱动或依赖库的问题。我遇到过最坑的一次,是在Ubuntu上缺少了 libomp5 库,CARLA直接崩溃。解决办法很简单:
sudo apt-get install libomp5
1.6 Python API客户端配置
CARLA服务器跑起来了,咱们还需要一个客户端来跟它通信。这个客户端就是用Python写的。
安装Python依赖
CARLA自带了Python API的安装包,在 PythonAPI/carla/dist/ 目录下。找到对应你Python版本的 .egg 或 .whl 文件,用pip安装:
# 进入CARLA目录
cd PythonAPI/carla/dist
# 安装carla包(以Python 3.7为例)
pip install carla-0.9.14-cp37-cp37m-win_amd64.whl # Windows
pip install carla-0.9.14-cp37-cp37m-linux_x86_64.whl # Linux
测试连接
安装完成后,写个简单的Python脚本来测试:
import carla
import random
# 连接到CARLA服务器
client = carla.Client('localhost', 2000)
client.set_timeout(10.0)
# 获取世界对象
world = client.get_world()
# 获取所有蓝图
blueprint_library = world.get_blueprint_library()
# 生成一辆车
vehicle_bp = blueprint_library.filter('vehicle.*')[0]
spawn_point = random.choice(world.get_map().get_spawn_points())
vehicle = world.spawn_actor(vehicle_bp, spawn_point)
print(f"车辆已生成,ID: {vehicle.id}")
# 让车辆动起来
vehicle.set_autopilot(True)
# 等5秒
import time
time.sleep(5)
# 清理
vehicle.destroy()
print("测试完成")
如果运行后看到"车辆已生成"和"测试完成"的打印信息,说明环境配置成功了。
重要提醒:一定要先启动CARLA服务器,再运行Python客户端。顺序反了会报连接超时。我刚开始学的时候就犯过这个错,还以为是代码写错了。
知识体系总览
下面这张图展示了本章的核心知识结构,你可以对照着检查自己是否都掌握了:
这张图把本章的内容串起来了。从CARLA是什么,到为什么要用它做验证,再到具体怎么搭环境,最后用Python API跑通第一个示例。每一步都是环环相扣的。
好了,环境搭好了,代码也跑通了。接下来你就可以开始真正探索CARLA的世界了。记住,动手实践是最好的学习方式。遇到问题别慌,先看看日志,再查查文档,实在不行去社区问问。我当年就是这么过来的。
可可精品资料库