CN112915541B - 跳点搜索方法、装置、设备及存储介质 - Google Patents

跳点搜索方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112915541B
CN112915541B CN202110371042.6A CN202110371042A CN112915541B CN 112915541 B CN112915541 B CN 112915541B CN 202110371042 A CN202110371042 A CN 202110371042A CN 112915541 B CN112915541 B CN 112915541B
Authority
CN
China
Prior art keywords
node
nodes
walking
blocking
searching
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.)
Active
Application number
CN202110371042.6A
Other languages
English (en)
Other versions
CN112915541A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110371042.6A priority Critical patent/CN112915541B/zh
Publication of CN112915541A publication Critical patent/CN112915541A/zh
Application granted granted Critical
Publication of CN112915541B publication Critical patent/CN112915541B/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
    • 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/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Remote Sensing (AREA)
  • Navigation (AREA)

Abstract

本申请公开了一种跳点搜索方法、装置、设备及存储介质,属于路径规划技术领域。所述方法包括:在网格地图中确定非行走节点的节点位置;根据非行走节点的节点位置,确定网格地图的预处理数据,预处理数据用于反映网格地图中的可行走节点与非行走节点的相对位置;根据预处理数据沿当前节点的第一搜索方向进行搜索,得到第一搜索方向上的跳点,跳点是路径前进方向发生改变的节点。在搜索跳点时,无需对当前节点周围的节点挨个进行搜索,而是基于预处理数据直接确定出无法通行的节点的位置,从而搜索到跳点。能够提升搜索跳点的效率,从而减少路径规划时消耗的时间,提升了路径规划的效率。

Description

跳点搜索方法、装置、设备及存储介质
技术领域
本申请涉及路径规划技术领域,特别涉及一种跳点搜索方法、装置、设备及存储介质。
背景技术
在基于网格地图实现控制寻路对象进行移动的场景下(例如控制虚拟角色在虚拟环境中移动的游戏以及控制机器人移动),由于网格地图中存在阻挡(也称阻挡节点,例如虚拟环境中的石头所在节点),因此需要进行路径规划。
为提升路径规划效率,避免在路径规划时搜索网格地图中的全部节点,客户端通常采用跳点搜索(Jump Point Search,JPS)算法实现上述路径规划。客户端会从起始节点开始沿搜索方向(包括轴方向以及对角方向)搜索网格地图中的跳点,并在搜索到跳点后,沿搜索到的该跳点的搜索方向继续搜索下一个跳点,直至搜索到终止节点。客户端会基于搜索到的跳点(包括起始节点、终止节点以及起始节点与终止节点间的跳点)实现规划路径,规划的寻路路径会经过搜索到的跳点。其中,跳点是导致路径前进方向发生改变的节点,具体是根据网格地图中阻挡节点的位置确定的。基于上述方式可以确定一条避开阻挡的寻路路径。
当网格地图中节点数量较多时,在进行路径规划时仍需要对大量节点周围的节点挨个进行搜索才能确定出跳点,会导致路径规划的消耗时间较长,效率较低的问题。
发明内容
本申请提供了一种跳点搜索方法、装置、设备及存储介质,可以提升路径规划的效率。所述技术方案如下:
根据本申请的一方面,提供了一种跳点搜索方法,所述方法包括:
在网格地图中确定非行走节点的节点位置;
根据所述非行走节点的节点位置,确定所述网格地图的预处理数据,所述预处理数据用于反映所述网格地图中的可行走节点与所述非行走节点的相对位置;
根据所述预处理数据沿当前节点的第一搜索方向进行搜索,得到所述第一搜索方向上的跳点,所述跳点是路径前进方向发生改变的节点。
根据本申请的另一方面,提供了一种跳点搜索装置,所述装置包括:
确定模块,用于在网格地图中确定非行走节点的节点位置;
处理模块,用于根据所述非行走节点的节点位置,确定所述网格地图的预处理数据,所述预处理数据用于反映所述网格地图中的可行走节点与所述非行走节点的相对位置;
搜索模块,用于根据所述预处理数据沿当前节点的第一搜索方向进行搜索,得到所述第一搜索方向上的跳点,所述跳点是路径前进方向发生改变的节点。
在一个可选的设计中,所述搜索模块,用于:
根据所述预处理数据,在所述当前节点的两侧节点中确定目标阻挡节点,所述两侧节点的排布方向与所述第一搜索方向平行,所述两侧节点与待确认节点相邻,所述待确认节点是处于所述第一搜索方向上的节点;
根据所述目标阻挡节点的节点位置,沿所述第一搜索方向进行搜索,得到所述跳点。
在一个可选的设计中,所述非行走节点包括阻挡节点以及动态阻挡节点中的至少之一,所述阻挡节点是无法通行的节点,所述动态阻挡节点是可通行状态随变化因素变化的节点,所述可通行状态用于指示所述动态阻挡节点能否通行;所述搜索模块,用于:
根据所述预处理数据,在所述两侧节点中确定目标非行走节点;
响应于所述目标非行走节点满足阻挡条件,将所述目标非行走节点确定为所述目标阻挡节点,所述阻挡条件包括所述目标非行走节点为所述阻挡节点,或,所述目标非行走节点为所述动态阻挡节点,且所述动态阻挡节点的可通行状态为无法通行。
在一个可选的设计中,所述搜索模块,用于:
根据所述目标阻挡节点的节点位置,在所述待确认节点中确定具有强迫邻居的目标待确认节点,所述强迫邻居是所述目标待确认节点和所述目标阻挡节点共同相邻的节点,所述强迫邻居位于所述第一搜索方向的前方;
将所述目标待确认节点确定为所述跳点。
在一个可选的设计中,所述网格地图基于正六边形节点构建,所述预处理数据包括所述网格地图中各节点在候选搜索方向上到所述非行走节点的距离。
在一个可选的设计中,所述非行走节点包括动态阻挡节点,所述动态阻挡节点是可通行状态随变化因素变化的节点,所述可通行状态用于指示所述动态阻挡节点能否通行;所述装置还包括:
终止模块,用于响应于所述当前节点与所述跳点之间存在所述非行走节点,且所述非行走节点为所述阻挡节点,或,所述非行走节点为所述动态阻挡节点,且所述动态阻挡节点的可通行状态为无法通行,舍弃所述跳点,并终止在所述第一搜索方向上搜索跳点;
所述搜索模块,用于根据所述预处理数据沿所述当前节点的第二搜索方向进行搜索,所述第二搜索方向与所述第一搜索方向不同。
在一个可选的设计中,所述确定模块,用于响应于在所述第一搜索方向上搜索到至少两个跳点,将与所述当前节点距离最短的跳点确定为所述跳点。
在一个可选的设计中,所述搜索模块,用于在所述第一搜索方向上搜索终止节点,所述终止节点是寻路路径的终点;
所述终止模块,用于响应于在所述第一搜索方向上搜索到所述终止节点,结束执行所述根据所述预处理数据沿所述当前节点的所述第一搜索方向进行搜索的步骤。
在一个可选的设计中,所述非行走节点包括动态阻挡节点,所述动态阻挡节点是可通行状态随变化因素变化的节点,所述可通行状态用于指示所述动态阻挡节点能否通行;所述装置还包括:
第一更新模块,用于响应于所述网格地图中静态节点的可通行状态产生变化,基于更新后的所述网格地图中所述非行走节点的节点位置更新所述预处理数据,所述静态节点为所述网格地图中除所述动态阻挡节点以外的节点。
在一个可选的设计中,所述确定模块,用于将节点集合中权重值最低的待搜索节点确定为所述当前节点,所述权重值是起始节点到所述待搜索节点的路径的距离和所述待搜索节点到终止节点的预估路径的距离之和;
其中,所述节点集合用于存储所述待搜索节点,所述起始节点是寻路路径的起点。
在一个可选的设计中,所述装置还包括:
第二更新模块,用于将所述跳点加入所述节点集合,以更新所述节点集合。
根据本申请的另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上方面所述的跳点搜索方法。
根据本申请的另一方面,提供了一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上方面所述的跳点搜索方法。
根据本申请的另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的跳点搜索方法。
本申请提供的技术方案带来的有益效果至少包括:
通过根据网格地图中非行走节点的位置确定预处理数据,并根据预处理数据在网格地图中搜索跳点。在搜索跳点时,无需对当前节点周围的节点挨个进行搜索,而是基于预处理数据直接确定出无法通行的节点的位置,从而搜索到跳点。能够提升搜索跳点的效率,从而减少路径规划时消耗的时间,提升了路径规划的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的网格地图中的跳点的示意图;
图2是本申请一个示例性实施例提供的终端的结构示意图;
图3是本申请一个示例性实施例提供的计算机系统的结构框图;
图4是本申请一个示例性实施例提供的跳点搜索方法的流程示意图;
图5是本申请另一个示例性实施例提供的跳点搜索方法的流程示意图;
图6是本申请一个示例性实施例提供的基于正六边形节点构建的网格地图的预处理数据的示意图;
图7是本申请一个示例性实施例提供的基于正四边形节点构建的网格地图的预处理数据的示意图;
图8是本申请一个示例性实施例提供的确定网格地图的预处理数据的实现过程的示意图;
图9是本申请一个示例性实施例提供的两侧节点的示意图;
图10是本申请一个示例性实施例提供网格地图的示意图;
图11是本申请另一个示例性实施例提供网格地图的示意图;
图12是本申请又一个示例性实施例提供网格地图的示意图;
图13是本申请另一个示例性实施例提供的基于正六边形节点构建的网格地图的预处理数据的示意图;
图14是本申请一个示例性实施例提供的基于预处理数据进行路径规划的过程的示意图;
图15是本申请一个示例性实施例提供的跳点搜索装置的结构示意图;
图16是本申请另一个示例性实施例提供的跳点搜索装置的结构示意图;
图17是本申请又一个示例性实施例提供的跳点搜索装置的结构示意图;
图18是本申请再一个示例性实施例提供的跳点搜索装置的结构示意图;
图19是本申请一个示例性实施例提供的终端的结构示意图。
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例中涉及的名词进行介绍:
网格地图:用于实现控制寻路对象进行移动,寻路对象能够在网格地图中的不同节点之间进行移动。例如基于网格地图构建的游戏,通过控制虚拟角色在网格地图中移动,实现在虚拟环境中移动的效果。网格地图通常由正四边形节点或正六边形节点构成。在基于正四边形节点构建的网格地图中,寻路对象能够沿正四边形网格的轴方向以及对角方向移动。在基于正六边形节点构建的网格地图中,寻路对象能够沿正六边形网格的轴方向移动。本申请实施例提供的方法主要以应用在基于无权重的正六边形网格构建的网格地图中为例进行说明。无权重指在正六边形网格的任一轴方向朝相邻网格的移动代价(移动距离)始终为1。本申请实施例提供的方法还能够应用在基于无权重正四边形网格构建的网格地图中。
寻路:通常表示在网格地图中根据规则为运动物体寻找一条可移动的路径。其中,网格地图可以是正四边形网格地图,也可以是正六边形网格地图,还可以是其他类型的网格地图。
节点:构成网格地图的正四边形或正六边形,被称为节点。本申请实施例中的非行走节点、阻挡节点、动态阻挡节点、跳点、强迫邻居、起始节点、终止节点等均为网格地图中的节点。
节点集合:寻路过程中待搜索的节点组成的节点列表,也可称为开启列表(OpenList)。
关闭节点集合:寻路过程中已经搜索过的节点组成的节点列表,也可称为关闭列表(CloseList)。
跳点:跳点是网格地图中导致路径前进方向发生改变的节点,规划的路径通常会经过跳点,从而保证路径最优,因此寻找网格地图中的跳点对于路径规划具有重要意义。跳点是根据网格地图中阻挡的位置确定的。示例地,图1是本申请一个示例性实施例提供的网格地图中的跳点的示意图。如图1所示,在基于正六边形节点构建的网格地图中,节点p为当前节点,箭头所指方向是搜索方向,该搜索方向为向右的轴方向,黑色节点是阻挡节点,在节点p的搜索方向上发现节点x。节点x、节点n和阻挡节点互为邻居节点,且节点n位于搜索方向的前方,阻挡节点在搜索方向上位于节点x之后,此时,节点p经过节点x到达节点n的路径的长度,比任何节点p不经过节点x到达节点n的路径的长度均更短。可以认为,节点n是节点x的强迫邻居,节点x是节点n的跳点。
根据正六边形的不同排布方式,在基于正六边形节点构建的网格地图中,可以采用不同的坐标系系统。本申请实施例以坐标系系统为立方体坐标系(Cube coordinates)为例。示意性的,坐标轴x、y、z呈60°夹角。其中,坐标系中的一个格子相当于网格地图中的一个节点,每个格子的坐标为(x,y,z),其中每个格子的坐标均满足x+y+z=0,图1中标有(x,y,z)坐标的节点为坐标系的原点。另外,坐标系中,坐标轴的方向是轴方向,两个坐标轴之间形成对角方向。也即,相对于正六边形而言,每个边对应一个轴方向,每个对角对应一个对角方向。
本申请实施例提供的跳点搜索方法,可用于智能机器人(例如扫地机器人)行进路径的确定过程中,或者自动驾驶路径的确定过程中,或者游戏中的虚拟角色的行进路径的确定过程中,或者其他基于正六边形网格地图的行进路径的确定过程中。示意性的,本申请实施例提供的跳点搜索方法,还可以放置于区块链上加以使用。
本申请中提供的方法可以应用于具有虚拟环境和虚拟角色的应用程序中。示例性的,支持虚拟环境的应用程序是用户可以控制虚拟角色在虚拟环境内移动的应用程序。示例性的,本申请中提供的方法可以应用于:虚拟现实(Virtual Reality,VR)应用程序、增强现实(Augmented Reality,AR)程序、三维地图程序、虚拟现实游戏、增强现实游戏、第一人称射击游戏(First-Person Shooting Game,FPS)、第三人称射击游戏(Third-PersonShooting Game,TPS)、多人在线战术竞技游戏(Multiplayer Online Battle ArenaGames,MOBA)、策略游戏(Simulation Game,SLG)中的任意一种程序。
示例性的,虚拟环境中的游戏由一个或多个游戏世界的地图构成,游戏中的虚拟环境模拟现实世界的场景,用户可以操控游戏中的虚拟角色在虚拟环境中进行行走、跑步、跳跃、射击、格斗、驾驶、使用虚拟武器攻击其他虚拟角色、使用虚拟武器蓄力攻击其他虚拟角色等动作,交互性较强,并且多个用户可以在线组队进行竞技游戏。
在一些实施例中,上述应用程序可以是射击类游戏、竞速类游戏、角色扮演类游戏、冒险类游戏、沙盒游戏、战术竞技游戏等程序。该客户端可以支持Windows操作系统、苹果操作系统、安卓操作系统、IOS操作系统和LINUX操作系统中的至少一种操作系统,并且不同操作系统的客户端可以互联互通。在一些实施例中,上述客户端是适用于具有触摸屏的移动终端上的程序。
在一些实施例中,上述客户端是基于三维引擎开发的应用程序,比如三维引擎是Unity引擎。
本申请中的终端可以是台式计算机、膝上型便携计算机、手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器等等。该终端中安装和运行有支持虚拟环境的客户端,比如支持三维虚拟环境的应用程序的客户端。该应用程序可以是战术竞技生存(Battle Royale,BR)游戏、虚拟现实应用程序、增强现实程序、三维地图程序、第三人称射击游戏、第一人称射击游戏、多人在线战术竞技游戏中的任意一种。可选地,该应用程序可以是单机版的应用程序,比如单机版的3D游戏程序,也可以是网络联机版的应用程序。
图2是本申请一个示例性实施例提供的终端的结构示意图,该终端包括处理器201以及存储器203。可选地,当通过触摸屏触发寻路指令时,该终端还能够包括触摸屏202。该寻路指令用于触发为寻路对象规划寻路路径。
处理器201可以是单核处理器、多核处理器、嵌入式芯片以及具有指令运行能力的处理器中的至少一种。
触摸屏202包括普通触摸屏或压力感应触摸屏。普通触摸屏可以对施加在触摸屏202上的按压操作或滑动操作进行测量;压力感应触摸屏可以对施加在触摸屏202上的按压力度进行测量。
存储器203存储有处理器201的可执行程序。示意性的,存储器203中存储有虚拟环境程序A、应用程序B、应用程序C、触摸压力感应模块28、操作系统的内核层29。其中,虚拟环境程序A为基于三维虚拟环境模块27开发的应用程序。可选地,虚拟环境程序A包括但不限于由三维虚拟环境模块(也称虚拟环境模块)27开发的游戏程序、虚拟现实程序、三维地图程序、三维演示程序中的至少一种。比如,终端的操作系统采用安卓操作系统时,虚拟环境程序A采用Java编程语言以及C#语言进行开发;又比如,终端的操作系统采用IOS操作系统时,虚拟环境程序A采用Object-C编程语言以及C#语言进行开发。
三维虚拟环境模块27是一款支持多种操作系统平台的模块,示意性的,三维虚拟环境模块可用于游戏开发领域、虚拟现实(Virtual Reality,VR)领域以及三维地图领域等多领域的程序开发,本申请实施例对三维虚拟环境模块27的具体类型不限,在下文实施例中以三维虚拟环境模块27是使用Unity引擎开发的模块为例来举例说明。
触摸(以及压力)感应模块28是用于接收触摸屏驱动程序291所上报的触摸事件(以及压力触控事件)的模块,可选地,触摸感应模块可以不具有压力感应功能,不接收压力触控事件。触摸事件包括:触摸事件的类型和坐标值,触摸事件的类型包括但不限于:触摸开始事件、触摸移动事件和触摸落下事件。压力触控事件中包括:压力触控事件的压力值以及坐标值。该坐标值用于指示压力触控操作在显示屏上的触控位置。可选地,以显示屏的水平方向建立横坐标轴,显示屏的竖直方向建立竖坐标轴得到一个二维坐标系。
示意性的,内核层29包括了触摸屏驱动程序291以及其它驱动程序292。触摸屏驱动程序291是用于检测压力触控事件的模块,当触摸屏驱动程序291检测到压力触控事件后,将压力触控事件传递给压力感应模块28。
其它驱动程序292可以是与处理器201有关的驱动程序、与存储器203有关的驱动程序、与网络组件有关的驱动程序、与声音组件有关的驱动程序等。
可选的,终端也可以通过游戏控制器来控制虚拟角色在虚拟环境中的移动,不需要设置触摸屏202记忆存储器203中包括的与触摸屏相应的处理模块。本领域技术人员可以知晓,上述仅为对终端的结构的概括性示意。在不同的实施例中,终端可以具有更多或更少的组件。比如,终端还可以包括重力加速度传感器、陀螺仪传感器、电源等。
图3是本申请一个示例性实施例提供的计算机系统的结构框图,该计算机系统300包括:终端310、服务器320。
终端310安装和运行有支持虚拟环境的客户端311,该客户端311可以是支持虚拟环境的应用程序。比如,客户端311是运行有基于正六边形网格地图的游戏应用程序。当终端运行客户端311时,终端310的屏幕上显示客户端311的用户界面。该客户端可以是FPS游戏、TPS游戏、MOBA游戏、战术竞技游戏、SLG游戏的任意一种。终端310是用户312使用的终端,用户312使用终端310控制位于虚拟环境中的虚拟角色进行活动,虚拟角色可以称为用户312的虚拟角色。虚拟角色的活动包括但不限于:调整身体姿态、爬行、步行、奔跑、骑行、飞行、跳跃、驾驶、拾取、射击、攻击、投掷中的至少一种。示意性的,虚拟角色是虚拟角色,比如仿真人物角色或动漫人物角色。
终端310的设备类型包括:智能手机、平板电脑、电子书阅读器、MP3播放器、MP4播放器、膝上型便携计算机和台式计算机中的至少一种。
图3中仅示出了一个终端,但在不同实施例中存在多个其它终端330。在一些实施例中,还存在至少一个其它终端330是开发者对应的终端,在其它终端330上安装有虚拟环境的客户端的开发和编辑平台,开发者可在其它终端330上对客户端进行编辑和更新,并将更新后的客户端安装包通过有线或无线网络传输至服务器320,终端310可从服务器320下载客户端安装包实现对客户端的更新。
终端310和其它终端330通过无线网络或有线网络与服务器320相连。
服务器320包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。服务器320用于为支持三维虚拟环境的客户端提供后台服务。可选地,服务器320承担主要计算工作,终端承担次要计算工作;或者,服务器320承担次要计算工作,终端承担主要计算工作;或者,服务器320和终端之间采用分布式计算架构进行协同计算。
可选地,上述终端和服务器均为计算机设备。
在一个示意性的例子中,服务器320包括处理器321、用户帐号数据库322、对战服务模块323、面向用户的输入/输出接口(Input/Output Interface,I/O接口)324。其中,处理器321用于加载服务器320中存储的指令,处理用户帐号数据库322和对战服务模块323中的数据;用户帐号数据库322用于存储终端310以及其它终端330所使用的用户帐号的数据,比如用户帐号的头像、用户帐号的昵称、用户帐号的战斗力指数,用户帐号所在的服务区;对战服务模块323用于提供多个对战房间供用户进行对战;面向用户的I/O接口324用于通过无线网络或有线网络和终端310建立通信交换数据。
图4是本申请一个示例性实施例提供的跳点搜索方法的流程示意图。该方法可以用于计算机设备或计算机设备上的客户端。如图4所示,该方法包括:
步骤402:在网格地图中确定非行走节点的节点位置。
该网格地图基于无权重的正六边形节点构建,还能够基于无权重的正四边形节点构建。该非行走节点为网格地图中能够形成阻挡的节点。当非行走节点形成阻挡时,寻路对象无法在该非行走节点通行。可选地,非行走节点包括阻挡节点以及动态阻挡节点中的至少之一。阻挡节点是无法通行的节点,例如石头及树木等障碍物所在的节点。动态阻挡节点是可通行状态随变化因素变化的节点,可通行状态用于指示动态阻挡节点能否通行,变化因素包括根据时间变化、根据指定条件变化以及根据寻路对象变化。寻路对象为需要进行路径规划的对象,例如为游戏中的虚拟角色。客户端通过获取网格地图对应的地图数据,能够实现在网格地图中确定非行走节点的节点位置。
示例地,网格地图中的节点A为非行走节点,节点A能够由某一寻路对象占领。寻路对象A在网格地图中占领节点A,此时节点A对于寻路对象A来说是可通行的节点,但对寻路对象B来说是不可通行的节点(阻挡节点)。之后寻路对象B在网格地图中占领节点A,此时节点A对于寻路对象A来说是不可通行的节点,但对寻路对象B来说是可通行的节点。
步骤404:根据非行走节点的节点位置,确定网格地图的预处理数据。
该预处理数据用于反映网格地图中的可行走节点与非行走节点的相对位置。可行走节点为网格地图中能够通行的节点,且可通行状态不随变化因素变化。客户端能够根据该预处理信息,基于某一可行走节点确定出附近的非行走节点的位置。可选地,当网格地图基于正六边形节点构建时,该预处理数据包括网格地图中的节点在轴方向到非行走节点的距离。
步骤406:根据预处理数据沿当前节点的第一搜索方向进行搜索,得到第一搜索方向上的跳点。
跳点是路径前进方向发生改变的节点,跳点是根据不可通行的节点的位置确定的。客户端根据预处理数据,能够确定出不可通行的节点的位置,进而确定出跳点的位置。当前节点包括起始节点以及客户端已搜索到的任一跳点。起始节点指寻路路径的起点。可选地,客户端在进行跳点搜索时,会从已搜索到的跳点中确定出权重值最低的跳点作为当前节点,该权重值是起始节点到已搜索到的跳点的路径的距离和已搜索到的跳点到终止节点的预估路径的距离之和。终止节点指寻路路径的终点。其中,预估路径是已搜索到的跳点到达终止节点的预计代价,可以是两个节点之间的直线路径,也可以是基于相关函数计算得到的估计路径。
该第一搜索方向包括轴方向以及对角方向中的至少之一。其中,正六边形的轴方向是指正六边形的中心与六条边中的一个的中点构成的直线方向,对角方向是指正六边形的中心与六个对角中的一个构成的直线方向。示意性的,正六边形包括六个轴方向和六个对角方向。客户端通常选择当前节点的轴方向以及对角方向中的一个方向,作为第一搜索方向。当在第一搜索方向搜索结束后,会从当前节点的轴方向以及对角方向中选择另一个方向继续进行搜索。网格地图基于正六边形节点构建时,第一搜索方向指轴方向。在正六边形节点沿对角方向进行搜索时,会分解为相邻的两个轴方向进行搜索。当网格地图基于正四边形节点构建时,第一搜索方向指轴方向以及对角方向。
示例地,继续参照图1,节点p为当前节点,其第一搜索方向包括轴方向中的左上方向、右上方向、左方向、右方向、左下方向以及右下方向中的任一方向。
客户端根据预处理数据能够在第一搜索方向上的节点的两侧确定出不可通行的节点,之后根据不可通行的节点的位置确定第一搜索方向上的节点是否具有强迫邻居,当具有强迫邻居时,客户端能够将具有强迫邻居的第一搜索方向上的节点确定为跳点。
客户端在确定出跳点之后,能够基于已搜索到的跳点再次确定出当前节点,并在当前节点的搜索方向上继续搜索跳点。当客户端在搜索跳点的过程中搜索到终止节点时,视为搜索跳点结束,不再搜索跳点。此时客户端能够根据起始节点、搜索到的跳点以及终止节点,规划出寻路路径。
当客户端接收到路径规划指令时,开始执行上述搜索跳点的步骤。该路径规划指令携带有起始节点以及终止节点的位置。该路径规划指令是由使用客户端的用户触发的。在客户端在根据上述方法搜索跳点时,能够与其他路径规划算法结合,加快搜索跳点的速度,从而提升规划路径的速度。
需要说明的是,本申请实施例提供的方法,能够由客户端执行,也能够由终端执行,还能够由服务器执行。当由服务器执行时,客户端会向服务器发送路径规划指令,服务器根据路径规划指令搜索跳点并基于搜索到的跳点规划出寻路路径,之后将规划的寻路路径发送至客户端,客户端控制寻路对象在网格地图中沿寻路路径移动。该服务器为一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心中的虚拟服务器等。
可选地,本申请实施例提供的方法,可用于以正六边形网格地图作为场景的大型多人在线游戏(Massive Multiplayer Online,MMO)、策略类游戏(Simulation Game,SLG)等中以提高此类游戏中地图中的寻路速度,能够快速地为玩家提供一条从起始节点到终止节点的移动路径。
综上所述,本实施例提供的方法,根据网格地图中非行走节点的位置确定预处理数据,并根据预处理数据在网格地图中搜索跳点。在搜索跳点时,无需对当前节点周围的节点挨个进行搜索,而是基于预处理数据直接确定出无法通行的节点的位置,从而搜索到跳点。能够提升搜索跳点的效率,从而减少路径规划时消耗的时间,提升了路径规划的效率。
图5是本申请另一个示例性实施例提供的跳点搜索方法的流程示意图。该方法可以用于计算机设备或计算机设备上的客户端。如图5所示,该方法包括:
步骤502:在网格地图中确定非行走节点的节点位置。
该非行走节点为网格地图中能够形成阻挡的节点,当非行走节点形成阻挡时,寻路对象无法在该非行走节点通行。可选地,非行走节点包括阻挡节点以及动态阻挡节点中的至少之一,阻挡节点是无法通行的节点,动态阻挡节点是可通行状态随变化因素变化的节点,可通行状态用于指示动态阻挡节点能否通行。变化因素包括根据时间变化、根据指定条件变化以及根据寻路对象变化。
步骤504:根据非行走节点的节点位置,确定网格地图的预处理数据。
该预处理数据用于反映网格地图中的可行走节点与非行走节点的相对位置。客户端能够根据该预处理信息,基于某一可行走节点确定出附近的非行走节点的位置。可选地,网格地图基于正六边形节点构建,预处理数据包括网格地图中各节点在候选搜索方向上到非行走节点的距离。该候选搜索方向包括网格地图中的轴方向以及对角方向。该预处理数据用于实现快速在网格地图中确定非行走节点的位置,从而能够提升搜索跳点的效率。
示例地,图6是本申请一个示例性实施例提供的基于正六边形节点构建的网格地图的预处理数据的示意图。如图6所示,网格地图的节点中的数字,用于表示该数字对应方向的移动距离,该数字对应的方向为该数字对应的边向节点外移动的轴方向。其中,正数距离表示该方向移动n(该数字)步后可能遇到阻挡(非行走节点),客户端能够直接判断该n步远的节点相对寻路对象是否为阻挡,如果不是阻挡继续向后查找非行走节点。负数距离表示移动n+1(该数字的绝对值+1)步后碰到网格地图的边界。距离为0表示超该方向一步都无法移动,无需在这个方向上搜索跳点。在该网格地图中,节点1与节点2为阻挡节点,根据数字可知,节点3沿右下的轴方向移动到节点1所在位置的距离为2步,节点4沿右上的轴方向移动到节点2所在位置的距离为1步。
示例地,图7是本申请一个示例性实施例提供的基于正四边形节点构建的网格地图的预处理数据的示意图。如图7所示,网格地图的节点中的数字,用于表示该数字对应方向的移动距离,该数字对应的方向包括该数字对应的边向节点外移动的轴方向,并且由于正四边形支持对角方向移动,该数字对应的方向还包括该数字对应的角向节点外移动的对角方向。数字所表示的含义可参照图6中的示例本申请在此不做赘述。在该网格地图中,节点5、节点6、节点7以及节点8为阻挡节点,根据数字可知,节点9沿右下的对角方向移动到节点5所在位置的距离为1步,节点10沿向左的轴方向移动到节点7所在位置的距离为1步。另外,当节点5为动态阻挡节点,且此时可通行时,节点9沿右下的对角方向移动时遇到的阻挡为节点7,且移动的距离为2步。
步骤506:将节点集合中权重值最低的待搜索节点确定为当前节点。
该节点集合用于存储待搜索节点,客户端能够在待搜索节点的搜索方向上搜索跳点。该节点集合也称为开启列表(OpenList)。该权重值是起始节点到待搜索节点的路径的距离和待搜索节点到终止节点的预估路径的距离之和。起始节点是寻路路径的起点。其中,预估路径是已搜索到的跳点到达终止节点的预计代价,可以是两个节点之间的直线路径,也可以是基于相关函数计算得到的估计路径,以下以预估路径采用启发函数计算得到为例。
示意性的,将权重值最小的已搜索到的跳点设置为当前节点。
具体的,已搜索到的跳点n(即下文中的节点n)的权重值可视为f(n)=g(n)+h(n)。示意性的,g(n)是起始节点到达节点n的路径的长度,h(n)是节点n到达终止节点的预估路径。
在正六边形网格地图的坐标系中,路径的长度视为节点到节点之间的距离之和,一个节点到邻居节点的距离为1,到对角节点的距离为2。示意性的如图1所示,节点p到邻居节点x的距离为1,节点p到对角节点n的距离为2。
其中,g(n)是起始节点到达节点n经过的距离。比如,起始节点经过多个节点到达节点n,此时g(n)相当于每两个节点之间的距离之和。
h(n)是节点n到达终止节点可能经过的距离,该距离可以称之为节点n到达终止节点的预计代价,可采用启发函数进行计算。假设节点n的坐标值为(x1,y1,z1),终止节点的坐标值为(x2,y2,z2),根据启发函数可以求得:
g(n)=(abs(x2-x1)+abs(y2-y1)+abs(z2-z1))/2,
其中,abs(i)函数是绝对值函数。
比如,节点n的坐标值为(1,2,-3),终止节点的坐标值为(0,-3,3),则g(n)=(abs(0-1)+abs((-3)-2)+abs(3-(-3)))/2,计算可得,g(n)的值为6。
通过将节点集合中权重值最低的待搜索节点确定为当前节点,基于该方式搜索到的跳点所规划的路径,为距离较短的路径,能够提升用户体验。
步骤508:根据预处理数据沿当前节点的第一搜索方向进行搜索,得到第一搜索方向上的跳点。
跳点是路径前进方向发生改变的节点,跳点是根据不可通行的节点的位置确定的。客户端根据预处理数据,能够确定出不可通行的节点的位置,进而确定出跳点的位置。该第一搜索方向包括轴方向以及对角方向中的至少之一。
可选地,如图8所示,步骤504的实现过程包括以下步骤5082以及步骤5084:
在步骤5082中,根据预处理数据,在当前节点的两侧节点中确定目标阻挡节点。
该目标阻挡节点为不可通行的节点。当前节点的两侧节点的排布方向与第一搜索方向平行,并且,两侧节点与待确认节点相邻,该待确认节点是处于第一搜索方向上的节点。
在网格地图中的非行走节点包括动态阻挡节点时,客户端根据预处理数据,能够在两侧节点中确定出目标非行走节点。之后客户端判断目标非行走节点是否满足阻挡条件(是否可通行),响应于目标非行走节点满足阻挡条件,客户端会将目标非行走节点确定为目标阻挡节点。该阻挡条件包括目标非行走节点为阻挡节点,或,目标非行走节点为动态阻挡节点,且动态阻挡节点的可通行状态为无法通行。根据预处理数据先确定目标非行走点,再确定目标阻挡节点,使得预处理数据能够支持在存在动态阻挡节点的场景下使用,扩大了应用范围。
示例地,图9是本申请一个示例性实施例提供的两侧节点的示意图。如图9所示,节点11为当前节点,搜索方向为向右。节点11的两侧节点包括搜索方向上方的黑色节点12队列,包括6个节点。节点11的两侧节点还包括搜索方向下方的黑色节点13队列,包括5个节点。客户端根据预处理数据,首先确定节点11右上方的节点是否为非行走节点,之后再在节点11右上方的节点的右方确定是否存在非行走节点,从而确定出节点11搜索方向上方的目标非行走节点,并判断可通行状态。客户端根据预处理数据,还能够确定节点11右下方的节点是否为非行走节点,之后再在节点11右下方的节点的右方确定是否存在非行走节点,从而确定出节点11搜索方向下方的目标非行走节点,并判断可通行状态。进而在两侧节点中确定出目标阻挡节点。
在步骤5084中,根据目标阻挡节点的节点位置,沿第一搜索方向进行搜索,得到跳点。
客户端根据目标阻挡节点的节点位置,在待确认节点中确定具有强迫邻居的目标待确认节点,该强迫邻居是目标待确认节点和目标阻挡节点共同相邻的节点,且强迫邻居位于第一搜索方向的前方,强迫邻居与目标阻挡节点所在方向与第一搜索方向平行。当客户端确定出具有强迫邻居的目标待确认节点后,会将该目标待确认节点确定为跳点,从而实现在第一搜索方向上搜索跳点。通过根据目标阻挡节点的节点位置,在第一搜索方向上确定具有强迫邻居的节点,从而确定出跳点,提供了一种简单便捷的确定跳点的方式。并且,在此过程中,客户端无需对当前节点周围的全部节点挨个进行搜索,而是根据预处理数据先直接搜索到目标阻挡节点,再根据目标阻挡节点的节点位置在第一搜索方向上搜索跳点。先确定目标阻挡节点,再根据目标阻挡节点的位置搜索跳点,实现充分利用预处理数据来快速搜索跳点。
响应于当前节点与跳点之间存在非行走节点,且非行走节点满足阻挡条件,客户端会舍弃搜索到的跳点,并终止在第一搜索方向上搜索跳点。即当客户端搜索到的跳点与当前节点之间存在无法通行的节点时,客户端会舍弃该跳点。客户端能够根据预处理数据,确定跳点与当前节点之间是否存在无法通行的节点。之后客户端会根据预处理数据沿当前节点的第二搜索方向进行搜索,该第二搜索方向与第一搜索方向不同。通过上述过程,能够实现避免搜索到当前节点无法到达的跳点,从而避免规划的规划路径错误。示例地,图10是本申请一个示例性实施例提供网格地图的示意图。如图10所示,节点14的搜索方向向右,客户端根据预处理数据,在节点14的两侧节点中确定节点16为目标阻挡节点。之后在节点14的搜索方向上确定节点17具有强迫邻居节点18,确定节点17为跳点。客户端根据预处理数据,在节点14与节点17之间搜索到阻挡节点15,则此时客户端会舍弃节点17,并停止在向右的搜索方向搜索跳点。
响应于在第一搜索方向上搜索到至少两个跳点,客户端将与当前节点距离最短的跳点确定为搜索到的跳点,从而能够避免后续搜索跳点时遗漏跳点。示例地,图11是本申请另一个示例性实施例提供网格地图的示意图。如图11所示,节点19的搜索方向向右,客户端根据预处理数据,在节点19的两侧节点中确定节点20、节点21以及节点22为目标阻挡节点,确定节点23为阻挡节点。之后在节点19的搜索方向上确定节点24、节点25以及节点26均具有强迫邻居,则节点24、节点25以及节点26均为跳点。此时客户端会分别确定节点24、节点25以及节点26与节点19的距离,并将距离节点19最近的节点24作为最终搜索到的跳点。
由于搜索跳点是通过预处理数据直接搜索的,而不是对当前节点附近的节点挨个搜索,为避免在搜索跳点的过程中遗漏终止节点,导致无法结束搜索跳点的流程以及规划路径错误,客户端还会在搜索跳点的过程中,在第一搜索方向上搜索终止节点。响应于在第一搜索方向上搜索到终止节点,客户端结束执行根据预处理数据沿当前节点的第一搜索方向进行搜索的步骤。此时视为搜索跳点的流程结束,客户端能够根据搜索到的跳点进行路径规划。示例地,图12是本申请又一个示例性实施例提供网格地图的示意图。如图12所示,节点27的搜索方向向右,客户端在节点27的搜索方向搜索跳点的过程中,搜索到节点28为终止节点。此时客户端会结束搜索跳点的流程。
步骤510:将跳点加入节点集合,以更新节点集合。
客户端将搜索到的跳点加入节点集合,能够实现更新节点集合。并且使得搜索到的跳点成为待搜索节点中的一个。通过将跳点加入节点集合来更新节点集合,使得客户端能够根据节点集合循环确定当前节点,进而持续搜索跳点,直至搜索到终止节点。
步骤512:基于更新后的节点集合再次确定当前节点,并基于当前节点搜索跳点,直至搜索到终止节点。
当客户端完成在当前节点的各搜索方向搜索跳点后,能够根据更新后的节点集合,再次确定出新的当前节点。此时确定的当前节点为更新后的节点集合中权重值最低的节点。之后客户端继续执行搜索跳点的步骤,即客户端会在当前节点的搜索方向上基于预处理数据继续搜索跳点,直至搜索到终止节点。当前节点的搜索方向包括轴方向以及对角方向中的至少之一,该搜索方向是客户端确定的。客户端通常会优先搜索轴方向的跳点。并且,对于已经搜索过的节点,客户端能够将其加入关闭节点集合,加入关闭节点集合的跳点不再参与搜索跳点的流程。该关闭跳点集合也称为关闭列表(CloseList)。
步骤514:基于搜索到的跳点规划寻路路径。
客户端在搜索到跳点时,会存储该跳点的父节点,跳点的父节点包括寻路路径中到达该搜索到的该跳点的前一个跳点。在客户端搜索到终止节点后,会从终止节点开始逐步回溯父节点,直至回溯到起始节点,从而能够生成寻路路径。具体的,当客户端搜索到终止节点后,从终止节点向后回溯直至找到起始节点,从终止节点回溯到起始节点的连线即为寻路路径。
步骤516:响应于网格地图中静态节点的可通行状态产生变化,基于更新后的网格地图中非行走节点的节点位置更新预处理数据。
该静态节点为网格地图中除动态阻挡节点以外的节点,静态节点的可通行状态不会随变化因素产生变化。网格地图中静态节点的可通行状态产生变化,会对全部寻路对象能否在该静态节点通行产生影响。客户端通过获取网格地图的地图数据,能够确定网格地图中静态节点的可通行状态是否产生变化,并基于更新后的网格地图中非行走节点的节点位置更新预处理数据。可选地,当路径规划结束时,客户端会获取网格地图的地图数据,并判断是否需要更新预处理数据。通过在静态节点的可通行状态产生变化时,更新预处理数据,保证使用的预处理数据的正确性,避免因错误的预处理数据导致搜索到错误的跳点。
需要说明的是,动态阻挡节点的可通行状态虽然也会发生变化,但客户端在确定不可通行的节点的位置时,会基于预处理数据先确定非行走节点的位置,并确定非行走节点是否为动态阻挡节点,之后再实时判断动态阻挡节点当前是否能够通行,因此对于动态阻挡节点的可通行状态的变化,客户端无需更新预处理数据。
示例地,图13是本申请另一个示例性实施例提供的基于正六边形节点构建的网格地图的预处理数据的示意图。如图13所示,该网格地图的预处理数据是客户端在图6中的网格地图中的阻挡节点2变为可行走节点后,更新预处理数据得到的。结合图6以及图13可知,当阻挡节点变为可行走节点,或可行走节点变为阻挡节点时,其轴方向上的节点的距离数字需要重新计算。
示例地,图14是本申请一个示例性实施例提供的基于预处理数据进行路径规划的过程的示意图。如图14的(a)所示,在网格地图中,节点29为起始节点,节点30为终止节点,节点31和节点32为非行走节点,其中节点31为动态阻挡节点,节点32为阻挡节点。如图14的(b)所示,客户端首先在节点29向右的搜索方向搜索跳点,根据预处理数据在节点29向右的搜索方向的上方,发现存在非行走节点,并且此时判断节点31无法通行,则将节点31确定为目标阻挡节点,并基于目标阻挡节点在节点29向右的搜索方向上搜索到节点33为跳点,将节点33加入节点集合。之后客户端在节点29的其他搜索方向上未搜索到跳点,此时在跳点集合中确定节点33为当前节点。在沿节点33的搜索方向搜索跳点时,搜索到节点33右上的轴方向上存在节点30为终止节点,则客户端结束搜索跳点的流程。如图14的(c)所示,客户端基于节点29、节点33以及节点30实现规划寻路路径,该寻路路径经过节点33,且该寻路路径为节点29到节点30的全部路径中距离最短的路径。
综上所述,本实施例提供的方法,根据网格地图中非行走节点的位置确定预处理数据,并根据预处理数据在网格地图中搜索跳点。在搜索跳点时,无需对当前节点周围的节点挨个进行搜索,而是基于预处理数据直接确定出无法通行的节点的位置,从而搜索到跳点。能够提升搜索跳点的效率,从而减少路径规划时消耗的时间,提升了路径规划的效率。
需要说明的是,本申请实施例提供的方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
在一个具体的例子中,本申请实施例提供的跳点搜索方法,可用于智能机器人(例如扫地机器人,以下简称机器人)的行进路径的确定过程中。例如,机器人在向用户选定的位置移动时,需要先进行路径规划。在预处理阶段,机器人会在网格地图中确定非行走节点的位置。该网格地图是机器人通过采集的数据所构建的,例如通过摄像头和雷达采集数据,该网格地图还能够是内置或上传的。该非行走节点包括机器人扫描到的障碍物在网格地图中所在的节点。示例地,该障碍物包括落地沙发、落地窗以及落地灯等。该非行走节点还包括可通行状态会动态变化的动态阻挡节点,例如用户设置某一卧室某段时间内不可通行,则该卧室在网格地图中对应的节点为动态阻挡节点。机器人根据非行走节点的节点位置,会确定网格地图的预处理数据,该预处理数据用于反映网格地图中的可行走节点与非行走节点的相对位置。在路径规划阶段,机器人会根据寻路指令确定网格地图中的起始节点以及终止节点。该起始节点是机器人在网格地图中当前停靠的节点,该终止节点是发出寻路指令的用户设置的,例如在机器人对应的客户端中设置终止节点并发出寻路指令。在实际场景下该终止节点例如为用户选择的卧室中某一位置在网格地图中对应的节点。之后机器人根据预处理数据沿当前节点(开始寻路时为起始节点,搜索到跳点后根据已搜索到的跳点确定)的第一搜索方向进行搜索,得到第一搜索方向上的跳点,跳点是路径前进方向发生改变的节点。之后根据搜索到的跳点继续执行上述搜索跳点的步骤,直至搜索到终止节点。之后机器人根据起始节点、终止节点以及搜索到的跳点,进行路径规划,并按照规划的路径行进以及清扫垃圾。
在一个具体的例子中,本申请实施例提供的跳点搜索方法,还可用于自动驾驶路径的确定过程中。例如,自动驾驶车辆根据用户选定的位置自动行驶时,需要先进行路径规划。在预处理阶段,自动驾驶车辆会在网格地图中确定非行走节点的位置。该网格地图是自动驾驶车辆通过采集的数据所构建的,例如通过摄像头和雷达采集数据,该网格地图还能够是根据地图数据构建的,以及内置或上传的。该非行走节点包括自动驾驶车辆扫描到的障碍物在网格地图中所在的节点。示例地,该障碍物包括建筑物、隔离带以及路灯等。该非行走节点还包括可通行状态会动态变化的动态阻挡节点,例如某段时间内某条道路不可通行,则该道路在网格地图中对应的节点为动态阻挡节点。自动驾驶车辆根据非行走节点的节点位置,会确定网格地图的预处理数据,该预处理数据用于反映网格地图中的可行走节点与非行走节点的相对位置。在路径规划阶段,自动驾驶车辆会根据寻路指令确定网格地图中的起始节点以及终止节点。该起始节点是自动驾驶车辆在网格地图中当前停靠的节点,该终止节点是发出寻路指令的用户设置的。在实际场景下该终止节点例如为用户选择的目的地在网格地图中对应的节点。自动驾驶车辆根据预处理数据搜索跳点以及规划路径的具体实现过程可参照上述内容,本申请实施例在此不作赘述。
在一个具体的例子中,本申请实施例提供的跳点搜索方法,还可用于游戏中的虚拟角色的行进路径的确定过程中。例如,客户端在控制虚拟角色向用户在虚拟环境中选定的位置移动时,需要先进行路径规划。该客户端为支持控制虚拟角色在虚拟环境中移动的游戏客户端。在预处理阶段,客户端会在网格地图中确定非行走节点的位置。该网格地图是游戏开发人员建立的,还能够是用户自定义建立的。该非行走节点包括障碍物在网格地图中所在的节点,例如虚拟环境中的石头、河流、树木所在的节点。该非行走节点还包括可通行状态会动态变化的动态阻挡节点,例如某段时间内虚拟环境中的某位置不可通行,则该道路在网格地图中对应的节点为动态阻挡节点。以及,某节点的可通行状态会随当前的寻路对象产生变化,则该节点为动态阻挡节点。客户端根据非行走节点的节点位置,会确定网格地图的预处理数据,该预处理数据用于反映网格地图中的可行走节点与非行走节点的相对位置。在路径规划阶段,客户端会根据寻路指令确定网格地图中的起始节点以及终止节点。该起始节点是虚拟角色当前停留的节点,该终止节点是发出寻路指令的用户选择的,还能够是客户端确定的。客户端根据预处理数据搜索跳点以及规划路径的具体实现过程可参照上述内容,本申请实施例在此不作赘述。
图15是本申请一个示例性实施例提供的跳点搜索装置的结构示意图。该装置可以用于计算机设备或计算机设备上的客户端。如图15所示,该装置150包括:
确定模块1501,用于在网格地图中确定非行走节点的节点位置。
处理模块1502,用于根据非行走节点的节点位置,确定网格地图的预处理数据,预处理数据用于反映网格地图中的可行走节点与非行走节点的相对位置。
搜索模块1503,用于根据预处理数据沿当前节点的第一搜索方向进行搜索,得到第一搜索方向上的跳点,跳点是路径前进方向发生改变的节点。
在一个可选的设计中,搜索模块1503,用于:
根据预处理数据,在当前节点的两侧节点中确定目标阻挡节点,两侧节点的排布方向与第一搜索方向平行,两侧节点与待确认节点相邻,待确认节点是处于第一搜索方向上的节点。根据目标阻挡节点的节点位置,沿第一搜索方向进行搜索,得到跳点。
在一个可选的设计中,非行走节点包括阻挡节点以及动态阻挡节点中的至少之一,阻挡节点是无法通行的节点,动态阻挡节点是可通行状态随变化因素变化的节点,可通行状态用于指示动态阻挡节点能否通行。搜索模块1503,用于:
根据预处理数据,在两侧节点中确定目标非行走节点。响应于目标非行走节点满足阻挡条件,将目标非行走节点确定为目标阻挡节点,阻挡条件包括目标非行走节点为阻挡节点,或,目标非行走节点为动态阻挡节点,且动态阻挡节点的可通行状态为无法通行。
在一个可选的设计中,搜索模块1503,用于:
根据目标阻挡节点的节点位置,在待确认节点中确定具有强迫邻居的目标待确认节点,强迫邻居是目标待确认节点和目标阻挡节点共同相邻的节点,强迫邻居位于第一搜索方向的前方。将目标待确认节点确定为跳点。
在一个可选的设计中,网格地图基于正六边形节点构建,预处理数据包括网格地图中各节点在候选搜索方向上到非行走节点的距离。
在一个可选的设计中,非行走节点包括动态阻挡节点,动态阻挡节点是可通行状态随变化因素变化的节点,可通行状态用于指示动态阻挡节点能否通行。如图16所示,装置150还包括:
终止模块1504,用于响应于当前节点与跳点之间存在非行走节点,且非行走节点为阻挡节点,或,非行走节点为动态阻挡节点,且动态阻挡节点的可通行状态为无法通行,舍弃跳点,并终止在第一搜索方向上搜索跳点。
搜索模块1503,用于根据预处理数据沿当前节点的第二搜索方向进行搜索,第二搜索方向与第一搜索方向不同。
在一个可选的设计中,确定模块1501,用于响应于在第一搜索方向上搜索到至少两个跳点,将与当前节点距离最短的跳点确定为跳点。
在一个可选的设计中,搜索模块1503,用于在第一搜索方向上搜索终止节点,终止节点是寻路路径的终点。
终止模块1504,用于响应于在第一搜索方向上搜索到终止节点,结束执行根据预处理数据沿当前节点的第一搜索方向进行搜索的步骤。
在一个可选的设计中,非行走节点包括动态阻挡节点,动态阻挡节点是可通行状态随变化因素变化的节点,可通行状态用于指示动态阻挡节点能否通行。如图17所示,装置150还包括:
第一更新模块1505,用于响应于网格地图中静态节点的可通行状态产生变化,基于更新后的网格地图中非行走节点的节点位置更新预处理数据,静态节点为网格地图中除动态阻挡节点以外的节点。
在一个可选的设计中,确定模块1501,用于将节点集合中权重值最低的待搜索节点确定为当前节点,权重值是起始节点到待搜索节点的路径的距离和待搜索节点到终止节点的预估路径的距离之和。其中,节点集合用于存储待搜索节点,起始节点是寻路路径的起点。
在一个可选的设计中,如图18所示,装置150还包括:
第二更新模块1506,用于将跳点加入节点集合,以更新节点集合。
需要说明的是:上述实施例提供的跳点搜索装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的跳点搜索装置与跳点搜索方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请的实施例还提供了一种计算机设备,该计算机设备包括:处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的跳点搜索方法。
可选地,该计算机设备为终端。示例地,图19是本申请一个示例性实施例提供的终端的结构示意图。
通常,终端1900包括有:处理器1901和存储器1902。
处理器1901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1901可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1901可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1902中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1901所执行以实现本申请中方法实施例提供的跳点搜索方法。
在一些实施例中,终端1900还可选包括有:外围设备接口1903和至少一个外围设备。处理器1901、存储器1902和外围设备接口1903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1903相连。具体地,外围设备包括:射频电路1904、显示屏1905、摄像头组件1906、音频电路1907和电源1908中的至少一种。
外围设备接口1903可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1901和存储器1902。在一些实施例中,处理器1901、存储器1902和外围设备接口1903被集成在同一芯片或电路板上;在一些其他实施例中,处理器1901、存储器1902和外围设备接口1903中的任意一个或两个可以在单独的芯片或电路板上实现,本申请实施例对此不加以限定。
射频电路1904用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1904包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1904可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1904还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1905用于显示UI(User Interface,横版关卡界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1905是触摸显示屏时,显示屏1905还具有采集在显示屏1905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1901进行处理。此时,显示屏1905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1905可以为一个,设置终端1900的前面板;在另一些实施例中,显示屏1905可以为至少两个,分别设置在终端1900的不同表面或呈折叠设计;在再一些实施例中,显示屏1905可以是柔性显示屏,设置在终端1900的弯曲表面上或折叠面上。甚至,显示屏1905还可以设置成非矩形的不规则图形,也即异形屏。显示屏1905可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-EmittingDiode,有机发光二极管)等材质制备。
摄像头组件1906用于采集图像或视频。可选地,摄像头组件1906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端1900的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1901进行处理,或者输入至射频电路1904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1901或射频电路1904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1907还可以包括耳机插孔。
电源1908用于为终端1900中的各个组件进行供电。电源1908可以是交流电、直流电、一次性电池或可充电电池。当电源1908包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端1900还包括有一个或多个传感器1909。该一个或多个传感器1909包括但不限于:加速度传感器1910、陀螺仪传感器1911、压力传感器1912、光学传感器1913以及接近传感器1914。
加速度传感器1910可以检测以终端1900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1910可以用于检测重力加速度在三个坐标轴上的分量。处理器1901可以根据加速度传感器1910采集的重力加速度信号,控制触摸显示屏1905以横向视图或纵向视图进行横版关卡界面的显示。加速度传感器1910还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1911可以检测终端1900的机体方向及转动角度,陀螺仪传感器1911可以与加速度传感器1910协同采集用户对终端1900的3D动作。处理器1901根据陀螺仪传感器1911采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1912可以设置在终端1900的侧边框和/或触摸显示屏1905的下层。当压力传感器1912设置在终端1900的侧边框时,可以检测用户对终端1900的握持信号,由处理器1901根据压力传感器1912采集的握持信号进行左右手识别或快捷操作。当压力传感器1912设置在触摸显示屏1905的下层时,由处理器1901根据用户对触摸显示屏1905的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
光学传感器1913用于采集环境光强度。在一个实施例中,处理器1901可以根据光学传感器1913采集的环境光强度,控制触摸显示屏1905的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1905的显示亮度;当环境光强度较低时,调低触摸显示屏1905的显示亮度。在另一个实施例中,处理器1901还可以根据光学传感器1913采集的环境光强度,动态调整摄像头组件1906的拍摄参数。
接近传感器1914,也称距离传感器,通常设置在终端1900的前面板。接近传感器1914用于采集用户与终端1900的正面之间的距离。在一个实施例中,当接近传感器1914检测到用户与终端1900的正面之间的距离逐渐变小时,由处理器1901控制触摸显示屏1905从亮屏状态切换为息屏状态;当接近传感器1914检测到用户与终端1900的正面之间的距离逐渐变大时,由处理器1901控制触摸显示屏1905从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图19中示出的结构并不构成对终端1900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请实施例中还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条程序代码,当该程序代码由计算机设备的处理器加载并执行时,实现上述各方法实施例提供的跳点搜索方法。
本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例提供的跳点搜索方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的可读存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同切换、改进等,均应包含在本申请的保护范围之内。

Claims (11)

1.一种跳点搜索方法,其特征在于,所述方法包括:
在网格地图中确定非行走节点的节点位置,所述非行走节点包括阻挡节点以及动态阻挡节点中的至少之一,所述阻挡节点是无法通行的节点,所述动态阻挡节点是可通行状态随变化因素变化的节点,所述可通行状态用于指示所述动态阻挡节点能否通行;
根据所述非行走节点的节点位置,确定所述网格地图的预处理数据,在所述网格地图为正四边形网格地图的情况下,所述预处理数据包括所述网格地图中的每个节点在轴方向以及对角方向上到所述非行走节点的距离;在所述网格地图为正六边形网格地图的情况下,所述预处理数据包括所述网格地图中的每个节点在轴方向上到所述非行走节点的距离;
根据所述预处理数据,在当前节点的两侧节点中确定目标非行走节点,所述两侧节点的排布方向与所述当前节点的第一搜索方向平行,所述两侧节点与待确认节点相邻,所述待确认节点是处于所述第一搜索方向上的节点;
响应于所述目标非行走节点满足阻挡条件,将所述目标非行走节点确定为目标阻挡节点,所述阻挡条件包括所述目标非行走节点为所述阻挡节点,或,所述目标非行走节点为所述动态阻挡节点,且所述动态阻挡节点的可通行状态为无法通行;
根据所述目标阻挡节点的节点位置,沿所述第一搜索方向进行搜索,得到所述第一搜索方向上的跳点,所述跳点是路径前进方向发生改变的节点。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标阻挡节点的节点位置,沿所述第一搜索方向进行搜索,得到所述第一搜索方向上的跳点,包括:
根据所述目标阻挡节点的节点位置,在所述待确认节点中确定具有强迫邻居的目标待确认节点,所述强迫邻居是所述目标待确认节点和所述目标阻挡节点共同相邻的节点,所述强迫邻居位于所述第一搜索方向的前方;
将所述目标待确认节点确定为所述跳点。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
响应于所述当前节点与所述跳点之间存在所述非行走节点,且所述非行走节点为所述阻挡节点,或,所述非行走节点为所述动态阻挡节点,且所述动态阻挡节点的可通行状态为无法通行,舍弃所述跳点,并终止在所述第一搜索方向上搜索跳点;
根据所述预处理数据沿所述当前节点的第二搜索方向进行搜索,所述第二搜索方向与所述第一搜索方向不同。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
响应于在所述第一搜索方向上搜索到至少两个跳点,将与所述当前节点距离最短的跳点确定为所述跳点。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在所述第一搜索方向上搜索终止节点,所述终止节点是寻路路径的终点;
响应于在所述第一搜索方向上搜索到所述终止节点,结束执行根据所述预处理数据沿所述当前节点的所述第一搜索方向进行搜索的步骤。
6.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
响应于所述网格地图中静态节点的可通行状态产生变化,基于更新后的所述网格地图中所述非行走节点的节点位置更新所述预处理数据,所述静态节点为所述网格地图中除所述动态阻挡节点以外的节点。
7.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
将节点集合中权重值最低的待搜索节点确定为所述当前节点,所述权重值是起始节点到所述待搜索节点的路径的距离和所述待搜索节点到终止节点的预估路径的距离之和;
其中,所述节点集合用于存储所述待搜索节点,所述起始节点是寻路路径的起点。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
将所述跳点加入所述节点集合,以更新所述节点集合。
9.一种跳点搜索装置,其特征在于,所述装置包括:
确定模块,用于在网格地图中确定非行走节点的节点位置,所述非行走节点包括阻挡节点以及动态阻挡节点中的至少之一,所述阻挡节点是无法通行的节点,所述动态阻挡节点是可通行状态随变化因素变化的节点,所述可通行状态用于指示所述动态阻挡节点能否通行;
处理模块,用于根据所述非行走节点的节点位置,确定所述网格地图的预处理数据,在所述网格地图为正四边形网格地图的情况下,所述预处理数据包括所述网格地图中的每个节点在轴方向以及对角方向上到所述非行走节点的距离;在所述网格地图为正六边形网格地图的情况下,所述预处理数据包括所述网格地图中的每个节点在轴方向上到所述非行走节点的距离;
搜索模块,用于根据所述预处理数据,在当前节点的两侧节点中确定目标非行走节点,所述两侧节点的排布方向与所述当前节点的第一搜索方向平行,所述两侧节点与待确认节点相邻,所述待确认节点是处于所述第一搜索方向上的节点;响应于所述目标非行走节点满足阻挡条件,将所述目标非行走节点确定为目标阻挡节点,所述阻挡条件包括所述目标非行走节点为所述阻挡节点,或,所述目标非行走节点为所述动态阻挡节点,且所述动态阻挡节点的可通行状态为无法通行;根据所述目标阻挡节点的节点位置,沿所述第一搜索方向进行搜索,得到所述第一搜索方向上的跳点,所述跳点是路径前进方向发生改变的节点。
10.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由所述处理器加载并执行以实现如权利要求1至8任一所述的跳点搜索方法。
11.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至8任一所述的跳点搜索方法。
CN202110371042.6A 2021-04-07 2021-04-07 跳点搜索方法、装置、设备及存储介质 Active CN112915541B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110371042.6A CN112915541B (zh) 2021-04-07 2021-04-07 跳点搜索方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110371042.6A CN112915541B (zh) 2021-04-07 2021-04-07 跳点搜索方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112915541A CN112915541A (zh) 2021-06-08
CN112915541B true CN112915541B (zh) 2022-09-23

Family

ID=76173512

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110371042.6A Active CN112915541B (zh) 2021-04-07 2021-04-07 跳点搜索方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112915541B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113515129B (zh) * 2021-08-23 2022-02-11 哈尔滨理工大学 一种基于边界查找的双向跳点搜索无人车路径规划方法
CN114247132B (zh) * 2022-02-28 2022-05-17 腾讯科技(深圳)有限公司 虚拟对象的控制处理方法、装置、设备、介质及程序产品

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9513132B2 (en) * 2014-08-21 2016-12-06 Here Global B.V. Measuring quality in optimal navigation routes by navigation systems
CN105955280A (zh) * 2016-07-19 2016-09-21 Tcl集团股份有限公司 移动机器人路径规划和避障方法及系统
CN109115226B (zh) * 2018-09-01 2021-11-19 哈尔滨工程大学 基于跳点搜索的多机器人冲突避免的路径规划方法
CN111811514B (zh) * 2020-07-03 2023-06-09 大连海事大学 一种基于正六边形栅格跳点搜索算法的路径规划方法

Also Published As

Publication number Publication date
CN112915541A (zh) 2021-06-08

Similar Documents

Publication Publication Date Title
US11565181B2 (en) Virtual object control method and apparatus, computer device, and storage medium
JP7455846B2 (ja) オブジェクトジャンプの制御方法、装置、コンピュータデバイスおよびコンピュータプログラム
CN109876438B (zh) 用户界面显示方法、装置、设备及存储介质
CN111265869A (zh) 虚拟对象的检测方法、装置、终端及存储介质
CN112121422B (zh) 界面显示方法、装置、设备及存储介质
TWI802978B (zh) 應用程式內的控制項位置調整方法及裝置、設備及存儲介質
CN112604305B (zh) 虚拟对象的控制方法、装置、终端及存储介质
CN112915541B (zh) 跳点搜索方法、装置、设备及存储介质
CN112691370B (zh) 虚拟对局中投票结果的显示方法、装置、设备及存储介质
CN111414080A (zh) 虚拟对象的位置显示方法、装置、设备及存储介质
CN112843679B (zh) 虚拟对象的技能释放方法、装置、设备及介质
CN111744185B (zh) 虚拟对象控制方法、装置、计算机设备及存储介质
CN112494955A (zh) 虚拟对象的技能释放方法、装置、终端及存储介质
WO2019184782A1 (zh) 虚拟场景中的对象控制方法、装置及计算机设备
CN109091867B (zh) 操作控制方法、装置、设备及存储介质
CN113058264A (zh) 虚拟场景的显示方法、虚拟场景的处理方法、装置及设备
CN112169330B (zh) 虚拟环境的画面显示方法、装置、设备及介质
CN111672102A (zh) 虚拟场景中的虚拟对象控制方法、装置、设备及存储介质
CN110681156A (zh) 虚拟世界中的虚拟角色控制方法、装置、设备及存储介质
CN111589141A (zh) 虚拟环境画面的显示方法、装置、设备及介质
JP2024509064A (ja) 位置マークの表示方法及び装置、機器並びにコンピュータプログラム
CN110833695B (zh) 基于虚拟场景的业务处理方法、装置、设备及存储介质
JP7483056B2 (ja) 選択ターゲットの決定方法、装置、機器、及びコンピュータプログラム
CN112699208A (zh) 地图寻路方法、装置、设备及介质
CN112755517B (zh) 虚拟对象控制方法、装置、终端及存储介质

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40045891

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant