赞
踩
在自动驾驶系统中,决策规划是一个关键部分,它位于环境感知和控制执行之间,负责将感知模块提供的静态和动态环境信息转化为具体的驾驶策略和路径规划,生成期望的路径和相应的控制量,给到下一阶段控制执行使用。
决策规划模块的主要任务包括:全局路径规划、行为决策、运动轨迹规划(主要进行局部路径规划和速度规划)。决策规划的体系架构早期是基于全局路径规划→行为决策→运动轨迹规划分层递进式的,具备推理解释能力,但中间存在延迟,路径误差累计较大,可靠性不高;目前大部分决策规划结合了针对局部目标的多个并行回路处理,决策规划模块分层递进主干道由全局路径规划和局部轨迹规划构成,在局部轨迹规划内部结合了行为决策模块,面向目标的多个并行回来获得决策结果,共同实现最终可执行的轨迹路径。
全局路径规划是自动驾驶系统中的关键任务,负责在宏观层面上为车辆从起点到终点生成最佳行驶路线。该任务主要基于静态环境信息,如高精度地图和道路网络结构,根据周边交通状况进行几何路径规划,以确保车辆能够安全、高效地到达目的地;一般分为两个步骤,建立环境地图和调用搜索算法在环境地图中搜索可行路径。
全局路径规划需要考虑以下几个方面的要求:
在全局路径规划中,将驾驶环境简化为有向网格图是关键的一步。这个过程涉及将连续的环境模型转换为离散的图模型,常见构图方法如下:
DGN是最常见的图构建方法,尤其适用于规则网格环境,DGN将环境划分为一个规则的网格,每个网格单元(节点)与其邻近的网格单元通过有向边连接。
特点:规则性强,网格结构规则,易于实现;计算简单,适合规则道路和较简单的环境。
具体步骤包括:
RNG用于更复杂或不规则的环境中,与DGN相比RNG的节点和边的分布更加随机化,以适应实际道路的复杂性。
具体步骤包括:
VG基于环境中的障碍物顶点构建节点,节点之间的边表示无障碍物直线可视,适用障碍物较多的环境,如室内场景。
特点:生成的图较稀疏,减少了计算量;但在复杂环境中,图的构建和维护复杂度高。
基于环境中的障碍物边界构建节点,节点之间的边表示最远距离路径,适用复杂的户外环境。
特点:避免了障碍物,提供较安全的路径;但计算复杂,路径可能不最短。
栅格地图法是一种将环境表示为离散网格的技术,每个网格单元(栅格)代表环境中的一个区域,并包含该区域被占用的概率,概率值通常在0(完全空闲)到1(完全占用)之间。这个方法在机器人导航和自动驾驶中广泛应用,通过处理传感器数据(如激光雷达、相机、超声波传感器等),实时构建和更新环境模型。
特点:能够实时处理传感器数据,快速更新环境模型;通过调整栅格大小,可以实现不同精细度的环境表示;适用于不同类型的传感器数据,能够应对动态环境的变化。
特斯拉的自动驾驶技术中使用了类似栅格地图的方法来进行环境感知和导航,通过融合传感器(包括摄像头、超声波传感器和雷达)的数据,构建车辆周围的环境模型,实时更新环境的占用情况,识别道路、障碍物、行人等,进行精确的路径规划和避障决策。
工作步骤
原理:Dijkstra算法由计算机科学家Edsger W. Dijkstra在1956年提出,旨在找到图中一个顶点到其他所有顶点的最短路径,且要求图的边权重为非负;它通过逐步扩展起点到其他节点的最短路径,最终找到到达终点的最短路径。
特点:能保证找到最短路径,适用于所有节点都需要路径信息的场景;但计算效率比较低,计算复杂度: 时间复杂度为O(V2),对于稀疏图可以通过使用优先队列优化至 O(ElogV),不适用于大规模图。
算法步骤:Dijkstra算法通过逐步扩展起点到其他节点的最短路径,来构建最短路径树。其基本思想是每次选择未处理节点中具有最短距离的节点,然后通过该节点更新其邻居节点的最短路径估计值。
具体步骤如下:
设定起点到自身的距离为0,即 dist[start] = 0。
设定起点到其他所有节点的距离为无穷大,即 dist[v] = ∞ (其中 v 为图中的节点)。
将所有节点标记为未访问。
从未访问的节点中选择一个具有最短距离估计值的节点 u。
对于当前节点 u 的每一个邻居节点 v,计算通过 u 到达 v 的距离 alt = dist[u] + weight(u, v),其中 weight(u, v) 为 u 到 v 的边权重。
如果 alt < dist[v],则更新 dist[v] 和 predecessor[v],其中 predecessor[v] 用于记录路径。
将节点 u 标记为已访问。
重复步骤B-D,直到所有节点都被访问或当前节点为目标节点(用于单目的地最短路径问题)。
原理:A*算法结合了Dijkstra算法和贪心搜索算法的优点,通过启发式函数引导搜索过程,从而找到从起点到终点的最优路径。其核心是f(n) = g(n) + h(n),其中g(n)是起点到当前节点的实际代价,h(n)是当前节点到终点的启发式估计。
特点:能够找到从起点到终点的最优路径,计算效率较高;但计算复杂度取决于启发式函数的选择,可能需要较大的计算资源和存储空间,对动态环境适应性差。
算法步骤:A*算法通过启发式函数引导搜索过程,以找到从起点到终点的最优路径。其核心思想是评估每个节点的综合代价,并选择代价最低的节点进行扩展。综合代价函数定义为: f(n)=g(n)+h(n) 其中:g(n) 表示从起点到当前节点 n 的实际代价。h(n) 表示从当前节点 n 到终点的启发式估计代价。
具体步骤如下:
将起点start 加入开放列表(Open List),其代价 f(start)=h(start)。
将起点的 g 值设为0,即g(start)=0。
从开放列表中选择具有最小 f 值的节点current,将其移到闭合列表(Closed List)。
如果current 为终点节点goal,则算法终止,返回路径。
对于当前节点current 的每一个邻居节点neighbor,计算邻居节点的临时 g 值:gtemp= g(current)+d(current,neighbor)。
如果 neighbor 在闭合列表中且gtemp≥g(neighbor),则跳过该邻居节点。
如果neighbor 不在开放列表中或gtemp<g(neighbor),则更新邻居节点的 g 值和父节点信息,并计算 f(neighbor)=g(neighbor)+h(neighbor)。如果邻居节点不在开放列表中,则将其加入开放列表。
重复步骤B-D,直到找到终点节点或开放列表为空(表示无可行路径)。
原理:蚁群算法模拟了真实蚂蚁在寻找食物时通过信息素进行路径选择的过程,蚂蚁在行走时会在路径上留下信息素,其他蚂蚁倾向于选择信息素浓度更高的路径。
特点:适应性强,能有效处理复杂的环境;但收敛速度慢,容易陷入局部最优解。
算法步骤
原理:粒子群算法模拟了鸟群或鱼群在寻找食物时的群体行为。每个粒子代表一个解,粒子通过个体和群体的经验不断调整自己的位置以找到最优解。
特点:实现简单,收敛速度较快;但容易早熟,陷入局部最优。
算法步骤
原理:遗传算法模拟了自然选择和遗传学原理,通过选择、交叉和变异操作在解空间中搜索最优解。
特点:全局搜索能力强,不易陷入局部最优;但参数选择较复杂,计算量大。
算法步骤
总结下,在实际应用中,全局路径规划通常结合多种算法以达到最优效果。目前使用最多的是全局规划算法主要是A*、Dijkstra、遗传算法,生成从起点到终点的全局路径。
行为决策是自动驾驶系统中一个关键的部分,负责在感知预测模块提供的环境信息等原始数据基础上,做出驾驶决策,包括确定车辆的行驶路线、避障、变道、停车等操作,确保车辆在不同的交通情境中做出合理、安全的决策。这些输入的原始数据包括车辆自身信息(位置、速度、加速度、形势方向)、周围障碍物信息、实时交通状态和地图信息、交通规则、历史信息、全局规划模块的输出等。
基于规则的行为决策方法使用预定义的规则和逻辑来做出驾驶决策,这些规则通常是通过专家知识和驾驶法规制定的。
基于强化学习的行为决策方法通过与环境的交互学习最佳决策策略,适用于复杂、动态和不确定的驾驶环境。
总结下,DQN是自动驾驶领域中比较主流的行为决策算法,在训练中通过神经网络来估计状态-动作值函数,从而实现对驾驶行为的决策。
运动轨迹规划的目标通常是生成一条满足最短路程、无碰撞、可执行的轨迹。这种轨迹需要考虑驾驶安全性和乘坐舒适性,因此它不仅要求车辆能够顺利行驶,还需要确保乘客舒适,并且要避免与障碍物发生碰撞。
DWA是一种基于局部轨迹规划的方法,旨在在当前车辆状态和环境感知的基础上,生成一组动态窗口(Dynamic Window),并在这些窗口内搜索可行的速度和转向组合,以选择最优的行动,从而避免碰撞并实现到达目标位置。
特点:DWA算法通过限制搜索空间和使用简单的代价函数,能够在较短的时间内生成行动并做出决策,适用于实时控制应用;能够根据当前环境动态调整速度和转向,以应对不同的环境条件和车辆状态。
算法步骤
通过曲线拟合方法生成平滑的轨迹,来确保车辆在路径上的平稳运动,适用于各种复杂环境。很多轨迹规划算法都来源于机器人领域的路径规划算法的扩展,线段连接点存在不连续问题,导致车辆运动过程的不联系,因此目前多数厂商在做归控时都会对输出局部轨迹作进一步优化,使用基于曲线拟合的算法得到更加平滑的运动轨迹。
原理:多项式轨迹生成利用高次多项式函数来拟合路径,以生成平滑的轨迹,通常使用三次或更高次的多项式。
特点:高次多项式能够生成非常平滑的轨迹,而且可以通过调整多项式的系数来控制路径形状,相对较简单的数学形式,容易实现。
算法步骤:
原理:贝塞尔曲线通过一组控制点定义曲线形状,常用于图形学和路径规划中,常见的是二次贝塞尔曲线和三次贝塞尔曲线。
特点:通过调整控制点位置可以轻松调整曲线形状,生成的曲线平滑且易于控制,增加控制点可以逐步精细地控制曲线形状。
算法步骤:
原理:三次样条通过分段三次多项式连接一组数据点,确保在每个分段内曲线的连续性和光滑性。
特点:曲线及其一阶和二阶导数在分段之间是连续的;改变一个点的坐标只影响相邻的曲线段,适用于数据点较多的情况。
算法步骤:
原理:Dubbins曲线用于描述具有最小转弯半径的车辆从一个点到另一个点的最短路径,由直线和圆弧段组合而成。
特点:仅由直线和圆弧组成,适合路径约束简单的场景;总是能找到最短路径,但路径可能不够光滑;适用于固定转弯半径的车辆,如无人机和固定翼飞机。
算法步骤:
原理:Reeds-Shepp曲线是Dubbins曲线的扩展,允许车辆倒车,适用于非全向性车辆在平面上的路径规划。
特点:允许倒车,路径选择更多;路径可能包含多个直线和圆弧段,计算复杂;适用于需要高机动性的车辆,如自动驾驶汽车。
算法步骤:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。