一、课程导论:Prescan与CARLA联合仿真概述、应用场景与课程目标

1.1 为什么我要讲这门课?

做自动驾驶仿真这些年,我踩过不少坑。说实话,最头疼的问题就是——单一仿真工具根本不够用。

Prescan 做传感器建模确实强,毫米波雷达、激光雷达、摄像头,参数调起来很顺手。但它的场景编辑器,嗯,怎么说呢,有点「老派」。你想做个复杂的城市交通流,或者让行人突然横穿马路,Prescan 自己搞起来挺费劲的。

CARLA 正好相反。开源、场景丰富、支持深度强化学习,社区活跃。但它的传感器模型,坦白讲,精度不如 Prescan。尤其是激光雷达的反射率模拟,差那么点意思。

所以我就想:能不能把两者结合起来?

Prescan 负责传感器仿真,CARLA 负责场景和交通流。各取所长,岂不美哉?

这就是这门课的初衷。我把自己摸索出来的联合仿真方法,整理成了一套可复用的流程。你跟着走一遍,就能搭建起自己的联合仿真平台。

核心观点:Prescan + CARLA 不是替代关系,而是互补关系。Prescan 提供高保真传感器模型,CARLA 提供灵活的场景引擎。两者结合,1+1 > 2。

1.2 联合仿真到底能干什么?

我直接给你列几个实际场景,你感受一下:

  • 传感器在环测试:用 Prescan 生成高精度雷达点云,注入到 CARLA 的自动驾驶算法中,看看算法对噪声的鲁棒性。我在项目中遇到过,某款激光雷达在雨天反射率下降 30%,算法直接失效。这种问题,纯 CARLA 仿真根本发现不了。
  • 复杂交通流验证:CARLA 可以生成 100 辆车的密集交通流,Prescan 负责采集这些车的传感器数据。你想想看,如果只用 Prescan,你要手动配置 100 辆车的轨迹,得配到猴年马月?
  • 边缘场景生成:比如「鬼探头」——行人突然从停着的公交车前窜出来。CARLA 可以随机化行人的出现位置和时机,Prescan 精确记录传感器响应。这种场景,我建议至少跑 1000 次,才能覆盖大部分 corner case。
  • 算法对比验证:同一个场景,用 Prescan 的传感器模型和 CARLA 的传感器模型分别跑一遍,对比感知算法的输出差异。说白了,就是给算法做「交叉验证」。

我的经验:联合仿真最适合做「传感器模型敏感性分析」。我曾经用这套方法,发现某款摄像头在低光照条件下,对红色物体的识别延迟比绿色物体高 50ms。这个结论,单靠 CARLA 的简单摄像头模型是测不出来的。

1.3 课程目标:学完你能带走什么?

我不喜欢画大饼。这门课的目标很具体,就三个:

  1. 搭建联合仿真平台:从零开始,把 Prescan 和 CARLA 跑通,实现数据双向传输。Prescan 发控制指令给 CARLA,CARLA 回传场景状态给 Prescan。
  2. 掌握核心接口:Prescan 的 Python API 和 CARLA 的 Python API,怎么对接?数据格式怎么转换?时间同步怎么处理?这些我都会手把手带你过一遍。
  3. 完成一个实战项目:用联合仿真平台,跑一个「自动紧急制动(AEB)」的测试用例。从场景设计、传感器配置、算法注入,到结果分析,全流程走通。

注意:这门课不是 Prescan 或 CARLA 的入门教程。你需要对这两个工具的基本操作有了解。如果你完全没用过,建议先花一周时间,把官方教程跑一遍。

1.4 知识体系总览

下面这张图,是我梳理的课程知识结构。你一看就明白:

Prescan与CARLA联合仿真实战课程 · 知识体系 基础环境搭建 核心接口开发 实战项目演练 Prescan安装配置 CARLA安装配置 网络通信配置 Prescan Python API CARLA Python API 数据格式转换 时间同步机制 AEB场景设计 传感器配置 算法注入 结果分析 最终目标:搭建可复用的联合仿真平台 基础环境 核心接口 实战项目

1.5 你需要准备什么?

工欲善其事,必先利其器。我建议你准备好以下环境:

组件 推荐版本 备注
操作系统 Ubuntu 20.04 / 22.04 Windows 也能跑,但坑多。我建议用 Linux
Prescan 8.6.0 及以上 需要正版 License,教育版也行
CARLA 0.9.13 及以上 推荐 0.9.14,稳定性最好
Python 3.7 - 3.9 CARLA 对 Python 版本有要求,别用 3.10+
显卡 NVIDIA GTX 1060 及以上 显存至少 6GB,否则跑不动

避坑指南:我曾经在 Ubuntu 22.04 上装 Prescan 8.5,结果死活连不上 License Server。后来发现是系统库版本不兼容。所以,如果你不想折腾,直接用 Ubuntu 20.04 + Prescan 8.6,这个组合我验证过,最稳。

1.6 写在最后

这门课不会讲太多理论。我信奉「动手出真知」。每一章都有可运行的代码,你照着敲一遍,比看十遍书都管用。

嗯,准备好了吗?我们开始吧。

可可精品资料库