基金项目:国家自然科学基金(61603295); 陕西省自然科学基础研究计划(2018JM6003)
通信作者:邵小强(1976-),男,陕西商州人,博士,副教授,E-mail:shaoxq@xust.edu.cn
(College of Communication and Information Engineering,Xi'an University of Science and Technology,Xi'an 710054,China)
indoor personnel positioning; RSSI; Kalman filtering; six o'clock position
RSSI定位技术的室内定位算法中,由于室内环境的复杂性及人员的随机性等因素可能会带有噪声影响,所以需要加以抑制。本次设计的室内定位算法首先根据室内特殊环境设计出定位算法流程图,建立算法模型并用卡尔曼滤波算法来抑制环境中噪声因素所引起的误差,然后结合改进的RSSI算法实现室内移动人员的定位,使得定位的结果更接近于真实值。重点研究将卡尔曼滤波算法与改进的RSSI算法相结合估算出更精确的室内人员位置信息。通过实验表明,结合卡尔曼滤波改进的室内人员定位算法的定位精确度有明显的提升,误差相比于文献9所提出的定位算法有所降低。
Due to the complexity of the indoor environment and the randomness of personnel,there may be noise effects in the indoor positioning algorithm based on RSSI positioning technology,so it needs to be suppressed.In this design,the indoor positioning algorithm firstly designs the positioning algorithm flow chart according to the special environment of the room,establishes the algorithm model and uses the Kalman filter algorithm to suppress the error caused by the noise factor in the environment,and then combines the improved RSSI algorithm to realize the positioning of indoor mobile personnel,which makes the result of the positioning closer to the true value.This paper focuses on the estimation of more accurate indoor position information by combining the Kalman filter algorithm with the improved RSSI algorithm.Experiments show that the positioning accuracy of the improved indoor personnel positioning algorithm combined with Kalman filtering is significantly improved,and the error is reduced compared with the positioning algorithm proposed in literature 9.
随着现代社会无线传感网络技术的发展,室外定位技术发展的越来越完善,如GPS定位技术及我国的北斗导航定位技术都已经能精确的定位,且定位精度也越来越高[1]。但是室内定位技术的发展却不是很完善,尤其是在室内狭小空间内,定位精度更是粗略[2]。现在室内定位技术主要用的是蓝牙、WiFi,UWB及ZigBee室内定位技术,但是仅仅用这室内定位技术在不改进定位算法的情况下,定位精度不高,误差大,而且成本也很大[3]。针对这种情况设计出室内定位精确度高、成本较低的室内定位技术就显得格外重要了。通过研究大量文献得出,在上述的4种无线传感网络技术中,蓝牙定位比较便宜但是定位精度不高,且受外界因素的影响很大。UWB定位技术定位精度最高[4-5],但是需要的硬件价格昂贵,且需要的定位算法大致都是测时间差的定位算法,这样就对定位技术的硬件提高了,也就是说该技术是以高代价来提高定位精度[6]。WiFi室内定位技术,定位精度比较高,传输距离较远,用在室内定位中比较合适,但是功耗比较高[7]。ZigBee定位技术具有传输距离远、功耗低、最主要的是它具有自组网功能,能够自动的寻找离自己最近的节点[8],并且只需要2节5号电池就可工作半年左右,所以本次使用的无线传感网络技术为ZigBee室内定位技术。而要提高定位精度必须要改进定位算法,让定位算法决定室内定位的误差,所以文中通过改进一种定位算法与ZigBee室内定位技术相结合,这样既可以提高定位精度,且成本低。如今室内定位技术的应用在当今这个社会也是极为有用的。如:将室内定位技术应用到到煤矿井下作业人员位置坐标的确定[9]。这样既可以跟踪人员移动位置也可以确切定位,而且在矿难发生后救援队解救困在井下工作人员时可以利用该种定位技术获取被困人员的精确位置坐标[10],可以节省搜救的时间也能减少死亡率,因为在这种环境下多一点定位精度就能少一分危险系数。
RSSI测距的方式是以接收端接收到的无线信号的强度来计算收发节点之间的距离[11]。目前包括 Wifi,Zig Bee在内的很多无线传输模块都支持RSSI值的测量,本次设计采用Zig Bee无线传输模块作为RSSI值的测量模块[12]。该方法的优点是距离越近RSSI的值越大。计算的距离就越接近真实值[13],在实际测量过程中因为考虑到有环境、等诸多因素的影响所以其测距模型可以简写为
RSSI=-10nlgd-A (1)
上式就是RSSI精简版测距模型,得到了RSSI和d关系式,因此得知接收端接收到的RSSI值就可以根据上式计算出2点之间的距离[14]。
RSSI测距定位的重点是检测信号强度,通过信号强度(RSSI)与距离(d)之间的公式可以计算出未知节点与目标节点之间的距离,但是RSSI信号强度容易受到干扰信号的影响,所以要将这些干扰信号除去[17]才能满足对定位精度的要求。经过对滤波算法的对比分析最终选择卡尔曼滤波[18]方式来去除干扰信号带来的误差以达到提高定位精度的目的。
首先是根据定位信息建立定位系统的状态方程如下所示
X(k+1)=AX(k)+W(k)(2)
S(k)=cX(k)+V(k)(3)
式中 状态向量X(k)为待优化的人员位置信息X(k)=[xk,yk,zk,Vxk,Vyk,Vzk]T,xk,yk,zk和Vxk,Vyk,zzk分别为 k 时刻室内人员在坐标系中3个方向的位移和速度估计值; A为系统矩阵; 向量S(k)为监测的人员位置信息,S(k)=[sxk,syk,szk]T,sxk,syk,szk为 k 时刻待测人员的位移的检测值; C为输出矩阵; W(k)和V(k)分别为状态噪声和检测时的噪声,且满足E[W(k)]=E[V(k)]=0,即W(k)和V(k)是相互独立的且均值为0的高斯白噪声[19]。
状态向量的初始值X(0)的统计特性给定为
E[X(0)]=μ0
Var[X(0)]=E[[X(0)-μ0][X(0)-μ0]T]=P0
卡尔曼滤波器计算分为
卡尔曼滤波器方程的预测过程
X(k|k-1))=A(^overX)(k-1|k-1)(4)
P(k|k-1))=AP(k-1|k-1)AT+Q(5)
卡尔曼滤波器方程的校正过程
K(k)=P(k|k-1)CT[CP(k|k-1)CT+R]-1(6)
(^overX)(k|k)=X(k-1|k-1)+Kk(S(k)-C(^overX)(k|k-1))(7)
P(k|k)=[I-K(k)C]P(k|k-1)(8)
用户位置移动的三维模型为
[xk
yk
zk
Vxk
Vyk
Vzk]=[1 0 0 0.1 0 0
0 1 0 0 0.1 0
0 0 1 0 0 0.1
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1][xk-1
yk-1
zk-1
Vxk-1
Vyk-1
Vzk-1]+[wxk
wyk
wzk
wVxk-1
wVyk-1
wVzk-1](9)
[sxk
syk
syk]=[1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0][xk
yk
zk
Vxk
Vyk
Vzk]+[vxk
vyk
vzk](10)
初值的选取
X(0)=0,
P(0|0)=[20 0 0 0 0 0
0 20 0 0 0 0
0 0 20 0 0 0
0 0 0 20 0 0
0 0 0 0 20 0
0 0 0 0 0 20]
4 改进算法模型建立
通过对几何质心定位算法[20]与RSSI测距算法的研究,发现几何质心定位可以缩小定位区域,而RSSI测距算法在小区域内定位精度较高。所以结合几何质心定位和RSSI测距模型[13]的优点设计出新的算法。该新算法的思想是首先利用几何质心定位算法将要定位的位置限制在比较小的范围内[21-22],再通过卡尔曼滤波算法[23-25]进行优化处理,然后结合RSSI的测距方法计算出距离值。其测试方式如图2所示。
设各已知位置A,B,C,D,E,F节点的坐标为(xi,yi),i为1,2,3,4,5,6.而各点的坐标值可通过质心定位算法的方式求得,设目标节点O坐标为(x,y),O点到各固定节点的距离分别为d1,d2,d3,d4,d5,d6且这些距离是通过RSSI测距方式测得,通过两点间的距离公式可建立以下方程组
{(x-x1)2+(y-y1)2=d21
(x-x2)2+(y-y2)2=d22
(x-x3)2+(y-y3)2=d23
(x-x4)2+(y-y4)2=d24
(x-x5)2+(y-y5)2=d25
(x-x6)2+(y-y6)2=d26(11)
从第1个方程起依次减去最后一个方程式得
{x21-x26-2(x1-x6)x+y21-y26-2(y1-y6)y=d21-d26
x22-x26-2(x2-x6)x+y22-y26-2(y2-y6)y=d22-d26
x23-x26-2(x3-x6)x+y23-y26-2(y3-y6)y=d23-d26
x24-x26-2(x4-x6)x+y24-y26-2(y4-y6)y=d24-d26
x25-x26-2(x5-x6)x+y25-y26-2(y5-y6)y=d25-d26
x26-x26-2(x6-x6)x+y26-y26-2(y6-y6)y=d26-d26(12)
改写为线性方程组为
Az=b(13)
式中
A=[2(x1-x6)2(y1-y6)
2(x2-x6)2(y2-y6)
2(x3-x6)2(y3-y6)
2(x4-x6)2(y4-y6)
2(x5-x6)2(y5-y6)]
b=[x21-x26+y21-y26+d26-d21
x22-x26+y22-y26+d26-d22
x23-x26+y23-y26+d26-d23
x24-x26+y24-y26+d26-d24
x25-x26+y25-y26+d26-d25]
z=[x
y]
由于测量过程中存在误差系数,所以结合最小二乘法原理可得
Q(z)=‖b-Az‖2(14)
式(14)对z求导得
(dQ(z))/(dz)=2ATAz-2ATb(15)
如果AAT不为零,则
z=(ATA)-1ATb(16)
根据式(16)可求出定位点O的坐标(x,y)。
根据建立的模型进行仿真设计。图3为节点分布图,选取了300个节点,其中有60个已知坐标节点(以后称为锚节点),红色*表示锚节点,蓝色○表示未知节点。图4为邻居关系图其中红色○表示未知节点通信半径:锚节点的通信半径75 m:蓝色线为未知节点与已知节点的连通路径,网络的平均连通度为:30.306 7,网络的邻居锚节点平均数目为:6.22.图5为定位误差图。蓝色○表示未知节点的估计位置,黑色○表示不能被定位的未知节点,蓝色-表示未知节点的定位误差(连接未知节点的估计位置和真实位置)最后定位结果分析得出,一共300个节点:60个锚节点,240个未知节点,0个不能被定位。定位误差d误差=d实测-d计算=表示未知节点。图4为邻居关系图其中红色○表示未知节点通信半径:锚节点的通信半径75 m:蓝色线为未知节点与已知节点的连通路径,网络的平均连通度为:30.306 7,网络的邻居锚节点平均数目为:6.22.图5为定位误差图。蓝色○表示未知节点的估计位置,黑色○表示不能被定位的未知节点,蓝色-表示未知节点的定位误差(连接未知节点的估计位置和真实位置)最后定位结果分析得出,一共300个节点:60个锚节点,240个未知节点,0个不能被定位。定位误差56 m.图6为滤波后的定位误差图,滤波后的定位误差为1.200 m.
图7是二维情况下,算法没有改进也没有滤波时的室内人员移动的位置信息轨迹图(绿线所示)与经过改进算法后加入滤波的室内人员位置轨迹图(红线所示)的对比。由此对比分析可以得出此种改进算法的优势在与精度大大提高,而且也越接近真实值。
1)通过对改进定位算法的仿真分析可得,改进后的定位算法的定位精度有所提高,定位误差大致可以控制在1.2 m以内。
2)改进的定位算法主要是以室内环境为对象进行研究分析,环境参数是选取室内环境参数,当获取到井下环境参数或者道路隧道的环境参数时,也可以将改进后的定位算法应用到井下或者隧道中的人员以及车辆的实时定位。因此应用范围比较广,有较强的实用性。