CN115601521B - 一种路径处理方法、电子设备、存储介质及程序产品 - Google Patents
一种路径处理方法、电子设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN115601521B CN115601521B CN202211600877.5A CN202211600877A CN115601521B CN 115601521 B CN115601521 B CN 115601521B CN 202211600877 A CN202211600877 A CN 202211600877A CN 115601521 B CN115601521 B CN 115601521B
- Authority
- CN
- China
- Prior art keywords
- grid
- obstacle avoidance
- path
- map
- target
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 42
- 238000000034 method Methods 0.000 claims abstract description 105
- 230000008569 process Effects 0.000 claims abstract description 74
- 230000004888 barrier function Effects 0.000 claims abstract description 6
- 230000033001 locomotion Effects 0.000 claims description 133
- 238000001514 detection method Methods 0.000 claims description 129
- 238000012545 processing Methods 0.000 claims description 114
- 230000000875 corresponding effect Effects 0.000 claims description 88
- 230000001276 controlling effect Effects 0.000 claims description 39
- 230000015654 memory Effects 0.000 claims description 29
- 238000004891 communication Methods 0.000 claims description 26
- 238000009877 rendering Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 12
- 230000002596 correlated effect Effects 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 8
- 238000009499 grossing Methods 0.000 claims description 7
- 238000012216 screening Methods 0.000 claims description 4
- 230000002441 reversible effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 37
- 238000012360 testing method Methods 0.000 description 17
- 238000004422 calculation algorithm Methods 0.000 description 15
- 238000004590 computer program Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 5
- 238000013515 script Methods 0.000 description 5
- 238000009825 accumulation Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 230000005855 radiation Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011056 performance test Methods 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 230000009184 walking Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000009194 climbing Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000009182 swimming Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Remote Sensing (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供了一种路径处理方法、电子设备、存储介质及程序产品;方法包括:响应于原始地图的更新,获得当前地图,其中,当前地图为更新后的原始地图,原始地图的规划路径为原始规划路径;在基于原始规划路径控制虚拟对象在当前地图上运动的过程中,对障碍物进行检测,得到目标障碍物;获取目标障碍物的目标避障路径,其中,目标避障路径用于从避障起点出发避开目标障碍物到达避障终点,避障起点为原始规划路径上的避障开始位置,避障终点为原始规划路径上的避障结束位置;基于目标避障路径更新原始规划路径,得到目标规划路径;基于目标规划路径,控制虚拟对象在当前地图上进行运动。通过本申请,能够提升规划路径的获取效率。
Description
技术领域
本申请涉及计算机应用领域中的路径处理技术,尤其涉及一种路径处理方法、电子设备、存储介质及程序产品。
背景技术
用于虚拟对象运动的地图,常常存在更新的情况,比如,新增了虚拟障碍物;为了使得虚拟对象能够在更新后的地图上运动,需要获取更新后的地图的规划路径。然而,在获取更新后的地图的规划路径的过程中,由于更新后的地图的规划路径常常通过重新确定整个更新后的地图的通行区域获得,因此,影响了规划路径的获取效率。
发明内容
本申请实施例提供一种路径处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够提升规划路径的获取效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种路径处理方法,所述方法包括:
响应于原始地图的更新,获得当前地图,其中,所述当前地图为更新后的所述原始地图,所述原始地图的规划路径为原始规划路径;
在基于所述原始规划路径控制虚拟对象在所述当前地图上运动的过程中,对障碍物进行检测,得到目标障碍物;
获取所述目标障碍物的目标避障路径,其中,所述目标避障路径用于从避障起点出发避开所述目标障碍物到达避障终点,所述避障起点为所述原始规划路径上的避障开始位置,所述避障终点为所述原始规划路径上的避障结束位置;
基于所述目标避障路径更新所述原始规划路径,得到目标规划路径;
基于所述目标规划路径,控制所述虚拟对象在所述当前地图上进行运动。
本申请实施例提供一种路径处理装置,包括:
地图更新模块,用于响应于原始地图的更新,获得当前地图,其中,所述当前地图为更新后的所述原始地图,所述原始地图的规划路径为原始规划路径;
运动检测模块,用于在基于所述原始规划路径控制虚拟对象在所述当前地图上运动的过程中,对障碍物进行检测,得到目标障碍物;
局部避障模块,用于获取所述目标障碍物的目标避障路径,其中,所述目标避障路径用于从避障起点出发避开所述目标障碍物到达避障终点,所述避障起点为所述原始规划路径上的避障开始位置,所述避障终点为所述原始规划路径上的避障结束位置;
路径更新模块,用于基于所述目标避障路径更新所述原始规划路径,得到目标规划路径;
运动控制模块,用于基于所述目标规划路径,控制所述虚拟对象在所述当前地图上进行运动。
在本申请实施例中,所述局部避障模块,还用于基于所述避障起点,确定避障搜索区域;在所述避障搜索区域中,针对所述避障起点对应的多个指定运动方向中的每个所述指定运动方向,确定对应的避障代价;基于所述避障代价,从多个所述指定运动方向中选取至少一个避障方向;基于至少一个所述避障方向,确定所述避障搜索区域中的第一通行区域;基于所述第一通行区域对所述避障起点和所述避障终点进行路径规划,得到所述目标避障路径。
在本申请实施例中,所述局部避障模块,还用于基于第一距离和第二距离中的至少一种,确定所述避障搜索区域中每个第一网格的网格避障代价,其中,所述第一距离为所述第一网格与所述避障起点之间的距离,所述第二距离为所述第一网格与所述目标障碍物之间的距离;在所述避障搜索区域中,获取多个所述指定运动方向中每个所述指定运动方向上的第一网格集合;基于所述网格避障代价,确定所述第一网格集合对应的所述网格避障代价集合;对所述网格避障代价集合进行平滑处理,得到每个所述指定运动方向对应的所述避障代价。
在本申请实施例中,当至少一个所述避障方向为多个所述避障方向时,所述局部避障模块,还用于获取多个所述避障方向对应的多个子通行区域,并将多个所述子通行区域组合为所述避障搜索区域中的所述第一通行区域;或者,基于第一终点网格,从多个所述避障方向中确定目标避障方向,并将所述目标避障方向上的通行区域,确定为所述避障搜索区域中的所述第一通行区域,其中,所述第一终点网格为所述避障终点对应的第一网格。
在本申请实施例中,所述局部避障模块,还用于在所述第一通行区域中,搜索与第一起点网格相邻的可达网格集合,其中,所述第一起点网格为所述避障起点对应的第一网格;获取所述可达网格集合中每个所述第一网格对应的运动代价,并将获取所述运动代价所依据的最近已搜索的所述第一网格确定为父网格,其中,所述运动代价为从所述第一起点网格经过对应所述第一网格到达第一终点网格的代价;搜索与目标第一网格相邻的下一可达网格集合,直至搜索到的所述可达网格集合中包括所述第一终点网格时,停止搜索,并从所述第一终点网格向所述第一起点网格进行父网格逆推,得到所述避障起点和所述避障终点之间的所述目标避障路径,其中,所述目标第一网格是未搜索的、且所述运动代价最小的所述第一网格。
在本申请实施例中,所述路径处理装置还包括路径规划模块,用于对所述原始地图进行网格划分,得到地图网格区域,其中,所述地图网格区域包括多个第二网格;在所述地图网格区域中进行射线检测,得到联通的至少两个所述第二网格;将至少两个所述第二网格,确定为第二通行区域;基于所述第二通行区域对第二起点网格和第二终点网格进行路径规划,得到所述原始规划路径,其中,所述第二起点网格为所述原始地图的运动起点对应的所述第二网格,所述第二终点网格为所述原始地图的运动终点对应的所述第二网格,至少两个所述第二网格至少包括所述第二起点网格和所述第二终点网格。
在本申请实施例中,所述路径规划模块,还用于在所述地图网格区域中,以所述第二起点网格为中心进行指定步长的射线检测,得到与所述第二起点网格联通的第1个第二网格集合;当第1个所述第二网格集合不包括所述第二终点网格时,通过迭代i执行以下处理,其中,i为正整数:以第i个所述第二网格集合为中心进行目标步长的射线检测,得到与第i个所述第二网格集合联通的第i+1个所述第二网格集合,其中,所述目标步长与射线检测的联通覆盖率正相关;当得到的第i+1个所述第二网格集合包括所述第二终点网格时,结束射线检测,并将所述第二起点网格、以及i+1个所述第二网格集合组合为联通的至少两个所述第二网格。
在本申请实施例中,所述路径规划模块,还用于在所述地图网格区域中,以所述第二起点网格为中心,并基于所述指定步长确定多个指定角度对应的多个检测射线;基于有效条件,从多个所述检测射线中筛选有效检测射线集合,其中,所述有效条件基于射线长度、以及与指定对象的关联状态中的至少一种确定;从所述有效检测射线集合中获取所述指定角度连续的至少两个有效检测射线,并获取至少两个所述有效检测射线对应的射线区域;将大于指定区域的所述射线区域内的所述第二网格,组合为与所述第二起点网格联通的第1个所述第二网格集合。
在本申请实施例中,所述路径规划模块,还用于获取已检测网格数量和联通网格数量,其中,所述已检测网格数量是指截止到第i+1次射线检测前已检测的所述第二网格的数量,所述联通网格数量是指截止到第i+1次射线检测前已检测到的联通的所述第二网格的数量;获取与所述已检测网格数量负相关、且与所述联通网格数量正相关的所述目标步长。
在本申请实施例中,所述地图更新模块,还用于基于所述原始规划路径,控制所述虚拟对象在所述原始地图上进行运动;在所述原始地图上进行运动的过程中,检测所述原始地图的场景变化;当检测到所述原始地图发生场景变化、且所述虚拟对象未到达运动终点时,确定所述原始地图发生更新;或者,响应于版本更新指令,确定所述原始地图发生更新。
在本申请实施例中,所述地图更新模块,还用于在基于所述目标规划路径控制所述虚拟对象在所述当前地图上运动的过程中,响应于所述当前地图的更新,获得下一地图,其中,所述下一地图为更新后的所述当前地图;在基于所述目标规划路径控制虚拟对象在所述下一地图上运动的过程中,基于检测到的障碍物的避障路径,更新所述目标规划路径,得到下一规划路径;基于所述下一规划路径控制所述虚拟对象在所述下一地图上运动。
在本申请实施例中,所述路径处理装置还包括运动测试模块,用于获取运动过程中的性能参数,其中,所述性能参数包括帧率、内存使用率、处理器使用率和渲染质量中的至少一种;基于所述性能参数更新待测试应用,其中,所述待测试应用是指用于控制所述虚拟对象在地图上运动的应用。
本申请实施例提供一种用于路径处理的电子设备,包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令时,实现本申请实施例提供的路径处理方法。
本申请实施例提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于被处理器执行时,实现本申请实施例提供的路径处理方法。
本申请实施例提供一种计算机程序产品,包括计算机程序或计算机可执行指令,所述计算机程序或计算机可执行指令被处理器执行时,实现本申请实施例提供的路径处理方法。
本申请实施例至少具有以下有益效果:在原始地图发生更新时,针对获得的更新后的原始地图(称为当前地图),先基于原始规划路径控制虚拟对象在当前地图上进行运动;再在运动过程中检测障碍物,以及在检测到障碍物时,获取出从原始规划路径上的避障起点出发避开目标障碍物并运动至原始规划路径的避障路径,并基于该局部的避障路径更新原始规划路径,而该目标避障路径为局部路径;因此实现了基于局部路径实时更新全局规划路径的过程,能够实现目标路径的快速获取,从而能够提升目标规划路径的获取效率。
附图说明
图1是本申请实施例提供的路径处理系统的架构示意图;
图2是本申请实施例提供的一种图1中的终端的结构示意图;
图3是本申请实施例提供的路径处理方法的流程示意图一;
图4是本申请实施例提供的路径处理方法的流程示意图二;
图5是本申请实施例提供的一种确定避障搜索区域的示意图;
图6是本申请实施例提供的另一种确定避障搜索区域的示意图;
图7是本申请实施例提供的又一种确定避障搜索区域的示意图;
图8是本申请实施例提供的一种示例性的确定目标避障路径的示意图;
图9是本申请实施例提供的路径处理方法的流程示意图三;
图10是本申请实施例提供的一种示例性的避障流程示意图一;
图11是本申请实施例提供的一种示例性的检测网格联通性的示意图;
图12是本申请实施例提供的一种示例性的射线检测示意图;
图13是本申请实施例提供的一种示例性的基于检测步长进行射线检测的示意图;
图14是本申请实施例提供的另一种示例性的基于检测步长进行射线检测的示意图;
图15是本申请实施例提供的一种示例性的避障示意图;
图16是本申请实施例提供的一种示例性的障碍物密度分布图;
图17是本申请实施例提供的一种获取运动方向区域内网格累加结果的示意图;
图18是本申请实施例提供的一种示例性更新最优路径的示意图;
图19是本申请实施例提供的一种示例性的路径规划示意图一;
图20是本申请实施例提供的一种示例性的路径规划示意图二;
图21是本申请实施例提供的一种示例性的避障流程示意图二。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本申请实施例所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本申请实施例中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)路径规划,用于获取起点到终点的最优路径;其中,连接起点和终点的序列点或曲线称之为路径,而获取路径的策略实施过程为路径规划。
2)地图,虚拟地图的简称,是指用于虚拟对象运动的虚拟场景;比如,本申请实施例中的原始地图、当前地图和下一地图等。
3)虚拟场景,是指应用程序在终端设备上运行时所显示(或提供)的虚拟场景,也可以是指通过接收云端服务器所发送的音视频信息所播放的虚拟场景,其中,应用程序在云端服务器上运行。另外,虚拟场景可以是对真实世界的仿真环境,也可以是半仿真半虚构的虚拟环境,还可以是纯虚构的虚拟环境;以及虚拟场景可以是二维虚拟场景、2.5维虚拟场景或者三维虚拟场景中的任意一种,本申请实施例对虚拟场景的维度不加以限定。例如,虚拟场景可以包括虚拟天空、虚拟陆地和虚拟海洋等,该虚拟陆地可以包括虚拟沙漠和虚拟城市等环境元素,用户可以控制虚拟对象在该虚拟场景中进行移动,智能体也可以基于规划路径在该虚拟场景中进行移动。
4)导航网格(Navigation Mesh),又称为行走面,是一种用于在复杂空间中导航寻路、标记可行走区域的多边形网格数据;还用于标识位置的地形、一位置处虚拟角色对应的动作(比如,行走,游泳,攀爬等)。导航网格包括多个凸多边形,每个凸边形为导航网格的基本组成单位,也是基于导航网格寻路的单位。同一个凸边形中的两点,在忽略地形高度的情况下,是可以直线到达的;如果两个点位于不同的凸边形,则利用导航网格和寻路算法计算出待经过的凸边形,进而基于待经过的凸边形计算出路径。在本申请实施例中,通行区域可以通过导航网格获得。
5)虚拟对象,虚拟场景中可以进行交互的各种人和物的形象,或在虚拟场景中的可活动对象。其中,该可活动对象可以是虚拟人物、虚拟动物、虚拟车辆和动漫人物等,例如在虚拟场景中显示的人物和动物等。该虚拟对象可以是虚拟场景中的一个虚拟的用于代表用户的虚拟形象。虚拟场景中可以包括多个虚拟对象,每个虚拟对象在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。
6)障碍物,是对虚拟障碍物的简称,是指虚拟场景中影响虚拟对象运动的虚拟模型,比如,虚拟建筑,虚拟工具,虚拟河流等。
需要说明的是,为了获得地图的规划路径,常常通过录制回放方式实现;也就是说,先手动完成虚拟对象在地图上的运动控制,并记录该运动控制中的数据处理信息,并将该数据处理信息生成特定的脚本,以通过执行该脚本来自动控制虚拟对象在地图上运动;如此,每次地图更新就对应一次手动控制运动的过程,影响了路径规划的智能性和效率。比如,在基于录制回放方式进行自动化测试时,对于应用开发初期,地图的更新频率大于指定频率,需要人工频繁地进行脚本生成,影响了自动化测试效率。
另外,为了提升地图的路径规划效率,还可以基于地图的渲染资源的烘焙结果生成通行区域,进而基于通行区域获得规划路径,然而每次地图更新,均是基于地图的渲染资源的烘焙结果生成通行区域,再基于通行区域获得规划路径,影响了路径规划的智能性和效率。并且,由于渲染资源和路径规划位于不同的处理阶段,渲染资源是打包获得应用之前的处理,路径规划可以是应用运行过程的处理,因此,基于渲染资源获取规划路径,影响了路径规划的灵活性。比如,在基于地图的渲染资源进行自动化测试时,对于应用开发初期,地图的更新频率大于指定频率,需要频繁地基于地图的渲染资源获得通行区域,影响了自动化测试效率。
基于此,本申请实施例提供一种路径处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够提升规划路径的获取效率、智能性和灵活性。下面说明本申请实施例提供的用于路径处理的电子设备(以下简称为路径处理设备)的示例性应用,本申请实施例提供的路径处理设备可以实施为智能手机、智能手表、笔记本电脑、平板电脑、台式计算机、智能家电、机顶盒、智能车载设备、便携式音乐播放器、个人数字助理、专用消息设备、智能语音交互设备、便携式游戏设备和智能音箱等各种类型的终端,也可以实施为服务器,又可以是两者的结合。下面,将说明路径处理设备实施为终端时的示例性应用。
参见图1,图1是本申请实施例提供的路径处理系统的架构示意图;如图1所示,为支撑一个路径处理应用,在路径处理系统100中,终端400(示例性示出了终端400-1和终端400-2,称为路径处理设备)通过网络300连接服务器200,服务器200用于为终端400提供计算服务;网络300可以是广域网或者局域网,又或者是二者的组合。另外,该路径处理系统100中还包括数据库500,用于向服务器200提供数据支持;并且,图1中示出的为数据库500独立于服务器200的一种情况,此外,数据库500还可以集成在服务器200中,本申请实施例对此不作限定。
终端400,用于响应于原始地图的更新,获得当前地图,其中,当前地图为更新后的原始地图,原始地图的规划路径为原始规划路径;在基于原始规划路径控制虚拟对象在当前地图上运动的过程(比如终端400-1中的图形界面410-1)中,对障碍物进行检测,得到目标障碍物;获取目标障碍物的目标避障路径,其中,目标避障路径用于从避障起点出发避开目标障碍物到达避障终点,避障起点为原始规划路径上的避障开始位置,避障终点为原始规划路径上的避障结束位置;基于目标避障路径更新原始规划路径,得到目标规划路径;基于目标规划路径,控制虚拟对象在当前地图上进行运动(比如终端400-2中的图形界面410-2)。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,ContentDelivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可以智能手机、智能手表、笔记本电脑、平板电脑、台式计算机、智能电视、机顶盒、智能车载设备、便携式音乐播放器、个人数字助理、专用消息设备、便携式游戏设备和智能音箱等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不作限制。
参见图2,图2是本申请实施例提供的一种图1中的终端的结构示意图;如图2所示,终端400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他电子设备,示例性的网络接口420包括:蓝牙、无线相容性认证(Wi-Fi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的路径处理装置可以采用软件方式实现,图2示出了存储在存储器450中的路径处理装置455,其可以是程序和插件等形式的软件,包括以下软件模块:地图更新模块4551、运动检测模块4552、局部避障模块4553、路径更新模块4554、运动控制模块4555、路径规划模块4556和运动测试模块4557,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在一些实施例中,本申请实施例提供的路径处理装置可以采用硬件方式实现,作为示例,本申请实施例提供的路径处理装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的路径处理方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
在一些实施例中,终端或服务器可以通过运行计算机程序来实现本申请实施例提供的路径处理方法。举例来说,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序,如自动化测试APP;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
下面,将结合本申请实施例提供的路径处理设备的示例性应用和实施,说明本申请实施例提供的路径处理方法。另外,本申请实施例提供的路径处理方法应用于云技术、人工智能、智慧交通、游戏和车载等各种路径处理场景。
参见图3,图3是本申请实施例提供的路径处理方法的流程示意图一;下面将结合图3示出的步骤进行说明。
步骤101、响应于原始地图的更新,获得当前地图。
在本申请实施例中,当原始地图发生变化时,比如,出现了随机障碍物时,增加了虚拟建筑时,等等,路径处理设备也就确定出了原始地图发生了更新;此时,路径处理设备响应于原始地图的更新,获取更新后的原始地图,也就获得了当前地图;也就是说,当前地图为更新后的原始地图。
需要说明的是,原始地图的规划路径为原始规划路径;也就是说,原始规划路径为对原始地图进行路径规划获得的;其中,原始规划路径可以通过基于原始地图的渲染资源(比如,地图坐标方格(Grid),通行点(Way Point),导航网格(NavMesh))所生成的通行区域获得,还可以通过基于射线检测出的通行区域获得,等等,本申请实施例对此不作限定。
步骤102、在基于原始规划路径控制虚拟对象在当前地图上运动的过程中,对障碍物进行检测,得到目标障碍物。
在本申请实施例中,路径处理设备在获得了当前地图之后,先按照原始规划路线控制虚拟对象在当前地图上运动;并在运动过程中在原始规划路线的行进方向上进行障碍物的检测,当检测到待躲避的障碍物时,也就获得了目标障碍物。
需要说明的是,路径处理设备可以基于指定检测距离对原始规划路线上的障碍物进行检测,并将检测到的障碍物确定为目标障碍物;其中,指定检测距离是一种预设的距离,且为虚拟对象当前运动的位置到目标障碍物之间的距离;从而此时,目标障碍物为原始规划路线的行进方向上与虚拟对象相距指定检测距离的障碍物。路径处理设备还可以基于虚拟对象的运动速度确定运动状态,当运动速度小于指定运动速度时,确定运动状态为阻挡状态,此时获取阻挡虚拟对象的信息,也就获得了目标障碍物;从而此时,目标障碍物为引起虚拟对象的运动状态进入阻挡状态的障碍物;当运动速度大于指定运动速度时,确定运动状态为行进状态,此时继续基于原始规划路线控制虚拟对象进行运动。
在本申请实施例中,原始地图的更新可以为原始地图中障碍物的新增或原始障碍物的改变(比如,原始障碍物的尺寸的改变,原始障碍物的形状的改变,原始障碍物的类型的改变等),故当前地图相比于原始地图,新增了障碍物或改变了原始障碍物;从而,本申请实施例提供的路径处理方法应用在当前地图相比原始地图新增障碍物或改变了原始障碍物的躲避场景中;其中,新增的障碍物的位置即可以是随机的,又可以固定的,还可以是两者的结合,等等,本申请实施例对此不作限定。当然,原始地图的更新还可以为原始地图中障碍物的删除,由于此时基于原始规划路线控制虚拟对象仍能够在当前地图上完成运动,因此,路径处理设备可以继续基于原始规划路线控制虚拟对象进行运动。
步骤103、获取目标障碍物的目标避障路径。
在本申请实施例中,路径处理设备检测出目标障碍物之后,确定原始规划路径上躲避目标障碍物的起点,也就获得了避障起点,并确定原始规划路径上躲避目标障碍物的终点,也就获得了躲避终点;接着,确定由避障起点到避障终点且能够躲避目标障碍物的路径,也就获得了虚拟对象躲避目标障碍物的目标避障路径。
需要说明的是,目标避障路径用于从避障起点出发避开目标障碍物到达避障终点,避障起点为原始规划路径上的避障开始位置,避障终点为原始规划路径上的避障结束位置。这里,路径处理设备可以先确定躲避起点和躲避终点之间的通行区域,进而基于躲避起点和躲避终点之间的通行区域进行路径规划,获得目标避障路径。另外,避障起点可以是检测到目标避障路径时虚拟对象在原始规划路径上的位置(称为当前位置),还可以是行进方向上在目标障碍物之后一定距离的位置,又可以是原始规划路径与目标障碍物的相交位置中与当前位置最近的位置,等等,本申请实施例对此不作限定;避障终点可以是行进方向上在目标障碍物之前一定距离的位置,还可以是原始规划路径与目标障碍物的相交位置中与当前位置最远的位置,等等,本申请实施例对此不作限定。
步骤104、基于目标避障路径更新原始规划路径,得到目标规划路径。
在本申请实施例中,目标避障路径为路径处理设备响应于原始地图的局部(相对于整个原始地图的部分地图)更新所生成的局部避障路径,且目标避障路径的起点为原始规划路径上的避障起点,目标避障路径的终点为原始规划路径上的避障终点;从而,路径处理设备将原始规划路径中从避障起点到避障终点之间的路径替换为目标避障路径,也就获得了目标规划路径;其中,路径处理设备将原始规划路径中从避障起点到避障终点之间的路径替换为目标避障路径的过程,即为基于目标避障路径更新原始规划路径的过程。
步骤105、基于目标规划路径,控制虚拟对象在当前地图上进行运动。
在本申请实施例中,由于目标规划路径上目标避障路径能够实现对目标障碍物的避障,因此,目标规划路径是与当前地图适配的规划路径,通过目标规划路径控制虚拟对象在当前地图上进行运动,能够实现虚拟对象的当前地图上的行进。
可以理解的是,在原始地图发生更新时,针对获得的当前地图,先基于原始规划路径控制虚拟对象在当前地图上进行运动;再在运动过程中检测障碍物,以及在检测到障碍物时,获取出从原始规划路径上的避障起点出发避开目标障碍物并运动至原始规划路径的避障路径,并基于该局部的避障路径更新原始规划路径,而该目标避障路径为局部路径;因此实现了基于局部路径实时更新全局规划路径的过程,能够实现目标路径的快速获取,从而能够提升目标规划路径的获取效率。
参见图4,图4是本申请实施例提供的路径处理方法的流程示意图二;如图4所示,在本申请实施例中,图3中的步骤103可通过步骤1031至步骤1035实现;也就是说,路径处理设备获取目标障碍物的目标避障路径,包括步骤1031至步骤1035,下面对各步骤分别进行说明。
步骤1031、基于避障起点,确定避障搜索区域。
在本申请实施例中,路径处理设备基于避障起点,确定当前地图中用于重新规划路径的局部区域,也就获得了避障搜索区域。这里,路径处理设备以避障起点为避障中心确定搜索范围,并将搜索范围对应的区域确定为避障搜索区域;其中,搜索范围可以基于以下至少一种确定:指定搜索长度(比如,搜索半径,搜索长宽等),避障起点和避障终点之间的距离,目标障碍物对应的尺寸,原始规划路径与目标障碍物的交点,避障终点。
示例性地,参见图5,图5是本申请实施例提供的一种确定避障搜索区域的示意图;如图5所示,避障搜索区域5-1是基于避障起点5-11和指定搜索长度5-12确定的正方形区域。
参见图6,图6是本申请实施例提供的另一种确定避障搜索区域的示意图;如图6所示,避障搜索区域6-1是基于避障起点6-11、以及原始规划路径6-2与目标障碍物6-3的交点6-12确定的圆形区域。
参见图7,图7是本申请实施例提供的又一种确定避障搜索区域的示意图;如图7所示,避障搜索区域7-1是基于避障起点7-11、目标障碍物对应的尺寸7-2、以及避障终点7-12确定的矩形区域。
步骤1032、在避障搜索区域中,针对避障起点对应的多个指定运动方向中的每个指定运动方向,确定对应的避障代价。
在本申请实施例中,路径处理设备获得了避障搜索区域之后,在避障搜索区域中进行路径规划;而路径处理设备对避障搜索区域进行路径规划时,先确定避障起点对应的多个指定运动方向中的每个指定运动方向的避障代价;该避障代价表示在指定运动方向上进行避障的难易程度,且避障代价与避障难度正相关。
需要说明的是,路径处理设备能够获得多个指定运动方向,该多个指定运动方向为预先设定的多个可运动的方向,比如,以避障起点为圆心划分出的n(n为大于1的正整数)个扇形区域(Sector)所对应的运动方向。
在本申请实施例的步骤1032中,路径处理设备在避障搜索区域中,针对避障起点对应的多个指定运动方向中的每个指定运动方向,确定对应的避障代价,包括:路径处理设备先基于第一距离和第二距离中的至少一种,确定避障搜索区域中每个第一网格的网格避障代价;并在避障搜索区域中,获取多个指定运动方向中每个指定运动方向上的第一网格集合;接着基于网格避障代价,确定第一网格集合对应的网格避障代价集合;最后对网格避障代价集合进行平滑处理,得到每个指定运动方向对应的避障代价。
需要说明的是,避障搜索区域包括多个第一网格,每个第一网格的形状可以是矩形,还可以是三角形,等等,本申请实施例对此不作限定;路径处理设备可以基于每个指定运动方向上各个第一网格分别对应的网格避障代价确定;其中,网格避障代价表示该第一网格中包括目标障碍物的可能性;并且,第一距离为第一网格与避障起点之间的距离,第二距离为第一网格与目标障碍物之间的距离,当网格避障代价基于第一距离确定时,网格避障代价与第一距离正相关;当网格避障代价基于第二距离确定时,网格避障代价与第二距离负相关。另外,第一网格集合包括指定运动方向上的各个第一网格,可以是指定运动方向所表征的扇形区域内完整的第一网格,也可以是指定运动方向所表征的扇形区域内网格区域大于指定网格区域(比如,网格区域的一半区域)的第一网格,等等,本申请实施例对此不作限定。这里,第一网格集合中的一个第一网格与网格避障代价集合中的一个网格避障代价对应。
此外,平滑处理可以是网格避障代价集合中网格避障代价的累加,还可以是网格避障代价集合中网格避障代价的加权平均,又可以是网格避障代价集合中网格避障代价的归一化,等等,本申请实施例对此不作限定。
可以理解的是,由于网格避障代价集合表示指定运动方向上的各个第一网格分别对应的网格避障代价,因此,路径处理设备通过对网格避障代价集合进行平滑处理,来获得指定运动方向对应的避障代价,是一种整合对应的各个网格避障代价来获得指定运动方向的避障代价的过程,能够提升避障代价的准确度。
步骤1033、基于避障代价,从多个指定运动方向中选取至少一个避障方向。
需要说明的是,由于避障代价表示该指定运动方向对应的避障难度,因此,路径处理设备可以从多个指定运动方向中,选择避障难度小于避障难度阈值的指定运动方向,并将避障难度小于避障难度阈值的指定运动方向确定为一个避障方向;从而,路径处理设备能够从多个指定运动方向中选择出至少一个避障难度小于避障难度阈值的指定运动方向,也就获得了至少一个避障方向。
步骤1034、基于至少一个避障方向,确定避障搜索区域中的第一通行区域。
在本申请实施例中,当至少一个避障方向为一个避障方向时,路径处理设备将这一个避障方向上的通行区域确定为第一通行区域;而当至少一个避障方向为多个避障方向时,路径处理设备可以获取多个避障方向对应的多个子通行区域,并将多个子通行区域组合为避障搜索区域中的第一通行区域;路径处理设备还可以基于第一终点网格,从多个避障方向中确定目标避障方向,并将目标避障方向上的通行区域,确定为避障搜索区域中的第一通行区域;等等,本申请实施例对此不作限定。
需要说明的是,第一通行区域为避障搜索区域中的通行区域;子通行区域即为多个避障方向中每个避障方向上的通行区域;第一终点网格为避障终点对应的第一网格。这里,路径处理设备可以将多个避障方向中与第一终点网格的所在方向最接近的避障方向,确定为目标避障方向。
步骤1035、基于第一通行区域对避障起点和避障终点进行路径规划,得到目标避障路径。
在本申请实施例中,路径处理设备获得了第一通行区域之后,基于第一通行区域进行路径规划,以规划出避障起点和避障终点之间的路径,并将规划出的避障起点和避障终点之间的路径,确定为目标避障路径。
在本申请实施例中,步骤1035可通过启发式搜索实现,其中,启发式搜索是指基于每个第一网格的运动代价搜索最优路径的处理;从而步骤1035中路径处理设备基于第一通行区域对避障起点和避障终点进行路径规划,得到目标避障路径,包括:路径处理设备在第一通行区域中,搜索与第一起点网格相邻的可达网格集合;并获取可达网格集合中每个第一网格对应的运动代价,并将获取运动代价所依据的最近已搜索的第一网格确定为父网格;以及搜索与目标第一网格相邻的下一可达网格集合,直至搜索到的可达网格集合中包括第一终点网格时,停止搜索,并从第一终点网格向第一起点网格进行父网格逆推,得到避障起点和避障终点之间的目标避障路径。这里,路径处理设备在第一通行区域中,还可以从第一终点网格开始搜索,直到搜索到的可达网格集合中包括第一起点网格时,停止搜索,以获得目标避障路径;由于从第一终点网格开始的搜索过程与从第一起点网格开始的搜索过程类似,本申请实施例在此不再重复描述。
需要说明的是,第一起点网格为避障起点对应的第一网格;目标第一网格是未搜索的(是指未搜索可达网格集合的)、且运动代价最小的第一网格;父网格逆推是指倒序确定父网格的过程。运动代价为从第一起点网格经过对应第一网格到达第一终点网格的最小代价,包括从第一起点网格经过父网格到达对应第一网格的第一代价,还包括从对应第一网格到达第一终点网格的第二代价。
可以理解的是,一方面,通过启发式搜索获得目标避障路径的过程中,由于每次搜索都是依据最小运动代价实现的,能够优化目标避障路径的性能;另一方面,通过在局部区域(称为避障搜索区域)启发式搜索目标避障路径,能够降低对地图渲染资源的依赖,提升路径获取效率和灵活性,还能够降低获取当前地图的目标规划路径的资源消耗。
示例性地,参见图8,图8是本申请实施例提供的一种示例性的确定目标避障路径的示意图;如图8所示,避障搜索区域8-1中第一网格8-11为避障起点对应的第一起点网格,第一网格8-12为避障终点对应的第一终点网格,第一网格8-13至第一网格8-15为目标障碍物对应的各个第一网格。这里,将搜索过程中获得的第一代价、第二代价和运动代价,分别以屏幕呈现角度依次显示在第一网格的左下角、右下角和左上角。
首先,从第一网格8-11开始搜索,如避障搜索区域8-2所示,确定与第一网格8-11相邻的可达网格集合包括第一网格8-16、第一网格8-17和第一网格8-18,以及分别对应的第一代价、第二代价和运动代价如避障搜索区域8-2所示;并且,第一网格8-16、第一网格8-17和第一网格8-18分别对应的父网格均为第一网格8-11。这里,选择第一网格8-18作为运动代价最小、且未搜索的目标第一网格;从而接着从第一网格8-18开始搜索,如避障搜索区域8-3所示,确定与第一网格8-18相邻的可达网格集合包括第一网格8-19、第一网格8-20和第一网格8-21,以及分别对应的第一代价、第二代价和运动代价如避障搜索区域8-3所示;并且,第一网格8-19、第一网格8-20和第一网格8-21分别对应的父网格均为第一网格8-18。这里,由于运动代价最小、且未搜索的目标的第一网格为第一网格8-21;从而接着从第一网格8-21开始搜索,如避障搜索区域8-4所示,确定与第一网格8-21相邻的可达网格集合包括第一网格8-22和第一网格8-23,以及分别对应的第一代价、第二代价和运动代价如避障搜索区域8-4所示;并且,第一网格8-22和第一网格8-23分别对应的父网格均为第一网格8-21。这里,由于运动代价最小、且未搜索的目标的第一网格为第一网格8-23;从而接着从第一网格8-23开始搜索,如避障搜索区域8-5所示,确定与第一网格8-23相邻的可达网格集合包括第一网格8-24、第一网格8-25和第一网格8-12,由于第一网格8-12为第一终点网格,因此结束搜索,并从第一网格8-12进行父网格逆推;第一网格8-12的父网格为第一网格8-23,第一网格8-23的父网格为第一网格8-21,第一网格8-21的父网格为第一网格8-18,第一网格8-18的父网格为第一网格8-11,从而获得的目标避障路径为:从第一网格8-11开始依次经过第一网格8-18、第一网格8-21和第一网格8-23,最终到达第一网格8-12,如避障搜索区域8-5所示。
参见图9,图9是本申请实施例提供的路径处理方法的流程示意图三;如图9所示,在本申请实施例中,图3中的步骤101之前还包括步骤106至步骤108;也就是说,路径处理设备响应于原始地图的更新,获得当前地图之前,该路径处理方法还包括步骤106至步骤108,下面对各步骤分别进行说明。
步骤106、对原始地图进行网格划分,得到地图网格区域。
在本申请实施例中,路径处理设备在获得当前地图之前,还包括对原始地图进行路径规划以获得原始规划路径的过程。这里,路径处理设备对原始地图进行路径规划所依据的原始地图的通行区域,可以是基于渲染资源(比如,导航网格)获得的,又可以是通过射线检测获得的,等等,本申请实施例对此不作限定。
需要说明的是,当路径处理设备通过射线检测获得原始地图的通行区域时,先对原始地图进行网格划分,原始地图的网格划分结果即为地图网格区域;这里,地图网格区域包括多个第二网格,而每个第二网格的形状可以是矩形,还可以是三角形,等等,本申请实施例对此不作限定。
步骤107、在地图网格区域中进行射线检测,得到联通的至少两个第二网格,将至少两个第二网格,确定为第二通行区域。
在本申请实施例中,路径处理设备在地图网格区域中进行射线检测,以通过射线检测确定各个第二网格之间的联通性;从而在地图网格区域中,路径处理设备能够获得联通的至少两个第二网格;这里,路径处理设备将至少两个第二网格,确定为第二通行区域;也就是说,第二通行区域包括联通的至少两个第二网格。
需要说明的是,路径处理设备可以从地图网格区域中选择任一第二网格开始进行射线检测,以检测出地图网格区域中所有联通的第二网格,并将地图网格区域中所有联通的第二网格确定为第二通行区域;此时,第二通行区域为地图网格区域中的通行区域。路径处理设备还可以从地图网格区域中的第二起点网格或第二终点网格开始进行射线检测,以检测出第二起点网格和第二终点网格之间所有联通的第二网格,并将第二起点网格和第二终点网格之间所有联通的第二网格确定为第二通行区域;此时,第二通行区域为第二起点网格和第二终点网格之间的通行区域。其中,第二起点网格为原始地图的运动起点对应的第二网格,第二终点网格为原始地图的运动终点对应的第二网格,至少两个第二网格至少包括第二起点网格和第二终点网格。
可以理解的是,路径处理设备从地图网格区域中的第二起点网格或第二终点网格开始进行射线检测,使得获得的第二通行区域为联通第二起点网格和第二终点网格的通行区域,降低了基于第二通行区域为第二起点网格和第二终点网格进行路径规划的数据量,从而,能够提升路径获取效率。
步骤108、基于第二通行区域对第二起点网格和第二终点网格进行路径规划,得到原始规划路径。
需要说明的是,路径处理设备基于第二通行区域进行路径规划的过程,与步骤1035中描述的路径处理设备基于第一通行区域进行路径规划的过程类似,本申请实施例对此不作限定。
在本申请实施例的步骤107中,路径处理设备在地图网格区域中进行射线检测,得到联通的至少两个第二网格,包括:路径处理设备在地图网格区域中,以第二起点网格为中心进行指定步长的射线检测,得到与第二起点网格联通的第1个第二网格集合;当第1个第二网格集合不包括第二终点网格时,通过迭代i执行以下处理:以第i个第二网格集合为中心进行目标步长的射线检测,得到与第i个第二网格集合联通的第i+1个第二网格集合;当得到的第i+1个第二网格集合包括第二终点网格时,结束射线检测,并将第二起点网格、以及i+1个第二网格集合组合为联通的至少两个第二网格。这里,当第1个第二网格集合包括第二终点网格时结束射线检测,并将第二起点网格和第1个第二网格集合确定为联通的至少两个第二网格。
需要说明的是,i为正整数;目标步长可以为指定步长,也可以与射线检测的联通覆盖率正相关,而射线检测的联通覆盖率可以是指已检测的第二网格中联通的第二网格的占比,还可以是指最近搜索的指定数量的第二网格中联通的第二网格的占比,又可以是两者的结合,等等,本申请实施例对此不作限定。i+1个第二网格集合包括第1个第二网格集合至第i+1个第二网格集合。这里,路径处理设备还可以从第二终点网格开始进行指定步长的射线检测,直至检测到第二起点网格时结束射线检测,本申请实施例对此不作限定。另外,每次射线检测获得了第二网格集合之后,对第二网格集合中是否包括第二终点网格进行判断,当判断出包括第二终点网格时,结束射线检测;而当判断出不包括第二终点网格时,继续基于当前的第二网格集合进行射线检测;其中,路径处理设备不断检测与前一第二网格集合联通的第二网格集合的过程,是一种基于广度优先算法(BFS,Breadth First Search)的射线检测过程;当然还可以基于深度优先算法(DFS,Depth First Search),本申请实施例对此不作限定。
在本申请实施例中,当目标步长为动态变化时,路径处理设备以第i个第二网格集合为中心进行目标步长的射线检测,得到与第i个第二网格集合联通的第i+1个第二网格集合之前,该路径处理方法方法还包括确定目标步长的过程;该确定目标步长的过程包括:路径处理方法获取已检测网格数量和联通网格数量;并获取与已检测网格数量负相关、且与联通网格数量正相关的目标步长。
需要说明的是,已检测网格数量是指截止到第i+1次射线检测前已检测的第二网格的数量,联通网格数量是指截止到第i+1次射线检测前已检测到的联通的第二网格的数量。
在本申请实施例中,路径处理设备确定目标步长的过程还可以包括:路径处理方法获取最近已检测的指定网格数量中的联通网格数量;并获取与联通网格数量正相关的目标步长。
可以理解的是,联通覆盖率越大目标步长越长,以实现射线检测过程中对网格的剪枝,进而能够提升联通区域检测的效率;联通覆盖率越小目标步长越短,以提升最近检测到的网格数量;进而能够提升联通区域检测的准确度。
在本申请实施例中,路径处理设备在地图网格区域中,以第二起点网格为中心进行指定步长的射线检测,得到与第二起点网格联通的第1个第二网格集合,包括:路径处理设备在地图网格区域中,以第二起点网格为中心,并基于指定步长确定多个指定角度对应的多个检测射线;基于有效条件,从多个检测射线中筛选有效检测射线集合;从有效检测射线集合中获取指定角度连续的至少两个有效检测射线,并获取至少两个有效检测射线对应的射线区域;将大于指定区域的射线区域内的第二网格,组合为与第二起点网格联通的第1个第二网格集合。
需要说明的是,有效条件基于射线长度、以及与指定对象的关联状态中的至少一种确定;比如,由于射线长度表征了射线的阻挡情况,当射线长度小于长度阈值时,表明该检测射线被阻挡,因此,路径处理设备将射线长度大于或等于长度阈值的检测射线确定为有效射线;再比如,当业务需求为穿过虚拟窗口时,则穿过虚拟窗口的检测射线为有效射线,其中,与指定对象的关联状态是指穿过虚拟窗口。这里,路径处理设备将每个射线区域与指定区域比较,以获得大于指定区域的射线区域,并将获得的射线区域内的第二网格组合为第二网格集合;易知,第二网格集合中的任两个第二网格之间均是联通的。另外,第i+1个第二网格集合的获取过程,与第1个第二网格集合的获取过程类似,本申请实施例在此不再重复描述。
在本申请实施例中,原始地图的更新可以是业务需求引起的,比如,在原始地图上出现随机障碍物,接收针对原始地图的虚拟创建操作等;此时,原始地图的更新发生在基于原始规划路径控制虚拟对象在原始地图上进行运动的过程;从而,图3的步骤101之前还包括的确定原始地图发生更新的过程包括:路径处理设备基于原始规划路径,控制虚拟对象在原始地图上进行运动;并在原始地图上进行运动的过程中,检测原始地图的场景变化;以及当检测到原始地图发生场景变化、且虚拟对象未到达运动终点时,确定原始地图发生更新。
在本申请实施例中,原始地图的更新还可以是版本更新引起的,此时,原始地图的更新发生在版本更新时;从而,图3的步骤101之前还包括的确定原始地图发生更新的过程包括:路径处理设备响应于版本更新指令,确定原始地图发生更新。
可以理解的是,在原始地图中出现随机障碍物或者响应于虚拟创建操作出现了虚拟模型时,或者由于版本更新由原始地图更新为当前地图时,通过局部的目标避障路径更新原始规划路径,来获得能够控制虚拟对象在当前地图上通行的目标规划路径,能够提升目标规划路径的获取效率和实时性;并且,能够降低控制虚拟对象在当前地图上通行的复杂度和资源消耗,提升控制虚拟对象在当前地图上通行的效率。
在本申请实施例中,路径处理设备在基于目标规划路径控制虚拟对象在当前地图上运动的过程中,当确定当前地图发生更新时,响应于当前地图的更新,获得下一地图;在基于目标规划路径控制虚拟对象在下一地图上运动的过程中,基于检测到的障碍物的避障路径,更新目标规划路径,得到下一规划路径;基于下一规划路径控制虚拟对象在下一地图上运动。其中,下一地图为更新后的当前地图。
需要说明的是,路径处理设备在地图发生更新时,在更新前的地图的规划路径上进行局部路径的更新,以获得更新后的地图对应的规划路径。另外,路径处理设备针对版本更新引起的地图更新,迭代更新地图的规划路径的局部路径,直至地图更新结束;路径处理设备针对业务需要引起的地图更新,迭代更新地图的规划路径的局部路径,直至运动至运动终点。
在本申请实施例中,路径处理设备基于目标规划路径,控制虚拟对象在当前地图上进行运动之后,该路径处理方法还包括:路径处理设备获取运动过程中的性能参数;并基于性能参数更新待测试应用。
需要说明的是,性能参数包括帧率、内存使用率、处理器使用率和渲染质量中的至少一种。待测试应用是指用于控制虚拟对象在地图上运动的应用,比如,游戏应用,仿真应用等。其中,当路径处理设备基于性能参数更新待测试应用时,可以将性能参数与参数阈值进行比较,并基于两者的比较结果确定是否更新待测试应用;以及在确定更新待测试应用时,通过帧率、时间复杂度、空间复杂度和渲染质量中的至少一种对待测试应用进行优化。比如,路径处理设备在确定帧率低于对应的参数阈值时,通过提升帧率来更新待测试应用;再比如,路径处理设备在确定内存使用率和处理器使用率中的至少一种低于对应的参数阈值时,可通过降低时间复杂度和空间复杂度中的至少一种来更新待测试应用;又比如,路径处理设备在确定渲染质量低于对应的参数阈值时,可通过提升渲染质量来新待测试应用。
可以理解的是,对待测试应用进行测试的过程中,通过本申请实施例提供的路径处理方法,能够提升更新后的原始地图的路径的获取效率,进而能够提升自动化测试的效率;另外,通过基于性能参数更新待测试应用,能够基于帧率、内存使用率、处理器使用率和渲染质量中的至少一种实现对待测试应用的针对性更新,以及能够提升待测试应用的性能。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。该示例性应用描述了在随机出现障碍物的游戏地图中进行避障的过程。
参见图10,图10是本申请实施例提供的一种示例性的避障流程示意图一;如图10所示,该示例性的避障流程示意图包括步骤1001至步骤1006,下面对各步骤分别进行说明。
步骤1001、生成通行区域(称为第二通行区域)。
需要说明的是,获取待跑图的地图A,并获取地图A的通行区域,也就生成了通行区域。其中,在对地图A进行首次跑图前,先利用射线检测的方式进行通行区域的生成。在地图通行区域的生成过程中,采取BFS和射线检测对地图A的联通区域进行搜索,并将搜索到的联通区域确定为通行区域。这里,对地图A进行网格划分,划分出的每个网格内部是联通的;采取BFS在两个网格之间进行射线检测,以判断两个网格的联通性,并最终获得地图A的联通区域。
参见图11,图11是本申请实施例提供的一种示例性的检测网格联通性的示意图;如图11所示,网格区域11-1为对地图进行网格划分获得的结果;网格11-11(称为第二起点网格)为起点,网格11-12(称为第二终点网格)为终点,以及斜线填充的网格为已检测出的联通区域,箭头11-2表示所检测的联通性是指已检测出的联通区域与网格11-12的联通性。
需要说明的是,射线检测通过射线来检测物体的物理碰撞;因此,在两个网格区域间进行射线检测,能够判断两个网格间的联通性。这里,可以将所有有效射线组合成一块区域,并通过有效射线间的射线区域的面积判定是否为联通区域;其中,有效射线是指满足前置条件(称为有效条件)的射线,前置条件比如为未被阻挡,穿过虚拟窗口等。参见图12,图12是本申请实施例提供的一种示例性的射线检测示意图;如图12所示,从源对象12-1发射射线,示例性地示出了射线12-21、射线12-22和射线12-23;其中,由于射线12-21被障碍物12-3阻挡,故不是有效射线;射线12-22虽然未被障碍物12-3阻挡能到达目标对象12-5,但由于射线12-22未穿过虚拟窗口12-4,仍不是有效射线;射线12-23未被障碍物12-3阻挡,且能够穿过虚拟窗口12-4到达目标对象12-5,故是有效射线。
在本申请实施例中,为了提升BFS算法的射线检测效率,可以在射线检测过程中结合惩罚因子动态调整检测步长(称为目标步长)。
从而,检测步长d可通过式(1)获得,式(1)如下所示。
这里,联通网格数越多,检测步长越长,如此能够实现动态剪枝;反之检测步长越小,以尽可能多地基于附近的节点进行射线检测。
参见图13,图13是本申请实施例提供的一种示例性的基于检测步长进行射线检测的示意图;如图13所示,圆圈为待进行射线检测的网格,从网格13-1开始进行射线检测,如果当前检测步长为1(d=1),则一次检测到的网格包括网格13-2至网格13-5。当完成此次射线检测之后,检测步长调整为2(d=2);参见图14,图14是本申请实施例提供的另一种示例性的基于检测步长进行射线检测的示意图;如图14所示,圆圈为待进行射线检测的网格,从网格13-2开始进行射线检测,由于检测步长已调整为2,则一次检测到的网格如箭头所示,包括网格14-1至网格14-8。
需要说明的是,结合惩罚因子进行检测步长的动态调整,能够减少射线检测过程中网格的遍历数量,降低射线检测耗时,如表1所示。
表1
由表1可知,两种方式的通行区域面积接近,而相比于“BFS”方式,“BFS+惩罚因子”的方式减少了遍历网格数,能够提升通行区域的获取效率。
步骤1002、基于通行区域进行路径规划,得到最优路径(称为原始规划路线)。
需要说明的是,最优路径可通过路径规划算法(比如,A*算法)获得,对应的伪代码为“Initial optimal_path = Init_A* function()”,其中,“optimal_path”表示最优路径,“Init_A* function()”为路径规划算法。
步骤1003、地图更新。
需要说明的是,地图更新是指原始地图中出现了随机障碍物。
步骤1004、在基于最优路径控制游戏角色(称为虚拟对象)运动的过程中,确定游戏角色的运动被随机障碍物(称为目标障碍物)阻挡。
需要说明的是,在地图更新之后,仍基于更新前地图的最优路径控制游戏角色运动。
步骤1005、对随机障碍物进行局部动态避障,获得避障路径(称为目标避障路径)。
需要说明的是,通过结合局部动态避障算法(比如,向量场直方图算法(VFH,Vector Field Histogram))和路径规划算法,来获得避障路径;其中,局部动态避障算法用于确定局部通行区域(称为第一通行区域),路径规划算法用于基于局部通行区域进行路径规划,以获得避障路径。另外,局部动态避障的伪代码可描述为“avoid obstacle by VFH”。
下面说明避障的过程。参见图15,图15是本申请实施例提供的一种示例性的避障示意图;如图15所示,在避障搜索区域15-1中,首先,基于网格与避障起点网格15-11的距离(称为第一距离)、以及该网格与随机障碍物的距离(称为第二距离)表示该网格。然后,计算从避障起点网格15-11发射的每个运动方向区域(比如,区域15-12)所包括的网格的叠加结果,并采用加权平均方式对该叠加结果进行平滑处理,得到该运动方向区域的障碍物密度(Polar Obstacle Density,称为避障代价),从而得到障碍物密度分布图;参见图16,图16是本申请实施例提供的一种示例性的障碍物密度分布图;如图16所示,横坐标表示各个运动方向,纵坐标表示障碍物密度;障碍物密度分布图16-1中低于阈值16-2的运动方向为避障方向。最后,基于避障方向确定局部通行区域(称为第一通行区域),进而基于局部通行区域获得避障路径。
参见图17,图17是本申请实施例提供的一种获取运动方向区域内网格累加结果的示意图;如图17所示,示例性地示出了运动方向区域17-1所对应的网格17-2(B=(0.5,0.5,0.3))和网格17-3(C=(0.6,0.4,0.3)),对应的累加结果为B+C(1.1,0.9,0.6)。
步骤1006、利用避障路径更新最优路径。执行步骤1003。
需要说明的是,避障路径的起点(称为避障起点)和终点(称为避障终点)均在原始的最优路径上,从而,在原始的最优路径上,将避障路径的起点和终点之间的路径替换为避障路径;如此,既能成功避障,也可以得到全局最优解;对应的伪代码可以描述为“combinepre_path and new avoid obstacle path”,其中,“new”表示避障路径,“pre_path”表示最优路径,可以是上述的“optimal_path”,也可以是更新后的“optimal_path”。
参见图18,图18是本申请实施例提供的一种示例性更新最优路径的示意图;如图18所示,示出了最优路径18-1(称为原始规划路径),当针对随机障碍物18-2确定了避障路径18-3时,利用避障路径18-3替换最优路径18-1上的对应路径18-11,得到新的最优路径18-4。
需要说明的是,采用本申请实施例提供的路径处理方法,能够快速地在出现随机障碍物的地图中实现路径规划。参见图19,图19是本申请实施例提供的一种示例性的路径规划示意图一;如图19所示,在出现随机障碍物的地图19-1中,能够针对起点19-11和终点19-12规划出路径19-13;其中,黑色网格为包括随机障碍物的所有障碍物所对应的网格。
参见图20,图20是本申请实施例提供的一种示例性的路径规划示意图二;如图20所示,在出现随机障碍物的地图20-1中,能够针对起点19-11和终点19-12规划出路径20-11;其中,黑色网格为包括随机障碍物的所有障碍物所对应的网格。
下面对本申请实施例提供的路径处理方法的应用结果进行说明。
参见表2,表2描述了在无新增障碍物的地图中,采用本申请实施例提供的路径处理方法(简称为本申请方式)和录制回放方式分别跑图的结果。
表2
从表2可知,在无新增障碍物的地图中进行跑图时,本申请实施例提供的路径处理方法和录制回放方式在自动化测试性能(包括跑图时长、帧率和轨迹重合率)上相近,表明采用本申请实施例提供的路径处理方法进行性能测试,所获得的性能数据的可靠性。其中,轨迹重合率是指采用每种方式进行的两次跑图的轨迹差异性,轨迹重合率越高,轨迹差异越小。
参见表3,表3描述了新增固定障碍物的地图中,采用本申请实施例提供的路径处理方法和人工方式分别跑图的结果。
表3
从表3可知,在新增固定障碍物的地图中,人工方式与本申请实施例提供的路径处理方法在自动化测试性能上相近。
参见表4,表4描述了在随机新增障碍物的地图中,采用本申请实施例提供的路径处理方法、人工方式和录制回放方式分别跑图的结果。
表4
从表4可知,在随机新增障碍物的地图中,录制回放方式的性能数据低于另外两种方式,无法实现自动化性能测试;而人工方式与本申请实施例提供的路径处理方法在自动化测试性能上相近,能够实现自动化性能测试。
下面,将说明本申请实施例在另一个实际的应用场景中的示例性应用。该示例性应用描述了由于版本更新引起的游戏地图中存在新的障碍物,并对新的障碍物进行避障的过程。
参见图21,图21是本申请实施例提供的一种示例性的避障流程示意图二;如图21所示,该示例性的避障流程示意图包括步骤2101至步骤2106,下面对各步骤分别进行说明。
步骤2101、生成通行区域(称为第二通行区域)。
需要说明的是,对上一版本的地图的联通区域进行搜索,也就获得了通行区域。
步骤2102、基于通行区域进行路径规划,得到最优路径(称为原始规划路线)。
步骤2103、地图更新。
需要说明的是,地图更新是指版本更新引起的。
步骤2104、在基于最优路径控制游戏角色(称为虚拟对象)运动的过程中,确定游戏角色的运动被新版本地图中的新障碍物(称为目标障碍物)阻挡。
需要说明的是,在地图更新之后,仍基于更新前地图的最优路径控制游戏角色运动。
步骤2105、对新障碍物进行局部动态避障,获得避障路径(称为目标避障路径)。
步骤2106、利用避障路径更新最优路径。执行步骤2103。
可以理解的是,一方面,通过将地图划分为多个网格,再通过射线检测判定网格间的联通性来确定通行区域,并在该过程中结合惩罚因子动态调整检测步长,降低了确定通行区域的时间复杂度,从而能够提升通行区域的确定效率。另一方面,针对检测到的障碍物,结合路径规划算法和局部动态避障算法确定避开障碍物的局部避障路径,并基于局部避障路径更新原始规划路径,能够提升地图更新时的路径生成的效率与实时性,还能够提升自动化性能测试的测试效率和智能性,因此能够满足版本迭代时的性能测试需求。再一方面,针对检测到的障碍物,结合路径规划算法和局部动态避障算法确定避开障碍物的局部避障路径,并基于局部避障路径更新原始规划路径,以及原始规划路线也是通过射线检测获得的,使得路径规划与地图的渲染资源是独立的,从而能够提升路径规划的灵活性。
下面继续说明本申请实施例提供的路径处理装置455的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的路径处理装置455中的软件模块可以包括:
地图更新模块4551,用于响应于原始地图的更新,获得当前地图,其中,所述当前地图为更新后的所述原始地图,所述原始地图的规划路径为原始规划路径;
运动检测模块4552,用于在基于所述原始规划路径控制虚拟对象在所述当前地图上运动的过程中,对障碍物进行检测,得到目标障碍物;
局部避障模块4553,用于获取所述目标障碍物的目标避障路径,其中,所述目标避障路径用于从避障起点出发避开所述目标障碍物到达避障终点,所述避障起点为所述原始规划路径上的避障开始位置,所述避障终点为所述原始规划路径上的避障结束位置;
路径更新模块4554,用于基于所述目标避障路径更新所述原始规划路径,得到目标规划路径;
运动控制模块4555,用于基于所述目标规划路径,控制所述虚拟对象在所述当前地图上进行运动。
在本申请实施例中,所述局部避障模块4553,还用于基于所述避障起点,确定避障搜索区域;在所述避障搜索区域中,针对所述避障起点对应的多个指定运动方向中的每个所述指定运动方向,确定对应的避障代价;基于所述避障代价,从多个所述指定运动方向中选取至少一个避障方向;基于至少一个所述避障方向,确定所述避障搜索区域中的第一通行区域;基于所述第一通行区域对所述避障起点和所述避障终点进行路径规划,得到所述目标避障路径。
在本申请实施例中,所述局部避障模块4553,还用于基于第一距离和第二距离中的至少一种,确定所述避障搜索区域中每个第一网格的网格避障代价,其中,所述第一距离为所述第一网格与所述避障起点之间的距离,所述第二距离为所述第一网格与所述目标障碍物之间的距离;在所述避障搜索区域中,获取多个所述指定运动方向中每个所述指定运动方向上的第一网格集合;基于所述网格避障代价,确定所述第一网格集合对应的所述网格避障代价集合;对所述网格避障代价集合进行平滑处理,得到每个所述指定运动方向对应的所述避障代价。
在本申请实施例中,当至少一个所述避障方向为多个所述避障方向时,所述局部避障模块4553,还用于获取多个所述避障方向对应的多个子通行区域,并将多个所述子通行区域组合为所述避障搜索区域中的所述第一通行区域;或者,基于第一终点网格,从多个所述避障方向中确定目标避障方向,并将所述目标避障方向上的通行区域,确定为所述避障搜索区域中的所述第一通行区域,其中,所述第一终点网格为所述避障终点对应的第一网格。
在本申请实施例中,所述局部避障模块4553,还用于在所述第一通行区域中,搜索与第一起点网格相邻的可达网格集合,其中,所述第一起点网格为所述避障起点对应的第一网格;获取所述可达网格集合中每个所述第一网格对应的运动代价,并将获取所述运动代价所依据的最近已搜索的所述第一网格确定为父网格,其中,所述运动代价为从所述第一起点网格经过对应所述第一网格到达第一终点网格的代价;搜索与目标第一网格相邻的下一可达网格集合,直至搜索到的所述可达网格集合中包括所述第一终点网格时,停止搜索,并从所述第一终点网格向所述第一起点网格进行父网格逆推,得到所述避障起点和所述避障终点之间的所述目标避障路径,其中,所述目标第一网格是未搜索的、且所述运动代价最小的所述第一网格。
在本申请实施例中,所述路径处理装置455还包括路径规划模块4556,用于对所述原始地图进行网格划分,得到地图网格区域,其中,所述地图网格区域包括多个第二网格;在所述地图网格区域中进行射线检测,得到联通的至少两个所述第二网格;将至少两个所述第二网格,确定为第二通行区域;基于所述第二通行区域对第二起点网格和第二终点网格进行路径规划,得到所述原始规划路径,其中,所述第二起点网格为所述原始地图的运动起点对应的所述第二网格,所述第二终点网格为所述原始地图的运动终点对应的所述第二网格,至少两个所述第二网格至少包括所述第二起点网格和所述第二终点网格。
在本申请实施例中,所述路径规划模块4556,还用于在所述地图网格区域中,以所述第二起点网格为中心进行指定步长的射线检测,得到与所述第二起点网格联通的第1个第二网格集合;当第1个所述第二网格集合不包括所述第二终点网格时,通过迭代i执行以下处理,其中,i为正整数:以第i个所述第二网格集合为中心进行目标步长的射线检测,得到与第i个所述第二网格集合联通的第i+1个所述第二网格集合,其中,所述目标步长与射线检测的联通覆盖率正相关;当得到的第i+1个所述第二网格集合包括所述第二终点网格时,结束射线检测,并将所述第二起点网格、以及i+1个所述第二网格集合组合为联通的至少两个所述第二网格。
在本申请实施例中,所述路径规划模块4556,还用于在所述地图网格区域中,以所述第二起点网格为中心,并基于所述指定步长确定多个指定角度对应的多个检测射线;基于有效条件,从多个所述检测射线中筛选有效检测射线集合,其中,所述有效条件基于射线长度、以及与指定对象的关联状态中的至少一种确定;从所述有效检测射线集合中获取所述指定角度连续的至少两个有效检测射线,并获取至少两个所述有效检测射线对应的射线区域;将大于指定区域的所述射线区域内的所述第二网格,组合为与所述第二起点网格联通的第1个所述第二网格集合。
在本申请实施例中,所述路径规划模块4556,还用于获取已检测网格数量和联通网格数量,其中,所述已检测网格数量是指截止到第i+1次射线检测前已检测的所述第二网格的数量,所述联通网格数量是指截止到第i+1次射线检测前已检测到的联通的所述第二网格的数量;获取与所述已检测网格数量负相关、且与所述联通网格数量正相关的所述目标步长。
在本申请实施例中,所述地图更新模块4551,还用于基于所述原始规划路径,控制所述虚拟对象在所述原始地图上进行运动;在所述原始地图上进行运动的过程中,检测所述原始地图的场景变化;当检测到所述原始地图发生场景变化、且所述虚拟对象未到达运动终点时,确定所述原始地图发生更新;或者,响应于版本更新指令,确定所述原始地图发生更新。
在本申请实施例中,所述地图更新模块4551,还用于在基于所述目标规划路径控制所述虚拟对象在所述当前地图上运动的过程中,响应于所述当前地图的更新,获得下一地图,其中,所述下一地图为更新后的所述当前地图;在基于所述目标规划路径控制虚拟对象在所述下一地图上运动的过程中,基于检测到的障碍物的避障路径,更新所述目标规划路径,得到下一规划路径;基于所述下一规划路径控制所述虚拟对象在所述下一地图上运动。
在本申请实施例中,所述路径处理装置455还包括运动测试模块4557,用于获取运动过程中的性能参数,其中,所述性能参数包括帧率、内存使用率、处理器使用率和渲染质量中的至少一种;基于所述性能参数更新待测试应用,其中,所述待测试应用是指用于控制所述虚拟对象在地图上运动的应用。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本申请实施例上述的路径处理方法。
本申请实施例提供一种存储有计算机可执行指令的计算机可读存储介质,其中存储有计算机可执行指令,当计算机可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的路径处理方法,例如,如图3示出的路径处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,计算机可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,计算机可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,HyperText Markup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,计算机可执行指令可被部署为在一个电子设备上执行(此时,这一个电子设备即为路径处理设备),或者在位于一个地点的多个电子设备上执行(此时,位于一个地点的多个电子设备即为路径处理设备),又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行(此时,分布在多个地点且通过通信网络互连的多个电子设备即为路径处理设备)。
可以理解的是,在本申请实施例中,涉及到用户信息地图等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
综上所述,本申请实施例在原始地图发生更新时,针对获得的当前地图,先基于原始规划路径控制虚拟对象在当前地图上进行运动;再在运动过程中检测障碍物,以及在检测到障碍物时,获取出从原始规划路径上的避障起点出发避开目标障碍物并运动至原始规划路径的避障路径,并基于该局部的避障路径更新原始规划路径,而该目标避障路径为局部路径;因此实现了基于局部路径实时更新全局规划路径的过程,能够实现目标路径的快速获取,从而能够提升目标规划路径的获取效率。另外,在通过射线检测获取联通区域时,结合惩罚因子确定目标步长,在确保准确率的情况下能够提升联通区域的效率。此外,本申请实施例提供的路径处理方法的处理过程与虚拟资源独立,能够提升路径规划的灵活性。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (15)
1.一种路径处理方法,其特征在于,所述方法包括:
响应于原始地图的更新,获得当前地图,其中,所述当前地图为更新后的所述原始地图,所述原始地图的规划路径为原始规划路径,所述原始地图和所述当前地图是指用于虚拟对象运动的虚拟场景,所述原始地图的更新为障碍物的新增或改变,所述原始地图中用于获取所述原始规划路径的第二通行区域是通过射线检测获得的,并且,射线检测所依据的目标步长与射线检测的联通覆盖率正相关;
在基于所述原始规划路径控制虚拟对象在所述当前地图上运动的过程中,对障碍物进行检测,得到目标障碍物;
获取所述目标障碍物的目标避障路径,其中,所述目标避障路径用于从避障起点出发避开所述目标障碍物到达避障终点,所述避障起点为所述原始规划路径上的避障开始位置,所述避障终点为所述原始规划路径上的避障结束位置;
基于所述目标避障路径更新所述原始规划路径,得到目标规划路径;
基于所述目标规划路径,控制所述虚拟对象在所述当前地图上进行运动。
2.根据权利要求1所述的方法,其特征在于,所述获取所述目标障碍物的目标避障路径,包括:
基于所述避障起点,确定避障搜索区域;
在所述避障搜索区域中,针对所述避障起点对应的多个指定运动方向中的每个所述指定运动方向,确定对应的避障代价;
基于所述避障代价,从多个所述指定运动方向中选取至少一个避障方向;
基于至少一个所述避障方向,确定所述避障搜索区域中的第一通行区域;
基于所述第一通行区域对所述避障起点和所述避障终点进行路径规划,得到所述目标避障路径。
3.根据权利要求2所述的方法,其特征在于,所述在所述避障搜索区域中,针对所述避障起点对应的多个指定运动方向中的每个所述指定运动方向,确定对应的避障代价,包括:
基于第一距离和第二距离中的至少一种,确定所述避障搜索区域中每个第一网格的网格避障代价,其中,所述第一距离为所述第一网格与所述避障起点之间的距离,所述第二距离为所述第一网格与所述目标障碍物之间的距离;
在所述避障搜索区域中,获取多个所述指定运动方向中每个所述指定运动方向上的第一网格集合;
基于所述网格避障代价,确定所述第一网格集合对应的所述网格避障代价集合;
对所述网格避障代价集合进行平滑处理,得到每个所述指定运动方向对应的所述避障代价。
4.根据权利要求2所述的方法,其特征在于,当至少一个所述避障方向为多个所述避障方向时,所述基于至少一个所述避障方向,确定所述避障搜索区域中的第一通行区域,包括:
获取多个所述避障方向对应的多个子通行区域,并将多个所述子通行区域组合为所述避障搜索区域中的所述第一通行区域;
或者,基于第一终点网格,从多个所述避障方向中确定目标避障方向,并将所述目标避障方向上的通行区域,确定为所述避障搜索区域中的所述第一通行区域,其中,所述第一终点网格为所述避障终点对应的第一网格。
5.根据权利要求2所述的方法,其特征在于,所述基于所述第一通行区域对所述避障起点和所述避障终点进行路径规划,得到所述目标避障路径,包括:
在所述第一通行区域中,搜索与第一起点网格相邻的可达网格集合,其中,所述第一起点网格为所述避障起点对应的第一网格;
获取所述可达网格集合中每个所述第一网格对应的运动代价,并将获取所述运动代价所依据的最近已搜索的所述第一网格确定为父网格,其中,所述运动代价为从所述第一起点网格经过对应所述第一网格到达第一终点网格的代价;
搜索与目标第一网格相邻的下一可达网格集合,直至搜索到的所述可达网格集合中包括所述第一终点网格时,停止搜索,并从所述第一终点网格向所述第一起点网格进行父网格逆推,得到所述避障起点和所述避障终点之间的所述目标避障路径,其中,所述目标第一网格是未搜索的、且所述运动代价最小的所述第一网格。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述响应于原始地图的更新,获得当前地图之前,所述方法还包括:
对所述原始地图进行网格划分,得到地图网格区域,其中,所述地图网格区域包括多个第二网格;
在所述地图网格区域中进行射线检测,得到联通的至少两个所述第二网格;
将至少两个所述第二网格,确定为第二通行区域;
基于所述第二通行区域对第二起点网格和第二终点网格进行路径规划,得到所述原始规划路径,其中,所述第二起点网格为所述原始地图的运动起点对应的所述第二网格,所述第二终点网格为所述原始地图的运动终点对应的所述第二网格,至少两个所述第二网格至少包括所述第二起点网格和所述第二终点网格。
7.根据权利要求6所述的方法,其特征在于,所述在所述地图网格区域中进行射线检测,得到联通的至少两个所述第二网格,包括:
在所述地图网格区域中,以所述第二起点网格为中心进行指定步长的射线检测,得到与所述第二起点网格联通的第1个第二网格集合;
当第1个所述第二网格集合不包括所述第二终点网格时,通过迭代i执行以下处理,其中,i为正整数:
以第i个所述第二网格集合为中心进行目标步长的射线检测,得到与第i个所述第二网格集合联通的第i+1个所述第二网格集合;
当得到的第i+1个所述第二网格集合包括所述第二终点网格时,结束射线检测,并将所述第二起点网格、以及i+1个所述第二网格集合组合为联通的至少两个所述第二网格。
8.根据权利要求7所述的方法,其特征在于,所述在所述地图网格区域中,以所述第二起点网格为中心进行指定步长的射线检测,得到与所述第二起点网格联通的第1个第二网格集合,包括:
在所述地图网格区域中,以所述第二起点网格为中心,并基于所述指定步长确定多个指定角度对应的多个检测射线;
基于有效条件,从多个所述检测射线中筛选有效检测射线集合,其中,所述有效条件基于射线长度、以及与指定对象的关联状态中的至少一种确定;
从所述有效检测射线集合中获取所述指定角度连续的至少两个有效检测射线,并获取至少两个所述有效检测射线对应的射线区域;
将大于指定区域的所述射线区域内的所述第二网格,组合为与所述第二起点网格联通的第1个所述第二网格集合。
9.根据权利要求7所述的方法,其特征在于,所述以第i个所述第二网格集合为中心进行目标步长的射线检测,得到与第i个所述第二网格集合联通的第i+1个所述第二网格集合之前,所述方法还包括:
获取已检测网格数量和联通网格数量,其中,所述已检测网格数量是指截止到第i+1次射线检测前已检测的所述第二网格的数量,所述联通网格数量是指截止到第i+1次射线检测前已检测到的联通的所述第二网格的数量;
获取与所述已检测网格数量负相关、且与所述联通网格数量正相关的所述目标步长。
10.根据权利要求1至5任一项所述的方法,其特征在于,所述响应于原始地图的更新,获得当前地图之前,所述方法还包括:
基于所述原始规划路径,控制所述虚拟对象在所述原始地图上进行运动;
在所述原始地图上进行运动的过程中,检测所述原始地图的场景变化;
当检测到所述原始地图发生场景变化、且所述虚拟对象未到达运动终点时,确定所述原始地图发生更新;或者,
响应于版本更新指令,确定所述原始地图发生更新。
11.根据权利要求1至5任一项所述的方法,其特征在于,所述基于所述目标规划路径,控制所述虚拟对象在所述当前地图上进行运动之后,所述方法还包括:
在基于所述目标规划路径控制所述虚拟对象在所述当前地图上运动的过程中,响应于所述当前地图的更新,获得下一地图,其中,所述下一地图为更新后的所述当前地图;
在基于所述目标规划路径控制虚拟对象在所述下一地图上运动的过程中,基于检测到的障碍物的避障路径,更新所述目标规划路径,得到下一规划路径;
基于所述下一规划路径控制所述虚拟对象在所述下一地图上运动。
12.根据权利要求1至5任一项所述的方法,其特征在于,所述基于所述目标规划路径,控制所述虚拟对象在所述当前地图上进行运动之后,所述方法还包括:
获取运动过程中的性能参数,其中,所述性能参数包括帧率、内存使用率、处理器使用率和渲染质量中的至少一种;
基于所述性能参数更新待测试应用,其中,所述待测试应用是指用于控制所述虚拟对象在地图上运动的应用。
13.一种用于路径处理的电子设备,其特征在于,所述电子设备包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令时,实现权利要求1至12任一项所述的路径处理方法。
14.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令被处理器执行时,实现权利要求1至12任一项所述的路径处理方法。
15.一种路径处理装置,其特征在于,所述路径处理装置包括:
地图更新模块,用于响应于原始地图的更新,获得当前地图,其中,所述当前地图为更新后的所述原始地图,所述原始地图的规划路径为原始规划路径,所述原始地图和所述当前地图是指用于虚拟对象运动的虚拟场景,所述原始地图的更新为障碍物的新增或改变,所述原始地图中用于获取所述原始规划路径的第二通行区域是通过射线检测获得的,并且,射线检测所依据的目标步长与射线检测的联通覆盖率正相关;
运动检测模块,用于在基于所述原始规划路径控制虚拟对象在所述当前地图上运动的过程中,对障碍物进行检测,得到目标障碍物;
局部避障模块,用于获取所述目标障碍物的目标避障路径,其中,所述目标避障路径用于从避障起点出发避开所述目标障碍物到达避障终点,所述避障起点为所述原始规划路径上的避障开始位置,所述避障终点为所述原始规划路径上的避障结束位置;
路径更新模块,用于基于所述目标避障路径更新所述原始规划路径,得到目标规划路径;
运动控制模块,用于基于所述目标规划路径,控制所述虚拟对象在所述当前地图上进行运动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211600877.5A CN115601521B (zh) | 2022-12-14 | 2022-12-14 | 一种路径处理方法、电子设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211600877.5A CN115601521B (zh) | 2022-12-14 | 2022-12-14 | 一种路径处理方法、电子设备、存储介质及程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115601521A CN115601521A (zh) | 2023-01-13 |
CN115601521B true CN115601521B (zh) | 2023-03-10 |
Family
ID=84853967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211600877.5A Active CN115601521B (zh) | 2022-12-14 | 2022-12-14 | 一种路径处理方法、电子设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115601521B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116943206A (zh) * | 2023-01-31 | 2023-10-27 | 腾讯科技(深圳)有限公司 | 移动路径的确定方法和装置、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103576686A (zh) * | 2013-11-21 | 2014-02-12 | 中国科学技术大学 | 一种机器人自主导引及避障的方法 |
CN110456789A (zh) * | 2019-07-23 | 2019-11-15 | 中国矿业大学 | 一种清洁机器人的全覆盖路径规划方法 |
CN111744197A (zh) * | 2020-08-07 | 2020-10-09 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备及可读存储介质 |
CN112595337A (zh) * | 2020-12-01 | 2021-04-02 | 苏州欧菲光科技有限公司 | 避障路径规划方法、装置、电子装置、车辆及存储介质 |
CN113219988A (zh) * | 2021-06-01 | 2021-08-06 | 苏州天准科技股份有限公司 | 避障路径智能规划方法、存储介质和无人巡检车 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104613976B (zh) * | 2014-08-26 | 2017-12-15 | 腾讯科技(深圳)有限公司 | 确定路径的方法及装置 |
US10830592B2 (en) * | 2017-09-21 | 2020-11-10 | Dell Products L.P. | Indoor navigation path determination system |
-
2022
- 2022-12-14 CN CN202211600877.5A patent/CN115601521B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103576686A (zh) * | 2013-11-21 | 2014-02-12 | 中国科学技术大学 | 一种机器人自主导引及避障的方法 |
CN110456789A (zh) * | 2019-07-23 | 2019-11-15 | 中国矿业大学 | 一种清洁机器人的全覆盖路径规划方法 |
CN111744197A (zh) * | 2020-08-07 | 2020-10-09 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备及可读存储介质 |
CN112595337A (zh) * | 2020-12-01 | 2021-04-02 | 苏州欧菲光科技有限公司 | 避障路径规划方法、装置、电子装置、车辆及存储介质 |
CN113219988A (zh) * | 2021-06-01 | 2021-08-06 | 苏州天准科技股份有限公司 | 避障路径智能规划方法、存储介质和无人巡检车 |
Also Published As
Publication number | Publication date |
---|---|
CN115601521A (zh) | 2023-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210103283A1 (en) | Autonomous vehicle simulation system for analyzing motion planners | |
CN111714892B (zh) | 游戏寻路方法及装置、存储介质、计算机设备 | |
WO2022193612A1 (zh) | 游戏角色的运动处理方法及装置、存储介质、计算机设备 | |
CN115601521B (zh) | 一种路径处理方法、电子设备、存储介质及程序产品 | |
CN110998663B (zh) | 一种仿真场景的图像生成方法、电子设备和存储介质 | |
US20110310088A1 (en) | Personalized navigation through virtual 3d environments | |
US20140334713A1 (en) | Method and apparatus for constructing map for mobile robot | |
CN111111187B (zh) | 基于网格的在线游戏寻路方法和装置 | |
US20120127169A1 (en) | Guided Navigation Through Geo-Located Panoramas | |
CN112090078B (zh) | 游戏角色移动控制方法、装置、设备和介质 | |
Schwarz et al. | Procedural design of exterior lighting for buildings with complex constraints | |
CN112370788A (zh) | 游戏中虚拟对象的导航方法及电子设备 | |
CN114177613B (zh) | 导航网格更新方法、装置、设备及计算机可读存储介质 | |
CN103888205A (zh) | 一种电磁波传播预测方法和装置 | |
CN111744199A (zh) | 图像处理方法及装置、计算机可读存储介质、电子设备 | |
Christie et al. | Camera control in computer graphics: models, techniques and applications | |
CN113276883A (zh) | 基于动态生成环境的无人车行驶策略规划方法及实现装置 | |
CN116246012A (zh) | 一种虚拟建筑模型的生成方法、装置、以及电子设备 | |
KR20140048828A (ko) | 군중 애니메이션을 생성하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
CN113244619B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN116878532A (zh) | 移动对象的路径规划方法、装置以及相关设备 | |
CN116772846A (zh) | 一种无人机航迹规划方法、装置、设备及介质 | |
CN111949122B (zh) | 一种虚拟漫游数据的生成方法及装置 | |
CN115343724A (zh) | 雷达仿真扫描方法及装置、计算机可读存储介质、终端 | |
CN114727090A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40080388 Country of ref document: HK |