写在前面:
🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝
🎭 人生如戏,我们并非能选择舞台和剧本,但我们可以选择如何演绎 🌟
感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行~~~
文章目录
- 引言
- 一、自动驾驶级别划分
- 1、级别划分依据
- 2、核心模块作用类比
- 二、决策规划算法模块三大构成
- 1、导航规划模块
- 2、行为规划模块
- 3、运动规划算法
- 三、目录与大纲
- 四、仿真环境
- 参考资料
引言
各位小伙伴们大家好,本篇博客开一个新的系列,自动驾驶决策规划算法。内容整理自 B站知名up主 忠厚老实的老王 的视频,作为博主的学习笔记,分享给大家共同学习。
本篇博客是第一节序章,也就是整个教程的开篇,介绍决策规划的地位以及作用。
一、自动驾驶级别划分
到 :
级别 | 功能 |
L0 | 没有任何自动驾驶功能 |
L1 | 有横向和纵向自动驾驶功能,但横纵向无法联合作用 |
L2 | 横纵向可以联合作用,但驾驶员必须对驾驶所发生的一切情况负责 |
L3 | 横纵向可以联合作用,但对部分场景驾驶员不必负责 |
L4 | 大部分道路都可以自动驾驶,大部分场景不需要驾驶员负责 |
L5 | 完全自动驾驶 |
到
1、级别划分依据
有两个区分等级的关键因素:
- 车辆可实现的功能
- 驾驶员所负的责任
到 主要是功能区分,从 到
和 之间差距巨大,只要厂家宣称驾驶员需要负全责,那即使在功能上做到和 一样的功能,但只要说驾驶员需要负全责,本质上还是 ,而
比如车辆只有 定速巡航 + 车道保持,就是非常简单的可以横纵向联合控制的称为 。
级别的功能,但厂家宣称驾驶员必须负全责,即在自动驾驶过程中必须要盯着,准备随时接管,那么车也属于 。
进化成什么都能做的 ,其重要模块就是决策规划算法。
应该做的事情嘛?为什么是 的模块?上面也说了, 和 就是有功能上的区别,但最重要的区别还是在于责任。 在大多数情况下都是车负责,驾驶员不需要接管, 而
2、核心模块作用类比
模块 | 类比 |
感知模块 | 人的眼睛、耳朵 |
控制模块 | 人的小脑、双脚 |
决策规划模块 | 人的大脑 |
功能越往上做越丰富、越复杂,决策规划的算法也就越重要,并且也越难。
二、决策规划算法模块三大构成
整个决策规划算法模块一分为三。
1、导航规划模块
到
特点:导航算法给出粗略的、大范围的路径,但路径不考虑如何避障,也不考虑车辆动力学约束,所以规划出来的路径是不规则的折线,导航算法一般只需执行一次,只有遇到大范围的拥堵、施工、偏航情况才会再次执行。
2、行为规划模块
行为规划算法又叫决策算法,决定车辆行驶意图。对于静态障碍物,往左绕还是往右绕?对于动态障碍物是减速避让还是加速超车,决策算法决定了车辆的行驶意图,是整个规划算法中最难做的部分。
特点:给出车辆的行驶意图,指导车辆该避让还是该超车,该左转还是往右转,但决策并不给具体的运动建议,例如左转多少度或车辆加减速到多少。由于实际环境瞬息万变,所以决策算法需要有较高的执行频率,一般为 。
决策算法也需要有一定的稳定性,不允许在周围环境比较稳定的情况下,出现“朝令夕改”的现象,即决策算法在环境稳定时不允许出现决策指令的剧烈波动。除非环境发生变化,否则决策算法不允许频繁改变结果,这样会导致控制效果变得非常差。
3、运动规划算法
运动规划算法是根据决策给出的行为意图,在相关的时空中搜索或优化出一条具有详细路径速度信息,且满足各约束条件的轨迹,并将轨迹发给控制模块去跟踪,轨迹长度一般在几米到几十米不等。
特点:运动规划生成的轨迹是整个决策规划模块最终的输出,具有详细的路径、速度信息,且执行频率与决策频率相同,都是 。
运动规划也要有一定的稳定性,在环境不发生剧烈变动的情况下,运动规划的轨迹要基本一致。
三、目录与大纲
本系列博客将详细讲解决策算法与运动规划算法,不讲导航算法,因为导航算法相对比较成熟。以 Apollo EM Planner
算法为例,本算法擅长处理复杂环境下的决策规划问题,也是 Apollo 默认的决策规划算法。
注意: EM Planner
是在Apollo 时加入,在 Apollo 时的 EM Panner
换了个名字叫 OnLine Planning
。本系列博客所讲解的是最初 版的 EM Planner
,当然思想上是殊途同归的,建议各位学完后要看一下 6.0 的 OnLine Planning
。和最初的 EM Planner
下面介绍本系列博客大概的目录和大纲:
章节 | 内容 |
序章 | 决策规划算法概述 |
第一章 | 数学基础 |
第二章 |
|
第三章 |
|
终章 | 决策规划算法总结 |
- 第一章是必要的数学基础。
- 第二章将详细解读
Apollo EM Planner
- 第三章将具体的实践,写
Apollo EM Planner
- 终章是决策规划算法的总结,具体讲
Apollo EM Planner
的优点和缺点,以及除了EM Planner
四、仿真环境
目前代码环境是在 Windows 下做,软件采用 Prescan + Matlab + Carsim 三者联合。
在熟悉 EM Planner
之后,再用 Linux 下的 C++ 写 EM Planner
代码。因为目前主流的规划算法是在 C++ 上写更好,不过对于初学还是先在 Windows 下做。
本篇博客到此结束,下一节再见,欢迎关注!
参考资料
后记:
🌟 感谢您耐心阅读这篇关于 自动驾驶决策规划算法概述 的技术博客。 📚
🎯 如果您觉得这篇博客对您有所帮助,请不要吝啬您的点赞和评论 📢
🌟您的支持是我继续创作的动力。同时,别忘了收藏本篇博客,以便日后随时查阅。🚀
🚗 让我们一起期待更多的技术分享,共同探索移动机器人的无限可能!💡
🎭感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行 🚀