4. 行为决策概述
在自动驾驶与机器人系统中,决策模块承担着“在复杂环境中决定下一步如何行动”的核心职责。行为决策(Behavioral Decision)位于感知与规划之间,是将环境理解转化为可执行驾驶策略的关键枢纽。它回答的是“在当前情境下,我应该做什么”的问题,而轨迹生成则回答“具体怎么动”。本章将系统阐述行为决策的定义、任务边界、与轨迹生成的关系,以及贯穿行业实践的典型决策层级结构,帮助学习者建立从任务级意图到运动级执行的完整认知框架。
4.1 行为决策的定义与核心任务
行为决策(Behavioral Decision Making)是指智能体在部分可观测、动态变化的环境中,依据感知、预测、地图与任务目标,从一组离散或半离散的候选行为中做出选择,并输出带有参数约束的行为意图的过程。在自动驾驶语境下,行为决策的输出通常是一个语义级动作(如“跟随前车”“向左变道”“在停止线前停车”),而非具体的几何轨迹点序列。
行为决策的核心任务可以归纳为以下四个方面:
| 任务维度 | 具体内容 | 典型输出 |
|---|---|---|
| 行为选择 | 从候选行为集合中选出当前最优行为 | 跟车、超车、让行、停车、绕障 |
| 参数生成 | 为选定行为提供量化约束 | 目标车速范围、跟车距离、变道时机 |
| 时机判断 | 决定行为切换的触发条件与时间点 | 何时开始变道、何时减速 |
| 风险评估 | 评估候选行为的碰撞风险与合规性 | 风险等级、安全裕度、违反交规概率 |
行为决策的输入通常包括:自车状态(速度、加速度、航向角)、环境感知(障碍物列表、车道线、交通标志)、预测结果(其他交通参与者的未来轨迹分布)、全局任务(目标车道、途经点)以及高精地图(道路拓扑、限速、路口结构)。这些输入在行为决策模块中被融合、抽象,最终转化为一个可执行的语义行为指令。
关键理解:行为决策不是简单的“if-else”规则堆砌,而是一个在不确定性下做权衡的优化问题。它需要在安全、效率、舒适、合规等多个目标之间寻找平衡点。例如,在拥堵路段,行为决策需要在“频繁变道以节省时间”和“保持车道以降低风险”之间做出合理取舍。
4.2 行为决策与轨迹生成的关系
行为决策与轨迹生成(Trajectory Generation)是紧密耦合的两个层次,它们共同构成了运动规划(Motion Planning)的主体。二者的关系可以概括为“决策指导生成,生成反馈决策”的闭环结构。
从信息流角度看,行为决策为轨迹生成提供语义约束和参数边界。例如,当行为决策输出“向左变道”时,轨迹生成模块需要据此生成一条从当前车道平滑过渡到左侧车道的几何路径,并规划相应的速度曲线。行为决策中的“变道”语义,直接决定了轨迹生成的搜索空间和优化目标。
从反馈机制看,轨迹生成的结果(如曲率过大、加速度超出舒适阈值、与障碍物最小距离不足)会反馈给行为决策,促使行为决策调整策略或重新选择行为。这种反馈机制在复杂场景中尤为重要——例如,当轨迹生成发现“向左变道”在当前车速下无法安全完成时,行为决策需要降级为“减速等待”或“放弃变道”。
下表对比了行为决策与轨迹生成在多个维度上的差异:
| 对比维度 | 行为决策 | 轨迹生成 |
|---|---|---|
| 输出粒度 | 语义级(离散/半离散) | 连续级(路径点+速度点) |
| 时间尺度 | 100ms ~ 1s | 10ms ~ 100ms |
| 决策空间 | 有限候选行为集合 | 连续状态空间 |
| 主要方法 | 状态机、决策树、强化学习 | 采样、优化、插值 |
| 失败模式 | 行为选择错误(如误判让行) | 轨迹不可行(如碰撞、超限) |
常见误区:初学者容易将行为决策与轨迹生成混为一谈,认为“规划一条路径”就是决策的全部。实际上,行为决策解决的是“做什么”的战略问题,轨迹生成解决的是“怎么做”的战术问题。缺少行为决策的轨迹生成往往缺乏语义可解释性,难以处理需要长期推理的交互场景(如无保护左转、环岛通行)。
4.3 典型决策层级:任务决策、行为决策、运动规划
在自动驾驶行业实践中,决策系统通常被划分为三个层级,每个层级对应不同的抽象程度和时间尺度。这种分层设计借鉴了认知科学中“感知-决策-执行”的层次化架构,也符合软件工程中“高内聚、低耦合”的设计原则。
4.3.1 任务决策(Route Planning / Mission Planning)
任务决策位于决策层级的最顶端,负责从宏观层面规划从起点到终点的全局路径。它通常以道路级或车道级为粒度,输出一系列途经点或目标车道序列。任务决策的典型输入包括:导航地图、实时交通信息、用户目的地;输出则是一条全局路线,例如“沿A路行驶2公里,右转进入B路,继续行驶1.5公里后到达”。
任务决策的时间尺度较长,通常在秒级到分钟级,且不需要高频更新。它主要依赖图搜索算法(如A*、Dijkstra)或分层路网规划方法。在Robotaxi场景中,任务决策还需要考虑上下客点、运营区域限制等因素。
4.3.2 行为决策(Behavioral Decision)
行为决策是本章的核心,它接收任务决策给出的全局路线,结合实时感知与预测信息,在局部驾驶场景中做出具体的行为选择。行为决策的时间尺度通常在100ms到1s之间,需要以10Hz左右的频率运行。其输出是语义级行为指令,如“在当前车道跟车”“准备向右变道”“在路口停车让行”。
行为决策的典型实现方法包括:
- 有限状态机(FSM):将驾驶场景划分为有限个状态(如巡航、跟车、变道、停车),通过状态转移条件驱动行为切换。优点是结构清晰、易于调试;缺点是难以处理复杂交互和连续状态。
- 决策树/规则引擎:基于专家经验构建决策规则,适用于逻辑明确的场景(如“前方有行人横穿→停车”)。优点是可解释性强;缺点是规则维护成本高,泛化能力有限。
- 强化学习(RL):通过与环境交互学习最优决策策略,能够处理高维连续状态。优点是适应性强;缺点是训练成本高、安全性验证困难。
- 蒙特卡洛树搜索(MCTS):在离散行为空间中进行前向搜索,评估不同行为序列的长期收益。适用于需要多步推理的交互场景。
4.3.3 运动规划(Motion Planning)
运动规划是决策层级的最底层,负责将行为决策的语义指令转化为具体的、满足动力学约束的轨迹。它通常包含路径规划(生成几何路径)和速度规划(生成速度曲线)两个子模块。运动规划的输出是一系列带时间戳的轨迹点,包含位置、速度、加速度、曲率等信息,直接交给控制模块执行。
运动规划的时间尺度在10ms到100ms之间,运行频率通常为20~50Hz。常用方法包括:采样法(如RRT、Lattice Planner)、优化法(如MPC、二次规划)、插值法(如三次样条、贝塞尔曲线)以及它们的混合方法。
4.4 案例拆解:无保护左转场景中的决策层级协作
为了更直观地理解三个决策层级如何协作,我们以自动驾驶中极具挑战性的无保护左转场景为例进行拆解。
场景背景与约束:自动驾驶车辆行驶至一个没有专用左转信号灯的路口,需要左转穿越对向直行车流。路口限速40km/h,对向车道有连续来车,且存在行人过街的可能。车辆搭载了激光雷达、摄像头、毫米波雷达,感知距离约120米,预测模块可输出对向车辆未来3秒的轨迹分布。
初始现象与目标:车辆在停止线前停车,任务决策给出的全局路线要求“在路口左转进入西侧道路”。行为决策需要判断“何时启动左转”以及“以何种方式完成左转”。
关键输入数据:
- 对向车辆A:速度45km/h,距离路口约80米,预测其将在2.5秒后到达路口中心。
- 对向车辆B:速度50km/h,距离路口约150米,预测其将在4.8秒后到达路口中心。
- 行人检测:无行人穿越。
- 自车位置:停止线后1.5米,车头朝向正北。
分析判断过程:
- 任务决策层:确认左转意图,提供目标车道信息(西侧道路最左侧车道)。
- 行为决策层:评估两个候选行为——“立即启动左转”和“等待更安全窗口”。计算安全时间窗口:车辆A到达路口中心需2.5秒,车辆B需4.8秒。自车从静止加速完成左转(穿越对向车道)约需3.2秒。若立即启动,将在第2.5秒时与车辆A发生冲突,风险过高。因此行为决策选择“等待车辆A通过后,在车辆B到达前完成左转”,即等待约2.5秒后启动。
- 运动规划层:根据行为决策的“等待后左转”指令,生成一条从停止线到目标车道的平滑左转轨迹,包含加速、转向、汇入三个阶段,并确保最大横向加速度不超过2m/s²,最大纵向加速度不超过1.5m/s²。
实际操作步骤与结果:车辆在停止线等待2.5秒后启动,以约0.8m/s²的加速度平稳起步,转向角按规划曲线变化,在第5.8秒完成左转并汇入目标车道。整个过程中,与车辆A的最小距离为4.2米,与车辆B的最小距离为6.8米,均满足安全距离要求。乘坐体验良好,无急刹或急转。
风险与代价:若行为决策误判时间窗口(例如提前0.5秒启动),可能导致与车辆A的碰撞风险急剧上升;若过度保守(等待车辆B也通过),则可能等待时间过长,造成后方车辆拥堵。因此,行为决策需要在安全与效率之间精确权衡。
复盘经验:该案例表明,行为决策的可靠性直接决定了自动驾驶系统的安全上限。在实际工程中,行为决策模块需要结合预测的不确定性(如车辆A可能加速或减速),采用保守策略(如增加安全裕度),并通过仿真和路测持续优化决策阈值。
工程实践建议:在构建行为决策系统时,建议采用“分层状态机+参数化决策”的混合架构。状态机负责离散行为切换,参数化决策(如时间窗口计算、安全距离评估)负责连续量计算。同时,为每个行为设置可配置的安全参数(如最小安全时间间隔、最大允许风险概率),便于在不同场景下进行调优。
4.5 常见误区与总结复盘
在行为决策的学习与工程实践中,以下误区值得特别关注:
| 误区 | 表现 | 正确理解 |
|---|---|---|
| 决策=规则堆砌 | 用大量if-else处理所有场景 | 规则只覆盖已知场景,需要结合模型与搜索处理未知情况 |
| 忽视预测不确定性 | 将预测结果当作确定值 | 行为决策必须考虑预测的概率分布,采用鲁棒策略 |
| 决策与规划割裂 | 行为决策不考虑轨迹可行性 | 需要建立反馈机制,让轨迹生成结果影响行为选择 |
| 时间尺度混乱 | 行为决策频率过高或过低 | 根据场景复杂度选择合适频率,关键场景可触发异步决策 |
总结:行为决策是自动驾驶系统中承上启下的关键模块。它接收任务决策的宏观指引,融合感知与预测的实时信息,输出具有语义可解释性的行为指令,并指导轨迹生成模块完成具体的运动规划。理解行为决策的定义、任务边界、与轨迹生成的关系以及典型决策层级,是构建安全、高效、可解释的自动驾驶系统的基石。在实际工程中,行为决策的设计需要兼顾规则的可维护性、模型的泛化能力以及系统的实时性,并通过充分的仿真与路测验证其可靠性。