一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于改进A*算法的智能船舶路径规划方法与流程

2022-02-22 04:27:36 来源:中国专利 TAG:

一种基于改进a*算法的智能船舶路径规划方法
技术领域
1.本发明涉及船舶路径规划技术领域,尤其涉及一种基于改进a*算法的智能船舶路径规划方法。


背景技术:

2.智能无人船舶是一种无人驾驶船舶,拥有自主航行、智能机舱、能效管理、货物运输和智能集成平台;船舶自主航行与传统的人为操控的驾驶模式相比,具有安全系数高、经济环保、绿色节能以及自动化程度高等的优点,而船舶自主航行的核心即为自主避障路径规划;船舶自主航行决策系统中,其主要任务是在具有障碍物的环境内或航行环境改变时,船舶需要根据航行环境临时调整局部路线,寻找一条恰当的从起始点到终点的运动路径,以保证船舶自主航行的过程中安全、无碰撞地绕开所有障碍物,并且路径最短或路径最优等,经检索,中国专利号cn108225326a公开了一种基于a*算法的agv路径规划方法,该发明方法虽然路径规划速度较快,但使用场景受限,无法根据地图复杂程度自适应地提高搜索效率,灵活性较低;智能船舶是一种自动驾驶船舶,拥有自主航行、智能机舱、能效管理、货物运输和智能集成平台;船舶自主航行与传统的人为操控的驾驶模式相比,具有安全系数高、经济环保、绿色节能以及自动化程度高等的优点,而船舶自主航行的核心即为自主避障路径规划;船舶自主航行决策系统中,其主要任务是在具有障碍物的环境内或航行环境改变时,船舶需要根据航行环境临时调整局部路线,寻找一条恰当的从起始点到终点的运动路径,以保证船舶自主航行的过程中安全、无碰撞地绕开所有障碍物,并且路径最短或路径最优等;目前,智能船舶路径规划大多采用a*算法,其是dijkstra算法的改进,dijkstra算法由埃德斯
·
怀贝
·
迪杰斯特拉提出,该算法被誉为“最经典的寻路算法”,其是一种完备的搜索算法,即只要路径存在,就一定能够找到一条最短路径,但在复杂地图和大规模地图中,该算法运算量较大且效率很低,而a*算法的产生虽然减少了运算量,提高了算法的效率,但仍存在规划路径效果不好的情况;因此,发明出一种基于改进a*算法的智能船舶路径规划方法变得尤为重要。
3.现有智能船舶路径规划方法大多采用a*算法进行线路规划导航,其相较于dijkstra算法,虽然减少了运算量,提高了算法的效率,但无法根据地图复杂程度自适应地提高搜索效率,灵活性较低。
4.因此,有必要提供一种基于改进a*算法的智能船舶路径规划方法以解决上述技术问题。


技术实现要素:

5.为解决上述技术问题,本发明提供一种保证了算法的灵活性和快速性,还可以根据地图复杂程度自适应地提高搜索效率的基于改进a*算法的智能船舶路径规划方法。
6.本发明提供的基于改进a*算法的智能船舶路径规划方法包括以下步骤:
7.s1、建立栅格地图,并将起始点s和障碍点分别放入open链表和closed链表中;
8.s2、确认起始点和目标点并根据夹角θ舍弃8个搜索方向中的3个搜索方向;
9.s3、检查open链表中的扩展节点有无目标点,若没有目标点,则跳到步骤四;若存在目标点,则利用双向folyd算法优化路径平滑度,同时将目标点加入closed链表中,保存搜索路径并结束算法;
10.s4、将当前节点设置为父节点,并将其转移到closed链表中;
11.s5、根据公式根据公式计算各个扩展节点的值,并选择最小的点作为新节点,同时,将其余扩展节点都存放到closed链表中;
12.s6、确认open链表是否为空表,若不为空表,则返回步骤三,若closed链表已空,则路径不存在,算法结束。
13.为了达到方便存放已经生成但未检测的节点的效果,所述步骤s1中,所述open链表用于存放已经生成但未检测的节点。
14.为了达到方便存放已检测过但因为未满足要求而不被考虑的节点的效果,所述步骤s1中,所述closed链表用于存放已检测过但因为未满足要求而不被考虑的节点。
15.为了达到方便对夹角θ进行计算的效果,所述步骤二所述夹角θ的具体计算过程如下:
16.1:连接当前节点和目标节点,测算其夹角θ;
17.2:根据步骤s1所述夹角θ和关系表,舍弃3个搜索方向,所述关系表具体如下:
[0018][0019]
3:在路径搜索时,将夹角θ引入启发信息。
[0020]
为了达到方便进行等级划分的效果,所述步骤s3中扩展节点采用按等级高低对子
节点排序方法进行扩展,设当前节点为(o),周围节点分别为(a、b、c、d、e、f、g、h),进行等级的划分,与当前节点在正东、正北、正西、正南4个方向上紧邻的节点划为高级组;与当前节点在对角线方向上邻接的节点划为普通组,在子节点生成的过程中,首先搜索高级组中的子节点,然后根据选择规则生成普通组的子节点。
[0021]
为了达到方便进行优化路径平滑度的效果,步骤s3所述双向folyd优化路径平滑度的具体过程如下:
[0022]
1.1:对路径中同一直线上的中间冗余点进行删除,仅保留起始点,拐点和目标点;
[0023]
1.2:从起始点s开始,在保留节点pi,pj之间每k步取一个节点,判断取的节点和上一路径节点之间有无障碍物,若有,则路径节点不改变;若无,则计算障碍物与节点pj,pk连线之间连线的距离;
[0024]
1.3:将双向平滑的理念引入floyd算法中,从目标点t,反方向取点判断安全距离,具体判别法和步骤ss2相同;
[0025]
1.4:输出路径,算法结束。
[0026]
为了达到方便进行计算的效果,步骤五所述公式为了达到方便进行计算的效果,步骤五所述公式为改进评价函数,其启发函数中引入障碍率pz,所述启发函数具体公式如下:
[0027][0028]dx
=∣xs-xr∣
[0029]dy
=∣ys-yr∣
[0030]
为了达到方便进行计算的效果,所述启发函数公式中:xs,ys为起始点s的横纵坐标;xr,yr为目标点t的横纵坐标,pz为障碍率。
[0031]
为了达到方便对故障率进行计算的效果,所述障碍率pz的公式如下:
[0032][0033]
为了达到方便公式进行代入计算的效果,所述障碍率pz的公式中:m为障碍栅格个数,pz∈(0,1)。
[0034]
与相关技术相比较,本发明提供的基于改进a*算法的智能船舶路径规划方法具有如下有益效果:
[0035]
1、本发明相较于传统的a*算法,在障碍物较少的简单地图中,能够减少生成的搜索空间,提高搜索路径的速度;而在障碍物较多的复杂地图中,障碍率pz增大,相对减小,此时生成的搜索空间增加,提升了搜索精度,通过对启发函数的改进,不仅保证了算法的灵活性和快速性,还可以根据地图复杂程度自适应地提高搜索效率,解决了现有智能船舶路径规划方法大多采用a*算法进行线路规划导航,其相较于dijkstra算法,虽然减少了运算量,提高了算法的效率,但无法根据地图复杂程度自适应地提高搜索效率,灵活性较低的问题;
附图说明
[0036]
图1为本发明提供的基于改进a*算法的智能船舶路径规划方法的一种较佳实施例的方法流程图。
具体实施方式
[0037]
下面结合附图和实施方式对本发明作进一步说明。
[0038]
请结合参阅图1,其中,图1为本发明提供的基于改进a*算法的智能船舶路径规划方法的一种较佳实施例的方法流程图。基于改进a*算法的智能船舶路径规划方法包括以下步骤:
[0039]
s1、建立栅格地图,并将起始点s和障碍点分别放入open链表和closed链表中;
[0040]
s2、确认起始点和目标点并根据夹角θ舍弃8个搜索方向中的3个搜索方向;
[0041]
s3、检查open链表中的扩展节点有无目标点,若没有目标点,则跳到步骤四;若存在目标点,则利用双向folyd算法优化路径平滑度,同时将目标点加入closed链表中,保存搜索路径并结束算法;
[0042]
s4、将当前节点设置为父节点,并将其转移到closed链表中;
[0043]
s5、根据公式根据公式计算各个扩展节点的值,并选择最小的点作为新节点,同时,将其余扩展节点都存放到closed链表中;
[0044]
s6、确认open链表是否为空表,若不为空表,则返回步骤三,若closed链表已空,则路径不存在,算法结束。
[0045]
在具体实施过程中,如图1所示,步骤s1中,open链表用于存放已经生成但未检测的节点。
[0046]
步骤s1中,closed链表用于存放已检测过但因为未满足要求而不被考虑的节点。
[0047]
步骤二夹角θ的具体计算过程如下:
[0048]
1:连接当前节点和目标节点,测算其夹角θ;
[0049]
2:根据步骤s1夹角θ和关系表,舍弃3个搜索方向,关系表具体如下:
[0050][0051]
3:在路径搜索时,将夹角θ引入启发信息。
[0052]
步骤s3中扩展节点采用按等级高低对子节点排序方法进行扩展,设当前节点为(o),周围节点分别为(a、b、c、d、e、f、g、h),进行等级的划分,与当前节点在正东、正北、正西、正南4个方向上紧邻的节点划为高级组;与当前节点在对角线方向上邻接的节点划为普通组,在子节点生成的过程中,首先搜索高级组中的子节点,然后根据选择规则生成普通组的子节点。
[0053]
步骤s3双向folyd优化路径平滑度的具体过程如下:
[0054]
1.1:对路径中同一直线上的中间冗余点进行删除,仅保留起始点,拐点和目标点;
[0055]
1.2:从起始点s开始,在保留节点pi,pj之间每k步取一个节点,判断取的节点和上一路径节点之间有无障碍物,若有,则路径节点不改变;若无,则计算障碍物与节点pj,pk连线之间连线的距离;
[0056]
1.3:将双向平滑的理念引入floyd算法中,从目标点t,反方向取点判断安全距离,具体判别法和步骤ss2相同;
[0057]
1.4:输出路径,算法结束。
[0058]
步骤五公式为改进评价函数,其启发函数中引入障碍率pz,启发函数具体公式如下:
[0059]
[0060]dx
=∣xs-xr∣
[0061]dy
=∣ys-yr∣
[0062]
需要说明的是:启发函数公式中:xs,ys为起始点s的横纵坐标;xr,yr为目标点t的横纵坐标,pz为障碍率。
[0063]
障碍率pz的公式如下:
[0064][0065]
需要说明的是:障碍率pz的公式中:m为障碍栅格个数,pz∈(0,1)。
[0066]
具体的,该启发函数的取值经过如下分析:
[0067]
1.当h*(n)=0时,f*(n)=g*(n),即dijkstra算法。
[0068]
2.若h*(n)<g*(n),启发信息较少,此时,a*算法扩展的节点就会增多,算法的运算速度变慢。
[0069]
3.若h*(n)=g*(n),那么a*算法将不会扩展无关节点,算法运算速度飞快。
[0070]
4.若h*(n)>g*(n),启发信息较多,此时,a*算法扩展的节点就会减少,难以找到最佳路径。
[0071]
5.若h*(n)>>g*(n),此时,g*(n)对f*(n)的影响忽略不计,即g*(n)=0,这种情况下,算法运行速度很快,但却难以寻得最短路径。
[0072]
步骤六:确认open链表是否为空表,若不为空表,则返回步骤三,若closed链表已空,则路径不存在,算法结束。
[0073]
本实施例将通过仿真实验针对本技术改进的a*算法和传统的a*算法进行数据比较,其具体数据见下表:
[0074][0075]
通过上表中的仿真实验数据可以看出,经过各项改进后的a*算法运算的速度较传统a*算法更快;规划的路径相比传统a*算法,解决了斜穿障碍物顶点的问题,同时,转折次数减少了35.42%,节点搜索数减少了65.86%,证明了改进算法的优势。
[0076]
本发明提供的基于改进a*算法的智能船舶路径规划方法的工作原理如下:
[0077]
首先建立栅格地图,并将起始点s和障碍点分别放入open链表和closed链表中;再确认起始点和目标点并根据夹角θ舍弃8个搜索方向中的3个搜索方向;接着检查open链表中的扩展节点有无目标点,若没有目标点,则跳到步骤四;若存在目标点,则利用双向folyd算法优化路径平滑度,同时将目标点加入closed链表中,保存搜索路径并结束算法;然后将当前节点设置为父节点,并将其转移到closed链表中;再根据公式根据公式计算各个扩展节点的值,并选择最小的点作为新节点,同时,将其余扩展节点都存放到closed链表中;最后确认open链表是否为空表,若不为空表,则返回步骤三,若closed链表已空,则路径不存在,算法结束,相较于传统的a*算法,在障碍物较少的简单地图中,能够减少生成的搜索空间,提高搜索路径的速度;而在障碍物较多的复杂地图中,障碍率pz增大,相对减小,此时生成的搜索空间增加,提升了搜索精度,通过对启发函数的改进,不仅保证了算法的灵活性和快速性,还可以根据地图复杂程度自适应地提高搜索效率,解决了现有智能船舶路径规划方法大多采用a*算法进行线路
规划导航,其相较于dijkstra算法,虽然减少了运算量,提高了算法的效率,但无法根据地图复杂程度自适应地提高搜索效率,灵活性较低的问题。
[0078]
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0079]
以上仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献