一种室内空间最短路径的计算方法、装置、终端设备以及存储介质与流程

文档序号:15689340发布日期:2018-10-16 21:44阅读:218来源:国知局

本发明涉及计算机技术领域,尤其是涉及一种室内空间最短路径的计算方法及装置、终端设备、存储介质。



背景技术:

随着城市化进程的加快,大型室内建筑物越来越多,其内部结构越来越复杂,人们在室内活动的时间越来越长,室内导航路径规划有着切实的意义。路径规划算法中,dijkstra(迪杰斯特拉)算法是求有向图中从某一源点到其余各点最短路径的有效算法,算法适应网络拓扑变化,且性能稳定,是路径规划的经典算法。

dijkstra算法思想是:设g=(v,e)是一个带权有向图,把图中各顶点的集合v分成两组,第一组为已求出最短路径的顶点集合(用s表示,初始时s中只有一个源点,以后每求得一条最短路径,就将加入到集合s中,直到全部顶点都加入到s中,算法就结束了),第二组为其余未确定最短路径的顶点集合(用u表示),按最短路径长度的递增次序依次把第二组的顶点加入s中。在加入的过程中,总保持从源点v到s中各顶点的最短路径长度不大于从源点v到u中任何顶点的最短路径长度。此外,每个顶点对应一个距离,s中的顶点的距离就是从v到此顶点的最短路径长度,u中的顶点的距离,是从v到此顶点只包括s中的顶点为中间顶点的当前最短路径长度。

dijkstra算法步骤:

a.初始时,s只包含源点,即s={v},v的距离为0。u包含除v外的其他顶点,即:u={其余顶点},若v与u中顶点u有边,则<u,v>有不为∞的权值,若u不是v的出边邻接点,则<u,v>权值为∞。

b.从u中选取一个距离v最小的顶点k,把k,加入s中(该选定的距离就是v到k的最短路径长度)。

c.以k为新考虑的中间点,修改u中各顶点的距离;若从源点v到顶点u的距离(经过顶点k)比原来距离(不经过顶点k)短,则修改顶点u的距离值,修改后的距离值的顶点k的距离加上边上的权。

d.重复步骤b和c直到所有顶点都包含在s中。

上述的dijkstra算法可以得到从起始点到终点的最短路径,但是在实际的室内路径规划问题中,由于室内环境的复杂性和多样性,实际的室内路径选择也呈现个性化和多样化,使得人们对室内路径的选择不仅仅以路径距离作为唯一标准,还有一些影响路径选择的其他因素,仅仅考虑路径距离并不能满足人们在室内的路径选择需求,这些模型结构只是简单对室内空间进行建模,忽略了移动对象与障碍空间的位置关系,导致没有障碍物阻挡的移动对象也需要通过复杂的计算得到距离,降低了算法的性能。在室内环境下移动对象之间距离相对较小而且对象之间有可能具有障碍物的阻挡,对查询的精度要求更高,因此,不能简单地将距离抽象为两点之间的欧式距离进行近似计算。

鉴于此,如何克服现有算法的局限性,从室内存在障碍物的角度出发提供一种室内最短路径方法以实现顾及障碍物的最短路径的查找成为目前需要解决的技术问题。



技术实现要素:

本发明实施例提出的一种室内空间最短路径的计算方法及装置、终端设备、存储介质,本发明实施例针对室内离散格网环境下的最短路径规划问题,依据室内空间布局和障碍物分布,对定位区域进行次区域的划分和地理编码、网络节点选择等。通过对这些区域、节点等空间数据的有效组织管理,针对室内离散格网空间环境下dijkstra最短路径算法进行了优化设计。将次区域间与区域内最短路径分开处理,特别是起终点次区域内寻找其与最短路径的交点来代替次区域内的网络节点,最终得到一条综合最优的最短路径。

第一方面,本发明实施例提供一种室内空间最短路径的计算方法,具体包括:

根据室内空间布局和障碍物分布,设置网络节点;其中,网络节点设置于空间变化点;

将室内空间划分为多个次区域;其中,次区域内包含至少一个所述网络节点,且次区域中的任意一点都能通过行或列的一至两次的直连到次区域内的所述网络节点;

获取起点、终点分别所在的起点次区域和终点次区域;

根据起点次区域和终点次区域,确定起点次区域的网络节点到终点次区域的网络节点之间的第一路径、起点次区域内起点到起点次区域的网络节点之间的第二路径、以及终点次区域内终点到终点次区域的网络节点之间的第三路径;其中,第一路径、第二路径、第三路径分别为其所对应的两点间的最短路径;

根据第一路径、第二路径以及第三路径计算起点至所述终点的最短路径。

进一步地,通过使用dijkstra算法对第一路径进行最短路径计算。

进一步地,第二路径的最短路径计算步骤包括:

获取第一路径与所述起点次区域的的交会点、起点次区域内的网络节点、起点;

构建以所述第一路径与所述起点次区域的交会点、所述起点次区域内的网络节点、所述起点为顶点的三角形,确定所述起点至所述交汇点的路径为所述第二路径。

进一步地,第三路径的计算步骤包括:

获取第一路径与所述终点次区域的交会点、终点次区域内的网络节点、终点;

构建所述第一路径与终点次区域的交会点、终点次区域内的网络节点、终点为顶点的三角形,确定终点至交汇点的路径为第三路径。

进一步地,通过以多个连续相等的栅格组成来定位所述室内空间中的位置,使得所述室内空间的所有位置均可以通过所述栅格的行列编码来进行标注。

进一步地,室内空间的空间变化点包括所述室内空间中的门位置处、走廊的交叉或分支处、具有障碍物的拐角。

第二方面,本发明实施例提供一种室内空间最短路径计算的装置,所述装置包括:

网络节点设置模块,用于根据室内空间布局和障碍物分布,设置网络节点;其中,所述网络节点设置于空间变化点;

划分模块,用于将所述室内空间划分为多个次区域;其中,所述次区域内包含至少一个所述网络节点,且所述次区域中的任意一点都能通过行或列的一至两次的直连到所述次区域内的所述网络节点;

获取模块,用于获取起点、终点分别所在的起点次区域和终点次区域;

用于获取第一路径与起点次区域的的交会点、起点次区域内的网络节点、起点;

用于获取第一路径与所述终点次区域的交会点、终点次区域内的网络节点、终点;

确定路径模块,用于根据起点次区域和终点次区域,确定起点次区域的网络节点到终点次区域的网络节点之间的第一路径、起点次区域内起点到起点次区域的网络节点之间的第二路径、以及终点次区域内终点到终点次区域的网络节点之间的第三路径;其中,第一路径、第二路径、第三路径分别为其所对应的两点间的最短路径;

计算模块,用于根据所述第一路径、第二路径以及第三路径计算所述起点至所述终点的最短路径;用于通过使用dijkstra算法对所述第一路径进行最短路径计算;用于所述第二路径和所述第三路径的最短路径计算;其中,所述计算模块还包括构建模块和标注模块,

所述构建模块用于构建以所述第一路径与所述起点次区域的交会点、所述起点次区域内的网络节点、所述起点为顶点的三角形,确定所述起点至所述交汇点的路径为所述第二路径;用于构建所述第一路径与所述终点次区域的交会点、所述终点次区域内的网络节点、所述终点为顶点的三角形,确定所述终点至所述交汇点的路径为所述第三路径;

所述标注模块用于通过以多个连续相等的栅格组成来定位所述室内空间中的位置,使得所述室内空间的所有位置均可以通过所述栅格的行列编码来进行标注。

第三方面,本发明实施例提供一种终端设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置由所述处理执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的室内空间最短路径计算方法。

第四方面,本发明实施例一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至6中任意一项所述的室内空间最短路径计算方法。

实施本发明实施例,具有如下有益效果:

1、离散格网空间编码及其最短路径规划。

2、区域间与区域内相结合的方式得到任意两个网格点之间的精密点位最短路径,为此,可用于室内机器人的自动寻址及路线规划。

3、区域内最短路径计算中的线与区域边界交点的运用,最终形成一种室内离散空间最短路径导航规划方法。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种室内空间最短路径计算方法的流程示意图。

图2为本发明实施例提供的一种室内最短路径的三部分构成结构示意图。

图3为本发明实施例提供的一种起终点区域最短路径设计的结构示意图。

图4为本发明实施例提供的网络节点分布图。

图5为本发明实施例提供一种室内空间最短路径计算装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明第一实施例:

参见图1至图3,图1为本发明实施例提供的一种室内空间最短路径计算方法的流程示意图,图2为本发明实施例提供的一种室内最短路径的三部分构成结构示意图,图3为本发明实施例提供的一种起终点区域最短路径设计的结构示意图。本发明实施例针对室内离散格网环境下的最短路径规划问题,依据室内空间布局和障碍物分布,对定位区域进行次区域的划分和地理编码、网络节点选择等。通过对这些区域、节点等空间数据的有效组织管理,针对室内离散格网空间环境下dijkstra最短路径算法进行了优化设计。将次区域间与区域内最短路径分开处理,特别是起终点次区域内寻找其与最短路径的交点来代替次区域内的网络节点,最终得到一条综合最优的最短路径。

本发明实施例提供一种室内空间最短路径计算方法,具体包括以下步骤:

s10,根据室内空间布局和障碍物分布,设置网络节点;其中,所述网络节点设置于空间变化点。

本申请所述的室内空间的空间变化点包括所述室内空间中的门位置处、走廊的交叉或分支处、具有障碍物的拐角,且通过以多个连续相等的栅格组成来定位所述室内空间中的位置,使得所述室内空间的所有位置均可以通过所述栅格的行列编码来进行标注。

整个室内空间由连续的大小相等的栅格组成,栅格的面积为1平方米,栅格行列编码的起点为左下角(1,1),行数由下至上、列数由左至右依次递增,栅格布满整个导航区域。同时,该编码方式,只要给定左下角的地理坐标以及地图比例尺,可以按比例投影得到所有网格点的地理坐标,从而与室外的地图建立无缝连接。

网络节点的选取既要权衡布置的密度,也要尽量均匀分布。在保证密度小,提高计算效率的情况下,确保所有的网格点之间能够通过网络节点的串联建立起通行路线。室内格网空间往往结构复杂,存在墙体、门、走廊和各类障碍物等。为此,网络节点的选取也必须从室内结构出发,对于类似办公室的小空间的门位置处必须设置网络节点,走廊的交叉或分支处必须设置网络节点,具有障碍物的拐角处必须设置网络节点。

参见图4,图4中的灰颜色的网格点均为选取的网络节点,包括所有的门位置的a、b、c、d、f、g、k、l、m、n、q、r,走廊的z0901、z1401、z4001,以及各墙体分开的次区域的z0101、z0201、z0301、......、z4001。所有的这些网络节点,依据是否影响次区域的划分,又可归为两类。其中以字母z开头的网络节点决定后续的次区域划分,并且z字母后面的数字表示了次区域的编号和次区域中网络节点的编号。其余字母开头的网络节点则不影响次区域的划分,但占用区域内的一个网格。

s20,将室内空间划分为多个次区域;其中,次区域内包含至少一个网络节点,且次区域中的任意一点都能通过行或列的一至两次的直连到次区域内的所述网络节点。

室内格网空间在功能分割后的次区域之间往往通过门、走廊等进行连接,为此,在空间划分时,必须考虑墙体和各类障碍物对通行阻隔的影响。更重要的是,每个区域需顾及关键节点的位置,使得控制区域内的任意一点都能通过行或列的1-2次的直连到控制区域内的唯一关键节点。为了不遗漏任意的网格点,将整个室内格网空间划分成包括矩形、线形等的次区域,次区域之间不允许重叠。同时,任何的次区域内都不能有具有完全阻断通行的墙体。

s30,获取起点、终点分别所在的起点次区域和终点次区域。

s40,根据所述起点次区域和所述终点次区域,确定所述起点次区域的网络节点到所述终点次区域的网络节点之间的第一路径、所述起点次区域内所述起点到所述起点次区域的网络节点之间的第二路径、以及所述终点次区域内所述终点到所述终点次区域的网络节点之间的第三路径;其中,所述第一路径、第二路径、第三路径分别为其所对应的两点间的最短路径。

s50,根据所述第一路径、第二路径以及第三路径计算所述起点至所述终点的最短路径。

参见图2,在给定起点和终点的位置,通常为行列编码后,首先确定起点、终点所在的次区域,然后以两个次区域内的网络节点为面向区域的起点和终点网络节点进行dijkstra最短路径计算也就是图2中所示的所述起点次区域的网络节点到所述终点次区域的网络节点之间的第一路径path1,并得到相应的路径和路径长度。次区域有唯一的网络节点,起点和终点分别所在的次区域之间的最短路径计算也即转化为两个次区域网络节点之间的最短路径运算。所有的网络节点都存储在空间数据库中,为此,可以直接运用dijkstra算法得到他们之间的最短路径及路径长度。

接着,在起点和终点次区域内计算各自到其次区域内网络节点的最短路径也就是图2中所示的所述起点次区域内所述起点到所述起点次区域的网络节点之间的第二路径path2、以及所述终点次区域内所述终点到所述终点次区域的网络节点之间的第三路径path3。所述第二路径和第三路径的最短计算步骤包括:参见图3,

获取第一路径与起点次区域的交会点、起点次区域内的网络节点、起点,获取第一路径与终点次区域的交会点、终点次区域内的网络节点、终点;

起点次区域和终点次区域的最短路径首尾两条边分别会与包含起点次区域和终点的次区域相交,假设交点分别为pzs(也就是第一路径与起点次区域的的交会点)、pzt(第一路径与所述终点次区域的交会点),如图3所示;

构建第一路径与终点次区域的交会点、次区域内的网络节点、终点为顶点的三角形,确定终点至交汇点的路径为第三路径和构建以第一路径与起点次区域的交会点、起点次区域内的网络节点、起点为顶点的三角形,确定起点至交汇点的路径为第二路径。

参见图3,依据次区域的创建法则,区域内任意两点存在直连或1次转折后的连接,为此,在以起点次区域所在的网络节点z0101、起点s和pzs构成的三角形中,三角边起点s-pzs的边长总会小于两外两条边长之和,所以,起点次区域内的最短路径为起点s-pzs的边。因此,该最短路径边的计算为直接对应行列相减,并取绝对值后相加。假设起点次区域交会点坐标为pzs(xpzs,ypzs),起点坐标为s(xs,ys),则最短路径长度用公式表示为:d=|xpzs-xs|+|ypzs-ys|,最短路径为:(xs,ys)-->(xpzs,ys)-->(xpzs,ypzs)。该处理过程也适合终点t所在次区域最短路径情况。上述三段路径的综合即为最终的最短路径规划结果。

室内离散格网空间最短路径导航涉及到网络节点、次区域等空间数据的运用,为此,数据的组织与存储直接影响到路径规划的效率与效果。需要组织存储的数据类型包括:区域空间几何数据、网络节点数据、直连节点边数据等。

本发明第二实施例:

在第一个实施例的基础上,参照图5,图5为本发明实施例提供一种室内空间最短路径计算装置的结构示意图。本发明实施例提供一种室内空间最短路径计算装置,所述装置包括:

网络节点设置模块100,用于根据室内空间布局和障碍物分布,设置网络节点;其中,所述网络节点设置于空间变化点;

划分模块200,用于将所述室内空间划分为多个次区域;其中,所述次区域内包含至少一个所述网络节点,且所述次区域中的任意一点都能通过行或列的一至两次的直连到所述次区域内的所述网络节点;

获取模块300,用于获取起点、终点分别所在的起点次区域和终点次区域;

用于获取第一路径与起点次区域的的交会点、起点次区域内的网络节点、起点;

用于获取第一路径与所述终点次区域的交会点、终点次区域内的网络节点、终点;

确定路径模块400,用于根据起点次区域和终点次区域,确定起点次区域的网络节点到终点次区域的网络节点之间的第一路径、起点次区域内起点到起点次区域的网络节点之间的第二路径、以及终点次区域内终点到终点次区域的网络节点之间的第三路径;其中,第一路径、第二路径、第三路径分别为其所对应的两点间的最短路径;

计算模块500,用于根据第一路径、第二路径以及第三路径计算起点至所述终点的最短路径;用于通过使用dijkstra算法对所述第一路径进行最短路径计算;用于所述第二路径和所述第三路径的最短路径计算;其中,所述计算模块还包括构建模块600和标注模块700。

所述构建模块600用于构建以所述第一路径与所述起点次区域的交会点、所述起点次区域内的网络节点、所述起点为顶点的三角形,确定所述起点至所述交汇点的路径为所述第二路径;用于构建所述第一路径与所述终点次区域的交会点、所述终点次区域内的网络节点、所述终点为顶点的三角形,确定所述终点至所述交汇点的路径为所述第三路径;

所述标注模块700用于通过以多个连续相等的栅格组成来定位所述室内空间中的位置,使得所述室内空间的所有位置均可以通过所述栅格的行列编码来进行标注。

本发明的第三实施例:

本发明第三实施例提供一种室内空间最短路径计算终端设备,包括处理器、存储器以及存储在所述存储器中且被配置由所述处理执行的计算机程序。所述处理器执行所述计算机程序时实现上述任一项所述的一种室内空间最短路径计算方法实施例中的步骤,例如图1所示的步骤s10。或者,所述处理器执行所述计算机程序时实现上述各装置实例中的功能,例如图3所示的设置网络节点模块100。

本发明第四实施例:

本发明第四实施例提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,例如一种室内空间最短路径计算方法的程序。其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述第一实施例中所述的一种室内空间最短路径计算方法。

示例性地,本发明第三实施例和第四实施例中所述的计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述实现一种室内空间最短路径计算设备中的执行过程。例如,本发明实施例二中所述的装置。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述室内空间最短路径计算方法的控制中心,利用各种接口和线路连接整个所述实现室内空间最短路径计算方法的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现室内空间最短路径计算方法的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、文字转换功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、文字消息数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘、智能存储卡(smartmediacard,smc)、安全数字(securedigital,sd)卡、闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

其中,所述一种室内空间最短路径计算设备的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一个计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1