时空联合规划专题:综合对比与附录¶
定位:本章是"时空联合规划"专题(T1–T6)的**收官综述章**。前六章各自纵向深入一个子问题——T1 Frenet/ST 图(解耦基线)、T2 时空走廊与搜索、T3 时空轨迹优化、T4 Apollo/Autoware 工业框架、T5 多智能体协调、T6 端到端与扩散式规划。本章做的是**横向打通**:把六章的方法摆在同一组坐标轴上对比,回答"它们到底是什么关系""什么场景该用哪个""学习路径怎么排""下一步去哪"。
与前六章的关系:前六章是"树",本章是"林"。读完前六章你掌握了每种方法的内部机理;读完本章你应当能在**方法空间里自由导航**——给定一个新问题,快速定位到该用哪一类方法、为什么、代价是什么。
阅读建议:本章可在学完任意几章后回看(作为阶段性地图),也可在全部学完后通读(作为体系化总结)。附录部分(论文清单、开源项目、跨大纲衔接、学习路线)是**长期参考资料**,不必一次读完,用到时查。
本章类型:综述/对比类,以横向分析和参考资料为主,几乎无代码——这与前六章(尤其 T1/T3/T6 的大量代码)形成互补。
本章目标¶
读完本章,你应当能够:
- 辨析 时空联合规划的四种范式(PVD 解耦迭代 / 走廊+QP / 连续优化 / 端到端生成)的本质差异,并解释它们在"时空联合程度"这条主轴上的递进关系。
- 选型 给定一个具体场景(高速结构化 / 城市动态交互 / 停车竞速 / 多机协调),快速定位到合适的方法类别,并说清选它的理由与代价。
- 评估 六章方法的 C++ 工程生态成熟度,理解为什么"前沿性"与"可落地性"在本专题里几乎是反相关的。
- 规划 根据自己的目标(自驾 / 多机 / 通用)和时间预算(6 周 / 10 周 / 16 周)选择合适的学习路线。
- 定位 本专题在更大的机器人规控图谱中的位置——它与 SLAM、无人机、机械臂、不确定性规划、博弈规划五个方向的衔接点在哪。
- 检索 用附录的论文清单(27 篇分级)和开源项目表(23 个分优先级)作为长期参考,按需深入。
本章导航¶
六章全景综合(先建立整体地图)
│
├── 四范式深度对比(时空联合程度这条主轴)
│ PVD 解耦迭代 → 走廊+QP → 连续优化 → 端到端生成
│
├── C++ 生态成熟度对比(前沿性 vs 可落地性的张力)
│
├── 选型决策(场景 → 方法的映射)
│
└── 学习路线(6/10/16 周三档 × 自驾/多机/通用三向)
▼
附录(长期参考)
A 论文精读路线(27 篇分级)
B 开源项目快速参考(23 个分优先级)
C 与其他大纲的衔接点
D 推荐学习路线(四条专项)
E 核心方法卡片速查(20 张标准化卡片)
▼
通向下一专题(不确定性规划 / 博弈规划)
一、六章全景综合¶
在做细致对比之前,先用一段话把六章串成一条逻辑线——这条线就是整个专题的"主旋律"。
一句话概括整个专题:时空联合规划要解决的核心问题是"空间和时间不可分离"——在动态交互环境里,"走哪条路"(空间)和"何时走多快"(时间)相互耦合,不能像静态环境那样先定路径再定速度。六章给出的,是从"假装能分离"(T1 解耦)到"承认不可分离"(T2–T6 各种联合化)的完整演进。
把六章按"时空联合的程度"从弱到强排开,恰好是一条清晰的递进:
T1 PVD 解耦 ── 空间和时间分两步定(先路径后速度),用 EM 迭代补偿耦合
│ "假装能分离,再迭代修正"
▼
T2 时空走廊+搜索 ── 在 (s,l,t) 三维空间里联合搜索安全区域,再在走廊内优化
│ "在联合空间里圈出安全地带"
▼
T3 连续优化 ── 把时间直接作为优化变量,一次求解完整时空轨迹
│ "时间是决策变量,联合到底"
▼
T4 工业框架 ── 把 T1-T3 的方法工程化,在真实系统里权衡取舍
│ "学术方法落地为工业代码"
▼
T5 多智能体 ── 从单体时空规划扩展到 N 体共享时空的去冲突
│ "联合的维度从'我'扩展到'我们'"
▼
T6 端到端生成 ── 让神经网络从数据直接生成时空轨迹,绕过显式建模
"不再手工建模,从数据学联合"
这条线有三个认知台阶(呼应专题总论的"三大认知跨越"):
- 台阶一(T1→T2/T3):从"先路径后速度"到"路径速度同时定"。 T1 的 PVD 是一种妥协——把难的联合问题拆成两个易解的子问题,代价是丢失耦合信息(再用 EM 迭代部分找回)。T2/T3 正面解决联合问题:T2 在联合空间搜索、T3 把时间当变量优化。
- 台阶二(→T5):从"单智能体"到"多智能体"。 单体的时空规划是"我如何在 (x,y,t) 找无碰撞轨迹";多体是"N 个智能体如何在共享 (x,y,t) 里互不冲突"。复杂度从多项式跳到 NP-hard。
- 台阶三(→T6):从"显式建模"到"数据驱动"。 T1–T5 都是人手设计代价、约束、求解器;T6 让网络从数据学出整套映射。这是范式的根本切换——从"工程师的智慧"到"数据的规模"。
本质洞察(贯穿全专题的一根主线):时空联合规划的历史,是一部**"如何处理时空耦合"的妥协史与解放史**。PVD(T1)为了让人手设计的求解器能实时运行而牺牲了耦合;T2/T3 用更强的搜索/优化把耦合赎回来,但受限于实时性只能处理中等规模;T6 用"离线训练承担计算、在线只做前向"彻底绕开了实时性约束,从而能直接生成完整时空轨迹——它在数学上回到了 T1 一开始就放弃的"完整轨迹直接优化",只不过用神经网络的离线训练换掉了在线求解的算力瓶颈。理解这一点,你就理解了为什么 T6 不是 T1–T5 的对立面,而是同一个问题在算力假设改变后的重新解答。
这条主线会在下面的四范式对比里进一步精确化。
二、四种范式深度对比¶
专题总论把时空联合规划归纳为四种范式。大纲给了一张对比表(下面会复列并大幅展开)。但**表格只是骨架**——真正有价值的是看清这四种范式在"时空联合程度"这条主轴上如何递进,以及每一步递进**换来了什么、付出了什么**。
先看骨架表,再逐范式深挖:
| 范式 | 代表方法 | 参数空间 | 时空联合程度 | 典型适用场景 | 章节 |
|---|---|---|---|---|---|
| PVD 解耦 + EM 迭代 | Apollo EM Planner | Frenet SL 图 + ST 图 | 半联合(迭代耦合) | 高速结构化道路 | T1, T4 |
| 时空走廊 + QP | SSC / EPSILON | (s,l,t) 三维 cube 序列 | 联合搜索 + 联合优化 | 城市动态交互 | T2 |
| 连续优化 | CILQR / TEB / OBCA / MINCO | (x,y,θ,v,t) 完整状态 | 完全联合 | 停车 / 局部规划 / 竞速 | T3 |
| 端到端生成 | UniAD / Diffusion Planner | (x_t, y_t) 轨迹序列 | 天然联合 | 复杂城市场景(实验中) | T6 |
范式一:PVD 解耦 + EM 迭代(半联合)¶
核心思想。 PVD(Path-Velocity Decomposition,路径-速度分解,Kant & Zucker 1986)是整个领域的起点:先在静态环境里规划一条几何路径 \(\sigma(s)\),再在这条路径上做速度规划 \(s(t)\)。两步各自是低维、可实时求解的问题。Apollo EM Planner 在此基础上加了 EM 迭代——Path 优化和 Speed 优化交替进行、互相用对方的结果更新约束,从而部分补偿"分两步"丢失的耦合。
时空联合程度:半联合。 为什么是"半"?因为联合不是在一次求解里完成的,而是通过 Path↔Speed 的**迭代**逐步逼近。每一轮内部仍是解耦的(要么固定速度优路径、要么固定路径优速度),只是多轮迭代后两者趋于一致。这比纯解耦(只做一轮)强,但比一次性联合求解弱。
换来了什么 / 付出了什么。 - 换来:实时性和工程可靠性。每个子问题都是凸的(或近凸的)、可用成熟 QP 求解器(如 OSQP)快速解,工业系统敢用。 - 付出:在强耦合场景失效。高速公路上路径和速度弱耦合(路基本是直的,主要决定速度),PVD 够用;但城市路口需要同时决定"绕行还是直行"(路径)和"加速还是减速"(速度),这种强耦合下,分两步迭代可能收敛到次优解,甚至来回震荡。
本质洞察:PVD 的本质是**用"问题分解"换"求解可行性"**。它赌的是"大多数场景里时空弱耦合"——这个赌注在高速公路上成立,在城市路口不成立。Apollo 用 EM 迭代给这个赌注上了保险(迭代补偿耦合),但保险不是万能的:迭代次数有限、每轮仍解耦,强耦合场景下它只能逼近、不能根治。这就是为什么 T2/T3 要彻底换一种思路。
范式二:时空走廊 + QP(联合搜索 + 联合优化)¶
核心思想。 不再先定路径——而是直接在 \((s,l,t)\) 三维联合空间里,把"安全可通行的区域"表示为一串**凸多面体(cube)的序列**(这就是时空走廊,spatio-temporal corridor)。先用搜索(如基于 ST 图的 DP、或时空 A*)找出走廊的大致骨架,再在走廊约束内用 QP 优化出一条平滑轨迹。代表是 HKUST 的 SSC(Spatio-temporal Semantic Corridor)和建立其上的 EPSILON 系统。
时空联合程度:联合搜索 + 联合优化。 这一步的关键跃迁是——安全区域本身就定义在时空联合空间里。走廊的每个 cube 同时约束了空间位置 \((s,l)\) 和时间 \(t\):"在 \(t_1\) 到 \(t_2\) 这段时间,车必须待在这个空间立方体内"。动态障碍(如横穿的行人)被表示为时空空间里的"禁入区",走廊自动绕开它。路径和速度不再分两步——它们被走廊的几何形状同时约束。
换来了什么 / 付出了什么。 - 换来:对动态交互的自然处理。横穿车流、切入车辆这类需要"时空配合"的场景,走廊能直接表达"何时该在哪",比 PVD 迭代更直接、更不易震荡。 - 付出:走廊生成的复杂度。如何从 ST 图/语义信息生成一串"既安全又不过度保守"的凸走廊,本身是个有难度的问题——走廊太窄会过保守(错过可行解),太宽会包含不安全区域。
对比性思维(范式二 vs 范式一):PVD 是"先选一条路,再看这条路上的时间怎么安排";走廊是"先圈出所有时空上安全的区域,再在里面找轨迹"。前者像"先订好路线再看红绿灯",后者像"先看清整个路口的时空通行规则,再规划怎么穿过"。后者天然适合动态交互,因为它从一开始就把时间当作约束的一部分,而不是事后补上的第二步。
范式三:连续优化(完全联合)¶
核心思想。 把**时间直接作为优化变量**,在完整状态空间 \((x,y,\theta,v,t)\) 里一次性求解整条时空轨迹。代表方法谱系很广:CILQR(约束迭代 LQR,把问题转成一串 LQR 子问题)、TEB(Timed-Elastic-Band,把轨迹建模成带时间戳的弹性带,用 g2o 稀疏图优化)、OBCA(Optimization-Based Collision Avoidance,把碰撞约束对偶化为可微形式,专攻泊车等紧凑场景)、MINCO/GCOPTER(最小控制量轨迹表示 + 时间分配优化,无人机轨迹生成的当代主力)。
时空联合程度:完全联合。 没有任何分解——空间、速度、时间在同一个优化问题里同时决定。时间可以是固定时域(如 MPC 的固定 horizon),也可以是优化变量(如 MINCO 的时间分配、CPC 的时间最优)。这是"时空联合"的最纯粹形态。
换来了什么 / 付出了什么。 - 换来:最优性和灵活性。一次性优化能找到全局协调的轨迹,且约束(动力学、碰撞、舒适)可以精确表达。竞速(CPC 时间最优)、泊车(OBCA 紧凑空间)这类对轨迹质量要求极高的场景,必须用连续优化。 - 付出:非凸性与实时性的矛盾。完整时空轨迹优化通常是非凸问题,求解慢、可能陷入局部最优、对初值敏感。这正是为什么 T1 当年要用 PVD 妥协——连续优化的数学最干净,但计算最吃力。各方法(CILQR 的二次近似、TEB 的稀疏结构、MINCO 的闭式梯度)本质都是在**想办法让这个非凸问题解得快一点**。
本质洞察(范式三是范式一的"理想反面"):范式一(PVD)和范式三(连续优化)是同一个问题的两极——PVD 为了实时性牺牲了联合性,连续优化为了联合性牺牲了实时性。中间的范式二(走廊)是一种折中(用搜索缩小范围、用 QP 保证凸性)。理解这个"实时性 vs 联合性"的根本权衡,就理解了 T1–T3 三章为什么会是这样的演进顺序——它们是在同一条权衡曲线上的三个不同取点。
范式四:端到端生成(天然联合)¶
核心思想。 让神经网络从数据中直接学出"观测 → 时空轨迹"的映射,输出带时间戳的轨迹点序列 \((x_t, y_t)\),完全绕过显式的路径/速度/代价建模。代表是 UniAD(模块化端到端,query 贯通感知-预测-规划)和 Diffusion Planner(扩散式,把轨迹生成建模为去噪过程)。
时空联合程度:天然联合。 网络输出的就是 \((x_t, y_t)\)——带时间戳的点序列,路径和速度信息浑然一体,从来就没有分开过。它不是"联合求解",而是"联合根本不是一个需要单独处理的问题"——因为网络直接吐出完整轨迹。
换来了什么 / 付出了什么。 - 换来:信息保真、目标一致、多模态。绕过人为接口(检测框、代价函数)避免了信息损失;端到端优化最终目标(把车开好)而非中间指标;扩散等生成模型天然表达多模态(路口"抢行 vs 让行"两个都合理的解)。 - 付出:可解释性与可验证性。神经网络是黑盒,无法形式化证明"绝不撞",这是它至今难以大规模量产的核心障碍。工业界的务实答案是"生成-验证"——用网络生成候选、用经典栈(正是 T1–T5 的方法)做安全兜底。
对比性思维(范式四 vs 范式一/二/三):前三种范式都是"人告诉机器怎么算"(设计代价、约束、求解器),第四种是"机器从数据学怎么算"。这不是程度差异,是**性质差异**。前三种的能力上限由工程师的设计水平决定,第四种由数据规模决定。长期看,数据驱动可能跑赢人工设计——但前提是解决可验证性。所以 T6 不是 T1–T5 的"替代者",而是"上游创意引擎 + 经典栈兜底"这种混合架构里的一半。
四范式的统一视角¶
把四种范式放在一起,可以看出一条清晰的**主轴递进**——时空联合程度从"半联合"(PVD 迭代)到"联合搜索优化"(走廊)到"完全联合"(连续优化)到"天然联合"(端到端)单调增强。但这条主轴的背后,是另一条暗线在起作用:
本质洞察(四范式背后的暗线):决定一个方法能做到多强"时空联合"的,是它**把计算负担放在哪里**。PVD 把计算放在"在线分步求解",所以只能半联合(实时约束下分步最省力);连续优化把计算放在"在线联合求解",所以能完全联合但慢;端到端把计算放在"离线训练",在线只做前向,所以能天然联合且快——它用训练时的海量算力,赎回了在线实时性这个一直卡着前三种范式的瓶颈。四种范式的递进,本质是"计算负担从在线向离线转移"的历史。这也预示了未来方向:谁能把更多计算前置到离线、在线只留轻量推理,谁就能在"联合程度"和"实时性"上同时取胜——这正是 T6 扩散加速、世界模型等前沿的内在逻辑。
换三个视角看同一组范式。 上面的"计算负担"是一条主线,但同一组四范式从不同视角看,会显出不同的纹理——多角度交叉印证,才能真正看透它们的关系:
- 从计算视角看(前面已述):四范式是"计算负担从在线向离线转移"的历史。PVD/走廊/连续优化把算力压在在线求解,端到端压在离线训练。这个视角解释了"为什么 T6 能又快又联合"——它作弊了,把难的部分挪到了离线。
- 从信息视角看:四范式是"信息损失逐步减少"的历史。PVD 在"路径→速度"的接口损失耦合信息;走廊/连续优化在联合空间保留了耦合但仍需人工设计代价(代价函数是一种信息瓶颈);端到端连代价函数都不要了,直接从数据学,理论上信息损失最小。这个视角解释了"为什么端到端在复杂场景潜力大"——它丢的信息最少。
- 从工程视角看(下一节详述):四范式是"可验证性逐步丧失"的历史。PVD/走廊/连续优化是显式算法,每步可检查、可调试、可形式化验证;端到端是黑盒,能力最强但最不可控。这个视角解释了"为什么工业界又爱又怕端到端"——它最强,但赌不起安全。
多视角的价值:同一组方法,计算视角看到"算力转移"、信息视角看到"损失减少"、工程视角看到"可控性丧失"——三个视角指向同一个权衡的不同侧面:能力越强(信息损失越少),可控性越差(可验证性越低),代价是把计算押到了离线。这不是三个独立现象,而是同一枚硬币的三面。看懂这一点,你对"为什么不能简单地说 T6 比 T1 好"就有了立体的理解——它们在不同视角下各有胜负。
下一节转向一个更工程、也更"反直觉"的对比——这四种范式(及其六章方法)的 C++ 工程生态成熟度。你会看到一个有趣的现象:越前沿的方法,越不可落地。
三、C++ 工程生态成熟度对比¶
上一节比的是"方法有多先进",这一节比的是"方法有多能落地"。两者合起来才是完整判断——一个方法值不值得投入,既看它的能力上限,也看它的工程现实。
大纲给了一张成熟度表,下面复列并展开。但先点出这张表最重要的一个**反直觉结论**,它比表格本身更值得记住。
| 章节 | C++ 生态成熟度 | 代表 C++ 库 | 教学推荐度 |
|---|---|---|---|
| T1 Frenet/ST | 极高 | Apollo planning (Apache-2.0) | 极高 |
| T2 走廊/搜索 | 高 | SSC、SIPP/libMultiRobotPlanning、DecompROS | 极高 |
| T3 轨迹优化 | 高 | TEB (BSD)、GCOPTER (MIT)、acados (BSD-2) | 极高 |
| T4 工业框架 | 极高 | Apollo (Apache-2.0)、Autoware (Apache-2.0) | 极高 |
| T5 多智能体 | 高 | CBS/SIPP (MIT)、RVO2 (Apache-2.0)、MADER (GPL) | 极高 |
| T6 端到端 | 低(Python/PyTorch 为主) | 无 C++ 原生 E2E | 中(侧重理解) |
反直觉结论:前沿性与可落地性几乎反相关¶
把这张成熟度表和上一节的"时空联合程度"放在一起看,会发现一个鲜明的对照:
时空联合程度(前沿性): T1 < T2 < T3 < ... < T6 (T6 最前沿)
C++ 工程成熟度(可落地): T1 ≈ T4 > T2 ≈ T3 ≈ T5 >> T6 (T6 最不成熟)
越前沿的方法,C++ 生态越不成熟、越难直接上车。 T1(Frenet/ST)和 T4(工业框架)是最"老"的方法,却有最成熟的 C++ 实现(Apollo 的 planning 模块就是工业级 C++);T6(端到端/扩散)是最前沿的,却几乎没有 C++ 原生实现——全是 Python/PyTorch,距离车规级实时部署还有很长的路。
为什么会这样? 三个原因:
- 时间差:方法从论文到工业级 C++ 实现需要数年沉淀。T1/T4 沉淀了十几年(PVD 1986、Apollo 2017+),T6 才刚出现两三年。
- 范式差:T1–T5 是显式算法,天然适合 C++ 这种强调确定性、可控、高性能的语言;T6 是神经网络,依赖 Python/PyTorch 的训练生态,C++ 推理部署(TensorRT 等)是另一套工程,且端到端模型的实时性、确定性本身还没解决。
- 验证差:C++ 工业代码意味着"敢上车",而上车要求可验证、可调试——T1–T5 的显式方法满足,T6 的黑盒不满足(见 T6 章"为什么端到端难以形式化验证")。
本质洞察(给学习者的现实判断):这个反相关关系,给学习投入提供了一个清醒的标尺——如果你的目标是"现在就能上车的技能",重心应放在 T1/T3/T4/T5(成熟 C++ 生态);如果你的目标是"押注未来、做研究",T6 是方向但要接受它的工程不成熟。两者都重要,但不要混淆——别期待今天就用 T6 的纯端到端替换掉 Apollo 的 planning 模块,现实是"T6 生成 + T1–T5 兜底"的混合架构。这也是为什么本专题把 T6 的教学推荐度标为"中(侧重理解)"——它值得理解其思想,但暂时不值得投入与 T1–T5 同等的工程实操精力。
各章 C++ 生态详解¶
T1 / T4(极高成熟度):Apollo 的 modules/planning 是公开可得的工业级 C++ 规划代码——Frenet 转换、ST 图、Piecewise-Jerk QP(分段加加速度二次规划,速度规划的工业实现)、EM Planner 全在里面,Apache-2.0 许可,可直接读、可直接改。这是整个专题**最值得精读的 C++ 代码**,没有之一。Autoware 提供了另一套(ROS2 架构)参照。
T3(高成熟度):轨迹优化有多个高质量 C++ 库——TEB(BSD,ROS 生态,g2o 后端)、GCOPTER(MIT,header-only,MINCO 的官方实现,无人机轨迹优化的当代标杆)、acados(BSD-2,SQP-RTI 实时 NMPC 求解器,自驾/机械臂通用)。这些库设计精良、文档相对完整,适合作为"读懂连续优化"的实操载体。
T2 / T5(高成熟度):搜索与多智能体方法的 C++ 实现集中在几个学术库——libMultiRobotPlanning(MIT,含 CBS/SIPP/ECBS 等多种 MAPF 算法)、SSC/EPSILON(HKUST,时空走廊)、RVO2(Apache-2.0,ORCA 避碰的官方实现)、MADER/RMADER(GPL,无人机多机轨迹)、LaCAM(MIT,大规模 MAPF)。质量参差,但核心算法都有可跑的参考实现。
T6(低成熟度):这里没有 C++ 原生的端到端规划实现——UniAD、PLUTO、Diffusion Policy 全是 PyTorch。要部署,需要自己做模型导出(ONNX/TensorRT)、C++ 推理封装,且要解决实时性。这是 T6 与前五章最大的工程鸿沟。
四、选型决策:场景 → 方法¶
前面建立了两条评判轴(前沿性 / 可落地性)。这一节把它们落到**实际决策**上——给定一个场景,该选哪种范式?
决策流程图¶
你的规划场景是……
│
├─ 高速公路 / 结构化道路(路径速度弱耦合)?
│ └─ 是 → PVD 解耦 + EM 迭代(T1/T4 Apollo)
│ 理由:实时、可靠、工业验证充分;弱耦合下不需要更强的联合
│
├─ 城市动态交互(横穿、切入、博弈式让行)?
│ ├─ 要快速落地 → 时空走廊 + QP(T2 SSC/EPSILON)
│ │ 理由:天然处理动态交互,凸优化保证实时
│ └─ 要最优轨迹 → 连续优化(T3 CILQR/TEB)
│ 理由:精确表达约束,但要接受非凸求解的代价
│
├─ 紧凑空间(泊车 / 窄道掉头)?
│ └─ 是 → OBCA(T3)
│ 理由:碰撞约束对偶化,专攻贴边精确机动
│
├─ 竞速 / 时间最优(赛车 / 穿桩无人机)?
│ └─ 是 → CPC / 时间最优连续优化(T3)
│ 理由:时间作为优化目标,榨干动力学极限
│
├─ 多智能体协调(仓储 AGV / 无人机编队)?
│ ├─ 离散网格 + 大规模 → CBS/ECBS/LaCAM(T5)
│ ├─ 连续空间 + 反应式 → ORCA/RVO2(T5)
│ └─ 无人机 + 轨迹级 → EGO-Swarm/MADER(T5)
│
└─ 复杂城市 + 押注未来 / 做研究?
└─ 端到端 / 扩散(T6 UniAD/PLUTO/Diffusion Planner)
理由:信息保真、多模态、目标一致
代价:黑盒、难验证,须配经典栈兜底
选型的三条经验法则¶
决策图给的是"标准答案",但真实选型还要叠加三条经验判断:
-
先问耦合强度,再问别的。 时空联合方法越强,计算越贵。如果场景里时空弱耦合(高速直道),用最强的连续优化是杀鸡用牛刀——PVD 又快又够用。方法的"联合程度"应当匹配场景的"耦合强度",不是越强越好。
-
落地优先选成熟生态。 如果是要交付的工程项目(而非研究),优先选 C++ 生态成熟的方法(T1/T3/T4/T5)。一个有 Apollo 级成熟代码的方法,比一个论文指标更高但只有研究代码的方法,工程风险低一个数量级。
-
安全永远要兜底。 无论选哪种方法——尤其是 T6 的学习式方法——最终输出都应有一层显式的安全检查(碰撞检测、动力学可行性)。这是"生成-验证"范式的普适性:再强的规划器也不该是安全的唯一保证。
对比性思维(选型不是选"最好的",而是选"最匹配的"):新手容易陷入"哪个方法最先进就用哪个"的误区。但本专题反复证明——没有放之四海皆准的最优方法,只有特定场景下的最优选择。高速公路上 PVD 打败连续优化(更快、够用),竞速场景里连续优化碾压 PVD(PVD 榨不出动力学极限)。选型的本质是把"场景特征"(耦合强度、实时要求、是否多体、安全等级)映射到"方法特性",而不是追逐前沿。
五、推荐学习顺序¶
方法对比清楚了,最后给学习路径。大纲给了一个标准顺序和一个 6 周速成版,这里展开成"为什么这样排"的逻辑,附录 D 还有四条专项路线。
标准顺序(为什么是 T1→T6)¶
T1(Frenet/ST 图, 2 周) 理解工业基线——一切的起点
↓ 看清"解耦"的妥协后,自然想问"能不能联合"
T2(走廊/搜索, 2-3 周) 从解耦迈向联合的第一步
↓ 搜索给出骨架后,需要优化来精修
T3(轨迹优化, 2-3 周) 数学核心(CILQR/TEB/MINCO)
↓ 学术方法要落地,看工业怎么做
T4(Apollo/Autoware, 2-3 周) 工业代码精读
↓ 单体掌握后,扩展到多体
T5(多智能体, 2-3 周) CBS/LaCAM/MADER
↓ 显式方法掌握后,看数据驱动的前沿
T6(端到端/扩散, 2 周) 前沿视野
这个顺序的内在逻辑:它不是随意排列,而是沿着两条线同时推进——一条是"时空联合程度递增"(T1 解耦 → T6 天然联合),另一条是"认知依赖递增"(后面的章节需要前面的概念)。比如 T3 的连续优化需要 T1 的 Frenet/ST 概念打底;T5 的多智能体 SIPP 需要 T2 的时空搜索基础;T6 理解"绕过 PVD"需要 T1 建立 PVD 概念。按这个顺序学,每一章都站在前一章的肩膀上。
时间预算下的取舍¶
如果只有 6 周(全职):T1(1w) → T3(2w) → T4(2w, 只读 Apollo) → T5(1w, 只跑 CBS+LaCAM)。
这个精简版的取舍逻辑是——保留"数学核心 + 工业代码 + 多体基础",牺牲"演进细节"。跳过 T2(走廊细节可后补)、压缩 T6(前沿了解即可)。保留的 T1/T3/T4/T5 是"能动手、能落地"的硬核,最大化 6 周的工程产出。
理论-工程桥接(学习路径的本质):学习顺序的设计,本质是在"逻辑依赖"和"时间预算"之间找平衡。完整路径(16 周)尊重逻辑依赖、循序渐进;速成路径(6 周)牺牲部分依赖、直取核心。选哪条取决于你的目标:要建立完整心智模型选完整路径,要快速形成战斗力选速成路径。附录 D 提供了按目标(自驾/多机)细分的四条专项路线,可按需取用。
附录¶
以下附录是**长期参考资料**,不必一次读完。附录 A 是论文精读路线(27 篇分级),附录 B 是开源项目快速参考(23 个分优先级),附录 C 是与其他大纲的衔接点,附录 D 是四条专项学习路线。用到时查。
数据时效说明:附录 B 的 GitHub stars 数为大纲采集时点(2026 年 4 月)的量级值,stars 是高频变动的次要信息,此处保留量级用于判断项目活跃度,精确值请以 GitHub 当前显示为准。论文的会议/年份/作者信息已尽量核实。
附录 A:论文精读路线(按重要性排序)¶
论文按"必读"和"推荐"两级组织。必读 12 篇是专题的骨架——读完它们,时空联合规划的主线就立起来了;推荐 15 篇是血肉,按你的方向兴趣选读。每篇标注它在专题里对应的范式/章节,方便你按需定位。
必读论文(12 篇)——专题骨架¶
| # | 论文 | 贡献 | 对应章节 |
|---|---|---|---|
| 1 | Kant & Zucker (IJRR 1986) | PVD 路径-速度分解奠基——整个领域的起点 | T1 |
| 2 | Werling et al. (ICRA 2010 / IJRR 2012) | Frenet 坐标系 + 末端状态采样——自驾横纵向规划的标准框架 | T1 |
| 3 | Fan et al. (arXiv 2018) | Apollo EM Planner——工业级 PVD + EM 迭代 | T1, T4 |
| 4 | Ding et al. (RA-L 2019) | Spatio-temporal Semantic Corridor (SSC)——时空走廊的代表 | T2 |
| 5 | Phillips & Likhachev (ICRA 2011) | SIPP(安全间隔路径规划)——时空搜索的基石 | T2, T5 |
| 6 | Sharon et al. (AIJ 2015) | CBS(冲突基搜索)——MAPF 的标杆算法 | T5 |
| 7 | Chen, Zhan, Tomizuka (ITSC 2017) | CILQR——约束迭代 LQR,自驾连续优化的代表 | T3 |
| 8 | Rösmann et al. (RAS 2017) | TEB(带拓扑的时间弹性带)——g2o 稀疏优化轨迹 | T3 |
| 9 | Wang et al. (T-RO 2022) | MINCO/GCOPTER——最小控制量表示 + 时间分配 | T3 |
| 10 | Tordesillas & How (T-RO 2022) | MADER——无人机多机轨迹去冲突 | T5 |
| 11 | Hu et al. (CVPR 2023 Best Paper) | UniAD(arXiv:2212.10156)——planning-oriented 端到端 | T6 |
| 12 | Chi et al. (RSS 2023 / IJRR 2024) | Diffusion Policy(arXiv:2303.04137)——动作扩散范式 | T6 |
必读清单的结构:注意这 12 篇恰好覆盖四种范式——#1-3 是 PVD(范式一)、#4-5 是走廊/搜索(范式二)、#7-9 是连续优化(范式三)、#11-12 是端到端(范式四),#6/#10 是多智能体。读完这 12 篇,你就握住了专题的全部主干。
建议精读顺序:按章节顺序读(1→12 大致就是 T1→T6),每篇配合对应章节的讲解。其中 #3(Apollo EM Planner)、#7(CILQR)、#11(UniAD)是三个"必须吃透"的重点——它们分别是工业基线、连续优化、端到端的代表作。
推荐论文(15 篇)——按方向选读¶
| # | 论文 | 贡献 | 对应章节 |
|---|---|---|---|
| 13 | Ziegler & Stiller (IROS 2009) | 时空格搜索 | T2 |
| 14 | McNaughton et al. (ICRA 2011) | Conformal Spatiotemporal Lattice | T2 |
| 15 | Ziegler et al. (IV 2014) | Bertha 连续 NLP(实车级轨迹优化) | T3 |
| 16 | Zhang, Liniger, Borrelli (T-AC 2020) | OBCA(碰撞约束对偶化) | T3 |
| 17 | Foehn, Romero, Scaramuzza (Science Robotics 2021) | CPC(时间最优穿桩飞行) | T3 |
| 18 | Zhou et al. (Science Robotics 2022) | 10 机林地群飞(EGO-Swarm 实证) | T5 |
| 19 | Kondo et al. (RA-L 2023) | RMADER(鲁棒多机轨迹) | T5 |
| 20 | Okumura (AAAI 2023) | LaCAM(大规模 MAPF,万级 agent) | T5 |
| 21 | Li et al. (AAAI 2021) | EECBS(有界次优 CBS) | T5 |
| 22 | van den Berg et al. (ISRR 2011) | ORCA/RVO2(互惠速度避碰) | T5 |
| 23 | Ren et al. (Science Robotics 2025) | SUPER(前沿群体/规划工作) | T5 |
| 24 | Cheng et al. (arXiv:2404.14327, 2024) | PLUTO(模仿学习闭环超规则派) | T6 |
| 25 | Li et al. (CVPR Challenge 2024) | Hydra-MDP(多教师蒸馏,NAVSIM 冠军) | T6 |
| 26 | Jiang et al. (ICCV 2023) | VAD(矢量化端到端) | T6 |
| 27 | Janner et al. (ICML 2022) | Diffuser(扩散用于规划的源头) | T6 |
推荐清单的选读策略:按你的方向兴趣取—— - 做自驾:重点 #15(Bertha 实车)、#16(OBCA 泊车)、#24(PLUTO 闭环)、#25(Hydra-MDP)。 - 做无人机/竞速:重点 #17(CPC 时间最优)、#18(群飞实证)、#19(RMADER)。 - 做多机/仓储:重点 #20(LaCAM 大规模)、#21(EECBS)、#22(ORCA)。 - 做扩散/生成:重点 #27(Diffuser 源头)、#26(VAD),再回看必读 #12(Diffusion Policy)。
附录 B:开源项目快速参考表¶
下表按优先级(★ 越多越推荐上手)列出专题相关的开源项目。优先级综合了三个因素:代码质量、教学价值、生态活跃度。stars 为量级参考(采集于 2026 年 4 月,精确值以 GitHub 当前为准)。
| 优先级 | 项目 | Stars(量级) | 语言 | License | 对应章节 |
|---|---|---|---|---|---|
| ★★★★★ | ApolloAuto/apollo | ~25k | C++ | Apache-2 | T1, T4 |
| ★★★★★ | autowarefoundation/autoware_universe | ~1k | C++/ROS2 | Apache-2 | T4 |
| ★★★★★ | ZJU-FAST-Lab/GCOPTER | ~1.1k | C++ header-only | MIT | T3 |
| ★★★★★ | rst-tu-dortmund/teb_local_planner | ~1.1k | C++/ROS | BSD | T3 |
| ★★★★★ | whoenig/libMultiRobotPlanning | ~1k | C++ | MIT | T2, T5 |
| ★★★★☆ | HKUST/spatiotemporal_semantic_corridor | ~200 | C++ | — | T2 |
| ★★★★☆ | HKUST/EPSILON | ~760 | C++/ROS | GPLv3 | T2 |
| ★★★★☆ | mit-acl/mader | ~450 | C++/ROS | GPL | T5 |
| ★★★★☆ | ZJU-FAST-Lab/ego-planner-swarm | ~1.9k | C++/ROS | GPL | T5 |
| ★★★★☆ | snape/RVO2 | ~500 | C++ | Apache-2 | T5 |
| ★★★★☆ | acados/acados | ~1.3k | C/Py | BSD-2 | T3 |
| ★★★★☆ | real-stanford/diffusion_policy | ~2k | Python | MIT | T6 |
| ★★★☆☆ | Kei18/lacam | ~100+ | C++ | MIT | T5 |
| ★★★☆☆ | mit-acl/rmader | ~100 | C++/ROS | GPL | T5 |
| ★★★☆☆ | OpenDriveLab/UniAD | ~2k | Python | Apache-2 | T6 |
| ★★★☆☆ | sikang/DecompROS | ~200 | C++/ROS | — | T2 |
| ★★★☆☆ | hungpham2511/toppra | ~830 | Python/C++ | MIT | 机械臂 TOPP-RA |
| ★★★☆☆ | pantor/ruckig | ~1.2k | C++ | MIT | 机械臂 OTG |
| ★★★☆☆ | AtsushiSakai/PythonRobotics | ~24k | Python | MIT | T1 入门 |
| ★★☆☆☆ | jchengai/pluto | ~200 | Python | — | T6 |
| ★★☆☆☆ | MCZhi/GameFormer-Planner | ~100 | Python | — | T6 |
| ★★☆☆☆ | Jiaoyang-Li/EECBS | ~100 | C++ | — | T5 |
| ★★☆☆☆ | uzh-rpg/rpg_time_optimal | — | Python/CasADi | — | T3 CPC |
怎么用这张表¶
按优先级上手:
- ★★★★★(必上手):这五个是专题的"主力库"。apollo 是工业级 C++ 规划的标杆(T1/T4 精读首选),GCOPTER/teb_local_planner 是连续优化的实操载体(T3),libMultiRobotPlanning 含多种 MAPF 算法(T2/T5)。
- ★★★★☆(强烈推荐):按方向选——自驾看 EPSILON/SSC,无人机看 ego-planner-swarm/mader,通用优化看 acados,扩散看 diffusion_policy。
- ★★★☆☆ 及以下:研究/深入时按需取用,多为单篇论文的官方实现。
按语言分流: - 要 C++ 工程能力:apollo、GCOPTER、teb、libMultiRobotPlanning、acados、RVO2、EPSILON、mader、lacam——这些是 T1–T5 的硬核 C++ 实现。 - 要理解前沿思想:diffusion_policy、UniAD、pluto、GameFormer-Planner——这些是 T6 的 Python 实现,重在读懂而非部署。 - 入门:PythonRobotics——用 Python 把 T1 的基础算法(Frenet、A* 等)跑一遍,建立直觉,再转 C++。
理论-工程桥接(开源项目的正确打开方式):附录 A 的论文给"为什么",附录 B 的代码给"怎么做"——两者要**配对使用**。读 CILQR 论文(A#7)配合读
apollo或自己实现;读 MINCO 论文(A#9)配合读GCOPTER(A 的官方实现);读 UniAD 论文(A#11)配合读OpenDriveLab/UniAD。单读论文容易停留在公式,单读代码容易迷失在工程细节——论文给骨架、代码给血肉,配对才能真正掌握一个方法。
附录 C:与其他大纲的衔接点¶
时空联合规划不是孤岛——它与机器人规控的其他方向深度交织。下表列出关键衔接点,帮你把本专题放进更大的知识网络。这张表的价值在于"技能复用":你在其他方向学的东西,很多能直接迁移到这里(反之亦然)。
| 大纲 | 衔接章节 | 衔接说明 |
|---|---|---|
| v8 SLAM Ch17-18 | T3, T4 | Ceres NLS vs OSQP QP vs Ipopt NLP——优化求解器谱系。SLAM 的非线性最小二乘经验直接迁移到轨迹优化 |
| v8 SLAM Ch25 GTSAM | T3 | GTSAM 因子图 ↔ TEB 的 g2o hyper-graph ↔ GPMP2 的 GP 因子——数学同构,会一个就会其余 |
| 无人机 D3-D5 | T3 | Min-Snap/MINCO 轨迹优化 + 时间分配——本章核心数学在无人机大纲已详解,可互为补充 |
| 无人机 D10 | T5 | EGO-Swarm/MADER——与 D10 重叠,但本专题侧重更广泛的多智能体视角(含自驾 MAPF) |
| 机械臂 M7-M8 | T3 | TOPP-RA + Ruckig——机械臂的 PVD 形态(先路径后时间参数化),与自驾 PVD 同源异形 |
| 不确定性规划 U1 | T2 | SSC 走廊是 EPSILON 分支规划的运动规划层——确定性走廊 + 不确定性决策的组合 |
| 不确定性规划 U2 | T3 | acados SQP-RTI 是通用时空联合 NMPC 的求解器——确定性 NMPC 扩展为鲁棒 MPC 的基础 |
| 博弈规划 G2 | T3, T5 | iLQGames/ALGAMES 是多智能体博弈的连续版;CBS 的 shared constraint 对应博弈的 GNE(广义纳什均衡) |
| 博弈规划 G3 | T6 | GameFormer 是"博弈 + 预测 + 时空联合"的代表——Diffusion Planner 的联合去噪也是隐式博弈 |
三组最重要的衔接¶
衔接点很多,但有三组关系特别重要,值得专门点出:
1. 优化求解器谱系(SLAM ↔ T3)。 这是最直接的技能迁移。SLAM 后端用的 Ceres/g2o/GTSAM,和轨迹优化用的求解器是**同一套数学**——都是稀疏非线性最小二乘/因子图优化。你在 SLAM 里学的 Jacobian 组装、稀疏求解、鲁棒核函数,在 TEB(g2o)、GPMP2(GP 因子)里原样适用。会 SLAM 优化,T3 的连续优化就上手快一半。
2. PVD 的跨方向变体(自驾 T1 ↔ 机械臂 M7-M8)。 自驾的 PVD(先路径后速度)和机械臂的 TOPP-RA(先路径后时间参数化)是**同一思想的不同领域形态**——都是"先定几何、再定时间"的解耦。理解了自驾 PVD 为什么妥协、何时失效,就理解了机械臂 TOPP-RA 的适用边界(同样在强耦合动态场景下力不从心)。
3. 时空联合 → 博弈/不确定性的自然延伸(T3/T5/T6 ↔ 博弈/不确定性专题)。 这是**向前的衔接**——时空联合规划默认"模型已知、他车可预测",放松这两个假设就进入相邻专题:他车是有目标的决策者 → 博弈规划;模型/感知有不确定性 → 不确定性规划。数学上,本专题的确定性 NLP/QP 会扩展为博弈的耦合优化、不确定性的随机/鲁棒优化。
理论-工程桥接(为什么要关心衔接点):机器人规控的各个方向不是割裂的技能孤岛,而是**共享一套数学内核**(优化、搜索、概率)的应用变体。看清衔接点的价值有二——学习上,已掌握的方向能加速新方向(SLAM 优化加速 T3);研究上,跨方向的组合常是创新源泉(把博弈引入时空联合 = GameFormer,把不确定性引入走廊 = EPSILON 分支规划)。本专题处在这张网络的中心位置,向各方向都有桥梁。
附录 D:推荐学习路线¶
正文第五节给了标准顺序和 6 周速成版,这里提供四条**按目标细分**的专项路线。选与你目标最匹配的一条。
速成路线(6 周,全职)——快速形成战斗力¶
Week 1: T1(Frenet/ST 图——工业基线)
Week 2: T3 前半(CILQR + TEB——时空联合优化入门)
Week 3: T3 后半(MINCO 时间分配 + acados NMPC)
Week 4: T4(Apollo 精读——工业代码)
Week 5: T5 前半(CBS + LaCAM——离散 MAPF)
Week 6: T6(UniAD + Diffusion Policy——前沿概览)
完整路线(12-16 周,全职)——建立完整心智模型¶
按大纲顺序 T1 → T2 → T3 → T4 → T5 → T6 完整学习。 适合:有充足时间、要建立系统、扎实的知识体系。每章都不跳,尊重逻辑依赖,循序渐进。
自驾专项路线(10 周,全职)——聚焦自动驾驶¶
Week 1-2: T1(Frenet/ST 图 + Apollo SL/ST QP)
Week 3: T2(SSC 走廊 + SIPP)
Week 4-5: T3(CILQR + OBCA + TEB)
Week 6-8: T4(Apollo 全面精读 + Autoware 精读)
Week 9: T6(UniAD + PLUTO + Diffusion Planner)
Week 10: 综合实战(在 Apollo 仿真中实现 CILQR 替换 EM Planner 的速度模块)
多机协调专项路线(8 周,全职)——聚焦多智能体¶
Week 1: T2(SIPP——多机搜索基础)
Week 2-3: T5 前半(CBS + ECBS + LaCAM——离散 MAPF)
Week 4: T5 后半(ORCA + 连续避碰)
Week 5-6: T5 无人机部分(EGO-Swarm + MADER + RMADER)
Week 7: T3(MINCO 时间分配——无人机轨迹后端)
Week 8: 综合实战(LaCAM 10k agents 性能测试 + EGO-Swarm Gazebo 3 机飞行)
本质洞察(学习路线的选择逻辑):四条路线对应四种目标——速成求"快"、完整求"全"、自驾/多机求"专"。没有最好的路线,只有最匹配你目标的路线。判断标准很简单:你学完后要做什么?要交付自驾项目走自驾专项,要做集群走多机专项,要打基础走完整路线,时间紧走速成。先想清目标,再选路线。
附录 E:核心方法卡片速查¶
本附录把六章的核心方法做成**标准化卡片**,每张卡片统一六栏:一句话定义 / 输入·输出 / 复杂度量级 / 适用边界 / 代表开源库 / 对应章节。用途是**快速回忆与横向对照**——当你记不清某方法"吃什么、吐什么、什么时候用、什么时候不能用"时,查这里。
使用说明:复杂度栏给的是量级直觉而非严格界(实际复杂度依赖具体实现与场景);适用边界栏的"❌ 不适用"比"✅ 适用"更值得记——知道一个方法什么时候会失效,比知道它什么时候有效更重要。卡片按章节(T1→T6)组织。
T1:Frenet / ST 图范式¶
卡片 1 · Frenet 坐标系(⭐ 必学,T1)
- 一句话:把笛卡尔坐标 \((x,y)\) 转到沿参考线的 \((s,l)\)(纵向弧长 + 横向偏移),让结构化道路上的规划维度解耦、语义清晰。
- 输入 · 输出:输入参考线(道路中心线)+ 车辆笛卡尔位姿;输出 Frenet 坐标 \((s,l,\dot s,\dot l,\ddot s,\ddot l)\)。
- 复杂度:坐标转换 \(O(1)\)(给定最近参考点);找最近参考点 \(O(\log N)\)(参考线 KD-tree)。
- 适用边界:✅ 结构化道路(高速、城市车道);❌ 无参考线的开放空间(停车场、越野)——此时 Frenet 退化甚至奇异(参考线曲率突变处)。
- 代表库:ApolloAuto/apollo(modules/planning)、AtsushiSakai/PythonRobotics(入门)。
- 对应章节:T1。
卡片 2 · ST 图(Station-Time 图)(⭐ 必学,T1)
- 一句话:在"沿路弧长 \(s\) — 时间 \(t\)"平面上,把动态障碍投影成阻挡区域,从而在二维平面上做速度规划(何时到达哪个 \(s\))。
- 输入 · 输出:输入几何路径 + 动态障碍的预测轨迹;输出速度剖面 \(s(t)\)。
- 复杂度:DP 搜索 \(O(N_s \times N_t)\)(\(s\)、\(t\) 离散格数);后接 QP 平滑 \(O(\text{vars})\)。
- 适用边界:✅ 已定路径后的速度决策(PVD 第二步);❌ 需要同时改路径和速度的强耦合场景(ST 图假设路径已固定)。
- 代表库:ApolloAuto/apollo(Piecewise-Jerk Speed QP)。
- 对应章节:T1, T4。
T2:时空走廊 / 搜索范式¶
卡片 3 · SSC(时空语义走廊)(⭐⭐ 核心,T2)
- 一句话:在 \((s,l,t)\) 三维联合空间里,把安全可通行区域表示成一串凸多面体(cube),动态障碍自动成为禁入区,再在走廊内优化轨迹。
- 输入 · 输出:输入语义地图 + 动态障碍预测;输出凸走廊序列 + 走廊内的平滑时空轨迹。
- 复杂度:走廊生成依赖种子轨迹与膨胀策略;走廊内 QP 为凸优化,实时可解。
- 适用边界:✅ 城市动态交互(横穿、切入);❌ 走廊生成对种子轨迹敏感,种子差则走廊过保守或不可行。
- 代表库:HKUST/spatiotemporal_semantic_corridor、HKUST/EPSILON。
- 对应章节:T2。
卡片 4 · SIPP(安全间隔路径规划)(⭐⭐ 核心,T2/T5)
- 一句话:把时间维压缩成"安全间隔"(一个格子在哪些连续时段无碰撞),用 A* 在 (位置, 间隔) 状态上搜索,避免显式展开每个时间步。
- 输入 · 输出:输入栅格地图 + 动态障碍占据的时段;输出最早到达的无碰撞时空路径。
- 复杂度:状态数 = 格数 × 间隔数,远小于 格数 × 时间步数(这是 SIPP 的核心优势);离散化下完备且时间最优。
- 适用边界:✅ 动态障碍时段可预测的单体/多体搜索;❌ 高度非平稳/不可预测障碍、连续动力学约束强的场景(需 kinodynamic 扩展)。
- 代表库:whoenig/libMultiRobotPlanning。
- 对应章节:T2, T5。
T3:连续优化范式¶
卡片 5 · CILQR(约束迭代 LQR)(⭐⭐⭐ 进阶,T3)
- 一句话:把带约束的非线性轨迹优化,转成一串"线性化-二次近似"的 LQR 子问题迭代求解,约束用障碍函数/罚项处理。
- 输入 · 输出:输入初始轨迹 + 动力学模型 + 代价/约束;输出局部最优的完整时空轨迹 \((x,y,\theta,v,t)\)。
- 复杂度:每次迭代 \(O(N \cdot n^3)\)(\(N\) 时域步、\(n\) 状态维),通常数次到数十次迭代收敛。
- 适用边界:✅ 需要精确动力学和约束的自驾局部规划;❌ 强非凸、初值差时易陷局部最优(对初值敏感)。
- 代表库:ApolloAuto/apollo(部分)、各开源 iLQR 实现。
- 对应章节:T3。
卡片 6 · TEB(时间弹性带)(⭐⭐⭐ 进阶,T3)
- 一句话:把轨迹建模成一条"带时间戳的弹性带"(位姿序列 + 时间间隔),用 g2o 稀疏图优化同时调整空间形状和时间分配。
- 输入 · 输出:输入起止位姿 + 障碍 + 运动学约束;输出时空轨迹(位姿序列 + 时间间隔)。
- 复杂度:g2o 稀疏优化,规模与位姿点数线性相关;支持多拓扑并行(TEB with topology)。
- 适用边界:✅ ROS 移动机器人局部规划、动态避障;❌ 高速/高动态自驾(TEB 偏向低速差速/全向机器人)。
- 代表库:rst-tu-dortmund/teb_local_planner。
- 对应章节:T3。
卡片 7 · OBCA(基于优化的碰撞规避)(⭐⭐⭐ 进阶,T3)
- 一句话:把"车与障碍不相交"这个非光滑碰撞约束,通过对偶化写成光滑可微的形式,从而能用梯度优化处理紧凑空间的精确机动。
- 输入 · 输出:输入起止状态 + 障碍多边形 + 车辆形状;输出贴边精确的无碰撞轨迹。
- 复杂度:NLP 求解(Ipopt 等),变量含对偶变量,规模随障碍数增长。
- 适用边界:✅ 泊车、窄道掉头等紧凑精确机动;❌ 实时性要求极高的高速场景(NLP 求解较慢)。
- 代表库:acados(可实现)、各 OBCA 开源复现。
- 对应章节:T3。
卡片 8 · MINCO / GCOPTER(⭐⭐⭐ 进阶,T3)
- 一句话:用"最小控制量"的多项式轨迹表示,把轨迹优化的时间分配和空间形状解耦成可闭式求梯度的形式,实现高效的时空联合优化。
- 输入 · 输出:输入路径点/飞行走廊 + 动力学;输出时间最优分配的平滑时空轨迹。
- 复杂度:闭式梯度使优化高效,是无人机轨迹生成的当代标杆(毫秒级)。
- 适用边界:✅ 无人机轨迹生成、需要时间分配优化的场景;❌ 强接触/复杂约束(MINCO 偏向自由空间平滑飞行)。
- 代表库:ZJU-FAST-Lab/GCOPTER(官方 header-only 实现)。
- 对应章节:T3。
卡片 9 · CPC(时间最优穿桩)(⭐⭐⭐⭐ 研究级,T3)
- 一句话:把"通过一串航点、时间最短"建模为互补约束优化(complementary progress constraints),榨干无人机的动力学极限。
- 输入 · 输出:输入航点序列 + 四旋翼动力学;输出时间最优轨迹(贴动力学边界)。
- 复杂度:大规模 NLP,离线求解(非实时),CasADi/Ipopt 实现。
- 适用边界:✅ 竞速、极限穿桩的离线轨迹生成;❌ 在线实时规划(求解太慢,定位为离线 benchmark)。
- 代表库:uzh-rpg/rpg_time_optimal。
- 对应章节:T3。
T4:工业框架范式¶
卡片 10 · Apollo EM Planner(⭐⭐ 核心,T4)
- 一句话:百度 Apollo 的规划主力——用 PVD + EM 迭代(Path 与 Speed 交替优化、互相更新约束)实现工业级的结构化道路规划。
- 输入 · 输出:输入高精地图 + 感知/预测 + 路由;输出可执行的时空轨迹。
- 复杂度:每个子问题(Path QP、Speed QP)为凸优化实时可解;EM 迭代数轮。
- 适用边界:✅ 结构化道路的工业部署(最成熟的开源选择);❌ 强耦合路口/开放空间(PVD 固有局限,Apollo 另有 Open Space Planner 处理泊车)。
- 代表库:ApolloAuto/apollo(Apache-2.0,工业级 C++)。
- 对应章节:T4(核心), T1。
卡片 11 · Autoware 规划栈(⭐⭐ 核心,T4)
- 一句话:基于 ROS2 的开源自驾全栈,规划部分采用行为树 + 多模块(behavior/motion velocity planner),2025+ 版本引入学习式生成 + 安全滤波架构。
- 输入 · 输出:输入地图 + 感知 + 路由;输出轨迹(经多级滤波兜底)。
- 复杂度:模块化管线,各模块复杂度不一;强调可组合与可验证。
- 适用边界:✅ ROS2 生态、需要模块化可替换的研究/产品;❌ 追求极致单点性能(模块化有通信/抽象开销)。
- 代表库:autowarefoundation/autoware_universe(Apache-2.0)。
- 对应章节:T4。
T5:多智能体范式¶
卡片 12 · CBS(冲突基搜索)(⭐⭐ 核心,T5)
- 一句话:MAPF 的标杆——双层 lazy 搜索,先各自规划最短路,发现冲突后只对冲突的两个 agent 加约束重规划,逐步消解所有冲突。
- 输入 · 输出:输入栅格地图 + N 个 agent 的起止;输出 N 条互不冲突的路径(最优)。
- 复杂度:最优 + 完备,但 MAPF 本身 NP-hard——agent 多、冲突密时约束树爆炸,大规模不可行。
- 适用边界:✅ 中小规模、要求最优解的离散 MAPF;❌ 大规模(数百上千 agent)——此时用次优变体(ECBS)或 LaCAM。
- 代表库:whoenig/libMultiRobotPlanning。
- 对应章节:T5。
卡片 13 · ECBS / EECBS(有界次优 CBS)(⭐⭐⭐ 进阶,T5)
- 一句话:CBS 的有界次优版——放弃严格最优,用 focal search 在"不超过最优解 \(w\) 倍"的保证下大幅提速。
- 输入 · 输出:输入同 CBS + 次优界 \(w\);输出 \(w\)-有界次优的无冲突路径。
- 复杂度:比 CBS 快若干数量级,可处理更大规模;保留有界次优保证。
- 适用边界:✅ 大规模 MAPF 且可接受轻微次优(仓储调度典型);❌ 必须严格最优的场景。
- 代表库:Jiaoyang-Li/EECBS、whoenig/libMultiRobotPlanning。
- 对应章节:T5。
卡片 14 · LaCAM(惰性约束添加)(⭐⭐⭐ 进阶,T5)
- 一句话:为超大规模 MAPF 设计——用惰性的配置生成 + 约束添加,能在秒级求解上万 agent 的实例。
- 输入 · 输出:输入大规模栅格 + 海量 agent 起止;输出无冲突路径(可达万级 agent)。
- 复杂度:极快、可扩展到 10k+ agent;牺牲严格最优换规模。
- 适用边界:✅ 超大规模集群/仓储(agent 数压倒一切);❌ 小规模高质量需求(此时 CBS 最优解更值)。
- 代表库:Kei18/lacam。
- 对应章节:T5。
卡片 15 · ORCA / RVO2(互惠速度避碰)(⭐⭐ 核心,T5)
- 一句话:在速度空间里,每个 agent 用半平面约束选择"互惠避碰"的速度,实现去中心化、反应式的实时多体避碰。
- 输入 · 输出:输入各 agent 当前位置/速度/目标;输出每个 agent 的避碰速度(每步实时算)。
- 复杂度:每 agent 每步 \(O(\text{邻居数})\) 线性规划,极快、可大规模并行。
- 适用边界:✅ 连续空间、去中心化、实时反应(人群仿真、密集 agent);❌ 需要全局最优或长时域协调(ORCA 是局部反应式,可能死锁)。
- 代表库:snape/RVO2(Apache-2.0)。
- 对应章节:T5。
卡片 16 · MADER / RMADER(无人机多机轨迹)(⭐⭐⭐ 进阶,T5)
- 一句话:无人机集群的去中心化轨迹规划——通过异步通信交换轨迹、用凸分解保证轨迹级无碰撞,RMADER 进一步处理通信延迟下的鲁棒性。
- 输入 · 输出:输入自身目标 + 邻机轨迹;输出无碰撞的时空轨迹。
- 复杂度:在线优化,去中心化,每机独立求解 + 通信协调。
- 适用边界:✅ 无人机集群、动态环境轨迹级避碰;❌ 通信极差或纯离散网格场景(MADER 面向连续空间无人机)。
- 代表库:mit-acl/mader、mit-acl/rmader。
- 对应章节:T5。
卡片 17 · EGO-Swarm(无人机群飞)(⭐⭐⭐ 进阶,T5)
- 一句话:ZJU FAST Lab 的无人机集群规划——基于梯度的局部轨迹优化 + 去中心化轨迹共享,实证支持林地等复杂环境的多机群飞。
- 输入 · 输出:输入自身目标 + 点云/邻机轨迹;输出实时局部时空轨迹。
- 复杂度:梯度优化,轻量实时,机载可跑。
- 适用边界:✅ 无人机集群在复杂环境的实时飞行(有实机验证);❌ 全局最优保证(局部方法)。
- 代表库:ZJU-FAST-Lab/ego-planner-swarm。
- 对应章节:T5。
T6:端到端 / 生成范式¶
卡片 18 · UniAD(planning-oriented 端到端)(⭐⭐⭐ 进阶,T6)
- 一句话:把感知-预测-规划六任务统一进一个网络、以 query 为接口贯通、以规划为最终导向,让规划梯度反传到感知(CVPR 2023 Best Paper)。
- 输入 · 输出:输入多视角图像;输出自车时空轨迹 \((x_t,y_t)\)(含中间任务的可解释输出)。
- 复杂度:大型 Transformer,需多卡训练(两阶段,~50GB 显存);推理偏重。
- 适用边界:✅ 研究、理解端到端架构思想;❌ 直接量产(开环评估、黑盒难验证、无 C++ 原生实现)。
- 代表库:OpenDriveLab/UniAD(Apache-2.0,PyTorch)。
- 对应章节:T6。
卡片 19 · Diffusion Policy / Planner(扩散式生成)(⭐⭐⭐ 进阶,T6)
- 一句话:把轨迹/动作生成建模为条件去噪扩散过程——从噪声逐步去噪出轨迹,天然表达多模态(Diffusion Policy 源于机械臂,Diffusion Planner 用于自驾联合去噪)。
- 输入 · 输出:输入观测(BEV/图像/状态);输出多模态时空轨迹(采样得到)。
- 复杂度:多步去噪推理(DDIM 可降至~10 步、~20Hz);训练稳定(回归噪声)。
- 适用边界:✅ 多模态决策场景(路口博弈、多解操作);❌ 单模态/强实时且无加速、需硬约束保证(需投影/滤波兜底)。
- 代表库:real-stanford/diffusion_policy、ZhengYinan-AIR/Diffusion-Planner。
- 对应章节:T6。
卡片 20 · PLUTO(模仿学习闭环 SOTA)(⭐⭐⭐ 进阶,T6)
- 一句话:用纵横解耦表示 + 对比模仿学习 + 数据增强 + 辅助损失,首次让纯模仿学习在 nuPlan 闭环超越规则派。
- 输入 · 输出:输入矢量化场景 token;输出自车时空轨迹(可多模态候选)。
- 复杂度:query-based Transformer,训练/推理相对轻;闭环评估需 nuplan-devkit。
- 适用边界:✅ 自驾闭环规划研究、模仿学习 SOTA 复现;❌ 长尾/罕见场景(受专家数据覆盖限制)、形式化安全保证。
- 代表库:jchengai/pluto。
- 对应章节:T6。
卡片速查的用法小结:20 张卡片覆盖六章全部核心方法。横向用法——同一栏跨卡片对比(如把所有"适用边界"的 ❌ 读一遍,就建立了"什么时候不能用什么"的避坑地图);纵向用法——查单个方法时,六栏给你"是什么·吃什么吐什么·多快·边界·用哪个库·在哪章"的完整速写。这份卡片与附录 A(论文)、附录 B(项目)三位一体:卡片给速写、论文给原理、项目给实现。
本章小结¶
核心要点速查¶
| 维度 | 要点 |
|---|---|
| 四范式主轴 | 时空联合程度递增:PVD 半联合 → 走廊联合搜索 → 连续优化完全联合 → 端到端天然联合 |
| 背后暗线 | 计算负担从在线向离线转移;联合程度由"计算放哪里"决定 |
| 前沿 vs 落地 | 几乎反相关——越前沿(T6)C++ 生态越不成熟;越成熟(T1/T4)越能上车 |
| 选型法则 | 联合程度匹配耦合强度;落地优先成熟生态;安全永远兜底 |
| 学习顺序 | T1→T6 沿"联合程度递增 + 认知依赖递增"双线;6/10/16 周三档按目标选 |
| 专题定位 | 处在规控网络中心,向 SLAM/无人机/机械臂/博弈/不确定性五方向都有桥梁 |
范式选型一句话速查¶
| 场景 | 选择 | 一句话理由 |
|---|---|---|
| 高速结构化道路 | PVD(T1/T4 Apollo) | 弱耦合,实时可靠够用 |
| 城市动态交互(要快) | 时空走廊(T2 SSC) | 天然处理交互,凸优化保实时 |
| 城市动态交互(要优) | 连续优化(T3 CILQR) | 精确约束,接受非凸代价 |
| 泊车 / 窄道 | OBCA(T3) | 碰撞对偶化,贴边精确 |
| 竞速 / 时间最优 | CPC(T3) | 时间作目标,榨干动力学 |
| 多机离散大规模 | CBS/LaCAM(T5) | MAPF 标杆,万级 agent |
| 多机连续反应式 | ORCA(T5) | 速度空间避碰,实时 |
| 无人机集群 | EGO-Swarm/MADER(T5) | 轨迹级去冲突,实机验证 |
| 复杂城市 / 研究 | 端到端(T6) | 信息保真多模态,须兜底 |
术语速查表¶
| 术语(中/英) | 一句话定义 |
|---|---|
| PVD(路径-速度分解) | 先定几何路径再定速度剖面的解耦策略,时空弱耦合下的工业基线 |
| EM 迭代 | Path↔Speed 交替优化、互相更新约束,部分补偿解耦丢失的耦合 |
| 时空走廊(spatio-temporal corridor) | 在 (s,l,t) 联合空间里表示安全可通行区域的凸多面体序列 |
| 连续优化 | 把时间作为优化变量、在完整状态空间一次求解整条时空轨迹 |
| 端到端生成 | 神经网络从数据直接生成时空轨迹,绕过显式建模 |
| 时空联合程度 | 一个方法把空间与时间"同时处理"的程度,本专题方法对比的主轴 |
| 生成-验证 | 学习模型生成候选 + 显式规则/优化验证兜底的安全范式(T6 核心) |
| MAPF(多智能体路径规划) | N 个智能体在共享时空里找互不冲突路径,NP-hard(T5 核心) |
学完自检¶
读完本章,检验你是否真正建立了"方法地图":
- 不看表格,能否说出四种范式在"时空联合程度"上的递进,以及每一步换来/付出了什么?
- 为什么说"前沿性与可落地性几乎反相关"?举出 T1 和 T6 的对照。
- 给你一个"高速公路自适应巡航"场景,你选哪种范式?为什么不用更先进的连续优化?
- 给你一个"100 台仓储 AGV 调度"场景,你选哪种方法?为什么不用 ORCA?
- 你的目标是半年内成为自驾规划工程师,时间有限,你怎么排学习路线?
- 本专题与博弈规划、不确定性规划的衔接点分别是什么?
若 1/2/4 答不顺,回看正文第二、三节(四范式对比、C++ 生态);3/5 是应用题,对照选型决策图和学习路线即可;6 指向附录 C。
通向下一专题¶
时空联合规划到此收官。回望这一程——你从 T1 的 PVD 解耦出发,经 T2 的时空走廊、T3 的连续优化、T4 的工业落地、T5 的多智能体协调,到 T6 的端到端生成,走完了"空间和时间如何联合决策"的完整演进。你现在不仅掌握了每种方法的内部机理(前六章),还能在方法空间里自由导航(本章)。
但整个专题有一个**始终未曾松动的前提**:它默认**模型已知、感知完美、障碍可预测**。Frenet 转换假设地图准确,ST 图假设障碍轨迹可预测,连续优化假设动力学模型精确,MAPF 假设所有 agent 的意图已知。
现实世界不是这样的。
从时空联合规划进入不确定性规划:现实中,风扰、地形不确定性、抓取失败概率、他车意图不确定性无处不在——时空联合规划默认的"确定性世界"假设处处被打破。接下来的**不确定性规划**专题,正是处理这些问题的五套方法论工具箱。在数学上,时空联合规划的 NLP/QP 将扩展为**随机优化、鲁棒优化和信念空间搜索**;在工程上,确定性的代价函数将让位于**概率约束、管状集合(tube)和策略树**。你在本专题建立的优化/搜索功底,是进入不确定性规划的直接基础——它要做的,是给本专题的每一个"确定"的假设,加上"不确定"的修正。
另一条延伸——博弈规划:如果你更关心"他车不是障碍物,而是有自己目标的决策者",那么下一站是**博弈规划**专题。本专题 T5 的多智能体协调假设 agent 可以集中调度或互相协作;博弈规划处理的是**非合作**情形——每个 agent 追求自己的利益,规划要在博弈均衡的意义下求解。本专题 T6 的 Diffusion Planner 联合去噪、GameFormer 的交互建模,已经是通向博弈规划的桥梁。
两条延伸,都从本专题的"确定性、可预测"假设的某个裂缝出发。选哪条,取决于你接下来想攻克的是"世界的不确定"还是"他人的博弈"。
本章完 —— 你已掌握时空联合规划六章方法的横向全景:四范式的本质对比、前沿与落地的张力、场景选型的决策框架、按目标定制的学习路线,以及本专题在更大规控图谱中的坐标。带着这张地图,无论是深入某个方法、还是开启相邻专题,你都不会迷路。
时空联合规划专题版本历史¶
| 版本 | 日期 | 变更 |
|---|---|---|
| v0.1 | 2026-04-20 | 初版完成:6 章(T1-T6)+ 综合对比 + 附录 A-D |
| v0.2 | 2026-05 | 综合对比章成稿化:四范式深度对比、C++ 生态分析、选型决策框架;附录扩充至 A-E(新增 E 核心方法卡片速查 20 张);论文/项目信息联网核实更新 |
时空联合规划专题致谢:本专题的科研脉络梳理参考了以下核心实验室和研究者的公开论文及开源代码:HKUST Aerial Robotics (Wenchao Ding, Shaojie Shen)、ZJU FAST Lab (Fei Gao, Zhepei Wang)、HKU MaRS Lab (Fu Zhang, Jia Ren)、UZH RPG (Davide Scaramuzza, Philipp Foehn)、MIT ACL (Jesus Tordesillas, Jonathan How)、KIT (Julius Ziegler, Christoph Stiller)、UC Berkeley MSC (Masayoshi Tomizuka, Francesco Borrelli)、TU Dortmund RST (Christoph Rösmann, Torsten Bertram)、CMU RI (Maxim Likhachev, John Dolan)、Stanford ASL (Marco Pavone)、Baidu Apollo Planning Team、Autoware Foundation / Tier IV、AIST (Keisuke Okumura)、UNC (Dinesh Manocha)、Bar-Ilan University (Roni Stern)、USC (Sven Koenig, Jiaoyang Li)、OpenDriveLab / Shanghai AI Lab (Yihan Hu)、Stanford (Shuran Song, Cheng Chi)、清华 AIR (Diffusion Planner)、Waymo Research (EMMA)。所有论文引用和项目星数截至 2026 年 4 月。
(时空联合规划专题·综合对比与附录 完。本章为综述/参考类文档;开源项目 stars 为 2026 年 4 月量级值,精确数据以 GitHub 当前显示为准;论文信息已尽量核实。)