当前位置: 首页 > news >正文

【笔记】自动驾驶预测与决策规划_Part1_自动驾驶决策规划简介

自动驾驶决策规划简介

    • 0、前言
    • 1、自动驾驶概述
      • 1.1 预测(Prediction)
      • 1.2 决策(Decision Making)
      • 1.3 规划(Planning)
    • 2、自动驾驶历史和背景
    • 3、自动驾驶级别和分类
    • 4、预测决策规划的重要性
      • 4.1 预测的重要性
      • 4.2 被遮挡的车辆(occluded agents)的处理
        • 1. 基于感知的预测(Perception-Based Prediction)
        • 2. 基于运动的预测(Motion-Based Prediction)
        • 3. 概率图模型与多目标跟踪(Probabilistic Graph Models & Multi-Object Tracking)
        • 4. 基于仿真与训练的模型
        • 5. 相关论文:
      • 4.3 决策规划的重要性
      • 4.4 预测经典方案:
      • 4.5 决策的经典方案
      • 4.6 规划的经典方案

0、前言

本文主要记录课程《自动驾驶预测与决策技术》的学习过程,难免会有很多纰漏,感谢指正。
课程链接:https://www.shenlanxueyuan.com/my/course/700 在这里插入图片描述

1、自动驾驶概述

image.png

  • Ding W, Zhang L, Chen J, et al. Epsilon: An efficient planning system for automated vehicles in highly interactive environments[J]. IEEE Transactions on Robotics, 2021, 38(2): 1118-1138.
    image.png
    在这里插入图片描述
    image.png
    在这里插入图片描述

什么是自动驾驶的预测、决策和规划?

在自动驾驶系统中,预测、决策和规划是三个关键组件,它们共同作用以实现车辆在复杂动态环境中的自主行驶。以下是对这三个组件的详细解释:

1.1 预测(Prediction)

定义:预测模块的任务是预估周围环境中其他交通参与者(如车辆、行人、自行车等)的未来行为和轨迹。
功能

  • 行为预测:基于当前状态和历史数据,预测其他交通参与者的可能行为(如加速、减速、转弯)。
  • 轨迹预测:生成其他车辆或行人在未来一段时间内的运动轨迹。

不确定性处理:由于未来行为具有不确定性,预测模型通常会生成多个可能的轨迹,并评估其概率。

  • 基于规则的方法:使用预定义的规则和模型,如物理运动模型。
  • 机器学习方法:使用历史数据训练的机器学习模型,如神经网络,进行行为和轨迹预测。

1.2 决策(Decision Making)

定义:决策模块负责基于预测模块提供的信息,制定出车辆的高层次行为策略,以确保安全、高效的驾驶。

功能:

  • 风险评估:评估不同驾驶策略的风险,包括与其他交通参与者的潜在碰撞风险。

  • 策略选择:在多个候选策略中选择最优的一个。例如,选择是否变道、是否减速等。

  • 情景响应:根据交通法规和实时交通状况,做出合理的驾驶决策。

方法:

  • 规则基方法:基于预定义的规则和条件进行决策。
  • 基于优化的方法:使用优化算法在多个候选策略中寻找最优解。
  • 机器学习方法:训练智能体通过模拟和强化学习方法进行决策。

1.3 规划(Planning)

定义:规划模块将决策模块的高层次行为策略转化为具体的车辆运动轨迹和控制命令。

功能

  • 路径规划:生成从当前点到目标点的可行路径,确保路径的平滑性和安全性。

  • 运动规划:根据路径规划,生成具体的速度和转向控制命令,控制车辆运动。

  • 动态调整:实时调整路径和运动规划,适应动态环境和实时交通状况。

方法:

  • 几何规划:使用几何方法生成路径,如A*算法、Dijkstra算法。

  • 优化规划:使用优化算法生成平滑且符合车辆动力学约束的轨迹,如梯度下降、二次规划。

  • 行为树:使用行为树模型,根据不同场景生成对应的路径和控制策略。

示例

在实际应用中,这些模块协同工作,确保自动驾驶车辆能够安全、高效地行驶。例如,当车辆在高速公路上行驶时:

  1. 预测:预测前方车辆的轨迹,判断其是否可能减速或变道。

  2. 决策:根据预测结果,判断是否需要变道超车或减速跟随,并选择最优策略。

  3. 规划:生成平滑的变道轨迹和加速/减速命令,并实时调整以应对突发情况。

参考文献

  • [A Survey of Motion Planning and Control Techniques for Self-driving Urban Vehicles](https://ieeexplore.ieee.org/document/8302432)

  • [Deep Learning for Self-Driving Cars: Chances and Challenges](https://arxiv.org/abs/2006.06094)

  • [Autonomous Vehicles: From Perception to Decision-Making](https://arxiv.org/abs/2010.01929)

2、自动驾驶历史和背景

image.png

image.png
image.png
image.png
image.png
image.png
image.png

3、自动驾驶级别和分类

image.png自动驾驶系统组成
在这里插入图片描述

4、预测决策规划的重要性

4.1 预测的重要性

image.png

轨迹预测的重要性

  • 轨迹预测涉及对周围交通参与者(如其他车辆、行人)的未来运动路径进行预测。左图中,可以看到自动驾驶系统正在预测前方车辆的可能行驶轨迹。能够提前判断其他交通参与者的行为,例如是否可能变道、加速、或减速。

  • 通过准确的轨迹预测,自动驾驶系统可以在复杂的交通环境中做出更明智的决策,如调整自身的行驶路径、速度,或者进行紧急规避,从而避免潜在的事故。

占用预测的重要性

  • 占用预测是自动驾驶系统通过感知周围环境来预测道路区域的未来占用情况。这种预测对于理解视野外或被遮挡物体的行为尤为关键。例如,在交叉路口中,系统可能无法直接看到某些车辆,但通过占用预测,系统可以合理推测这些隐藏车辆的未来位置,进而避免碰撞或其他意外。

预测在决策中的作用

  • 预测作为输入,为系统的决策制定和运动规划提供了关键的上下文信息。结合预测结果,自动驾驶系统能够根据其他交通参与者的未来行为进行智能决策。这种决策并不仅仅是基于当前状态,而是基于未来一段时间内可能发生的变化,这使得自动驾驶系统能够提前应对复杂的交通场景,提高反应速度和安全性。

系统鲁棒性与安全性

  • 通过多模态感知和智能预测,自动驾驶系统可以处理更多复杂的情况。例如,系统可以处理被遮挡的车辆(occluded agents),预测它们的行为并做出相应的反应。这显著提高了系统的鲁棒性和安全性,特别是在复杂的城市环境或拥挤的交通场景中。

4.2 被遮挡的车辆(occluded agents)的处理

1. 基于感知的预测(Perception-Based Prediction)
  • 多传感器融合:通过融合激光雷达、摄像头和雷达等不同传感器的数据,可以提高检测和跟踪遮挡物体的能力。例如,如果摄像头视野被遮挡,雷达或激光雷达可能仍然能够探测到隐藏在障碍物后方的车辆。
  • 场景上下文推理:基于环境中的上下文信息(如地图、交通规则、其他已知的交通参与者行为模式),系统可以推测被遮挡物体的存在及其可能行为。例如在交叉路口,通过观察其他车辆的运动轨迹,可以推测出可能有隐藏车辆的存在。
  • 卷积神经网络(CNNs)与生成模型:这些模型可以用于预测被遮挡区域内可能存在的物体及其行为。生成模型(如GANs)能够帮助自动驾驶系统推测出遮挡区域内物体的潜在位置和运动轨迹。
2. 基于运动的预测(Motion-Based Prediction)
  • 基于历史运动数据的推断:系统可以基于历史的运动数据和轨迹来推断当前被遮挡车辆的位置。例如,利用贝叶斯滤波器、卡尔曼滤波器等经典方法来对被遮挡的物体进行轨迹预测。
  • 行为模型与意图预测:一些方法通过对交通参与者的行为建模,预测其未来的意图。例如,基于过去的运动轨迹,可以推测出遮挡的车辆是保持直行还是准备转向。
3. 概率图模型与多目标跟踪(Probabilistic Graph Models & Multi-Object Tracking)
  • 贝叶斯网络与马尔可夫决策过程(MDPs):这些方法能够为被遮挡的车辆建立概率模型,并通过模拟不同的场景与事件来推测出遮挡物体的行为。该方法可以计算出遮挡物体的可能分布和位置。
  • 多目标跟踪(MOT):通过联合跟踪可见和不可见的目标,系统可以保持对遮挡物体的持续跟踪。常见的技术包括联合数据关联算法、置信度传播模型等。
4. 基于仿真与训练的模型
  • 数据增强与仿真训练:自动驾驶系统通常会在模拟环境中训练对被遮挡物体的检测和推测能力。在这些模拟中,系统通过生成不同遮挡场景来学习如何处理被遮挡的物体。
  • 端到端深度学习模型:这些模型能够在训练过程中学习如何应对被遮挡的物体,通过大规模数据和仿真场景训练,增强对被遮挡物体的感知和预测能力。
5. 相关论文:
  • Occlusion-aware Object Detection and Tracking in Urban Scenes (https://ieeexplore.ieee.org/document/7963801)
  • Learning to Predict Vehicle Trajectories with Model-Based Planning (https://arxiv.org/abs/1810.04015)
  • Occupancy Flow: Joint Occupancy and Motion Learning for Autonomous Driving (https://arxiv.org/abs/2203.17272)
  • Scene Understanding for Autonomous Driving in Adverse Weather Conditions using Depth Estimation (https://ieeexplore.ieee.org/document/8917876)
  • A Probabilistic Framework for Occluded Object Reasoning in Vision-Based Autonomous Driving (https://arxiv.org/abs/2004.03044)

4.3 决策规划的重要性

image.png

4.4 预测经典方案:

image.png

image.png

image.png
image.png

  • Shi S, Jiang L, Dai D, et al. Motion transformer with global intention localization and local movement refinement[J]. Advances in Neural Information Processing Systems, 2022, 35: 6531-6543.

4.5 决策的经典方案

image.png

4.6 规划的经典方案

image.png

image.png
在这里插入图片描述

  • Hu Y, Yang J, Chen L, et al. Planning-oriented autonomous driving[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2023: 17853-17862.

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【03】深度学习——神经网络原理 | 多层感知机 | 前向传播和反向传播 | 多层感知机代码实现 | 回归问题、分类问题 | 多分类问题代码实现
  • 配置网络yum源
  • BolckingQueue
  • AI嘴替:黑神话悟空
  • SSHamble:一款针对SSH技术安全的研究与分析工具
  • 【Elasticsearch系列六】系统命令API
  • 安卓玩机工具-----无需root权限 卸载 禁用 删除当前机型app应用 ADB玩机工具
  • STM32与ESP8266的使用
  • JavaDS —— B树
  • 什么是json?json可以存放在哪几种数据类型?在什么时候用?
  • 桂花网发布Cassia M2000:重塑物联网格局的紧凑型蜂窝蓝牙网关
  • 王者荣耀改重复名(java源码)
  • 【例题】lanqiao3226 宝藏排序Ⅱ
  • jacoco生成单元测试覆盖率报告
  • Nginx的使用场景:构建高效、可扩展的Web架构
  • 《Java编程思想》读书笔记-对象导论
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • canvas 高仿 Apple Watch 表盘
  • Cumulo 的 ClojureScript 模块已经成型
  • js ES6 求数组的交集,并集,还有差集
  • JS数组方法汇总
  • Vue组件定义
  • 回顾2016
  • 思考 CSS 架构
  • 线上 python http server profile 实践
  • 自定义函数
  • const的用法,特别是用在函数前面与后面的区别
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​MySQL主从复制一致性检测
  • ​一些不规范的GTID使用场景
  • #微信小程序:微信小程序常见的配置传旨
  • (day18) leetcode 204.计数质数
  • (floyd+补集) poj 3275
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (十三)Flink SQL
  • (一) storm的集群安装与配置
  • (一)基于IDEA的JAVA基础12
  • (一)认识微服务
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • (转)scrum常见工具列表
  • ****Linux下Mysql的安装和配置
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET Core中如何集成RabbitMQ
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • @JsonSerialize注解的使用
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116
  • [.net] 如何在mail的加入正文显示图片
  • [10] CUDA程序性能的提升 与 流
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [C#]猫叫人醒老鼠跑 C#的委托及事件
  • [GUET-CTF2019]encrypt
  • [Hdp] lc552. 学生出勤记录 II(dp+递推+状态定义+状态转移+向前转移+好题)
  • [IOI2007 D1T1]Miners 矿工配餐