先说清楚整台车要完成什么,再谈任何一个算法。否则你学到的是零件,不是机器。
从一个路口开始
雨后傍晚,一辆车沿支路驶向城市十字路口,距离路口还有 80 米。导航的指令很简单:前方右转,汇入主路。但现场没那么简单——主路车流持续通过;一辆深色轿车正从主路的相邻车道向汇入目标车道切过来(这个动作叫 cut-in,横向切入);路口边一排施工锥桶,把入口边界向左挪了半个车道,而地图还不知道这件事。
接下来的十几秒里,这台车要连续回答一串问题:我在哪条支路、目标车道在哪里?主路上有什么、那辆切入的轿车现在什么状态?它们下一秒会怎么动?我该等待还是汇入?如果汇入,走一条什么样的曲线、什么速度?这串问题,就是接下来八章的目录。这个路口也会跟着我们走完全程——每一章处理它的一层,最后一章看它出了事之后怎么办。
这一章先不进任何算法,只做一件事:把整台车的任务和信息管线摆上桌面,让后面每一章都知道自己在哪个位置、接谁的输入、交付给谁。
任务是什么:四个词,互相打架
自动驾驶的任务不是"识别更多目标",而是把人从 A 送到 B,并且同时满足四个条件——课件把它们列为轨迹的四条需求:驾驶安全(不撞)、符合交规(不违章)、体感舒适(不顿挫)、高效便捷(不磨蹭)。
注意这四条是互相冲突的。一辆在路口永远等到主路完全清空才汇入的车,安全、合规、舒适三条全满分,但高效为零——乘客会骂,后车会按喇叭。整个自动驾驶工程,本质上是在这四个目标之间做带约束的权衡;后面你会看到,几乎每一层的设计争论(保守还是激进、规则还是学习)最终都能翻译回这四个词的取舍。
任务成立还有一个前提条件,行业里叫 ODD(运行设计域):系统被设计用于哪些道路、天气、光照和速度范围。它划定"任务在哪些条件下成立",超出这个范围,系统有权也有义务说"我不干"。本线里它只作为背景出现,记住这个词就够。
管线:信息从哪进,沿哪流,交给谁
从工程上看,车载系统是一条连续链路。课件的数据流图是这样的:
传感器(雷达、相机、GPS/IMU)→ 数据接收与多传感器融合 → 地图信息 / 语义信息 / 智能体信息 / 定位信息 → 轨迹预测 + 行为决策(车道保持、跟车、超车、换道)→ 运动规划(路径规划、轨迹优化)→ 横纵向控制与执行。
翻译成本线的章节:定位与导航回答"我在哪、往哪走"(第 2 章),感知恢复"周围有什么"(第 3 章),预测推演"它们会怎么动"(第 4 章),决策选择"我做什么"(第 5 章),规划生成"具体怎么动"(第 6 章),控制去执行。每一环都有明确的上游输入和下游交付物——这个"接口"视角是全线最重要的一个习惯:**评价任何模块,先问它消费什么、交付什么,再问它内部用了什么算法。**一个离线指标漂亮但输出格式、时序、坐标系无法被下一环稳定消费的模块,对整车毫无价值。
还有一件事是这条静态管线表达不了的,课件用一张三步并道图补上了:一辆车想汇入主路,第一步,没人让路,一边试探性靠近、一边准备随时退出;第二步,后车减速让行了,开始并入;第三步,完成汇入。驾驶决策不是一次性算出答案,而是在别人反应不确定的情况下边试探边调整——这张图请记住,它是第 4 章(交互预测)和第 5 章(POMDP 决策)的种子。
两种造法:规则栈与学习栈
同一条管线,行业里有两种造法,课件把两张真实架构图摆在一起对照。
Baidu Apollo:四层堆栈——硬件、软件核心(地图引擎、定位、感知、预测、规划、控制各自独立成模块)、应用软件、工具服务。每个模块单独设计、单独调试、单独迭代,模块之间用明确定义的接口通信。这是模块化路线,代表还有 Waymo。
Tesla FSD:图上几乎只有三块——训练基础设施、神经网络(Occupancy + 车道与目标 → 规划)、数据引擎(自动标注、仿真)。感知到规划被揉进网络里,工程重心从"设计模块"移到了"喂数据"。这是端到端路线,代表还有理想、Momenta。
两条路线的输入和输出完全一样:传感器进,转向/油门/刹车出。差别全在中间——中间是几十个手工设计的模块,还是一张(或几张)神经网络。行业的方案代际也沿着这条线演进,课件给的时间轴是:2021 年前靠高精地图,2022 年 BEV 无图方案,2023 年 Occupancy 通用障碍物,2024 年端到端,2025 年 VLA。
本线的读法是:第 2-6 章沿模块化管线走——不是因为模块化更先进,而是因为每个模块对应驾驶任务里一个绕不开的子问题(定位、感知、预测、决策、规划),这些问题不会因为架构换成端到端就消失,只会换一种形式被解决;第 7 章再回来看端到端怎么重组这条管线,第 8 章看两种造法共同面对的终极考题——怎么证明车真的会开。
这一环容易出错
管线视角下,最常见的三类系统性错误,先立此存照:
- 只看零件不看机器:介绍一个感知或规划模型时,说不清它在整车管线中的上游依赖和下游用途——这样的理解是悬空的。
- 接口错配:局部模型离线得分很高,但输出的格式、时序或坐标系无法被下一环稳定消费,好成绩烂贡献。
- 局部最优不等于全局最优:各模块分头优化自己的指标(检测 mAP、预测 minADE),却没有共同服务于"安全高效地通过这个路口"——第 7 章讲端到端时,这一条会成为核心论据。
接到下一环
管线边界清楚了。回到那个 80 米外的路口,第一个现实问题是:**车怎么知道自己在哪条支路上,怎么知道该在这个路口右转、汇入的是哪条车道?**答案不在传感器里,在定位、地图和导航里——下一章从手机导航屏幕上那行"85 米后通过路口"讲起。
本章速查
| 概念 | 一句话 |
|---|---|
| 任务四条 | 安全、合规、舒适、高效——互相冲突,全线的争论都是它们的取舍 |
| ODD | 系统被设计可用的道路/天气/光照/速度范围,任务成立的前提 |
| 管线 | 定位导航 → 感知 → 预测 → 决策 → 规划 → 控制,每环有明确输入和交付物 |
| 接口视角 | 评价模块先问消费什么、交付什么;离线高分 ≠ 下游可用 |
| 三步并道 | 决策是边试探边调整的交互过程,不是一次性求解 |
| 规则栈 vs 学习栈 | Apollo(模块化)与 Tesla FSD(网络+数据引擎);输入输出相同,中间不同 |
| 方案代际 | 高精地图(2021 前) → BEV(2022) → Occupancy(2023) → 端到端(2024) → VLA(2025) |
材料来源
| 课程 | 章节 | 页码 | 用在哪 |
|---|---|---|---|
| C | C-00 自动驾驶决策规划简介 | p6, p21-p25 | Apollo 与 Tesla FSD 架构对照、SAE 分级背景、数据流图、三步并道图 |
| B | B-01 端到端自动驾驶概述与课程介绍 | p4-p6, p13 | 功能技术链路、模块化 vs 端到端阵营对照 |
| B | B-04 基于 Query 的端到端 Planner | p6 | 轨迹四条需求(安全/合规/舒适/高效) |
| A | A-01 端到端任务概述 | p7-p12, p20 | 方案代际时间轴、传统规控与端到端规控框图对照 |