自动化构建最小路网子集的室内路径规划方法与流程

文档序号:12726113阅读:1190来源:国知局

本发明属于室内定位导航领域,特别是涉及一种自动化构建最小路网子集的室内路径规划方法。



背景技术:

室内空间的路径规划问题是指在有障碍物的室内空间内,依据某一套评价体系,规划出一条从指定起始点到终止点的最优或者是较优的无碰撞路径。路径规划技术有着广泛的应用领域,例如在物流管理中的车辆问题、城市道路的路径规划问题、机器人的无碰撞行动及其通信领域的路由问题。

在路径规划之前,首要任务为生成路网模型。其次,室内路径规划模块根据起点、终点,并通过相应路径规划算法计算该路网模型的路径点,室内路径规划的目的是计算出一条从出发点到终止点的最佳路径。由于室内空间往往存在多个楼层,故室内地图的路径规划需要实现跨楼层的路径规划问题,即当起始点和终点不在相同楼层时,需要根据楼层的联通情况进行路径规划。

“AI for Game Developers”第六章“Basic Pathfinding and Waypoints”中介绍了目前较为简单的一种路径规划方法,在使用前准备每一层的路径图,路径图采用结构化的模型,对整个室内空间采用节点和边来表示,其中节点代表房间,用边代表走廊,其路径连通图通常由手工编辑生成,该方法也被成为路点法路径规划。

该算法结构简单,使用方便,但路径图的生成较为麻烦。而使用这样的路径图做路径规划算法需要在数据库存储路点之间的连通情况,工作量过于庞大,同时无法避免用户有时会走“Z”型路径,且该算法适用的场景是简单的室内环境,当场景趋于复杂的时候,该算法需要的路点数量过于庞大,在路径点连通情况的表示和路径规划上都会出现问题。



技术实现要素:

为了克服现有室内路径规划方法路径图生成过程繁琐的不足,本发明提供一种自动化构建最小路网子集的室内路径规划方法。该方法首先采用自动构建路网方法完成路网矩阵的建立以提高路径规划算法效率,路网结合基本路径规划算法完成高精度路径规划算法的设计,再利用基本路径规划算法解决单楼层路径规划问题。跨楼层路径规划中通过建立楼层连通模型结合最小路网集合思想完成路径规划。本发明采用自动化构建路网方法能够更简单地完成路径点连通情况模型的搭建,解决了基本的路点法路径规划建立路径图工作量大,容易形成“Z”型路径以及路径精确度低的问题。同时跨楼层路径规划中利用楼层连通模型和最小路网子集,每次路径规划都选取路网中的一个子集进行路径规划,相比背景技术方法,路径图生成过程简单易行。

本发明解决其技术问题所采用的技术方案是:一种自动化构建最小路网子集的室内路径规划方法,其特点是包括以下步骤:

步骤一、根据路点坐标信息自动构建楼层的路点连通情况,并将其存储在一个二维矩阵中,根据二维矩阵构建建筑物路网。具体为,创建二维矩阵,从第一个路点开始依次尝试与其他路点建立连接,若其连线上有障碍物则将两者之间距离设为无穷大,若无障碍物,则计算两点间欧几里得距离,并将其存入二维矩阵中;执行上述操作直至最后一个路点,完成建筑物路网的构建。

步骤二、自动化构建路点连通矩阵结合A*算法,进行路点间的路径规划。通过调整连通矩阵,最终得出任意两点间的最短距离矩阵。A*算法中估价函数为f(n)=g(n)+h(n),其中,g(n)为连通矩阵中起点到第n个节点的距离,h(n)为第n个节点到终点的欧几里得距离,利用该估计函数完成路径规划算法的设计。

步骤三、当进行单楼层路径规划,即起点和终点均在同一楼层时,根据起点和终点的位置信息,找到距离其最近的道路节点,利用找到的道路节点以及该楼层的道路节点路网,实现单楼层的路径规划。

步骤四、当进行跨楼层路径规划时,将建筑物中各个楼层的路网以及各楼层的连通均视为独立结构,根据楼层连通模型,逐层构建连通两个楼层的最小路网子集,通过多次路径规划,完成跨楼层的路径分析。

楼层连通模型根据数据库中存储的楼层连通信息建立初始连通模型,同时结合广度优先算法完善建立最终楼层连通模型。

最小路网子集为起点到终点所需经过的建筑物中楼层路网的最小集合。通过从多层建筑物楼层中选择需要的路网数据建立最小路网子集,结合楼层连通模型进行路径分析,建立两个楼层间的通路。

根据建筑的楼层连通模型和最小路网子集,实现多楼层间的最优路径规划。具体为根据起点和终点的楼层信息,根据楼层连通模型获取到起点楼层startfloor以及终点楼层endfloor的连通情况,若其直接相连则可以根据这两个楼层的最小路网子集进行路径规划,若不直接相连,则则查询楼层连通模型找到最小路网子集,根据最小路网子集完成多次路径规划,最终找到最优路径。

在根据子路网集合进行路径规划的过程中每层楼会有多个楼梯,则依据两条选择规则,其一,若有多个电梯或楼梯满足条件,且起点楼层和终点楼层之间隔了三层及三层以上,则优先选择电梯;其二,若仍有多个楼梯接口满足条件,则将所有满足条件的楼梯接口进行路径计算。

本发明的有益效果是:该方法首先采用自动构建路网方法完成路网矩阵的建立以提高路径规划算法效率,路网结合基本路径规划算法完成高精度路径规划算法的设计,再利用基本路径规划算法解决单楼层路径规划问题。跨楼层路径规划中通过建立楼层连通模型结合最小路网集合思想完成路径规划。本发明采用自动化构建路网方法能够更简单地完成路径点连通情况模型的搭建,解决了基本的路点法路径规划建立路径图工作量大,容易形成“Z”型路径以及路径精确度低的问题。同时跨楼层路径规划中利用楼层连通模型和最小路网子集,每次路径规划都选取路网中的一个子集进行路径规划,相比背景技术方法,路径图生成过程简单易行。

下面结合具体实施方式对本发明作详细说明。

具体实施方式

本发明自动化构建最小路网子集的室内路径规划方法具体步骤如下:

1.自动化构建路网。

根据路点坐标信息自动构建楼层的路点连通情况,并将其存储在一个二维矩阵中,根据二维矩阵构建建筑物路网,构建步骤如下:

步骤1:遍历某一楼层的路点,依次获取到两个路点;

步骤2:遍历该楼层的所有设施,获取到每个设施的坐标集合;

步骤3:依次检测两路点连线是否与设施的坐标集合组成的设施边界相交,若相交则停止检测之后的设施,并将两路点间距离设为无穷大,否则继续检测直到检测结束,若无相交情况,则记录两路点间距离为两点间欧几里得距离;

步骤4:建筑中所有楼层都按上述方法建立路点连通矩阵,完成整栋建筑的路网构建。

2.路径规划算法实现。

路径规划算法的具体实现步骤如下:

步骤1:建立访问数组,用来存储每个节点是否被访问,访问过置为1,未访问置为0;

步骤2:初始化遍历路点,找到满足节点k未访问且从起始点经过节点k到达终点的距离小于目前起点到节点k的距离同时距离起点最近的节点,将节点k设置为已访问状态,并记录起点到节点k的最短距离;

步骤3:以k为中间点,修正从start到未访问各点的距离,若起点经过k节点到达第i个节点的距离小于从起点直接到达第i个节点的距离,则更新连通矩阵中的距离,并将k节点添加到从起点到第i个节点的路径中。

步骤4:循环执行步骤2、步骤3,直到遍历完所有路点。此时,即获得了从起点到其他所有路点的路径,返回从起点到终点的路径即可。

3.单楼层路径规划实现。

单楼层的路径规划处理的主要步骤为:

步骤1:通过nearstPoint函数求起始道路节点a,终止道路节点b;

步骤2:通过优化的路点算法求得最优路径以及路径节点;

步骤3:获取最优路径中道路节点以及起点、终点位置信息;

步骤4:根据位置信息绘制规划的地图路径。

4.跨楼层路径规划实现。

根据数据库中的存储的楼梯的“linkFloor”属性和“LinkFloorPo”属性来建立楼层连通模型。首先建立楼层连通矩阵FloorMatrix,将其值初始化为0;读取建筑中各个楼层的楼梯接口信息,解析其“linkFloor”属性,获取到与其连通的楼层号;将连通信息逐行填入楼层连通矩阵中,若连通则将其值赋为-1并将其填入连通矩阵,若不连通则仍将其值赋为0,对于对角线上的值将其赋为-1;最后根据“LinkFloorPo”属性值结合广度优先算法完善楼层连通模型。

在完成楼层连通模型之后,根据最小路网子集思想建立最小路网子集。设建筑内楼层的路网为N={N1,N2,…,Nk},其中k为建筑物的总楼层数,Ni为第i楼的路网,此时若需要进行楼层i-n与楼层i之间的最优路径分析,查询楼层连通模型,若FloorMatrix[startfloor][endfloor]对应的值为-1即两楼层直接相连,则可以根据这两个楼层的路网子集合N={Nstartfloor,Nendfloor}进行路径规划;若FloorMatrix[startfloor][endfloor]对应的值为某一楼层号即不直接相连,则查询楼层连通模型找到最小子路网集合N={Nstartfloor,Nmiddlefloor1,…,Nendfloor},根据最小路网集合完成多次路径规划,最终找到最优路径。

基于以上设计的多种模型及楼梯接口选择规则,实现跨楼层路径规划的具体步骤为:

步骤1:建立建筑物内的楼层连通模型FloorMatrix;

步骤2:根据起点、终点以及楼层连通模型建立子路网集合N={Nstartfloor,Nmiddlefloor1,…,Nendfloor};

步骤3:根据楼梯接口选择原则对楼梯进行筛选获得满足条件的楼梯接口M={M1,M2,…,Mk};

步骤4:根据单楼层路径规划算法结合起点楼层路网Nstartfloor计算起点楼层起点到每个楼梯接口的路径长度表示为Rstartfloor={R1,R2,…,Rm},其中Ri表示第i个满足条件的楼梯接口对应的起点楼层路径长度,按照同样的方法计算子路网集合中其他楼层的路径长度从而得到所有楼梯接口对应的组合路径总长度R={R1,1,R1,2,R2,1,R2,2,…,Rm,m}。可以看出有多种不同的路径均可到达终点,从中选出最短路径Rrightroute=min(R1,1,R1,2,R2,1,R2,2,…,Rm,m)即为最优路径。

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