本文详细介绍了基于测距的空间定位算法
文章目录
- 本文详细介绍了基于测距的空间定位算法
-
- 0 定位算法分类
-
- 0.1 基于测距和非基于测距的定位算法
- 0.2 集中式和分布式定位算法
- 0.3 绝对相对定位算法
- 0.4 本文内容概述
- 1 包围盒定位法
-
- 1.1 算法原理
- 1.2 算法性能
- 2 基于RSSI的定位法
-
- 2.1 算法原理
- 3 基于TOA的定位法
-
- 3.1 算法原理
- 3.2 算法性能
- 4 基于TDOA的定位法
-
- 4.1 算法原理
- 4.2 算法性能
- 5 基于AOA的定位法
-
- 5.1 算法原理
- 5.2 算法性能
- 6 总结算法的优缺点
0 定位算法分类
0.1 基于测距和非基于测距的定位算法
- 是通过测量锚节点和未知节点间的值或者计算位置节点的位置。
- ,未知节点的位置是根据网络拓扑结构等信息计算的,而不是通过测量距离和角度值。
- 基于测距的常用定位算法有:基于接收信号强度的测量方法(RSSI)、到达时间测量法(TOA)、到达时差测量法(TDOA)和到达角度测量法(AOA)。
- 非基于测距的常用定位算法有:质心算法、凸规划法、网络多跳路由算法(DV-hop)。
- 由于距离测量,定位精度好,但功耗和成本高;
- 非基于测距的定位算法,相反,其定位成本和功耗小,易于实现,但定位精度差。

0.2 集中式和分布式定位算法
- ,将未知节点的数据传输到节点,集中计算节点,获取每个节点的位置信息,然后将信息发送到协调节点或上位机,以确认网络中的节点位置。
- ,是指在每个节点上分布计算位置信息的功能,根据与其他节点之间的信息交互获得的数据计算位置信息。
-
集中定位算法具有较高的定位精度,可以从全局控制定位算法。由于定位计算集中在一点上,只需将该节点设计为计算能力强、存储量大的节点,即可降低其他节点的成本。但由于无线传感器网络传输距离的限制,其他靠近中心节点的节点需要承担繁重的路由工作,频繁传输信息,增加节点功耗。一旦功耗耗尽,更换电池不方便,整个网络就会瘫痪。
-
分布式定位算法将计算功能分布在每个传感器节点中,降低中心节点的压力和功耗。每个节点自行计算,也提高了计算速度、计算时间和效率。然而,由于每个节点提取的信息可能受到环境的影响,计算结果的准确性低于集中式
-
由于距离测量,定位精度好,但功耗和成本高;
-
非基于测距的定位算法,相反,其定位成本和功耗小,易于实现,但定位精度差。
0.3 绝对相对定位算法
- 指以第三方位置坐标为参考确定位置信息。例如,使用经纬度信息,因为经纬度是一个确定值,并且在世界上有唯一的表示,所以它可以用作定位的标准坐标。
- 以网络中的某个节点为参考节点,以其它节点的位置为坐标。
- 绝对定位的优点是,它在不受节点位置移动影响的情况下,为网络中的节点提供准确的位置信息。
- 相对定位算法的优点是方便灵活,易于实现应用。坐标的位置可以根据自己的需要定义,方便设计师理解。
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
1.2 算法性能
由图可以看出,包围盒定位算法对锚节点的位置摆放有一定的要求: 若,则最后估计值和实际坐标间的距离误差会小很多,定位效果较好; 若,会导致未知节点的实际位置距矩形区域对角线交点过远,误差增大。 实际应用时,可以根据需要多设置几个锚节点,这样可以增加定位的准确性。包围盒定位算法的计算复杂度与锚节点个数成正比,两者为线性关系,所以该算法成本低,理解简单,易于实现,在实际生产中,对定位精度要求不高的情况下用这种方法是很理想的。
2 基于RSSI的定位法
2.1 算法原理
。无线信号在传播过程中,信号强度会随传播距离的增大而减小。根据这一特点,人们对两者之间的关系进行了研究,发现接收信强度和传播距离间有如下关系: 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)即
图中,点 M M M 为未知节点,点 A A A、 B B B、 C C C 为参考节点(锚节点)。点 M M M 的坐标为 ( x , y ) (x, y) (x,y),点 A A A、 B B B、 C C C 的坐标分别为 ( x 1 , y 1 ) (x1,y1)