基于ZigBee的三边测量算法误差研究及改进
2012-11-24傅成华
徐 林,傅成华
(四川理工学院,四川 自贡 643000)
ZigBee技术以独特的低成本、低功耗、低速率的特点,而拥有其他无线通信技术所无可比拟的优势。同时在其成本变化不大的情况下,增加硬件定位引擎,仅消耗极小的硬件资源,利用原有网络条件就能实现无线定位,进一步拓展了ZigBee技术的应用。基于到达时间(TOA)、到达时间差(ODOA)、到达角度(AOA)、接收信号强度(RSSI)的定位机制都适用于IEEE802.15.4网络[1]。而基于RSSI的定位机制更符合ZigBee技术低成本的特点,并能满足大部分低精确度定位的要求。
1 三边测量定位
1.1 原始定位方法
图1是一个理想的定位场景,节点1、2、3为已知坐标的锚节点,节点4为需定位的盲节点。定位方法是将由 RSSI值换算而来的 r1、r2、r3值,及锚节点坐标代入矩阵式(1),求解盲节点坐标值(x,y)。
图1 三边测量定位
实际环境中,式(1)右式不可能全为0,因此定义误差向量 E=[e12e22e32]T,如式(2)所示构建方程:
采用经典优化方法求解目标,找到一坐标对(x,y)使e2为最小。当增加锚节点数量,并按式(2)求解时,在一些应用场合中,可提高定位精度[2]。
有研究表明,基于RSSI进行定位时,传输距离越近,功率衰减快;而传输距离越远,衰减越慢。因此传输距离越近,定位越准确;传输距离越远,定位误差越大[3]。
1.2 节点安装高度差产生的误差分析
上述定位方法用于二维定位时忽略了各节点安装高度。如图2所示,考虑在立体空间中的定位情况。盲节点 5需锚节点 1、2、3、4为之定位。
图2 空间定位情况
求解式(3)获得定位点坐标(x,y,z)。
当坐标点(a,b,c)满足式(4)时,有:
显然若使式(1)与式(4)的 x、y 值同解,当且仅当z1=z2=z3=c。由此利用式(1)进行定位计算时,若锚节点安装高度均与盲节点高度相等,则安装高度不会产生xy平面上的定位误差。但在实际应用中,因现场情况限制,锚节点往往安装位置较高,而盲节点手持或安装于移动物体上,因此锚节点与盲节点不可能安装在同一水平面上。此时,式(1)、式(4)有不同解,这将在理论上产生定位误差。
在一定值场景中,如图2中4个锚节点安装高度为3 m,各锚节点在xy轴的投影点组成一边长为8 m的正方形。x轴和y轴均以2 m的步长取计算点,求解式(3)时,采用有约束非线性规划法,求得锚节点与盲节点的高差分别为2 m和3 m时的理论误差分布,如图3所示。由图可知,高差越大,各点误差值普遍增大,这对小空间内的定位准确度造成较大影响。
图3 误差分布图
1.3 算法改进
前述算法出现误差的根本原因在于定位计算时忽略了高差因素δh,CC2431的定位引擎输入参数不包括节点安装高度[4]。但考虑到δh对于二维定位,如得到各锚节点到盲节点的投影距离,仅需在xy平面上进行计算。根据式(3)消去z轴的影响因素。改造式(2)为:
采用有约束非线性规划法求解定位点时,由安装高度不同造成的理论误差近似为零。且同样适用于各锚节点安装高度不一致情况下的二维定位。
CC2431采用硬件定位引擎进行定位运算,无法对定位引擎内部算法进行调整。为实现前述改进算法,可对盲节点接收的 RSSI(实测值)进行处理,修正为对应于 xy投影面的 RSSI(修正值),再输入到定位引擎参与计算。考虑到定位引擎能识别的RSSI值最小分辨率为0.5 dBm,因此当修正值大于等于实测值0.5 dBm时,才予以修正。由测距模型[5]得到修正条件式(7):
建立 RSSI(实测值)和 RSSI(修正值)函数关系如下:
式中d为实际距离;δh为高度差;r为投影距离。
为减少CC2431在进行RSSI值修正时的系统开销,预先代入 A、n、δh值等常数逐点计算式(8),得到修正值。盲节点进行修正值计算时,如修正点较少时可采用查表法计算,当各锚节点安装高度不同或修正点较多时则采用多项式拟合法计算。
2 实验对比
本实验场景为长宽为8 m×8 m,净高为3.2 m的室内空间,分别在4个墙角安装锚节点CC2430,安装高度为2.8 m。手持盲节点CC2431距地约0.8 m。以1 m为步长,总计测量81个点位接收到4个RSSI值。由式(7)、式(8)得到修正表,见表 1。 修正表仅占用 58 B的存储空间,本次实验采用查表法进行修正。
表1 RSSI值修正表
为对改进前后的效果进行比较,每次定点测量都连续启动定位引擎两次,并分别输入 RSSI(实测值)和 RSSI(修正值),将两次得到的定位坐标送至PC,经Matlab处理后,得到改进后与改进前误差的差值表,如表2所示。
由表2可见,改进算法提高了散布在锚节点附近位置的定位精度,对远离锚节点的位置因不满足修正条件,则保持了原算法所得到的定位坐标。较好地解决了要求传输距离尽可能近与近距离时安装高差将产生较大误差之间的矛盾。
本文分析了基于ZigBee的三边测量定位算法在二维定位上,因节点安装高度差产生定位误差的本质原因,并通过Matlab实现了不同高差下理论误差的对比。提出了抑制该误差的RSSI修正值方法。最后通过实测对提出的方法进行了验证,体现出RSSI修正值法的有效性。
表2 改进后与改进前的误差差值表 (m)
[1]高守玮,吴灿阳.ZigBee技术实践教程[M].北京:北京航空航天大学出版社,2009.
[2]FARAHANI S.ZigBee wirleless networks and transceivers[M].USA: Newnes,2008.
[3]孙佩刚,赵海,罗玎玎,等.智能空间中 RSSI定位问题研究[J],电子学报,2007,35(7):1242-1243.
[4]Chipcon Inc.CC2431 Datasheet[S].2006.5-9.
[5]王静,张会清.基于ZigBee的无线网络定位技术的研究与实现[J],传感器与微系统,2010,29(2):15-16.