一种利用智能手机辅助室内定位的方法与流程

文档序号:12068941阅读:312来源:国知局
一种利用智能手机辅助室内定位的方法与流程

本发明涉及一种通过用户的智能手机的气压传感器自动定位用户在建筑物中的哪一层楼的方法,属于定位技术领域。



背景技术:

在当今飞速发展的基于位置的应用领域,利用智能手机进行定位占据着很重要的地位。目前,绝大多数的定位技术都需要一定的基础设施的支持,如蜂窝网络,Wi-Fi无线网络和全球定位系统(GPS)。而这些技术各有各的优缺点,在精度、使用场景上都有限制。在定位技术领域中,如何定位一个用户在一栋建筑物中的哪一层,是一个很热门的问题,因为如果知道了此类信息,就可以据此给用户提供相关的服务,如广告,指路,以及救援搜寻。

目前,公知的定位技术有如下几类:

第一类:基于GPS、GSM、WI-FI等信号

GPS是比较通用的定位技术,他通过卫星定位手机在地球上的经度纬度及高度信息,精度能够达到5米以内,但是这是在室外的情况,在室内情况由于受到建筑物干扰,精度降低很多,无法用来定位用户处于哪一层上。

基于GSM的定位技术不管在室内室外的情况,精度都很低,不能定位用户的楼层;

基于WI-FI的定位技术主要是这样工作的,用户在室内的不同位置手机检测到周围的WI-FI信号强度是不同的,如果预先在室内的每个位置都采集一下WI-FI的信号强度,得到WI-FI信号强度和对应位置的二元组,存储到一个数据库中。当一个新的用户要定位时,只要检测一下当前周围的WI-FI信号强度,然后与数据库中的做对比,找到最接近的,这个最接近的WI-FI信号所对应的位置就是该用户的当前位置。这种技术的缺点在于它需要室内有足够多的WI-FI热点,并且需要一个学习的过程,那就是预先到室内的每个位置采集一下数据,存储到数据库中,这样的工作量是巨大的;还有个缺点就是WI-FI信号强度受到周围环境的影响较大,同一地点不同时候的WI-FI信号强度可能变化,影响定位精度。

第二类:通过手机传感器辅助定位技术

该类技术利用用户手机的感知能力辅助定位,通过手机自带传感器获得的数据可以大致追踪用户的运动路径,如走了多少步,有没有上下楼等可以通过手机的加速度传感器获得加速度数据,再依赖行为识别技术进行识别;由于这种识别方法精度不是很好,现有的技术都是需要在建筑物内安装一些校准装置,称为校准点,校准点会发出一些特殊的信号,用户的手机可以检测到这样的信号,从而校准自己的位置;这样该技术的实现就要预先在建筑物中部署大量的校准点,耗费大量人力物力,而且后期需要较多的维护工作,并不经济实用。

第三类:基于RFID的定位技术

基于RFID的定位技术原理很简单,利用读卡器和标签,当他们彼此之间相互接近的时候,读卡器可以读取到标签,如果这两者中有一方位置是已知的,当读卡动作发生时另一方的位置就知道了。通常有两种方式:1、标签固定,读卡器移动;首先大量标签被部署在建筑物的不同位置,用户携带者便携式的读卡器,由于标签的位置是已知的,所以当用户读到标签时,标签的位置就是用户当前的位置。2、读卡器固定,标签移动,与上一种方法相反,用户手机上贴有标签,而建筑物内部署了许多读卡器,一旦读卡器读到用户的标签,那用户的位置就在该读卡器附近,从而实现了定位。

基于RFID的定位技术精度高,但是有很多缺点,部署大量的读卡器和标签很耗时耗力,而且大量的读卡器和标签是非常昂贵的;一般用户手机上是贴着标签的,因为一般手机不具有读卡器的功能,由于读卡器成本高,在建筑物部署到一定密度的读卡器是很不经济的。

目前主要是利用以上几类技术进行室内定位;但通过第一类和第二类技术相结合的方法实现室内楼层定位的还没有相关报道。



技术实现要素:

发明目的:为了克服现有技术中存在的不足,本发明提供一种利用智能手机辅助室内定位的方法,该方法不需要在建筑物内部署任何软硬件设施,就能够提供高精度的定位服务。

技术方案:为实现上述目的,本发明采用的技术方案为:

一种利用智能手机辅助室内定位的方法,包括以下步骤:

步骤1,数据收集:通过各个智能手机内置的气压传感器采集各智能手机所处位置的气压值,采得的气压值组成各智能手机的气压变化轨迹。通过各个智能手机内置的Wi-Fi无线模块扫描周围的Wi-Fi信号,得到Wi-Fi数据。

步骤2,将气压变化轨迹导入到楼层变换识别算法中,识别各智能手机进行的楼层变换状况。

步骤3,采用气压传感器校准算法获取各个智能手机内置的气压传感器的校准值进行校准,并根据校准值对各智能手机的气压变化轨迹进行校准,得到校准过后的气压变化轨迹集合S。

步骤4,对步骤3校准后的气压变化轨迹导入气压地图生成算法中,生成气压地图。

气压地图生成算法包括以下步骤:

步骤41,在集合S中找到在时间上有重叠的轨迹集合,从中选取一个包含轨迹数目最多的集合V。

步骤42,选取集合V中所有轨迹都重叠的一个时间t,对每条轨迹,读取在时间t时对应的气压读数p,再读取离t最近的一个变换楼层行为的起点气压p’计算Drift’=p-p’,Drift’表示气压读数差值。

步骤43,对每个轨迹的气压图的P0调整相应的气压读数差值Drift’值,得到更新的轨迹气压图TMap={P0+Drift’,P1+Drift’,…,Pi+Drift’∣1≤i≤n}。

步骤44,对集合V中所有轨迹的TMap中的气压值做聚类,得到f个类,每个类取所有元素的平均值,得到气压地图BarMap={P0,P1,…,Pi∣1≤i≤f},转换之后的气压地图BarMap={t,P1,{Δpi(i+1)∣1≤i≤f}}。

步骤5,根据步骤4中得到的气压地图利用Wi-Fi地图生成算法获得该建筑物的Wi-Fi地图。

Wi-Fi地图生成算法如下:首先根据步骤1得到的气压变化轨迹和Wi-Fi数据,获取同一部智能手机采集的气压变化轨迹一和Wi-Fi数据一。然后根据气压地图将气压变化轨迹一根据楼层不同分段,记录每一段的起止时间和楼层,然后根据起止时间将对应的Wi-Fi数据一分段,从而知道了每段Wi-Fi数据一对应的楼层。最后,将该建筑物中所有用户的相同楼层的Wi-Fi数据一片段合并到一起,获得该建筑物的Wi-Fi地图。

步骤6,智能手机根据当前采集到的气压值读数与气压地图BarMap进行对比,判断当前智能手机处于的楼层。或者智能手机根据当前采集到的Wi-Fi数据对比Wi-Fi地图定位自己的楼层。

优选的:所述步骤2中的楼层变换识别算法包括非电梯楼层变换和电梯楼层变换,其中:

电梯楼层变换的识别方法:首先对气压轨迹数据进行过滤处理,其次对过滤后的数据进行平滑处理,最后对平滑的曲线求导,得到导数曲线图。对于导数曲线图上的每个峰谷,当它的极值点绝对值大于0.2时,我们就判定发生了一次数据采集手机乘坐电梯触发的楼层变换,起止时间就是这个波峰或者波谷的起止时间,气压变化就是起止时间的气压值的差值。

非电梯楼层变换的识别方法:使用窗口机制,每个大窗口包括10个小窗口,每个小窗口包含1秒钟的气压值,以其平均值作为小窗口的值,当第一个小窗口和第10个小窗口的气压值差大于最大气压差VarMax时,就认为气压进入不稳定状态,反之则为稳定状态,当从稳定状态到不稳定状态,再到稳定状态,如果持续时间在确定的范围以内,就判断这是一次变换楼层的行为。

优选的:所述步骤2中对气压轨迹数据进行过滤处理的方法:计算相邻两个气压值的差值Var=Pi-Pi+1,Pi表示第i个气压值。如果差值Var大于气压阈值TS2时,则删除这两个气压值。

优选的:所述步骤2中对数据的平滑处理的方法:对过滤后的轨迹中的第i个气压值Pi值取为其左右各15个点的平均值,完成对数据的平滑处理。

优选的:所述步骤2中对平滑的曲线求导得到导数曲线图的方法:选取一个大小为10的窗口,对每个气压数据点Pi,该点的导数值为(Pi+10-Pi)/10。

优选的:所述步骤3中气压传感器校准算法如下:对处于相同气压环境的智能手机,选取其中的一个智能手机上的气压传感器的读数为基准,其他的处于相同气压环境的智能手机的气压传感器与其进行校准。

优选的:所述步骤3中判断智能手机处于相同气压环境的方法如下:

在两个智能手机在同一个电梯里的时候进行校准:根据如下条件:(1)tB=tA。(2)t’B=t’A。(3)ΔpB=ΔpA。其中tA tB是智能手机A和智能手机B各自的一个乘坐电梯行为的开始时间,t’A t’B是这两个电梯行为的结束时间,ΔpAΔpB分别是这两个电梯行为对应的气压的变化值。如果以上三个条件满足,则在某个时间点t两个智能手机处于相同气压环境,其中t在tB-t’B之间。

或者在两个智能手机周围Wi-Fi信号非常接近时校准,具体方法如下:首先定义一个Wi-Fi信号样本为Wi-Fi无线模块进行一次Wi-Fi扫描得到的Wi-Fi热点和该热点的信号强度的集合,如:

Sample a={<id,s>…}

其中id为热点的MAC地址,s为热点的信号强度数值。

其次,计算两个Wi-Fi样本的距离方法是使用欧氏距离:

Distanceab2=((a.s1-b.s1)2+(a.s2-b.s2)2+…)

最后,设定一个位置阈值TS1,当Distance ab小于位置阈值TS1时,就判断两个智能手机在物理上非常接近的位置,即两个智能手机处于相同气压环境。

优选的:所述步骤3中对于校准过后的气压变化轨迹集合S中所有智能手机,根据校准值将其气压轨迹进行校准。校准方法就是将气压轨迹上每个气压值加上其与标准智能手机的读数差值drift,得到校准后的气压轨迹,选取轨迹中第一个变换楼层的开始气压P0,再获得往后每一个变换楼层的气压变化Δp,得到该轨迹的气压图TMap={P0,P1,…,Pi∣1≤i≤n},其中n为行为数目,其中Pi=P0+Δp1+…+Δpi

优选的:所述步骤41中判断时间重叠的方法如下:轨迹一T1和轨迹二T2,轨迹一T1起止时间是ts1和te1,轨迹二T2的开始和结束时间是ts2和te2,轨迹一T1和轨迹二T2时间重叠的条件是:ts1≤ts2≤te1或者ts2≤ts1≤te2

有益效果:本发明相比现有技术,具有以下有益效果:

1)不需要用户参与或者提供任何信息,该技术可以自动的定位用户的楼层。

2)该技术不使用GPS或者GSM等传统的定位方法,而是创新的使用气压计和Wi-Fi来进行定位,使得定位结果更精确。

3)该技术在用户Wi-Fi打开时才采集Wi-Fi,除此只采集气压数据,能耗非常低,更节能。

4)定位楼层是在用户客户端程序本地进行的,只有客户本地知道自己的楼层位置,保护了隐私,而现有技术是通过第三方定位用户的位置,隐私得不到保护。

附图说明

图1是基于电梯的气压传感器校准方法图示。

图2是用户乘坐电梯后的气压传感器轨迹原始数据及处理后的数据。

图3是用户气压轨迹曲线求导的结果。

图4是气压地图生成算法图示。

图5是气压地图生成算法图示,主要介绍通过轨迹的重叠时间计算Drift值。

图6是解释如何通过聚类的方法得到每个楼层间的气压差值。

图7根据气压数据的不同分段,找到每个楼层对应的Wi-Fi数据分段。

图8是系统运行的总体流程。

具体实施方式

下面结合附图和具体实施例,进一步阐明本发明,应理解这些实例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。

一种利用智能手机辅助室内定位的方法,如图8所示,包括以下步骤:

步骤1,数据收集:通过各个智能手机内置的气压传感器采集各智能手机所处位置的气压值,采得的气压值组成各智能手机的气压变化轨迹。通过各个智能手机内置的Wi-Fi无线模块扫描周围的Wi-Fi信号,得到Wi-Fi数据。

步骤2,将气压变化轨迹导入到楼层变换识别算法中,识别各智能手机进行的楼层变换状况。

所述步骤2中的楼层变换识别算法包括非电梯楼层变换和电梯楼层变换,其中:

电梯楼层变换的识别方法:首先,对气压轨迹数据进行过滤处理,过滤处理的方法如下:计算相邻两个气压值的差值Var=Pi-Pi+1,Pi表示第i个气压值。如果差值Var大于气压阈值TS2时,则删除这两个气压值。

其次,对过滤后的数据进行平滑处理,平滑处理的方法如下:对过滤后的轨迹中的第i个气压值Pi值取为其左右各15个点的平均值,完成对数据的平滑处理。

最后,对平滑的曲线求导,得到导数曲线图。方法如下:选取一个大小为10的窗口,对每个气压数据点Pi,该点的导数值为(Pi+10-Pi)/10。对于导数曲线图上的每个峰谷,当它的极值点绝对值大于0.2时,我们就判定发生了一次数据采集手机乘坐电梯触发的楼层变换,起止时间就是这个波峰或者波谷的起止时间,气压变化就是起止时间的气压值的差值。

非电梯楼层变换的识别方法:使用窗口机制,每个大窗口包括10个小窗口,每个小窗口包含1秒钟的气压值,以其平均值作为小窗口的值,当第一个小窗口和第10个小窗口的气压值差大于最大气压差VarMax时,就认为气压进入不稳定状态,反之则为稳定状态,当从稳定状态到不稳定状态,再到稳定状态,如果持续时间在确定的范围以内,就判断这是一次变换楼层的行为。

步骤3,采用气压传感器校准算法获取各个智能手机内置的气压传感器的校准值进行校准,并根据校准值对各智能手机的气压变化轨迹进行校准,得到校准过后的气压变化轨迹集合S。

其中气压传感器校准算法如下:对处于相同气压环境的智能手机,选取其中的一个智能手机上的气压传感器的读数为基准,其他的处于相同气压环境的智能手机的气压传感器与其进行校准。

判断智能手机处于相同气压环境的方法如下:

在两个智能手机在同一个电梯里的时候进行校准:根据如下条件:(1)tB=tA。(2)t’B=t’A。(3)ΔpB=ΔpA。其中tA tB是智能手机A和智能手机B各自的一个乘坐电梯行为的开始时间,t’A t’B是这两个电梯行为的结束时间,ΔpAΔpB分别是这两个电梯行为对应的气压的变化值。如果以上三个条件满足,则在某个时间点t两个智能手机处于相同气压环境,其中t在tB-t’B之间。

或者在两个智能手机周围Wi-Fi信号非常接近时校准,具体方法如下:首先定义一个Wi-Fi信号样本为Wi-Fi无线模块进行一次Wi-Fi扫描得到的Wi-Fi热点和该热点的信号强度的集合,如:

Sample a={<id,s>…}

其中id为热点的MAC地址,s为热点的信号强度数值。

其次,计算两个Wi-Fi样本的距离方法是使用欧氏距离:

Distanceab2=((a.s1-b.s1)2+(a.s2-b.s2)2+…)

最后,设定一个位置阈值TS1,当Distance ab小于位置阈值TS1时,就判断两个智能手机在物理上非常接近的位置,即两个智能手机处于相同气压环境。

对于校准过后的气压变化轨迹集合S中所有智能手机,根据校准值将其气压轨迹进行校准。校准方法就是将气压轨迹上每个气压值加上其与标准智能手机的读数差值drift,得到校准后的气压轨迹,选取轨迹中第一个变换楼层的开始气压P0,再获得往后每一个变换楼层的气压变化Δp,得到该轨迹的气压图TMap={P0,P1,…,Pi∣1≤i≤n},其中n为行为数目,其中Pi=P0+Δp1+…+Δpi

步骤4,对步骤3校准后的气压变化轨迹导入气压地图生成算法中,生成气压地图。

气压地图生成算法包括以下步骤:

步骤41,在集合S中找到在时间上有重叠的轨迹集合,从中选取一个包含轨迹数目最多的集合V。

判断时间重叠的方法如下:对于轨迹一T1和轨迹二T2,轨迹一T1起止时间是ts1和te1,轨迹二T2的开始和结束时间是ts2和te2,轨迹一T1和轨迹二T2时间重叠的条件是:ts1≤ts2≤te1或者ts2≤ts1≤te2

步骤42,选取集合V中所有轨迹都重叠的一个时间t,对每条轨迹,读取在时间t时对应的气压读数p,再读取离t最近的一个变换楼层行为的起点气压p’计算Drift’=p-p’,Drift’表示气压读数差值。

步骤43,对每个轨迹的气压图的P0调整相应的气压读数差值Drift’值,得到更新的轨迹气压图TMap={P0+Drift’,P1+Drift’,…,Pi+Drift’∣1≤i≤n}。

步骤44,对集合V中所有轨迹的TMap中的气压值做聚类,得到f个类,每个类取所有元素的平均值,得到气压地图BarMap={P0,P1,…,Pi∣1≤i≤f},转换之后的气压地图BarMap={t,P1,{Δpi(i+1)∣1≤i≤f}}。

步骤5,根据步骤4中得到的气压地图利用Wi-Fi地图生成算法获得该建筑物的Wi-Fi地图。

Wi-Fi地图生成算法如下:首先根据步骤1得到的气压变化轨迹和Wi-Fi数据,获取同一部智能手机采集的气压变化轨迹一和Wi-Fi数据一。然后根据气压地图将气压变化轨迹一根据楼层不同分段,记录每一段的起止时间和楼层,然后根据起止时间将对应的Wi-Fi数据一分段,从而知道了每段Wi-Fi数据一对应的楼层。最后,将该建筑物中所有用户的相同楼层的Wi-Fi数据一片段合并到一起,获得该建筑物的Wi-Fi地图。

步骤6,智能手机根据当前采集到的气压值读数与气压地图BarMap进行对比,判断当前智能手机处于的楼层。或者智能手机根据当前采集到的Wi-Fi数据对比Wi-Fi地图定位自己的楼层。

如图1所示,是实现本发明的软件结构示意图,包括客户端部分和服务器部分:

客户端部分:包括客户端数据收集模块、楼层变换识别算法模块、气压定位算法模块、Wi-Fi定位算法模块。

使用方法:客户端应用程序,它被发布在Android Market或者Apple Store上共用户下载,移动手机用户免费下载并安装该应用程序,打开应用程序后将得到楼层位置的服务。

客户端功能:为用户提供实时的楼层位置信息。

客户端程序的设计和主要工作,

a)每1秒采集4-5个气压数据,并存储在文件中;

b)实时利用气压数据,运行“楼层变换识别算法”,将识别结果写入文件。

c)如果手机的Wi-Fi处于打开状态,则每5秒扫描一次Wi-Fi信号并存储在文

件中。

d)通过手机网络每天向中心服务器端发送一次采集的气压和Wi-Fi数据。

e)从中心服务器下载气压地图和Wi-Fi地图。

f)运行气压定位算法和Wi-Fi定位算法实现楼层定位。

服务器端功能:为系统的运行提供数据支撑。包括气压传感器校准算法模块、气压地图生成算法模块、Wi-Fi地图生成算法模块;

服务器端程序的设计和主要工作:

a)保持在线,实时接收客户端程序上传的气压和Wi-Fi数据;

b)运行气压传感器校准算法,校准所有用户的气压传感器;

c)运行气压地图生成算法,得到气压地图;

d)运行Wi-Fi地图生成算法,得到Wi-Fi地图;

e)将气压地图和Wi-Fi地图发送给所有客户端程序。

具体工作流程如下:

1)当用户在室内时,用户手机运行本案的手机客户端程序,客户端程序每秒钟采集4-5个气压传感器读数,组成用户的气压变化轨迹,记录在存储卡中;如果用户手机Wi-Fi处于打开状态(为了省电,该客户端不主动打开用户的Wi-Fi设备),则每5秒钟扫描一次周围的Wi-Fi信号;气压和Wi-Fi数据都写入到用户手机的存储卡中。

2)本案手机客户端程序在采集气压数据的同时,运行着基于气压的行为识别算法,称为“楼层变换识别算法”,实时识别用户在上楼还是下楼,判断上楼和下楼的起止时间和高度,并记录到存储卡中。

3)当用户手机连接到网络时(网络可访问时),本案手机客户端程序将记录到存储卡中的文件上传到一个中心服务器中。根据气压轨迹文件和Wi-Fi数据文件,中心服务器运行“气压传感器校准算法”对所有用户手机的气压传感器读数进行校准。

4)中心服务器读取同一个建筑物中所有用户上传的气压轨迹文件,运行“气压地图生成算法”,获得该建筑物的气压地图(包括每层楼的当前气压值),然后反馈给所有手机客户端,此时,手机客户端就根据当前的气压值读数与气压地图进行对比,判断当前用户处于的楼层。

5)气压地图生成后,中心服务器读该建筑物中所有用户上传的Wi-Fi数据文件和气压轨迹文件,运行“Wi-Fi地图生成算法”,获得该建筑物的Wi-Fi地图(包括每层楼的Wi-Fi信号);然后反馈给所有手机客户端,此时,如果用户手机没有气压传感器,就可以根据当前周围的Wi-Fi信号判断楼层。

气压传感器校准算法:

要对所有用户的气压计进行校准,本案适用相对校准的方法,即选取一个用户A,以他的气压传感器读数为基准,让气压用户的传感器与其进行校准。具体做法,本案首先对用户的气压计进行两两校准,比如用户A,B和C。通过我们的校准方法,首先对A与B之间进行了校准,然后对B与C之间进行了校准,根据传递的方法,我们即可推到出对A与C之间的校准,以此方式达到所有用户都与A之间进行校准。

任意两个用户校准方法如下:如用户A与B,当确知A与B正处在相同气压值的环境中时(如在同一个楼层),A与B由于没有校准,所以气压计读数是不一样的,这时,本算法获得A与B的读数差值,称为DriftAB,这就完成了A与B之间的校准,之后只要将B的读数加上DriftAB那就得到了校准后的读数。如何判断A与B正处于相同气压环境,我们有两种方法:

方法1)在两个用户在同一个电梯里的时候进行校准,具体判别方法是根据如下条件:(1)tB=tA;(2)t’B=t’A;(3)ΔpB=ΔpA;其中tA tB是用户A和B各自的一个乘坐电梯行为的开始时间,t’A t’B是这两个电梯行为的结束时间,ΔpAΔpB分别是这两个电梯行为对应的气压的变化值。如果以上三个条件满足(如图1),说明用户A和B曾经在某个电梯中同时出现,该方法将当时某个时间点t他们的气压读数相减(PAt-PBt=DriftAB),就得到DriftAB

方法2)在两个用户周围Wi-Fi信号非常接近时校准,此时用户A和B应该处于物理上非常接近的位置,因为同一地点周围Wi-Fi信号是很接近的,反之不然。这样A和B正处于相同的气压环境,该方法将此时他们的气压读数相减,就得到了DriftAB。如果用户A当时的Wi-Fi设备是关闭着的,该方法就不能使用。

如何判断Wi-Fi信号非常接近,首先我们定义一个Wi-Fi信号样本为,手机进行一次Wi-Fi扫描得到的Wi-Fi热点和该热点的信号强度的集合,如:

Sample a={<id,s>…},

其中id为热点的MAC地址,s为热点的信号强度数值。计算两个Wi-Fi样本的距离方法是使用欧氏距离,公式如下:

Distanceab2=((a.s1-b.s1)2+(a.s2-b.s2)2+…)。

当Distance ab小于某个阈值TS1(threshold)时,算法就判断两个用户在物理上非常接近的位置,这时选取当前的两个气压读数相减获得校准值(PAt-PBt=DriftAB)。

楼层变换识别算法

1)读取用户的气压轨迹文件,首先对气压轨迹数据进行过滤处理,具体方法是计算相邻两个气压读数的差值Var=Pi-Pi+1,如果Var大于某个阈值TS2时,则删除这两个气压值。

2)经过方法1)过滤掉噪声后,得到如图2中两条轨迹线的上面一条轨迹线,然后做平滑处理使数据轨迹变的平顺如图2中下面一条轨迹。平滑方法是对轨迹中的每一个气压数据点Pi,将Pi值取为其左右各15个点的平均值。

3)对平滑的曲线求导,得到导数曲线图,如图3,求导的方法是选取一个大小为10的窗口,对每个气压数据点Pi,改点的导数值为(Pi+10-Pi)/10。如图3所示,会发现导数值出现多个峰谷,对与每个峰谷,当他的极值点绝对值大于0.2时,我们就判定发生了一次用户乘坐电梯触发的楼层变换。起止时间就是这个波峰或者波谷的起止时间,气压变化就是起止时间的气压值的差值。

4)对于非电梯的楼层变换,如爬楼梯或者乘坐手扶电梯,如图2,我们使用窗口机制,每个大窗口包括10个小窗口,每个小窗口包含1秒钟的气压读数,以其平均值作为小窗口的值,当第一个小窗口和第10个小窗口的气压值差大于VarMax时,就认为气压进入不稳定状态,反之则为稳定状态,当从稳定状态到不稳定状态,再到稳定状态,如果持续时间在某个确定的范围以内,算法就判断这是一次变换楼层的行为。

气压地图生成算法

气压地图包括时间t,底层气压P1,以及相邻两层气压差Δpi(i+1)。结构为:BarMap={t,P1,{Δpi(i+1)∣1≤i≤f}}其中f为楼层数目。说以气压地图是时间t的一个函数,他是随着时间变化而动态更新的,t不同则P1不同,而定位用户时,需要当前时间下的气压地图。

算法分为以下几个步骤:

1)对于校准过后的集合S中所有用户,根据校准值将其气压轨迹进行校准。校准方法就是将气压轨迹上每个气压值加上其与head节点的drift,得到校准后的气压轨迹,选取轨迹中第一个变换楼层的开始气压P0,再获得往后每一个变换楼层的气压变化Δp,得到该轨迹的气压图TMap={P0,P1,…,Pi∣1≤i≤n},如图4,其中n为行为数目,其中Pi=P0+Δp1+…+Δpi

2)在集合S中找到在时间上有重叠的轨迹集合,从中选取一个包含轨迹数目最多的集合V。判断时间重叠的方法如下:轨迹T1和T2,T1起止时间是ts1和te1,T2的开始和结束时间是ts2和te2,T1和T2时间重叠的条件是:ts1≤ts2≤te1或者ts2≤ts1≤te2。如图5中两个轨迹就是重叠的。

3)选取V中所有轨迹都重叠的一个时间t,对每条轨迹,读取在时间t时对应的气压读数p,再读取离t最近的一个变换楼层行为的起点气压p’计算Drift’=p-p’。举例如图5中的t0就是重叠时间,ΔPtA和ΔPtB就是两个Drift。

4)对每个轨迹的气压图的P0调整相应的Drift’值,得到更新的轨迹气压图TMap={P0+Drift’,P1+Drift’,…,Pi+Drift’∣1≤i≤n}。

5)对集合V中所有轨迹的TMap中的气压值做聚类(cure聚类方法),得到f个类,每个类取所有元素的平均值,得到BarMap={P0,P1,…,Pi∣1≤i≤f},转换之后得到BarMap={t,P1,{Δpi(i+1)∣1≤i≤f}}。示例如图6。

6)中心服务器将将BarMap发送给每个用户客户端,客户端根据BarMap和3)中的方法计算得到当前时间的BarMap,然后定位自己的楼层。

Wi-Fi地图生成算法

如图7,根据气压地图将气压轨迹文件根据楼层不同分段,记录每一段的起止时间和楼层,然后根据起止时间将对应的Wi-Fi文件分段,从而知道了每段Wi-Fi文件对应的楼层;最后,将该建筑物中所有用户的相同楼层的Wi-Fi文件片段合并到一起,获得该建筑物的Wi-Fi地图。

气压定位算法

采集当前的气压读数P,查询气压地图,找到与P最接近的Pi,则当前用户的楼层就是i。

Wi-Fi定位算法

利用Wi-Fi扫描一次周围的Wi-Fi信号,得到一个Wi-Fi Sample为S,查询Wi-Fi地图,在其中找到一个与该Sample距离最近的Wi-Fi Sample为S i,则当前用户的楼层就是i。

运行着本发明客户端的用户(智能手机),当他在建筑物中行走时,客户端程序在不断收集着气压和Wi-Fi信号数据,一段时间以后,客户端将数据传输到中心服务器,中心服务器收集到许多客户端上传的数据,运行气压和Wi-Fi地图生成算法,得到气压和Wi-Fi地图,这时客户端程序从中心服务器下载气压和Wi-Fi地图,对于有气压传感器的用户手机,客户端程序直接读取当前的气压读数,与气压地图做比较即可得知当前的楼层;对于没有气压传感器的用户手机,客户端程序扫描一次Wi-Fi,与Wi-Fi地图做比较即可得知当前的楼层。这样就实现了用户的楼层定位功能。

本发明是属于第一类和第二类技术相结合的方法实现室内楼层定位,使用的是手机Wi-Fi功能和气压传感器,目前市场上的最新的手机许多都已经配备了气压传感器,主要用于辅助GPS定位;由于气压传感器的高灵敏度,我们将其利用在了楼层定位上;而Wi-Fi是当前所有手机几乎都配备的功能,对于没有气压传感器的手机用户,我们使用Wi-Fi对其进行楼层定位。通过手机的气压传感器监测到用户在建筑物内运动时的气压的变化轨迹;当多个用户在同一部电梯里时,或者多个用户的Wi-Fi读数很接近时,两两校准用户的气压传感器;用户的气压变化轨迹都会上传到一个中心服务器,服务器端将多个轨迹合并起来,得到一个包含当前每个楼层气压值的轨迹图,从而根据用户的气压读数定位楼层。再根据已知楼层用户周围的Wi-Fi信号,建立一个与楼层对应的Wi-Fi地图,利用Wi-Fi地图可以为手机没有气压传感器的用户定位楼层。该方法能够定位用户在当前建筑物的哪一层楼上,以此缩小室内定位的范围并提高定位精度。

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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