目前应用于传感器网络节点定位的技术主要有基于测距和无需测距定位技术。前者尽管精度较高,但大都需要额外地增加硬件开销,不适用于常规传感器网络的应用场景;而无需测距定位技术在不需要复杂硬件设备的情况下能提供足够的定位精度,不需知道未知节点到锚节点的距离,在成本和功耗方面具有显著优势。
无需测距的定位技术:
1.质心算法
多边形的几何中心称为质心,多边形顶点坐标的平均值就是质心节点的坐标。
原理:质心定位算法首先确定包含未知节点的区域,计算这个区域的质心,并将其作为未知节点的位置。
具体过程:信标节点周期性向临近节点广播信标分组,信标分组中包含信标节点的标识号和位置信息,当未知节点接收到来自不同信标节点的信标分组数量超过某一个门限k或接收一定时间后,就确定自身位置为这些信标节点所组成的多边形的质心。
评价:简单:基于网络连通性,不需要信标节点和未知节点协调;
只能实现粗粒度定位,需要较高的锚节点密度;
2.距离向量-跳段(DV-Hop)定位算法
原理: 计算未知节点与信标节点的最小跳数,估算每跳的距离,利用最小跳数乘以平均每跳距离,得到未知节点与信标节点之间的估计距离,作为一个校正值广播至网络中,利用三边测量法或极大似然估计法计算未知节点的坐标。
DV-Hop算法的定位过程:
·计算未知节点与每个信标节点的最小跳数
信标节点向邻居节点广播自身位置信息的分组,其中包括跳数字段,初始化为0;
接收节点记录具有到每个信标节点的最小跳数,忽略来自同一个信标节点的较大跳数的分组,然后将跳数值加1并转发给邻居节点;
网络中所有节点能够记录下到每个信标节点最小跳数。
·计算未知节点与信标节点的实际跳段距离
每个信标节点根据记录的其他信标节点的位置信息和相距跳数,估算平均每跳的实际距离;
信标节点将计算的每跳平均距离用带有生存期字段的分组广播至网络中,未知节点仅记录接收到的第一个每跳平均距离,并转发给邻居节点;
未知节点接收到平均每跳距离后,根据记录的跳数,计算到每个信标节点的跳段距离;
·利用三边测量法或极大似然估计法计算未知节点的坐标
3.不定形(Amorphous)定位算法
原理:在不定形计算机上实现,不定形计算机是一种并行计算结构,和智能群(蚁群、鸟群、粒子群等)很相似。是对DV-Hop算法的增强,引入了多参考点测量进行估计求精的步骤。
两个重要的参数修正:
1.不定形算法通过平滑修正节点到参考节点的梯度跳数
2.采用通信半径作为每跳距离,使得节点到参考节点的最终估计距离偏大。不定形算法采用下面的公式来修正每跳距离:?
4.近似三角形内点测试(APIT)算法
原理:找到若干个由参考节点构成的三角形,则节点必然在这些三角形的交集内。使用这个交集的重心估计节点的位置。
过程:未知节点收集其临近信标节点的位置信息,从中以不同的组合方式任意选取3个节点,确定个不同三角形,逐一测试未知节点是否位于三角形内部,直到达到定位所需精度。