掌桥专利:专业的专利平台
掌桥专利
首页

一种基于改进A*-CCNN算法的无人艇路径规划方法

文献发布时间:2023-06-19 16:09:34



技术领域

本发明涉及无人艇技术领域,涉及一种基于改进A*-CCNN算法的无人艇路径规划方法。

背景技术

对浩瀚海洋的探索与开发的需求,促使人类利用水面和水下航行器进行水域环境的勘探和测量作业。而无人航行器是目前的最优选择,它有高效率、低成本等优点,可以应用于运输、勘探、搜救等多领域。无人艇在作业时,如何避开障碍、如何实现高效率作业主要依靠无人艇的路径规划技术。

无人艇的路径规划技术,是指无人艇参照某一指标(如工作代价值最低,路径长度最短,运算时间消耗最短等),在任务区域选择出一条可从起点连接到终点的最优或次优的避障路径。路径规划按照规划目的不同可分为点到点路径规划和全覆盖路径规划。其中,点到点路径规划是指无需考虑作业任务无人艇快速从起始位置移动到目标位置,目前广泛应用的是A*算法,可以快速、直接地得到最佳路径;全覆盖路径规划是指无人艇对目标水域进行探测作业时,需要通过提前规划路径使得无人艇探测范围可以覆盖整个作业水域,进而搜集整个水域的特定的信息,目前应用较广的是实时性好的BINN算法。

但是,无人艇属于欠驱动系统,易受到环境中风浪流等因素的影响,导致转弯半径较大,A*算法仅考虑距离导致规划所得路径转弯次数较多,造成规划路径不够平滑。而BINN算法计算过程复杂,耗费时间,且存在易发生路径偏离、起点条件理想化、对复杂地形适应度低等缺陷。然而,无人艇路径规划技术是无人艇实现运动、作业功能的根本保证,路径规划的优劣将直接影响无人艇完成任务的实时性及结果。所以,如何优化无人艇路径规划技术仍然是值得研究的问题。

发明内容

针对现有技术中的问题,本发明提供了一种基于改进A*-CCNN算法的无人艇路径规划方法,能够针对不同地形条件修改环境地形参数,可适应不同地形,使得规划出的路径更有规律。

为实现上述目的,本发明提供如下技术方案:

一种基于改进A*-CCNN算法的无人艇路径规划方法,包括以下步骤:

步骤一:初始化环境地图,对所述环境地图进行信息栅格化,设置单元栅格为无人艇的扫描宽度,对各神经元赋予初始属性,所述神经元的初始属性包括障碍物、起点及未覆盖;

步骤二:进行参数初始化,为全覆盖神经网络算法神经元活性值的计算做准备,设置参数a、b、c、D

步骤三:进入算法寻路循环,判断区域内神经元是否被全面覆盖;

步骤四:若所有神经元都已覆盖则算法完成跳出循环,若进入死区则进行死区逃离;若不是死区则选择活性值最大的点;

步骤五:跳出循环后对规划质量进行评估,计算区域覆盖的重复率、总路径长度、累计转角等数据。

进一步地,所述步骤二中,全覆盖神经网络算法神经元活性值计算公式如下:

其中,x

其中,a为神经元活性值上限;

得距离,ω

其中,D

进一步地,所述步骤三的具体判断步骤为:判断区域内是否还存在未遍历神经元,存在则进一步进行死区判断,未进入死区则遍历当前节点周边神经元并计算活性值,选取活性值最大的神经元作为下一节点,如果路径前方存在已覆盖神经元,则使用视线法进行判断,如果在扫描区域内存在空白神经元,则将空白神经元作为下一节点,否则保持不变。

进一步地,所述步骤三的具体判断方法为在BINN算法决策公式中引入覆盖趋势项优化决策公式。

进一步地,所述覆盖趋势项优化决策公式如下:

当前节点为p

进一步地,所述步骤四中,使用改进后的A*算法进行死区逃离。

进一步地,所述改进后的A*算法如下:

f(n)=h(n)+g(n)

式中,f(n)是在当前节点n所在位置的总代价,g(n)为引入转角代价后从初始起点S到当前节点n的路径代价,h(n)表示从当前节点n到终点D的路径代价估计值;

使用切比雪夫距离公式计算函数h(n):

该式表示移动节点允许上、下、左、右、左上、右上、左下、右下八个方向移动,上、下、左、右的移动代价为1,而左上、右上、左下、右下移动代价为斜对角距离为

引入路径转角代价后的函数g(n):

式中,

为对比A*算法与改进A*算法的路径规划效果,设置仿真环境为20×40的栅格地图,环境中沿水平方向布置4个垂直障碍,对比A*算法与引入路径转角代价的改进A*算法,不同算法路径规划与仿真结果如图7至图9及表1所示。

表1A*算法与改进A*算法仿真结果

由图7至图9及表1可知,A*算法虽然在复杂环境下能够得到一条最短路径,但由于不考虑路径转角,共产生7次转角,导致路径累计转角较大。改进A*算法相比A*算法,虽然路径长度有所增加,但转角次数和累计转角都大幅减少。对于采用不同转角度数转换比例C

进一步地,所述改进后的A*算法具体步骤如下:

步骤4-1:所述环境地图的信息栅格化后,根据已知的地图环境信息将区域内的栅格设置为障碍物、空白、起点以及终点属性;

步骤4-2:新建两个链表,所述两个链表为close链表和open链表,所述close链表记录已完成搜索栅格,所述open链表记录待搜索栅格,开始将起点S放入open表,并设置起点S的代价f(x

步骤4-3:找出open链表中最小的节点(x

步骤4-3-1:如果open链表为空表示无路可走,算法结束;

步骤4-3-2:当前节点为终点,从终点追踪父节点到达起点形成路径,算法完成;

步骤4-3-3:当前节点为障碍物或是已搜索的close节点则忽略该节点;

步骤4-3-4:当前节点在open链表中已经存在,重新计算g(x

步骤4-3-5:当前节点不是以上任何情况,计算该节点的f(x

步骤4-4:重复步骤4-3直到算法结束,根据每个节点间的父子关系形成一条规划路径。

与现有技术相比,本发明提供了一种基于改进A*-CCNN算法的无人艇路径规划方法,具备以下有益效果:

(1)本发明的路径规划方法基于生物激励神经算法(BINN),提出的一种全覆盖神经网络算法(Complete Coverage Neural Network,CCNN),该算法简化了活性值的计算方式和各部分组成,大大减少运算时间,在活性值计算中加入环境地形修正项,对空白神经元活性值过大的问题进行修正,算法适应性更强,可针对不同地形条件修改环境地形参数,可适应不同地形,使得规划出的路径更有规律,降低空白扫描区的形成,提高覆盖率。

(2)本发明通过在BINN算法决策公式中引入覆盖趋势项优化决策公式,可解决环境边缘转角处易发生偏航的问题,路径覆盖率更高;将移动自由度增加到8个方向,能够有效解决BINN算法的不足,且可大大减少了计算时间,仍具有良好的规划效果;并结合引入路径转角代价进行改进的A*算法以逃离死区。

(3)本发明针对A*算法中的代价评估函数只考虑路径的移动距离导致规划路径转弯次数较多,造型规划路径不够平滑的问题,通过在代价评估函数中加入路径转角代价对算法进行优化,减少了无人艇在路径中的转弯次数,打到了路径的平滑目标,使得无人艇选取累计转弯角度最小和路径距离最短的路径作为最优路径,避免了更多的能量消耗,从而提高了无人艇航行性能,提供了航行性能。

(4)本发明采用改进A*算法逃离死区,当路径陷入死区时,寻找当前最靠近死区的空白神经元作为逃离点,通过改进A*算法规划前往逃离点的路径,帮助无人艇更快地逃离死区,增强了死区逃离能力。

附图说明

图1为本发明的路径规划方法的流程图;

图2为现有技术中无覆盖趋势项的情况下路径规划结果图(图中S表示路径的起点,D表示路径的终点,C表示死区,Z表示障碍物);

图3为引入本发明的覆盖趋势项的路径规划结果图(图中S表示路径的起点,D表示路径的终点,C表示死区,Z表示障碍物);

图4为现有技术中无视线法的情况下的路径规划结果图(图中S表示路径的起点,D表示路径的终点,C表示死区,Z表示障碍物);

图5为加入本发明的视线法的路径规划结果图(图中S表示路径的起点,D表示路径的终点,Z表示障碍物);

图6为本发明中CCNN算法逃离死区效果图(图中S表示路径的起点,D表示路径的终点,C表示死区,Z表示障碍物);

图7为现有技术中A*算法路径规划结果图;

图8为本发明中改进A*算法

图9为本发明中改进A*算法

图10为本发明中无障碍环境下BINN算法路径规划结果图(图中S表示路径的起点,D表示路径的终点);

图11为本发明中无障碍环境下采用现有决策公式的改进BINN算法路径规划结果图(图中S表示路径的起点,D表示路径的终点);

图12为本发明中无障碍环境下CCNN算法路径规划结果(图中S表示路径的起点,D表示路径的终点);

图13为本发明中复杂环境下(复杂环境为相对无障碍环境而言,尤其是障碍神经元正好位于覆盖路径中的情况)BINN算法路径规划结果图(图中S表示路径的起点,D表示路径的终点,深灰栅格表示障碍物);

图14为本发明中复杂环境下采用现有决策公式的改进BINN算法路径规划结果图(图中S表示路径的起点,D表示路径的终点,深灰栅格表示障碍物);

图15为本发明中复杂环境下CCNN算法路径规划结果(图中S表示路径的起点,D表示路径的终点,C表示死区,深灰栅格表示障碍物);

图16为本发明实施例中二值化栅格处理后的实际水域地图;

图17为本发明实施例中BINN算法路径规划结果图;

图18为本发明实施例中采用现有决策公式的改进BINN算法路径规划结果图;

图19为本发明实施例中CCNN算法路径规划结果图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的路径规划方法基于的整个系统由无人艇以及所搭载的设备构成,具体需搭载的设备如下:

除了保证无人艇正常航行的设备外,本发明要求无人艇搭载有:GPS定位系统,无线通讯天线、惯性导航、摄像头、探测仪模块等。通过惯性导航系统和GPS来获取定位信息,通过探测仪获取流速信息。

如图1所示,本发明的无人艇路径规划方法,为融合改进A*算法逃离死区的全覆盖神经网络(CCNN)算法,包括以下步骤:

步骤一:初始化环境地图,对环境地图进行信息栅格化,设置单元栅格为无人艇的扫描宽度,对各神经元赋予初始属性,神经元的初始属性包括障碍物、起点及未覆盖。

步骤二:进行参数初始化,为全覆盖神经网络算法神经元活性值的计算做准备,设置参数a、b、c、D

在本实施例的一种具体实施方式中,步骤二中,全覆盖神经网络算法神经元活性值计算公式如下:

其中,x

其中,a为神经元活性值上限;

几里得距离,ω

其中,D

步骤三:进入算法寻路循环,判断区域内神经元是否被全面覆盖。

在本实施例的一种具体实施方式中,步骤三的具体判断步骤为:判断区域内是否还存在未遍历神经元,存在则进一步进行死区判断,未进入死区则遍历当前节点周边神经元并计算活性值,选取活性值最大的神经元作为下一节点,如果路径前方存在已覆盖神经元,则使用视线法进行判断,如果在扫描区域内存在空白神经元,则将空白神经元作为下一节点,否则保持不变。

在本实施例的一种具体实施方式中,步骤三的具体判断方法为在BINN算法决策公式中引入覆盖趋势项优化决策公式。

在本实施例的一种具体实施方式中,覆盖趋势项优化决策公式如下:

当前节点为p

改进A*-CCNN算法优化了BINN算法的决策公式,并引入了覆盖趋势项。其中Δθ

当覆盖路径中出现障碍神经元时,CCNN算法会规划出一条避障路径,绕过障碍物后会返回原有覆盖路径继续扫描,但由于已覆盖神经元活性值较低,路径为避免重复扫描会绕开已覆盖的神经元,造成之后的路径发生持续转折,如图4所示。针对这一问题,引入视线法(LOS)进行改进,当路径点前方是已覆盖神经元时,采用视线法对前进方向的神经元进行扫描,如果存在空白神经元,则跨过前方已覆盖神经元到达空白神经元,继续覆盖规划剩下区域,虽然路径重复率有所上升,但转角次数降低,整体规律性更好,如图5所示。

步骤四:若所有神经元都已覆盖则算法完成跳出循环,若进入死区则进行死区逃离;若不是死区则选择活性值最大的点。

在本实施例的一种具体实施方式中,步骤四中,使用改进后的A*算法进行死区逃离。

本发明的改进后的A*算法逃离死区,当路径陷入死区时,寻找当前最靠近死区的空白神经元作为逃离点,通过改进A*算法规划前往逃离点的路径,逃离死区。使用改进后的A*算法逃离死区的路径规划结果如图6,图中左下角的栅格为死区。

步骤五:跳出循环后对规划质量进行评估,计算区域覆盖的重复率、总路径长度、累计转角等数据。

在本实施例的一种具体实施方式中,改进后的A*算法如下:

f(n)=h(n)+g(n)

式中,f(n)是在当前节点n所在位置的总代价,g(n)为引入转角代价后从初始起点S到当前节点n的路径代价,h(n)表示从当前节点n到终点D的路径代价估计值;

使用切比雪夫距离公式计算函数h(n):

该式表示移动节点允许上、下、左、右、左上、右上、左下、右下八个方向移动,上、下、左、右的移动代价为1,而左上、右上、左下、右下移动代价为斜对角距离为

引入路径转角代价后的函数g(n):

式中,

为对比A*算法与改进A*算法的路径规划效果,设置仿真环境为20×40的栅格地图,环境中沿水平方向布置4个垂直障碍,对比A*算法与引入路径转角代价的改进A*算法,不同算法路径规划与仿真结果如图7至图9及表1所示。

表1 A*算法与改进A*算法仿真结果

由图7至图9及表1可知,A*算法虽然在复杂环境下能够得到一条最短路径,但由于不考虑路径转角,共产生7次转角,导致路径累计转角较大。改进A*算法相比A*算法,虽然路径长度有所增加,但转角次数和累计转角都大幅减少。对于采用不同转角度数转换比例C

在本实施例的一种具体实施方式中,改进后的A*算法具体步骤如下:

步骤4-1:环境地图的信息栅格化后,根据已知的地图环境信息将区域内的栅格设置为障碍物、空白、起点以及终点属性;

步骤4-2:新建两个链表,两个链表为close链表和open链表,close链表记录已完成搜索栅格,open链表记录待搜索栅格,开始将起点S放入open表,并设置起点S的代价f(x

步骤4-3:找出open链表中最小的节点(x

步骤4-3-1:如果open链表为空表示无路可走,算法结束;

步骤4-3-2:当前节点为终点,从终点追踪父节点到达起点形成路径,算法完成;

步骤4-3-3:当前节点为障碍物或是已搜索的close节点则忽略该节点;

步骤4-3-4:当前节点在open链表中已经存在,重新计算g(x

步骤4-3-5:当前节点不是以上任何情况,计算该节点的f(x

步骤4-4:重复步骤4-3直到算法结束,根据每个节点间的父子关系形成一条规划路径。

设置BINN算法模型参数如下:A=10,B=D=1,E=100,μ=1,r

表2无障碍环境下不同算法仿真结果

由图10至图12以及表2可知,当起点位置位于(1,10)时,BINN算法规划出的路径呈直角状,每当路径在抵达底层后都转向左方向,并没有按照一定趋势进行规划,造成路径反复转折,累计转角达到了2340°,采用现有决策公式的改进BINN算法规划出的路径,先是直接转向左向,之后以垂直方向为覆盖趋势进行规划,相比BINN算法有了一定进步,但仍然产生了路径偏航,累计转角1710°。CCNN算法规划出的路径以垂直方向为覆盖趋势方向,整体路径较为规律,累计转角1620°,是三种算法中最小的。同时,由于简化了活性值计算公式,计算时间大大减少,只有1.6s,相比于BINN算法规划时间减少了99%。

针对复杂地形环境,尤其是障碍神经元正好位于覆盖路径中的情况,BINN算法表现不佳,为了验证CCNN算法在复杂环境下的路径规划效果,现进行如下仿真:保持BINN和CCNN算法模型参数不变,BINN算法采用4移动自由度曼哈顿距离公式的改进A*法进行死区逃离,CCNN算法采用8自由度切比雪夫距离公式的改进A*算法进行死区逃离,仿真环境设置为10×20栅格地图,地图内布置有路径中障碍、边缘障碍等,起点位置(1,1),路径规划及仿真结果如图13至图15及表3所示,图中标记C的栅格表示死区。

表3复杂障碍环境下不同算法仿真结果

从图13至图15以及表3可以看出,BINN算法在空白区域覆盖效果良好,在地图左下角和右上角的边缘障碍处规划出的路径效果一般,在左下角障碍处产生了1处死区。在2处路径中障碍,BINN算法规划出的路径效果较差,产生了2处死区和部分重复路径,尤其是地图上方的路径比较混乱,没有按照覆盖趋势进行规划,重复率为8.91%,累计转角为6210°。采用现有决策公式的改进BINN算法规划出的路径在整体规划趋势上相较于BINN算法有所改进,但其改进决策公式完全根据栅格索引值进行判断,路径总会优先覆盖低索引值的区域,忽视了复杂地形带来的变化,因此产生了7处死区。路径中经常出现转向低索引值栅格陷入死区,后调转180度逃离死区的情况,造成累计转角值和重复率大幅度提高,重复率达到了20.69%,累计转角达到了13230°。路径的反复也造成计算时间过长,达到了1161s,远大于BINN算法和CCNN算法。CCNN算法在复杂环境下规划出的路径整体效果较好,大部分路径都较贴合整体覆盖趋势,由于引入了环境地形修正项和覆盖趋势项,算法在规划路径时充分考虑到地形和路径的影响,只产生了1处死区,不管是路径长度、累计转角和重复率都是三种算法中最低的,其中累计转角相比于BINN算法减少了24.6%,重复率减少了53.2%,同时算法规划时间大幅度减少,相比于BINN算法减少了99.6%,规划效率显著提升。

为验证本发明提出的基于改进A*-CCNN算法的无人艇路径规划策略在实际水域运行的效果,设置一块500m×1000m的作业水域,该水域中存在大小不同的岛屿及岸线,对实际水域环境进行图像二值及栅格化处理后的图像如图16所示。

设置BINN算法模型参数如下:A=10,B=D=1,E=100,μ=1,r

表4实际海域环境下不同算法仿真结果

由图17至图19及表4可知,BINN算法在开始时覆盖趋势为东西方向,在地图右侧空白区域规划出的路径效果正常,但是在右侧障碍附近产生了多次转折。地图左侧东向距离0~500m的范围内,覆盖趋势转为南北方向,在东西方向路径处造成了多处转折。在南向50~150m、东向0~200m的范围内,规划路径出现了较大转弯,造成累计转角增加,路径总长度178,累计转角4500°,重复率3.3%,规划时间724s。采用文献

相比于BINN算法,该算法简化了活性值的计算方式和各部分组成,在活性值计算中加入环境地形修正项,同时引入覆盖趋势项优化决策公式。当覆盖路径中出现障碍神经元时,CCNN算法会规划出一条避障路径,绕过障碍物后会返回原有覆盖路径继续扫描。当路径点前方是已覆盖神经元时,采用视线法LOS对前进方向的神经元进行扫描,如果存在空白神经元,则跨过前方已覆盖神经元到达空白神经元,继续覆盖规划剩下区域。虽然路径重复率相比较于BINN算法有所上升,但转角次数降低,整体规律性更好。

综上所述,CCNN算法可有效解决BINN算法计算方式复杂耗时、易发生路径偏离、起点条件理想化、对复杂地形适应度低等缺陷,可将移动自由度增加到8个方向,且大大减少了计算时间,并利用改进A*算法逃离死区,适合无人艇在复杂水域环境下进行快速路径规划。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

技术分类

06120114721828