本文将介绍自动驾驶汽车决策系统的相关技术,包含路线规划、行为选取、运动规划和控制子系统。
1.路线规划
路线规划子系统负责计算出一条穿过道路网的路线,让自动驾驶汽车能从起始位置到达用户定义的终点位置。如果将道路网表示为一个加权的有向图,其边权重表示遍历一个道路片段的成本,则计算路线的问题就可约简为在一个加权有向图中寻找最短路径的问题。但是,对于大型道路网,经典最短路径算法(比如 Dijkstra和 A*)的复杂性时间是不实用的。
用于道路网中路线规划的方法能在查询时间、预处理时间、空间用量、对输入变化的稳健性等方面提供不同的权衡。这些方法主要可分为四类:目标导向的方法、基于分割因子的方法、分层方法、bounded-hop 方法;也可以组合这些方法。
(1)目标导向方法
目标导向技术通过避免扫描不在目标顶点方向上的顶点来指导从源顶点到目标顶点的搜索。 A *是经典的目标导向最短路径算法。 通过在每个顶点上使用下限距离函数,它实现了比Dijkstra算法更好的性能,这使得更靠近目标的顶点可以更早地被扫描。 ALT(A *,地标和三角不等式)算法通过选择一小组顶点作为地标来增强A *。 在预处理阶段,计算所有地标和所有顶点之间的距离。 在查询阶段,使用涉及地标的三角不等式估计任何顶点的有效下界距离。 查询性能和正确性取决于明智地选择顶点作为地标。
另一个目标导向算法是Arc Flags。 在预处理阶段期间,图形被划分为具有少量边界顶点和平衡(即,相似)数量的顶点的单元。 通过从每个边界顶点向后生成最短路径树来计算单元i的弧标志,为树的所有弧(或边)设置第i个标记。 在查询阶段,算法修剪没有为包含目标顶点的单元格设置标志的边。 弧标记方法具有较高的预处理时间,但是目标导向技术中查询时间最快。
(2)基于分离器的技术
基于分隔符的技术基于顶点或边缘分隔符。 顶点(或边缘)分隔符是顶点(或边)的一小部分,其移除将图分解为若干平衡单元。 基于顶点分隔符的算法使用顶点分隔符来计算叠加图。 将快捷方式边缘添加到叠加图中,以保留完整图形中任何一对顶点之间的距离。 叠加图比完整图小得多,用于加速查询算法。 HPML(高性能多级路由)算法是此方法的一种变体,可显着缩短查询时间,但代价是增加空间使用和预处理时间,方法是在不同级别上向图表添加更多快捷方式。
基于弧分离器的算法使用边缘分隔符将图形分解为平衡单元格,尝试最小化切割边缘的数量,这些边缘连接不同单元格的边界顶点。 快捷方式被添加到覆盖图中,以便保留每个单元内的边界顶点之间的距离。 CRP(可定制路线规划)算法被设计为满足现实世界道路网络的要求,例如处理转弯成本和执行成本函数的快速更新。 它的预处理有两个阶段。 第一阶段计算多层分区和叠加的拓扑。 第二阶段通过自下而上和并行处理单元来计算clique边缘的成本。 查询在叠加图中作为双向搜索进行处理。
(3)分层技术
分层技术利用道路网络的固有层次结构,其中诸如高速公路的主要道路复合了小的动脉子网络。 一旦源顶点和目标顶点相距很远,查询算法仅扫描子网的顶点。 预处理阶段根据实际的最短路径结构计算顶点或边的重要性。 CH(收缩层次结构)算法是一种分层技术,它实现了创建快捷方式以跳过具有低重要性的顶点的想法。 它重复执行顶点收缩操作,如果它们之间的最短路径是唯一的并且包含要收缩的顶点,则从图形中移除最不重要的顶点并在每对相邻顶点之间创建快捷方式。 CH是多功能的,因此可用作其他点对点算法和扩展查询的构建块。
REACH算法是一种分层技术,在预处理阶段,计算顶点的中心度量(到达值),并在查询阶段,使用它们来修剪基于Dijkstra的双向搜索。 设P是从源顶点s到包含顶点v的目标顶点t的最短路径.v相对于P的到达值是r(v,P)= min {distance(s,v),distance(v) ,t)}。
(4)有界跳技术
有界跳跃技术通过向图形添加虚拟快捷方式来预先计算顶点对之间的距离。由于所有顶点对之间的预计算距离对于大型网络而言是禁止的,因此有界跳跃技术旨在获得具有非常少的跳跃的任何虚拟路径的长度。有界跳跃算法是HL(Hub Labeling),它在预处理阶段计算图形的每个顶点u的标签L(u),其由u的一组中心顶点和它们的距离组成。从你这来的。选择这些标签使得它们遵守覆盖属性:对于任何顶点对(s,t),标记L(s)和L(t)的交集必须包含从s到t的最短路径的至少一个顶点。 。在查询阶段期间,通过评估标记L(s)和L(t)的交集中存在的中心点之间的距离,可以在线性时间内确定距离(s,t)。 HL具有最快的已知道路网络查询,但代价是空间占用率高。 HL-∞算法[ABR12]利用了集线器标签和顶点排序之间的关系,并开发了预处理算法来计算产生小标签的排序。顶点排序的迭代范围优化算法使HL-∞算法的查询时间比HL快两倍。它以一些顶点排序(例如,由CH给出的那个)开始并且在给定数量的迭代步骤中进行,每个迭代步骤按重要性的降序重新排序不同范围的顶点。 HLC(集线器标签压缩)算法[DEL13a]通过组合出现在多个标签中的常见子结构,以更高的查询时间为代价,将空间使用量减少一个数量级。
另一种有界跳跃算法是TNR(传输节点路由),它使用顶点子集上的距离表。 在预处理阶段,它选择一小组顶点作为传输节点,并计算它们之间的所有成对距离。 从传输节点,对于每个顶点u,它计算一组访问节点。 如果存在来自u的最短路径,使得v是其中的第一个传输节点,则传输节点v是u的接入节点。 它还计算每个顶点与其访问节点之间的距离。 选择传输节点集的一种自然方法是选择弧分隔符的顶点分隔符或边界顶点作为传输节点。 在查询阶段,距离表用于选择从源顶点s到目标顶点t的路径,该路径最小化组合距离s-a(s)-a(t)-t,其中a(s)和a( t)是接入节点。 如果最短路径不包含传输节点,则执行本地查询(通常为CH)。
(5)组合
可以将各个技术组合成利用不同图形属性的混合算法。 REAL算法结合了REACH和ALT。 ReachFlags算法结合了REACH和Arc Flags。 SHARC算法将快捷方式的计算与多级Arc Flags相结合。 CHASE算法将CH与Arc Flags相结合。 TNR + AF算法结合了TNR和Arc Flags。 PHAST算法可以与若干技术组合,以便通过利用多个核心CPU和GPU的并行性来加速它们。
Bast等人通过实验评估了这里描述的许多路线规划技术,使用着名的大陆尺寸基准西欧和现实世界道路网络的简化模型。 表I显示了他们的实验分析结果。 对于每种技术,表1列出了总内存空间使用情况,总预处理时间,平均查询扫描的顶点数以及平均查询时间。
表1 路线规划技术的对比
2.运动规划
运动规划子系统负责计算一条路径或轨迹,使自动驾驶汽车能从当前状态到达行为选取子系统定义的下一个局部目标状态。运动规划执行的是局部驾驶行为,满足汽车的运动学和动力学限制,保证乘客舒适,以及避免与环境中的静止和移动障碍物碰撞。
运动规划可以是路径或轨迹。路径是一个汽车状态序列,不是定义汽车状态随时间变化的方式。这个任务可以委托给其它子系统(比如行为选取子系统),或者可将速度分布定义为曲率以及与障碍物的接近程度的函数。轨迹是指定了汽车状态随时间的演变情况的路径。
(1) 路径规划
路径规划涉及从汽车的当前状态到下一个目标状态生成一系列状态,这不会定义汽车状态随时间的演变。 路径规划通常分为全局和本地路径规划。在全局路径规划中,在汽车开始使用环境的离线全局地图移动之前计算全局路径。 在本地路径规划中,当汽车使用周围环境的在线本地地图移动时生成本地路径,这允许汽车处理移动的障碍物。 路径规划的方法可以主要分为两类:基于图搜索和基于插值曲线。
(a)基于图搜索的技术
基于图搜索的技术在表示为图的状态空间中搜索汽车的当前状态和下一个目标状态之间的最佳路径(状态序列)。它们将搜索空间表示为图形。他们将搜索空间离散化并在占用网格地图上施加图形,其中单元中心充当搜索图中的邻居。用于自动驾驶汽车的路径规划的最常见的基于图搜索的技术是Dijkstra,A-star和A-star变体。
(b)基于曲线的插值技术
(2) 轨迹规划
(a)基于图搜索的技术
(b)基于抽样的技术
(c)基于曲线的插值技术
(d)基于数值优化的技术
3.控制
在自动驾驶汽车领域,控制是指工程开发领域的自动控制背后的理论,这涵盖了没有连续直接人类干预的操作和调节过程的机制的应用。在最简单的自动控制形式中,控制子系统会比较该过程的输出与预期输入,并使用其中的误差(该过程的输出与预期输入的差异)来修改该过程的输入,使得该过程即使在存在扰动时也能保持在设定点。在自动车辆中,通常会将自动控制理论应用于路径跟踪和硬件驱动方法。路径跟踪方法的作用是在汽车模型等地方存在不准确的情况时稳定运动规划的执行。硬件驱动控制的作用是在汽车模型等地方存在不准确的情况时计算执行运动规划的转向角度、油门和刹车制动器输入。
路径跟踪方法也被称为控制技术,因为其使用了自动控制理论,并将路径视为所要控制的信号。但是,在自动驾驶领域将其称为路径跟踪方法更合适,以便将它们与硬件驱动方法分开。
(1) 路径跟踪方法
(2)硬件驱动控制方法
运动规划子系统负责计算一条路径或轨迹,使自动驾驶汽车能从当前状态到达行为选取子系统定义的下一个局部目标状态。运动规划执行的是局部驾驶行为,满足汽车的运动学和动力学限制,保证乘客舒适,以及避免与环境中的静止和移动障碍物碰撞。
运动规划可以是路径或轨迹。路径是一个汽车状态序列,不是定义汽车状态随时间变化的方式。这个任务可以委托给其它子系统(比如行为选取子系统),或者可将速度分布定义为曲率以及与障碍物的接近程度的函数。轨迹是指定了汽车状态随时间的演变情况的路径。
文献中提出了多种用于运动规划的方法。我们将介绍为路上运动规划设计的且使用真实自动车辆实验评估过的方法。