无线传感器网络中的节点定位技术

原文:http://www.cnblogs.com/dolphin0520/archive/2013/05/03/3056789.html

  无线传感器网络的许多应用要求节点知道自身的位置信息,才能向用户提供有用的检测服务。没有节点位置信息的监测数据在很多场合下是没有意义的。比如,对于森林火灾检测、天然气管道监测等应用,当有事件发生时,人们关心的一个首要问题就是事件发生在哪里,此时如果只知道发生了火灾却不知道火灾具体的发生地点,这种监测没有任何实质的意义,因此节点的位置信息对于很多场合是至关重要的。

  在许多场合下,传感器节点被随机部署在某个区域,节点事先无法知道自身的位置,因此需要在部署后通过定位技术来获取自身的位置信息。目前最常见的定位技术就是GPS(Global Positioning System)了,它能够通过卫星对节点进行定位,并且能够达到比较高的精度。因此要想对传感器节点进行定位,最容易想到的方法就是给每个节点配备一个GPS接收器,但是这种方法不适用于传感器网络,主要原因有以下几点:

  1)GPS接收器通常能耗高,而对于无线传感器网络中的节点来说,一般能耗很有限,给每个节点配备一个GPS接收器会大大缩短网络寿命;

  2)GPS接收器成本比较高,给无线传感器网络中的每个节点配备一个GPS接收器,需要投入很大成本,尤其对于大规模的无线传感器网络来说不是很适合;

  因此有必要研究适合无线传感器网络的定位技术。下面分两个部分来介绍节点定位的相关研究:1)节点定位的基本概念;2)节点定位的基本思路;3)常见算法。

一.节点定位的基本概念

  无线传感器网络中的节点定位是指传感器节点根据网络中少数已知节点的位置信息,通过一定的定位技术确定网络中其他节点的位置信息的过程。

  在无线传感器网络中节点通常可以分为信标节点(beacon node or anchor node)和未知节点(unknown node),其中信标节点也称为锚节点或者参考点,未知节点也称为普通节点。信标节点是位置信息已知的节点,未知节点是未知信息未知的节点。信标节点一般所占比例很小,通常通过手工配置或者配备GPS接收器来获取自身的位置信息。

  除此之外还有一种节点称为邻居节点(neighbor node),邻居节点是指传感器节点通信半径内的其他节点。

  以下是几个常用术语:

  • 到达时间(Time of Arrvial,TOA),信号从一个节点传播到另一个节点所需时间
  • 到达时间差(Time Diffrential of Arrival,TDOA),不同传播速度的信号从一个节点到达另一个基点所需要的时间之差
  • 到达角度(Angle of Arrival,AOA),节点接收到的信号相对于自身轴线的角度
  • 接收信号强度(Received Sinnal Strength,RSS),节点接收到无限信号强度的大小,也有称Received Sinnal Strength Indicator(RRSI),两个意思基本是一样的
  • 视距关系(Light of Sight,LOS),两个节点之间没有障碍物,能够直接通信
  • 非视距关系(Non Light of Sight,NLOS),两个节点之间有障碍物,不能直接通信
  • 跳数(Hop Count),两个节点之间的跳段之和

二.节点定位技术的基本思路

  节点定位的基本思路主要有两种:

  1.基于测距(Range-based):假设在传感器网络中某些节点位置信息已知,通过某些手段来估算其他节点的位置信息。在这里面通常有两个步骤:

  • 测距
  • 位置估算

  因为要通过信标节点得到未知节点的位置信息,必须先确定信标节点到未知节点的距离,才能得到未知节点的位置信息。举个例子说明一下:

  

  假如信标节点A位置已知为(x1,y1),节点M位置未知,要想求得M的位置,最简单的想法:假设B位置为(x,y),A到B的距离为d1,则有

  d12=(x-x12+(y-y12

  显然只根据一个方程这样是无法求得x和y的值,假若有两个信标节点呢?

  

  这样一来的话又多了一个方程:d22=(x-x22+(y-y22,此时可以解得方程组得到x和y,但是此时x和y是有两组解的,无法唯一确定x和y的值,因此需要考虑再假如一个信标节点:

  这样一来的话就可以唯一确定x和y的值了,最基本的定位思想就是这样。这里举的例子是采用距离,还可以采用角度。

  一般情况最少需要知道未知节点和信标节点的三组距离或角度值,然后再通过位置估算方法确定位置。

  通常测距的方法有4种:

  1)基于到达时间(TOA)的测距

  这种方法是根据已知信号的传播速度及信号在发送节点和接收节点之间的传播时间来估算距离,这种方法要求能够非常精确地获取发送节点和接收节点之间的传播时延,这个是比较困难的,难度很大,不太适合无线传感器网络。

  2)基于到达时间差(TDOA)的测距

  这种方法中发送节点同时发送两种不同传播速度的信号、接收节点根据两种信号到达的时间差和他们的传播速度来计算距离。假若两种信号的传宝速度为v1和v2,到达时间分别为t1和t2,发送节点到接收节点的距离为d,则有:

  t1-t2=d/v1-d/v2

  可得d=(t1-t2)v1v2/(v2-v1)

  3)基于到达角度(AOA)的测距

  这种方法根据接收信号到达时候与自身轴线的角度来计算,这种方法对硬件成本要求很高,要求配备天线阵列,不太适合无线传感器网络

  4)基于接收信号强度(RSS)的测距

  信号在传播过程中会有衰减,无线信号的发射功率和接收功率存在某种映射关系,因此可以利用关系这个来估算距离,

  在获得了距离之后,就可以来估算位置了,常用的位置估算方法有下面两种:

  1)三边测量法

  上面举的例子中的位置估算方法就是三边测量法,此处不再赘述。

  至于某些文献上提到的三角测量法个人觉得跟三边测量法是一回事,就不再介绍了。

  3)最大似然估计法

  已知n个节点的坐标为(x1,y1),(x2,y2)......(xn,yn),它们到未知节点M的距离分别为d1,d2......dn,则有:

  (x-x12+(y-y12=d12

  (x-x22+(y-y22=d22

  ......

  (x-xn2+(y-yn2=dn2

  依次用第一个方程减去最后一个方程,可得:

  x12-xn2+y12-yn2+dn2-d12=2x(x1-xn)+2y(y1-yn)

  ......

  xn-12-xn2+yn-12+dn2-dn-12=2x(xn-1-xn)+2y(yn-1-yn)

  则可以表示成 AX = B

  其中A = B=X =(x,y)T

  2.无需测距(range-free)

  无需测距的方法一般是利用网络连通性或者拓扑结构来估算距离,再利用三边测量法或者极大似然估计来估算位置。

三.常见算法

  1.基于测距(range-based)

  1)AHLos 算法

  该算法是基于到达时间差的测距,信标节点首先向邻居节点以两种射频信号来广播消息,然后邻居节点根据到达时间差来估算距离,在接收到三个信标节点的消息之后,则根据三边测量法估算位置,邻居节点确定自己的位置之后转变为信标节点,也向邻近节点广播消息重复上述过程直至所有节点定位完成。

  2)RADAR算法

  该算法是基于RSS的测距,而基于RSS测距该算法有两种模型:经验模型和信号传播模型

  先说一下经验模型:

  

  在经验模型中,节点被分散在一定的区域内,并且保证所有的未知节点能够与信标节点直接通信,如图所示。然后事先在该区域内采集一些位置进行RSS强度测试,并以(x,y,RSS)的形式记录到数据库中。当进行定位时,未知节点同数据库中的数据进行比对,选择差值最小的三个或者三个以上点作为估算位置,然后再采用三边测量法或者下文的质心法来估算位置。

  信号传播模型:

  信号传播模型主要有两种模型:自由空间模型和shadowing模型

  自由空间模型假定信号发射功率和信号接收功率存在确定的映射关系:

  

  其中PR是接收处的功率,PS是发射处的功率,d是发射点距接收点的距离,α是传播因子,视环境而定。

  shadowing模型:

  

  其中P(d)是未知节点处的信号强度或者信号发射功率,P(d0)是距信标节点或者基站d0处的信号发射功率(其中d0是参考距离,一般取1m),n是衰减因子,由于实际环境中存在噪声,所以引入了ß,比如在室内传播,会有墙壁或者门这些障碍物,就需要计算ß。

  2.无需测距(range-free)

  无需测距的定位算法不需要直接测量节点之间的距离或者角度,而是根据网络的连通性来实现位置估计得,典型的无需测距的算法主要有以下几种:

  1)质心算法

  质心算法基于两个假设条件:射频信号的传播遵循理想的圆球模型;节点的通信半径相同且不会改变。

  该算法利用了计算几何中质心的思想,假设n边形的顶点坐标分别为(x1,y1)......(xn,yn),设其质心坐标为(x,y),则有

  x=(x1+x2....+xn)/ n

  y=(y1+y2+....+yn)/ n

  算法核心思想为:信标节点周期性地广播包含自身位置信息的消息,在时间t内未知节点收到来自信标节点i的消息数目为Nr(i,t),而时间t内信标节点i发出的消息数目为Ns(i,t),那么未知节点和信标节点的连通指标为:

  C=Nr(i,t)/ Ns(i,t)

  如果C大于设定的阈值,则认为未知节点处于信标节点i的覆盖区域内,即与信标节点i连通。这样对于每个未知节点都可以选出与其连通的所有信标节点,然后把这些信标节点的质心作为该未知节点的坐标。

  质心算法是一种完全基于网络连通性的定位算法,其计算和实施难度都比较小,但是算法精度不高,并且通常要求信标节点具有较高的密度。

  2)DV-HOP(Distance Vector-Hop)算法

  DV-HOP算法是为了避免对节点距离直接测量而提出的一种基于矢量路由的非测距定位算法。该算法的核心思想是通过距离矢量路由方法获取未知节点与信标节点之间的最小跳数,并计算每跳的平均距离,然后以每跳的平均距离与最小跳数的乘积作为未知节点与信标节点的估算距离,再使用三边测量法估算未知节点的坐标位置。举个例子:

  

  A、B、C为信标节点,M为未知节点,A到B和C的距离分别为40m和100m,而A到B和C的最小跳数分别为2和5,则A的平均跳距为:

  (40+100)/ (2+5)=20m,同理可以得到B和C的平均跳数为24m和22.5m,则可以计算M距离三个信标节点的距离分别为:

  3*20m,2*24m,3*22.5m,然后就可以利用三边测量法估算出M的坐标。这种方法实现比较简单,但是精度较差,不适合稀疏的以及拓扑不规则的网络。

  3)APIT算法

  APIT算法的基本思想同质心算法的思想类似,它利用由信标节点组成的三角形覆盖重叠区域来确定未知节点的位置。在APIT算法中,未知节点首先在其邻居节点中收集信标节点的信息。然后任意选取3个信标节点,判断自己是否在这3个信标节点组成的三角形区域内,然后不断这样循环选取3个信标节点进行判断,这样,未知节点可以确定多个包含自己的三角形区域,这些三角形区域的重叠部分是一个多边形,它确定了更小的包含未知节点的区域,然后以这个多边形区域的质心作为未知节点的坐标。

  4)MAP算法

  MAP(Mobile Anchor Point)是一种基于移动信标节点的非测距定位算法,也有称为MAN(Mobile Anchor Node)。其基本思想是利用可移动的信标节点在监测区域中移动并周期性的广播其当前的位置信息,然后可以确定两条以未知节点为圆心的弦,这两条弦的垂直平分线的交点就是圆心。

  

  如图所示,S为未知节点,M为移动的信标节点,在T1时刻M移动到S的通信范围之内,然后在T5时刻移出S的通信范围,这样就可以确定了两条弦  T1T5,在T12时刻M又重新移动到S的通信范围之内,然后又在T15时刻移出S的通信范围,这样又可以确定一条弦T12T15,这两条弦的垂直平分线的交点即为圆心S的坐标,然后以圆心坐标作为未知节点S的位置。

  该算法有与其他非测距定位算法相比有较高的精确度,但是缺点是移动节点是必须要有足够能量支持其在监测区域内移动,并且当未知节点的位置发生变化时,该算法有比较大的误差。

  5)Amorphous算法

  Amorphous算法与DV-HOP算法类似,其分为三个阶段:

  第一阶段:计算未知节点与每个信标节点之间的最小跳数

  第二阶段:假设网络中的节点通信半径相同,并且每跳的平均距离等于节点的通信半径,计算未知节点到每个信标节点的距离

  第三阶段:采用三边测量法或者最大似然估计法估算未知节点的位置

  6)凸规划定位算法

  凸规划定位算法的核心思想是:如果两个节点能够直接进行通信,则它们之间的距离必定小于节点的通信半径。

  

  如图所示,黑色实心点为信标节点,白色空心点为未知节点,假若未知节点能与信标节点通信,则其必在以信标节点为圆心、通信半径为半径的圆内,这样的话,多个这样的圆的相交区域必然包含了未知节点,然后以相交区域构成的矩形的质心作为未知节点的坐标。

  7)Ring-Overlapping算法

  

  该算法利用交叠环的思想进行定位,比如S为未知节点,A、B、C为信标节点,若A发出射频信号,而S处的信号强度RSS小于B处的信号强度而大于C处的信号强度,则S必在以A-B为内半径、A-C为外半径的环形区域内,类似地分别可以得到以B、C为中心的环形区域,而S必在这些环形区域的交叠区域内,然后以交叠区域的质心作为S的坐标。

  以上算法都是有信标节点的定位算法,曾有人提出了一些没有信标节点的定位算法如SPA(Self-positioning Algorithm)算法,这种算法主要是建立全局坐标系来估算未知节点的位置,但是这种算法复杂度非常高,不适合用于大规模网络,也有人提出针对SPA算法的改进算法,如SDGPSN(Scalable and Distributed GPS free Positioning for Sensor Networks)算法。

  还有一部分人提出了一些其他的算法,比如AFL(Anchor-Free Distributed Localization in Sensor Networks)算法,其利用的是局部估算方法。还有人提出了基于分簇的定位算法(Using Clustering Information for Sensor Network Localization)。

  定位算法暂时就介绍这么多了,相关深入内容将在后面继续讲解。

时间: 2024-10-27 08:37:12

无线传感器网络中的节点定位技术的相关文章

STM32W108无线传感器网络节点定位技术

使用STM32W108无线节点完成基于接收信号强度指示(RSSI:Received SignalStrength Indication)的N次三边质心加权定位,对移动中的节点实时进行定位,并将定位结果发送到汇集中心.图15.1为定位实验的实际场景,所有实验在室内完成,共使用9个节点,1个移动节点,8个信标节点. 图15.1. 定位实际场景 基于第10章介绍的SimpleMac协议栈,对程序进行删减更改,下面给出更改部分代码: 文件solar-system.c相关内容: 函数processRxPa

旧文备份: 工业网络中单片机节点的地址和波特率设置方式

在工业应用中有很多单片机组网的应用,无论是485网络.CAN网络还是其他什么网络,都会涉及到节点地址的设置问题,下面就来探讨几种地址的设置方式: 硬件设置 在单片机电路板上,加一个拨码开关,以二进制的开关状态表示地址值,拨码开关由单片机的I/O去检测,单片机可以在每次上电去检测一下拨码开关的状态,设置本节点的地址,也可已定期比如500mS去查询一次开关的状态,动态设置本节点地址,建议采用上电检测的方法,因为该方法简单实用,可以在检测后初始化与地址相关的一些资源,如果采用动态检测的方法,不但占用系

无线传感器和无线传感器网络

背景 因为超大规模集成电路 (VLSI) 以及微机电系统科技 (MEMS technology) 等硬件基础以及radio frequency (RF) 技术的进步,使得传感器的发展越来越快 传感器具有的优势: 可以放置在任何环境:任何时间都可以工作,并且不需要太多的人力来进行管理. 具有更好的容错能力:局部出现故障仍然能较好的完成工作. 获取的数据更精确:通过多个传感器获取的信息更加可靠准确. 成本低以及容易部署. 根据8月份国外媒体最新的报道,目前全球传感器大约有2.6万余种类型.随着人工智

无线传感器网络数据融合技术

http://www.dzsc.com/data/html/2008-11-28/73975.html 由于大多数无线传感器网络应用都是由大量传感器节点构成的,共同完成信息收集.目标监视和感知环境的任务.因此,在信息采集的过程中,采用各个节点单独传输数据到汇聚节点的方法显然是不合适的.因为网络存在大量冗余信息,这样会浪费大量的通信带宽和宝贵的能量资源.此外,还会降低信息的收集效率,影响信息采集的及时性. 为避免上述问题,人们采用了一种称为数据融合(或称为数据汇聚)的技术.所谓数据融合是指将多份数

无线传感器网络

Technorati Tags: ZigBee技术 无线传感器网络        时代进步,技术推陈出新,而作为信息获取最重要和最基本的技术-传感器技术,也得到了极大的发展.传感器信息获取技术已经从过去的单一化渐渐向集成化.微型化和网络化方向发展,将会带来一场信息革命. 具有感知能力.计算能力和通信能力的无线传感器网络WSN,综合了传感器技术.嵌人式计算技术.分布式信息处理技术和通信技术,能够协作地实时监测.感知和采集网络分布区域内的各种环境或监测对象的信息,并对这些信息进行处理,获得详尽而准确

无线传感器网络数据融合概述

http://blog.sina.com.cn/s/blog_6b218a3b0100mdye.html 一. 数据融合.所谓数据融合,就是将多份数据或信息进行处理,组合出更有效.更符合用户需求的结果的过程.在无线传感器网络的研究中,数据融合起着十分重要的作用,主要表现在以下三个方面: 1.节省能量        在部署无线传感器网络时,需要使传感器节点达到一定的密度以增强整个网络的鲁棒性和监测信息的准确性,有时甚至需要使多个节点的监测范围互相交叠.这种监测区域的相互重叠导致了邻近节点报告的信息

BT网络中DHT和UPnp的解释(转)

DHT 类似Tracker的根据种子特征码返回种子信息的网络.DHT全称叫分布式哈希表(Distributed Hash Table),是一种分布式存储方法.在不需要服务器的情况下,每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储.新版BitComet允许同行连接DHT网络和Tracker,也就是说在完全不连上Tracker服务器的情况下,也可以很好的下载,因为它可以在DHT网络中寻找下载同一文件的其他用户.BitComet的DHT网络协议和BitTor

信息在网络中的漫游(二)

上一篇文章主要介绍了公共因特网的拓扑,或者说物理结构,那么这一篇文章要介绍IP--就是网络中每个节点或者端系统的识别问题.现实中,道路的端点是一个个村庄或城市,它们都是有名字的,但是网络世界中,用名字来标示每一台主机是一件不太明智的事,于是人们发明了IP这种方式来识别主机. IP是二进制数字,共有32位,理论上可以有2的32次方(大约40亿)个不同0.1组合,于是可以标示这么多主机,每个组合就是一台主机的名字.如下图是一个IP的例子: 11000001 00100000 11011000 000

无线定位技术

实现室内地图定位导航,需要解决哪些技术难题? 2015-06-18 15:00:00 来源: 知乎每日精选 跟贴 0 条 手机看新闻 Wi-Fi指纹定位是什么原理? 室内定位中的位置指纹法,简单来说,就是事先把各个位置上的信号特征(各Wi-Fi的信号强度)测量一遍,存入指纹数据库.定位的时候,将当前的信号特征与指纹库中的进行匹配,从而确定位置.下图是我本科毕设时画的示意图(AP就是WiFi,RP是离线采集选取的参考点): 离线阶段:记录下每个RP处测到的信号强度,每组数据(指纹)包含4个信号强度