一种利用惯性导航与Wi-Fi指纹的混合室内定位方法
技术领域
本发明属于无线室内定位领域,尤其涉及一种利用惯性导航与Wi-Fi指纹的混合室内定位方法。
背景技术
智能移动终端和移动计算的普及使得无线室内定位的研究越来越受到关注。目前最流行的室内定位方法有Wi-Fi位置指纹定位和航迹推算法。Wi-Fi位置指纹定位分为离线训练和在线定位两个阶段。离线训练阶段主要工作是收集待定位区域各处的无线接入点(AP)及其对应的信号强度(RSS)值,将参考点坐标和对应AP的RSS信息存储在数据库中,建立位置指纹数据库;在线定位阶段则依据一定的匹配算法将待定位点上收到的相应AP的RSS信息与位置指纹数据库进行比较,找出最相似的指纹,从而估计用户当前的位置。该方法存在如下缺点:一是室内环境下Wi-Fi信号存在一定程度上的波动,热点的开闭也会造成Wi-Fi的变化,这意味着离线阶段建立的指纹库需要经常及时的更新,否则会使得定位结果不准确,但是如果由专业人员定期维护更新指纹库,非常耗费人力,需要一种高效的方法使指纹库得到自动更新;二是该方法能较好地区分房间内外,实现房间级定位,但对于开放空间如走廊区域的定位不准确,这是因为密闭房间内的Wi-Fi信号由于墙体阻隔与房间外的Wi-Fi信息差别较大,因此容易区分墙体内外的不同位置,但是开放空间由于没有阻隔,信号衰减不明显,Wi-Fi信息差别不大,因此不容易区分不同位置。鉴于这一局限,单纯的Wi-Fi定位不适用于室内导航服务。
当前,智能移动终端,如智能手机,大多内置了各种各样丰富的传感器,如三轴加速度计、罗盘、陀螺仪等,通过这些内置的传感器,可以捕获用户的运动信息,从而推算用户的位置。一种常用的方法是航迹推算法,其原理是通过三轴加速度计推算用户行走的步数,通过罗盘或陀螺仪获取用户的航向角,从而计算出用户的位置,这种方法与Wi-Fi定位法相比简单易于实现,不涉及指纹库的建立和更新,但是其定位精度依赖于计步效果、航向角精确度及用户步长等因素,在较短时间内比较精准,但随着行走时间增加,其定位误差会不断累积。
公开号为102419180的专利文献提供了一种基于惯性导航系统和Wi-Fi的室内定位方法。该方法通过Wi-Fi定位确定终端装置的初始位置,然后利用惯性导航系统通过航迹推算进行定位,同时用Wi-Fi定位对航迹推算的定位结果进行校准,并对步长信息进行在线调整。该方法能在一定程度上克服惯性导航系统累积误差大的问题,但是该方法在使用Wi-Fi定位时并没有考虑Wi-Fi指纹库的更新维护问题,如果一直使用初始建立的Wi-Fi指纹库,该方法的定位精度必然会下降。
公开号为102932742的专利文献提供了一种基于惯性传感器与无线信号特征的室内定位方法,该方法通过对定位目标状态静止与否的判断而选择采用无线信号特征方法(即Wi-Fi指纹法)或航迹推算法进行定位。该方法的缺陷在于若用户一直处于运动状态,定位结果的累积误差会不断增大,并且该方法同样没有考虑Wi-Fi指纹库的更新维护问题,无法长期维持高定位精度。
总的来说,Wi-Fi指纹定位能较好地区分房间内外,但在开放空间定位不准,指纹库需要维护更新,而惯性导航在较短时间内定位校准,但随时间推移存在累积误差,如何充分考虑这两种方法的优缺点,使这两种定位方法互为补充,同时又能自动维护Wi-Fi指纹库,是一个亟待解决的问题。
发明内容
为了充分融合惯性导航与Wi-Fi指纹定位的优点,提高室内定位精度,本发明提出了一种利用惯性导航与Wi-Fi指纹的混合室内定位方法。
一种利用惯性导航与Wi-Fi指纹的混合室内定位方法,包括以下步骤:
(1)分别采集房间内各个参考点的Wi-Fi指纹,利用采集到的所有Wi-Fi指纹构建Wi-Fi指纹库;
(2)利用所述的Wi-Fi指纹库按照第一周期定期对待定位点进行Wi-Fi指纹定位,并记录定位结果;
(3)以第一次Wi-Fi指纹定位的结果为起始位置,按照第二周期定期采集移动终端在待定位点的加速度,按照第三周期定期根据第三周期内采集到的加速度对待定位点进行惯性导航定位,并记录定位结果和定位时间;
(4)根据Wi-Fi指纹定位结果与对应时刻惯性导航定位结果计算得到待定位点的最终位置,并作为下一次惯性导航定位的初始位置;
所述的混合室内定位方法在定位过程中还包括更新Wi-Fi指纹库,更新方法如下:
按照第一周期定期对待定位点进行Wi-Fi指纹定位的同时执行房间内外判定算法,判定待定位点是否在房间内,并根据判定结果更新Wi-Fi指纹库。
实际应用时,移动终端与待定位点处同步,其运动直接反应了待定位点的移动。
本发明步骤(1)中建立的Wi-Fi指纹库实际上为初始Wi-Fi指纹库,该Wi-Fi指纹库需要由专业人员建立,只采集房间内参考点的Wi-Fi指纹。
参考点均匀分布于室内环境的各个房间内,每个房间设置2~3个参考点,Wi-Fi指纹库为所有参考点的Wi-Fi指纹的集合,在用户使用的过程中,Wi-Fi指纹库F会根据一定的条件进行更新。因此,在使用一段时间后,可能存在一个房间内参考点的个数变化的情况。
所述步骤(1)中每个参考点处的Wi-Fi指纹包括该参考点的位置坐标、移动终端在该参考点处扫描到的AP的MAC地址及对应RSS值、采集时间以及该参考点所在房间的房间编号。
第一周期为5~10s,第二周期为20~60ms,第三周期为1~3s,且第一周期长度为第三周期长度的整数倍,第三周期长度为第二周期长度的整数倍。作为优选,所述的第一周期为5s,第三周期至少为第二周期的5倍。第二周期由移动终端配置的三轴加速度计的采样频率决定,作为优选,所述的第二周期为20ms,第三周期决定了Wi-Fi指纹库更新的频次,可以根据应用需求调整,作为优选,所述的第三周期为1s。
所述步骤(2)中Wi-Fi指纹定位方法如下:
采集待定位点处扫描到的AP的MAC地址、对应RSS值,并根据待定位点处扫描到的AP的RSS值与Wi-Fi指纹库中所有参考点的AP的RSS值计算待定位点与相应参考点的相似度,以相似度最高的参考点的位置作为Wi-Fi指纹定位结果;
定位点l1与参考点l2的相似度根据如下公式计算:
其中,|A|为集合A中的AP的总个数,A=A1∪A2,A1为待定位点l1扫描到的AP的集合,A2为参考点l2的AP的集合;
f1(a)表示待定位点l1中AP a的RSS值,f2(a)表示参考点l2中AP a的RSS值。
在计算相似度时,若参考点或待定位点的Wi-Fi信息中没有AP a,则令对应的RSS值为零(根据a的来源可以确定f1(a)和f2(a)不会同时为零)。
本发明中采集加速度以及惯性导航定位具体包括如下步骤:
(3-1)智能移动终端每隔第二周期自动采集一次三轴加速度计的值,记第i次采集到的三轴加速度值为(axi,ayi,azi),航向角为θi(手机顶部指向与正东方向的夹角),i=1,2…;扣除重力加速度的影响后,加速度的大小为 g为重力加速度,取值9.81;
(3-2)为了减小采样点的随机波动,对原始采样点利用指数加权移动平均进行平滑,得到平滑后的样本点i=1,2…,α的取值决定采样点的平滑程度,这里取α=0.1;
(3-3)人正常行走的步态有很强的规律性和对称性,其加速度是准周期的时变信号,人正常行走的频率为0.5~5Hz,因此可以根据加速度的变化特征进行计步。
对于平滑后的任意采样点若且则判定采样点i为一个步态周期的开始,在其后的时间内检测加速度峰值与谷值若峰谷值的时间差△t满足0.2≤△t≤1.2且计用户行走一步。
(3-4)将用户位置坐标由原先的(x,y)更新为(x+λcosθ,y+λsinθ),θ为运动方向(可通过移动智能终端的罗盘功能获取),λ为用户步长,其值可根据用户身高h估算,估算公式为λ=h*0.45。
所述步骤(4)根据如下公式计算待定位点的最终定位位置
其中,(x,y)为当前时刻惯性导航定位结果,(x',y')为当前时刻Wi-Fi指纹定位结果,Smax为Wi-Fi指纹定位时得到的最高相似度(针对当前时刻所有参考点而言)。
该计算公式综合考虑到惯性导航定位和Wi-Fi指纹定位各自的缺点,通过权值分配,克服了单一惯性导航定位的误差累加问题,也解决了单一Wi-Fi指纹定位在开放空间定位不准的问题,大大提升了最终定位的精度。
本发明中设定权值为Smax,实际应用下可以根据实际应用情况调整。
本发明中室内定位的自动刷新周期为第一周期,若用户在相邻的自动更新时刻中间主动提出定位要求,则定位结果按照惯性导航的定位结果给出。由于通过本发明的方法,惯性导航的初始位置能够不断被校正,因此在第一周期内通过惯性导航定位的累积误差可以控制在一定范围内,定位精度仍然可以保证。
所述的房间内外判定算法如下:
根据智能终端在待定位点处扫描到的AP的RSS值与Wi-Fi位置指纹库中各个具有房间编号的参考点的RSS值计算待定位点与相应的参考点的相似度:
若最大相似度大于设定的相似度阈值,则判定待定位点位于房间内;
否则,判定待定位点位于房间外。
根据上述的相似度公式计算得到。相似度阈值设定的大小直接关系到最终的定位精度。作为优选,所述的相似度阈值为0.6~0.8。进一步优选,所述的相似度阈值为0.7。
所述的混合室内定位方法在定位过程中还进行如下操作:
按照第三周期定期采集待定位点处能扫描到的AP的MAC地址、对应RSS值和采集时间作为相应时刻待定位点的Wi-Fi信息;
通过如下方法更新Wi-Fi指纹库:
(a)若在t时刻和t+T1时刻房间内外判定算法的判定结果均为房间内,则从t+T1时刻开始记录每个T3时间内采集到的加速度的方差,若连续m个T3时间内加速度的方差都小于预设的方差阈值,则以最近n次定期采集到的Wi-Fi信息中AP及对应RSS值的平均值、进行房间内外判定算法中得到最大相似度对应的房间编号、t+T1+mT3时刻惯性导航定位的定位结果和定位时间作为一条新的Wi-Fi指纹存入Wi-Fi指纹库中,T1为第一周期,T3为第三周期;
(b)若在t时刻的判定结果为房间内,t+T1时刻的判定结果为房间外,则自t+T1-T3开始按照时间递减顺序依次对t+T1-T3,t+T1-2T3,……,t+2T3,t+T3时刻待定位点的位置执行房间内外判定算法,直至首次判定待定位点在房间内时停止,并以t+T1-x+T3时刻采集到的Wi-Fi信息和惯性导航定位结果作为新的Wi-Fi指纹存入Wi-Fi指纹库中,t+T1-x为首次判断待定位点在房间内的时刻;
(c)若在t时刻的判定结果为房间外,t+T1时刻的判定结果为房间内,则自t+T1-T3开始按照时间递减顺序依次对t+T1-T3,t+T1-2T3,……,t+2T3,t+T3时刻待定位点的位置执行房间内外判定算法,直至首次判定待定位点在房间外时停止,并以t+T1-x时刻采集到的Wi-Fi信息和惯性导航定位结果作为新的Wi-Fi指纹存入Wi-Fi指纹库中,t+T1-x为首次判断待定位点在房间外的时刻。
根据更新过程可以知道Wi-Fi指纹库中的参考点分为两类,一类参考点的Wi-Fi指纹具有房间编号,可以称为“房间内参考点”;另一类参考点的Wi-Fi指纹没有房间编号,可以称为“房间外参考点”。
步骤(a)中从t+T2时刻开始记录每个T3时间内通过移动终端采集的加速度的方差,实际上是根据移动终端内置的加速度计的采集频率,将T3时间内采集到的所有加速度进行求方差运算。本发明中方差阈值为0.01~0.02,优选为0.01。
m、n的设定与第一周期、第二周期和第三周期有关,当第一周期、第二周期和第三周期不同时,需要根据应用需求合理设定m和n的取值。作为优选,所述的m为10~20;所述的n为2~5。进一步优选,所述的m为10;所述的n为3。
本发明中第一周期为第三周期的整数倍,因此,按照第一周期进行Wi-Fi指纹定位时可以不用另外采集待定位点处扫描到的AP的MAC地址、对应RSS值,直接利用相应时刻按照第三周期采集到的Wi-Fi信息即可。
随着不断更新,Wi-Fi指纹库会不断增大,为保证能够正常使用,本发明中还自动对Wi-Fi指纹库进行清理,清理方法如下:
自动删除Wi-Fi指纹库中超过设定时间阈值的Wi-Fi指纹。作为优选,所述的时间阈值为10天。另外,也可以根据用户需求进行手动删除。
随着不断更新,Wi-Fi指纹库会不断增大,为保证能够正常使用,所述混合室内定位方法还包括删除Wi-Fi指纹库中过期的Wi-Fi指纹。
可以有以下两种方案:
方案1:每隔一定时间间隔定期查询库中是否有过期的Wi-Fi指纹,有则删除;
方案2:不定时,一旦Wi-Fi指纹过期则自动删除。
本发明中定义过期的Wi-Fi指纹为自添加至Wi-Fi指纹库中起超过设定时间阈值的Wi-Fi指纹。作为优选,所述的时间阈值为10天。另外,也可以根据用户需求进行手动删除。
与现有技术相比,本发明具有如下优点:
综合考虑到惯性导航定位和Wi-Fi指纹定位各自的缺点,通过权值分配,克服了单一惯性导航定位的误差累加问题,也解决了单一Wi-Fi指纹定位在开放空间定位不准的问题,大大提升了最终定位的精度;
实时更新Wi-Fi指纹库,避免因Wi-Fi指纹库老旧或失效而引起的定位失准问题,且更新过程全部自动进行,不需要专业人员操作。
附图说明
图1是本实施例的利用惯性导航与Wi-Fi指纹的混合室内定位方法的流程图;
图2是本实施例的由智能移动终端采集的用户行走时的原始加速度和经过指数加权移动平均平滑后的加速度变化图;
图3是本实施例中室内平面图和用户行走时的Wi-Fi信息采样点示意图;
图4是本实施例中用户在不同状态下加速度变化情况示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下将结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本实施例的利用惯性导航与Wi-Fi指纹的混合室内定位方法包括包括以下步骤:
(S1)智能移动终端(如智能手机、平板电脑等)利用惯性导航判断用户是否移动,每隔1秒存储当前时刻利用惯性导航定位的定位结果和定位时间,该步骤在用户的使用过程中一直执行。具体通过如下步骤实现:
(S11)智能移动终端每隔20毫秒采集一次三轴加速度计的值,记第i次采集到的三轴加速度值为(axi,ayi,azi),航向角为θi(手机顶部指向与正东方向的夹角),i=1,2…;扣除重力加速度的影响后,加速度的大小为 g为重力加速度,取值9.81;
(S12)为了减小采样点的随机波动,对原始采样点利用指数加权移动平均进行平滑,得到平滑后的样本点其中i=1,2…。
图2是本发明实施例提供的由智能移动终端采集的用户行走时的原始加速度(即原始采样)和经过指数加权移动平均平滑后(即平滑处理)的加速度变化图,经平滑处理后,可以避免由于采样点随机波动而带来的对加速度峰谷值的误判。
(S13)人正常行走的步态有很强的规律性和对称性,其加速度是准周期的时变信号,人正常行走的频率为0.5~5Hz,因此可以根据加速度的变化特征进行计步。对于平滑后的任意采样点若且则判定采样点i为一个步态周期的开始,如图2所示,在其后的时间内检测加速度峰值与谷值若峰谷值的时间差△t满足0.2≤△t≤1.2且计用户行走一步,将用户位置坐标由原先的(x,y)更新为(x+λcosθ,y+λsinθ),λ为用户步长,其值可根据用户身高h估算,估算公式为λ=h*0.45;
(S14)不管用户的位置坐标更新与否,智能移动终端每隔1秒记录下当前位置坐标及时间。
在实施例中智能移动终端记录的当前位置坐标及时间如表1所示:
表1
编号 |
时间 |
坐标 |
j0 |
08-2811:53:41 |
(128,129) |
j1 |
08-2811:53:42 |
(132,126) |
j2 |
08-2811:53:43 |
(137,170) |
j3 |
08-2811:53:44 |
(139,176) |
j4 |
08-2811:53:45 |
(143,179) |
j5 |
08-2811:53:46 |
(144,181) |
(S2)智能移动终端每隔1秒采集并存储所处位置能扫描到的AP的MAC地址,对应RSS值及采集时间,该步骤在用户的使用过程中一直执行。
在本实施例中,智能移动终端记录的Wi-Fi信息如表2所示,图3显示了当前实施例提供的室内平面图和用户行走时的Wi-Fi信息采样点,其中R1、R2为房间编号,k0、k1、k2、k3、k4、k5为采集Wi-Fi信息对应的采集编号。
表2
(S3)采集房间内的参考点采集Wi-Fi指纹,利用采集到的所有位置指纹形成Wi-Fi指纹库F。
本实施例中Wi-Fi指纹分为房间内位置指纹和房间外位置指纹,房间内位置指纹由参考点的位置坐标、能扫描到的AP的MAC地址及对应的RSS值、采集时间,房间编号组成;房间外位置指纹与房间内位置指纹的区别在于不包含房间编号。初始指纹库由专业人员建立,只采集房间内位置指纹。参考位置点均匀分布于室内环境的各个房间内,每个房间采集2~3个点,Wi-Fi指纹库F为所有参考点的Wi-Fi位置指纹的集合。
本实施例中,初始指纹库如表3所示,包括两个房间(R1,R2)中保存的三个位置的Wi-Fi指纹。
表3
(S4)每隔5秒对待定位点在该时刻的位置执行一次房间内外判定算法,以区分用户处于房间内还是房间外,根据判定结果更新Wi-Fi指纹库F。
房间内外判定算法操作如下:将待定位点所扫描到的AP的RSS值与位置指纹库中所有具有房间编号的参考点的RSS值逐一进行相似度计算,得到相似度的最大值Smax,若Smax<0.7,则判定待测位置为房间外;若Smax≥0.7,则判定待测位置为房间内。定位点l1与参考点l2的相似度根据如下公式计算:
其中,|A|为集合A中的AP的总个数,A=A1∪A2,A1为待定位点l1扫描到的AP的集合,A2为参考点l2的AP的集合;
f1(a)表示待定位点l1中AP a的RSS值,f2(a)表示参考点l2中AP a的RSS值。若在位置li不能扫描到AP a,则令fi(a)=0,i=1或2。
为了更清楚地解释上述操作,举例说明如下:假设表格2中编号为k1的记录是待定位点当前扫描到的Wi-Fi信息,将该记录中AP的RSS值与表3所示的位置指纹库中所有具有房间编号的参考点的RSS值逐一进行相似度计算,表3中有三个不同的参考点l0,l1和l2,相似度计算结果如下:
由于根据判断规则,判定用户(待定位点)处于房间1内。
更新Wi-Fi指纹库F时,对于不同的判断结果需采用不同的更新方法:
(a)若在时刻T的判定结果为房间内,而在时刻T+5秒的判定结果为房间外,则向Wi-Fi指纹库F添加房间外Wi-Fi指纹,具体做法如下:
首先依次对{T+4,T+3,T+2,T+1}这4秒内存储的Wi-Fi信息逐一执行房间内外判定算法。若首次在时刻T+x(x∈[0,4])的判定结果为房间内,则将T+x+1时刻采集到的Wi-Fi信息与对应的由惯性导航确定的位置坐标作为一条新的房间外Wi-Fi位置指纹存入Wi-Fi指纹库F;
在本实施例中分别在k0和k5对应的时刻执行房间内外判定算法,k0对应的时刻判定结果为房间内,而k5对应的时刻判定结果为房间外。此时依次对k4、k3、k2、k1对应时刻的Wi-Fi信息逐一执行房间内外判定算法。判定结果如表4所示。
表4
编号 |
时间 |
Smax |
房间内/外 |
k4 |
08-2811:53:45 |
0.59 |
外 |
k3 |
08-2811:53:44 |
0.60 |
外 |
k2 |
08-2811:53:43 |
0.62 |
外 |
k1 |
08-2811:53:42 |
0.94 |
内 |
从表4中可以看出,首次在k1对应时刻判定结果为房间内,则将k2对应时刻的Wi-Fi信息与相应时间由惯性导航确定的位置坐标作为一条新的房间外Wi-Fi位置指纹存入Wi-Fi指纹库F,更新后的Wi-Fi指纹库F如表5所示。
表5
(b)若在时刻T和时刻T+5秒的判定结果均为房间内,则向Wi-Fi指纹库F添加房间内Wi-Fi指纹,具体做法如下:
每隔1秒记录加速度ai在这1秒内的方差,若连续10秒的方差值都小于阈值0.01,则判断智能移动终端(用户)处于静止状态,将最近3秒收集到的Wi-Fi信号RSS值取平均,连同对应的房间号、T+15秒时刻由惯性导航确定的位置坐标和最近的采集时间作为一条新的房间内Wi-Fi位置指纹存储。
图4显示了本实施例中用户在不同状态时的加速度方差情况,可以看出连续10秒的方差值都小于阈值0.01,则判断处于静止状态。
(S5)在定位时采集当前时刻待定位点能扫描到的AP的MAC地址及对应RSS值,执行Wi-Fi指纹定位算法,将Wi-Fi指纹定位结果与惯性导航定位的定位结果通过混合定位得出最终定位位置,该最终定位位置将作为下一次惯性导航定位的初始位置。
(S51)对当前时刻待定位点进行Wi-Fi指纹定位:
在定位时采集当前时刻待定位点能扫描到的AP的MAC地址及对应RSS值,根据当前时刻待定位点所扫描到的AP的RSS值与当前位置指纹库中所有参考点的RSS值逐一计算当前时刻待定位点与各个参考点的相似度,以相似度最高的参考点的位置作为Wi-Fi指纹定位的定位结果。
相似度根据步骤(S4)中的相似度公式计算得到。
(S52)利用当前时刻Wi-Fi指纹定位的定位结果果和惯性导航定位的定位结果,根据如下公式计算待定位点的最终定位位置
其中,(x,y)为当前时刻惯性导航定位的定位结果,(x',y')为当前时刻Wi-Fi指纹定位结果,Smax为Wi-Fi指纹定位时得到的最高相似度。定位结果将作为下一次惯性导航定位的初始位置。
以编号为k1的待定位点为例,用户在该点采集到的Wi-Fi信息如表2所示,将它与表3所示的位置指纹库中所有参考点的RSS值逐一进行相似度计算,得到相似度最高的参考点对应的坐标为l1(150,150),而对应时间通过惯性导航得到的定位结果为(132,126),见表1,最后执行混合定位算法,得到最终定位结果为(132+0.946*(150-132),126+0.946*(150-126)),即(149,148.7)。
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。