本发明涉及一种nlos环境下基于改进粒子滤波的室内行人定位方法。
背景技术:
现有基于rssi(receivedsignalstrengthindication接收信号强度指示器)的室内定位解决方案有基于指纹识别和基于信道模型两类。第一种方案通过构建指纹库来实现定位,该方法需要在离线阶段构建rssi的综合数据图,需耗费大量的时间和精力,并且在环境改变时需重新进行校准。第二种方案是通过信道损耗模型,根据测量的rssi值估计接收器和发射器之间的距离,然后根据估计算法估计出接收者的位置。
为了提高第二种方案的定位精度,通常将其与惯性导航系统进行融合,现有的解决方案大多采用卡尔曼滤波的方式进行融合,而卡尔曼滤波对非线性系统的滤波效果不明显。并且信号在动态环境中传播时会产生反射、折射等nlos(non-lineofsight非视距)传播方式,使接收到的rssi值与实际值产生偏差,会影响定位精度。
技术实现要素:
本发明所要解决的技术问题是提供一种nlos环境下基于改进粒子滤波的室内行人定位方法,本方法采用对非高斯非线性环境具有更好滤波效果的粒子滤波方式对rssi定位系统与行人航位推算系统进行融合,并使用迭代的方式不断更新路径损耗因子η,使本定位方法在nlos环境下仍能进行准确定位,提高定位精度。
为解决上述技术问题,本发明nlos环境下基于改进粒子滤波的室内行人定位方法包括如下步骤:
步骤一、室内行人定位包含行人携带的移动节点、参考节点以及无线传感器网关,其中移动节点负责与参考节点通信,获取参考节点的rssi值,并将rssi值经网关传输到上位机进行处理,移动节点包含具有三轴加速度计、三轴陀螺仪和三轴磁力计的九轴惯性导航模块,用于行人的航位推算;
步骤二、rssi定位:基于rssi定位理论和测试的传播模型,无论室外或室内信道,平均接收功率随距离的对数衰减,rssi与距离的表达式如下:
p(d)=p(d0)-10ηlog10(d/d0)+xσ(1)
其中,η为路径损耗指数,表明路径损耗随距离增长的速率;d0为近地参考距离;d为发送接收距离;p(d)和p(d0)分别为当距离为d和d0时的接收信号强度,其单位为分贝毫瓦(dbm);xσ为零均值高斯分布随机变量n(0,σ);
步骤三、根据式(1)推导参考节点与移动节点之间的距离d,
其中,路径损耗指数η受周围环境的影响,通常在室外环境中为2~4,而在复杂的室内环境中则在4~6;
步骤四、假设在室内环境中布置有n个参考节点,并将第一个参考节点坐标设为参考点(x1,y1,z1),任意参考节点i(1≤i≤n)到移动节点(x,y,z*)距离的平方用
其中,xi、yi、zi为第i个参考节点的坐标,
根据式(3),当参考节点i≠1时,将其与参考点相减,得到下式:
将式(4)写成以下矩阵的形式:
hx=b(5)
由于移动节点的高度不变,即z*不变,因此式(5)中各符号的具体含义如下:
采用最小二乘法的解可由下列式子求出:
x=(hth)-1htb(8)
其中,符号t表示矩阵h的转置矩阵;
步骤五、惯性导航:利用移动节点的九轴惯性导航模块采集数据,采用步长与步数的乘积获得移动节点的位置,
式中,xt、yt为t时刻移动节点在x和y坐标系下的坐标,xt+1、yt+1为t+1时刻移动节点在x和y坐标系下的坐标,slt为t时刻的步长,θt为t时刻移动节点的航向角;
步骤六、步数检测,采用峰值检测的方式进行步数检测,通常检测的步数大于实际步数,因此定义一个步数检测峰值参数δtn,δtn为峰值之间的时间间隔,如果在δtn内出现多于两个峰值,则将第一个峰值作为行人的一步并作为后续步长估计的加速度值,而忽略其他峰值;
步骤七、步长估计,步长应用如下经验公式进行估计,
sl=k×(amax-amin)(14)(10)
其中,amax和aminamin是在单步中的最大和最小垂直加速度,k是常数并通过步行训练得到;
步骤八、行人航向角通过九轴惯性导航模块的三轴磁力计获得;
步骤九、采用粒子滤波融合rssi定位和惯性导航以得到移动节点的位置,假设已知移动节点的初始状态(x0,y0),将粒子结构设计为
步骤十、将粒子结构代入到式(9)中进行更新,为验证粒子的合理性,需要将各粒子与观测量进行对比,即将各粒子所代表的可能移动节点位置信息与由式(8)求出的观测位置进行比较,越接近观测值的粒子所获得的权重越大,反之则越小,假设由式(8)求出的移动节点位置为(a,b),则粒子的权重如下式:
式中,k为常数,m为足够大的常数,归一化权值为:
步骤十一、确定移动节点位置,根据粒子更新和各粒子的权重,则移动节点的位置根据各粒子的加权和进行求解,即:
从而得到移动节点室内定位的坐标。
进一步,所述步骤六中由于常规移动节点的步频不超过3hz,因此将δtn设定为0.3s。
进一步,所述步骤十中,粒子更新采用重要性重采样方式,忽略权重低的粒子,复制权重高的粒子,且对其中一些粒子的位置信息加入随机量,抑制粒子陷入局部最优,加入随机量的粒子在更新时获得对应的权重。
进一步,所述步骤二中,在rssi定位中,路径损耗指数η随环境改变,无法在动态环境中给予固定值,则采用步骤九粒子滤波融合之后的位置信息以迭代的形式动态更新η;根据式(1)推导出η的更新形式:
其中,d为经过粒子滤波融合之后的移动节点位置(xt,yt)与参考节点的距离,由此求出更新之后的路径损耗指数ηnew,并将其替换式(2)中的η,则由式(8)求出的即为nlos环境下的移动节点位置信息,将该位置信息作为粒子滤波的观测值求出粒子滤波融合之后的移动节点位置,如此循环迭代,得到动态路径损耗指数η。
由于本发明nlos环境下基于改进粒子滤波的室内行人定位方法采用了上述技术方案,即本方法室内定位包含移动节点、参考节点以及无线传感器网关,其中移动节点负责与参考节点通信,获取参考节点的rssi值,并将rssi值经网关传输到上位机进行处理,移动节点包含具有三轴加速度计、三轴陀螺仪和三轴磁力计的九轴惯性导航模块,用于移动节点的航位推算;通过rssi定位估计移动节点的位置,通过惯性导航获取移动节点的方向与加速度信息,估计移动节点的位置,采用粒子滤波融合rssi定位和惯性导航以得到移动节点室内定位的坐标。本方法采用对非高斯非线性环境具有更好滤波效果的粒子滤波方式对信道损耗模型进行融合,使在nlos环境下仍能进行准确定位,提高定位精度。
具体实施方式
本发明nlos环境下基于改进粒子滤波的室内定位行人方法包括如下步骤:
步骤一、室内行人定位包含行人携带的移动节点、参考节点以及无线传感器网关,其中移动节点负责与参考节点通信,获取参考节点的rssi值,并将rssi值经网关传输到上位机进行处理,移动节点包含具有三轴加速度计、三轴陀螺仪和三轴磁力计的九轴惯性导航模块,用于行人的航位推算;
步骤二、rssi定位:基于rssi定位理论和测试的传播模型,无论室外或室内信道,平均接收功率随距离的对数衰减,rssi与距离的表达式如下:
p(d)=p(d0)-10ηlog10(d/d0)+xσ(1)
其中,η为路径损耗指数,表明路径损耗随距离增长的速率;d0为近地参考距离;d为发送接收距离;p(d)和p(d0)分别为当距离为d和d0时的接收信号强度,其单位为分贝毫瓦(dbm);xσ为零均值高斯分布随机变量n(0,σ);
步骤三、根据式(1)推导参考节点与移动节点之间的距离d,
其中,路径损耗指数η受周围环境的影响,通常在室外环境中为2~4,而在复杂的室内环境中则在4~6;因此在利用式(2)估计距离d之前,需要花费很多精力来校准η,且在动态环境中,信道模型不断变化,很难估计准确的η值,因此,如何实时校准η则变得非常重要;
步骤四、假设在室内环境中布置有n个参考节点,并将第一个参考节点的坐标设为参考点(x1,y1,z1),任意参考节点i(1≤i≤n)到移动节点(x,y,z*)距离的平方用
其中,xi、yi、zi为第i个参考节点的坐标,
根据式(3),当参考节点i≠1时,将其与参考点相减,得到下式:
将式(4)写成以下矩阵的形式:
hx=b(5)
由于移动节点的高度不变,即z*不变,因此式(5)中各符号的具体含义如下:
采用最小二乘法的解可由下列式子求出:
x=(hth)-1htb(8)
其中,符号t表示矩阵h的转置矩阵;
步骤五、惯性导航:航迹推算(pedestriandeadreckoning,pdr)算法是一类以惯性传感单元数据为核心的定位算法,其利用三轴加速度计、三轴陀螺仪和三轴磁力计采集数据并进行不断推算来获取运动方向与加速度信息,从而确定具体位置,利用移动节点的三轴加速度计、三轴陀螺仪与三轴磁力计采集数据,采用步长与步数的乘积获得移动节点的位置,
式中,xt、yt为t时刻移动节点在x和y坐标系下的坐标,xt+1、yt+1为t+1时刻移动节点在x和y坐标系下的坐标,slt为t时刻的步长,θt为t时刻移动节点的航向角;式(9)主要需要解决三个问题:步数检测、步长估算和航向角;
步骤六、步数检测,采用峰值检测的方式进行步数检测,通常检测的步数大于实际步数,因此定义一个步数检测峰值参数δtn,δtn为峰值之间的时间间隔,如果在δtn内出现多于两个峰值,则将第一个峰值作为行人的一步并作为后续步长估计的加速度值,而忽略其他峰值;
步骤七、步长估计,步长应用如下经验公式进行估计,
sl=k×(amax-amin)(14)(10)
其中,amax和aminamin是在单步中的最大和最小垂直加速度,k是常数并通过步行训练得到;
步骤八、行人航向角通过九轴惯性导航模块的三轴磁力计获得;
步骤九、由于惯性导航包含加速度信息,为强非线性系统,而粒子滤波对于非线性非高斯环境具有很好的滤波效果,因此采用粒子滤波融合rssi定位和惯性导航以得到移动节点的位置,假设已知移动节点的初始状态(x0,y0),将粒子结构设计为
步骤十、将粒子结构代入到式(9)中进行更新,为验证粒子的合理性,需要将各粒子与观测量进行对比,即将各粒子所代表的可能移动节点位置信息与由式(8)求出的观测位置进行比较,越接近观测值的粒子所获得的权重越大,反之则越小,假设由式(8)求出的移动节点位置为(a,b),则粒子的权重如下式:
式中,k为常数,m为足够大的常数,归一化权值为:
步骤十一、确定移动节点位置,根据粒子更新和各粒子的权重,则移动节点的位置根据各粒子的加权和进行求解,即:
从而得到移动节点室内定位的坐标。
优选的,所述步骤六中由于常规移动节点的步频不超过3hz,因此将δtn设定为0.3s。
优选的,传统的粒子滤波采用序贯重要性采样,该方式会产生粒子的退化,为了避免这种情况,所述步骤十中,粒子更新采用重要性重采样方式,忽略权重低的粒子,复制权重高的粒子,且对其中一些粒子的位置信息加入随机量,抑制粒子陷入局部最优,加入随机量的粒子在更新时获得对应的权重。重采样的方式会出现一种极限情况,即粒子集中只包含一种粒子及其复制,引起严重的粒子耗尽问题,通过对其中一些粒子的位置信息加入随机量,这样就可以抑制粒子陷入局部最优,并且加入随机量的粒子会在更新时获得对应的权重,从而不会对定位结果造成较大的影响。
优选的,所述步骤二中,在rssi定位中,路径损耗指数η随环境改变,无法在动态环境中给予固定值,则采用步骤九粒子滤波融合之后的位置信息以迭代的形式动态更新η;根据式(1)推导出η的更新形式:
其中,d为经过粒子滤波融合之后的移动节点位置(xt,yt)与参考节点的距离,由此求出更新之后的路径损耗指数ηnew,并将其替换式(2)中的η,则由式(8)求出的即为nlos环境下的移动节点位置信息,将该位置信息作为粒子滤波的观测值求出粒子滤波融合之后的移动节点位置,如此循环迭代,得到动态路径损耗指数η。
本方法中,移动节点和参考节点可采用ti公司生产的具有无线通信功能的cc2530模块,惯性导航模块为mpu9050复合芯片,移动节点放在行人脚部,通过融合rssi定位系统与惯性导航系统可获得行人在室内的位置信息。本方法采用对非高斯非线性环境具有更好滤波效果的粒子滤波的方式对rssi定位和惯性导航系统进行融合,使获得的定位信息更加准确。由于rssi信号在动态环境中传播时会产生反射、折射等非视距(nlos)传播方式,使接收到的rssi值与实际值产生偏差,进而影响定位精度,本发明对此进行了处理,使在nlos环境下仍能进行准确定位。