一种基于滑动窗口的指纹法与传感器融合的室内定位方法与流程

文档序号:11944494阅读:302来源:国知局
一种基于滑动窗口的指纹法与传感器融合的室内定位方法与流程
本发明属于无线通信、模式识别、室内定位追踪领域,具体涉及一种基于滑动窗口的指纹法与传感器融合的室内定位方法。
背景技术
:随着无线通信、计算机和感知技术的发展,普适计算实现了物理世界和信息空间的融合,为人们提供广泛的计算和信息服务。由于大多数服务都是基于位置的服务(LocationBasedServices,LBS),普适计算中的位置感知变得尤为重要。科技的进步和社会的发展使得人们对于位置、兴趣点定位和导航的关注程度日益提高,普适计算中基于位置的服务已经成为非常有前景的业务。它能够广泛支持需要动态位置信息的应用,为诸如信息查询服务、交通管理、医疗救护、道路辅助与导航等提供较精确的位置信息,因此为用户提供LBS有着巨大的市场规模和良好的商业前景。位置感知服务不仅仅局限在交通监测与管理、移动蜂窝网系统的设计、紧急救援等领域,人们在日常生活中对位置感知服务的需求也日益增多,比如:地下停车场、矿井的实时监测、候车室、仓储、图书馆等大型复杂场景。人类80%活动时间处于室内环境,在室内的定位需求比在室外环境要多。目前,已经有多种技术和方法被用于室内定位。其中,基于位置指纹的WiFi室内定位系统具有建设成本低、分布广、精度高等优势。它不需要另外部署网络环境和安装额外的设备,直接利用现有的WiFi资源即可,成本较低,可直接利用终端内嵌的无线网络适配器测量接收信号强度(ReceivedSignalStrength,RSS),完全通过纯软件的方式就能够实现定位。基于位置指纹的WiFi室内定位技术主要依赖于RSS的物理位置关联特性,即终端与接入点(AccessPoint,AP)之间的距离及环境因素决定终端所接收到的RSS值。终端将在待定位点采集到的来自各个AP的信号强度值及对应的AP的地址上传给服务器,服务器在指纹数据库中通过匹配算法查找与之最相近的指纹,利用这些指纹的位置坐标计算得出待定位点的坐标,将坐标返回到客户端。由于室内环境很复杂,RSS信号的传播会受到多径效应、同频无线电干扰、人体遮挡、温度湿度变化、室内布局改变等因素的影响。由于受到这些因素的影响,RSS信号的时变性非常强,这种时变性使得RSS与物理位置不是简单的一一对应的映射关系,而表现为复杂的、非线性的的映射关系,严重影响定位精度。此外,位置指纹法定位需要离线阶段采集RSS样本构成离线数据库,在不同的定位环境下,所采集的RSS样本不同,即单独使用指纹法定位时受环境因素影响大,定位结果不稳定。在进行实时定位前均需要提前做好样本采集工作,且一段时间后需要对指纹数据库进行更新,才能保证在该环境内使用指纹法能够获得较好的定位误差。基于位置指纹的WiFi室内定位的研究大多集中在静态定位,动态定位主要采用基于惯性传感器的方法。基于惯性传感器的室内定位技术,具有定位的自主性和连续性。惯性传感器定位使用的传感器涉及到加速度计、陀螺仪、磁罗盘等。在惯性定位技术中,加速度计可获得运动的加速度,地磁罗盘可获得当前的行进方向,陀螺仪可实时获得方向角度的变化量,在给定初始方向的情况下也可得到实时的方向。由于行人航迹推算(Pedestriandeadreckoning,PDR)算法根据人行走的位移与航向进行位置推算,定位精度依赖于计步效果、行人航向以及行人的步长等因素,因而随着行走时间增加,惯性传感器定位的误差也在不断累积。对于连续定位,无线信号强度容易受到环境因素的影响而产生时高时低的波动效应,因此仅仅依靠WiFi指纹法定位获得的结果是不连续也不稳定的,这种不稳定性表现在即使终端原地不动,计算的实时位置也会在真实位置附近跳动,这种现象称为漂移。对于较小面积的场所和细粒度的定位需求来说,单独使用指纹法来进行连续定位是不合理的。基于传感器的航位推算技术由于数学迭代求和的方法,每次迭代都依赖上一次迭代的结果,因此具有连续性好的优点,然而传感器数掘的测量不可避免地存在误差,从而使计算结果产生误差,这种误差会随着每一次迭代计算而累积,即航位推算算法短期精度较好,而长期精度较差。不同的技术实现手段各有优缺点,依靠单一技术的改进实现系统整体性能的提升变得日益困难,将WLAN室内定位算法与传感器融合,可以互相利用指纹法与传感器定位各自的优点并规避其缺点,互相补充以达到较好的定位效果。技术实现要素:本发明的目的在于克服上述不足,提供一种基于滑动窗口的指纹法与传感器融合的室内定位方法,能够克服指纹法跳变性的影响以及航位推算所带来的累计误差,融合了指纹法与航位推算各自的优点来提高连续定位的性能。为了达到上述目的,本发明包括以下步骤:步骤一,将整个定位过程分成多段来消除长期定位带来的累计误差,其中每一段被定义为一个窗口;步骤二,对参数进行初始化后,对在某一个窗口内的行人的运动进行PDR定位;步骤三,对行人进行WiFi位置指纹法定位;步骤四,将PDR定位结果与WiFi指纹法定位结果融合,得到融合定位结果;步骤五,当行人到达下一个窗口时,重复步骤二至步骤四,计算用户接下来的每一步的定位结果直到用户停止运动,即完成基于滑动窗口的指纹法与传感器融合的室内定位方法。所述步骤二中,初始化的具体方法如下:从初始位置开始,令步数t=0,初始位置L0=(x0,y0)(t=0)已知,其中x0代表x轴坐标,y0代表y轴坐标,设窗口大小为W,滑动间隔为I。所述步骤二中,PDR定位的具体方法如下:当行人脚步被探测之后,令t=t+1,假定用户第t步的PDR的定位结果为第t步估计步长为dt,第t步运动方向为θt,则根据PDR定位结果的计算公式,如式(1),可得t时刻PDR的定位结果;xpdrt=xpdrt-1+dt·cos(θt)ypdrt=ypdrt-1+dt·sin(θt)---(1)]]>所述步骤三中,WiFi位置指纹法定位的具体方法如下:假定用户第t步的位置指纹法的定位结果为位置指纹法的定位结果根据KNN算法计算得到。所述步骤四中,将PDR定位结果与WiFi指纹法定位结果融合的方法如下:第一步,假定用户第t步的融合方案定位结果为lt=(xt,yt);第二步,用户初始位置已知,l0=(x0,y0);第三步,对于第t(t=1,2,…,W-1)步,PDR的定位结果即为融合算法的定位结果,即第四步,对于第t(t=W,…,W+I-1)步,设第一个窗口内指纹法定位结果的均值为第一个窗口内指纹法定位结果的均值到第一个窗口内中间步数前一时刻融合算法定位结果l(1)=(x(1),y(1))的距离为dis_wf(1),第一个窗口内中间时刻融合算法定位结果到第一个窗口内中间步数前一时刻融合算法定位结果l(1)=(x(1),y(1))的距离为dis(1);则dis_wf(1),dis(1)的计算公式如下:xavg(1)=Σt=0W-1xwftyavg(1)=Σt=0W-1ywft---(2)]]>dis_wf(1)=(xavg(1)-x(1))2+(yavg(1)-y(1))2---(3)]]>dis(1)=(xm(1)-x(1))2+(ym(1)-y(1))2---(4)]]>接着,按照下述公式归一化加权系数为:c(1)=1/dis_wf(1)1/dis_wf(1)+1/dis(1)---(5)]]>则c(1)代表WiFi指纹法定位结果归一化加权系数,1-c(1)代表融合算法定位结果归一化加权系数;因此,第一个窗口内初始位置可以更新为:xini(1)=(1-c(1))×xm(1)+c(1)×xavg(1)yini(1)=(1-c(1))×ym(1)+c(1)×yavg(1)---(6)]]>此时,可以得到第t(t=W,…,W+I-1)步融合算法的定位结果,其计算公式如下:xt=xini(1)+Σp=2tdpcosθp,t=W,...,W+I-1yt=yini(1)+Σp=2tdpsinθp,t=W,...,W+I-1---(7)]]>与现有技术相比,本发明通过将整个定位过程分成多段来消除长期定位带来的累计误差,其中每一段被定义为一个窗口,在每一个窗口中,利用该窗口内指纹法定位结果与PDR定位结果经过比例加权得到一个位置坐标,该位置坐标作为计算用户后面每一步定位结果的初始位置,最后将所有窗口中的位置相结合,即可对行人的位置进行精确定位;本发明将PDR作为主要定位方案,以WiFi指纹法的定位结果作为辅助来修正PDR定位结果带来的累计误差,利用了PDR定位结果在短期内稳定且定位精度好的特性。附图说明图1为本发明基于滑动窗口的融合定位示意图;图2为本发明实施例中测试环境平面图;图3为本发明实施例的定位轨迹图。具体实施方式下面结合附图对本发明做进一步说明。参见图1,本发明包括以下步骤:步骤一,将整个定位过程分成多段来消除长期定位带来的累计误差,其中每一段被定义为一个窗口;步骤二,对参数进行初始化后,对在某一个窗口内的行人的运动进行PDR定位;初始化的具体方法如下:从初始位置开始,令步数t=0,初始位置L0=(x0,y0)(t=0)已知,其中x0代表x轴坐标,y0代表y轴坐标,设窗口大小为W,滑动间隔为I。PDR定位的具体方法如下:当行人脚步被探测之后,令t=t+1,假定用户第t步的PDR的定位结果为第t步估计步长为dt,第t步运动方向为θt,则根据PDR定位结果的计算公式,如式(1),可得t时刻PDR的定位结果;xpdrt=xpdrt-1+dt·cos(θt)ypdrt=ypdrt-1+dt·sin(θt)---(1)]]>步骤三,对行人进行WiFi位置指纹法定位,假定用户第t步的位置指纹法的定位结果为位置指纹法的定位结果根据KNN算法计算得到;步骤四,将PDR定位结果与WiFi指纹法定位结果融合,具体方法如下:方法如下:第一步,假定用户第t步的融合方案定位结果为lt=(xt,yt);第二步,用户初始位置已知,l0=(x0,y0);第三步,对于第t(t=1,2,…,W-1)步,PDR的定位结果即为融合算法的定位结果,即第四步,对于第t(t=W,…,W+I-1)步,设第一个窗口内指纹法定位结果的均值为第一个窗口内指纹法定位结果的均值到第一个窗口内中间步数前一时刻融合算法定位结果l(1)=(x(1),y(1))的距离为dis_wf(1),第一个窗口内中间时刻融合算法定位结果到第一个窗口内中间步数前一时刻融合算法定位结果l(1)=(x(1),y(1))的距离为dis(1);则dis_wf(1),dis(1)的计算公式如下:xavg(1)=Σt=0W-1xwftyavg(1)=Σt=0W-1ywft---(2)]]>dis_wf(1)=(xavg(1)-x(1))2+(yavg(1)-y(1))2---(3)]]>dis(1)=(xm(1)-x(1))2+(ym(1)-y(1))2---(4)]]>接着,按照下述公式归一化加权系数为:c(1)=1/dis_wf(1)1/dis_wf(1)+1/dis(1)---(5)]]>则c(1)代表WiFi指纹法定位结果归一化加权系数,1-c(1)代表融合算法定位结果归一化加权系数;因此,第一个窗口内初始位置可以更新为:xini(1)=(1-c(1))×xm(1)+c(1)×xavg(1)yini(1)=(1-c(1))×ym(1)+c(1)×yavg(1)---(6)]]>此时,可以得到第t(t=W,…,W+I-1)步融合算法的定位结果,其计算公式如下:xt=xini(1)+Σp=2tdpcosθp,t=W,...,W+I-1yt=yini(1)+Σp=2tdpsinθp,t=W,...,W+I-1---(7)]]>即可得到融合定位结果。步骤五,当行人到达下一个窗口时,重复步骤二至步骤四,算用户接下来的每一步的定位结果直到用户停止运动,即完成基于滑动窗口的指纹法与传感器融合的室内定位方法。实施例:参见图2和图3,整个实验环境大小为41.26m×26.10m,具体测试环境如图2所示,信号采集终端为安卓手机。A、离线阶段信号指纹采集。在本次测试中,实验环境中间参考点间隔是3.2m,由于空间限制,实验环境两翼参考点的间隔是2.4m或1.6m,一共有73个参考点,在每个参考点采集的信号强度值RSS来自环境中已有的AP,我们剔除RSS低于-80dBm的AP。每个参考点分4个方向,以200ms的采样间隔在每个方向采集50s的RSS样本。B、步骤A中完成了信号采集工作之后,将采集到的信息在放入数据库之前需要进行预处理。在每个参考点上对同一个AP采集到的多组RSSI信息,rssi1,rssi2,...,rssin,计算出他们的均值计算公式为:将每个参考点的所有方向的样本平均存入数据库。将所有AP的均值信息构成一组向量,作为位置指纹。C、在线连续定位时,利用终端快速的进行周围AP信息的扫描,进行上传定位。同时,软件终端实时记录用户运动过程中的传感器数据并实时计算步数、步长以及方向。具体来讲,RSS的采样间隔是50ms,加速计和罗盘的采样频率是50Hz。实验时匀速行走,步长固定为0.8m,初始位置已知。利用加速度传感器可以检测行走的步数,每检测到行走一步时,利用罗盘和陀螺仪可以得到该步行进的方向,进行PDR定位。同时手机采集到该步相对应RSS值,利用KNN算法进行WiFi定位。D、服务器接收到以上信息之后,按照下面步骤进行实时定位。设窗口大小为5,窗口滑动间隔为3,具体的融合算法如下:(1):用户初始位置已知,l0=(x0,y0);(2):对于第t(t=1,2,…,5)步,PDR的定位结果即为融合算法的定位结果,即(3):对于第t(t=5,6,7)步,设第一个窗口内指纹法定位结果的均值为第一个窗口内指纹法定位结果的均值到第一个窗口内中间步数前一时刻融合算法定位结果l(1)=(x(1),y(1))的距离为dis_wf(1),第一个窗口内中间时刻融合算法定位结果到第一个窗口内中间步数前一时刻融合算法定位结果l(1)=(x(1),y(1))的距离为dis(1)。则dis_wf(1),dis(1)的计算公式如下:xavg(1)=Σt=04xwftyavg(1)=Σt=04ywft---(8)]]>dis_wf(1)=(xavg(1)-x(1))2+(yavg(1)-y(1))2---(9)]]>dis(1)=(xm(1)-x(1))2+(ym(1)-y(1))2---(10)]]>接着,按照下述公式归一化加权系数为:c(1)=1/dis_wf(1)1/dis_wf(1)+1/dis(1)---(11)]]>则c(1)代表WiFi指纹法定位结果归一化加权系数,1-c(1)代表融合算法定位结果归一化加权系数。因此,第一个窗口内初始位置可以更新为:xini(1)=(1-c(1))×xm(1)+c(1)×xavg(1)yini(1)=(1-c(1))×ym(1)+c(1)×yavg(1)---(12)]]>此时,可以得到第t(t=5,6,7)步融合算法的定位结果,其计算公式如下:xt=xini(1)+Σp=2tdpcosθp,t=5,6,7yt=yini(1)+Σp=2tdpsinθp,t=5,6,7---(13)]]>E、按照上述步骤得到t(t=5,6,7)步的融合算法定位结果。向用户运动的方向滑动窗口3步,重复步骤4计算用户接下来的每一步的定位结果直到用户停止运动。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1