一文详解基于测距的空间定位算法
文章目录
0 定位算法分类
0.1 基于测距与非基于测距的定位算法
(1)基本概念
- 基于测距的定位算法是通过测量锚节点和未知节点间的角度值或者距离值,来计算位置节点的位置。
- 非基于测距的算法,是根据网络拓扑结构等信息来计算未知节点的位置,而不是通过测量距离和角度值。
(2)常用算法
- 常用的基于测距的定位算法有:基于接收信号强度测量法(RSSI)、到达时间测量法(TOA)、到达时间差测量法(TDOA)和到达角度测量法(AOA)。
- 常用的非基于测距的定位算法有:质心算法、凸规划法、网络多跳路由算法(DV-hop)。
(3)特点
- 基于测距的定位算法,因为经过距离测量,定位精度好,但是功耗和成本较高;
- 非基于测距的定位算法,与之相反,其定位的成本和功耗小,易于实现,但是定位精度差。


0.2 集中式与分布式定位算法
(1)基本概念
- 集中式定位算法,是将未知节点的数据传送给一个节点,在这个节点处进行集中计算,得出每个节点的位置信息,再由此节点将这些信息发送给协调器节点或者上位机,从而使网络中节点位置获得确认。
- 分布式定位算法,是指计算位置信息的功能分布在每个节点上,由节点根据与其他节点间的信息交互所得到的数据自行计算位置信息。
(2)特点
-
集中式定位算法定位精度高,可以从全局对定位算法进行控制,由于定位计算集中在一点上进行,所以只需此节点设计为计算能力强,存储量大的节点即可,可以降低其他节点的成本。但是受无线传感器网络传输距离限制,距离中心节点较近的其他节点需要担负起繁重的路由工作,频繁传递信息,增加了节点耗电量,一旦出现电量耗尽,而其所处位置又不便于更换电池,则会导致整个网络的瘫痪。
-
分布式定位算法,将计算功能分布到每个传感器节点中,减少了中心节点的压力,降低了耗电量,每个节点自行计算,也提高的运算的速度,减少了运算时间,效率得到提升。但是由于每个节点取的信息可能受环境影响会出现偏差,所以计算结果准确性较集中式要低一些
-
基于测距的定位算法,因为经过距离测量,定位精度好,但是功耗和成本较高;
-
非基于测距的定位算法,与之相反,其定位的成本和功耗小,易于实现,但是定位精度差。
0.3 绝对与相对定位算法
(1)基本概念
- 绝对定位算法是指以一个第三方的位置坐标为参考来确定位置信息。如利用经纬度信息,因为经纬度是确定值,且在全球范围内都有唯一表示,所以可以用来作为定位的标准坐标。
- 相对定位算法则是指利用网络内某个节点作为参考节点,其他节点的位置都以它为坐标进行计算。
(2)特点
- 绝对定位的优势在于,其能够为网络内节点提供精确的位置信息,不受节点位置移动的影响,适用性较强。
- 相对定位算法的优点则是方便灵活,易于应用实现,坐标的位置可以根据自己的需要定义,方便设计者自己的理解。
0.4 本文内容概述
本文主要介绍无线传感器网络中常见的几种基于测距的定位算法:
① 包围盒定位法 (Bounding-box Method);
② 基于接收信号强度(Received Signal Strength Indication, RSSI)定位法;
③ 基于到达时间(Time Of Arrival, TOA)定位法;
④ 基于到达时间差(Time Difference Of Arrival, TDOA)定位法;
⑤ 基于到达角度(Angle Of Arrival, AOA)定位法。
1 包围盒定位法
1.1 算法原理
**包围盒定位法(Bounding-box Method)**计算成本低,在无线传感器网络中的应用也比较早,但是其定位误差较大。通过计算节点之间的距离,绘制出矩形区域,将矩形区域中心作为未知节点的位置。

如图所示, A A A 和 C C C 是锚节点,位置已知。 B B B 是未知节点,即待测节点。根据节点间的通信,可以测得 B B B 到 A A A、 C C C 的距离,分别记做 d A B d_{AB} dAB、 d C B d_{CB} dCB。以 A A A 为顶点, d A B d_{AB} dAB为边长做正方形。同理,以 C C C 为顶点, d C B d_{CB} dCB 为边长做正方形。此时,两个正方形就会出现重叠的区域,如图中阴影部分所示。在此矩形区域对角线,对角线的交点即为 B B B 位置的估计值。
1.2 算法性能
由图可以看出,包围盒定位算法对锚节点的位置摆放有一定的要求:
若锚节点分布在未知节点的两侧,则最后估计值和实际坐标间的距离误差会小很多,定位效果较好;
若锚节点分布在未知节点的同侧,会导致未知节点的实际位置距矩形区域对角线交点过远,误差增大。
实际应用时,可以根据需要多设置几个锚节点,这样可以增加定位的准确性。包围盒定位算法的计算复杂度与锚节点个数成正比,两者为线性关系,所以该算法成本低,理解简单,易于实现,在实际生产中,对定位精度要求不高的情况下用这种方法是很理想的。
2 基于RSSI的定位法
2.1 算法原理
RSSI(receive signal strength indicator)即为接收信号强度指示。无线信号在传播过程中,信号强度会随传播距离的增大而减小。根据这一特点,人们对两者之间的关系进行了研究,发现接收信强度和传播距离间有如下关系:
P = P 0 − 10 n p log 10 ( d d 0 ) P = {P_0} - 10{n_p}{\log _{10}}\left( {\frac{d}{
{
{d_0}}}} \right) P=P0−10nplog10(d0d)
式中, P P P 表示接收信号强度值(RSSI),单位为 d B m dBm dBm,即一个节点发送信号后,另一个节点接收到该信号时的信号强度; d d d 表示发送信号的节点和接收信号的节点之间的距离。 P 0 P_0 P0 是一个参考值,表示接收节点接收到的与其某一固定距离 d 0 d_0 d0 的节点发送的信号强度值(RSSI值),单位也是 d B m dBm dBm ,一般 d 0 d_0 d0 的值都是取 1m; n p n_p np 为路径损耗指数,信号在信道传播过程中会有所衰减,衰减的情况与具体的环境相关,下表为路径损耗指数 n p n_p np 的典型值。
环境 | n p n_p np |
---|---|
自由空间 | 2 |
遮蔽的城市空间 | 2.7~5 |
视距 | 1.6~1.8 |
有阻挡空间 | 4~6 |
设 A A A 为信号传播了 1m 后的参考信号强度,则上面的无线信号传输模型可以改写为:
P = A − 10 n p log 10 ( d ) P = A - 10{n_p}{\log _{10}}\left( d \right) P=A−10nplog10(d)
由上式可以看出接收信号强度 RSSI 的取值和信号传播距离 d d d 之间的关系,两者的关系受参数 A A A 和路径损耗指数 n p n_p np 的影响,若 A A A 和 n p n_p np 的值确定, P P P 可以通过测量得到,则可以根据此公式计算出 d d d 的值。
基于接收信号强度 RSSI 的定位算法,就是通过接收信号强度(RSSI 值)来计算节点之间的距离的方法。参考节点通过接收未知节点的 RSSI 值,就可计算出未知节点与参考节点间的距离大小,由于参考节点的坐标是已知的,则可以根据欧式坐标系中已知点的坐标求两点间距离的公式计算出未知节点的坐标。

根据 RSSI 值与传播距离间的关系,可以利用 R S S I 1 RSSI_1 RSSI1、 R S S I 2 RSSI_2 RSSI2 和 R S S I 3 RSSI_3 RSSI3 分别求出对应的点 M M M 到 A A A、 B B B、 C C C 的距离 d A M d_{AM} dAM、 d B M d_{BM} dBM、 d C M d_{CM} dCM,则可根据距离公式得到以下方程组
( x 1 − x ) 2 + ( y 1 − y ) 2 = d A M ( x 2 − x ) 2 + ( y 2 − y ) 2 = d B M ( x 3 − x ) 2 + ( y 3 − y ) 2 = d C M \begin{aligned} \sqrt {
{
{\left( {
{x_1} - x} \right)}^2} + {
{\left( {
{y_1} - y} \right)}^2}} = {d_{AM}} \\ \sqrt {
{
{\left( {
{x_2} - x} \right)}^2} + {
{\left( {
{y_2} - y} \right)}^2}} = {d_{BM}} \\ \sqrt {
{
{\left( {
{x_3} - x} \right)}^2} + {
{\left( {
{y_3} - y} \right)}^2}} = {d_{CM}} \end{aligned} (x1−x)2+(y1−y)2=dAM(x2−x)2+(y2−y)2=dBM(x3−x)2+(y3−y)2=dCM
解上述方程组就可求得 ( x , y ) \left(x,y\right) (x,y),即点 M M M 的坐标,从而实现对未知点 M M M 的定位。
###2.2 算法性能
基于 RSSI 的定位算法实现起来较为简单,不需要增加系统的额外硬件配置,也没有过多的数据传输的交互,所以对降低节点的成本和功耗较为有利。该定位算法也是目前被很多硬件厂商所采用一种定位算法,诸多 ZigBee 芯片中都有存储 RSSI 值的寄存器,所以这种方法应用前景较为广泛。采用基于 RSSI 的定位算法的关键,是要获得准确的 RSSI 值。虽然这种方法简便易行,成本低,功耗小,但是由于受到环境因素的影响,RSSI 值的测量往往会出现较大的误差。在信号传播过程中,信号强度会受到障碍物的影响而导致其被削弱。有时因为使用的无线收发装置的影响,也会出现测的 RSSI 值不稳定的情况。可见基于 RSSI 值的定位算法的抗干扰性是影响其推广的主要问题。 在实际应用中,可以通过选取合适的模型,选用多种减小误差的办法来减小环境因素对 RSSI 测量结果的影响,从而能够得出更加精确的结果。
3 基于TOA的定位法
3.1 算法原理
TOA(Time Of Arrive)即到达时间。基于 TOA 的定位算法,主要是利用信号的到达时间来测量节点间的距离。无线信号的传播速度是一定的,根据节点发送信号到接收节点时传播时间的长短可以确定节点间的距离。利用这种原理就可以对未知节点进行定位。基于 TOA 的定位算法的原理如下图所示。

图中,点 M M M 为未知节点,点