一种定位方法、装置及计算机可读存储介质与流程

文档序号:16776725发布日期:2019-02-01 18:47阅读:221来源:国知局
一种定位方法、装置及计算机可读存储介质与流程

本发明涉及定位技术领域,尤其涉及一种定位方法、装置及计算机可读存储介质。



背景技术:

定位是利用已知节点对未知节点的位置信息进行把握,是无线传感器网络研究中的重要技术之一。在无线传感网的实际应用中,由于地形或环境的限制,无线传感器往往在空间上分布,所以把定位研究拓展至3d空间势在必行。

现有技术基于rssi的定位方法,利用未知节点具有至少6个邻近信标节点,则依次判断该未知节点的邻近信标节点所构成的每个四面体与该未知节点的关系,确定未知节点存在于中垂面切割后四面体的哪一切割部分。对该四面体所有的包含该未知节点的切割部分求取交集得到未知节点存在的缩小空间,将所有四面体的缩小空间的交集的质心作为未知节点的估计位置,从而计算出未知节点的位置坐标。而该定位方法当锚点数越多的情况下定位时间越长,且实现的定位精度并不很高。



技术实现要素:

本发明实施例提供一种定位方法、装置及计算机可读存储介质,能有效解决现有技术定位精度不高的问题,采用线性插值三角网法和整数规划算法对三维节点进行定位,能有效提高定位精度,降低定位误差。

本发明一实施例提供一种定位方法,包括:

根据传感器网络中所有节点间的通信信号强度,计算所述传感器网络中任意两节点间距离;其中,所述节点包括锚节点和未知节点;

对所述传感器网络的锚节点进行空间节点内插,计算内插节点的位置;

根据所述锚节点、所述内插节点的位置,构建插值曲面;

根据所述插值曲面,将所述任意两节点间距离输入预设的计算模型对所述内插节点进行筛选,并将筛选后的内插节点的位置,作为所述未知节点的位置。

作为上述方案的改进,所述根据传感器网络中所有节点间的通信信号强度,计算所述传感器网络中任意两节点间距离之前,还包括无向图模型的构建步骤:

预先设置所述传感器网络的节点;

所述传感器网络中任意两节点间设有一条边,所述边上设有一个附加因子,构成无向图模型;其中,所述附加因子为所述两节点间的通信信号强度。

作为上述方案的改进,所述根据传感器网络中所有节点间的通信信号强度,计算所述传感器网络中任意两节点间距离,包括:

根据以下公式计算所述传感器网络中任意两节点间距离:

其中,dijest为节点间距离,r为节点之间通信半径,pij为参加点i接收到另一参考点j发送的信号后所测得的功率,pkl为节点k接收到另一节点l发送的信号后所测得的功率,p0为对应参考距离的功率,pmin为所述传感器网络的信号强度值的最小值对应的信号功率。

作为上述方案的改进,所述对所述传感器网络的锚节点进行空间节点内插,计算内插节点的位置,包括:

根据所述锚节点,构建狄洛尼三角网;

采用内插算法,在所述狄洛尼三角网上进行等距离空间节点内插;

根据所述锚节点的位置,确定所述内插节点的位置;其中,所述内插节点的数量大于所述未知节点的数量。

作为上述方案的改进,所述方法还包括所述内插节点位置的计算步骤:

筛选与所述插值曲面内部的内插节点距离最近的三个锚节点;

根据所述三个锚节点,确定所述内插节点与所述三个锚节点所在所述狄洛尼三角网的三角平面;

将所述三个锚节点的位置输入预设的线性方程,对所述内插节点的位置计算。

作为上述方案的改进,所述方法还包括:

筛选与所述插值曲面边界上的内插节点距离最近的一个锚节点,将所述锚节点的位置作为所述内插节点的位置。

作为上述方案的改进,所述根据所述插值曲面,将所述任意两节点间距离输入预设的计算模型对所述内插节点进行筛选,并将筛选后的内插节点的位置,作为所述未知节点的位置,具体为:

计算所述锚节点与所有未知节点间距离;

根据所述插值曲面,计算所述锚节点与所有内插节点间距离;

根据所述锚节点与所有未知节点间距离和所述锚节点与所有内插节点间距离,采用整数规划模型计算定位误差;

将所述定位误差按从小到大进行排序,获取前m个定位误差对应的内插节点,得到筛选后的内插节点及其位置;其中,m为所述未知节点的数量;

将所述筛选后的内插节点作为所述未知节点,得到所述未知节点的位置。

与现有技术相比,本发明实施例公开的定位方法,通过根据传感器网络中所有节点间的通信信号强度,计算所述传感器网络中任意两节点间距离,其中,所述节点包括锚节点和未知节点,对所述传感器网络的锚节点进行空间节点内插,计算内插节点的位置,根据所述锚节点、所述内插节点的位置,构建插值曲面,根据所述插值曲面,将所述任意两节点间距离输入预设的计算模型对所述内插节点进行筛选,并将筛选后的内插节点的位置,作为所述未知节点的位置,采用线性三角形插值法和整数规划算法,利用锚节点模拟出与原始空间位置相近的插值曲面进行定位,能有效提高定位精度,并在模拟实际环境的基础上进行定位误差分析,考虑到实际环境存在的环境影响,误差分析引入高斯随机变量,对误差的分析更加准确,能有效降低定位误差,提高了可操作性,有利于产品化。

本发明另一实施例对应提供了一种定位装置,包括:

计算模块,用于根据传感器网络中所有节点间的通信信号强度,计算所述传感器网络中任意两节点间距离;其中,所述节点包括锚节点和未知节点;

内插模块,用于对所述传感器网络的锚节点进行空间节点内插,计算内插节点的位置;

建模模块,用于根据所述锚节点、所述内插节点的位置,构建插值曲面;

定位模块,用于根据所述插值曲面,将所述任意两节点间距离输入预设的计算模型对所述内插节点进行筛选,并将筛选后的内插节点的位置,作为所述未知节点的位置。

本发明另一实施例提供了一种定位装置,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现以上任意一项所述的定位方法。

本发明另一实施例提供了一种存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行以上任意一项所述的定位方法。

附图说明

图1是本发明一实施例提供的一种定位方法的流程示意图;

图2是本发明一实施例提供的整数规划的具体流程示意图;

图3是本发明一实施例提供的一种定位装置的结构示意图。

具体实施方式

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

参见图1,是本发明一实施例提供的一种定位方法的流程示意图,包括:

s1、根据传感器网络中所有节点间的通信信号强度,计算所述传感器网络中任意两节点间距离;其中,所述节点包括锚节点和未知节点。

s2、对所述传感器网络的锚节点进行空间节点内插,计算内插节点的位置。

其中,由于网络中锚节点呈离散点分布形式,或者锚节点虽然按照网格排列,但格网的密度不能满足使用的要求,需要以锚节点为基础进行插值运算。空间插值常用于将离散点的测量数据转换为连续的数据曲面,以便与其他空间现象的分布模式进行比较。本实施例中采用空间内插法,通过锚节点的数据推求同一区域未知节点的数据。

s3、根据所述锚节点、所述内插节点的位置,构建插值曲面。

利用不规则三角网上锚节点与内插节点的数据,模拟出与原始空间位置相近的插值曲面,能有效提高定位精度。

s4、根据所述插值曲面,将所述任意两节点间距离输入预设的计算模型对所述内插节点进行筛选,并将筛选后的内插节点的位置,作为所述未知节点的位置。

其中,本实施例中采用整数规划算法在空间上选出满足定位误差约束条件且与未知节点数量相同的内插节点,从而估算出未知节点位置。

本发明实施例中,通过根据传感器网络中所有节点间的通信信号强度,计算所述传感器网络中任意两节点间距离,其中,所述节点包括锚节点和未知节点,对所述传感器网络的锚节点进行空间节点内插,计算内插节点的位置,根据所述锚节点、所述内插节点的位置,构建插值曲面,根据所述插值曲面,将所述任意两节点间距离输入预设的计算模型对所述内插节点进行筛选,并将筛选后的内插节点的位置,作为所述未知节点的位置,采用线性三角形插值法和整数规划算法,通过利用锚节点模拟出与原始空间位置相近的插值曲面进行定位,能有效提高定位精度,并在模拟实际环境的基础上进行定位误差分析,考虑到实际环境存在的环境影响,定位误差分析引入高斯随机变量,对误差的分析更加准确,能有效降低定位误差,提高了可操作性,有利于产品化。

在另一优选实施例中,在上述实施例的基础上,所述定位方法还包括无向图模型的构建步骤:

预先设置所述传感器网络的节点;

所述传感器网络中任意两节点间设有一条边,所述边上设有一个附加因子,构成无向图模型;其中,所述附加因子为所述两节点间的通信信号强度。

具体地,假设传感器网络中共有p个节点,其中有q个锚节点。若网络中任意两节点间能够通信,则这两节点之间存在一条边,而每一条边都存在一个附加因子r。其中,附加因子r为节点之间的rssi数值。

已知无线电中,信号功率与距离之间的关系满足以下公式:

pij=p0-10nlg(dij/d0)

其中,pij为参加点i接收到另一参考点j发送的信号后所测得的功率,dij表示i、j两参考节点的实际距离,p0为对应参考距离的功率,d0为参考距离,n为衰减系数。

例如,衰减系数n取值为n=2~4。

进一步,假设传感器网络中两节点k、l能通信,则pkl=p0-10nlg(dkl/d0),可推导出

其中,pkl为节点k接收到另一节点l发送的信号后所测得的功率,dkl为k、l两参考节点的实际距离。

例如,本实施例中参考距离d0=1m。

优选地,步骤s1具体为:

根据以下公式计算所述传感器网络中任意两节点间距离:

其中,dijest为节点间距离,r为节点之间通信半径,pmin为所述传感器网络的信号强度值的最小值对应的信号功率。

可以理解的是,两节点之间距离与所接收到的信号强度rssi值成反比,找出整个无线传感器网络的rssi值中的最小值rmin=pmin与之对应的距离最大值dmax。当dmax=r时,对应节点间距离dijest。

无线信号在传播过程中的近距离信号衰减相当厉害,远距离时信号呈缓慢线性衰减。衰减系数主要取决于无线信号在空气中的衰减、反射、多径效应等干扰,如果干扰越小的话,衰减系数越小,信号传播距离越远,则基于rssi的测距就越精确。

在另一优选实施例中,所述对所述传感器网络的锚节点进行空间节点内插,计算内插节点的位置,包括:

根据所述锚节点,构建狄洛尼三角网;

采用内插算法,在所述狄洛尼三角网上进行等距离空间节点内插;

根据所述锚节点的位置,确定所述内插节点的位置;其中,所述内插节点的数量大于所述未知节点的数量。

需要说明的是,狄洛尼三角网的构建采用线性三角形插值法,使用狄洛尼三角形,将位置已知点间的连线形成三角形,而且所有三角形的边都不能与另外的三角形相交,其结果构成了一张由三角形拼接起来的覆盖网格范围的网作为原始锚节点的连接方法,且每一个三角形定义了一个覆盖该三角形内网格节点的面。

根据空间区域的有限锚节点集将该空间区域划分为相连的三角面网络,即狄洛尼三角网,由连续的三角面组成,三角面的形状和大小密度取决于不规则分布的测点的密度和位置。在该狄洛尼三角网的基础上采用线性内插建立插值曲面模型,实现模拟出一个与原始空间位置相近的模型,与对地面地形的数字化模拟。

具体地,假设在该插值曲面内有s个锚节点,m个未知节点,在[0,a]×[0,b]×[c,d]空间区域的水平面内等距λ插入点阵;其中,λ为分割细度。

优选地,a取值为0=x1<x2<...<xk1=a,b取值为0=y1<y2<...<yk2=b,将x轴分成k1-1份,将y轴分成k2-1份,则

其中,xk1为该内插节点的横坐标,yk2为该内插节点的纵坐标。

因此,在该水平面内插入t=k1×k2个内插节点;其中,该内插节点的数量大于传感器网络的未知节点的数量,即t>m。

优选地,所述定位方法还包括所述内插节点坐标的计算步骤:

筛选与所述插值曲面内部的内插节点距离最近的三个锚节点;

根据所述三个锚节点,确定所述内插节点与所述三个锚节点所在所述狄洛尼三角网的三角平面;

将所述三个锚节点的位置输入预设的线性方程,对所述内插节点的位置计算。

需要说明的是,选取靠近该内插节点的三个锚节点来确定该狄洛尼三角网中的一个三角形形成的空间平面。故四点共面,由共面的充要条件可得四点坐标构成的三阶行列式为0,即在几何意义上三条向量组成的平行六面体体积为0,联立线性方程来确定三角面上任意节点的坐标。

例如,设三角形面上三个已知点坐标分别为a(x1,y1,z1)、b(x2,y2,z2)、c(x3,y3,z3),内插节点坐标为p(x,y,z),则:

求解上述行列式,可得p(x,y,z)。

在另一优选实施例中,所述定位方法还包括:

筛选与所述插值曲面边界上的内插节点距离最近的一个锚节点,将所述锚节点的位置作为所述内插节点的位置。

需要说明的是,由于现有的线性三角形插值法只能内插网络的内部区域,边角无法内插。改进地,采用最邻近内插法,根据连续曲面性质,内插节点的位置取值等于与它距离最近的锚节点的位置,从而提升内插效果。

本实施例中,采用线性三角形插值法,根据锚节点的位置数据模拟出与原始空间位置相近的插值曲面进行定位,利用狄洛尼三角网能更精确地表示更加复杂的表面,从而能有效提高定位精度。

在另一优选实施例中,在上述实施例的基础上,所述定位方法还包括:

所述根据所述插值曲面,将所述任意两节点间距离输入预设的计算模型对所述内插节点进行筛选,并将筛选后的内插节点的位置,作为所述未知节点的位置,包括:

计算所述锚节点与所有未知节点间距离;

根据所述插值曲面,计算所述锚节点与所有内插节点间距离;

根据所述锚节点与所有未知节点间距离和所述锚节点与所有内插节点间距离,采用整数规划模型计算定位误差;

将所述定位误差按从小到大进行排序,获取前m个定位误差对应的内插节点,得到筛选后的内插节点及其位置;其中,m为所述未知节点的数量;

将所述筛选后的内插节点作为所述未知节点,得到所述未知节点的位置。

具体地,根据步骤s1中任意两节点的距离公式,计算锚节点与所有未知节点间的距离,得到估计距离矩阵dij=(dijest):

其中,i=1,2,...,m,j=1,2,...,s,dij中每一个行向量di代表其对应的位置未知点与所有位置已知点的对应距离。

根据所述插值曲面的内插节点数据集,假设内插节点与其他节点相同的通信半径,计算锚节点与所有内插节点间的距离,得到估计距离矩阵dljf=(dljf):

其中,其中l=1,2,...,t,j=1,2,...,s,dljf中每一个行向量dlf代表其对应的内插节点与所有已知位置的相互距离。

进一步,利用整数规划算法从所有锚节点与内插节点间的距离dljf中选出m个构成矩阵df使之与dij的定位误差||df-dij||2最小,则该m个内插节点就是位置未知点的估计位置。

参见图2,是本发明一实施例提供的整数规划的具体流程示意图,设xlj为0,1变量,具体整数规划为:

约束条件:

需要说明的是,首先求解非整数规划(线性规划)lp的解,若无解则整数规划无解,若有解,便判断该解是否符合整数条件,符合则为整数规划ip最优解,若不符合则在此非整数规划lp的解中任选一个不符合整数条件的变量xj并各支分别增加一个约束条件1)xj=0;2)xj=1,对上述约束条件对应的不考虑整数解的线性规划lp1和lp2求解。再分别按上述步骤循环求解,最后得到整数规划ip的最优解,直到求得最优解。

其中,求解整数规划ip对应的线性规划lp,若线性规划lp没有可行解,则整数规划ip没有可行解,若线性规划lp有最优解,并符合整数规划ip的整数条件,则线性规划lp的最优解也是整数规划ip的最优解。若线性规划lp有最优解,但不符合整数规划ip的整数条件,则采用分枝定界法,将两个约束条件分别加入ip问题求解两个线性规划lp。如此反复进行,直到求得最优解。

本实施例中,利用整数规划算法,在模拟实际环境的基础上进行误差分型,考虑到实际环境存在的环境影响,误差分析引入高斯随机变量,对误差的分析更加准确,能有效降低定位误差,提高了可操作性,有利于产品化。

参见图3,是本发明一实施例提供的一种定位装置的结构示意图,包括:

计算模块1,用于根据传感器网络中所有节点间的通信信号强度,计算所述传感器网络中任意两节点间距离;其中,所述节点包括锚节点和未知节点;

内插模块2,用于对所述传感器网络的锚节点进行空间节点内插,计算内插节点的位置;

建模模块3,用于根据所述锚节点、所述内插节点的位置,构建插值曲面;

定位模块4,用于根据所述插值曲面,将所述任意两节点间距离输入预设的计算模型对所述内插节点进行筛选,并将筛选后的内插节点的位置,作为所述未知节点的位置。

优选地,该计算模块1包括:

节点设置单元,用于预先设置所述传感器网络的节点;

无向图模型构建单元,用于所述传感器网络中任意两节点间设有一条边,所述边上设有一个附加因子,构成无向图模型;其中,所述附加因子为所述两节点间的通信信号强度。

优选地,该计算模块1还包括:

距离计算单元,用于根据以下公式计算所述传感器网络中任意两节点间距离:

其中,dijest为节点间距离,r为节点之间通信半径,pij为参加点i接收到另一参考点j发送的信号后所测得的功率,pkl为节点k接收到另一节点l发送的信号后所测得的功率,p0为对应参考距离的功率,pmin为所述传感器网络的信号强度值的最小值对应的信号功率。

优选地,该内插模块2包括:

三角网构建单元,用于根据所述锚节点,构建狄洛尼三角网;

空间内插单元,用于采用内插算法,在所述狄洛尼三角网上进行等距离空间节点内插;

插值曲面构建单元,用于根据所述锚节点的位置,确定所述内插节点的位置;其中,所述内插节点的数量大于所述未知节点的数量。

进一步,该内插模块2还包括:

第一筛选单元,用于筛选与所述插值曲面内部的内插节点距离最近的三个锚节点;

三角平面获取单元,用于根据所述三个锚节点,确定所述内插节点与所述三个锚节点所在所述狄洛尼三角网的三角平面;

第一节点计算单元,用于将所述三个锚节点的位置输入预设的线性方程,对所述内插节点的位置计算。

在另一种可选实施例中,该内插模块2还包括:

第二节点计算单元,用于筛选与所述插值曲面边界上的内插节点距离最近的一个锚节点,将所述锚节点的位置作为所述内插节点的位置。

优选地,该定位模块4包括:

第一计算单元,用于计算所述锚节点与所有未知节点间距离;

第二计算单元,用于根据所述插值曲面,计算所述锚节点与所有内插节点间距离;

定位误差计算单元,用于根据所述锚节点与所有未知节点间距离和所述锚节点与所有内插节点间距离,采用整数规划模型计算定位误差;

第二筛选单元,用于将所述定位误差按从小到大进行排序,获取前m个定位误差对应的内插节点,得到筛选后的内插节点及其位置;其中,m为所述未知节点的数量;

定位单元,用于将所述筛选后的内插节点作为所述未知节点,得到所述未知节点的位置。

参见图3,是本发明一实施例提供的定位装置的示意图。该实施例的定位装置包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序。所述处理器执行所述计算机程序时实现上述各个定位方法实施例中的步骤。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。

示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述定位装置中的执行过程。

所述定位装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述定位装置可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是定位装置的示例,并不构成对定位装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述定位装置还可以包括输入输出设备、网络接入设备、总线等。

所称处理器可以是中央处理单元(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