潘小琴 崔文婷 刘理想 戈婧佼
(1.西南科技大学工程技术中心,四川 绵阳 621010;2.西南科技大学工程技术中心智能机器人创新实践班,四川 绵阳621010)
目前,无线传感器网络技术广泛的应用于目标跟踪、室内定位、智能巡检、医疗监护等领域。由于室内环境无线信道比较复杂,墙壁、地板、人员的遮挡都将引起非视距传输和多径效应等严重问题,这阻碍了室内定位技术的发展。如何提高室内定位的精度是一个非常具有实际意义的问题。
室内定位算法中,根据定位机制的不同,可以分为无需测距(Rang~Free)和基于测距(Rang~Based)两类。常见的无需测距机制有质心法、DV~Hop法、APIT法等,这些算法需要节点部署得十分密集,并且定位精度与锚节点部署的位置有很大的关系[1]。然而室内环境中,无线传感器节点通常按照具体要求进行部署,分布不均匀,节点密度无法得到保证,因此采用测距定位机制比较合适[2]。常见的基于测距机制的方法有:接收信号强度指示、到达时间、到达时间差和到达角度。相比之下,RSSI方法使用RF信号,无需增加额外的测距硬件,设备简单、成本能耗低、节点硬件体积小,因此RSSI方法是室内定位的实际可行的方法。
在实际应用中,RSSI值需要转换为对应的距离,而无线信号受环境影响衰减很大,仅仅依靠多次测量取平均无法得到准确的距离值。据此,本文提出一种划分子区域的动态估计路径损耗模型和测距误差模型的定位算法。
无线传感器网络定位的原理为:通过依靠有限数量的位置坐标已知的无线传感器节点,确定在待定位区域内其他未知传感器节点的位置。考虑到室内定位通信距离短、速率低等特点,采用ZigBee技术搭建无线传感器网络实验平台。
针对室内的特殊结构,采用树型网络拓扑进行覆盖,每个房间是一个单独的定位区域,所有房间之间用中继节点进行连接。有三种设备:网络协调器、中继节点、终端节点。网络协调器负责整个无线网络的建立和维护,与上位机之间采用UART进行通信。中继节点用于协调器和终端节点之间数据的路由。单个房间内全部是终端节点,固定位置的称为锚(anchor)节点、参考节点或者信标(Beacon)节点,其坐标信息已知;坐标信息未知的称为待定位节点、未知节点或者盲节点,需要依靠锚节点来计算自己的位置坐标。
RSSI测距的思想是:已知发射节点信号强度,接收节点根据接收到的信号强度和信号传输的路径损耗模型计算出两个节点之间的距离,最后使用定位算法计算出坐标位置[3]。
在实际情况中,经常使用简化后的Shadowing信道传输损耗模型:
上式中PL(d)为接收机与发射机距离为d时的路径传输损耗,单位为dBm;d0为参考距离;PL0表示参考距离为d0的路径传输损耗;n是路径损耗指数,表征路径损耗随距离增加而增大的快慢程度,与环境有关;S是均值为0的高斯噪声,其标准差Sσ随节点布置环境的不同而不同;
接收节点接收的信号强度为:
其中,Pt表示信号的发射功率,单位为dBm。
参考距离通常取1m,即d0=1,令A=Pt-PL0,对多次测量接收到的信号强度RSSI取平均值,此时S均值为0,故上式化简为:
于是:
由上式可以看出,距离d受RSSI值和环境参数A、n的影响。文献[4]从噪声和干扰着手,对RSSI值进行滤波、筛选处理,这些方法虽然可以提高测距精度,却带来了大量的通信和计算开销。文献[5]从环境因素着手提出精确估计出定位区域内的A和n。然而A、n是与射频电路和无线信号传输环境密切相关的,随着定位节点的移动,n是时变的。实际测试结果显示:由于多径、反射、障碍物阻挡等因素的影响,相同距离对应的RSSI相差很大,也就是不同环境对应的模型参数A、n是不同的,路径损耗模型参数随着环境的改变而改变。
为了减小定位误差,又不增加通信和计算开销,从环境因素着手,提出一种简单有效的改进算法。算法先将定位区域划分为多个子区域,再利用多个锚节点协作通信,动态估计A、n在该子区域内的较为精确的值[6],并且进一步推导出测量距离与实际距离之间的误差模型,以此误差模型来对测试距离进行修正,最后通过定位算法计算未知节点的坐标。
2.2.1 划分子区域的路径损耗模型参数估计
基本思想如图1所示,X为未知节点,假设A、B、C、X两两之间能够互相通信,且A、B、C、为距离X最近的三个不共线锚节点。我们假设△ABC所在区域是一个比较小的范围,可以近似认为在这一区域内路径损耗模型参数A、n是相同的,因此,我们可以利用锚节点来估计出所需要的A、n。
图1 参数估计算法模型
由公式可以计算出A点相对于△ABC区域内的参数值AA、nA:
同理,可以得到B、C点相对△ABC区域的参数值AB、nB和AC、nC。
取整个△ABC区域的环境参数A、n为A、B、C三点所在位置参数的平均值:
2.2.2 测距误差模型修正
由于公式(8)唯一确定A、n,数据具有偶然性,为了进一步提高定位精度,利用三个锚节点信息对测距阶段的距离测量值进行修正。
假设影响锚节点A、B、C与未知节点X通信过程中的测距误差和A、B、C互相通信过程中的误差情况相同,设实际距离与测量距离满足下列线性方程关系[7]:
dij是节点i到它邻居节点j的实际距离,rij是节点i到它邻居节点j的测量距离,△ij是节点i和j之间测距的随机误差。
依照公式(9)列出A、B、C之间的测距误差关系式为:
已知根据RSSI值和环境参数 A、n可以得到 rAC、rBC、rAB, 根据 A、B、C 的坐标可以计算出 dAC、dBC、dAB,利用最小二乘法[8],计算出相应的k与△,从而得到测距误差模型,用此模型来修正未知节点X与锚节点A、B、C之间的距离。
2.2.3 定位流程
改进算法的定位流程如下所示。
1)未知节点广播发出自身信息和定位请求,比较锚节点返回的信号强度值,选取最近的三个锚节点参与定位;
2)选定锚节点,根据公式(4)计算各锚节点的 A、n;根据公式(8)计算出△ABC区域内的环境参数A、n;
3)使用步骤 2)得到的参数计算出 A、B、C 的测量距离 rAB、rBC、rAC;由 ABC 的坐标值计算出 dAC、dBC、dAB;
4)使用最小二乘法,根据公式(10)计算出测距误差模型参数k与△;
5)未知节点周期性的向锚节点发送自身位置信息,计算未知节点到锚节点之间的测量距离rAX、rBX、rCX,用测量误差模型对距离进行修正,得到实际距离 dAX、dBX、dCX;
6)最后,利用三边定位算法,估算未知节点的坐标信息。
通过MATLAB仿真,分析比较路径损耗模型参数采用典型值的算法与本文所提出的改进型算法的定位性能。假设在100m*100m的矩形区域内随机分布200个节点,节点通信半径为20m,实验数据来自100次仿真实验的平均值。
图2给出了两种算法的定位误差与锚节点数的关系。结果显示,随着锚节点所占比例上升,两种算法的定位精度都在提高,在相同条件下,本文提出的改进型算法始终优于原始算法,与传统算法相比提高了8%。这是因为随着锚节点数量的增加,相当于锚节点密度在提高,也就是改进算法的子区域划分得更小,估计出的路径损耗模型参数和测距误差模型参数更加准确,因而定位误差更小。
图2 定位误差和锚节点数的关系
图3 覆盖范围和锚节点数的关系
图3给出了两种算法的覆盖范围和锚节点数的关系。结果显示,随着锚节点数增加两种算法的定位覆盖率均逐渐增加至1,但是改进算法的定位覆盖率范围快速达到了100%。在实际的应用中,改进型算法可以使用更少的锚节点来覆盖整个定位区域,从而可以节约成本。
针对室内环境无线传感器网络节点定位的过程中,存在着使用固定路径损耗模型参数而定位精度不高的问题,提出了一种动态调整路径损耗模型参数A、n并通过测距误差模型进行距离修正的定位算法。经过仿真研究验证了该算法的有效性,在保证相同定位精度的前提下,所需锚节点数目减少,可以大大降低定位成本。同时与传统算法相比,改进算法在相同条件下节点定位精度明显更高,鲁棒性更好。
[1]周祖德,王晟.一种适用于复杂环境的无线传感定位算法研究[J].武汉理工大学学报,2006,28(11):121-124.
[2]武昊然.GPS和无线传感器网络融合定位算法研究[J].计算机仿真,2009,26(11):145-150.
[3]颜嘉俊,雷勇.基于RSSI的无线传感器网络节点定位[J].计算机仿真,2012,29(7):151-154.
[4]程远国,耿伯英.基于高斯混合模型的无线局域网定位算法[J].计算机工程,2009,35(4):25-27.
[5]Caltabiano D,Muscato G,Russo F.Localization and Self-Calibration of a Robot for volcano Exploration[C].Proceedings of the 2004 IEEE ICRA.New O rleans:IEEE Robotics and Automation Society,2004.
[6]李瑶怡,赫晓星,刘守印.基于路径损耗模型参数实时估计的无线定位方法[J].传感技术学报,2010,23(9):1328-1333.
[7]唐琳.无线传感器网络节点自定位算法的研究[D].北京:北京邮电大学,2010.
[8]徐海黎,江金金,朱志松,朱龙彪.基于ZigBee技术的家庭服务机器人定位问题研究[J].制造业自动化,2011,33(19):64-67.