CN110975290A - 一种基于模式数据库的路径规划方法及系统 - Google Patents

一种基于模式数据库的路径规划方法及系统 Download PDF

Info

Publication number
CN110975290A
CN110975290A CN201911138914.3A CN201911138914A CN110975290A CN 110975290 A CN110975290 A CN 110975290A CN 201911138914 A CN201911138914 A CN 201911138914A CN 110975290 A CN110975290 A CN 110975290A
Authority
CN
China
Prior art keywords
point
path
optimal
jumping
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911138914.3A
Other languages
English (en)
Other versions
CN110975290B (zh
Inventor
尹全军
张琪
胡越
秦龙
焦鹏
鞠儒生
唐见兵
祝建成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201911138914.3A priority Critical patent/CN110975290B/zh
Publication of CN110975290A publication Critical patent/CN110975290A/zh
Application granted granted Critical
Publication of CN110975290B publication Critical patent/CN110975290B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/56Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种基于模式数据库的路径规划方法及系统,该方法包括以下步骤:以均匀网格地图中塌缩跳点的网格点所在位置进行预处理;获取起点和终点位置;采用connect‑search算法在所有跳点中搜索最优路径,在起点与终点之间需要寻找最优复合主序路径时,在连接过程中生成起始子节点时和/或在搜索过程中扩展跳点进行剪枝;根据剪枝后的起点子节点和/或搜索过程中生成的子节点搭建起点与终点之间的最优路径并存储。解决现有技术中预处理占用存储空间且搜索速度受限问题,实现减小存储空间并提升搜索速度。

Description

一种基于模式数据库的路径规划方法及系统
技术领域
本发明涉及人工智能路径规划技术领域,具体是一种基于压缩模式数据库的路径规划方法及系统。
背景技术
在人工智能领域,机器人技术和计算机游戏智能被视为建模人类在复杂环境下的感知、规划、决策和行动能力的综合领域。近年来,各类型机器人在生产生活中广泛使用,以及学界与工业界对计算机游戏智能的重视程度逐渐提高,典型的例子包括DeepMind团队开发的StarCraft游戏AI和OpenAI公司开发的Dota游戏AI等。作为机器人和游戏非玩家角色(NPC,Non-Player Characters)各方面技术的基础,基于均匀网格(uniform grids)地图的最短路径规划技术随着GPPC(Grid-based Path Planning Competitions)竞赛的举行和工业界对典型地图测试集的开放,在近十年也取得了显著的进步。作为一个基础服务,在人工智能中经典的启发式搜索问题求解技术、地图空间拓扑结构提取技术领域中,很多场景中有限的计算资源需要同时应答大量智能体的路径规划请求,因此规划技术的快速响应能力最受关注。
其中最为著名的一类算法称为跳点搜索(JPS,Jump Point Search),主要由澳大利亚莫纳什大学的Daniel Harabor博士提出(Harabor D,Grastien A.Online GraphPruning for Pathfinding on Grid Maps[C]//National Conference on ArtificialIntelligence.2011:1114–1119.Harabor D,Grastien A.Improving Jump Point Search[C]//International Conference on Automated Planning and Scheduling.2014.)。当智能体在网格地图上移动时,JPS在相同起点和终点、相等长度的对称路径中,将对角方向移动优先路径确定为主要偏序(diagonal-first canonical ordering),将不满足该原则的其他所有路径剔除在搜索空间之外。理论证明,任何可通行的两个位置之间都存在至少一条满足该规则的最短路径。如图1所示,被该偏序规则剔除的子节点(灰色所示)通常可以由当前节点的父节点从更短的路径或长度相同但对角移动出现更早的路径到达。通常,这样的剪枝递归使用可以使某一节点的子节点仅剩1个或0个,不仅降低了正在被扩展节点的分支因子,也减小了子节点的分支因子。
另外,JPS应用A*算法时并不将中间节点加入Open表中,除非遇到图1(c)中需要将前进方向向其他分支扩展的节点时,才将这样的节点加入Open表中以待扩展。中间节点都将被跳过,因此图1(c)中的特殊节点称为“跳点”。
JPS算法仅需在线处理,不涉及地图预处理,相较单纯的A*算法速度提高了一个数量级。但它的一个主要缺点是扩展节点时需要进行大量的逐行逐列的中间节点扫描和判断。基于此,JPS+在离线阶段为每一可通行节点的每一可通行方向计算和存储与通过该方向可到达的第一个跳点或障碍物的距离。这一预存信息进一步提高了搜索速度。进一步地,JPS+(P)在搜索时采用中转剪枝(intermediate pruning)技术,将对角跳点视为过渡节点不加入Open表进行处理,相比JPS+一定程度降低了Open表操作次数。
通过与压缩模式数据库(CPD,Compressed Pattern Databases)技术的结合,JPS的性能得到了进一步大幅度的提升。CPD技术是用空间换时间的基于预处理的路径规划技术,它在离线阶段通过以每个可通行节点为源发起Dijkstra搜索,为当前节点找到能够以最短路径到达其他所有连通节点的出边(outgoing edge)。若以矩阵M表示这一预处理得到的数据,则M[i,j]表示从第i个节点到达第j个节点的最短路径上源于节点i的第一边。为压缩这一矩阵的存储空间,SRC(Single-Row Compression)算法对其每一行(对应每一个源节点)采用RLE(Run-Length Encoding)方法进行数据压缩,一般可得到300-400的压缩比(Strasser B,Harabor D,Botea A.Fast First-Move Queries through Run-LengthEncoding[C]//the Seventh Annual Symposium on Combinatorial Search.2014(SoCS):157–165.Strasser B,Botea A,Harabor D.Compressing Optimal Paths with RunLength Encoding[J].Journal of Artificial Intelligence Research,2015,54:593–629.)。在线进行路径规划时,SRC则在从起点开始的每一个当前节点向CPD中检索其到达给定目标点的最佳移动,从而迭代得到完整的最短路径。其中的每一次检索都需要在对应行压缩数据中进行二分查找。SRC因为完全不需要进行A*算法的在线搜索,因此成为GPPC-2014比赛最快的算法之一。
JPS与SRC结合产生了Topping(Two-Oracle Path PlannING)算法,原理是仅在关键节点上(如起点、跳点)上进行CPD的二分查找得到最优方向,而同时访问JPS的距离表得到对应方向可以重复执行的步数,从而免去了在中间节点上多余的二分查询(Salvetti M,Botea A,Gerevini A,et al.Two-Oracle Optimal Path Planning on Grid Maps[C]//International Conference on Automated Planning and Scheduling.2018(Sturtevant2012):227–231.)。因为对JPS距离表的访问是常数级的,Topping算法相较SRC提高了数倍的路径规划效率。需要注意地是,与SRC不同,预处理阶段的Dijkstra搜索采用了与JPS一致的diagonal-first偏序,保证两者结合的最大效益,即能将CPD查询的次数降到最低。这一基于离线预先计算的剪枝技术为JPS+和SRC算法分别提升了一个数量级左右和数倍的性能提升,使其能够在经典测试集下取得微秒级别的搜索速度。然而,这一显著进步的代价则是必须在预处理阶段投入大量的CPU时间和存储空间。
若要降低这一代价,则仅需对跳点位置进行预处理即可。然而这一处理将造成算法预处理信息一定程度上的丢失,主要在于若起点是普通节点而非跳点,则算法无法直接检索起点到终点最优路径上的第一步移动方向,因此无法采用迭代检索的方式,可通过按照A*算法对起点进行扩展并开始搜索,然而单纯地按照JPS模式的搜索将使Topping算法的搜索速度受到非常显著的影响。另外,JPS+式的搜索,在对角跳点上也进行了加入Open表和从其中取出的操作。由于Open表一般采用二叉堆优先队列的数据结构进行表示,这些操作都将引起堆结构的重排序,一定程度限制了搜索速度的提升。
发明内容
本发明提供一种基于模式数据库的路径规划方法及系统,用于克服现有技术中在预处理过程中信息被压缩导致丢失的情况下搜索速度受限等缺陷,在对起点进行扩展并搜索的过程中通过对不必要的路径进行剪枝,实现局部扩展,从而减少了Open表中的子节点数量,进而实现了相对于现有技术实现搜索速度大幅提升。为实现上述目的,本发明提供一种基于模式数据库的路径规划方法,包括:
以均匀网格地图进中塌缩跳点的网格点所在位置进行预处理;
获取起点和终点位置;
在起点与终点之间需要寻找最优复合主序路径时,采用connect-search方式在所有跳点中搜索最优路径,在连接过程中生成起始子节点时和/或在搜索过程中扩展跳点时均通过读取压缩模式数据库对不可能达到终点的路径进行剪枝;
根据剪枝后生成的起点子节点和/或在搜索过程中生成的子节点搭建起点与终点之间的最优路径并存储。
为实现上述目的,本发明还提供一种路径规划系统,包括存储器和处理器,所述存储器中存储有路径规划程序,在所述处理器运行所述路径规划程序时执行上述方法的步骤。
本发明提供的基于模式数据库的路径规划方法及系统,在搜索过程中,在起点与终点之间没有简单主序路径连接时需要寻找最优复合主序路径,采用connect-search方式在跳点中搜索最优路径,在连接过程中根据跳跃距离表寻找起点所有符合对角优先原则的轴向跳点并生成起始子节点,所述轴向跳点通常数量较多,对不可能到达的终点的轴向跳点进行剪枝,以缩减初始加入Open表的节点的数量,从而按照原搜索思路使搜索速度得到提升;或者在搜索过程中,对某一跳点进行扩展时在对角方向寻找中间跳点,中间跳点并不作为子节点放入Open表,而仅将中间跳点主序扩展方向中与记录在压缩模式数据库中最优方向重合的分支方向上的轴向跳点作为子节点进行生成并放入Open表,并不对同一对角分支上的所有中间跳点进行探索,仅对有可能到达终点的最优路径展开局部扩展,其余中间跳点进行剪枝,以缩减在搜索过程中生成的子节点的存储;在将在搜索过程中生成的子节点加入Open表和从其中取出的操作过程中,Open表一般采用二叉堆优先队列的数据结构进行表示,这些剪枝操作避免引起堆结构的频繁重排序,从而实现加速搜索的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1(a)为现有JPS技术中非跳点情景下对角移动时的剪枝示意图;
图1(b)为现有JPS技术中非跳点情景下轴向移动时的剪枝示意图;
图1(c)为现有JPS技术中在跳点位置处的剪枝示意图;
图2(a)为本发明实施例一提供的路径规划方法中轴向跳点的示意图;
图2(b)为本发明实施例一提供的路径规划方法中对角跳点的示意图;
图3为实施例一中主序路径分类示意图;
图4为实施例一中CPD进行路径规划的主要算法流程图;
图5为实施例一中利用已有的压缩数据库进行延后的剪枝算法流程图;
图6为实施例一中对当前处于搜索前沿的节点进行扩展的算法流程图;
图7为实施例一中connect示例图;
图8为实施例一中serach扩展过程示例图;
图9为实施例二中serach扩展过程示例图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,在本发明中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“连接”、“固定”等应做广义理解,例如,“固定”可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接,还可以是物理连接或无线通信连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
另外,本发明各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
实施例一
如附图1-9所示,本发明实施例提供一种路径规划方法,包括以下步骤:
S1,以均匀网格地图进中塌缩跳点的网格点所在位置进行预处理;
跳点包括轴向跳点和对角跳点,定义如下:
轴向跳点为:均匀网格地图中障碍物对角方向的可通行点;至少能在水平方向和垂直方向上移动;一个轴向跳点(straight jump point)可视为一个三元组
Figure BDA0002280336050000061
其中包含一个网格位置n和两个轴向的移动方向。它们满足:(1)
Figure BDA0002280336050000062
Figure BDA0002280336050000063
是两个可通行的移动;(2)
Figure BDA0002280336050000064
(3)
Figure BDA0002280336050000065
不可通行。
直观来说,定义1中的网格位置n即为障碍物的拐角,而方向
Figure BDA0002280336050000066
称为该跳点的父方向,为搜索的来向。以图2(a)为例,由实心圆和箭头分别表示位置和来向,图中标出了所有的轴向跳点和对应的父方向,可以看到符合条件的n一般附着有两个以上的轴向跳点。另外,将
Figure BDA0002280336050000067
Figure BDA0002280336050000068
称为该跳点的主序扩展方向。
一个对角跳点(diagonal jump point)可表示为一个二元组
Figure BDA0002280336050000069
其中包含一个网格位置n和一个对角方向
Figure BDA00022803360500000610
位置n由来自
Figure BDA00022803360500000611
方向的移动到达,并可经过
Figure BDA0002280336050000071
Figure BDA0002280336050000072
到达某一以
Figure BDA0002280336050000073
Figure BDA0002280336050000074
为父方向的轴向跳点,或到达目标点。
图2(b)展示了对角跳点与轴向跳点的位置关系。空心圆圈和灰色箭头分别表示位置和来向,需要注意,同一轴向跳点可同时被多个对角跳点到达,甚至同一位置可能同时使到达某一轴向跳点的不同对角跳点的位置,如(D1/D2/D3,SW/SE)。
这里塌缩跳点的网格点的含义指的是:位于同一网格点位置至少具有来自于两个方向的父节点,该两个方向来自于:上、下、左、右、右上、右下、左上、左下中任意两个,这里的跳点可以是轴向跳点,也可以是对角跳点,也可以同时即是轴向跳点也是对角跳点;如果同一网格点塌缩多方向跳点,则仅就该位置搜索计算一次,不做重复计算;
如上所述,轴向跳点的位置可简单地根据其与障碍物的相对位置关系通过对所有格点的一次扫描而全部快速识别。然而,我们并不需要将所有的对角跳点都识别出来并对其进行包围盒计算。这里,对两类对角跳点进行区分。
一个有源对角跳点
Figure BDA0002280336050000075
(active diagonal jump point)是具有一个轴向跳点
Figure BDA0002280336050000076
作为其父节点,其中
Figure BDA0002280336050000077
是该轴向跳点的对角主序扩展方向,n可以有s经过无障碍的
Figure BDA0002280336050000078
移动到达。不满足该条件的其余位置为无源对角跳点。举例来说,图2(b)中的(F5,SE)因为有(D3,E,S)作为父节点,为一个有源对角跳点,可以通过向东运动到达另一轴向跳点(I5,E,N)。而(E5,SE)则为无源对角跳点。
所有符合diagonal-first规则的路径可以归为两类,如图3所示。第一类,我们称其为简单主序路径(Simple Canonical Paths),它们不涉及在跳点位置的搜索方向转换,这里的转换是某一轴向跳点处由其父方向转换到其中一个主序扩展方向,如图中<s1,t1>所示,寻路时可以通过一次深度优先搜索判断。第二类称为复合主序路径(CompoundCanonical Paths),可表示为<s,(ds),s1,(d1)x1,s2,(d2)x2,s3,…,sn,(dt),t>,如图中<s2,t2>所示。这类路径可划分为三个部分:(1)起始部分:从起点s到第一个轴向跳点s1,其中可能包含一个无源对角跳点ds;(2)中间部分:从第一个轴向跳点s1到最后一个轴向跳点sn,相邻两个之间有xi个有源对角跳点;(3)结尾部分:从sn到终点t,可能包含一个无源跳点。
需要说明的是,有些网格点既附着有轴向跳点,同时也有对角跳点;
获取轴向跳点和对角跳点的方法可以根据上面的定义由程序来实现,具体方法不限。在本发明一实施例中,例如:通过识别障碍物的拐点来获取轴向跳点,即通过识别与障碍物的位置关系获得;对角跳点可通过识别与轴向跳点的位置关系获得;
预处理搜索算法可以是压缩模式数据库搜索算法进行预处理;
若要降低预处理阶段背景技术中存在投入大量的CPU时间和存储空间这一代价,则仅需对跳点位置进行预处理即可。这一处理将造成算法预处理信息一定程度上的丢失,主要在于若起点是普通节点而非跳点,则算法无法直接检索起点到终点最优路径上的第一步移动方向,因此无法采用迭代检索的方式,本发明通过按照A*算法对起点进行扩展并开始搜索。然而单纯地按照JPS模式的搜索将使Topping算法的搜索速度受到非常显著的影响。因此,本发明Topping+算法充分利用跳点位置上在预处理阶段存下的模式数据库,对起点的子节点进行剪枝,减小Open表的规模。另一点,JPS+式的搜索,在对角跳点上也进行了加入Open表和从其中取出的操作。由于Open表一般采用二叉堆优先队列的数据结构进行表示,这些操作都将引起堆结构的重排序,一定程度限制了搜索速度的提升。本发明的局部扩展方法就是为解决该问题而提出的。
S2,获取起点和终点位置;
在本发明一实施例中,智能机器人所在网格点位置或智能游戏中可移动对象所在网格点位置形成这里的起点,由操作者或玩家输入的指定网格点位置形成终点。
优选地,S2之后还包括:
S21,判断起点和终点是否为障碍物;
S22,在起点和终点均非障碍物时,判断两者位置是否重合;
S23,在起点和终点位置不重合时,判断是否存在一条简单主序路径连接起点与终点;
S24,存在简单主序路径时,将所述简单主序路径作为最优路径并存储;不存在简单主序路径时,采用connect-search方式在跳点中搜索最优路径,进入下面的剪枝步骤S3。
可以看出,轴向跳点和有源对角跳点是构成主序路径的关键位置。基于上述观察,给出本发明Topping+进行路径规划的主要流程。如Algorithm 1所示。以起点s和目标点t为输入,算法首先判断起点终点是否为障碍物,或两者是否位置重合(第2-3行)。若非,再判断是否可通过一条简单主序路径连接两点,若可则直接返回该路径(第4-5行)。若非,则需要寻找到连接两点的最优复合主序路径,采用connect-search方式的寻路过程,其中connect是指生成起点的所有合法轴向跳点子节点(对应复合主序路径定义中的s1),并将它们加入Open表中以待扩展(第6行)。然后按照A*算法最佳优先搜索的流程运行算法(第7-12行)。参见图4。
S3,在起点与终点之间需要寻找最优复合主序路径时,采用connect-search方式在所有跳点中搜索最优路径,在在连接过程中生成起始子节点时和/或在搜索过程中扩展跳点时均通过读取压缩模式数据库对不可能达到终点的路径行剪枝;
根据压缩模式数据库对路径进行筛选,仅在有可能到达终点位置的局部路径上生成起始子节点和/或在搜索过程中生成的子节点;对于不可能到达终点位置的路径进行剪枝;
剪枝过程具体基于上述预处理算法而相应通过压缩模式数据库加速算法等加速算法实现。
这里生成起始子节点的过程是connect程序,建立给定起点与塌缩跳点之间的连接关系,这里的起始子节点的含义指的是从起点出发符合对角优先原则的轴向跳点;在生成起始子节点的过程中可能同时存在不止一个轴向上节点满足起始子节点要求,在扩展某一跳点的过程中,也存在轴向和对角等多类型子节点和多个合法的主序扩展方向;如果都放入open表进行搜索计算,将会导致Open表的节点数量增加,从而若按照原搜索思路则将使搜索速度受到影响,剪枝就是缩减Open表的节点数量的过程;因此在上述两个过程中至少一个过程进行剪枝;在本发明一优选实施例中,最后只保留可能到达目标节点(终点)的起始子节点,其余不可能到达目标节点的起始子节点均删除,完成起始子节点的剪枝;扩展某一跳点时,仅将对角跳点作为剪枝位置,而并不将其加入Open表,同时每次扩展仅选择一个子节点进行生成;最后保留的起始子节点和搜索过程中生成的子节点放入open表进行搜索计算,将会大大提升搜索速度。
需要说明的是,在连接过程中生成的起始子节点可以不唯一,但是在搜索过程中,一个起始子节点对应的分支下只选择唯一的一条路径,通过若干次扩展跳点的过程来确定该路径。对于给定的起点和终点位置,在起始子节点只有一个时,则待考察路径只生成一条;在起始子节点有两个时,则待考察路径也有两条。因为采用了A*算法的最佳优先搜索,所述不同路径的搜索并非分离的,每次扩展的节点都是Open表中当前优先级最高的节点。
S4,根据剪枝后生成的起点子节点和/或在搜索过程中生成的子节点搭建起点与终点之间的最优路径并存储。
可以根据上述起始子节点和/或在搜索过程中生成的子节点在其主序扩展方向上依次扩展获得;也可在步骤S3中寻路过程中即搜索在搜索过程中生成的子节点的过程中,进行过路径计算,并保存了路径,可直接从存储的数据库中提取获得。
本发明将从充分利用稀疏的预处理数据的角度解决现有技术中单纯地按照JPS模式的搜索将使Topping算法的搜索速度受到影响,及JPS+式的搜索导致Open表将引起堆结构的重排序限制了搜索速度提升两个问题,进行搜索速度的提升。
优选地,所述以均匀网格地图中塌缩跳点的网格位置进行预处理的步骤中采用的是压缩模式数据库算法,包括:
S01,对均匀网格地图进行结构分析,根据可通行点与障碍点的位置关系识别出所有轴向跳点;为均匀网格地图上所有可通行节点的所有可通行方向计算跳跃距离表,并记载与该方向上下一跳点或与障碍物的距离;
S02,根据所述轴向跳点在对角方向上的利用跳跃距离表识别出所有对角跳点;
S03,以每个跳点塌缩位置为源节点进行面向全地图的Dijkstra搜索,获取其对于所有可达节点的最优起始边;将上述对所有可达节点的最优边存储生成压缩模式数据库。
塌缩位置指的是附着有至少两个方向轴向跳点和/或对角跳点的网格点。这里的起始边的意思指的是起始方向,八临域网格中的八个方向作为起始方向的选择。
优选地,步骤S3中在连接过程中生成起始子节点进行剪枝的步骤包括:
S301,根据跳跃距离表获得起点所有符合对角优先原则的轴向跳点子节点;
S302,在所述轴向跳点子节点的所有主序扩展方向与压缩模式数据库中存储的该节点的最优方向不存在交集时,删除该合法轴向跳点子节点;
S303,遍历所有所述轴向跳点子节点,获得起始子节点。
虽然稀疏的预处理意味着很难从起点就开始利用压缩模式数据库进行剪枝,从而减少起点的子节点数量,但是当所有合法子节点找到之后,由于它们都是轴向跳点,可利用它们已有的最优起始边进行延后的剪枝。算法流程如图5的Algorithm 2所示。连接过程中,通过压缩数据库中存储的最优方向与轴向跳点的主序扩展方向是否一致,剔除不可能到达目标节点的合法轴向跳点子节点,例如:在多个合法轴向跳点子节点中,通过在压缩数据库中提取各轴向跳点子节点的最优方向,只有一个最优方向与主序扩展方向存在交集,那么仅将这一个轴向跳点子节点作为起始子节点放入open表;如果发现只有两个最优方向与其主序扩展方向存在交集,那么将该两个轴向跳点子节点作为起始子节点放入open表。
算法输入为起点s、终点t和跳跃距离表T,符号
Figure BDA0002280336050000111
表示节点n在方向
Figure BDA0002280336050000112
上的距离值。算法遍历所有八个方向,通过距离值快速获得所有可能的子节点(第3、13行),其中对角方向需要一个迭代的过程(第9行)。对于这些没有通过起点的模式数据库进行剪枝的节点,可以一定程度通过自身的模式数据库和主序扩展方向进行剪枝(第4-6、14-16行)。若节点的所有主序方向的集合与CPD检索出的最优方向集合没有交集,则可安全地将其剔除搜素空间而不加入Open表中;反之,应考虑该节点。经过这一剪枝过程,能够留下的子节点一般只有1-2个,极大地减轻了搜索负担,从而与信息完备的Topping更为接近。
优选地,所述步骤S3搜索过程中在扩展跳点时进行剪枝的步骤包括:
S30,以所有所述起始子节点作为待扩展跳点分别进行部分扩展;
S31,对所述待扩展跳点在对角方向上扩展并获取中转跳点;这里的中间跳点是有源对角跳点,待扩展跳点包括起始子节点和在扩展扩充中任意回归该扩展过程的中转跳点;
S32,读取所述中转跳点在压缩模式数据库中存储的最优边,与该中转跳点所有主序方向进行比较,检测二者是否存在交集;
S33,二者存在交集,且交集中存在一轴向方向时,将该方向的轴向跳点生成在搜索过程中生成的子节点,并加入open表中,然后可以提前结束该分支的探索,从而减少计算开销。
若中转跳点的主序方向与预处理后该中转跳点存储在压缩模式数据库中的最优方向存在交集时,在所述中转跳点的所有主序方向中选择从压缩模式数据库中获取的最优方向,检测终点是否在所述中转跳点的最优方向覆盖的范围内;在终点在所述中转跳点的最优方向覆盖的范围内,且所述最优方向为轴向时;将所述中转跳点作为在搜索过程中生成的子节点加入open表,结束剪枝流程。
搜索过程中,在对角方向上扩展跳点时,并不对所有对角跳点进行扩展,而是进行一个判断,仅在满足判断条件的对角跳点主序方向上扩展,并且不直接将该对角跳点加入Open表,而将该对角跳点主序方向上与压缩数据库中存储的最优方向重合的分支方向上能直接到达目标节点或通过简单路径能够达到目标节点的轴向跳点作为在搜索过程中生成的子节点生成并放入open表。
需要说明的是,本实施例的方案中,对角跳点的作用在于作为轴向跳点的父节点和轴向跳点子节点的中转跳点,因此在找到一个对角跳点时,必然意味着他的两个轴向主序方向上至少有一个能找到子节点,因此可以安全地跳过对角跳点但不作为子节点生成。本方案的核心思想在于在每个起始子节点与终点的路径规划中仅将扩展路径中一个能直接到达终点的轴向跳点加入open表中,而对于在路径中的对角跳点均不加入open表,每次扩展中存在一个或数个这样的对角跳点,这种方式使得从open表中剔除了无用的中转跳点,并且也无需对这些中转跳点进行不必要的扩展,因此能大大提升搜索速度。
优选地,S32中的检测结果除了上述的步骤S33之外还有以下两种:
S33a,若无交集,则可结束该分支的搜索;
S33b,若二者存在交集,且交集中仅有一对角方向,则递归地重复中转跳点的扩展步骤。即将该中转跳点作为待扩展跳点重新回到步骤S31,继续沿着对角方向扩展下一个中转跳点,扩展一个轴向跳点时,在它的对角方向上可能不止一个对角跳点,会有一串,如果上一个对角跳点的最优边是对角方向,那就继续往下一个对角跳点探索,是个递归的过程。直到找到轴向跳点。
另一改进之处是节点的扩展过程,本发明借鉴JPS+(P)的中转剪枝(intermediatepruning)思路,将对角跳点仅作为可用于剪枝的中转位置,而无需将其加入Open表中而引发更多的操作。本发明Topping+仅生成和扩展轴向跳点,而递归地剪除对角跳点。对当前处于搜索前沿的节点进行扩展的流程如Algorithm 3所示,对应Algorithm 1中的第12行。无论是轴向的还是对角的分支,算法首先通过canPruneEdge函数判断该分支是否为当前节点到达目标位置的最优方向之一(第3、10和14行)。若是,再检查目标点是否就在该分支的覆盖范围内,若是则可直接将其加入Open表中并返回。需要注意,在扩展轴向分支时,通过检测的子节点即加入Open表中(第6行);而在扩展对角方向时,并不处理对角跳点,而直到遇到轴向延伸方向的跳点时才将其加入(第16行),而并不没有将第12行中的节点n过多考虑。另外,由于CPD存储的是准确信息,因此一旦发现任意一个最优方向生成子节点后,都可不再对其他方向进行检测,而直接返回(第7和17行)。参见图6。优选地,在跳点中搜索最优路径时采用A*算法运行最佳优先搜索的流程。
如图7所示,给出了一个本发明实施连接过程剪枝的示例。起点和终点分别为F2和J1。通过对有效距离值(加粗表示)的提取,快速找到了所有未经剪枝的子节点B0、F5和H5。图中将它们各自的主序扩展方向和CPD中存储的最优方向分别用灰色和红色的短箭头标出。可以看到,仅H5向右边的主序扩展方向与最优方向重合,因此B0和F5都被剔除,仅向Open表中加入一个节点,即H5。
图8给出了一个扩展过程的示例,其中起点和终点分别为A0和A5。通过连接过程,生成了唯一的起点子节点B0。对其进行扩展时,首先读取到第一个对角跳点D2。算法没有将D2加入Open表,而是检测它对应的所有主序方向是否为最优方向。由于D2仅有向下方向为最优方向,因此对角方向的移动提前停止,而向下的子节点D5被加入Open表中。依此过程扩展D5时通过目标检测(虚线标出),即对比跳跃距离和当前节点与目标点的坐标差值,发现目标。然后将其加入Open表中最终取出。
给出一个示例:参见图9,其中起点和终点分别为A0和J1。通过连接过程,生成了唯一的起点子节点B0。对其进行扩展时,首先读取到第一个对角跳点D2。算法没有将D2加入Open表,而是检测它对应的所有主序方向是否为最优方向。由于D2仅有向右下对角方向为最优方向,递归重复扩展,因此继续沿对角方向的移动读取到第二个对角跳点G5,由于G5有向右方向为最优方向,而向右的子节点I5具有右上方对角方向为最优方向,依此过程扩展I5时通过目标检测(虚线标出),即对比跳跃距离和当前节点与目标点的坐标差值,发现目标。然后将I5加入在搜索过程中生成的子节点加入Open表中,最终取出作扩展计算。
如前所述,一般网格地图中两类跳点塌缩位置的数量远小于所有可通行节点的总量。因此本发明将大大地节省所需的预处理时间和空间。这里以取自https://movingai.com的通用测试集为地图,其基本信息如表1所示。其中既包含典型的游戏地图,也有人工合成的房间和迷宫。每张地图中还包含大量的路径规划测试问题。
实验结果如表2所示。其中,SRC和Topping为原算法,Topping+为本发明。我们另外加入了Topping+WSSP/WPE和Topping+WPE的变形,第一个没有采用起点子节点剪枝和部分扩展,而第二个采用了起点子节点剪枝。展示该变形的实验结果可以清楚地看到本发明的两个技术分别对搜索速度起到的提升的作用。结果表明,在预处理信息相对稀疏的情况下,通过本发明提出的起点子节点剪枝和部分扩展技术,Topping+算法的搜索速度相较SRC提升了数倍,与Topping已相当接近,基本在一个数量级上。
表1实验所用地图
Figure BDA0002280336050000141
Figure BDA0002280336050000151
表2路径搜索结果对比。
StarCraft DAO BG Warcraft Rooms Mazes
SRC 29.3 13.7 10.1 9.9 26.6 57.7
Topping 8.0 5.8 2.9 2.4 8.3 39.3
Topping+WSSP/WPE 32.9 12.5 5.6 8.2 14.3 73.7
Topping+WPE 32.5 10.4 4.3 5.3 14.3 73.5
Topping+ 12.5 6.2 2.9 3.3 14.3 58.0
指标为平均搜索时间,单位为微秒。结果数目越小表明速度越快。纵轴为算法名称,横轴为地图集。
实施例二
在上述实施例一的基础上,本发明实施例还提供一种路径规划系统,包括存储器和处理器,所述存储器中存储有基于模式数据库的路径规划程序,在所述处理器运行所述路径规划程序时执行上述任意路径优化方法的步骤。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

Claims (9)

1.一种基于模式数据库的路径规划方法,其特征在于,包括以下步骤:
以均匀网格地图中塌缩跳点的网格点所在位置进行预处理;
获取起点和终点位置;
在起点与终点之间需要寻找最优复合主序路径时,采用connect-search方式在所有跳点中搜索最优路径,在连接过程中生成起始子节点时和/或在搜索过程中扩展跳点时均通过读取压缩模式数据库对不可能达到终点的路径进行剪枝;
根据剪枝后生成的起点子节点和/或搜索过程中生成的子节点搭建起点与终点之间的最优路径并存储。
2.如权利要求1所述的基于模式数据库的路径规划方法,其特征在于,所述以均匀网格地图中塌缩跳点的网格位置进行预处理的步骤中采用的是压缩模式数据库算法,包括:
对均匀网格地图进行结构分析,根据可通行点与障碍点的位置关系识别出所有轴向跳点;
为均匀网格地图上所有可通行节点的所有可通行方向计算跳跃距离表,并记载与该方向上下一跳点或与障碍物的距离;
根据所述轴向跳点在对角方向上利用跳跃距离表识别出所有对角跳点;
以每个跳点塌缩位置为源节点进行面向全地图的Dijkstra搜索,获取其对于所有可达节点的最优起始边;将上述对所有可达节点的最优边存储生成压缩模式数据库。
3.如权利要求2所述的基于模式数据库的路径规划方法,其特征在于,所述在起点与终点之间需要寻找最优复合主序路径时,采用connect-search方式在所有跳点中搜索最优路径,在生成起始子节点的过程中进行剪枝的步骤包括:
根据跳跃距离表获得起点所有符合对角优先原则的轴向跳点子节点;
在所述轴向跳点子节点的所有主序扩展方向与压缩模式数据库中存储的该节点的最优方向不存在交集时,删除该轴向跳点子节点;
遍历所有所述轴向跳点子节点,获得起始子节点。
4.如权利要求3所述的基于模式数据库的路径规划方法,其特征在于,所述采用connect-search方式在所有跳点中搜索最优路径,在起点与终点之间需要寻找最优复合主序路径时,搜索过程中在扩展跳点时进行剪枝的步骤包括:
以所有所述起始子节点作为待扩展跳点分别进行部分扩展;
对所述待扩展跳点在对角方向上扩展获取中转跳点;
读取所述中转跳点在压缩模式数据库中存储的最优边,与该中转跳点所有主序方向进行比较,检测二者是否存在交集;
二者存在交集,且交集中存在一轴向方向时,将该方向的轴向跳点生成子节点,并加入open表中,然后结束该分支的搜索,无需继续向下搜索。
5.如权利要求4所述的基于模式数据库的路径规划方法,其特征在于,所述读取所述中转跳点在压缩模式数据库中存储的最优边,与该中转跳点所有主序方向进行比较,检测二者是否存在交集的步骤还包括:
若无交集,则可结束该分支的搜索。
6.如权利要求4所述的基于模式数据库的路径规划方法,其特征在于,所述读取所述中转跳点在压缩模式数据库中存储的最优边,与该中转跳点所有主序方向进行比较,检测二者是否存在交集的步骤还包括:
二者存在交集,且交集中仅有一对角方向,则递归地重复中转跳点的扩展步骤。
7.如权利要求1~6任一项所述的基于模式数据库的路径规划方法,其特征在于,搜索最优路径时采用A*算法运行最佳优先搜索的流程。
8.如权利要求1所述的基于模式数据库的路径规划方法,其特征在于,所述在起点与终点之间需要寻找最优复合主序路径时的步骤之前还包括:
判断起点和终点是否为障碍物;
在起点和终点均非障碍物时,判断两者位置是否重合;
在起点和终点位置不重合时,判断是否存在一条简单主序路径连接起点与终点;
存在简单主序路径时,将所述简单主序路径作为最优路径并存储;不存在简单主序路径时,采用connect-search方式在所有跳点中搜索最优路径,进入剪枝步骤。
9.一种基于模式数据库的路径规划系统,其特征在于,包括存储器和处理器,所述存储器中存储有路径规划程序,在所述处理器运行所述路径规划程序时执行所述权利要求1~8任一项所述方法的步骤。
CN201911138914.3A 2019-11-20 2019-11-20 一种基于模式数据库的路径规划方法及系统 Active CN110975290B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911138914.3A CN110975290B (zh) 2019-11-20 2019-11-20 一种基于模式数据库的路径规划方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911138914.3A CN110975290B (zh) 2019-11-20 2019-11-20 一种基于模式数据库的路径规划方法及系统

Publications (2)

Publication Number Publication Date
CN110975290A true CN110975290A (zh) 2020-04-10
CN110975290B CN110975290B (zh) 2023-09-05

Family

ID=70085275

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911138914.3A Active CN110975290B (zh) 2019-11-20 2019-11-20 一种基于模式数据库的路径规划方法及系统

Country Status (1)

Country Link
CN (1) CN110975290B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111708364A (zh) * 2020-06-19 2020-09-25 南京理工大学 一种基于a*算法改进的agv路径规划方法
CN112229419A (zh) * 2020-09-30 2021-01-15 隶元科技发展(山东)有限公司 一种动态路径规划导航方法及系统
CN113607181A (zh) * 2021-08-05 2021-11-05 国网上海市电力公司 一种跳点搜索算法的优化方法
CN115845381A (zh) * 2023-02-07 2023-03-28 广州三七极耀网络科技有限公司 一种基于包围盒的快速寻路方法、装置、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105955280A (zh) * 2016-07-19 2016-09-21 Tcl集团股份有限公司 移动机器人路径规划和避障方法及系统
CN109115226A (zh) * 2018-09-01 2019-01-01 哈尔滨工程大学 基于跳点搜索的多机器人冲突避免的路径规划方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105955280A (zh) * 2016-07-19 2016-09-21 Tcl集团股份有限公司 移动机器人路径规划和避障方法及系统
CN109115226A (zh) * 2018-09-01 2019-01-01 哈尔滨工程大学 基于跳点搜索的多机器人冲突避免的路径规划方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CONG HU, QUANJUN YIN, YUE HU, JUNJIE ZENG, LONG QIN: "Speeding up FastMap for Pathfinding on Grid Maps" *
YUE HU, DANIEL HARABOR,LONG QIN, QUANJUN YIN, CONG HU: "Improving the Combination of JPS and Geometric Containers" *
YUE HU, QI ZHANG, LONG QIN, QUANJUN YIN: "Escaping Depressions in LRTS with Wall Following Method" *
赵晓;王铮;黄程侃;赵燕伟;: "基于改进A*算法的移动机器人路径规划" *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111708364A (zh) * 2020-06-19 2020-09-25 南京理工大学 一种基于a*算法改进的agv路径规划方法
CN111708364B (zh) * 2020-06-19 2024-05-21 南京理工大学 一种基于a*算法改进的agv路径规划方法
CN112229419A (zh) * 2020-09-30 2021-01-15 隶元科技发展(山东)有限公司 一种动态路径规划导航方法及系统
CN112229419B (zh) * 2020-09-30 2023-02-17 隶元科技发展(山东)有限公司 一种动态路径规划导航方法及系统
CN113607181A (zh) * 2021-08-05 2021-11-05 国网上海市电力公司 一种跳点搜索算法的优化方法
CN115845381A (zh) * 2023-02-07 2023-03-28 广州三七极耀网络科技有限公司 一种基于包围盒的快速寻路方法、装置、设备及介质

Also Published As

Publication number Publication date
CN110975290B (zh) 2023-09-05

Similar Documents

Publication Publication Date Title
CN110967015B (zh) 一种路径规划方法及系统
CN110975290A (zh) 一种基于模式数据库的路径规划方法及系统
CN109115226B (zh) 基于跳点搜索的多机器人冲突避免的路径规划方法
US20030223373A1 (en) Dual Dijkstra search for planning multipe paths
CN111504325A (zh) 一种基于扩大搜索邻域的加权a*算法的全局路径规划方法
CN111104471B (zh) 基于跳点路径搜索的模式数据库信息压缩方法及系统
CN105844364A (zh) 基于启发函数的服务机器人最优路径规划方法
CN114161416A (zh) 基于势函数的机器人路径规划方法
CN113485369A (zh) 改进a*算法的室内移动机器人路径规划和路径优化方法
CN110975291B (zh) 一种路径提取方法及系统
CN115167474A (zh) 一种移动机器人路径规划优化方法
CN113009916A (zh) 一种基于全局地图探索的路径规划方法、芯片及机器人
CN110705803B (zh) 基于三角形内心引导rrt算法的路径规划方法
CN114859909A (zh) 一种针对叉车式agv的路径规划方法及装置
CN111829526B (zh) 一种基于防撞半径的距离地图重构与跳点路径规划方法
CN110975288B (zh) 基于跳点路径搜索的几何容器数据压缩方法及系统
CN114577217B (zh) 基于冯洛诺伊图的路径规划方法、装置、设备及存储介质
US10191928B2 (en) Planar graph generation device and method
CN116560360A (zh) 面向复杂动态场景的医用护理机器人实时动态路径规划方法及系统
Primanita et al. Comparison of a* and iterative deepening a* algorithms for non-player character in role playing game
CN110222055A (zh) 一种动态图下多边更新的单轮核值维护方法
CN116449826A (zh) 基于路径平滑和双向跳点搜索的移动机器人路径规划方法
CN112256705B (zh) 一种Gaia系统中的多表连接优化方法
CN111323036B (zh) 原料场智能寻优路径方法、系统、电子设备和存储介质
JPH1166096A (ja) データ蓄積方法、そのデータ蓄積方法によって蓄積されたデータベース及びそのデータベースの検索方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant