本文将继续为大家解析自动驾驶所涉及到的核心技术,上篇《感知篇》内容请查看历史原文。
二、决策篇
在一套相对成熟的自动驾驶技术体系中,如果将环境感知模块比作人的眼睛和耳朵,那么决策规划模块就相当于自动驾驶汽车的大脑。
自动驾驶汽车在进行决策规划时,会从环境感知模块中获取道路拓扑结构信息、实时交通信息、障碍物(交通参与者)信息和主车自身的状态信息等内容。
结合以上这些信息,决策规划系统会对当前环境作出分析,然后对底层控制执行模块下达指令,这一过程就是决策规划模块的主要任务。
自动驾驶车辆架构图(图片来源:见参考资料3)
换言之,自动驾驶汽车的行为决策与路径规划是指依据环境感知和导航子系统输出信息,通过一些特定的约束条件规划出给定多条可选安全路径,并从中选取一条最优路径作为车辆行驶轨迹的过程。
本文将详细介绍自动驾驶决策规划模块的技术结构体系、技术方法以及主流算法、芯片。
Ξ 1.技术结构体系
自动驾驶决策规划领域常见的技术结构体系可分为分层递阶式、反应式以及二者混合式。
1)分层递阶式体系结构
分层递阶式可以理解为一个串联结构,自动驾驶系统的各个模块有序排列在一条直线上,上一模块处理的内容将直接进入到下一阶段,如下图所示:
分层递阶式的优点是各模块次序分明,层层递进式的结构让每个模块所处理的工作范围逐渐缩小,处理问题的准确度逐渐上升,更容易实现高层次的智能控制。
不过,分层递阶结构也存在一些问题。首先,分层递阶结构需要实时调用传感器信息,对传感器的要求较高。此外,分层递阶式的布局,从环境感知到执行控制,中间存在一定延迟,缺乏实时性和灵活性。
最后,分层递阶式的串联结构存在可靠性不高的问题。在初中物理学上,大家都接触过电路的串联与并联知识。与并联模式相比,串联模式最大的问题就是整体系统的任何部分都不能出现问题,否则信息流和控制流的传递通道就会受到影响,整个系统会随时处于崩溃的状态中。
2)反应式体系结构
反应式体系结构与分层递阶式体系结构的最大区别在于,反应式体系结构使用的是并联结构,如下图所示:
在反应式体系结构中,决策规划模块内容以并联模式布置,环境感知的内容会同步传输至多个决策规划模块内,可突出“感知-动作”的特点,易于适应完全陌生的环境。
与分层递阶式体系结构相比,反应式结构体系占用存储空间较小,响应快,实时性高。同时,并联结构提高了整体结构的稳定性,决策规划模块内的某一层内容出现故障,也不会影响到其他层级内容的正常运行。不过,这也提高了整体系统运行的复杂度,需要更高等级智能技术的支持。
3)二者混合式体系结构
由于分层递阶式体系结构和反应式体系结构均存在某些问题,单独一个体系难以满足自动驾驶处理复杂多变场景的实际需求,所以混合体系结构受到越来越多的关注。
混合式体系结构将两者优点结合,全局规划与局部规划分别适用不同的体系结构,使得自动驾驶汽车能够更加适应复杂多变的真实路况。
Ξ 2.技术方法
根据对环境信息掌握程度的不同,自动驾驶路径规划可分为全局路径规划和局部路径规划两种。
1)全局路径规划
全局路径规划,又可以称之为驾驶任务规划,主要内容为行驶路径范围的规划。
全局路径规划会在已知环境中,给自动驾驶汽车规划出一条理想路径,路径规划的精度取决于环境感知模块获取信息的准确度。这是一种事前规划,类似于我们日常生活中常用的“导航”功能:输入出发地与目的地,APP就会自动规划出一条最优路径。
需要注意的是,全局路径规划需要预先知道环境的准确信息,当环境发生变化时,规划结果很可能就会失效。
目前,常用的全局路径规划算法有Dijkstra和A*算法,以及两者的改进型。
Dijkstra(单源最短路径)算法是由科学家Edsger W. Dijkstra在1956年提出,主要用于解决寻找图形中节点之间最短路径的问题。
Dijkstra算法运算过程
这种算法的优点是给出的路径是最优的,但是缺点也明显,那就是计算复杂度较高,因为是向周围探索,没有一个明确的方向。
A*算法是由Stanford研究院的Peter Hart, Nils Nilsson以及Bertram Raphael在1968年发表,被认为是Dijkstra算法的扩展。
这种算法的实质为宽度优先搜索,通过在宽度优先搜索的基础上增加条件控制,以尽快找到目标节点。其公式表示为:f(n)=g(n)+h(n),f(n)是从初始点经由权节点n到目标点的估价函数,g(n) 是在状态空间中从初始节点到n节点的实际代价,h(n)是从n到目标节点最佳路径的估计代价。
2)局部路径规划
局部路径规划,又可称之为实时路径规划。自动驾驶汽车在有障碍物的环境中,会利用自身传感器实时感知周边环境,寻找出一条最优的局部行驶路径,避免碰撞和保持安全距离。
局部路径规划的优势是可以实时对规划结果进行反馈与校正,确保了自动驾驶车辆始终处于最优的驾驶路径中。缺点是缺乏全局环境信息,可能发生找不到正确路径或完整路径的情况。
总体而言,全局路径规划和局部路径规划并没有本质上的区别。两者协同工作,自动驾驶车辆可以更好地规划出最优路径。
Ξ 3.算法与芯片
目前,自动驾驶汽车常用的行为决策算法主要有三种类型:
1)基于神经网络:自动驾驶汽车的决策系统主要采用神经网络确定具体的场景并做出适当的行为决策。
2)基于规则:工程师想出所有可能的“if-then 规则”的组合,然后再用基于规则的技术路线对汽车的决策系统进行编程。
3)混合路线:结合了以上两种决策方式,通过集中性神经网络优化,通过“if-then 规则”完善。混合路线是最流行的技术路线。
在芯片领域,常用的主流自动驾驶芯片主要有两种,一种是英特尔-Mobileye 开发的Mobileye EyeQX系列车载计算平台,另一种是英伟达提供的 NVIDIA Drive PX 系列车载计算平台。
Mobileye公司成立于1999年,主要目标是开发和推广交通领域的视觉辅助系统。其在2017年被英特尔公司收购,并且将其作为自动驾驶技术的研发战略核心。
以Mobileye公司最新的EyeQ5芯片为例,EyeQ5的运算性能达到了12Tera/每秒,且最多可以支持20个外部传感器(摄像头、雷达或激光雷达)。
此外,EyeQ5具有异构性,完全可编程的加速器,芯片内置的四种类型加速器均经过算法优化,更有助于实现“传感器融合”。
NVIDIA DRIVE平台是英伟达针对自动驾驶推出的AI平台。其将深度学习、传感器融合和环绕视觉技术相结合,旨在改变驾驶体验。
NVIDIA DRIVE平台可以实时理解车辆周围的环境变化、在高清地图上精确定位自身,还可以规划前方的安全路线。
目前,DRIVE PX2为该产品的最新版本。其基于16nm FinFET工艺制造,TDP达250W,支持12路摄像头输入、激光定位、雷达和超声波传感器,单精度计算能力达到8 TFlops,是目前先进的自动驾驶平台。
未完待续……
本文参考资料:
1.《2017中国人工智能系列白皮书——智能驾驶》-中国人工智能学会
2.《2018年人工智能之自动驾驶研究报告》-Aminer
3.《自动驾驶汽车决策与控制》-清华大学