一种移动终端的室内定位方法与流程

文档序号:15023192发布日期:2018-07-25 01:39阅读:218来源:国知局

本发明属于移动通信领域,具体涉及一种使用粒子滤波融合Wi-Fi定位和惯性导航定位的方法。



背景技术:

传统的定位技术(卫星定位、基站定位)却因技术手段限制,无法满足室内定位要求。目前,室内定位技术主要有:超宽带(UWB)技术、蓝牙技术、超声波技术、红外线定位技术、射频识别技术和Wi-Fi技术,其中基于Wi-Fi的定位技术成本低廉,无需额外设备支持,使用范围广泛。

Wi-Fi技术提供了许多算法方案,包括基于信号强度衰减模型和基于接收信号强度指纹法(RSSI)。基于接受信号强度(Received Signal Strength,RSS)指纹法分为两个阶段:一是离线阶段,在服务器构成的系统覆盖区域内,设置若干个参考点(ReferencePoint,RP)采集其位置信息以及一个路由器的信号强度信息,形成该参考点的信号强度-位置指纹数据库。二是在线阶段,用户使用带有Wi-Fi功能的移动设备扫描一组Wi-Fi信号强度信息,形成在线指纹,通过对比离线指纹和在线指纹的相似度,确定最为相似的K个参考点的中心作为定位结果。该方法的缺点是:目标区域较大或者定位精度要求较高时,离线阶段采集数据的工作量较大,同时因为路由器的位置和功率可能会发生变化,所以需要定期采集数据来更新Wi-Fi离线数据库,来保证离线指纹库的正确性和可靠性。

在微机电(MEMS)技术的推动下,各种传感器的尺寸变小成本降低,被广泛的用于个人智能移动终端中。基于传感器的定位技术,其突出优势在于导航定位的自主性和连续性,可以记录用户的轨迹。移动终端中普遍使用的传感器包括惯性传感器(加速度计和陀螺仪)、电子罗盘等,基于这些传感器能实现一个惯性导航系统,通过检测加速度计周期性的变化来确定用户行走的步数,通过电子罗盘和陀螺仪检测的用户角速度确定用户的方向,通过对步行者行走的步数、步长、方向进行测量和统计,推算出步行者行走轨迹和位置等信息(Pedestrian Dead Reckoning,PDR)。

综上所述,Wi-Fi定位精度易受到无线网络接入点(AP)的分布密度的影响,在复杂的室内条件下,室内的障碍物较多,多径效应明显以及外部信号的干扰,Wi-Fi信号十分不稳定,给定位增加了难度;另外,离线采集阶段费时费力,并且需要重复采集以保证离线指纹库的可靠性,在大型室内环境下代价难以接受。

惯性导航系统的移动终端中所包含传感器的体积小、成本低,且广泛存在,能够获取用户实时运动状态,在短时间内定位精度较高,能够准确记录用户轨迹。但是由于硬件构造特性,其移动终端在使用过程中存在累积误差,因而不适合于长时间定位使用。



技术实现要素:

针对现有技术存在的问题,本发明提供一种移动终端的室内定位方法,其定位精度高,能有效克服现有惯性导航系统在定位过程中由于累积误差大、不适宜长时间定位的问题,在Wi-Fi信号不稳定难以定位时,仍能使用惯性导航的结果估算用户位置,同时能够避免重复采集数据来更新Wi-Fi离线指纹库。

本发明的构思是:使用粒子滤波又结合惯性导航系统和基于RSS指纹的Wi-Fi定位法实现室内定位,提高定位精度,避免现有惯性导航系统在定位过程中由于累积误差大、不适宜长时间定位的问题。并且能够采集用户定位时扫描的Wi-Fi信号强度信息,在用户使用时动态地改进Wi-Fi离线指纹库,并将一部分在线指纹存入Wi-Fi离线指纹库作为新的指纹,不使用重复采集数据来更新Wi-Fi离线指纹库,减少离线阶段的数据采集工作量。

本发明提供一种移动终端的室内定位方法,包括以下步骤:

步骤1、服务器离线数据采集时,将参考点扩展为一个区域,称之为定位参考区;定位参考区指纹格式如下:(RPID,(X,Y,range),{(Mac1,RSS1)……,(Macn,RSSn)}),

RPID是定位参考区的序号,(X,Y Range)代表该指纹所可能出现的范围,即以(X,Y)为圆心,Range为半径的一个圆形区域;{(Mac1,RSS1)……,(Macn,RSSn)}是每一个路由器在该定位参考区的信号强度值;

步骤2、客户端进入定位参考区,惯性导航模块程序读取传感器检测的用户步数和方向信息,并采用粒子滤波来追踪用户的行走轨迹;并调用基于RSS指纹的Wi-Fi定位模块实施定位;Wi-Fi定位模块程序扫描当前位置的RSS在线指纹,并从服务器获取Wi-Fi离线指纹库中寻找一个最为匹配的指纹,将该指纹的定位参考区的范围作为Wi-Fi定位的结果;

步骤3、客户端的粒子滤波模块程序全局搜索一个密度最高的位置P1,如果P1密度超过阈值,程序将执行步骤5开始在线校准,否则执行步骤4;

步骤4、客户端粒子滤波模块程序按一定权重抽取一定数量的已有粒子,放置到Wi-Fi定位的参考区,在定位参考区内部和周围搜索是否存在位置P2,其粒子密度比P1位置的密度高,若P2存在,则将其作为定位结果;否则将P1作为定位结果;

步骤5、客户端的评估校准模块程序测量进入Wi-Fi定位参考区的所有的粒子数,如果数量大于阈值,则将在线指纹作为一个新的指纹插入Wi-Fi离线指纹库;若小于该阈值,则根据粒子数量适当缩小定位参考区的范围;若无粒子进入Wi-Fi定位参考区,则适当增加定位参考区的范围。

本发明的技术效果是:

针对复杂的室内Wi-Fi环境,减少了服务器重复采集数据的运算量,实时地对已收集的Wi-Fi信号强度信息进行校准,不需要手动的采集数据去更新Wi-Fi离线数据库,减少AP信号强度变化对定位造成的影响。同时,本发明使用粒子滤波并结合惯性导航系统和基于RSS指纹的Wi-Fi定位法两种定位结果,吸收了两种不同定位技术的优点,又有效克服了两种定位技术的劣势,定位精度显著提高。

附图说明

本发明的附图说明如下:

图1是本发明的系统结构图;

图2是本发明使用Wi-Fi定位和惯性导航定位的流程图;

图3是本发明的校准Wi-Fi离线指纹库的流程图。

具体实施方式

下面结合附图和实施例对本发明作详细说明。

为了便于理解,首先对本系统的整体结构做一个描述:

图1是本发明的系统结构图,本系统由服务器端和客户端组成,服务器端存有目标区域的地图U15,并维护一个Wi-Fi离线指纹库U16。客户端程序主要分为四部分,Wi-Fi定位模块U12、惯性导航模块U11、粒子滤波模块U13和评估校准模块U14。

在用户进入目标区域后打开客户端程序之后,客户端会向服务器端请求数据,服务器会将地图U15信息和Wi-Fi离线指纹库U16信息发送至客户端。客户端在得到上述信息后,使用两种方法进行定位:惯性导航模块U11会读取加速度器、电子罗盘、陀螺仪等传感器的数据,推算出用户的方向和用户的步数,传输给粒子滤波模块U13。粒子滤波模块U13在获得这些信息后,使用粒子追踪用户位置;同时Wi-Fi定位模块U12进行基于RSS指纹的Wi-Fi定位,并将定位结果发送至粒子滤波模块U13,以确定最后的定位的结果。随着用户的行走,粒子滤波的粒子会逐渐汇聚,在密度达到一定阈值之后,客户端启动评估校准模块U14,确定定位参考区的范围变化,并将结果上传至服务器的Wi-Fi离线数据库中。

本发明提供一种移动终端的室内定位方法,包括以下步骤:

步骤1、在目标区域内部署Wi-Fi定位硬件系统,服务器进行离线数据采集,将目标区域平均划分为若干个面积相等的小方格,将小方格的内接圆称之为定位参考区,在定位参考区的圆心处采集一组Wi-Fi信号强度数据,组成该定位参考区的指纹,保存定位参考区圆心的位置(x,y)和内接圆的半径Range,组成该定位参考区的指纹,指纹的格式为(RPID,(X,Y,Range),{Mac1,RSS1……,Macn,RSSn})。

RPID是定位参考区的序号,(X,Y,Range)代表该指纹所可能出现的范围,即以(X,Y)为圆心,Range为半径的一个圆形区域;{(Mac1,RSS1)……,(Macn,RSSn)}是每一个路由器在该定位参考区的信号强度值。

步骤2、客户端进入定位参考区,惯性导航模块读取传感器检测的用户步数和方向信息,并采用粒子滤波估计用户位置;并调用基于RSS指纹的Wi-Fi定位模块实施定位。

粒子滤波是一类成熟的高效的滤波算法,它的主要思想是用一系列后验概率中抽取的随机状态样本(形象地称为“粒子”)来表达其后验分布。它主要由两个重要的步骤组成:随机采样,重要性重采样。

定位刚开始时,我们无法得知用户的位置,此时粒子滤波估计用户的位置等概率地分布在整个目标区域,所以此时所有的粒子随机的均匀的分布在整个定位区域。随着用户的行走,所有的粒子将会具有与用户的相同的行动轨迹,此时许多粒子的可能会发生不合理的行为,比如穿越墙壁,超过目标区域的范围。这些粒子所代表的用户位置将会被淘汰。在用户不断行走的过程中,越来越多的位置会被淘汰,概率会逐渐收敛到一个较小的位置。这样,粒子滤波就准确的估计了用户的位置。

用户持移动终端设备进入目标区域后,执行图2所示的定位流程步骤:

在步骤S101,客户端开机;

在步骤S102,客户端向服务器端请求数据,并接受服务器发送的目标区域的地图信息和Wi-Fi离线指纹库信息;同时启动惯性导航模块程序和Wi-Fi定位模块程序。

中国专利文献CN102419180A于2012年4月18日公开了一种惯性导航系统,能够利用加速度计步并使用陀螺仪和电子罗盘确定用户方向。

在步骤S104,随机采样;

针对室内定位这一场景,对粒子滤波的粒子进行了改进。即每个粒子一共有四维属性,(x,y,direction,StepLength),x和y是粒子所在的位置,用来估计用户所在的位置,direction是粒子的前进方向,用来估计用户行走的方向。StepLength是每一次前进的距离,用来估计用户行走的步长。粒子是对用户位置分布的随机状态采样。定位开始时,我们并不知道用户所在的位置,所以粒子滤波模块程序在用户所有可能存在的区域和所有可能存在的状态随机采样产生粒子。具体的过程如下:

a.所有粒子的x和y值,在地图坐标内所有可能的范围内随意取值;

b.所有粒子的direction值则是根据电子罗盘所测量的用户方向值加上正负15度的误差值之后,在这一范围内随机取值;

c.所有粒子的StepLength值在正常人的步长范围50cm至80cm中随机取值。

至此,粒子滤波模块程序便完成了粒子滤波中的随机采样步骤。粒子数量越高,定位精度越大,但计算代价相应会提高。综合考虑定位精度和计算代价,在本系统粒子滤波模块程序中,粒子数设置为10000个。

在步骤S105,惯性导航模块程序开始监测传感器的数据,传感器包括:陀螺仪、电子罗盘、加速度计;

一旦传感器的数据发生变化,便开始推算用户的方向和用户是否行走一步。每判断用户行走一步,惯性导航模块程序便通知粒子滤波模块,并发送此时检测用户的方向值。

在步骤S106,重要性重采样;

每得知到用户每行走一步,粒子滤波模块程序首先使用接收到的方向值更新所有粒子的方向,即根据电子罗盘所测量的方向值加上正负15度的误差值之后随机取值得到。

粒子滤波模块程序使用以下公式更新所有粒子的位置:

Xnew=Xold+StepLength*sinθ

Ynew=Yold+StepLength*cosθ

其中θ为粒子的方向,即direction值;Xnew、Ynew为更新后的粒子位置坐标,Xold、Yold为粒子原位置坐标。

粒子滤波模块程序检测生成的新位置的坐标是否合法,即检测:

该位置的坐标是否在地图里、是否是在行人能够出现的位置、达到该位置是否穿越了墙壁;程序将淘汰位置不合法的粒子,即此时用户不可能出现在该位置。同时,一部分粒子会保留下来,此时用户存在这些粒子所在位置的可能性将提高,粒子滤波模块程序将在这些粒子所在的区域进行重采样,生成新的粒子,以补充淘汰掉的粒子,使粒子总数保持不变。

步骤S105和S106会不断的执行,惯性导航模块每监测到用户方向发生改变,便会更新所有粒子的方向值。当检测到用户行走一步之后,便会去更新粒子位置,迭代生成新粒子。随着用户的行走,用户存在位置的概率会收敛,粒子会越来越聚集,密度会越来越大。

在步骤S108,粒子滤波模块程序在整个目标区域搜索(称为全局搜索)密度最大的位置P1,判断这个位置的粒子密度是否超过一个阈值,如是,执行步骤S109,否则,执行步骤S110。

根据区域的大小,粒子使用的数量,阈值的设定不尽相同,以本系统为例,在10000个粒子,400平方米的左右的区域,阈值应该在每平方米300个及以上。

在步骤S109,执行评估校准模块程序;

在步骤S103,调用基于RSS指纹的Wi-Fi定位模块;

扫描一组当前位置的Wi-Fi信号强度信息,组成在线指纹。使用欧式距离来度量在线指纹与离线指纹库中指纹的相似程度,找到最为相似的指纹,并将其定位参考区作为定位结果。

在步骤S107,粒子滤波模块程序按权重抽取一定数量的已有粒子到Wi-Fi定位结果的区域,粒子的数量为固定值Nrp。根据如下策略选择粒子:根据每个粒子离Wi-Fi定位结果的远近来选择,粒子距离越远,被选择的可能性越大。对距离进行最大最小归一化:

式中,dnew为粒子的权重,dold是指每个粒子到Wi-Fi定位结果的距离,dmin是所有粒子到Wi-Fi定位结果的最小值,即dold的最小值,而dmax是所有粒子Wi-Fi定位结果的最大值,即dold的最大值。

系统为每一个粒子随机生成一个0到1之间的小数,如果该数小于权重,则该粒子被选中。

在步骤S110,粒子滤波程序模块在Wi-Fi定位结果内和周围搜索是否存在一个位置P2,P2位置的粒子密度高于P1位置的粒子密度,若存在,则该P2位置作为定位结果,否则P1位置作为定位结果。

将一定数量Nrp的粒子放置到Wi-Fi定位参考区之后,密度可能会发生变化,在定位参考区周围可能出现密度更高的区域,所以还要在步骤S110继续搜索一次。

Wi-Fi定位模块程序会周期性的扫描周围的Wi-Fi信号强度,上述步骤S103、S107、S110同样会不断循环,直至用户结束定位。

在步骤S111,客户端关机,定位结束。

上述步骤S109,执行评估校准的流程图如图3所示。为了清楚说明该流程图,对以下概念进行说明:

在粒子滤波模块程序开始估计用户位置阶段,所有粒子均匀分布在整个目标区域,计算此时的粒子密度为基准密度ρbase,并计算为每一个定位参考区所分配的粒子数量为Nrp=ρbase*Srp,Srp为定位参考区的面积。在整个定位过程中,为每个定位参考区分配的粒子数量恒定为Nrp,进入定位结果区域的粒子数量为N1。

在步骤S201,评估校准模块程序根据基于RSS指纹的Wi-Fi定位方法得到定位结果。

定位结果是一个圆形区域,它的半径由指纹中Range值决定。

在步骤S202,判断是否有粒子进入定位结果区域;若有,执行步骤S205;否则,执行步骤S203;

在步骤S203:根据Wi-Fi定位和惯性导航定位的可信度来确定α值。

而可信度则是由粒子的密度来衡量的。在定位参考区外全局搜索一个粒子密度最高的位置,计算以定位参考区范围Range为半径这一区域的粒子密度ρmax;

α=(Nrp/Range)/ρmax。

在步骤S204,计算该定位参考区到距离最近的粒子的距离dmin;

根据该距离来确定此定位参考区的新范围,用以下公式来确定新的Range范围:

式中,ρbase为均匀分布在整个目标区域的粒子密度,Nrp为均匀分配在定位参考区的粒子数量,可信度α=(Nrp/Range)/ρmax,ρmax为全局搜索一个最高粒子密度;dmin是所有粒子到Wi-Fi定位结果的最小值。

然后,执行步骤S208。

步骤S205,判断进入Wi-Fi定位结果粒子数是否大于Wi-Fi定位结果本身分配的粒子数的50%;若是,执行步骤S206;否则,执行步骤S207;

在步骤S206,计算出所有进入该定位参考区的粒子的x和y值的平均值,得到粒子的中心P(x,y),所有进入该定位参考区粒子的中心P(x,y)作为指纹的坐标,并计算出粒子覆盖的区域Snew=N1/ρbase,,则

N1是进入定位结果区域的粒子数量。

由此得到一个新的定位参考区。

本步骤不对原有指纹做一个校准,而是将在线扫描的Wi-Fi指纹作为一组新的指纹存入服务器Wi-Fi离线数据库。

在步骤S207,更新原有的定位参考区的范围大小,新的范围为:

在步骤S208,将修改的结果上传至服务器端保存。

通过以上评估校准过程,利用用户的在线扫描的指纹去改进服务器的Wi-Fi离线指纹库,且能够调整已有指纹的准确程度,提高了定位的准确性和离线采集工作的效率。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1