核心内容摘要
XXXNX爻賶賰卮賶:颠覆想象的奇幻之旅,探索未知边界
Apollo借道超车场景下速度规划的具体实现逻辑这是Apollo超车速度规划的核心安全约束环节。
Apollo的借道超车速度规划并非单纯的“加速-匀速-减速”曲线生成而是基于Frenet坐标系的s-t时空图做全局速度优化会将本车道前车、超车道前后车、对向车道来车等所有动态目标的时空轨迹都投射到s-t图中形成时空障碍物约束再通过算法生成无冲突、符合动力学/舒适性的速度曲线核心是在s-t图的安全时空窗口内完成超车。
结合Apollo主流的EM Planner规划框架超车场景的核心规划模块下面从超车速度规划的核心载体s-t图、对向车辆的时空投射逻辑、完整速度规划流程、工程实现细节四个方面拆解Apollo的具体做法贴合工程落地实际。
先明确Apollo超车速度规划的核心载体——Frenets-t图Apollo的超车规划全程基于Frenet坐标系贴合车辆道路行驶特性而速度规划的核心载体是s-t图s为路径长度t为时间这是理解所有约束的前提s轴定义沿超车全局参考路径的累积长度从超车起始点到结束点包含“本车道跟车段→超车道变道段→超车道超车段→本车道回正段”是一条连续的路径线t轴定义时间规划时间窗通常为5~8s超车属于中长时规划需覆盖“变道-超车-回正”全流程s-t图的核心作用将空间维度的障碍物转化为时空维度的障碍物——车辆的速度曲线在s-t图中是一条连续曲线曲线与任何时空障碍物重叠即代表未来某一时刻会发生碰撞超车的核心目标在s-t图中找到一条从起始点s₀,t₀到终点s_end,t_end的连续速度曲线满足无时空冲突、动力学约束加/减速度、加加速度、舒适性约束、法规约束。
关键借道超车时Apollo会将超车道、对向车道的道路范围通过Frenet坐标映射转化为s轴的一段区间让对向车辆的空间位置能直接投射到超车的s-t图中做约束。
核心问题对向车道车辆的轨迹/速度如何投射到超车s-t图Apollo会将对向车道车辆的轨迹和速度投射到超车速度规划的s-t图中形成对向时空障碍物约束这是超车的硬安全约束无此约束会导致对向碰撞且投射过程分为坐标映射时空轨迹预测障碍物生成三步全程基于感知和预测模块的输出。
步骤1对向车道的Frenet坐标映射空间维度将对向车道的物理笛卡尔坐标x,y映射到超车参考路径的Frenet坐标系核心是找到对向车辆在超车s轴上的投影位置先通过高精地图感知车道线确定对向车道与超车道的横向距离d固定值由道路宽度决定如双向四车道d≈
5m对向车辆的实时笛卡尔坐标(xopp,yopp)(x_{opp},y_{opp})(xopp,yopp)通过投影算法找到其在超车参考路径s轴上的最近投影点s_{opp}并计算横向偏移量l_{opp}y_{opp}-y_{ref}(s_{opp})yref(s)y_{ref}(s)yref(s)为超车参考路径在s处的y坐标定义对向车辆的s轴有效影响区间由于超车是借道超车道对向车辆的碰撞风险覆盖超车道全段因此其投影s_{opp}会覆盖**超车s轴的超车道段s1s2**即对向车辆在s1s2区间内的s-t轨迹均为超车的约束。
步骤2对向车辆的未来轨迹与速度预测时间维度感知模块输出对向车辆的实时状态位置s_{opp,0}、速度v_{opp,0}、加速度a_{opp,0}后预测模块会生成其未来5~8s的时空轨迹核心用多模型融合预测常规情况对向车辆匀速/恒加速行驶用动力学模型预测未来轨迹sopp(t)sopp,0vopp,0⋅t
5⋅aopp,0⋅t2s_{opp}(t) s_{opp,0} v_{opp,0} \cdot t
5 \cdot a_{opp,0} \cdot t²sopp(t)sopp,0vopp,0⋅t
5⋅aopp,0⋅t2复杂情况对向车辆有变道、减速等意图用规则机器学习模型LSTM/Transformer预测未来轨迹输出多轨迹置信度Apollo会取最危险的高置信度轨迹做约束保守设计最终输出对向车辆在未来每一个时间步Δt
1s的s坐标s_{opp}(t)和速度v_{opp}(t)即离散的时空轨迹点{(t0,s
,(t1,s
,...,(tn,sn)}\{(t_0,s_
,(t_1,s_
,...,(t_n,s_n)\}{(t0,s0),(t1,s1),...,(tn,sn)}。
步骤3生成s-t图中的对向时空障碍物约束维度将对向车辆的离散时空轨迹转化为s-t图中不可穿越的时空障碍物矩形/多边形这是速度规划的核心约束分为两步基础时空障碍物生成以对向车辆的预测s-t轨迹点为中心考虑车辆自身尺寸长度L_opp、宽度W_opp、安全距离冗余纵向Δs10~20m横向Δl
5m在s-t图中生成连续的矩形障碍物带——矩形的s范围为[sopp(t)−Δs,sopp(t)LoppΔs][s_{opp}(t)-Δs, s_{opp}(t)L_oppΔs][sopp(t)−Δs,sopp(t)LoppΔs]t范围为[t−Δt,tΔt][t-Δt, tΔt][t−Δt,tΔt]覆盖对向车辆的时空占用范围碰撞风险放大由于对向超车是高危场景Apollo会对向时空障碍物做20%~30%的安全冗余放大比同向车辆的冗余更高避免因感知/预测误差导致的碰撞约束生效区间仅当对向车辆的横向偏移量l_{opp}落在超车道的横向有效范围内时其s-t时空障碍物才会生效远离超车道的对向车辆不做约束。
最终效果对向车辆在超车s-t图中会形成一条连续的、带安全冗余的时空障碍物带Apollo的超车速度曲线必须完全绕开该障碍物带否则直接判定超车不可行。
补充除了对向车辆这些目标也会投射到s-t图做约束Apollo的超车s-t图是全环境时空约束并非仅考虑对向车辆会同时投射以下所有动态目标的时空轨迹形成多层时空障碍物约束缺一不可本车道前车超车的初始目标其s-t轨迹是超车的触发条件速度差≥20km/h也是s-t图的前方基础约束超车道前车需保持纵向安全距离≥50m其s-t轨迹是超车道的前方约束超车道后车需保持纵向安全距离≥30m其s-t轨迹是超车道的后方约束避免被后车追尾对向车道来车最高优先级约束其s-t轨迹是超车道的对向碰撞约束绕不开则直接放弃超车道路法规约束如超车路段的限速值在s-t图中表现为速度上限曲线v≤v_limit→ds/dt≤v_limit、禁止超车区在s-t图中表现为时空禁区直接不可进入。
Apollo借道超车的完整速度规划流程基于s-t图多约束Apollo的超车速度规划属于EM Planner的速度规划子模块核心算法是动态规划DP做全局搜索 二次规划QP做局部优化全程在带时空约束的s-t图中执行输出连续平滑的s-t速度曲线可直接转化为车辆的纵向加/减速指令输入包含感知/预测的全环境时空约束、超车参考路径、车辆动力学参数输出为Frenet坐标系下的s-t速度曲线ds/dtv。
核心流程6步生成无冲突超车速度曲线步骤1构建超车s-t图的基础框架与约束集定义s-t图的范围s轴覆盖超车全路径通常50100mt轴覆盖规划时间窗58s时间步长Δt
1s路径步长Δs
5m加载所有时空障碍物约束将本车道前车、超车道前后车、对向车道来车的s-t时空障碍物带加载到图中标记不可穿越区域加载硬约束边界动力学约束最大舒适加速度a≤
5m/s²、最大舒适减速度a≥-2m/s²、加加速度j≤1m/s³速度约束全程v≤道路限速超车段v≤v_limit10km/h不超速法规约束禁止超车区标记为时空禁区直接排除。
步骤2动态规划DP在s-t图中做全局可行路径搜索这是核心的全局寻优环节目的是在s-t图中找到一条从起始点到终点的无冲突可行速度曲线避免局部最优核心是状态采样代价函数评价状态定义DP的每个状态为(s,t,v)(s, t, v)(s,t,v)即某一时刻t、某一路径点s处的车辆速度v状态转移从起始状态(s0,t0,v
(s_0, t_0, v_
(s0,t0,v0)出发按动力学约束加/减速度范围向后续t步转移生成新的状态点冲突检测转移后的状态点若落在时空障碍物带/禁区内直接剔除仅保留可行状态点代价函数评价对所有可行状态点打分代价函数优先考虑超车效率时间短、速度平滑性加加速度小、无冲突远离障碍物公式为Costw1⋅tendw2⋅∑∣j∣w3⋅min(ds−t)Cost w_1 \cdot t_{end} w_2 \cdot \sum|j| w_3 \cdot \min(d_{s-t})Costw1⋅tendw2⋅∑∣j∣w3⋅min(ds−t)其中ds−td_{s-t}ds−t为状态点到最近时空障碍物的s-t距离越远代价越低全局最优路径通过回溯法找到从起始点到终点的最小代价可行路径即DP生成的初始s-t速度曲线满足所有硬约束但存在离散台阶。
步骤3二次规划QP对DP曲线做局部平滑优化DP生成的曲线是离散的台阶状曲线无法直接被控制模块执行会导致急加减速因此通过QP做连续化平滑优化核心是在满足所有约束的前提下最小化曲线的曲率加加速度让速度曲线连续可导、平滑舒适优化目标min∑(j(t))2\min \sum (j(t))^2min∑(j(t))2最小化加加速度保证舒适性约束条件优化后的曲线需满足动力学约束、速度约束、时空障碍物约束与所有时空障碍物的s-t距离≥安全冗余输出连续平滑的s-t速度曲线无台阶、无突变符合车辆执行特性。
步骤4超车速度曲线的阶段拆解与特征适配优化后的s-t速度曲线会自然拆解为借道超车的5个核心阶段每个阶段的速度特征贴合超车行为逻辑与路径规划的“变道-超车-回正”完全协同横向变道与纵向加减速同步执行提升超车效率超车阶段s-t图速度特征与路径规划的协同核心约束
本车道跟车匀速vv_前车Δv保持安全车距本车道内直行准备变道与本车道前车的s-t距离≥30m
超车道变道匀加速a1~
5m/s²v提升至超车速度从本车道变道到超车道与超车道前后车、对向车无s-t冲突
超车道超车匀速vv_超车比前车快20~30km/h超车道内直行完成超越与对向车的s-t距离≥50m最高优先级
本车道回正匀减速a-
5~-1m/s²v匹配本车道巡航速度从超车道回正到本车道与本车道后车的s-t距离≥30m
恢复巡航微加速/匀速v回到原巡航速度本车道内直行符合道路限速步骤5时空窗口校验——超车可行性最终判定在速度曲线生成后Apollo会做最终的超车时空窗口校验核心是判断超车总耗时t_total是否小于对向车辆的s-t安全窗口时长t_window对向车辆的s-t安全窗口对向车辆通过超车道段的时间区间[topp,start,topp,end][t_{opp,start}, t_{opp,end}][topp,start,topp,end]超车必须在**t t_{opp,start} 或 t t_{opp,end}**的时间段内完成校验逻辑若ttotaltopp,start−t0t_{total} t_{opp,start} - t_0ttotaltopp,start−t0超车能在对向车到达前完成则判定可行否则直接放弃超车回到跟车/减速绕行状态保守设计即使校验通过也会预留1~2s的安全时间冗余避免因预测误差导致对向碰撞。
步骤6输出速度曲线与控制模块对接将优化后的s-t速度曲线转化为车辆纵向控制的参考指令——即每一个时间步Δt的目标速度v_target(t)和目标加速度a_target(t)通过Cyber RT通信传递给控制模块MPC/PID控制模块根据车辆实际速度做反馈修正输出油门/制动开度指令。
Apollo超车速度规划的工程实现细节贴合实际落地
对向车辆约束的优先级——最高级硬约束Apollo对所有时空约束做了优先级分级对向车道车辆的s-t约束是最高优先级的硬约束任何情况下都无法突破若对向车辆的s-t时空障碍物带与超车速度曲线存在任何重叠直接放弃超车无需后续优化相比之下超车道后车的约束为软约束可适当降低加速度延长超车时间避免冲突而对向车约束为硬约束无妥协空间。
多轨迹预测的保守选择——取最危险轨迹做约束预测模块对向车辆会输出多轨迹置信度如3条不同的未来轨迹置信度分别为90%、70%、50%Apollo在速度规划时会选择对超车最危险的轨迹即最早到达超车道段、速度最快的轨迹做s-t投射而非取平均轨迹这是工程上的保守安全设计避免因预测乐观导致碰撞。
速度规划与路径规划的深度协同——时空轨迹融合Apollo的超车规划并非“路径规划和速度规划独立执行”而是深度协同的时空轨迹融合路径规划生成的参考路径会实时反馈给速度规划若路径曲率变化如超车道有轻微弯道速度规划会自动降低超车速度v减少5~10km/h保证横向稳定性速度规划生成的加速度曲线会实时反馈给路径规划若加速度过大路径规划会适当延长变道/超车段的路径长度避免复合运动导致的车辆失稳最终输出的是Frenet坐标系下的时空轨迹s-t速度曲线 横向l-t曲线而非单独的路径或速度曲线。
实时重规划——应对环境突变的兜底策略超车过程中感知模块会每100ms更新一次环境数据若发现对向车辆突然加速/变道预测轨迹发生变化会立即触发实时重规划重新投射对向车辆的新s-t时空障碍物用快速QP优化重新生成速度曲线无需重新DP搜索保证实时性若新曲线无法绕开对向障碍物立即终止超车执行紧急回正制动将车辆拉回本车道安全区域。
动力约束的适配——速度曲线的可执行性校验速度规划生成的曲线会经过车辆动力系统的可执行性校验Apollo会根据车辆当前的动力状态如电动车的剩余电量、燃油车的发动机转速调整加速度曲线若动力不足如剩余电量低最大加速度仅1m/s²会适当延长加速时间降低超车速度保证曲线能被动力系统执行若动力严重不足直接放弃超车。
四、
总结核心要点回顾对向车辆的s-t投射Apollo会将对向车道车辆的轨迹和速度投射到超车速度规划的s-t图中经Frenet坐标映射→时空轨迹预测→安全冗余放大后形成最高优先级的时空障碍物硬约束速度曲线必须完全绕开速度规划核心算法基于DP全局搜索QP局部优化在带全环境时空约束的s-t图中生成无冲突曲线兼顾全局最优和局部平滑超车核心逻辑在s-t图的对向车辆安全时空窗口内完成“跟车-加速-匀速-减速-巡航”的速度曲线生成横向变道与纵向加减速同步执行安全设计对向约束为最高优先级取对向车辆最危险预测轨迹做约束且全程预留时间/距离安全冗余支持环境突变的实时重规划兜底工程协同速度规划与路径规划深度时空融合且需经过车辆动力可执行性校验生成的曲线能直接被控制模块执行。
简单说Apollo借道超车的速度规划本质是在s-t图的全环境时空约束下找一条既安全又高效的纵向速度最优解而对向车辆的s-t投射是这一过程中不可突破的核心安全底线。