自动驾驶决策规划算法(开幕式)
写在前面
本人现在研1,准备入门“自动驾驶决策规划”这一方向,学习的内容来自B站up主忠厚老实的老王,故开通一个新的专栏,由此记录我的学习历程与心得,同时也欢迎大家交流学习!
一、自动驾驶级别划分
级别 | 功能 |
---|---|
L0 | 没有任何自动驾驶功能 |
L1 | 有横向和纵向自动驾驶功能,但横纵向无法联合作用 |
L2 | 横纵向可以联合作用,但驾驶员必须对驾驶所发生的一切情况负责 |
L3 | 横纵向可以联合作用,但对部分场景驾驶员不必负责 |
L4 | 大部分道路都可以自动驾驶,大部分场景不需要驾驶员负责 |
L5 | 完全自动驾驶 |
划分依据两条因素:功能、责任
从 L0到 L2 主要是功能区分,从 L3 到 L5 主要是责任区分,区别不在于有什么花里胡哨的功能,而是在于责任划分。
不同公司的 L2 亦有差距。若厂家宣称驾驶人负全责,即便这辆车的功能和 L4 的功能一样,但仍然是一辆 L2 的车。从简单的 L2 进化成什么都能做的 L2,最重要的模块就是决策规划算法模块。
二、决策规划算法模块三大构成
1、导航规划模块
导航规划算法计算整体上从 A 到 B 的最优路径,和机器人导航、手机导航的算法基本一致,长度在几公里到几百公里不等,该算法是整个规划模块中最成熟的算法。
特点:导航算法给出粗略的、大范围的路径,但路径不考虑如何避障,也不考虑车辆动力学约束,所以规划出来的路径是不规则的折线,导航算法一般只需执行一次,只有遇到大范围的拥堵、施工、偏航情况才会再次执行。
2、行为规划模块
行为规划算法又叫决策算法,决定车辆行驶意图。对于静态障碍物,往左绕还是往右绕?对于动态障碍物是减速避让还是加速超车,决策算法决定了车辆的行驶意图,是整个规划算法中最难做的部分。
特点:给出车辆的行驶意图,指导车辆该避让还是该超车,该左转还是往右转,但决策并不给具体的运动建议,例如左转多少度或车辆加减速到多少。由于实际环境瞬息万变,所以决策算法需要有较高的执行频率,一般为10Hz。
决策算法也需要有一定的稳定性,不允许在周围环境比较稳定的情况下,出现“朝令夕改”的现象,即决策算法在环境稳定时,不允许出现决策指令的剧烈波动。除非环境发生变化,否则决策算法不允许频繁改变结果,这样会导致控制效果变得非常差。
3、运动规划算法
运动规划算法是根据决策给出的行为意图,在相关的时空中搜索或优化出一条具有详细路径速度信息,且满足各约束条件的轨迹,并将轨迹发给控制模块去跟踪,轨迹长度一般在几米到几十米不等。
特点:运动规划生成的轨迹是整个决策规划模块最终的输出,具有详细的路径、速度信息,且执行频率与决策频率相同,都是10Hz。
运动规划也要有一定的稳定性,在环境不发生剧烈变动的情况下,运动规划的轨迹要基本一致。
三、课程体系
本系列博客将详细讲解决策算法与运动规划算法,不讲导航算法,因为导航算法相对比较成熟。
章节 | 内容 |
---|---|
序章 | 决策规划算法概述 |
第一章 | 数学基础 |
第二章 | Apollo EM Planner 理论篇 |
第三章 | Apollo EM Planner 代码篇 |
终章 | 决策规划算法总结 |
- 第一章是必要的数学基础。
- 第二章将详细解读 Apollo EM Planner 理论,到底是怎么解决决策规划问题的。
- 第三章将具体的实践,写 Apollo EM Planner 程序的仿真。
- 终章是决策规划算法的总结,具体讲 Apollo EM Planner 的优点和缺点,以及除了 Apollo EM Planner 之外的其他决策规划算法是怎么做的。