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

一种基于人工势场和跳点搜索优化的船舶航线规划方法

文献发布时间:2024-04-18 19:58:53


一种基于人工势场和跳点搜索优化的船舶航线规划方法

技术领域

本发明属于智能船舶航线规划技术领域,具体来说,涉及一种基于人工势场和跳点搜索优化的船舶航线规划方法。

背景技术

在智能船舶领域中,航线规划是智能船舶自主航行的核心内容之一。航线规划是指在给定航线起点、目标点和海洋环境信息的前提下,在起点和目标点间利用某种航线规划算法规划出一条从起点开始避开障碍物到达目标点的最优或次优航线。目前常用的航线规划算法有A*算法、RRT算法、蚁群算法、遗传算法和人工势场算法等,其中人工势场算法由于其实时性高、计算量小、规划的航线较平滑等优点被广泛应用于船舶航线规划领域。

人工势场算法的基本思想是通过构建虚拟势场来引导船舶移动。由目标点处产生引力场,障碍物处产生斥力场,引力吸引船舶向目标点移动,斥力使船舶避开障碍物,船舶在引力和斥力的共同作用下完成航线规划任务。然而,传统人工势场算法在航线规划时存在陷入局部极小值导致船舶航线规划任务失败的问题。其中,局部极小值是指当船舶航行至海图环境中的某一处时,由于船舶所受引力和斥力相等即合力为零导致船舶未到达目标点而提前停止运动,或引力与斥力共线导致船舶在局部范围内徘徊的现象。分析其主要原因是船舶在陷入局部极小值即合力为零或引力与斥力共线时,船舶无法自主地更改航行方向,从而导致航线规划任务失败。

发明内容

本发明针对传统人工势场算法在船舶航线规划中存在陷入局部极小值导致船舶航线规划任务失败的问题,提出了一种基于人工势场和跳点搜索优化的船舶航线规划方法,该方法通过在传统人工势场算法中结合跳点搜索(Jump Point Search,JPS)规则对传统人工势场算法进行改进,使改进后的人工势场算法能够在陷入局部极小值时通过跳点搜索规则脱离局部极小值约束,从而完成航线规划任务到达目标点。

本发明采用的技术手段如下:

一种基于人工势场和跳点搜索优化的船舶航线规划方法,包括:

步骤1:初始化人工势场算法的相关参数,所述人工势场算法的相关参数包括:船舶航线规划空间地图、起点坐标、目标点坐标、引力场增益系数、斥力场增益系数以及障碍物的斥力影响范围半径;

步骤2:执行人工势场算法进行船舶航线规划,并在船舶的航线规划过程中判断人工势场算法是否陷入局部极小值,若陷入局部极小值则执行步骤3,否则移动到下一位置继续执行步骤2的寻路操作,若算法规划至目标点执行步骤5;

步骤3:将局部极小值输入跳点搜索规则中,执行步骤4;

步骤4:基于跳点搜索规则对扩展的节点进行筛选,保留改变搜索方向的节点作为跳点,将跳点作为下一位置继续执行步骤2的寻路操作;跳点搜索方式包括:如果局部极小值点水平方向、垂直方向和对角线方向都可以移动,则首先在水平方向和垂直方向搜索跳点,在水平方向或垂直方向搜索过程中,遇到障碍或到达地图边界,则搜索过程停止,且搜索路径上的所有节点都被忽略,当水平方向或垂直方向搜索失败时,则进行对角线方向搜索;

步骤5:输出船舶航线坐标集合。

较现有技术相比,本发明具有以下优点:

本发明针对传统人工势场算法在航线规划过程中存在陷入局部极小值从而导致航线规划失败的问题对传统人工势场算法进行改进。通过在传统人工势场算法中结合跳点搜索规则,可以使船舶在陷入局部极小值时通过跳点脱离局部极小值的约束完成航线规划任务到达目标点。最后,在合力为零和引力与斥力共线的场景下分别进行对比实验并验证了本发明的有效性。实验结果表明,本发明提出的基于人工势场和跳点搜索优化的船舶航线规划方法解决了传统人工势场算法陷入局部极小值导致航线规划任务失败的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明基于人工势场和跳点搜索优化的船舶航线规划方法流程图。

图2为船舶受力示意图。

图3为合力为零示意图。

图4为引力与斥力共线示意图。

图5a为直线移动强制邻节点示意图。

图5b为对角线移动强制邻节点示意图。

图6a为直线移动节点修剪示意图。

图6b为对角线移动节点修剪示意图。

图7为跳点搜索示意图。

图8为针对合力为零的场景传统人工势场算法规划的航线示意图。

图9为针对合力为零的场景本发明方法规划的航线示意图。

图10为针对引力与斥力共线的场景传统人工势场算法规划的航线示意图。

图11为针对引力与斥力共线的场景本发明方法规划的航线示意图。

具体实施方式

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

本发明提出了一种基于人工势场和跳点搜索优化的船舶航线规划方法,该方法通过在传统人工势场算法中结合跳点搜索规则解决了传统人工势场算法在陷入局部极小值时无法自主地更改船舶航行方向导致航线规划任务失败的问题。本方法的流程如图1所示,具体步骤如下:

步骤1:初始化人工势场算法的相关参数。

输入人工势场算法的相关参数:包括船舶航线规划空间地图map、起点坐标start、目标点坐标goal、引力场增益系数k

步骤2:基于人工势场算法执行船舶航线规划任务。

基于人工势场算法执行船舶的航线规划任务,并在船舶的航线规划过程中判断人工势场算法是否陷入局部极小值。若陷入局部极小值则执行步骤3,否则移动到下一位置继续执行步骤2的寻路操作;若算法规划至目标点执行步骤5。

人工势场算法通过构建虚拟势场来完成船舶航行环境的搭建,船舶在虚拟势场中所受的力是由势场的负梯度产生的,船舶所处环境的总势场函数如公式(1)所示。

U=U

其中,U表示船舶所处环境的总势场,U

F=F

其中,F为船舶在虚拟势场中所受的合力,F

(1)引力场

引力场由目标点处产生并作用于船舶,其引力势场的大小与船舶所处位置和目标点间的距离相关,船舶与目标点间的距离增大时引力势场增大,船舶与目标点间的距离减小时引力势场减小,当引力势场为零时则说明船舶已经到达目标点,引力势场函数如公式(3)所示。

其中,U

F

其中,F

(2)斥力场

斥力场由障碍物处产生并作用于船舶,其斥力势场的大小与船舶所处位置和障碍物间的距离相关,当船舶进入到障碍物的斥力势场影响范围内时,船舶所受斥力势场的大小随船舶与障碍物间距离的增大而减小,随船舶与障碍物间距离的减小而增大;当船舶不在障碍物的斥力势场影响范围内时,船舶所受斥力势场为零,斥力势场函数如公式(5)所示。

其中,U

其中,F

步骤3:局部极小值判断。

对局部极小值进行判断,并将局部极小值(x

当船舶在海图环境中航行时,若航行至某处出现引力与斥力相等即合力为零或引力与斥力共线的情况,会导致人工势场算法陷入局部极小值从而使船舶的航线规划任务失败。局部极小值的判断方式如公式(7)和公式(8)所示。

(1)合力为零

其中,F(s)为船舶在节点s处所受的合力,F

(2)引力与斥力共线

||∠F

其中,∠F

步骤4:基于跳点搜索规则得到跳点。

在局部极小值(x

JPS(Jump Point Search)算法提出了强制邻节点和跳点的概念,并定义了节点修剪和跳点搜索的规则。通过跳点搜索规则可以对算法扩展的节点进行筛选,只保留改变搜索方向的节点即跳点。

(1)强制邻节点概念

如果节点n是节点x的邻节点,节点parent(x)是节点x的父节点,且节点x的邻节点中存在障碍;若从parent(x)经过x到n的路径长度比其他任何从parent(x)到n不经过x的路径短,则n为x的强制邻节点,x为n的跳点。强制邻节点的判断方式如公式(9)所示。

len{s′=(x)}>len{s=()} (9)

其中,函数len表示某一段路径的长度,s′表示一条以parent(x)为起点,n为终点,且不经过x的路径长度;s表示一条以parent(x)为起点,n为终点,经过x的路径长度。当s′>s时,满足条件的x的邻节点n为强制邻节点。强制邻节点示意图如图5所示。

(2)跳点概念

如果节点x是起点或目标点,则x是跳点;

如果节点x有强制邻节点,则x是跳点;

如果parent(x)到x是水平或者垂直移动,并且x经过水平或者垂直方向移动可以到达跳点,则x是跳点;

如果parent(x)到x是对角线移动,并且x经过水平或者垂直方向移动可以到达跳点,则x是跳点。

(3)节点修剪规则

直线移动时,对于x的每一个邻节点n,依据公式(10)进行修剪。

len{s′=(x)}≤len{s=()} (10)

其中,函数len表示某一段路径的长度,n为x的邻节点,parent(x)为x的父节点。s′表示一条以parent(x)为起点,n为终点,且不经过x的路径长度;s表示一条以parent(x)为起点,n为终点,经过x的路径长度。当s′≤s时,对x的邻节点n进行修剪。直线移动节点修剪示意图如图6(a)所示。

对角线移动时,对于x的每一个邻节点n,依据公式(11)进行修剪。

len{s′=(x)})} (11)

其中,函数len表示某一段路径的长度,n为x的邻节点,parent(x)为x的父节点。s′表示一条以parent(x)为起点,n为终点,且不经过x的路径长度;s表示一条以parent(x)为起点,n为终点,经过x的路径长度。当s′

(4)跳点搜索规则

在搜索过程中,如果水平方向、垂直方向和对角线方向都可以移动,则首先在水平方向和垂直方向搜索跳点,然后在对角线方向搜索跳点。在水平方向或垂直方向搜索过程中,遇到障碍或到达地图边界,则搜索过程停止,且搜索路径上的所有节点都被忽略,当水平方向或垂直方向搜索失败时,则进行对角线方向搜索。跳点搜索的规则如公式(12)所示。

其中,公式

1)节点y为目标点。

2)节点y含有至少一个强制邻节点。

3)若

步骤5:输出船舶航线坐标集合。

当算法规划到目标点时,航线规划任务结束,输出算法规划的船舶航线。

综上所述,本发明提出了一种基于人工势场和跳点搜索优化的船舶航线规划方法,该方法通过在传统人工势场算法中结合跳点搜索规则解决了传统人工势场算法在陷入极小值时,船舶无法自主地更改航行方向从而导致航线规划任务失败的问题。

基于人工势场和跳点搜索优化的船舶航线规划方法见算法1。

为验证本发明的有效性,基于传统人工势场算法陷入局部极小值导致船舶航线规划任务失败的两种典型场景分别进行实验,并对比传统人工势场算法与本发明方法的实验结果来展示本发明的有益效果。

(1)场景一:合力为零

针对合力为零的场景分别使用传统人工势场算法和本发明方法执行船舶的航线规划任务。传统人工势场算法规划的船舶航线如图8所示,本发明方法规划的船舶航线如图9所示。其中,黑色区域为不可通行的障碍,白色区域为可航行区域,红色节点为航线规划的起点,绿色节点为航线规划的目标点,蓝色节点为局部极小值点,黄色节点为依据跳点搜索规则筛选出来的跳点。

模拟合力为零的场景并分别使用传统人工势场算法和本发明方法执行船舶的航线规划任务。由图8可知在传统人工势场算法的航线规划过程中,当规划至坐标(15,15)时陷入局部极小值导致航线规划任务失败无法到达目标点;由图9可知本发明方法在陷入局部极小值(15,15)后,基于跳点搜索规则在第三个跳点处成功脱离局部极小值的约束完成了航线规划任务成功到达目标点。

(2)场景二:引力与斥力共线

针对引力与斥力共线的场景分别使用传统人工势场算法和本发明方法执行船舶的航线规划任务。传统人工势场算法规划的航线如图10所示,本发明方法规划的航线如图11所示。其中,黑色区域为不可通行的障碍,白色区域为可航行区域,红色节点为航线规划的起点,绿色节点为航线规划的目标点,蓝色节点为局部极小值点,黄色节点为依据跳点搜索规则筛选出来的跳点。

模拟引力与斥力共线的场景并分别使用传统人工势场算法和本发明方法执行船舶的航线规划任务。由图10可知在传统人工势场算法的航线规划过程中,当规划至坐标(16,14)时陷入局部极小值导致航线规划任务失败无法到达目标点;由图11可知本发明方法在陷入局部极小值(16,14)后,基于跳点搜索规则在第二个跳点处成功脱离局部极小值的约束完成了航线规划任务成功到达目标点。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

相关技术
  • 一种基于人工势场法的机器人跳点搜索算法
  • 一种基于路径规划与人工势场法的船舶编队智能避碰方法
技术分类

06120116513503