节点定位方法
2. 基于静态 BS 的定位
在使用静态 BS 节点估计未知节点坐标的 WSNs 定位方法中,节点之间需要进行距离估测的是基于测距(Range-based) 的定位方法,节点之间无需测距的是非测距 (Range-free) 的定位方法。前者通过测量未知节点与信标节点之间的距离或相对方位信息,利用位置计算方法(如三边测量等)计算节点位置。后者无需像前者那样估测节点之间的距离或角度信息,在 WSNs 网络的连通信息的帮助下就可完成位置估测,且无需额外硬件的支持,但定位精度不高,适用于那些对网络通信成本和定位精度要求不高的 WSNs 应用。
2.1 基于测距的定位
对于测距的定位算法,节点之间的距离或相对方位的估测精度与系统的定位精度成正比。下面将对典型的 4 种距离或角度估测方法进行介绍。
(1)信号强度 RSS
未知节点能够通过自身所携带设备轻易的获得来自信标节点的无线信号强度(RSS)值。利用该值通过 RSS 信号衰减模型就能够估测未知节点与信标节点之间的距离。该方法具有实现简单,成本低,无需额外硬件支持,但定位估测精度不高的特点。适合于对定位精度要求不高的 WSNs 应用。 RSS 信号衰减模型的种类有很多,如不规则度模型、对数路径损耗模型、对数正态阴影路径损耗模型、自由空间传输模型、无线电不规则模型等。其中使用最多的是对数正态阴影路径损耗模型,下面是该模型
其中, 为已测好的与信号源相距 时的 RSSI, 是单位距离,一般取值为 1m; 是决定外部环境的路径衰减因子; 是外部环境干扰的主要体现,服从标准正态分布 。
是信号初始的信号发送强度,经过天线的增益强度为 。 为与信号源相距 时接收到的 RSS 值。所以存在以下关系
假设两个信号节点之间的距离为 ,接收到信号强度值为 。则可获得 RSSI 与距离的计算公式
通过这些 RSS 估测模型能够获得 RSSI 与距离的转化,从而获得距离信息。在二维空间中,已知三个信标节点的坐标和距离信息就能够利用上节所讲的位置计算方法计算未知节点坐标。
(2)到达时间 TOA
从物理的信号传播原理出发,当你获得了无线信号的传播时间和传播速度时,计算出传播距离是一件非常简单的事。TOA 通过时间同步机制获得了无线信号的传播时间,在无线信号的传播速度已知的情况下估测未知节点与信标节点之间的距离。
(3)到达时间差 TDOA
TDOA 与 TOA 方法估测距离的思想是相同的,都是利用无线信号的传播时间与传播速度相乘来计算距离。但与 TOA 方法使用时间同步直接计算传播时间的方法不同,TDOA 利用同一时刻发送两种不同传播速度的无线信号,通过两种无线信号的到达时间差来计算两个节点之间的距离。该方法省去了时间同步的过程,但需要有更加精确的时间设备。
则有以下关系:
(4)到达角 AOA
节点估测无线信号的到达角度常使用的方式有通过天线阵列直接估测和通过 RSS 间接的估测两种。运用天线阵列的方法具有实现复杂,成本高,定位精度高的特点。通过 RSS 估测 AOA 的方法实现简单,且定位成本低。
2.2 基于非测距的方法
非测距的定位方法与测距的定位方法相比,前者的定位性能较差,但无需给节点配置额外硬件的设备,实现的成本也较低。对于那些功耗要求低,没有额外的硬件设备,对定精度要求不高的 WSNs 应用来说,该类方法很适合。根据使用的定位机制的不同,可以将该类算法分为跳数估测和质心估测。前者通过单位跳数的距离大小与跳数计算距离,在已知单跳距离的情况下,未知节点与信标节点的相距跳数乘以单跳距离就可以计算未知节点位置。后者通过通信范围内所有邻居节点所构成的几何图形的质心作为节点的位置。
⑴ DV-Hop
DV-Hop 定位算法是一种典型的通过跳数计算未知节点位置的算法,最先由 Dragos Niculescu 等人提出,是一种无需测距的分布式定位算法。该算法分为三个阶段:
- 第一个阶段是计算未知节点距离所有信标节点的最小跳数,一般通过距离矢量交换协议来实现。
- 第二个阶段是通过信标节点的位置信息和它们之间的最小跳数信息就能够计算出网络平均单跳距离大小;在获得单跳距离之后,将其作为一个校正值广播到整个网络中,使每个未知节点能够够获得单跳距离;未知节点根据与信标节点的最小跳数和单跳距离就能够计算出自身与各信标节点之间的距离。
- 第三阶段是当未知节点获得至少三个信标节点的位置和距离时,利用三边测量法或极大似然估计法计算自身位置。
⑵ 质心算法 (Centroid)
质心算法是一种较为典型的将几何图形的质心作为节点位置估测的定位算法,最先是由 Bulusu 等学者提出的,是一种适用于室外环境,通过网络连通性估测节点坐标的定位算法。 如图所示,通过通信范围内所有信标节点坐标构成的几何图形的质心作为未知节点的坐标估计。该几何图形的每个顶点对应了一个信标节点,通过所有顶点的坐标之和求平均值计算该图形的质心。在未知节点附近有 5 个信标节点,且已知信标节点的坐标为 。则未知节点通过下面的等式计算
⑶近似三角形内点测试 (APIT)
Approximate Point-in-Triangulation Test,APIT。在讲解 APIT 定位算法之前,了解一下三角形内点测试(Point in Triangle,PIT)的基本原理很有必要。PIT 主要是用来判断一个未知节点是否在三个信标节点所组成的三角形内部。如图所示,若未知节点 A 在三个信标节点 1、2、3 组成的三角形外部,那么存在某个方向,未知节点沿该方向移动会接近或远离三个信标节点 1、2、3;否则就认为在三角形的内部。
APIT 算法以 PIT 为基础,假设未知节点 A 的通信范围内有 个信标节点,且已知这些信标节点的 ID 编号和坐标信息。对于 个信标节点,不同的信标节点组合可以获得 种三角形,因此未知节点需要对 个三角形进行 PIT 测试,判断未知节点是否在这些三角形的内部;并求解出未知节点 A 所在的全部三角形内部的重叠区域,将重叠区域的几何质心作为未知节点 A 的坐标。当所有的三角形组合都已完成测试或已经到达了定位精度阀值的时候结束计算。APIT 算法在良好信标节点密度的情况下能够获得比较高的定位精度,且能量消耗低、定位性能好。
⑷ 凸规划算法
Doherty 等人提出的凸规划定位算法是一个凸约束优化问题的解决方案。未知节点将整个网络模型当做一个集合,将能与自身通信的信标节点当做约束条件,从而转化为凸约束的优化问题。之后再运用线性规划方法解决凸规划问题,最后全局优化的解决方案计算节点坐标。 如图所示,凸规划算法通过横、纵坐标的最大、最小值来推测出未知节点可能存在的矩形区域。如图所示,阴影部分面积是未知节点与三个信标节点圆形通信范围之间交集,该交集就是未知节点可能存在的热点区域。通过该热点区域求得与之相对应的一个矩形区域,通过该矩形区域的质心计算未知节点坐标。