自动驾驶决策规划算法概述

一、自动驾驶级别分类

L0 系统无法控制横向或者纵向
L1 系统能控制横向或者纵向中的一个,但横纵向无法联合控制
L2 系统可以联合控制横向和纵向
L3 小部分场景不需要人负责监控环境
L4 大部分场景不需要人负责监控环境
L5 所有场景都不需要人负责监控环境

功能和责任 2方面来划分:
L0-L2:功能逐步增加的多,但驾驶员负责安全
L3-L5:功能逐步增加的少,但系统负责安全
只要没有系统负责安全的case,无论功能多么丰富,本质上都是L2。随着功能逐渐增多,也就是现在提出的概念:L2+,L2++

二、决策规划算法的模块划分

模块一:路由寻径(Routing)

作用:
将计算出地图上起始点到终点的最优路径,长度在几公里到几百公里不等,该算法是整个决策规划模块中最为成熟的算法
特点:
导航算法输出粗略的路径,该路径不考虑如何避障,也不考虑车辆动力学,规划的路径一般是不规则的折线。导航算法一般只需要执行1次,只有遇到大范围的拥堵,偏航等情况下才会再次执行。

模块二:行为决策算法(Behavioral Decision)

作用:
决定车辆的行驶意图。对于静态障碍物,决定往左绕还是往右绕;对于动态障碍物,决定减速避让还是加速超车。
决策算法决定车辆的行驶意图,是难度最大的一个模块。
特点:
决策算法仅输出车辆的行驶意图,比如左转、右转、避让、超车,但不会给具体的运动建议,比如左转多少度,超车时加速度是多少,一般执行周期为10Hz。决策算法在环境较为稳定时,不允许出现“朝令夕改”的现象

模块三:运动规划算法(Motion Planning)

作用:
根据决策输出的意图在相关时空中搜索出(优化出)一条具有详细路径、速度信息的轨迹,并将轨迹发送给控制模块去跟踪,此轨迹一般在几米到几十米范围内。本质是一个多目标的数学优化问题。
特点:
该模块输出给控制模块的轨迹是决策规划模块的最终输出,具有详细的路径、速度信息,执行周期与决策相同为10Hz。同理,运动规划在环境较为稳定时,也不能“朝令夕改”。

三、决策规划常见的算法

图搜索 Dijkstra、A*、D*(全局路径规划)
采样 RRT(全局路径规划)
曲线拟合 圆弧与直线、多项式曲线、样条曲线、贝塞尔曲线、微分平坦**(局部路径规划)**
数值优化 利用目标函数和约束求解最优的轨迹**(局部路径规划)**

四、Apollo决策规划算法

自动驾驶决策规划算法概述_第1张图片
Apollo决策规划算法是一种数值优化的算法,且是“轻决策重规划”的方案,一共有3种Planner解决方案。重点关注EM Planner,我会在后面的章节对其进行详细介绍。

EM Planner 路径和速度解耦,分开规划再融合
RTK Planner 基于录制的轨迹来规划行车的路线
Lattice Planner 路径和速度一起规划,直接输出高维的轨迹

注:
截止目前2021年,Apollo已经迭代到6.0,EM Planner在Apollo 1.5已经加入,目前Apollo 6.0的EM Planner改名为Onlane planning,但思想原理上基本相同。

你可能感兴趣的:(自动驾驶常识扫盲,Planning,自动驾驶概述)