一种跨层路径规划方法与流程

文档序号:15679313发布日期:2018-10-16 20:23阅读:281来源:国知局

本发明涉及一种路径的规划方法,尤其涉及一种跨层路径规划方法。



背景技术:

目前,近年来,室内定位和导航技术飞速发展。室内路径规划是室内导航应用中的一项重要功能,为用户规划出起始点到目标位置之间的最优路径。目前这方面的研究工作已经有很多。现有技术中,杨晨等人提出一种室内跨楼层地图路径导航方法及系统,该方法接收从地图出发点到地图目标点的路径导航请求,根据地图出发点所在楼层和地图目标点的所在楼层查询多层地图连通矩阵,确定地图出发点与地图目标点所在的楼层地图的连通关系。如果地图出发点和地图目标点不在同一楼层地图,则根据相连地图连接表,生成地图出发点和地图目标点之间的各相连楼层地图的路径点间的最短路径作为各相连楼层地图的子路径,在生成所有子路径后,将所有子路径进行合并,形成地图出发点到地图目标点之间的导航路径。

现有技术中,张欣等人研究了基于室内地图路径计算涉及跨楼层路径部分的实现方法。该方法将所有涉及任意两个不同楼层各跨层节点之间的路径进行生成和整理,包括需使用的跨楼层通路及涉及在中间层需同层转换跨层节点的同层内路径,将预生成的路径存储在导航设备或路径计算设备中跨楼层路径存储器中。当室内地图路径规划涉及到跨楼层部分路径时,在跨楼层路径存储器中直接检索并取出已保存符合条件的跨楼层路径使用,无需通过实时计算产生。如果没有检索出所需路径,则根据其他方法计算出跨楼层路径进行使用。

现有技术中,林浩嘉提出一种多层建筑最优路径规划方法。该方法将各楼层路网和楼层连接均视为独立结构,径中的停靠点按楼层分类,按楼层递增顺序,查找第一个分布有停靠点的楼层,构建单层结构化网络,进行该层最优路径分析,得到该层最优路径,获取前一结构化最优路径的终点作为下一结构化路径分析的起点,逐楼层动态构建跨楼层结构化网络,进行其余分布有停靠点的楼层的路径分析,得到遍历所有停靠点的多楼层最优路径。

室内环境具有特殊的复杂性,可供通行的道路不仅包括平面内的各种通道,还包括垂直方向的通道,如电梯、楼梯、扶梯等。各种通道乘坐或运行的代价不同。在现有的室内跨层路径规划方法中,对跨层通道的处理方面还有待优化。在路网数据方面,很多方案都采用将各楼层路网和跨层路网作为独立结构,路径搜索过程中将它们区别对待。对电梯换乘的问题,这些方案总结起来主要分为两类:(1)没有考虑电梯换乘的代价并作出合理的约束。这样导致的结果就是:路径规划结果往往包含了不必要的电梯换乘。(2)限制电梯换乘。这种方案给出的跨层路径一定包含了乘电梯由起点楼层直达终点楼层的子路径。如果不存在这样的直达电梯则很可能路径规划失败。而实际情况可能存在一条电梯换乘的路径,其代价远远小于电梯直达的路径,但算法给不出这样的路径。另外,现有方案中也少见有考虑电梯、楼梯、扶梯等不同的跨层通道之间存在的代价差异。这样的路径规划结果难免会影响用户体验。

针对现有技术中所存在的问题,提供一种跨层路径规划方法具有重要意义。



技术实现要素:

为解决上述问题,本发明提供一种跨层路径规划方法。

为实现上述目的,本发明的跨层路径规划方法,包括节点、路段和代价,所述节点为两条或两条以上路段相连接的连接点,所述节点包括起始节点、途经节点和终点节点,所述起始节点为离起点代价最小的节点,所述终点节点为离终点代价最小的节点,每一个所述途经节点都对应一个所述代价,所述代价为每一个所述途经节点相对应的,从起始节点出发到达所述途经节点所需的距离,所述方法包括以下步骤:步骤一,计算得到起始节点和终点节点;步骤二,建立一个开放列表和一个关闭列表,所述开放列表用来存放已经访问过但未经检查过的节点,所述关闭列表用来存放已经检查过的节点;步骤三,将所述起始节点及与所述起始节点相连接的途经节点存放进所述开放列表中,并找出与所述起始节点相连接的途经节点中代价最小的途经节点,记为目标节点,将所述起始节点从所述开放列表中移除,存放进所述关闭列表;步骤四,找出与所述目标节点相连接的所有途经节点,分别判断每一个途经节点是否已经在所述开放列表中存在,如果所述途经节点没有在所述开放列表中存在,则将所述途经节点添加进所述开放列表中;如果所述途经节点已经在所述开放列表中存在,则比较所述途经节点的新的代价是否比开放列表中所保存的所述途经节点的旧的代价小,如果是,则将所述途经节点的新的代价替换所述途经节点的旧的代价,如果否,则忽略所述途经节点;步骤五,找出与所述目标节点相连接的途经节点中代价最小的途经节点,记为新的目标节点,并将原目标节点从所述开放列表中移除,存放进所述关闭列表;步骤六,重复步骤四到步骤五,如果当前搜索的最小节点即为终点节点,则路径规划成功,如果没有搜索到终点节点,所述开放列表为空,则路径规划失败;

进一步地,所述距离包括实际距离和预估距离,所述代价的计算公式为:f(n)=g(n)+h(n),所述f(n)为途经节点n的代价,所述g(n)为起始节点到所述途经节点n的实际最短距离,所述h(n)为所述途经节点n到所述终点节点的预估距离;

进一步地,所述节点分为普通节点和特殊节点,所述普通节点为同一层平面内不涉及楼层切换的节点,所述特殊节点为涉及楼层切换的节点;

进一步地,所述路段包括第一类路段、第二类路段和第三类路段,所述第一类路段为连接两个普通节点的路段,所述第二类路段为连接两个特殊节点的路段,所述第三类路段为连接普通节点和一个特殊节点的路段;

进一步地,所述预估距离h(n)的计算公式为:h(n)=d1(n)+d2(n),所述d1(n)为所述途经节点n到终点节点间第一类路段和第三类路段的距离之和,所述d2(n)为所述途经节点n到终点节点间第二类路段的距离之和;

进一步地,所述d2(n)的计算公式为:d2(n)=dlevel×levelcost,所述dlevel为所述途经节点n与所述终点节点间相差的层数,所述levelcost为每相差一层所代表的预置距离,所述预置距离为预先设定的一个固定的距离;

进一步地,计算所述第二类路段的距离时包括预设值,所述预设值用于将所述第二类路段途经两个特殊节点时所需要花费的等待时间转化为距离,所述预设值为预先设定的一个固定的距离值,所述第二类路段的计算公式为:lsecond=levelcost+delecator,所述lsecond代表所述第二类路段的长度,所述levelcost为每相差一层所代表的预置距离,所述预置距离为预先设定的一个固定的距离,所述delecator为所述预设值,所述delecator的值大于0,所述delecator的具体取值可以根据需求进行调整。

本发明的一种跨层路径规划方法采用简单的数据结构,对水平方向和垂直方向的路段进行统一存储,通过两个节点的类型来标识路段类型,具有更好的通用性,同时本发明所述的方法将启发式搜索算法应用到室内跨层路径规划。对路网数据进行路网数据预处理,对垂直方向的路段设置合理的长度,与启发式函数计算预估代价保持一致,从原理上保证了算法得到最短路径,又提高了搜索效率。本发明所述的方法同时也考虑了电梯、楼梯、扶梯等不同的跨层通道之间存在的代价差异。尽可能减少电梯换乘,但是不限制电梯换乘。这样更符合用户习惯,有效提升用户体验。

附图说明

图1为本发明的流程示意图;

具体实施方式

下面,结合附图,对本发明的结构以及工作原理等作进一步的说明。

本发明所述的跨层路径规划方法包括节点、路段和代价,所述节点为两条或两条以上路段相连接的连接点,所述节点包括起始节点、途经节点和终点节点,所述起始节点为离起点代价最小的节点,所述终点节点为离终点代价最小的节点,每一个所述途经节点都对应一个所述代价,所述代价为每一个所述途经节点相对应的,从起始节点出发到达所述途经节点所需的距离。

通常地,所述节点分为普通节点和特殊节点,所述普通节点为同一层平面内不涉及楼层切换的节点,所述特殊节点为涉及楼层切换的节点。

在本发明优选实施例中,我们可以优先进行路网数据准备,所述路网数据准备目的在于所述路网数据准备分为两个步骤:路网数据制作和路网数据预处理。所述路网数据制作为,根据建筑物的源数据,所述源数据可以为cad图,pdf文档或jpg/bmp/png格式的图片,将水平面内的每条通道以及跨层通道,如电梯、楼梯、扶梯等,的信息都抽取出来,整理成路段。并将所有的路段按照一定的格式组织起来,形成路网。所述路网数据制作采用的工具可以为现成的商业软件,如autocad,arcgis,mapinfo等,也可以自主开发相关的制图软件,或者多种软件配合使用。

所述路网制作具体包括地理配准,路段数据绘制,路网数据存储和输出三个步骤:

所述地理配准具体为,当获取到没有真实地理坐标的建筑物平面图纸时。如果所获取的建筑物平面图纸是cad图,通常所标识的坐标信息属于局部坐标系,以米或者毫米为单位;如果所获取的建筑物平面图纸是pdf或者jpg、bmp、png格式等,通常只有像素坐标。所述地理配准即对这些图纸要进行几何纠正,建立图片与真实地理坐标之间的映射关系。首先从所获取的建筑物平面图纸上选取一些特征点,如房屋角点,获取所述特征点的经纬度坐标,所述获取方式可以为,用gps测量、从googleearth上取点、从googlemap上取点等,并根据所述特征点的经纬度坐标,利用制图软件自带的地理配准功能,或者自主开发的配准算法,完成坐标映射的功能;

路段数据绘制具体为,对于水平通道,通常取中心线作为路段。可以采用特征提取算法,提取出通道的中心线,或者手动作图。跨层通道则视具体情况而定,对于电梯或楼梯,可以取相邻层的电梯或楼梯中心位置作为路段的节点;对于扶梯,以开始位置作为起点,以结束位置作为终点。路段长度计算:对于路段类型一和类型三,直接按两点之间的距离公式计算路段长度;对于类型二,路段长度为0。

路网数据存储和输出具体为,一条路段数据应该至少包括以下信息:路段的标识,路段的起点坐标,路段的终点坐标,路段的长度。其它信息可以根据需要扩充,为了简化存储,采用路段和节点相配合的方式存储。通常地,一个完整的路网数据包括:路段信息:路段id,起点id,终点id,路段长度;节点信息:节点id,节点所在的楼层号,节点类别,经纬度坐标。

如图1所示,图1为本发明的流程示意图,所述方法包括以下步骤:步骤一s1,计算得到起始节点和终点节点;

步骤二s2,建立一个开放列表和一个关闭列表,所述开放列表用来存放已经访问过但未经检查过的节点,所述关闭列表用来存放已经检查过的节点;

步骤三s3,将所述起始节点及与所述起始节点相连接的途经节点存放进所述开放列表中,并找出与所述起始节点相连接的途经节点中代价最小的途经节点,记为目标节点,将所述起始节点从所述开放列表中移除,存放进所述关闭列表;

步骤四s4,找出与所述目标节点相连接的所有途经节点,分别判断每一个途经节点是否已经在所述开放列表中存在,如果所述途经节点没有在所述开放列表中存在,则将所述途经节点添加进所述开放列表中;如果所述途经节点已经在所述开放列表中存在,则比较所述途经节点的新的代价是否比开放列表中所保存的所述途经节点的旧的代价小,如果是,则将所述途经节点的新的代价替换所述途经节点的旧的代价,如果否,则忽略所述途经节点;

步骤五s5,找出与所述目标节点相连接的途经节点中代价最小的途经节点,记为新的目标节点,并将原目标节点从所述开放列表中移除,存放进所述关闭列表;

步骤六s6,重复步骤四s4到步骤五s5,如果当前搜索的最小节点即为终点节点,则路径规划成功,如果没有搜索到终点节点,所述开放列表为空,则路径规划失败;

在本发明优选的实施例中,所述距离包括实际距离和预估距离,所述代价的计算公式为:f(n)=g(n)+h(n),所述f(n)为途经节点n的代价,所述g(n)为起始节点到所述途经节点n的实际最短距离,所述h(n)为所述途经节点n到所述终点节点的预估距离;所述节点分为普通节点和特殊节点,所述普通节点为同一层平面内不涉及楼层切换的节点,所述特殊节点为涉及楼层切换的节点;所述路段包括第一类路段、第二类路段和第三类路段,所述第一类路段为连接两个普通节点的路段,所述第二类路段为连接两个特殊节点的路段,所述第三类路段为连接一个普通节点和一个特殊节点的路段;

所述路网数据预处理为通过对路段的长度进行合理设置,配合后面的启发式搜索对跨层通道的预估代价,既保证算法得到最短路径,又提高搜索效率。所述路网数据预处理为对路段进行合理的长度设置。所述设置长度是为了用于最短路径搜索,在得到最短路径之后,将路径长度恢复到正确的值,并预估行走时间。

需要进行所述路网的预处理的路段为所述第二类路段和所述第三类路段;

对第二类路段进行长度设置的具体方法为:首先我们确定路段类型二的长度的最小值,记为levelcost,这个值将作为基准值。后面在最短路径搜索过程中,启发函数在预估垂直方向的代价时,将每相差一层楼的代价设置为等于levelcost。这样就保证了预估代价小于等于实际代价,从原理上保证了能得到最短路径。在满足上述条件的情况下,对第二类路段进行长度设置。基本原则是综合考虑该垂直路段行走/运行一层楼所花费的时间,以及用户的喜好,当然本发明并不限制对长度设置时考虑其它因素。

计算所述第二类路段的距离时还包括一个预设值,所述预设值用于将所述第二类路段途经两个特殊节点时所需要花费的等待时间转化为距离,所述预设值为预先设定的一个固定的距离值,所述第二类路段的计算公式为:lsecond=levelcost+delecator,所述lsecond代表所述第二类路段的长度,所述levelcost为每相差一层所代表的预置距离,所述预置距离为预先设定的一个固定的距离,所述delecator为所述预设值,所述delecator的值大于0,所述delecator的具体取值可以根据需求进行调整

在本发明优选的实施例中,所述特殊节点为电梯、楼梯或扶梯;因此所述第二类路段包括电梯、楼梯或扶梯三种类类型;对包括电梯、楼梯或扶梯的第二类路段进行长度设置,所述电梯的长度设置公式为:lelevator=levelcost+delecator,所述lelevator代表所述电梯的长度,所述levelcost为每相差一层所代表的预置距离,所述预置距离为预先设定的一个固定的距离,所述delecator为一个预设值,所述delecator的值大于0,所述delecator的具体取值可以根据电梯的运行时间以及当前用户的喜好进行调整;所述自动扶梯的长度设置公式为:lescalator=levelcost+descalator,所述lescalator代表所述自动扶梯的长度,所述levelcost为每相差一层所代表的预置距离,所述descalator为一个预设值,所述descalator的值大于0,所述descalator的具体取值可以根据自动扶梯的运行速度、单程乘坐时间以及当前用户的喜好进行调整;所述楼梯的长度设置公式为:lstair=levelcost+dstair,所述lstair代表所述楼梯的长度,所述levelcost为每相差一层所代表的预置距离,所述dstair为一个预设值,所述dstair的值大于0,所述dstair的具体取值可以根据所述楼梯的具体长度以及当前用户的喜好进行调整。

对第三类路段进行长度设置的具体方法为:对于连接普通节点与特殊节点的路段,可以增加一个额外长度,所述额外长度是由普通节点到特殊节点的等待时间通过等效转化而来,假设所述等待时间的期望值为n秒,用户的行走速度期望值为v米/秒,则所述额外长度的公式为:l'=n×v,所述l'为所述额外长度;将所述额外长度加到路段上,在本发明优选的实施例中,当用户从一个普通节点进入电梯或扶梯内,不仅需要行走一段距离l,还需要等待一段时间,将所述等待时间等效于行走一段距离l',因此设置额外长度后,总的长度则为l与l'之和;

如此一来就解决了电梯换乘的问题,不需要对数据存储结构做特殊处理,也不用对路径搜索算法做特殊处理。更重要的是,这种方式不限制电梯换乘,而只是起到减少换乘的作用,更贴近实际情况。如果在增加了所述额外长度的情况下,通过电梯换乘仍然可以找到一条起点或终点之间的最短路径,那么路径规划算法就给出这样的路径结果。对于电梯的所述等待时间的具体值,有很多因素参考,比如建筑物内的客流量、电梯数量等,通过统计的办法来获取,还可以考虑根据时段采用不同的值。

所述预估距离h(n)的计算公式为:h(n)=d1(n)+d2(n),所述d1(n)为节点n到终点之间在水平方向上的预估距离(第一类距离和第三类距离之和),所述d2(n)为表示节点n到终点之间在垂直方向上的预估距离(第二类路段距离之和)。;

所述d2(n)的计算公式为:d2(n)=dlevel×levelcost,所述dlevel为所述途经节点n与所述终点节点间相差的层数,如上所述,所述levelcost为每相差一层所代表的预置距离,所述预置距离为预先设定的一个固定的距离。

经过上述路径搜索之后,所述关闭列表中保存了路径中遍历过的每个节点的信息,以及从所述起始节点到所述途经节点的最短距离。构建完整路段分两个步骤:(1)获取从终点节点到起始节点的最短路径。先把终点节点添加到路径中,然后读取它的前置途经节点,再读取前置途经节点的前置途经节点,如此重复进行,直到读取到起始节点为止。(2)将上一步获取的途经节点序列做倒序,就得到了从起始节点到终点节点的最短路径,即可以获得从起点到终点的最短路径。

在本发明优选的实施例中,还包括对路径长度和运行时间进行修复的步骤。所述步骤具体为依次对路径上的每条路段进行检查,根据路段类型判断是否需要对长度进行修复:

(1)连接两个普通节点的路段,路径长度不需要修改。

(2)连接一个普通节点和一个特殊节点的路段,根据所述特殊节点的类型来确定是否修改长度和时间。如果所述特殊节点是电梯,则将路径长度减去数据预处理设置的额外长度,运行时间则增加所述电梯的等待时间。如果是其它类型的节点,则可以不考虑。这个需要和数据预处理保持一致。

(3)连接相邻楼层的两个特殊节点的路段,最短路径的长度减去数据预处理为跨层通道设定的长度值,如上所述,可以对运行时间增加一个值dt。所述dt表示跨层通道行走或运行一层楼需要的时间,它的值根据垂直通过的具体类型确定,通常电梯、楼梯、扶梯取不同的值。

以上,仅为本发明的示意性描述,本领域技术人员应该知道,在不偏离本发明的工作原理的基础上,可以对本发明作出多种改进,这均属于本发明的保护范围。

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