✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。
🍎 往期回顾关注个人主页:Matlab科研工作室
🍊个人信条:格物致知,完整Matlab代码及仿真咨询内容私信。
🔥 内容介绍
在科技飞速发展的当下,无人车作为智能交通领域的重要研究方向,正逐渐改变着人们的出行和物流方式。从繁华都市的街头巷尾,到工业物流的仓储园区,无人车的身影日益常见,其应用前景极为广阔。而在无人车的众多关键技术中,路径规划无疑是核心中的核心,如同为无人车赋予了智慧的 “大脑”,指引其在复杂环境中安全、高效地行驶。
传统的路径规划算法各有优劣。A-Star 算法作为一种经典的启发式搜索算法,在静态环境中能够通过计算节点的代价函数,快速找到从起点到终点的最优路径,就像在一幅地图上精准地绘制出最短路线 。然而,当面对动态变化的环境,如突然出现的行人、车辆等障碍物时,它便显得力不从心,无法及时调整路径以避免碰撞,仿佛一位在陌生城市中拿着过时地图的旅行者,迷失了方向。
动态窗口法(DWA)则专注于局部路径规划,它根据无人车当前的速度和加速度等动态约束,在车辆周围生成一系列可行的轨迹,并通过评估函数选择最优轨迹,犹如一位敏捷的舞者,能够灵活地避开眼前的障碍。但 DWA 算法也存在局限性,它过于依赖当前的局部信息,缺乏对全局环境的整体认知,容易陷入局部最优解,导致无人车在复杂环境中无法找到全局最优路径,就像在迷宫中只关注眼前的几步,而忽略了走出迷宫的整体策略。
为了突破这些传统算法的局限,充分发挥两者的优势,改进的 A-Star 算法融合 DWA 算法应运而生。这种创新性的融合算法,将全局规划与局部规划有机结合,让无人车既能从宏观上把握整体路径方向,又能在微观层面灵活应对动态变化的环境。在接下来的内容中,我们将深入探讨这一融合算法的原理、实现过程以及实验验证,揭开它在无人车避障路径规划中的神秘面纱。
二、UGV 路径规划概述
(一)UGV 简介
UGV,即无人地面车辆(Unmanned Ground Vehicle),是一种能够在地面自主行驶或通过遥控操作的智能车辆 。它集成了先进的传感器技术、人工智能算法以及精密的机械结构,具备高度的自动化和智能化水平。
在军事领域,UGV 可执行侦察、排爆、物资运输等危险任务,有效降低士兵的伤亡风险。例如,在战场环境中,侦察型 UGV 能够悄无声息地深入敌方区域,利用其搭载的高清摄像头、热成像仪等传感器,收集关键情报信息,并实时传输回指挥中心,为作战决策提供有力支持。排爆型 UGV 则能在面对炸弹等危险物品时,凭借其灵活的机械臂和精确的操作能力,安全地进行拆除作业,保障人员和设施的安全。
在物流行业,UGV 作为智能仓储和运输的重要工具,极大地提高了物流效率。在大型仓储中心,穿梭车式 UGV 可以在货架间快速、准确地搬运货物,实现货物的自动存储和检索,减少人工操作的时间和成本。而在物流运输环节,配送型 UGV 能够按照预设的路线,将货物准时送达目的地,尤其适用于最后一公里配送等场景,解决了传统物流配送中 “最后一公里” 的难题。
在工业生产中,UGV 可用于物料搬运、生产线配送等工作,实现生产流程的自动化和智能化。比如在汽车制造工厂,AGV(Automated Guided Vehicle,一种常见的 UGV 类型)能够将零部件精准地运输到生产线的各个工位,确保生产的连续性和高效性,提高了生产效率和产品质量。
UGV 在智能交通、物流等领域的广泛应用,不仅提高了工作效率,降低了人力成本,还为这些领域的智能化发展提供了强大的技术支持,成为推动行业进步的重要力量。
(二)路径规划的重要性
路径规划作为 UGV 实现自主导航的核心技术,其重要性不言而喻,直接关系到 UGV 运行的安全性、效率以及实用性。
从安全性角度来看,在复杂多变的环境中,如城市街道上可能突然出现的行人、车辆,以及仓库中随时可能移动的货物等,UGV 必须依靠精确的路径规划来实时避开这些障碍物,避免发生碰撞事故,确保自身及周围环境的安全。例如,在熙熙攘攘的城市道路上,无人配送车需要通过路径规划算法,及时识别并避开突然横穿马路的行人,保障行人的生命安全和车辆的正常运行。
在效率方面,合理的路径规划能够帮助 UGV 找到从起点到终点的最优路径,减少行驶时间和能耗。以物流配送为例,配送车辆通过优化路径规划,可以避开拥堵路段,选择最短或最省时的路线,提高配送效率,降低物流成本。这不仅能够提升企业的运营效益,还能为客户提供更快捷的服务,增强市场竞争力。
实用性上,路径规划使 UGV 能够适应不同的任务需求和环境条件。无论是在室内狭小空间的货物搬运,还是在户外复杂地形的勘探作业,UGV 都能根据环境信息和任务要求,规划出合适的行驶路径,完成各种复杂任务。比如在野外地质勘探中,UGV 需要穿越崎岖的山路、绕过河流和巨石等障碍物,精准的路径规划能确保它顺利到达勘探地点,完成数据采集等任务。
路径规划是 UGV 实现自主、高效、安全运行的关键,是决定 UGV 能否在实际应用中发挥最大价值的核心因素。
(三)常见路径规划算法介绍
在 UGV 路径规划领域,存在着多种经典算法,它们各自具有独特的优势和局限性。
A-Star 算法作为一种启发式搜索算法,在静态环境中表现出色。它通过综合考虑从起点到当前节点的实际代价 g (n) 以及从当前节点到目标节点的预估代价 h (n),即 f (n)=g (n)+h (n) ,来选择下一个扩展节点。这种方式使得 A-Star 算法能够在众多路径中快速找到最优解,就像在迷宫中,它能根据当前位置和目标位置的信息,选择最有可能通向出口的路径。例如,在地图导航中,A-Star 算法可以帮助车辆规划出从出发地到目的地的最短路线,节省行驶距离和时间。然而,当环境发生动态变化,如出现临时障碍物时,A-Star 算法需要重新计算路径,计算量较大,响应速度较慢,难以满足实时性要求。
DWA(Dynamic Window Approach)算法,主要聚焦于局部路径规划。它基于车辆当前的速度和加速度等动态约束条件,在车辆周围生成一系列可能的轨迹,并通过评价函数对这些轨迹进行评估,选择最优轨迹作为车辆的行驶路径。这使得 DWA 算法能够快速响应环境变化,实时调整行驶方向,有效避开障碍物,就像一个灵活的舞者,能够在复杂的环境中自如地穿梭。在室内机器人避障场景中,DWA 算法可以根据机器人周围的障碍物分布情况,实时规划出安全的移动路径。但是,DWA 算法由于只考虑局部信息,缺乏对全局环境的整体把握,容易陷入局部最优解,导致机器人在复杂环境中无法找到全局最优路径,可能会在一些情况下选择看似最优但实际上并非全局最优的路径。
此外,还有 Dijkstra 算法,它是一种典型的基于广度优先搜索的算法,通过计算每个节点到起点的距离,逐步扩展并找到从起点到终点的最短路径。该算法能够保证找到全局最优解,但计算复杂度较高,时间和空间消耗较大,尤其在大规模地图或复杂环境中,计算效率较低。
这些常见算法在不同方面各有优劣,为了满足 UGV 在复杂环境下高效、准确地进行路径规划的需求,改进融合算法的研究显得尤为必要。
三、A_Star 算法详解
(一)A_Star 算法原理
A_Star 算法作为一种经典的启发式搜索算法,在路径规划领域占据着重要地位。其核心思想是通过一个评估函数来综合考虑从起点到当前节点的实际代价以及从当前节点到目标节点的预估代价,从而选择最优的路径扩展方向,快速找到从起点到终点的最优路径 。
该算法的评估函数表达式为 f (n)=g (n)+h (n)。其中,f (n) 代表节点 n 的综合评估值,它是衡量节点优劣的关键指标;g (n) 表示从起点到节点 n 的实际代价,这个代价可以是实际行驶的距离、消耗的时间或能量等,具体取决于实际应用场景的定义。例如,在地图导航中,g (n) 可能是车辆从出发地行驶到当前位置所经过的实际路程;h (n) 是从节点 n 到目标节点的预估代价,这是 A_Star 算法的启发式部分,它利用一些启发信息来估计当前节点到目标节点的距离或代价 。在一个简单的网格地图中,可以使用曼哈顿距离或欧几里得距离来估算 h (n),曼哈顿距离是指在水平和垂直方向上移动的距离之和,欧几里得距离则是两点之间的直线距离。
A_Star 算法在搜索路径时,维护了两个重要的列表:开放列表(Open List)和关闭列表(Closed List) 。开放列表用于存放待评估的节点,这些节点是算法在搜索过程中发现的,但还未进行深入探索的节点,它们按照 f (n) 值的大小进行排序,f (n) 值越小的节点越优先被处理,因为这意味着该节点更有可能通向最优路径。关闭列表则用于记录已经评估过的节点,这些节点的邻居节点都已经被扩展和评估,算法不会再对它们进行重复处理,从而避免了重复搜索,提高了搜索效率。
算法从起点开始,将起点加入开放列表。然后,不断从开放列表中取出 f (n) 值最小的节点作为当前节点进行处理。对于当前节点,算法会检查它是否为目标节点。如果是目标节点,说明已经找到了从起点到终点的最优路径,算法通过回溯当前节点的父节点(在扩展节点时,会记录每个节点的父节点,以便后续回溯路径),就可以得到完整的最优路径。如果当前节点不是目标节点,算法会对它的所有邻居节点进行评估和处理。对于每个邻居节点,如果它不在开放列表和关闭列表中,说明这是一个新发现的节点,算法会计算它的 f (n) 值,并将其加入开放列表,同时记录它的父节点为当前节点;如果邻居节点已经在开放列表中,算法会比较通过当前节点到达该邻居节点的 g (n) 值与原来的 g (n) 值,如果新的 g (n) 值更小,说明通过当前节点到达该邻居节点的路径更优,算法会更新该邻居节点的 g (n) 值、f (n) 值以及父节点;如果邻居节点在关闭列表中,说明该节点已经被充分评估过,算法可以直接忽略它。在处理完当前节点的所有邻居节点后,算法将当前节点从开放列表中移除,并加入关闭列表。这个过程不断重复,直到找到目标节点或者开放列表为空。如果开放列表为空且还未找到目标节点,则说明在当前环境下不存在从起点到终点的路径。
在一个简单的二维网格地图中,假设每个网格的边长为 1,起点坐标为 (0, 0),目标坐标为 (5, 5),存在一些障碍物。A_Star 算法开始时,将起点 (0, 0) 加入开放列表,计算其 f (0, 0)=g (0, 0)+h (0, 0),这里 g (0, 0)=0(因为是起点),h (0, 0) 可以用曼哈顿距离计算,即 | 5 - 0| + |5 - 0| = 10,所以 f (0, 0)=10。然后从开放列表中取出 f 值最小的节点,即起点 (0, 0),检查它不是目标节点,开始扩展它的邻居节点 (0, 1) 和 (1, 0) 。计算 (0, 1) 的 f 值,g (0, 1)=g (0, 0)+1 = 1(因为从起点移动到 (0, 1) 的实际代价为 1),h (0, 1)=|5 - 0| + |5 - 1| = 9,所以 f (0, 1)=1 + 9 = 10;同理计算 (1, 0) 的 f 值也为 10。将这两个邻居节点加入开放列表,并记录它们的父节点为 (0, 0)。接着将起点 (0, 0) 加入关闭列表。之后不断从开放列表中取出 f 值最小的节点进行处理,直到找到目标节点 (5, 5),通过回溯父节点得到最优路径。
(二)传统 A_Star 算法的局限性
尽管 A_Star 算法在静态环境下表现出色,能够高效地找到最优路径,但在实际应用中,尤其是面对复杂多变的动态环境时,传统 A_Star 算法存在诸多局限性。
在复杂环境适应性方面,现实场景中的环境往往错综复杂,不仅存在大量的静态障碍物,还可能有动态变化的元素,如移动的行人、车辆等。传统 A_Star 算法基于静态地图进行路径规划,一旦环境发生变化,如突然出现新的障碍物,它就需要重新进行全局路径规划 。在城市交通中,若道路上突发交通事故导致部分路段堵塞,按照传统 A_Star 算法规划路径的无人车,需要重新计算从当前位置到目的地的所有可能路径,这一过程计算量巨大,会导致无人车响应速度迟缓,无法及时避开障碍物,影响行驶的安全性和效率。而且传统 A_Star 算法在处理复杂地形时也存在不足,例如在越野场景中,地形可能包括山地、河流、沼泽等多种复杂地貌,算法难以准确地对这些复杂地形进行建模和代价评估,从而影响路径规划的准确性和可行性。
实时性问题也是传统 A_Star 算法的一大痛点。该算法在每次规划路径时,都需要对整个搜索空间进行遍历和评估,计算每个节点的 f (n) 值,并维护开放列表和关闭列表。在大规模地图或复杂环境中,搜索空间庞大,节点数量众多,这使得算法的计算时间大幅增加 。在一个大型物流仓库中,若使用传统 A_Star 算法为 AGV 规划路径,当仓库布局复杂且货物摆放频繁变动时,AGV 每次移动都需要花费较长时间来计算新路径,无法满足物流作业高效、快速的实时性要求,导致物流配送效率低下。并且,在实时变化的环境中,无人车需要不断根据环境变化调整路径,传统 A_Star 算法由于计算速度慢,无法在短时间内完成路径更新,容易导致无人车与障碍物发生碰撞。
传统 A_Star 算法生成的路径往往不够平滑,存在较多的直角转弯和折线。这是因为算法在搜索路径时,主要考虑的是节点的代价,而较少关注路径的平滑性 。在实际应用中,不平滑的路径会增加无人车的行驶难度和能耗,对车辆的机械结构和控制系统也会产生较大的压力。在工业生产线上,AGV 按照不平滑的路径行驶,可能会导致货物的晃动和掉落,影响生产的稳定性和产品质量。并且,不平滑的路径还可能使无人车在转弯时速度受限,进一步降低行驶效率。
(三)改进的 A_Star 算法思路
针对传统 A_Star 算法存在的局限性,研究人员提出了一系列改进思路,旨在提升算法在复杂环境下的性能和适应性,使其能够更好地满足无人车路径规划的实际需求。
在启发函数优化方面,传统 A_Star 算法通常采用简单的曼哈顿距离或欧几里得距离作为启发函数来估计当前节点到目标节点的代价。然而,这种简单的启发函数在复杂环境中可能无法准确反映实际情况,导致搜索效率低下 。为了改进这一点,可以引入更复杂、更符合实际环境的启发函数。在具有复杂地形的场景中,可以根据地形的类型和坡度来调整启发函数。对于山地地形,增加通过该区域的代价估计;对于平坦道路,则适当降低代价。这样,算法在搜索路径时能够更加合理地选择节点,优先探索更有可能通向目标的路径,减少不必要的搜索,提高搜索效率。还可以结合环境的动态信息,如障碍物的移动速度和方向,对启发函数进行动态调整。当检测到前方有快速移动的障碍物时,增加向该方向搜索的代价,引导算法尽快避开危险区域。
搜索策略的优化也是改进的重要方向。传统 A_Star 算法从起点开始逐步扩展节点,搜索范围较大,计算量高。双向搜索策略是一种有效的改进方法,它从起点和终点同时进行搜索,当两个搜索过程相遇时,即可得到最优路径 。这种方式能够大大减少搜索空间,提高搜索速度。在一个大型园区的无人车配送场景中,双向搜索策略可以使无人车更快地找到从仓库到配送点的路径,尤其是在路径较长、搜索空间较大的情况下,效果更为显著。还可以采用分层搜索策略,将地图划分为不同层次,先在高层次的地图上进行粗略搜索,得到一个大致的路径方向,然后在低层次的地图上对该路径进行细化和优化 。这样可以减少搜索的盲目性,降低计算量,同时提高路径规划的准确性。在城市地图中,先在城市主干道层次上规划出大致的行车路线,再在具体街区层次上对路线进行优化,避免在小范围内进行过多的无效搜索。
为了使路径更加平滑,减少不必要的转弯和折线,可以在 A_Star 算法生成路径后,增加路径平滑处理环节。一种常用的方法是采用样条曲线拟合 。通过对路径上的关键点进行样条曲线拟合,生成一条平滑的曲线来代替原来的折线路径。在无人车行驶过程中,平滑的路径不仅可以降低车辆的行驶难度和能耗,还能提高行驶的稳定性和舒适性。在自动驾驶场景中,平滑的路径可以减少乘客的颠簸感,提升出行体验。还可以通过优化节点扩展方式,避免生成过于曲折的路径。在扩展节点时,考虑相邻节点之间的角度和距离关系,优先选择能够使路径更平滑的节点进行扩展,从而在路径生成阶段就减少不必要的转弯。
四、DWA 算法详解
(一)DWA 算法原理
DWA 算法,即动态窗口法(Dynamic Window Approach),是一种基于速度空间采样的局部路径规划算法,在无人车避障路径规划中发挥着重要作用,其核心在于实时根据无人车的动态状态和环境信息,灵活规划出安全、合理的行驶路径。
DWA 算法的运行基于三个关键步骤:速度采样、轨迹预测和轨迹评价 。在速度采样环节,该算法充分考虑无人车的硬件性能和当前行驶状态,对速度空间进行采样。无人车的速度受到自身最大速度和最小速度的限制,就像汽车在高速公路上行驶,有法定的最高限速和最低限速 。同时,电机的性能也会影响速度变化,由于电机力矩有限,存在最大的加速度和减速度限制 。在实际场景中,为了确保安全,在最大减速度条件下,速度也有一个安全范围,以保证无人车能够在碰到障碍物前及时停下来。基于这些约束条件,DWA 算法确定了一个动态窗口,在这个窗口内的速度才是无人车能够实际达到的速度。通过在这个动态窗口内离散采样多个速度组合,生成一系列可能的速度候选集。
在确定速度采样空间后,进入轨迹预测阶段。DWA 算法借助无人车的运动学模型,预测在不同速度组合下,无人车在未来一段时间内的运动轨迹。假设无人车采用两轮差速运动模型,根据采样得到的线速度和角速度,结合运动学公式,就可以计算出在每个时间步长内无人车的位置和姿态变化,从而得到完整的运动轨迹 。这个过程就如同根据汽车当前的速度和方向盘转向角度,预测它在接下来一段时间内的行驶路线。
轨迹评价是 DWA 算法的关键决策步骤。通过一个精心设计的评价函数,对每条预测轨迹进行评分,以衡量其优劣 。评价函数通常综合考虑多个因素,包括轨迹终点与目标点的距离,无人车当然希望选择的轨迹能够使其更快地接近目标点,就像人们开车时总是希望朝着目的地的方向前进 ;轨迹与障碍物的距离,为了保证安全,无人车要尽量远离障碍物,避免发生碰撞 ;以及轨迹的平滑度,平滑的轨迹可以减少无人车行驶过程中的颠簸和能量消耗,提高行驶的稳定性 。在实际应用中,评价函数可以表示为:Cost = w1 * distance_to_goal + w2 * distance_to_obstacle + w3 * smoothness ,其中 w1、w2、w3 是权重系数,用于调整各个因素在评价中的重要程度,distance_to_goal 表示轨迹终点到目标点的距离,distance_to_obstacle 表示轨迹与障碍物的最近距离,smoothness 表示轨迹的平滑度。通过对所有采样速度对应的轨迹进行评价,选择得分最高的轨迹所对应的速度作为无人车的下一时刻行驶速度,从而实现实时避障和路径规划。
(二)DWA 算法的优势与不足
DWA 算法在局部路径规划中展现出显著的优势,使其成为无人车避障路径规划的重要选择,但同时也存在一些局限性,影响其在复杂环境下的全面应用。
DWA 算法的最大优势在于其出色的实时避障能力。由于该算法只关注局部环境信息和短期的运动轨迹,计算量相对较小,能够快速响应环境的动态变化 。在实际场景中,当无人车行驶过程中突然出现障碍物时,DWA 算法可以迅速根据当前的速度和环境情况,在动态窗口内采样速度并预测轨迹,通过评价函数快速选择一条能够避开障碍物的最优轨迹,及时调整行驶方向,避免碰撞的发生 。这种实时性和灵活性使得 DWA 算法在动态环境中表现出色,能够保障无人车的行驶安全。DWA 算法充分考虑了无人车的动力学约束,如速度、加速度限制等,确保规划出的路径是无人车实际能够执行的,避免了因规划路径超出车辆性能范围而导致的无法行驶或失控等问题 。
然而,DWA 算法也存在明显的不足。其缺乏全局视野,只基于局部信息进行路径规划,容易陷入局部最优解 。在一些复杂环境中,局部看似最优的路径可能并非全局最优,例如在一个具有多个障碍物的迷宫环境中,DWA 算法可能会选择一条避开眼前障碍物但却远离最终目标的路径,导致无人车无法找到全局最优路径,延长行驶时间或无法到达目的地 。DWA 算法生成的路径可能不够平滑,这是因为它在每次决策时主要关注当前的局部最优,而较少考虑整体路径的连贯性和平滑性 。不平滑的路径会增加无人车行驶的能耗和机械磨损,降低行驶的舒适性和稳定性,尤其在高速行驶时,还可能影响行驶安全。而且 DWA 算法对评价函数的依赖性较强,评价函数的设计直接影响算法的性能 。如果评价函数的权重设置不合理,可能导致算法过于关注某一个因素,而忽视其他重要因素,从而无法规划出理想的路径 。在设置距离障碍物的权重过高时,无人车可能会过度避让障碍物,选择一条过于迂回的路径;反之,若权重过低,则可能无法有效避开障碍物,增加碰撞风险。
五、改进的 A_Star 算法融合 DWA 算法实现
(一)融合思路与架构设计
改进的 A_Star 算法融合 DWA 算法的核心思路是将全局路径规划与局部路径规划有机结合,充分发挥两种算法的优势,以实现无人车在复杂环境下高效、安全的路径规划 。
在融合架构中,改进的 A_Star 算法负责全局路径规划,它基于对整个环境地图的认知,利用优化后的启发函数和搜索策略,从起点开始搜索,通过不断扩展节点,计算每个节点的代价函数,找到一条从起点到终点的大致全局路径。这条全局路径为无人车的行驶提供了宏观的方向指引,就像为无人车绘制了一张长途旅行的大致路线图 。
而 DWA 算法则专注于局部路径规划和实时避障。当无人车沿着改进的 A_Star 算法生成的全局路径行驶时,DWA 算法实时监测无人车周围的局部环境信息,根据无人车当前的速度、加速度等动态约束条件,在车辆周围生成一系列可能的轨迹 。通过精心设计的评价函数,对这些轨迹进行评估,综合考虑轨迹与目标点的距离、与障碍物的距离以及轨迹的平滑度等因素,选择最优的轨迹作为无人车的下一步行驶路径,从而实现实时避开局部环境中的障碍物,确保行驶安全 。
这种融合架构形成了一个层次分明、协同工作的路径规划系统。改进的 A_Star 算法从全局层面把握路径方向,减少了搜索的盲目性,提高了路径规划的全局性和效率;DWA 算法则在局部层面灵活应对动态变化的环境,实时调整路径,保证了行驶的安全性和实时性 。两者相互补充,使得无人车在复杂环境中既能快速找到到达目标的大致路径,又能在行驶过程中及时避开各种障碍物,实现高效、安全的自主导航 。
(二)算法实现步骤
1. 改进 A_Star 算法全局路径规划步骤
改进 A_Star 算法的全局路径规划从构建地图模型开始,将无人车所处的环境抽象为二维栅格地图,明确每个栅格的状态,是可通行区域还是障碍物占据区域,同时确定起点和终点的坐标位置 。
初始化两个重要的数据结构:开放列表(Open List)用于存放待评估的节点,关闭列表(Closed List)用于记录已评估过的节点 。将起点加入开放列表,并计算起点的评估函数值 f (n),这里的 f (n)=g (n)+h (n),其中 g (n) 为从起点到当前节点的实际代价,由于起点本身的 g (0)=0 ,h (n) 是根据改进后的启发函数计算的从当前节点到目标节点的预估代价 。
在循环搜索阶段,只要开放列表不为空,就从开放列表中选取 f (n) 值最小的节点作为当前节点进行处理 。如果当前节点是目标节点,说明已经找到了全局路径,通过回溯当前节点的父节点,即可得到从起点到终点的完整全局路径 。若当前节点不是目标节点,则将其加入关闭列表,并对其邻居节点进行评估和处理 。对于邻居节点,首先判断其是否可通行(即不在障碍物区域且未在关闭列表中),若可通行且不在开放列表中,则计算其 g (n)、h (n) 和 f (n) 值,将其加入开放列表,并记录当前节点为其父节点;若邻居节点已在开放列表中,则比较通过当前节点到达该邻居节点的新 g (n) 值与原来的 g (n) 值,若新值更小,则更新邻居节点的 g (n)、f (n) 值以及父节点 。在节点扩展过程中,利用改进后的搜索策略,如双向搜索或分层搜索,减少搜索空间,提高搜索效率 。例如采用双向搜索时,从起点和终点同时进行搜索,当两个方向的搜索相遇时,就找到了全局路径,大大缩短了搜索时间 。
当开放列表为空且未找到目标节点时,说明在当前环境下不存在从起点到终点的路径,算法结束并给出提示 。
2. DWA 算法局部避障步骤
DWA 算法在局部避障时,首先根据无人车当前的速度、加速度以及最大速度、最小速度、最大加速度、最小加速度等硬件性能约束,确定速度采样的动态窗口 。这个动态窗口定义了无人车在当前状态下能够实际达到的速度范围 。
在动态窗口内进行速度采样,生成一系列速度候选集 。对于每个采样速度,利用无人车的运动学模型,预测在该速度下无人车在未来一段时间(预测时域)内的运动轨迹 。假设无人车采用两轮差速运动模型,根据采样得到的线速度和角速度,结合运动学公式,计算每个时间步长内无人车的位置和姿态变化,从而得到完整的预测轨迹 。
通过设计的评价函数对每条预测轨迹进行评分 。评价函数通常综合考虑多个因素,如轨迹终点与目标点的距离,距离越近得分越高;轨迹与障碍物的距离,距离越远得分越高;以及轨迹的平滑度,平滑度越高得分越高 。评价函数可以表示为 Cost = w1 * distance_to_goal + w2 * distance_to_obstacle + w3 * smoothness ,其中 w1、w2、w3 是权重系数,用于调整各个因素在评价中的重要程度 。选择得分最高的轨迹所对应的速度作为无人车的下一时刻行驶速度,控制无人车按照该速度行驶,实现局部避障 。
3. 两者融合的衔接与协同机制
在融合算法中,改进的 A_Star 算法生成的全局路径是 DWA 算法进行局部路径规划的基础和引导 。全局路径被离散化为一系列路径点,DWA 算法以这些路径点为目标,在局部范围内进行路径规划和避障 。当无人车沿着全局路径行驶时,DWA 算法实时监测局部环境变化 。一旦检测到障碍物,DWA 算法立即启动,根据当前的局部环境信息和无人车的动态状态,在动态窗口内进行速度采样和轨迹预测,选择最优轨迹避开障碍物 。
在避障过程中,如果 DWA 算法发现当前的局部避障操作导致无人车偏离全局路径过大,或者无法按照原全局路径继续行驶时,会将信息反馈给改进的 A_Star 算法 。改进的 A_Star 算法根据反馈信息,结合当前无人车的位置和新的环境信息,重新规划全局路径,为 DWA 算法提供新的路径点作为目标 。这种衔接与协同机制使得改进的 A_Star 算法和 DWA 算法能够紧密配合,在全局和局部层面共同为无人车规划出安全、高效的行驶路径,确保无人车在复杂环境中顺利到达目标位置 。
⛳️ 运行结果






📣 部分代码
🔗 参考文献
🎈 部分理论引用网络文献,若有侵权联系博主删除
👇 关注我领取海量matlab电子书和数学建模资料
🏆团队擅长辅导定制多种科研领域MATLAB仿真,助力科研梦:
🌟 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱调度、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化、CVRP问题、VRPPD问题、多中心VRP问题、多层网络的VRP问题、多中心多车型的VRP问题、 动态VRP问题、双层车辆路径规划(2E-VRP)、充电车辆路径规划(EVRP)、油电混合车辆路径规划、混合流水车间问题、 订单拆分调度问题、 公交车的调度排班优化问题、航班摆渡车辆调度问题、选址路径规划问题、港口调度、港口岸桥调度、停机位分配、机场航班调度、泄漏源定位
🌟 机器学习和深度学习时序、回归、分类、聚类和降维
2.1 bp时序、回归预测和分类
2.2 ENS声神经网络时序、回归预测和分类
2.3 SVM/CNN-SVM/LSSVM/RVM支持向量机系列时序、回归预测和分类
2.4 CNN|TCN|GCN卷积神经网络系列时序、回归预测和分类
2.5 ELM/KELM/RELM/DELM极限学习机系列时序、回归预测和分类
2.6 GRU/Bi-GRU/CNN-GRU/CNN-BiGRU门控神经网络时序、回归预测和分类
2.7 ELMAN递归神经网络时序、回归\预测和分类
2.8 LSTM/BiLSTM/CNN-LSTM/CNN-BiLSTM/长短记忆神经网络系列时序、回归预测和分类
2.9 RBF径向基神经网络时序、回归预测和分类
2.10 DBN深度置信网络时序、回归预测和分类
2.11 FNN模糊神经网络时序、回归预测
2.12 RF随机森林时序、回归预测和分类
2.13 BLS宽度学习时序、回归预测和分类
2.14 PNN脉冲神经网络分类
2.15 模糊小波神经网络预测和分类
2.16 时序、回归预测和分类
2.17 时序、回归预测预测和分类
2.18 XGBOOST集成学习时序、回归预测预测和分类
2.19 Transform各类组合时序、回归预测预测和分类
方向涵盖风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、用电量预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
🌟图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
🌟 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、 充电车辆路径规划(EVRP)、 双层车辆路径规划(2E-VRP)、 油电混合车辆路径规划、 船舶航迹规划、 全路径规划规划、 仓储巡逻
🌟 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配、无人机安全通信轨迹在线优化、车辆协同无人机路径规划
🌟 通信方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化、水声通信、通信上传下载分配
🌟 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化、心电信号、DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测
🌟电力系统方面
微电网优化、无功优化、配电网重构、储能配置、有序充电、MPPT优化、家庭用电、电/冷/热负荷预测、电力设备故障诊断、电池管理系统(BMS)SOC/SOH估算(粒子滤波/卡尔曼滤波)、 多目标优化在电力系统调度中的应用、光伏MPPT控制算法改进(扰动观察法/电导增量法)
🌟 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长 金属腐蚀
🌟 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合、SOC估计、阵列优化、NLOS识别
🌟 车间调度
零等待流水车间调度问题NWFSP 、 置换流水车间调度问题PFSP、 混合流水车间调度问题HFSP 、零空闲流水车间调度问题NIFSP、分布式置换流水车间调度问题 DPFSP、阻塞流水车间调度问题BFSP
👇
698

被折叠的 条评论
为什么被折叠?



