一种基于IA*算法的智能无人船舶路径规划方法转让专利

申请号 : CN201811341834.3

文献号 : CN109374004B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王晓原夏媛媛刘亚奇董晓斐朱慎超唐学大

申请人 : 智慧航海(青岛)科技有限公司

摘要 :

本发明涉及一种基于IA*算法的智能无人船舶路径规划方法。所述方法包括:无人船舶根据已知的电子海图、出发点信息、目的点信息和所述无人船舶的基本信息,获取具有障碍物信息的栅格化信息;按照16个方向的航路点搜索方式,获取当前航路点的相邻航路点,采用综合评价函数获取每一个相邻航路点的评估值;从评估值中选取最小值对应的相邻航路点作为选取的航路点,重复上述航路点获取步骤直至获取到目的点信息。本发明使得规划效率高、转向角度小且路径最短、安全稳定。算法规划速度快,能有效避碰突发障碍物,可用于大型智能无人船舶自主航行系统中,通过本方法,进行全局航线设计或局部避障路径规划。

权利要求 :

1.一种基于IA*算法的智能无人船舶路径规划方法,其特征在于,所述方法包括:S1、无人船舶根据已知的电子海图、出发点信息、目的点信息和所述无人船舶的基本信息,获取具有障碍物信息的栅格化信息;

S2、将出发点设为当前航路点;

S3、按照16个方向的航路点搜索方式,获取当前航路点的相邻航路点,判断所述相邻航路点是否处于所述障碍物信息内,若否,则针对不在所述障碍物信息内的每一个相邻航路点,采用综合评价函数获取每一个相邻航路点的评估值;

所述16个方向的航路点包括以当前航路点为中心点,每22.5°扇区内的距离中心最近的栅格点;

S4、从评估值中选取最小值对应的相邻航路点作为选取的航路点;

将当前航路点设为选取的航路点的父航路点,记录选取的航路点信息,并将选取的航路点设为当前航路点;

重复步骤S3-S4、直至获取到目的点信息;

S5、从终点开始,依据选取的航路点信息及父航路点信息依次输出航路点,获得规划路径。

2.根据权利要求1所述的方法,其特征在于,所述无人船舶的基本信息包括:无人船舶的性能参数、航行状态数据。

3.根据权利要求2所述的方法,其特征在于,所述步骤S1包括,S1a、根据电子海图,获取航行区域内的所有障碍物信息,对电子海图进行栅格化处理,用灰度值表示碰撞危险,灰度值越小表示碰撞危险越大;

S1b、根据无人船舶的性能参数获取船舶安全距离,根据船舶安全距离结合栅格化地图获取无人船舶的障碍物区。

4.根据权利要求3所述的方法,其特征在于,所述步骤S1中,根据电子海图,获取航行区域内的障碍物信息还包括,根据无人船舶实际测试障碍物数据,结合电子海图,实时修正航行区域内的障碍物信息。

5.根据权利要求1所述的方法,其特征在于,所述评价函数F(n)的计算公式包括:其中,G(n)为无人船舶从出发点到待评价航路点n的实际代价值,H(n)为待评价航路点n到目标点的最小估计代价值,R(n)表示待评价航路点n与障碍节点的实际代价值。

6.根据权利要求3所述的方法,其特征在于,所述步骤S2之前,还包括:S20、初始化两个空列表,

待判断航路点列表,用于存储获取的不在障碍物信息内的相邻航路点信息;

已判断航路点列表,用于存储选取的最小值对应的相邻航路点信息。

7.根据权利要求6所述的方法,其特征在于,所述步骤S3,还包括:S3a、将不属于障碍物区,不在待判断航路点列表,不在已判断航路点列表的相邻航路点a,加入待判断航路点列表,同时记录相邻航路点a的父航路点坐标值;

S3b、对不属于障碍物区,不在已判断航路点列表的,但是在待判断航路列表的相邻航路点b进行判断,若待判断航路列表记录的相邻航路点b的综合估计值F(b)比当前的综合估计值F(b)’大,则更新待判断航路列表记录的相邻航路点b的信息。

8.根据权利要求6所述的方法,其特征在于,所述步骤S4包括:从待判断航路点列表选取评估值最小的航路点;

将选取的相邻航路点从待判断航路点列表移动到临时列表;

判断临时列表是否为空,如果为空则运算结束,如果不为空则将选取的相邻航路点从临时列表移动到已判断航路点列表。

9.根据权利要求1所述的方法,其特征在于,所述步骤S1之前还包括,S10、无人船舶通过传感器获取无人船舶当前出发点坐标,通过接收到的目标港坐标指令获取目标点的经纬度坐标。

说明书 :

一种基于IA*算法的智能无人船舶路径规划方法

技术领域

[0001] 本发明智能无人船舶路径规划领域,尤其涉及一种基于IA*算法的智能无人船舶路径规划方法。

背景技术

[0002] 智能无人船舶是一种无人驾驶船舶,拥有自主航行、智能机舱、能效管理、货物运输和智能集成平台,它融合了船舶、通信、自动化、机器人控制、远程监控、网络化系统等技术,可实现自主导航、智能避障等功能。与有人驾驶船相比,智能无人船舶具有安全系数高,经济环保,绿色节能的优点。而对智能无人船舶的路径规划,是智能无人船舶自主航行系统的核心内容。
[0003] 目前关于智能无人船舶的路径规划方法有多种,但是,这些已有的路径规划方法未考虑良好船艺,与障碍物距离较近,易造成船舶搁浅后果,无法达到快速、安全、稳定避障。并且已有方法的适用范围是小型无人艇,而未涉及大型无人船舶的局部避障路径规范。
[0004] 在无人驾驶领域,常采用A*算法进行路径规划。A*算法是从出发点开始展开扇形捜索,通过计算当前节点与其8个方向邻节点的代价估计值,查找出最小代价值的路径即为最优路径,是应用较广泛高效的方法。但是,传统A*算法集中于不同终点数量的全局最短路径规划问题上。对于应用于智能无人船舶来说,需要综合考虑海洋环境的复杂性、船舶操纵性能及能耗,A*算法缺乏实际航海应用的可行性。
[0005] 因此,提出一种基于IA*算法的适用于大型智能无人船舶路径规划方法是非常必要的。

发明内容

[0006] (一)发明目的
[0007] 针对现有关于智能无人船舶的路径规划方法中无法保证智能无人船舶安全稳定高效航行的弊端以及基于A*算法的智能无人船舶全局路径规划中路径存在较大转向且与障碍物之间距离较近的问题,提供可生成安全、稳定、最优航线的基于改进A*算法(IA*算法,Improved A*Algorithm)的智能无人船舶路径规划方法。解决船舶操纵性差和易搁浅的问题,达到快速、安全、稳定避障的效果,增加智能无人船舶的操纵性,避免因转向角度过大而造成船舶侧翻、倾覆,对实现智能无人船舶智能航行提供依据。
[0008] (二)技术方案
[0009] 为了达到上述目的,本发明一种基于IA*算法的智能无人船舶路径规划方法,包括:
[0010] S1、无人船舶根据已知的电子海图、出发点信息、目的点信息和所述无人船舶的基本信息,获取具有障碍物信息的栅格化信息;
[0011] S2、将出发点设为当前航路点;
[0012] S3、按照16个方向的航路点搜索方式,获取当前航路点的相邻航路点,判断所述相邻航路点是否处于所述障碍物信息内,若否,则针对不在所述障碍物信息内的每一个相邻航路点,采用综合评价函数获取每一个相邻航路点的评估值;
[0013] S4、从评估值中选取最小值对应的相邻航路点作为选取的航路点;将当前航路点设为选取的航路点的父航路点,记录选取的航路点信息,并将选取的航路点设为当前航路点;
[0014] 重复步骤S3-S4、直至获取到目的点信息;
[0015] S5、从终点开始,依据选取的航路点信息及父航路点信息依次输出航路点,获得规划路径。
[0016] 所述步骤S1中,所述无人船舶的基本信息包括:无人船舶的性能参数、航行状态数据。
[0017] 所述步骤S1包括,
[0018] S1a、根据电子海图,获取航行区域内的所有障碍物信息,对电子海图进行栅格化处理,用灰度值表示碰撞危险,灰度值越小表示碰撞危险越大;
[0019] S1b、根据无人船舶的性能参数获取船舶安全距离,根据船舶安全距离结合栅格化地图获取无人船舶的障碍物区。
[0020] 所述步骤S1中,根据电子海图,获取航行区域内的障碍物点还包括,根据无人船舶实际测试障碍物数据,结合电子海图,实时修正航行区域内的障碍物信息。
[0021] 所述评价函数F(n)的计算公式包括:
[0022]
[0023] 其中,G(n)为无人船舶从出发点到待评价航路点n的实际代价值,H(n)为待评价航路点n到目标点的最小估计代价值,R(n)表示待评价航路点n与障碍节点的实际代价值。
[0024] 所述步骤S2之前,还包括:
[0025] S20、初始化两个空列表,
[0026] 待判断航路点列表,用于存储获取的不在障碍物信息内的相邻航路点信息;
[0027] 已判断航路点列表,用于存储选取的最小值对应的相邻航路点信息。
[0028] 所述步骤S3,还包括:
[0029] S3a、将不属于障碍物区,不在待判断航路点列表,不在已判断航路点列表的相邻航路点a,加入待判断航路点列表,同时记录相邻航路点a的父航路点坐标值;
[0030] S3b、对不属于障碍物区,不在已判断航路点列表的,但是在待判断航路列表的相邻航路点b进行判断,若待判断航路列表记录的相邻航路点b的综合估计值F(b)比当前的综合估计值F(b)’大,则更新待判断航路列表记录的相邻航路点b的信息。
[0031] 所述步骤S4包括:
[0032] 从待判断航路点列表选取评估值最小的航路点;
[0033] 将选取的相邻航路点从待判断航路点列表移动到临时列表;
[0034] 判断临时列表是否为空,如果为空则运算结束,如果不为空则将选取的相邻航路点从临时列表移动到已判断航路点列表。
[0035] 可选地,所述步骤S1之前还包括,
[0036] S10、无人船舶通过传感器获取无人船舶当前出发点坐标,通过接收到的目标港坐标指令获取目标点的经纬度坐标。
[0037] 优选地,所述航路点16方向包括以当前航路点为中心点,每22.5°扇区内的距离中心最近的栅格点。
[0038] (三)有益效果
[0039] 本发明的有益效果是:本发明基于IA*算法的智能无人船舶路径规划方法,缩小规划区域,增加障碍物估计代价并且在16方向扇形搜索最短航路点,可有效缩短规划时间,获取最优路径;适用于智能无人船舶的路径规划,可以实现智能无人船舶安全稳定高效航行,相比于传统的A*算法,本算法在路径规划上,避免规划路径产生大角度转向,增加了智能无人船舶的操纵性,避免因转向角度过大而造成船舶侧翻、倾覆。

附图说明

[0040] 图1为本发明实施例一种基于IA*算法的智能无人船舶路径规划方法示意图;
[0041] 图2为本发明实施例一种基于IA*算法的智能无人船舶路径规划方法计算流程信令图;
[0042] 图3为本发明实施例航路点16个方向示意图。

具体实施方式

[0043] 为了更好的解释本发明,以便于理解,下面通过具体实施方式,对本发明作详细描述。
[0044] 如图1所示,本发明一种基于IA*算法的智能无人船舶路径规划方法,包括以下步骤:
[0045] S1、无人船舶根据已知的电子海图、出发点信息、目的点信息和所述无人船舶的基本信息,获取具有障碍物信息的栅格化信息。
[0046] S2、将出发点设为当前航路点;
[0047] S3、按照16个方向的航路点搜索方式,获取当前航路点的相邻航路点,判断所述相邻航路点是否处于所述障碍物信息内,若否,则针对不在所述障碍物信息内的每一个相邻航路点,采用综合评价函数获取每一个相邻航路点的评估值;
[0048] S4、从评估值中选取最小值对应的相邻航路点作为选取的航路点,
[0049] 将当前航路点设为选取的航路点的父航路点,记录选取的航路点信息,并将选取的航路点设为当前航路点;
[0050] 重复步骤S3-S4、直至获取到目的点信息;
[0051] S5、从终点开始,依据选取的航路点信息及父航路点信息依次输出航路点,获得规划路径。
[0052] 其中,所述综合评价函数F(n)的计算公式包括:
[0053]
[0054] 计算公式中,G(n)为无人船舶出发点start到待评价航路点n的实际代价值,H(n)为待评价航路点n到目标点goal的最小估计代价值,R(n)表示待评价航路点n与障碍节点的实际代价值。
[0055] 具体地,G(n)和H(n)的计算基于IA*算法的计算方法,实际代价值R(n)采用的是切比雪夫距离计算。距离障碍物点越近,综合评价函数值越高。
[0056] 所述航路点16方向如图3所示,包括以当前航路点为中心点,每22.5°扇区内的距离中心最近的栅格点。即,所述航路点16方向包括当前航路点的上方、右前上方、右上方、右后上方、右方、右前下方、右下方、右后下方、下方、左后下方、左下方、左前下方、左方、左后上方、左上方、左前上方。
[0057] 具体地,参考图2所示计算流程信令图,本实施例所述一种基于IA*算法的智能无人船舶路径规划方法流程包括:
[0058] S1、无人船舶根据已知的电子海图、出发点信息、目的点信息和所述无人船舶的基本信息,获取具有障碍物信息的栅格化信息。
[0059] 其中,所述无人船舶的基本信息包括:无人船舶的性能参数和航行状态数据。例如,船舶设定航速等。
[0060] 本实施例中,所述出发点信息为出发港坐标,目的点信息为目标港坐标。通过无人船舶所携带的各传感器获取当前无人船舶经纬度坐标,即,出发点start的坐标,通过无人船舶接收到的岸基指令获取目标点goal的坐标。
[0061] 可选地,在执行步骤S1之前还包括,
[0062] S10、无人船舶通过传感器获取无人船舶当前出发点坐标,通过接收到的目标港坐标指令获取目标点的经纬度坐标。
[0063] 在智能无人船舶根据传感器接收到的信息和岸基指挥中心发布的调度指令,获取出发港坐标和目标港坐标后,可以获取航行海域范围以及航行海域范围的航行海域电子海图;根据航行海域电子海图获取海域内的岸基、岛礁等障碍区信息。所述步骤S1包括:
[0064] S1a、根据电子海图,获取航行区域内的所有障碍物信息,对电子海图进行栅格化处理,用灰度值表示碰撞危险。
[0065] 读取电子海图,建立环境栅格地图,并搜索地图中航行区域内的障碍物信息,获取电子海图内,所有的障碍物边缘坐标。
[0066] 用灰度值表示碰撞危险,灰度值越小表示碰撞危险越大。其中,0表示黑色,为障碍格,例如岸基、岛礁等线状和面状障碍物;255表示白色,为可航行格;0~255之间的灰度值为灰色,表示碰撞危险区,例如岸基浅滩区。
[0067] S1b、根据无人船舶的性能参数获取船舶安全距离。据船舶安全距离结合栅格化地图获取无人船舶的障碍物区。
[0068] 根据无人船舶的性能参数获取船舶领域参数,计算无人船舶的安全距离。
[0069] 其中,所述安全距离的计算方法包括:根据无人船舶的船体参数,计算当前航行海域环境态势下的船舶领域参数,在船舶领域参数外,为船舶的安全距离。例如,设置船舶领域为一个长轴为4倍船长,短轴为1.6倍船长的椭圆。
[0070] 在获得栅格化信息后,可以根据栅格化的障碍物信息建立障碍点列表BarrierList。
[0071] 可选地,根据电子海图,获取航行区域内的障碍物信息还包括,根据无人船舶实际测试障碍物数据,结合电子海图,实时修正航行区域内的障碍物信息。此时,所述障碍物还包括实际测试海域的障碍物以及突发障碍物。从而使得无人船舶可以实时修正规划路径。
[0072] 通过上述步骤,建立静态环境信息后,可以基于IA*算法规划最优全局路径。根据出发点和目标点坐标进行路径范围划分,从出发点开始展开16方向扇形搜索,通过综合评价函数F(n)对可行区域内的路径点进行评估,从而获得代价最小的最优路径。具体地,包括以下步骤:
[0073] 可选地,在所述步骤S2之前,执行步骤S20:
[0074] S20、初始化两个空列表,待判断航路点列表,用于存储获取的不在障碍物信息内的相邻航路点信息;已判断航路点列表,用于存储选取的最小值对应的相邻航路点信息。
[0075] 初始化两个空列表,待判断航路点列表OpenList和已判断航路点列表CloseList,后,将出发点加入待判断航路点列表OpenList,根据综合评价函数,获取出发点的综合估计值。
[0076] 本实施例中,设出发点start的g值为0,利用对角线距离计算出发点start的h值,根据综合评价函数,获取出发点start的综合估计值,并将出发点start及出发点start的综合估计值放入待判断航路点列表OpenList中。
[0077] S2、将出发点设为当前航路点。
[0078] 此时,待判断航路点列表OpenList中的航路点只有出发点start。
[0079] 因此,从待判断航路点列表OpenList中读取出发点start,将出发点start设为当前航路点。
[0080] S3、按照16个方向的航路点搜索方式,获取当前航路点的相邻航路点,判断所述相邻航路点是否处于所述障碍物信息内,若否,则针对不在所述障碍物信息内的每一个相邻航路点,采用综合评价函数获取每一个相邻航路点的评估值。
[0081] 具体地,步骤S3包括下面两个步骤:
[0082] S3a、将不属于障碍物区,不在待判断航路点列表,不在已判断航路点列表的相邻航路点a,加入待判断航路点列表,同时记录相邻航路点a的父航路点坐标值;
[0083] 同时,执行步骤S3b:
[0084] S3b、对不属于障碍物区,不在已判断航路点列表的,但是在待判断航路列表的相邻航路点b进行判断,若待判断航路列表记录的相邻航路点b的综合估计值F(b)比当前的综合估计值F(b)’大,则更新待判断航路列表记录的相邻航路点b的信息。
[0085] 参考图2所示信令图,在实际操作中,步骤S3的计算流程包括:
[0086] (0)判断当前航路点是否为目标点,如果是,则执行步骤S5;如果否,则继续执行下一步骤。
[0087] 如果是终点则说明已经找到从出发点到终点的路径,通过步骤S5将规划路径输出。
[0088] (1)获取当前航路点按16方向上扩展的相邻航路点neighbor及16个相邻航路点neighbor的综合估计值。
[0089] 从16个方向扩展获取当前航路点的相邻航路点,并根据综合评价函数,获取相邻航路点的综合估计值;
[0090] 依据综合评价函数,以当前航路点为父航路点,计算16个相邻航路点neighbor的综合估计值。
[0091] (2)读取16个相邻航路点neighbor中任意一个相邻航路点neighborNode;
[0092] (3)判断读取的neighborNode是否在障碍点列表BarrierList中,如果是,则返回步骤(2)读取下一个相邻航路点,如果否,则继续下一个步骤;
[0093] (4)判断neighborNode是否在已判断航路点列表CloseList中,如果是,则返回步骤(2)读取下一个相邻航路点,如果否,则继续下一个步骤
[0094] (5)判断neighborNode是否在待判断航路点列表OpenList中,如果是,则执行步骤(6),如果否,则执行步骤(7)
[0095] (6)将neighborNode命为航路点b,对当前父航路点下航路点b的综合估计值F(b)’与待判断航路点列表OpenList中的前父航路点下的航路点b的综合估计值的F(b)进行比较,若F(b)’
[0096] 若F(b)’>F(b),则返回步骤(2)读取下一个邻航路点;
[0097] (7)将neighborNode命为航路点a,判断航路点a是否是终点goal,如果是则本程序循环结束,执行步骤S28,如果否,则将航路点a的坐标值及航路点a的综合估计值F(a)与父航路点parentNode的坐标值,放入待判断航路点列表OpenList中;
[0098] (8)重复上述步骤(2)-(7)直到遍历16个相邻航路点neighbor。
[0099] S4、从评估值中选取最小值对应的相邻航路点作为选取的航路点。将当前航路点设为选取的航路点的父航路点,记录选取的航路点信息,并将选取的航路点设为当前航路点。
[0100] 获取待判断航路点列表OpenList中综合估计值最小的航路点,设为当前航路点,并将选取的航路点从待判断航路点列表OpenList移入已判断航路点列表CloseList。
[0101] 可选地,本步骤还包括:
[0102] 从待判断航路点列表选取评估值最小的航路点;将选取的相邻航路点从待判断航路点列表移动到临时列表;判断临时列表是否为空,如果为空则运算结束,如果不为空则将选取的相邻航路点从临时列表移动到已判断航路点列表。
[0103] 如果临时列表为空,表明规划路径失败,结束路径规划;如果不为空则将选取的航路点从临时列表移入已判断航路点列表CloseList中。
[0104] 重复步骤S3-S4、直至获取到目的点信息;
[0105] S5、从终点开始,依据选取的航路点信息及父航路点信息依次输出航路点,获得规划路径。
[0106] 若获取到的相邻航路点即目标点,可以基于已判断航路点列表CloseList中的航路点及父航路点信息输出规划路径。
[0107] 本实施例所述方法优先应用于智能无人船舶,特别是大型无人船舶,而非无人艇。对于复杂海洋环境情况下,智能无人船舶可以避免规划路径产生大角度转向,增加了智能无人船舶的操纵性,避免因转向角度过大而造成船舶侧翻、倾覆。
[0108] 需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
[0109] 最后应说明的是:以上所述的各实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或全部技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。