【自动驾驶】自动驾驶概述 ⑨ ( 自动驾驶软件系统概述 | 预测系统 | 决策规划 | 控制系统 )
文章目录
- 一、预测系统
- 1、预测对象和内容
- 2、预测系统的必要性
- 3、预测系统的输入和输出
- ① 预测系统输入
- ② 预测系统输出
- 4、预测方式
- ① 基于状态预测
- ② 基于状态预测 - 物理运动模型
- ③ 基于状态预测 - 机器学习模型
- ④ 基于车道序列预测
- ⑤ 基于车道序列预测 - 概率图模型、深度学习模型
- ⑥ 基于车道序列预测 - 轨迹生成
- 二、决策规划
- 1、决策规划目标
- 2、决策规划分层架构
- 3、路由规划与运动规划对比与联系
- ① 对比
- ② 联系
- 三、控制系统
- 1、控制系统核心目标
- 2、控制系统的输入输出信息
- ① 输入信息
- ② 输出信息
- 3、控制系统的常用算法
自动驾驶 包含 感知系统、预测系统、决策规划、控制系统 四大模块 , 在上一篇博客 【自动驾驶】自动驾驶概述 ⑧ ( 自动驾驶软件系统概述 | 感知系统 Perception | 感知原始数据 | 感知四大基础任务 | 特征提取机器学习算法 | 多传感器融合方案 ) 中 , 介绍了 感知系统 的 工作方式 ;
本篇博客中 , 介绍 预测系统、决策规划、控制系统 三个 自动驾驶 模块 ;
一、预测系统
1、预测对象和内容
自动驾驶 预测系统 的 核心目标 是 预测 车辆 周围 的 交通动态参与者 , 在 未来几秒内 的 可能行为 或 运动轨迹 , 主要是 车辆、行人、骑行者、其他移动物体 等 ;
- 车辆 : 预测 车辆 的 轨迹和操作 , 如 : 直行、左转、右转、换道、加减速 等操作 ;
- 行人 : 预测 行人 的 行走方向、速度变化、是否有横穿马路的意图 ;
- 骑行者 : 预测 自行车、电动车、摩托车 等骑行车辆 的 轨迹 , 这些车辆 机动性更强 , 预测难度较大 ;
- 其他移动物体 : 动物、滑板、平衡车 等 ;
2、预测系统的必要性
预测系统 的 输出 是 决策规划 的 输入 , 预测系统 的 实时性、准确性 直接关系到 自动驾驶车辆的 安全性 和 平顺性 ;
- 安全性 : 及时 准确 的 预判潜在危险 , 为车辆采取 制动 或 避让 措施 争取宝贵时间 ;
- 平顺性 : 基于 对其他交通参与者 行为的 及时 和 准确预测 , 规划出 更合理、更平顺 的行驶轨迹 , 避免急刹、猛拐,提升乘车体验 ;
满足 实时性 与 准确性 的 预测系统 , 可以 使 自动驾驶车辆 能够像 经验丰富 的 司机 一样 , 与其他 交通参与者 进行 默契 的互动 ;
3、预测系统的输入和输出
① 预测系统输入
预测系统的输入 :
-
感知结果 : 来自 摄像头、激光雷达、毫米波雷达 的 图像数据、点云数据、雷达反射值数据 的 融合结果 , 包括 目标物体 的 位置、速度、加速度、朝向、边界框、类型 等 ;
-
高精地图 : 提供 静态环境 上下文 数据 , 如 : 车道线、交通信号灯、停止线、路缘石、十字路口布局 等 , 是理解交通规则和可行驶区域的关键 ;
-
本车状态 : 运行 自动驾驶 预测系统 的 汽车本身 的 速度、位置、规划意图 等 ;
② 预测系统输出
预测系统的输出 :
- 多模态轨迹 : 对于一个 目标物体 , 预测系统 通常会给出 多种可能的 未来轨迹 , 并为 每种轨迹 分配一个概率 ; 如 : 对于 某个目标车辆 , 可能输出如下 未来轨迹 :
- 轨迹A : 保持当前车道直行(概率:90%)
- 轨迹B : 向左变道(概率:6%)
- 轨迹C : 向右变道(概率:3.5%)
- 轨迹D : 倒车(概率:0.5%)
- 行为意图 : 直接输出 高层次的 行为分类 , 如 : 直行、左转、停止 等 ;
4、预测方式
在 自动驾驶 的 预测系统 中 , 有两种核心的 预测思路 , 分别是 基于状态预测 和 基于车道序列预测 , 二者分别从 物理运动 和 行为意图 两个层面 来 预测其他 交通参与者 的 未来趋势 ;
① 基于状态预测
基于状态预测 的 核心思想 是 基于 目标物体 当前的 运动状态 , 通过 物理运动模型 或 机器学习模型 外推 未来轨迹 ;
基于状态预测 模型 的 输入 目标的 历史轨迹 和 历史状态 , 输出 单一轨迹 或 多条具体轨迹 ;
基于状态预测 模型 的 优缺点 :
- 优点 : 模型简单 , 计算效率高 , 短期预测较为可靠 ;
- 缺点 : 长期预测误差大 , 难以预测意图驱动的行为 , 如 : 车辆突然变道 , 行人突然折返 ;
② 基于状态预测 - 物理运动模型
物理运动模型 :
- 恒定 速度 / 加速度 模型 : 假设 目标物体 在预测时域内保持当前 速度 或 加速度 不变 , 这是 最简单、计算成本最低 的 计算模型 ;
- 卡尔曼滤波器 ( 线性模型 ) : 是一种 线性递归 滤波算法 , 适用 高效处理 线性高斯系统 的状态估计 , 常用于 车辆、行人 等 运动模式相对规律 的目标的 短期状态预测 ;
- 粒子滤波器 ( 非线性模型 ) : 是一种 非线性非高斯系统 状态 估计算法 , 核心思想 是 使用 大量 带权重的 状态样本 , 也就是 粒子 , 近似目标状态的 概率分布 , 无需 线性和高斯假设 , 该算法 更适合处理 运动模式复杂、非高斯噪声 的目标 ;
③ 基于状态预测 - 机器学习模型
机器学习模型 :
- Transformer 注意力机制模型 : 能够 有效 捕捉 数据中的 长期依赖关系 和 全局信息 , 可用于对车辆状 态序列 进行建模和预测 , 常与 LSTM 等结合使用 ;
- RNN、LSTM 递归神经网络模型 : 该模型 擅长 处理 时间序列数据 , 可以学习车辆历史轨迹中的时序模式 , 用于预测未来状态 ;
- GNN 图神经网络 : 用于建模 图结构数据 , 适合表达车辆之间的交互关系 , 通过对车辆及其周围环境的图结构建模 , 可更好地预测车辆在复杂交互场景下的状态 ;
④ 基于车道序列预测
基于车道序列预测 目标轨迹 的 核心是 将预测转化为 对 目标车辆 可能行驶的 车道序列 的选择问题 , 再生成 对应轨迹 ;
基于车道序列预测 模型 , 输入 高精度地图 提供的 车道拓扑结构 , 输出 多模态的预测结果 , 即多个可能的车道序列及其对应概率和轨迹 ;
基于车道序列预测 模型 优缺点 :
- 优点 : 能预测 中长期行为 , 符合人类驾驶习惯 , 结果可解释性强 ;
- 缺点 : 依赖 高精地图 的 质量和实时性 , 在道路结构不规则时可能失效 ;
⑤ 基于车道序列预测 - 概率图模型、深度学习模型
基于车道序列的预测 模型 的 出发点 是 认为 车辆的行为 受到 结构化道路 的 约束 ;
基于车道序列 预测模型 :
- 概率图模型 :
- 马尔科夫模型 : 将 车辆的 车道变换行为 建模为一个 马尔科夫过程 , 通过状态转移矩阵来预测车辆在未来时刻位于不同车道的概率 ;
- 深度学习模型:
- 递归神经网络 RNN : 使用 RNN 编码 车道序列 和 车辆状态 , 最后通过 神经网络 计算每个车道序列的概率 , 选择概率最高的作为 预测结果 ;
- 多层感知网络 MLP : 将感知到的 环境信息 和 车辆状态 在一个统一的深度神经网络中进行处理 , 直接输出所有交通参与者的联合未来预测 ;
⑥ 基于车道序列预测 - 轨迹生成
使用 基于车道序列的预测 模型 确定了 最有可能的车道序列 , 通常会使用 多项式拟合 的方法 , 根据车辆当前状态和车道中心线 , 生成一条平滑的、物理上可行的轨迹 ;
二、决策规划
1、决策规划目标
决策规划层 的 核心目标 是 生成一条 安全、合规、舒适、高效 的 从 当前位置 到 目标位置 的行驶轨迹 , 需要满足如下四个要求 :
- 安全性 : 绝对优先 , 避免与任何障碍物发生碰撞 ;
- 合规性 : 遵守 交通规则 ;
- 舒适性 : 动作平滑 , 避免 急加速、急刹车、急转弯 ;
- 高效性 : 在保证 安全舒适 的前提下 , 尽快 到达目的地 ;
上述四个要求 优先级 从上到下 依次 从到到低 ;
2、决策规划分层架构
决策规划 采用 分层处理 的架构 , 将 任务 分为 三个层次 :
- 路由规划 : 全局路径规划 , 根据 起点、终点 和 地图信息 , 规划一条 导航路线 ;
- 输入信息 : 高精地图 , 起点 , 终点 ;
- 输出信息 : 一条 由 路口 和 道路 连接而成的 路径 ;
- 常用算法 : A* 算法、Dijkstra 算法 ;
- 行为决策 : 在 路由规划 提供的 全局路径规划 基础上 , 根据 实时感知 的 交通环境 , 做出 高层级 的战术决策 ;
- 输入信息 : 全局参考路径、实时感知的 动态/静态 障碍物信息、交通规则 ;
- 输出信息 : 驾驶行为 抽象指令 , 如 : 跟随前车、左转、避让行人 ;
- 常用算法 : 有限状态机、决策树、基于规则的系统、强化学习 ;
- 运动规划 : 局部路径规划 , 将 抽象的驾驶行为 转化为一条 具体、平滑、可由车辆执行的物理轨迹 ;
- 输入信息 : 行为决策指令、全局参考路径信息、周围环境信息 ;
- 输出信息 : 一条 包含时间戳 的轨迹 , 定义了未来一段时间内 , 车辆 每一个时刻 的 位置 ( Frenet 坐标系 + 直角坐标系 的 坐标 )、航向角 和 速度 ;
- 常用算法 : Hybrid A* 算法、RRT 快速探索随机树算法、基于插值的曲线算法 ( 多项式曲线、贝塞尔曲线、样条曲线 ) ;
3、路由规划与运动规划对比与联系
① 对比
路由规划 与 运动规划 对比 :
路由规划 是 全局战略层 的 总体导航线路规划 , 运动规划 是 局部战术层 的 精细轨迹表达 ;
路由规划 的 输出数据 是 车道级道路序列 , 该序列中的 坐标点 都是 大地坐标系 中的 经纬度 坐标 ;
运动规划 的 输出数据 是 带时间戳、位置、速度的平滑轨迹点序列 , 该序列中的 坐标点 是 Frenet 坐标系 + 直角坐标系 的 坐标 ;
路由规划 的 目标是 走哪条路 , 运动规划 的 目标是 具体怎么走 ;
② 联系
路由规划 与 运动规划 联系 :
路由规划 为 运动规划 表达 提供了 宏观的 参考路线 和 行驶目标 ;
而 精细轨迹表达 则是 导航线路 在 局部范围 内的 具体、安全、舒适 的实现 ;
当 精细轨迹表达 发现 局部无法通行时 , 会反馈给上层 , 触发 全局路径 的 重新规划 ;
三、控制系统
1、控制系统核心目标
自动驾驶 的 " 感知系统 - 决策规划 - 控制系统 " 的 层次架构 中 , 控制系统 是最终的 执行终端 ,
负责 接收 决策规划层 输出的 行驶目标 , 通过 线控接口 精准控制 车辆动力、转向、制动 等 执行机构 , 确保车辆 安全、平稳行驶 ;
2、控制系统的输入输出信息
① 输入信息
控制系统的输入信息 :
- 决策规划 输出 的数据 :
- 路径规划 : 带有 时间戳 的 路径点序列 , 每个店包含 目标位置、速度、朝向、曲率 等数据 ;
- 目标状态 : 决策后的 本车 要达到的 目标状态 ;
- 感知系统 输出 的数据 :
- 车身状态 : 感知系统 IMU 获取的 车速、角速度、加速度、方向盘转角、轮胎抓地力 等 姿态数据 ;
- 定位信息 : 车辆的 精确位置 数据 ;
② 输出信息
控制系统的输出信息 : 通过 CAN 总线 发送给 执行器 的 控制指令 , 主要包含如下 线控指令 ;
- 线控油门 指令 : 控制车辆 加速 ;
- 线控刹车 指令 : 控制车辆 减速 ;
- 线控转向 指令 : 控制车辆 行驶方向 ;
- 线控档位 指令 : 控制 前进、倒退、停车 档位 ;
3、控制系统的常用算法
控制系统的常用算法 :
- 比例-积分-微分控制 ( PID , Proportional-Integral-Derivative Control ) : 通过 比例项 P 消除当前偏差 , 积分项 I 消除累计偏差 , 微分项 D 抑制偏差变化趋势 , 常用于 精度要求不高 的 纵向速度控制 ;
- 模型预测控制 ( MPC , Model Predictive Control ) : 基于 车辆动力学模型 , 预测未来 短时间内 的车辆状态 , 通过 滚动优化 选择 使未来偏差最小 的控制指令 , 适用于 横向轨迹 控制 和 纵向车速控制 ;
- 滑模控制 ( SMC , Sliding Mode Control ) : 通过 强制控制车辆状态 沿着预设的 滑模面 运动 , 适用于 车辆稳定性控制 场景 ;
print("Hello World!")dao_phrases = ["预测系统","决策规划","控制系统"
]print("\n自动驾驶概述 :")
for i, phrase in enumerate(dao_phrases, 1):print(f"{i}. {phrase}")