一种基于虚拟节点的近似三角形内点测试定位算法的制作方法

文档序号:15977147发布日期:2018-11-16 23:55阅读:268来源:国知局

本发明属于互联网信息技术领域,具体的说涉及基于虚拟节点的近似三角形内点测试(apit)定位算法研究。

背景技术

嵌入式、微机电系统(mems)等技术的发展,使得利用配备处理器、内存器、无线信号收发器等硬件的微型节点建立一个自组织的无线传感器网络(wirelesssensornetworks,wsns)成为现实。从此,wsns被广泛地应用到社会的各个领域以处理信息感知的问题,包括:军事、工业、建筑、医疗、航海等领域。无线传感器网络可以说是一场信息产业的革命,它被《mit技术评论》评为改变世界的十大技术之一,同时也是21世纪最具有影响力的技术之一。

在上述介绍的应用中,所有的有用信息都是建立在传感器节点精确定位的前提下。因此,在wsns中节点的定位技术是最基本和最核心的技术之一,有效的定位技术和最优化的定位方法值得被深入研究。如今全球定位系统(gps)已经应用到社会的众多领域,是目前最成熟的定位技术,通过gps定位具有定位精度高、抗干扰性强、实时性好等特点。但是在一些特殊的应用中,由于其较高的能耗以及较为复杂的安装和维护,并不适合大范围的部署。因此,在传感器网络中,只有一小部分节点配备了gps从而获得其位置信息,其余的大部分节点仍需通过自身定位技术来估计其位置信息。

近年来,国内外的学者提出了许多应用在无线传感器网络中的节点定位算法。根据是否需要物理测量来获得距离或者角度的信息,节点定位算法可以划分为两类:基于测距的定位算法和基于非测距的定位算法。前者利用邻居节点之间实际测量的距离或角度信息来计算位置,例如:基于到达时间的定位算法(toa),基于到达时间差的定位算法(tdoa),基于到达角度的定位算法(aoa)以及基于接收信号强度的定位算法(rssi)等。基于测距的定位算法能够达到相对更为精确的定位性能,但是需要付出大量的计算和高额的能耗。后者则是利用了传感器网络中的连通度信息,因此不必测量一些距离或角度的信息。考虑到传感器节点的硬件限制,基于非测距的定位算法正逐渐成为需要更多消耗的基于测距的定位算法的替代方案,并且获得更多的关注与研究。常见的非测距方法包括:质心算法(centriod),距离向量算法(dv-hop),模糊算法(amorphous),近似三角形内点测试算法(apit)以及相应的改进算法。

apit是一种典型的基于非测距的节点定位算法。图1为apit算法的概观。apit算法的核心思想:首先,目标节点通过接收携带锚节点id,传输功率和锚节点位置信息的广播信标来获取锚节点的位置,目标节点是试图确定其位置的节点,而锚节点是配备高功率发射机和gps或其他定位设备的节点;接着,每个目标节点选择n个锚节点中的任意3个,根据近似三角形内点测试算法(apit),目标节点确定它是在由三个选定锚节点组成的三角形的内部还是外部;最后,通过遍历所有组合,目标节点计算其在内部的所有三角形的重叠区域的重心(cog),作为其估计位置。

用于确定目标节点是否在给定三角形内的apit的理论基础称为三角形内点测试(point-in-triangulationtest,pit)。pit测试的原理,是在判断目标节点m和由三个锚节点组成的三角形之间的位置关系,如果存在一个方向,当目标节点m沿着该方向移动时,其能够同时远离或者靠近三个顶点,那么m是在三角形外部;否则,m在三角形内部。

然而在无线传感器网络中,节点静态分布,不能随意移动,因此pit测试在实际应用中是不可行的。为了在节点不移动的情况下在传感器网络中进行pit测试,研究人员提出了近似三角形内点测试(apit)方法。apit方法的基本思想是:通过比较目标节点与其通信范围内邻居节点的各自接收到的来自锚节点的信号强度,来模拟pit测试中的节点移动。图2为apit方法的示意图。apit具体的方法如下所述:对于目标节点m而言,如果不存在同时靠近或者远离三个锚节点的邻居节点,则m被判断为在三角形内部;否则,m在三角形外部。如图2(a)所示,在m的邻居节点中,不存在同时靠近或者远离三个锚节点的邻居节点,因此目标节点m被判断为在三角形内部。如图2(b)所示,如果目标节点“移动”到邻居节点3的位置,其将会同时靠近三个锚节点,则目标节点m被判断为在三角形外部。

因此,apit定位算法的精度受限于邻居节点的状态,容易受到传感器节点的密度和分布的影响。图3为边界效应的示意图。如图3(a)所示,目标节点m实际在三角形内部,然而由于邻居节点4的存在,如果m“移动”到节点4的位置,其接收到的来自三个锚节点的信号强度会同时减小,根据apit算法的定义,则目标节点m会被判断为在三角形外部。这类误判被称之为in-to-outerror。如图3(b)所示,目标节点m实际在三角形外部,由于邻居节点的特殊分布,使得邻居接收到的来自锚节点的信号强度没有比m的信号强度都减弱或者增强,则目标节点m会被判断为在三角形内部。这类误判被称之为out-to-inerror。两类误判统称为apit边界效应。



技术实现要素:

本发明针对apit算法依赖于邻居节点的判断机制,提高节点定位的精度和鲁棒性,提出一种基于虚拟节点的近似三角形内点测试(apit)定位算法,该方法通过引入少量虚拟节点来对目标节点进行位置判断:在锚节点组成的三角形边上随机分布一定数量的虚拟节点,根据虚拟节点的位置信息,计算得到接收到的来自锚节点的信号强度,进而与目标节点的信号强度相比较,得到目标节点的位置信息,该方法的判断机制独立于邻居节点的密度和分布状况,适用于各种规模和各种拓扑结构的wsns,并有效地提高了算法的定位精度。

为了达到上述目的,本发明是通过以下技术方案实现的:

本发明是一种基于虚拟节点的近似三角形内点测试定位算法,所述算法包括如下步骤:

步骤1:传感器节点随机分布在某一区域内,已知位置信息的锚节点向外发送广播信标;

步骤2:目标节点收集来自邻居锚节点的信息,包括id,信号强度和位置信息;

步骤3:目标节点统计其邻居锚节点的个数,当邻居锚节点个数大于等于3时,进行基于虚拟节点的近似三角形内点测试;

步骤4:对于有n个邻居锚节点的目标节点来说,选择任意3个不同的锚节点组成一个三角形,共能组成个三角形;

步骤5:对每个由锚节点组成的三角形,根据三边长度通过余弦定理进行形状判断;

步骤6:根据三角形的不同形状部署不同数目的虚拟节点;

步骤7:虚拟节点根据自身位置信息,通过无线传播路径损耗模型计算出来自锚节点的接收信号强度;

步骤8:将目标节点与虚拟节点的接收信号强度进行比较,判断目标节点是否在三角形内部;

步骤9:遍历所有个三角形,重复步骤5、6、7、8,计算所有目标节点在内部的三角形的重叠区域;

步骤10:利用网格扫描法,将上述重叠区域的重心作为目标节点的位置估计值。

本发明的进一步改进在于:在所述步骤6中,对于非钝角三角形,在目标节点接收信号强度最大的锚节点所在的三角形两个半边也就是靠近锚节点的半边设置n个虚拟节点;否则在目标节点接收信号强度最大的锚节点所在的三角形两个半边也就是靠近锚节点的半边设置n个虚拟节点,在其对边设置2n个虚拟节点。

本发明的有益效果是:1、本发明摆脱了经典apit算法中依赖于邻居节点的密度和分布状况的判断机制,适用于各种规模和各种拓扑结构的无线传感器网络;2、本发明相比于已有的虚拟节点近似三角形内点测试(vn-apit)定位算法,在达到相同定位性能的情况下,其计算量可以有效减少40%~50%;3、本发明可以有效避免边界效应,在付出一定计算量的情况下,可以达到理论上的最佳定位性能。

附图说明

图1是为apit算法的概观图。

图2是apit方法的示意图。

图3是边界效应的示意图。

图4是本发明的流程图。

图5是区域分布图。

图6是虚拟节点分布图。

具体实施方式

为了加深对本发明的理解,下面将结合附图和实施例对本发明做进一步详细描述,该实施例仅用于解释本发明,并不对本发明的保护范围构成限定。

如图4所示,本发明是一种基于虚拟节点的近似三角形内点测试定位算法,该方法通过引入少量虚拟节点来对目标节点进行位置判断,判断机制独立于邻居节点的密度和分布状况,从而获得精确的定位性能,所述算法包括如下步骤:

步骤1:传感器节点随机分布在指定区域内,用于感知并处理周围的信息,其中锚节点配有gps定位设备,可以获得节点自身的位置信息,并通过高功率发射机向通信区域不断发送节点的信标;

步骤2:目标节点通过无线接收机接收到附近区域内锚节点的有关信息,包括id,信号强度和位置信息;

步骤3:目标节点根据接收到的所有信息,统计其邻居锚节点的个数,当邻居锚节点个数大于等于3时,准备进行基于虚拟节点的近似三角形内点测试;否则该目标节点放弃定位;

步骤4:对于有n个邻居锚节点的目标节点来说,选择任意3个不同的锚节点组成一个三角形,共能组成个三角形;

步骤5:根据锚节点的位置信息,对每个由锚节点组成的三角形,根据三边长度通过余弦定理进行形状判断;首先根据锚节点的位置信息,计算得到三角形三边的长度(a,b,c);接着根据余弦定理变换公式计算各个角的角度:

其中a为对应角的角度;最后根据上述计算出的角度信息,判断三角形的具体形状,分别有锐角三角形、直角三角形和钝角三角形三种情况,这里将锐角三角形和直角三角形归为一类,钝角三角形归为一类,共两类结果;

步骤6:根据三角形的不同形状部署不同数目的虚拟节点,也就是说对每个由锚节点组成的三角形,计算目标节点接收信号强度最大的锚节点x,粗略判断目标节点在三角形附近的位置分布,接着在目标节点的分布区域所在的边上随机部署虚拟节点;

步骤6.1:如图5所示,辅助线为三角形各边的中垂线,交点为o,即该三角形的外心,已知中垂线上的点到两边的距离相等,再根据无线传播路径损耗模型:

其中:为无线信号从锚节点到目的节点之间的传播距离;为目标节点的接收信号强度;为距锚节点处的参考信号强度;为信号传播路径衰落系数;为随机变量。根据模型可知,传播距离与信号强度成反比,则可以根据接收信号强度的大小进而判断目标节点与锚节点距离的远近。若目标节点接收信号强度最大的锚节点为a,则可以判断目标节点位于包括a点在内的iok区域;若目标节点接收信号强度最大的锚节点为b,则可以判断目标节点位于包括b点在内的ioj区域;若目标节点接收信号强度最大的锚节点为c,则可以判断目标节点位于包括c点在内的jok区域;

步骤6.2:如果目标节点m在锚节点组成的三角形内部,当m以任何与三角形三边垂直的方向或者顶点的方向移动时,目标节点不可能同时远离或者靠近3个锚节点;如果目标节点m在锚节点组成的三角形外部,当m以任何与三角形三边垂直的方向或者顶点的方向移动时,一定存在一个方向,使得目标节点可以同时靠近3个锚节点。因此,根据上述步骤的判断结果,若三角形判断为非钝角三角形,则在目标节点接收信号强度最大的锚节点所在的三角形两边也就是靠近该锚节点的两个半边设置n个虚拟节点;否则在目标节点接收信号强度最大的锚节点所在的三角形两边也就是靠近该锚节点的两个半边设置n个虚拟节点,在其对边设置2n个虚拟节点,如图6所示;

步骤7:虚拟节点根据自身位置信息,通过无线传播路径损耗模型计算出来自锚节点的接收信号强度,也就是说虚拟节点根据锚节点的位置进行相应的部署,因此虚拟节点的位置信息可以通过锚节点计算得到,进而计算虚拟节点与锚节点的距离信息,接着通过信号传播模型计算出来自3个锚节点的接收信号强度;

步骤8:将目标节点与虚拟节点的接收信号强度进行比较,判断目标节点是否在三角形内部;若目标节点判断为在三角形外部,即存在虚拟节点的接收信号强度全部大于目标节点的接收信号强度的情况,则在该三角形覆盖的区域上做数值减1的标记,默认所有区域起始数值为0;若目标节点判断为在三角形内部,即不存在虚拟节点的接收信号强度全部大于目标节点的接收信号强度的情况,则在该三角形覆盖的区域上做数值加1的标记,默认所有区域起始数值为0;

步骤9:遍历所有个三角形,重复步骤5、6、7、8,计算所有目标节点在内部的三角形的重叠区域,即标记数值最大的区域;

步骤10:利用网格扫描法,将上述重叠区域的重心作为目标节点的位置估计值。

本发明针对传统的apit算法依赖于邻居节点的判断机制,节点定位精度不高,鲁棒性不强的问题,本发明通过引入少量虚拟节点来对目标节点进行位置判断,该方法的判断机制独立于邻居节点密度和分布状况,适用于各种规模和各种拓扑结构的无线传感器网络,并且有效地提高了节点定位的精度和鲁棒性;针对已有的虚拟节点近似三角形内点测试(vn-apit)计算量过于庞大的问题,本发明通过对目标节点的位置分析,减少了大量虚拟节点的部署,理论上可以减少40%~50%计算量,极大地提高了定位效率。

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