一种基于气压计和WiFi的混合楼层定位方法与流程

文档序号:12698563阅读:556来源:国知局
一种基于气压计和WiFi的混合楼层定位方法与流程

本发明属于楼层定位技术领域,具体的说,是一种基于气压计和WiFi的混合楼层定位方法。



背景技术:

现代生活中,定位可以分为两个领域:室内定位和室外定位。现有的室外定位已经非常成熟,已有室外定位系统,比如全球定位系统(Global Position System)、伽利略卫星导航系统(Galileo Navigation System)和中国自主研发的北斗一号双星定位系统。作为目前技术最成熟,也是表现最稳健的定位系统,GPS系统利用卫星的测时和测距进行导航,能够以低廉的成本便捷地在全球任何地方、任何时候提供高精度的连续位置、走向、速度、姿态和时间信息。该系统是由分布在互成120度的三个轨道平面上的24颗卫星组成,其中21颗为工作卫星,3颗为在轨备用卫星。每个轨道平面平均分布8颗卫星,对于地球任何位置,均能同时观察到6~9颗卫星,其中GPS的设计粗码定位精度为100m左右,而精码定位精度能达到10m。但由于楼宇的墙壁屏蔽了卫星信号,导致卫星导航系统无法在室内工作,所以室内定位应运而生。

室内定位与室外定位息息相关但又相对独立的。由于室内环境与室外环境截然不同,室内环境可以分为非视距环境和视距环境,大多数室内环境都为视距环境,由室内环境的复杂,如房间结构布局与建筑材料都不尽相同,室内障碍物多都会信号的传播随着环境的不同产生较大的不同。室内的墙壁和物品等障碍物都会对信号进行反射、散射、衍射,引起信号波动,从而导致多径效应。

目前为止,人们对于楼层定位关注甚少,室内定位的研究都主要集中于平面二维定位,很少关注楼层这一信息。从目前两类主流定位算法:1)基于额外硬件的楼层定位算法,2)基于手机传感器的楼层定位算法。我们可以了解到这些算法存在的一些缺陷:

1)由于室内环境的复杂性和阻隔性,GSM信号随着用户的移动在室内变化显著,从而会导致定位精度下降,也可以说是GSM并不是一细粒度的信号,其本身精度并不高。

2)在数据采集阶段,需要用户参与楼层的标定,同时每一栋楼宇都需要标定,这大大增加用户的使用成本,影响用户的交互体验,从而导致其适用性差

3)不能适用于没有内置气压传感器的手机。目前来说,市面上绝大数智能手

机并不具备气压传感器,所以限制了其在真实环境中的应用。

4)该算法得到的楼层的气压指纹数据库不具备离线性质。基于气压传感器的

算法在下述场景并不适用。场景为气压指纹数据库由三个用户手机采集数据训练得到的,而此时三个用户都已离开,新的用户进来就无法实现定位,由于无法将原有的指纹转化为当前楼层的气压指纹图谱。

基于上述两种楼层定位算法的缺陷,我们提出了基于气压计和WiFi的混合楼层定位系统,利用气压辅助WiFi的RSS值建立楼层的RSS指纹图谱以获得高定位精度。



技术实现要素:

为了充分融合气压计与WiFi的优点,提高楼层定位的精度,本发明提出了一种基于气压计和WiFi的混合楼层定位方法。

本发明解决其技术问题所采用的技术方案包括以下步骤:

步骤1、以众包方式采集整栋大楼内所有用户的数据,数据主要包括用户所在位置的RSS向量和气压值;

步骤2、云服务平台对所有用户上传数据进行预处理;

步骤3、云服务平台对预处理后的数据进行校准,得到标准化的数据;

步骤4、对校准后的数据进行数据分析聚类,获得楼层的Baro-RSS指纹图谱;

步骤5、用户对自己所在位置进行实时定位;

所述的步骤1具体实施过程如下:

1-1.用户在室内活动时,通过用户手机中BarFi客户端以一定频率采集附近AP的RSS向量,如果用户手机配备气压传感器,则同时采集气压值;

1-2.步骤1-1采集的RSS向量是一种混合的RSS-Baro的指纹,BarFi客户端会将采集时间和当前手机唯一标识码IMEI也一并记录到该指纹中;假设一个采样点附近里有n个路由器,则每个采样点的RSS-Baro指纹用以下向量表示:

FP={Time,IMEI,Baro,(RSS1,RSS2,RSS3,…,RSSn)}

其中,Time表示当前指纹的采样时间;IMEI表示当前指纹是由哪部手机采样的,用于后续气压聚类;Baro表示该采样点采样时的气压值;RSS1,RSS2,…,RSSn表示附近AP的信息,其中包括附近AP的SSID、BSSID和信号强度RSS值;SSID表示为AP名称,BSSID表示为AP的MAC地址,即路由器的唯一标识码。

所述的步骤2预处理的具体实施过程如下:

2-1.数据合并

由于BarFi客户端采样的时间为200毫秒,因此将同一部手机连续的5条数据,即1s内的数据进行数据合并为一条,合并的方法为气压和WiFi的RSS向量都取均值,从而达到降低数据量的需求,同时也降低传感器偏移对BarFi造成影响;在合并完数据之后,得出一组Baro-RSS的指纹图谱向量FPS={FPi,I=1,2,...,n};

2-2.数据标准化

由于每个采样点附近的AP都各有不同,从而会导致BarFi客户端在对RSS向量进行聚类时没有统一的维度;因此需要进行数据标准化,具体标准化实现过程如下的:

记第i组RSS向量为Vi,总共有n组向量:

在标准化的过程中需对所有向量中的分量求并集,即对Vi到Vn求并集Union,按照并集Union将Vi映射到Fi,如公式2所示;对于该采样点检测不到的AP的值设为经验最小值-110,最终形成标准化RSS向量Fi

所述的步骤3具体实施过程如下:

3-1.云服务平台对步骤2-1标准化处理后的数据进行校准;将数据校准分为两部分:不同设备之间的气压值的校准和不同设备之间的WiFi的RSS向量校准;

所述的不同设备之间的气压值的校准,具体的:

3-1-1.上下楼活动的检测

定义数据结构Activity={ts:startBaro,te:endBaro},来记录用户上下楼活动,其中ts表示上下楼开始的时间,startBaro为开始时间用户所在楼层的气压值,te表示上下楼结束的时间,endBaro为结束时间用户所在楼层的气压;同时也定义U/DTrace(Up/Down Trace)来记录用户上下楼轨迹,假设用户有m次上下楼活动,即Activity1、Activity2、…、Activitym,那么该用户的上下楼轨迹U/DTrace={IMEI:Activity1,Activity2,…,Activitym},其中IMEI为用户的唯一标识码;

3-1-2.基于时间维度的气压校准

首先,在获得不同用户在不同时间的上下楼轨迹U/DTrace之后,U/DTrace包含的气压数据在大多数情况下并不能包含整个楼层,为获得大楼所有楼层的气压数据,将用户的U/DTrace映射到同一时间戳,从U/DTrace中提取每个楼层的气压值,因此定义新的楼层轨迹FTrace,来获取每个楼层的气压信息:

FTrace={(t,b),d1,d2,…,di,…,dk-1} 公式3

其中(t,b)为参考点的时间和气压,参考点为用户最底层,即气压值最高的点;di表示相邻楼层的气压差值;

其次,对楼层轨迹进行基于时间维度的校准,将两条楼层轨迹FTrace的时间转换到同一时间点,假定i和j用户的楼层轨迹FTrace分别为FTi和FTj,以用户i,j的气压轨迹BTrace中相同时间区域中某一时刻作为FTi和FTj的参考时间点t0,然后将FTi的参考时间点从(t1,b1)转换为(t0,bm-d2-d1),FTj的参考时间点从(t1,b1)转换为(t0,bn-d6-d5);其中(t1,b1)为FTi和FTj的楼层轨迹的参考时间点;BTrace={IMEI,B1,B2,….,Bn},其中IMEI为P手机的唯一标识码,Bn表示n时刻的气压。

最后对气压轨迹进行基于时间维度的校准,具体:

将所有的FTrace参照点的气压转换为同一时刻下,校准气压由时间波动引起的误差,为后续的气压的层次聚类做准备;假定FTrace的集合为C,存放结果的集合R,所有FTrace映射到同一时刻的步骤:

①基于时间的交集找出C中最大子集C1,然后将C1存入R中并从C中移除;

②然后选择时间交集中的某一时刻,将C1中的FTrace都映射到该参考点;通过T1时刻,将FTrace集合C中的元素转换为T1时刻的FTrace;

③重复上述步骤①和②,直到C为空集;

④从R中选择最大的两个子集R1,R2,同样的将R1,R2转换为同一时刻的FTrace,合并R1和R2;

⑤重复步骤④,直到R只包含一个元素;

所述的不同设备之间的WiFi的RSS向量的校准,具体的:

由于室内环境的复杂性以及WiFi的多径效应,这里对WiFi的RSS向量的校准很难采用前面气压校准的方式来进行;通过对一组RSS向量相似度的聚类分析而非单个AP的RSS值分析,在不校准不同手机之间的RSS偏差的情况下达到令人满意的定位精度。

所述的步骤4具体实施过程如下:

4-1.基于气压的层次聚类,具体是:

在气压基于时间维度校准完毕后,对气压的数据采用合并模式的层次聚类算法,采用欧式距离作为相似度度量方法,以获得总楼层数K和每一层的气压值;

4-2.基于WiFi的RSS向量的K-Means聚类,具体是:

将4-1中得到的总楼层数k和每一层的气压值作为K-Means聚类的类别数和初始聚类中心,对WiFi的RSS向量进行K-Means聚类,直到聚类中心不在移动时,就能够得到最终楼层的指纹图谱数据库。

所述的步骤5具体实施过程如下:

5-1.通过4-2得到最终楼层的指纹图谱数据库,每位用户都可以获知自己目前所处楼层数,即使用户的手机没有内置气压传感器;用户只需要将手机唯一标识码IMEI,采集的附近AP的RSS向量上传到BarFi客户端的云服务平台;云服务平台能够在K-Means聚类方法后获得的指纹图谱数据库中匹配该用户的RSS向量,然后得到与其最近的中心点,并将该中心点的楼层数返回给用户;

所述的中心点是指K-Means聚类后的每一层的聚类中心。

与现有技术相比,本发明的有益效果如下:

基于气压计和WiFi的混合楼层定位算法通过两种聚类方法解决楼层定位问题。分别为气压的层次聚类分析和WiFi的RSS向量的K-Means聚类。

基于气压计和WiFi的混合楼层定位算法以众包的方式采集数据避免费时费力的现场勘探,也无需预知楼层和WiFi的相关信息。

基于气压计和WiFi的混合楼层定位算法对于设备要求低,仅需部分手机内置气压传感器。而目前智能手机的现状也如此,绝大部分配备WiFi芯片,部分手机内置气压传感器。

在真实环境中基于Android手机实现了BarFi系统,该系统获得了令人满意的定位准确度,仅以占总数12%的气压数据,BarFi定位准确度达到了96.3%。

附图说明

图1为U/DTrace转换为FTrace的过程图。

图2为两条FTrace转换为同一参考点原理图。

图3为所有的FTrace映射到同一时刻的原理图。

图4为本发明流程图;

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅用以解释本发明,并不用于限定本发明。

如图4所示,一种利用气压计和WiFi混合的楼层定位方法,具体步骤如下:

步骤1、以众包方式采集整栋大楼内所有用户的数据,数据主要包括用户所在位置的RSS向量和气压值(如果手机内置气压传感器)。

步骤2、云服务平台对所有用户上传数据进行预处理。

步骤3、云服务平台对预处理后的数据进行校准,得到标准化的数据。

步骤4、对校准后的数据进行数据分析聚类,获得楼层的Baro-RSS指纹图谱。

步骤5、用户的定位。

所述的步骤1具体实施过程如下:

1-1.用户在室内活动时,通过用户手机中BarFi客户端以一定频率采集附近AP的RSS向量,如果用户手机配备气压传感器,则同时采集气压值。数据的采集以后台形式运行,丝毫不会打扰到用户。

所述的BarFi客户端就是用于实现定位的app,需提前安装在手机中。

1-2.步骤1-1采集的RSS向量是一种混合的RSS-气压(下文简称RSS-Baro)的指纹,BarFi客户端会将采集时间和当前手机唯一标识码IMEI也一并记录到该指纹中。假设一个采样点附近里有n个路由器,则每个采样点的RSS-Baro指纹用以下向量表示:

FP={Time,IMEI,Baro,(RSS1,RSS2,RSS3,…,RSSn)}

其中,Time表示当前指纹的采样时间;IMEI表示当前指纹是由哪部手机采样的,用于后续气压聚类;Baro表示该采样点采样时的气压值;RSS1,RSS2,…,RSSn表示附近AP的信息,其中包括附近AP的SSID(AP名称)BSSID(AP的MAC地址,即路由器的唯一标识码)和信号强度RSS值。

所述的步骤2具体实施过程如下:

2-1.通过众包方式采集来的数据量较大,需要对该数据进行预处理,降低数据的冗余度和复杂性,其中预处理具体如下:

2-1-1.数据合并

由于BarFi客户端采样的时间为200毫秒,因此将同一部手机连续的5条数据,即1s内的数据进行数据合并为一条,合并的方法为气压和WiFi的RSS向量都取均值,从而达到降低数据量的需求,同时也降低传感器偏移对BarFi造成影响。在合并完数据之后,得出一组Baro-RSS的指纹图谱向量FPS={FPi,I=1,2,...,n}。

2-1-2.数据标准化

由于每个采样点附近的AP都各有不同,会导致BarFi在对RSS向量进行聚类时没有统一的维度。如果RSS向量不进行数据标准化,会增加BarFi楼层定位算法的时间复杂度。具体的:

记第i组RSS向量为Vi,总共有n组向量:

在标准化的过程中需对所有向量中的分量求并集,即对Vi到Vn求并集Union,按照并集Union将Vi映射到Fi,如下面公式所示。对于该采样点检测不到的AP的值设为经验最小值-110,最终形成标准化RSS向量Fi

所述的步骤3具体实施过程如下:

3-1.云服务平台对步骤2-1标准化处理后的数据进行校准。由于每部手机采用的无线芯片和气压传感器各有不同,会导致采集的RSS向量和气压值出现偏差,所以需要校准不同设备之间的偏差。将数据校准分为两部分,不同设备之间的气压值的校准和不同设备之间的WiFi的RSS向量校准。

3-2.不同设备之间的气压值的校准,具体的:

3-2-1.上下楼活动的检测

定义数据结构Activity={ts:startBaro,te:endBaro},来记录用户上下楼活动,其中ts表示上下楼开始的时间,startBaro为开始时间用户所在楼层的气压值,te表示上下楼结束的时间,endBaro为结束时间用户所在楼层的气压。同时也定义U/DTrace(Up/Down Trace)来记录用户上下楼轨迹,假设用户有m次上下楼活动,即Activity1、Activity2、…、Activitym,那么该用户的上下楼轨迹U/DTrace={IMEI:Activity1,Activity2,…,Activitym},其中IMEI为用户的唯一标识码。

3-2-2.基于时间维度的气压校准

在获得不同用户在不同时间的上下楼轨迹U/DTrace之后,U/DTrace包含的气压数据在大多数情况下并不能包含整个楼层,为获得大楼所有楼层的气压数据,将用户的U/DTrace映射到同一时间戳,从U/DTrace中提取每个楼层的气压值,因此定义新的楼层轨迹FTrace:

FTrace={(t,b),d1,d2,…,di,…,dk-1}

其中(t,b)为参考点的时间和气压,参考点为用户最底层,即气压值最高的点;di表示相邻楼层的气压差值。

因为相邻两层楼之间的气压差值恒定,我们可以将U/DTrace转换为FTrace,如图1所示,图中b3,b4是同一层楼不同时刻的气压值,可以得到b3-b2=b4-b5+d3,我们可以推测出b5是比b2高的楼层气压值,气压差为d3,即用户在t5时刻所处楼层比t2时刻高,楼层气压差为d3,我们通过这种方式将U/DTrace转换为FTrace。

在得到一组FTrace后,我们需要合并所有FTrace以获取某个时刻整个楼层的气压值。由于气压在较长时间后会出现变化,首先我们将两条FTrace中参照点的气压转换为同一时刻下,如图2所示,假定i和j用户的FTrace分别为FTi和FTj,我们以用户i,j的BTrace中相同时间区域中某一时刻作为FTi和FTj参考时间点t0,然后将FTi的参考点从(t1,b1)转换为(t0,bm-d2-d1),FTi的参考点从(t1,b1)转换为(t0,bn-d6-d5)。

参照上述将两条FTrace中参照点的气压转换为同一时刻下的方法,将所有的FTrace参照点的气压转换为同一时刻下,校准气压由时间波动引起的误差,为后续的气压的层次聚类做准备。假定FTrace的集合为C,存放结果的集合R,然后结合图3说明所有FTrace映射到同一时刻的步骤:

①基于时间的交集找出C中最大子集C1,然后将C1存入R中并从C中移除。如图1中{C,D,E}为最大子集。

②然后选择时间交集中的某一时刻,将C1中的FTrace都映射到该参考点。通过T1时刻,将C、D、E的FTrace转换为T1时刻的FTrace。

③重复上述步骤,直到C为空集。

④从R中选择最大的两个子集R1,R2,同样的将R1,R2转换为同一时刻的FTrace,合并R1和R2。如图3中{C,D,E}和{A,B}为最大的两个子集,T3为两个集合选中的参考点,将两集合内所有FTrace都映射到T3时刻。

⑤重复步骤4,直到R只包含一个元素。

3-3.不同设备之间的WiFi的RSS向量的校准,具体的:

由于室内环境的复杂性以及WiFi的多径效应,这里对WiFi的RSS向量的校准很难采用前面气压校准的方式来进行。但是,我们通过实验可以观察到不同手机间的信号波动并不是很大,而且我们基于气压计和WiFi的混合楼层定位算法针对于一组RSS向量相似度的聚类分析而非单个AP的RSS值,所以我们的算法可以在不校准不同手机之间的RSS偏差的情况下达到令人满意的定位精度。

所述的步骤4具体实施过程如下:

4-1.基于气压的层次聚类,具体是:

在气压基于时间维度校准完毕后,对气压的数据采用合并模式的层次聚类算法,采用欧式距离作为相似度度量方法,以获得总楼层数K和每一层的气压值。

4-2.基于WiFi的RSS向量的K-Means聚类,具体是:

将4-1中得到的总楼层数k和每一层的气压值作为K-Means聚类的类别数和初始聚类中心,对WiFi的RSS向量进行K-Means聚类,直到聚类中心不在移动时,就可以得到最终楼层的指纹图谱数据库。

所述的步骤5具体实施过程如下:

5-1.通过4-2得到最终楼层的指纹图谱数据库,每位用户都可以获知自己目前所处楼层数,即使用户的手机没有内置气压传感器。用户只需要将手机唯一标识码IMEI,采集的附近AP的RSS向量上传到BarFi客户端的云服务平台。云服务平台能够在K-Means聚类方法后获得的指纹图谱数据库中匹配该用户的RSS向量,然后得到与其最近的中心点,并将该中心点的楼层数返回给用户。

所述的中心点是指K-Means聚类后的每一层的聚类中心。

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