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

基于Theta*回溯的单无人艇覆盖路径规划方法与流程

2021-09-10 21:03:00 来源:中国专利 TAG:路径 规划 回溯 覆盖 算法

基于theta*回溯的单无人艇覆盖路径规划方法
技术领域
1.本发明属于路径规划算法及覆盖路径规划算法技术领域,更具体地,涉及一种基于theta*回溯的单无人艇覆盖路径规划方法。


背景技术:

2.目前无人艇覆盖路径主要分为点到点的路径规划和针对全区域的覆盖路径规划。路径规划常用的方法有a*算法、人工势场法、遗传算法、蚁群算法、神经网络算法等。覆盖规划方法常将任务区域进行分解,常用单元分解方法有梯形分解法、boustrophedon分解法、morse分解法和voronoi分解法等。
3.但是,在复杂环境下,对区域进行分解会导致路径的遍历重复率大幅提高,使用a*算法等会使路径不够平滑,不符合航海实践。


技术实现要素:

4.针对现有技术的以上缺陷或改进需求,本发明提供了一种基于theta*回溯的单无人艇覆盖路径规划方法,可以使单无人艇回溯路径更加平滑,转向次数更少。
5.为实现上述目的,本发明提供了一种基于theta*回溯的单无人艇覆盖路径规划方法,包括:
6.s1:首先将环境地图栅格化,根据已扫测区域和未扫测区域构建w_list和y_list,在环境地图最靠近西北角的可扫测位置初始化单无人艇的位置;
7.s2:单无人艇按照南东北西的方向优先级开始进行迂回式扫测,并不断更新w_list和y_list;
8.s3:若单无人艇进入临界点,则单无人艇原路返回,直到可以按照步骤s2进行转向;
9.s4:当单无人艇扫测至环境地图最东侧,则开始检测w_list,遍历回溯点,并找出最优回溯点;
10.s5:使用theta*算法寻找到最优回溯点的最短路径;
11.s6:单无人艇沿着步骤s5的最短路径进入遗漏区域,并按照步骤s2和步骤s3进行扫测,直到整个待扫区域扫测完毕。
12.在一些可选的实施方案中,所述根据已扫测区域和未扫测区域构建w_list和y_list包括:
13.将已扫测区域的栅格加入w_list中,将未扫测区域的栅格和障碍物区域的栅格加入y_list中。
14.在一些可选的实施方案中,所述南东北西的方向优先级表示:单无人艇首先检测其南方是否可行,若可行,则向南方前进扫测,若不可行,则检测单无人艇东侧是否可行,若可行,则向东方前进扫测,若不可行,则检测单无人艇北侧是否可行,若可行,则向北方前进扫测,若不可行,则检测单无人艇西侧是否可行,若可行,则向西方前进扫测。
15.在一些可选的实施方案中,单无人艇在某方向可行指:该方向无障碍物并且该方向未经扫测。
16.在一些可选的实施方案中,所述迂回式扫测指:从一方开始,循环往复的走之字形曲线,向另外一方推进。
17.在一些可选的实施方案中,所述单无人艇进入临界点为:单无人艇进入的一个除了进入方向,其他方向都不可行或者已经被扫测完毕的位置或区域。
18.在一些可选的实施方案中,所述回溯点为单无人艇测至环境地图最东侧以后,w_list中的点。
19.在一些可选的实施方案中,所述最优回溯点为距离单无人艇欧氏距离最近的w_list中的点。
20.总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
21.单无人艇按照固定方向优先级进行扫测,使用比a*算法路径更加平滑的theta*算法作为回溯路径寻找方法,使单无人艇执行覆盖路径规划任务时转弯更少,转弯角度更小,路径更加平滑,增加了单无人艇航行的安全性,降低了航行的成本。
附图说明
22.图1是本发明实施例提供的一种覆盖路径规划方法的流程示意图;
23.图2是本发明实施例提供的一种迂回式覆盖图;
24.图3是本发明实施例提供的一种覆盖路径规划方法实施实例图。
具体实施方式
25.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
26.如图1所示是本发明实施例提供的一种单无人艇覆盖路径规划方法的流程示意图,本发明的技术方案如下:
27.如图3所示,黑色区域为障碍物,白色区域为可行海域,黑色实线为单无人艇路径,虚线为回溯路径。
28.s1:首先将环境地图栅格化,构建w_list和y_list,在环境地图最靠近西北角的可扫测位置初始化单无人艇的位置;
29.在本发明实施例中,构建w_list和y_list的方法为:
30.已扫测区域的栅格加入w_list中,未扫测区域的栅格和障碍物区域的栅格加入y_list中。
31.s2:单无人艇按照南东北西的方向优先级开始进行迂回式扫测,并不断更新w_list和y_list;
32.在本发明实施例中,南东北西的方向优先级指:单无人艇首先检测其南方是否可行,若可行,则向南方前进扫测,若不可行,则检测单无人艇东侧是否可行,若可行,则向东
方前进扫测,若不可行,则检测单无人艇北侧是否可行,若可行,则向北方前进扫测,若不可行,则检测单无人艇西侧是否可行,若可行,则向西方前进扫测。
33.其中,单无人艇在某方向可行指:该方向无障碍物并且该方向未经扫测。
34.如图2所示为迂回式扫测示意图,迂回式扫测指:从一方开始,循环往复的走之字形曲线,向另外一方推进。
35.s3:若单无人艇进入critical point,则单无人艇原路返回,直到可以按照步骤s2所述方法进行转向;
36.具体地,在原路返回过程中,单无人艇每走一步即按照南东北西的方向优先级进行可行性检测,检测到可行即按照步骤s2所述方法进行转向。
37.在本发明实施例中,critical point指:单无人艇进入的一个除了进入方向,其他方向都不可行或者已经被扫测完毕的位置或区域。
38.s4:当单无人艇扫测至环境地图最东侧,则开始检测w_list,遍历回溯点,并找出最优回溯点;
39.在本发明实施例中,回溯点指:单无人艇测至环境地图最东侧以后,w_list中的点。
40.在本发明实施例中,最优回溯点指:距离单无人艇欧氏距离最近的w_list中的点。
41.s5:使用theta*算法寻找到最优回溯点的最短路径;
42.在本发明实施例中,theta*算法指:在a*算法的基础上,theta*允许一个顶点的parent可以是任意顶点,而a*只允许顶点的parent必须是邻接点。其打开一个节点s,然后更新周围的节点s'时,会检查s'与parent(s)的可见性。如果可见,则把s'的父节点设置成parent(s)。在计算前,先去计算s'和s的parent有无视线。如果有视线,则把s'的parent和g以s的parent为parent进行更新,否则跟a*一样处理。
43.s6:单无人艇沿着步骤s5的最短路径进入遗漏区域,并按照步骤s2和步骤s3进行扫测,直到整个待扫区域扫测完毕。
44.在本发明实施例中,a*算法指:第一步:首先将环境地图栅格化;
45.第二步:将起点s加入到一个由栅格组成的o_list(开放列表)中。这个o_list刚开始只有一个数据,就是起点s。o_list里的路径可能是沿途经过的,也有可能不经过。o_list是一个待检查的栅格列表。
46.第三步:查看与起点s相邻的栅格(忽略其中不可行走的栅格),把其中可行走或可到达的栅格加入到o_list中。把起点s设置为这些相邻栅格的parent。
47.第四步:把起点s从o_list中移除,加入到c_list(封闭列表)中。
48.第五步:从o_list中选一个与起点s相邻的栅格。重复下面的步骤,找出具有最小f值的那个节点:
49.f=g h。g表示从起点s移动到当前节点的移动代价;h表示从指定的节点移动到终点b的估算成本。g是从起点s移动到指定节点的移动代价。
50.第六步:从o_list中选择f值最小的节点,然后对其做以下操作:
51.首先把该节点从o_list中取出,放到c_list里;然后检查所有与它相邻的栅格,忽略其中在c_list中或不可行走的栅格;如果可行走的栅格不在o_list中,则把它们加入到o_list中。把当前选定的节点设置为这些新加入的栅格的parent。
52.第七步:如果某个相邻的栅格已经在o_list中,则检查这条路是否更优。也就是经由当前节点(选中的栅格)到达那个栅格是否具有更小的g值,如果没有则不做任何操作。否则,如果g值更小则把那个栅格的parent设置为当前栅格(重新遍历那个栅格的parent)。然后重新计算那个栅格的f值和g值。并且走第八步。
53.第八步:再次遍历o_list,选择f值最小的那个。当栅格中有相同的f值时,选择最后加入o_list的栅格。
54.第九步:不断重复上个过程,直到把终点也加入到o_list中。
55.需要指出,根据实施的需要,可将本技术中描述的各个步骤/部件拆分为更多步骤/部件,也可将两个或多个步骤/部件或者步骤/部件的部分操作组合成新的步骤/部件,以实现本发明的目的。
56.本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜