【自动驾驶】自动驾驶概述 ⑨ ( 自动驾驶软件系统概述 | 预测系统 | 决策规划 | 控制系统 )

文章目录

自动驾驶 包含 感知系统、预测系统、决策规划、控制系统 四大模块 , 在上一篇博客 【自动驾驶】自动驾驶概述 ⑧ ( 自动驾驶软件系统概述 | 感知系统 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 ) : 通过 强制控制车辆状态 沿着预设的 滑模面 运动 , 适用于 车辆稳定性控制 场景 ;

python 复制代码
print("Hello World!")

dao_phrases = [
    "预测系统",
    "决策规划",
    "控制系统"
]

print("\n自动驾驶概述 :")
for i, phrase in enumerate(dao_phrases, 1):
    print(f"{i}. {phrase}")
相关推荐
AngelPP3 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年4 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼4 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS4 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区5 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈5 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang6 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx
shengjk17 小时前
NanoClaw 深度剖析:一个"AI 原生"架构的个人助手是如何运转的?
人工智能
西门老铁9 小时前
🦞OpenClaw 让 MacMini 脱销了,而我拿出了6年陈的安卓机
人工智能