舰船科学技术  2025, Vol. 47 Issue (5): 97-102    DOI: 10.3404/j.issn.1672-7649.2025.05.015   PDF    
基于双向搜索改进A*算法的无人艇全局路径规划
梅梦磊1, 陈顺洪2, 菅永坤1, 白立1     
1. 武警海警学院航海系,浙江 宁波 315801;
2. 广州船舶及海洋工程设计研究院,广东 广州 510250
摘要: 为解决传统A*算法搜索效率低、路径拐点多、贴近障碍物等问题,结合无人艇特性,提出一种改进A*算法。首先,引入人工势场法对评价函数进行改进,考虑障碍物斥力场的影响,提高路径安全性;其次,通过改进节点遍历方式和双向搜索机制减少搜索节点,提高路径规划速度;最后,对生成路径进行二次优化,删除冗余节点,提升路径平滑性。仿真结果表明,开阔水域场景下改进A*算法在安全性、路径长度、路径平滑性、规划速度方面均有较大提升;岛礁区场景下改进A*算法虽然在路径长度上有所牺牲,但安全性、路径平滑性、规划速度方面具有明显优势。研究成果可为无人艇全局路径规划问题研究提供一定的参考。
关键词: 路径规划     改进A*算法     斥力场     双向搜索    
Improved A* algorithm based on bidirectional search for global path planning of unmanned surface vehicles
MEI Menglei1, CHEN Shunhong2, JIAN Yongkun1, BAI Li1     
1. Navigation Department, China Coast Guard Academy, Ningbo 315801, China;
2. Guangzhou Marine Engineering Corporation, Guangzhou 510250, China
Abstract: In order to solve the problems of the traditional A* algorithm, such as low search efficiency, many inflection points and close to obstacles, an improved A* algorithm is proposed based on the navigation characteristics of unmanned surface vehicles. Firstly, the artificial potential field method is put in place to improve the evaluation function, and the safety of the path is improved by considering the influence of the obstacles repulsion fields. Secondly, by improving the traversal mode of nodes and bidirectional search mechanism, the search nodes are reduced and the path planning speed is improved. Finally, in order to enhance path smoothness, the redundant nodes are deleted to optimize the path. The simulation results show that the improved A* algorithm in open water has a significant improvement in safety, path length, path smoothness and planning speed. Although the improved A* algorithm in the island regions has some sacrifices in the path length, it has obvious advantages in terms of safety, path smoothness and planning speed. The research results can provide a certain reference for the research of global path planning of unmanned surface vehicles.
Key words: path planning     improved A* algorithm     repulsion fields     bidirectional search    
0 引 言

无人艇是一种无人操作的舰艇,与常规舰船相比,具有机动灵活、隐蔽能力强、智能化程度高等特点[1]。为顺利完成各项任务,无人艇需要具备一定的自主航行能力。路径规划是实现无人艇自主航行的前提条件,也是智能化的重要体现。根据无人艇对航行环境是否已知可分为全局路径规划和局部路径规划[2]。目前,全局路径规划算法主要有Dijkstra算法[3]、A*算法[4]、RRT算法[5]、蚁群算法[6]、遗传算法[7]和粒子群优化算法[8]等。其中,A*算法作为经典的启发式搜索算法,凭借简单有效、易于实现、适应性能力强等优点得到了广泛关注。但学者们把A*算法应用于无人艇全局路径规划时发现,传统A*算法存在搜索节点多、路径贴近障碍物、转弯频繁等缺点[9]。因此,不少学者对A*算法深入研究并加以改进,以适用于无人艇全局路径规划问题。

为提高路径规划速度,任晔等[10]根据障碍物系数以及当前节点与目标点的距离来实现评价函数中启发函数权重的自适应调整,并通过减少节点的扩展方向来提高路径规划效率;张浩等[11]引入启发函数加权系数以提高路径节点搜索速度,同时考虑角度因素,优先扩展起点与终点连线附近的节点;冯辉等[12]在考虑无人艇旋回性能的基础上,提出一种变步长稀疏A*算法,仿真结果表明该算法具有较好的寻优性能,尤其适用于复杂环境下的全局路径规划问题。为改善传统A*算法路径贴近障碍物的问题,武善平等[9]在路径规划过程中,通过设置安全距离来迫使路径远离碍航物,提高了路径的安全性;薛双飞等[2]引入船舶航行安全代价对评价函数进行改进,可以在保证一定安全性的前提下获得最短路径。为改善路径转弯频繁的问题,WANG等[13]利用S-57电子海图建立了八叉树网格环境模型,提出了一种基于航行安全权重、引导量和路径曲线平滑的改进A*算法,仿真结果表明,该算法能够生成安全合理的全局路径;SONG等[14]采用路径平滑算法对A*算法生成的路径进行三次平滑处理,结果表明,平滑后的A*算法在转弯成本和距离成本方面优于传统A*方法。

在综合分析现有研究基础上,本文提出一种改进A*算法。首先,引入人工势场法对评价函数加以改进,通过考虑障碍物斥力场的影响来提高路径的安全性;其次,通过改进节点遍历方式和双向搜索机制减少搜索节点,提高路径规划速度;最后,对生成路径进行二次优化,删除冗余节点以减少转向点数量。

1 传统A*算法

A*算法是HART和NILSSON于1968年提出的一种启发式图搜索算法,最早应用于解决各种数学问题[4]。其基本思想是首先确定一个评价函数,然后从起点开始根据评价函数不断向目标点方向搜索,同时记录每一次搜索确定的节点,直至搜索到目标点,最后从目标点返回到起始点来获得最优路径。传统A*算法的评价函数为:

F(n)=G(n)+H(n) (1)

式中:F(n)为从起始点经过当前节点n到目标点的估计代价值;G(n)为起始点到当前节点的实际代价值;H(n)为启发函数,表示当前节点到目标点的估计代价值。由于G(n)是实际代价值,因此H(n)对A*算法搜索结果的好坏有很大影响。假设从当前节点到目标点的实际代价值为H(n),为保证A*算法能够搜索出最优路径,应当满足H(n)H(n)

传统A*算法虽然具有简单、易于实现的特点,但实际应用中也存在诸多问题。以采取8邻域扩展方式的A*算法为例,一是评价函数仅考虑距离上的最优解,导致路径紧贴障碍物边缘,不利于无人艇航行安全;二是路径方向只能是45°的整数倍,增加不必要的转向点,造成路径不平滑,不利于无人艇操纵;三是在扩展节点时,每次都无选择性的对8个邻域节点进行搜索,产生大量与最终路径无关的节点,路径规划效率有待提高。因此,为使A*算法更好地应用于无人艇的全局路径规划问题,有必要对其进行改进。

2 改进A*算法 2.1 评价函数改进

针对传统A*算法路径紧贴障碍物的问题,引入人工势场法对评价函数进行改进。人工势场法是KHATIB[15]于1986年提出的一种机器人路径规划算法。其基本思想是将移动机器人感知的环境看成一个虚拟的力场,障碍物产生斥力场,对移动机器人有排斥作用,越靠近障碍物,排斥力越大;目标点产生引力场,对移动机器人有吸引作用,越靠近目标点,吸引力越大;移动机器人在斥力场和引力场的综合作用下,避开障碍物,向目标点移动。本文引入人工势场法主要为解决传统A*算法规划的路径贴近障碍物的问题,故只考虑斥力场的影响。同时为简化计算量,仅考虑距离当前节点最近障碍物的斥力场。

人工势场法的斥力场函数为:

Urep(n)={12Krep(1ρ(nnobs)1ρ0)2ρ(nnobs)ρ00ρ(nnobs)ρ0 (2)

对斥力场函数进行负梯度求解,即可得到斥力的表达式为:

Frep(n)={Krep(1ρ(nnobs)1ρ0)1ρ2(nnobs)ρ(nqobs)ρ00ρ(nqobs)ρ0 (3)

式中:ρ(nnobs)为当前节点到距离最近障碍物的距离;ρ0为斥力场影响范围;Krep为斥力势场的增益系数。

经人工势场法改进后的评价函数为:

F(n)=G(n)+H(n)+Frep(n) (4)
2.2 遍历方式改进

传统A*算法在搜索路径时,如图1所示,以当前节点为中心向周围的8个节点进行遍历,遍历过程未考虑无人艇的操纵性能。相对于移动机器人,无人艇具有惯性大的特点,特别是在转向时,其转弯能力取决于转弯半径。根据《船舶操纵性标准》,大型船舶的最小转弯半径为船长的5倍,小型船舶的最小转弯半径为船长的3倍[6]。在构建环境模型时,每个栅格单元尺寸被设置为无人艇艇长的3倍,无人艇由当前节点栅格中心向下一节点栅格中心航行时,最大可实现90°的转向。如图2所示,考虑无人艇的操纵性能后,处于不同航向的无人艇的转向角被限制在0°~90°之间,节点的遍历方向由8邻域缩小为5邻域,降低了路径规划过程中遍历节点数量,可提高路径规划效率。

图 1 8邻域方向示意图 Fig. 1 Eight directions of the neighborhoods

图 2 改进后的节点遍历方式 Fig. 2 The improved traversal mode of the nodes
2.3 双向搜索机制改进

传统A*算法是从起始点开始逐步向目标点搜索,搜索过程中遍历节点数量较多,路径规划效率低。为提高搜索效率,可采用双向搜索机制,即在分别从起始点和目标点开始搜索。以起始点为正向搜索的起点,目标点为正向搜索的终点时,定义2个列表Openlist1和Closedlist1。以目标点为反向搜索的起点,起始点为反向搜索的终点时,定义2个列表Openlist2和Closedlist2。从正反2个方向进行搜索时,相应的遍历节点分别存放在Openlist1、Closedlist1、Openlist2和Closedlist2中。现有的双向A*算法在路径规划时,当有任意一个方向搜索到对应终点或者Closedlist1与Closedlist2中有交集时结束搜索。这就导致即使正向搜索的当前节点可以直接到达反向搜索的当前节点,依然会逐步搜索,从而扩展不必要的节点,影响搜索效率。同时,无人艇在航行过程中,尤其是在开阔水域,航线大多为直航段。基于此,在搜索过程增加可航性检验,即正向搜索的当前节点与反向搜索的当前节点的连线不通过障碍物且与障碍物保持一定安全距离D时,可认为两点之间满足可航性,即可结束循环。双向搜索机制改进后算法的流程如图3所示。

图 3 改进双向A*算法流程 Fig. 3 Improved bidirectional A* algorithm flow
2.4 路径二次优化

在栅格环境中,传统8邻域A*算法规划的路径方向只能是45°的整数倍,这就导致路径转折点多,不仅增加路径长度,而且不利于无人艇操纵。DANIEL等[16]在A*算法基础上提出Theta*算法,选择父节点时通过可视性检查实现了转向角度的任意化,解决了路径转折点多的问题,但频繁的可视性检查操作使得Theta*算法存在耗时长、效率低的问题。本文参考Theta*算法的思路,以生成的路径为对象进行可视性检查优化,同时为保证路径的安全性,设定障碍物的安全距离为D,即障碍物到路径的距离不能小于D。具体的优化过程如图4所示,从起点P1开始对所有路径点进行遍历,连接P1P3节点,如果P1P3节点之间的连线与障碍物的距离大于安全距离D,则继续连接P1节点和P4节点,并对P1P4节点之间的连线与障碍物的距离是否小于安全距离D进行判断,直至P1PK节点连线到障碍物的距离小于安全距离D,保留关键点P1PK-1,剔除P1PK-1之间的节点;从节点PK-1继续重复上述操作直到遍历到目标点,这样优化后的路径仅包含起点、关键点和目标点,从而减少转向点数量。

图 4 路径优化过程 Fig. 4 Path optimization process
3 实例仿真

为验证改进A*算法的有效性,对传统A*算法、Theta*算法和改进A*算法进行仿真对比。如图5所示,选取舟山大园山和中园山水域为航行仿真环境,对电子海图图片栅格化处理后的航行环境被分为80×80个栅格,其中白色区域为可航水域,黑色区域为不可航区域。安全距离D取2倍栅格边长,障碍物斥力场范围ρ0取5倍栅格边长,斥力势场增益系数Krep取60。

图 5 航行环境 Fig. 5 The navigation environment
3.1 开阔水域路径规划结果对比

在开阔水域,起始点和目标点之间无遮挡时,采用传统A*算法、Theta*算法和改进A*算法进行路径规划,图6为路径规划结果,表1为3种算法路径规划结果关键参数对比。

图 6 开阔水域路径规划结果 Fig. 6 Results of path planning in open water

表 1 开阔水域路径规划结果关键参数对比 Tab.1 Comparison of key parameters of path planning results in open water

结果表明,从路径安全性方面来看,由于开阔水域距离障碍物较远,障碍物的影响极小,3种算法表现相同;从路径长度方面来看,改进A*算法和Theta*算法规划的路径相重合,即起始点到目标点的连线,相对于传统A*算法,路径长度减小了7.1%;从转向点数量上来看,传统A*算法存在大量的冗余节点,路径中转向点数量高达59个,而改进A*算法通过可航性检验避免了多余节点的扩展,并结合路径二次优化删除了冗余节点,达到了与Theta*算法相同的效果,提升了路径的平滑性;从规划速度方面来看,Theta*算法耗时最长,传统A*算法次之,改进A*算法最小,改进A*算法相对传统A*算法耗时减小了99.2%,规划速度的提升主要由双向搜索机制下可航行检验操作带来的。综上所述,在开阔水域规划路径时,改进A*算法相对于传统A*算法在安全性、路径长度、路径平滑性、规划速度方面均有较大提升,且规划速度的提升最为明显。

3.2 岛礁区路径规划结果对比

在岛礁区,起始点和目标点之间有岛礁遮蔽时,采用传统A*算法、Theta*算法和改进A*算法进行路径规划,图7为路径规划结果,表2为3种算法路径规划结果关键参数对比。

图 7 岛礁区路径规划结果 Fig. 7 Results of path planning in island regions

表 2 岛礁区路径规划结果关键参数对比 Tab.2 Comparison of key parameters of path planning results in island regions

结果表明,从路径安全性方面来看,传统A*算法和Theta*算法规划的路径紧贴障碍物,与障碍物的最小距离为0,而改进A*算法通过引入斥力场的影响,生成的路径与障碍物的最小距离为2.5142倍单元栅格边长,提高了路径的安全性;但由于改进A*算法在规划路径时避免贴近障碍物,导致路径长度有所增加,相对于传统A*算法路径长度增加了4.6%;从转向点数量方面来看,改进A*算法表现最好,Theta*算法次之,A*算法最差,表明路径二次优化取得了比Theta*算法更好的结果,可以显著提升路径的平滑性;从规划速度方面来看,Theta*算法的可视性检查机制带来了难以忽视的计算成本,使其耗时远远大于A*算法和改进A*算法,而改进后的A*算法相对于传统A*算法搜索速度提升了28.1%,这主要得益于遍历方式和双向搜索机制的改进。综上所述,在岛礁区规划路径时,出于安全性的考虑改进A*算法规划的路径在长度上会有所增加,但在安全性、路径平滑性、规划速度方面有明显优势。

4 结 语

针对传统A*算法的缺点,结合无人艇特性提出了一种双向搜索机制改进A*算法,主要从评价函数、节点遍历方式、双向搜索机制、路径二次优化四方面进行改进。并选取开阔水域和岛礁区2种航行场景进行仿真分析,结果表明,开阔水域场景下改进A*算法在安全性、路径长度、路径平滑性、规划速度方面均有较大提升;岛礁区场景下改进A*算法在路径长度上会有所牺牲,但在安全性、路径平滑性、规划速度方面有明显优势。本文提出的改进A*算法为无人艇全局路径规划问题研究提供了新思路,但路径规划过程未考虑风、流等环境因素的影响,也不适用于动态障碍物环境,后续应当考虑无人艇在动态环境下的局部路径规划问题。

参考文献
[1]
PU H Y, LIU Y , LUO J, et al. Development of an unmanned surface vehicle for the emergency response mission of the 'sanchi' oil tanker collision and explosion accident[J]. Applied Sciences, 2020, 10 (8): 2704.
[2]
薛双飞, 谢磊, 王树武, 等. 海上风电场区船舶A*避碰寻路算法[J]. 中国航海, 2018, 41(2): 21-25.
XUE X F, XIE L, WANG S W, et al. A* algorithm for ships avoiding offshore wind farm facility[J]. Navigation of China, 2018, 41(2): 21-25.
[3]
DIJKSTRA E W. A note on two problems in connexion with graphs[J]. Numerische Mathematik, 1959, 1: 269-271. DOI:10.1007/BF01386390
[4]
HART P E , NILSSON N J , RAPHAEL B. A formal basis for the heuristic determination of minimum cost paths[J]. IEEE Transactions on Systems Science & Cybernetics, 1972, 4(2): 28−29.
[5]
LAVALLE S M. Rapidly-exploring random trees: a new tool for path planning[R]. 1999.
[6]
SONG C H. Global path planning method for USV system based on improved ant colony algorithm[J]. Applie Mechanics and Materials, 2014, 568-570: 785-788. DOI:10.4028/www.scientific.net/AMM.568-570.785
[7]
LAMINI C, BENHLIMA S, ELBEKRI A. Genetic algorithm based approach for autonomous mobile robot path planning[J]. Procedia Computer Science, 2018, 127: 180-189. DOI:10.1016/j.procs.2018.01.113
[8]
MA Y, HU M Q, YAN X P. Multi-objective path planning for unmanned surface vehicle with currents effects[J]. ISA Transactions, 2018, 75(2): 137-156.
[9]
武善平, 黄炎焱, 陈天德. 改进A*算法的水面舰艇静态航路规划[J]. 计算机工程与应用, 2022, 58(23): 307-315.
WU S P, HUANG Y Y, CHEN T D. Static route planning of surface ships based on improved A* algorithm[J]. Computer Engineering and Applications, 2022, 58(23): 307-315.
[10]
任晔, 王俊雄, 张小卿. 基于多因素改进A*算法的AUV路径规划研究[J]. 舰船科学技术, 2022, 44(11): 58-62.
REN Y, WANG J X, ZHANG X Q. Research on AUV path planning based on multi-factor improved A* algorithm[J]. Ship Science and Technology, 2022, 44(11): 58-62.
[11]
张浩, 庞宁林, 胡安康, 等. 基于改进A*算法融合角度信息的船舶路径规划[J]. 上海海事大学学报, 2023, 44(2): 6-10.
ZHANG H, PANG N L, HU A K, et al. Ship path planning based on improved A* algorithm and adding angle information[J]. Journal of Shanghai Maritime University, 2023, 44(2): 6-10.
[12]
冯辉, 杨皓杰, 徐海祥, 等. 基于改进变步长稀疏A*算法的无人艇路径规划方法[J/OL]. 武汉理工大学学报(交通科学与工程版) [2023-07-05].
FENG H, YANG H J, XU H X, et al. Path planning for unmanned surface vessel based on improved variable step sparse A* algorithm[J/OL]. Journal of Wuhan University of Technology (Transportation Science & Engineering)[2023-07-05].
[13]
WANG Y, LIANG X, Li B, et al. Research and implementation of global path planning for unmanned surface vehicle based on electronic chart[C]// International Conference on Mechatronics and Intelligent Robotics, 2017.
[14]
SONG R, LIU Y, BUCKNALL R. Smoothed A* algorithm for practical unmanned surface vehicle path planning[J]. Applied Ocean Research, 2019, 83: 9-20. DOI:10.1016/j.apor.2018.12.001
[15]
徐小强, 杨家鼎, 冒燕, 等. 基于速度障碍和改进人工势场算法的无人艇路径规划研究[J]. 武汉理工大学学报, 2022, 44(7): 96-102.
XU X Q, YANG J D, MAO Y, et al. Study on path planning of usv based on velocity obstacle and improved artificial potential field algorithm[J]. Journal of Wuhan University of Technology, 2022, 44(7): 96-102. DOI:10.3963/j.issn.1671-4431.2022.07.014
[16]
DANIEL K, NASH A, KOENIG S, et al. Theta*: any-angle path planning on grids[J]. Journal of Artificial Intelligence Research, 2010, 39(1): 533-579.
基于双向搜索改进A*算法的无人艇全局路径规划
梅梦磊, 陈顺洪, 菅永坤, 白立  &nb...