您现在的位置: 首页 >> 技术支持 >> 基于RSSI测距的定位算法的实现
基于RSSI测距的定位算法的实现
搭建了基于ZigBee技术的室内定位实验平台,以实验室楼道为室内场景进行了接收信号强度(RSSI)测距和定位实验研究。首先对测距实验采集到的数据使用线性回归分析拟合出当前环境的具体测距模型,并对信标和未知节点进行软件开发,实现了基于RSSI的定位算法。经过定位实验精度评估,文中算法的平均定位误差为2.3 m,满足大多室内场景要求。
随着现代通信、网络、全球定位系统(Global PositionSystem,GPS)、普适计算、分布式信息处理等技术的迅速发展,位置感知计算和基于位置的服务(LOCation Based SetvICes,LBS)在实际应用中越来越重要。GPS是目前应用最广泛和成功的定位技术。由于微波易被浓密树林、建筑物、金属遮盖物等吸收,因此GPS只适合在户外使用,在室内场合,由于信道环境复杂、微波信号衰减厉害、测量误差大,GPS并不适用。近年来基于低成本、低功耗、白组织的无线传感器网络(Wireless Sensor Network,WSN)定位技术得到了科研人员的重视和研究,具有广泛地应用前景。根据定位过程中是否实际测量节点间的距离,可将定位算法分为基于测距(Range-based)的定位和距离无关(range-free)的定位。基于测距的定位先由未知节点硬件接收外部信标节点发射的无线信号并记录下TOA(Time of Arrival)、AOA(Angle of Arrival)、TDOA(Time Difference of Arrival)、RSSI(Received Signal strength InDICator)等测距度量值,然后将测距度量值转为未知节点到信标节点的距离或方位,然后再采用相关算法如三边测量法、三角测量法、极大似然估计法等来计算未知节点的位置。由于RSSI检测设备和机制简单,硬件成本低,实现简单,可通过多次测量平均获得较准确的信号强度值,降低多径和遮蔽效应影响,因此基于RSSI测距的定位技术成为近年来室内定位研究的热点。
1 RSSI测距原理
无线信号传输中普遍采用的理论模型为渐变模型(Shadowing Model)。
式中,p(d)表示距离发射机为d时接收端接收到的信号强度,即RSSI值;p(d0)表示距离发射机为d0时接收端接收到的信号功率;d0为参考距离;n是路径损耗(Pass Loss)指数,通常是由实际测量得到,障碍物越多,n值越大,从而接收到的平均能量下降的速度会随着距离的增加而变得越来越快:X是一个以dBm为单位,平均值为0的高斯随机变量,反映了当距离一定时,接收到的能量的变化。
实际应用中一般采用简化的渐变模型
为便于表达和计算,通常取d0为1 m。于是可得
[p(d)]dBm=A-10nlg(d) (3)
把[p(d)dBm写成RSSI的形式得到
RSSI=A-10nlg(d) (4)
其中,A为无线收发节点相距1 m时接收节点接收到的无线信号强度RSSI值。式(4)就是RSSI测距的经典模型,给出了RSSI和d的函数关系,所以已知接收机接收到的RSSI值就可以算出它和发射机之间的距离。A和n都是经验值,和具体使用的硬件节点和无线信号传播的环境密切相关,因此在不同的实际环境下A和n参数不同,其测距模型不同。
2 RSSI测距定位算法
基于RSSI测距的定位算法流程如图1所示。
节点定位采用极大似然估汁算法。已知n个信标节点的坐标分别为(x1,y1),(x2,y2),…,(xn,yn),未知节点坐标为(x,y),算法具体步骤如下:
(1)信标节点周期性向未知节点发送包含自身ID和自身位置信息的数据包。
(2)未知节点在收到同一ID信标节点发来的数据包后,从中提取出收到陔帧数据的信号强度值RSSI,当收到某个ID信标节点发来的数据包超过一定阈值(实验设置为100)后,对这100个RSSI值求平均值,得到最终的该ID信标节点的RSSI值,然后使用RSSI测距公式RSSI=A-10nlg(d)导出距离d,这样就得到了未知节点和某ID信标节点的距离。对所有信标节点都采用这种方法进行处理,得到n个距离d1,d2,…,dn。最后未知节点记录下所有信标节点的坐标和对应的距离数据。
(3)建立信标节点与未知节点距离方程组
该方程为非线性方程组,用方程组中前n-1个方程减去第n个方程后,得到线性化的方程
AX=b (6)
其中
式(7)便是未知节点的坐标计算值。
3 RSSI测距实验和定位实验
由图1可以看出基于RSSI测距的定位算法需要根据式(4)将测距度量值RSSI转为未知节点到信标节点的距离后,才能进行定位计算,因此必须先确定式(4)中的A和n参数的值,从而建立准确的室内测距模型。测距模型的精确度在较大程度上会影响后续定位计算的精度。一般室内无线环境复杂,存在多径效应与非视距传输,一个确定的信号传播模型无法适应不同的室内环境,因此为了得到较为准确的RSSI和d距离之间的映射关系,提高定位计算精度,要针对需要定位室内环境,实地进行RSSI测距实验并采集大量数据,之后对实验数据进行处理从而得到A和n的最优值,建立符合当前环境的测距模型。一旦环境改变,需要通过重新测距实验来确定测距模型。
3.1 RSSI测距实验
选择实验室楼道作为室内定位技术研究实验场景,所以RSSI测距实验也在实验室楼道进行。定位和测距实验平台选择西安华凡公司HFZ-CC2430ZDKZigBee开发套件。在两个HFZ-Smart-RF04EB母板上插入HFZ-CC2430EM射频模块作为发射机和接收机节点。两个节点的核心芯片为TI公司的CC2430无线单片机。CC2430芯片支持RSSI监测功能,在接收到的每帧数据中都有相应的字段指示了接收机收到该数据包的信号强度值RSSI。该值可以通过编程读出。
在楼道中央处选择一个固定位置放置好发射机节点,发射机的输出功率编程设置为0 dBm。发射机固定后,对接收机进行编程,以20 cm为间隔,在距离发射机20 m的范围内设置100个测量点,即距离发射机0.2 m,0.4 m,…,20 m等位置。对接收节点编程,设置一个RSSI值缓存区存储接收到的数据包的RSSI值,在每个测试点接收100个数据包后,对100个RSSI值求平均值,再以平均后的RSSI值作为接收节点在该位置收到的信号强度。最后记录RSSI和d的对应关系,这样就得到了100组测量数据(RSSIi,di),i=1,2,3,…,100,其中RSSI,表示距离为di时的RSSI测量值。将采集到的数据在二维坐标系中描出,如图1所示。从图中可以看出RSSI随着d的增加呈下降趋势,在12 m以内曲线下降比较陡,超过12 m后,有一定程度的回升,并且下降趋于平缓。
3.2 测距模型参数优化
为使模型能够最大程度符合当前实验室楼道环境中的无线信号传播特性,使RSSI测距能获得更高的精度,需要对参数A和n进行优化,得到当前室内环境下的最优值。一般通过线性回归分析来估计参数A和n的值,因为RSSI值在超过14 m以后基本趋于平缓,不再符合接收信号强度随着距离增大而衰减的规律。所以为保证测距精度,对在实验室走廊所采集的前70组测量数据,即14 m以内的测量数据(RSSIi,di),i=1,2,3,…,70使用线性回归分析,代入式(8)~式(12),得出A=-42,n=2。这样就得到了实验室楼道环境下的测距模型RSSI=-42-20lg(d)。图2所示为参数优化后的RSSI测距模型曲线,根据线性回归分析可以较好地拟合出适应当前实验环境的模型曲线。
3.3 定位实验
定位实验选取实验室走廊为实验场景,选择14 m×2 m的实验场地作为定位区域,建立坐标系,其中走廊长的方向为x轴,宽的方向为y轴。未知节点和信标节点都采用HFZ-CC2430EM ZigBee模块。在实验环境中布置8个信标节点,位置分别定义为(0,0),(0,2),(5,0),(4,2),(9,0),(10,2),(14,0),(14,2)如图3所示。在定位区域内选择8个坐标已知的定位测试点,将未知节点放在测试点进行定位,对信标节点和未知节点进行软件开发,记录实验数据如表1所示。
设未知节点的实际位置为(x,y),通过定位算法计算出的位置为(xe,ye),定义定位误差为
从表中数据可以看出,文中定位算法的定位误差基本都在3 m之内,平均误差为2.3 m,最大定位误差为3.4 m,定位效果如图4所示。考虑到室内定位应用的实际需求主要是对人员和物品进行定位,文中算法2.3 m的平均定位误差可以满足写字楼、图书馆、矿井隧道、货品仓库等一般室内场景的人员或物品定位需求。另外由定位算法推导计算过程中的式(5)可以看出增加信标节点数目会增加约束方程的个数,从而会使定位计算更加准确,但是由于定位算法是基于RSSI测距的,而RSSI测距引入的误差不可避免,即式(5)右边的距离都不是信标节点和未知节点的真实距离,所以式(5)无解,只能求出最小二乘解,因此文中所用的极大似然估计算法只能求出未知节点坐标的近似估计值,不可能消除定位误差。所以在实际应用中应该综合考虑系统成本和具体定位精度要求,适当设置信标节点个数。
4 结束语
对RSSI测距的原理进行了分析,建立了经典测距模型,在对室内测距实验采集到的数据使用线性回归分析后,得到了当前实验场景的最优测距模型。实现了基于RSSI测距的定位算法,经过定位实验验证了算法的可行性,平均定位误差为2.3 m,满足大多室内定位实际要求。