一种P2P室内导航系统及P2P室内导航方法与流程

文档序号:16256501发布日期:2018-12-12 00:30阅读:982来源:国知局
一种P2P室内导航系统及P2P室内导航方法与流程

本发明涉及室内导航定位技术领域,具体涉及一种p2p室内导航系统及p2p室内导航方法。

背景技术

近年来,随着智能手机的普及,基于智能手机的室内定位与导航方法开始流行开来。目前,有两种常用的室内定位及导航方法:

(1)基于无线接收信号强度(rss)的指纹技术。

虽然该方法在部署了定位基础设施及完成前期指纹采集后,在后期节点能获得较好的定位精度和导航服务,但这种定位与导航系统受到两方面的限制。首先,这种方法高度依赖于由特定供应商预先部署的准确可靠的基础设施,而部署准确可靠的室内定位与导航基础设施需要大量人力和物力的成本。其次,当室内建筑结构发生变化时,更新指纹库数据又带来了大量的成本,如果不及时更新又影响定位与导航服务的质量。最后,详细的室内地图始终需要提供精确的建筑结构和语义场所信息,但难以获得。

(2)依靠惯性传感器的行人航位推算(pdr)技术。

基于惯性传感器的pdr是室内定位及导航的另一种方式,它根据行人前一时刻的位置、步长和航向角来确定当前时刻的位。但是由于其属于相对定位,定位误差会累积。因此,在短时间内,pdr方法可以提供非常高的定位精度;但是在长时间内,随着行走步数的增多,定位误差会随之累积,导致传统的pdr定位在长时间内也不可靠。

近年来,一类基于p2p(peertopeer)室内定位与导航服务开始在流行开来。这种p2p模式可以应用在社交和个人场景中,并有条件地实现了领路者-跟随者(leader-follower)的导航模式。该导航系统通过让用户们以自我激励的方式记录和分享特定的路径跟踪信息,来导航特定的路径跟随者。例如,一群用户先后到达约定的指定地点或供应商希望将顾客引导到他自己的商店。



技术实现要素:

本发明的目的在于解决部分设施部署不完备的建筑物无法为行人提供导航的问题,提出一种基于pdr和地磁的p2p室内导航系统。该导航系统通过跟踪领路者的移动轨迹,将参考路径上的关键参考信息分享给后续跟随者,为跟随者提供及时的步行提示和提醒潜在的路径偏移,确保跟随者跟随领路者的移动轨迹到达同一目的地。

本发明的技术方案如下:

一种p2p室内导航系统,包括领路者参考路径生成模块、路径信息处理模块、跟随者导航路径生成模块和服务器;

路径信息处理模块,包括转弯检测单元、路径计算单元、地磁处理单元,转弯检测单元用于检测领路者和跟随者的转弯点动作,路径计算单元用于计算行走路径长度和航向角,地磁处理单元用于采集领路者和跟随者的地磁序列;

领路者参考路径生成模块,包括路径元化单元和路径信息生成单元,路径元化单元根据所述领路者的转弯点动作对路径进行元化,并对元化路径进行编号,根据所述元化路径编号以及跟随者的转弯点动作、行走路径长度和航向角以及地磁序列得到元化路径信息,

路径信息生成单元根据所述元化路径信息生成参考路径信息,并将所述参考路径信息上传至服务器;

跟随者导航路径生成模块,包括起点锁定单元、元化路径匹配单元和路径偏移检测单元;起点锁定单元用于为跟随者锁定所述起点和初始方位,元化路径匹配单元用于将跟随者的转弯点动作、行走路径长度和航向角、地磁序列,与服务器中对应的所述元化路径信息相匹配;路径偏移检测单元用于检测跟随者是否偏移所述的参考路径。

进一步地,转弯检测单元采用磁力计或陀螺仪检测所述转弯点动作,路径计算单元采用pdr算法计算行走路径长度和航向角,地磁处理单元采用动态时间缩放匹配算法计算领路者和跟随者的地磁序列是否匹配。

本发明还提供一种p2p室内导航方法,包括以下步骤:

s1,领路者选择起点和终点,领路者从所述起点出发并开始生成参考路径;

s2,实时检测领路者的转弯点动作、计算领路者行走的路径长度和航向角以及采集领路者的地磁序列;

s3,当检测到领路者转弯时,对领路者走过的路径编号,形成元化路径;记录每条元化路径上的平均航向角、路径长度、转弯点动作、地磁序列和编号,并上传至服务器;

s4,领路者确认是否到达终点,若是,则结束生成参考路径,若否,则返回步骤s2;

s5,跟随者选择所述起点和终点,并寻找所述起点;

s6,跟随者确定所述起点后,检测跟随者的行走方向,当跟随者行走的航向角与服务器中所述领路者的航向角的误差小于第一阈值时,进入步骤s7;若否,则重复该步骤;

s7,实时检测跟随者的行走路径长度是否已达到提示前方转向的要求,若是,则提示跟随者在前方路口做出与领路者相同的转弯点动作,并进入步骤s8;若否,则实时检测跟随者是否偏离所述参考路径,返回步骤s6;

s8,实时检测跟随者是否转向,若是,则进入步骤s9;

s9,检测跟随者的地磁序列与领路者的地磁序列是否匹配,若是,则开始下一段元化路径匹配,直至跟随者到达所述终点,导航结束。

进一步地,采用pdr算法计算领路者和跟随者行走的路径长度和航向角,采用磁力计收集领路者和跟随者的地磁序列。

进一步地,步骤s6具体为:利用pdr算法实时预估跟随者的航向角,当跟随者的实时航向角与领路者参考路径对应的元化路径上的平均航向角的误差小于第一阈值时,进入步骤s7;若否,则重复该步骤。

进一步地,步骤s7中,实时检测跟随者的行走路径长度是否已达到提示前方转向的要求,具体为:

利用pdr算法计算用户行走的累积路径长度与领路者在该元化路径上行走的累积路径长度之间的误差,若该误差小于第二阈值,则已达到;

进一步地,步骤s7中实时检测跟随者是否偏离所述参考路径,具体为:

利用pdr算法实时预估跟随者的航向角,当跟随者的实时航向角与领路者参考路径对应的元化路径上的平均航向角的误差大于第一阈值时,判定跟随者偏离所述参考路径,持续提醒跟随者,并返回步骤s6。

进一步地,步骤s8具体为:

s8.1,实时检测用户是否转向,若是,则进入步骤s8.2,若否,则利用pdr算法计算跟随者行走的累积路径长度与服务器中领路者在该元化路径上行走的路长之间的误差,若该误差大于所述第二阈值,则提醒用户错过转弯点,并提示返回上一个路口;

s8.2,利用pdr算法实时检测跟随者的转弯点动作与领路者在该转弯点的转弯动作是否匹配,若是,则进入步骤s9,若否,则提醒跟随者转向错误。

进一步地,步骤s9中,检测跟随者的地磁序列与领路者的地磁序列是否匹配,具体为:

s9.1将跟随者某段元化路径上的地磁强度子序列和领路者对应匹配的元化路径上的地磁强度子序列分别表示为:

其中n和k分别表示跟随者元化路径上的总序列长度和领路者对应元化路径上的总序列长度;

s9.2子序列之间的dtw距离表示为

s9.3跟随者地磁序列中的前后采样点的dtw距离之差表示为

s9.4设置一个固定阈值εm,当跟随者在离目标转弯点相近的转弯点转弯时,导航路径上的前后采样点的dtw距离之差εdtw大于εm,导航系统提醒用户发生路径偏移,pdr算法暂停计算路径长度,直到两者的航向角重新匹配,pdr继续运行。

相对于现有技术,本发明的有益效果:

1)本系统没有主机/客户端之分。每个用户都可作为主机,提供路线给其他用户。2)该导航系统仅利用智能手机内部的惯性传感器就可完成室内导航功能。不需要外部基础设施(如wlan接入点、蓝牙接入点等),也不需要建立指纹库等。3)根据上一个行人的路径快速地为下一个行人提供导航信息,避免了提前部署现场,节省了大量的人力资源和施工资源。4)可在大多数场景下提供导航服务,尤其适用于应急情况下的导航(如,临时开会时主持会议人员可事先为与会人员提供到达会议室的路线,商家提供从商场的各入口到商店的路线给顾客等)。

附图说明

图1为导航系统技术框架。

图2为p2p室内导航举例。

图3为生成领路者参考路径的流程。

图4为状态转换图。

图5为生成跟随者导航路径的流程。

具体实施方式

以下结合附图及实施例,对本发明进行进一步的详细说明。

实施例一

如图1所示,本发明所述p2p室内导航系统包括包括领路者参考路径生成模块、路径信息处理模块、跟随者导航路径生成模块和服务器;

路径信息处理模块,包括转弯检测单元、路径计算单元、地磁处理单元,转弯检测单元用于检测领路者和跟随者的转弯点动作,路径计算单元用于计算行走路径长度和航向角,地磁处理单元用于采集领路者和跟随者的地磁序列;

领路者参考路径生成模块,包括路径元化单元和路径信息生成单元,路径元化单元根据所述领路者的转弯点动作对路径进行元化,并对元化路径进行编号,根据所述元化路径编号以及跟随者的转弯点动作、行走路径长度和航向角以及地磁序列得到元化路径信息,

路径信息生成单元根据所述元化路径信息生成参考路径信息,并将所述参考路径信息上传至服务器;

跟随者导航路径生成模块,包括起点锁定单元、元化路径匹配单元和路径偏移检测单元;起点锁定单元用于为跟随者锁定所述起点和初始方位,元化路径匹配单元用于将跟随者的转弯点动作、行走路径长度和航向角、地磁序列,与服务器中对应的所述元化路径信息相匹配;路径偏移检测单元用于检测跟随者是否偏移所述的参考路径。

本实施例中,转弯检测单元采用磁力计或陀螺仪检测所述转弯点动作,路径计算单元采用pdr算法计算行走路径长度和航向角,地磁处理单元采用动态时间缩放(dtw)匹配算法计算领路者和跟随者的地磁序列是否匹配。

实施例二

本实施例提供一种p2p室内导航方法,具体包括以下步骤:

s1,领路者选择起点和终点,领路者从所述起点出发并开始生成参考路径;

s2,实时检测领路者的转弯点动作、计算领路者行走的路径长度和航向角以及采集领路者的地磁序列;

s3,当检测到领路者转弯时,对领路者走过的路径编号,形成多条元化路径;记录每条元化路径上的平均航向角、路径长度、转弯点动作、地磁序列和编号,并上传至服务器;

s4,领路者确认是否到达终点,若是,则结束生成参考路径,若否,则返回步骤s2;

s5,跟随者选择所述起点和终点,并寻找所述起点;

s6,跟随者确定所述起点后,检测跟随者的行走方向,当跟随者行走的航向角与服务器中所述领路者的航向角的误差小于第一阈值时,进入步骤s7;若否,则重复该步骤;

s7,实时检测跟随者的行走路径长度是否已达到提示前方转向的要求,若是,则提示跟随者在前方路口做出与领路者相同的转弯点动作,并进入步骤s8;若否,则实时检测跟随者是否偏离所述参考路径,返回步骤s6;

s8,实时检测跟随者是否转向,若是,则进入步骤s9;

s9,检测跟随者的地磁序列与领路者的地磁序列是否匹配,若是,则开始下一段元化路径匹配,直至跟随者到达所述终点,导航结束。

本发明采用pdr算法计算领路者和跟随者行走的路径长度和航向角,采用磁力计收集领路者和跟随者的地磁序列。

本发明利用陀螺仪实时检测用户是否发生左右转向或者掉头,将复杂路径元转换为多段短直线的元化路径,以减小pdr算法的累积误差。

步骤s5中,跟随者选择所述起点和终点后,依靠室外gps寻找所述起点。

步骤s6具体为:利用pdr算法实时预估跟随者的航向角,当跟随者的实时航向角与领路者参考路径对应的元化路径上的平均航向角的误差小于第一阈值时,进入步骤s7;若否,则重复该步骤。

步骤s7中,实时检测跟随者的行走路径长度是否已达到提示前方转向的要求,具体为:利用pdr算法计算用户行走的累积路径长度与领路者在该元化路径上行走的累积路径长度之间的误差,若该误差小于第二阈值,则已达到。

步骤s7中,实时检测跟随者是否偏离所述参考路径,具体为:利用pdr算法实时预估跟随者的航向角,当跟随者的实时航向角与领路者参考路径对应的元化路径上的平均航向角的误差大于所述第一阈值时,判定跟随者偏离所述参考路径,持续提醒跟随者,并返回步骤s6。

步骤s8中,实时检测跟随者是否转向,具体为:

s8.1,实时检测跟随者是否转向,若是,则进入步骤s8.2,若否,若否,则利用pdr算法计算跟随者行走的累积路径长度与服务器中领路者在该元化路径上行走的路长之间的误差,若该误差大于所述第二阈值,则提醒用户错过转弯点,并提示返回上一个路口;

s8.2,利用pdr算法实时检测跟随者的转弯点动作与领路者在该转弯点的转弯动作是否匹配,若是,则进入步骤s9,若否,则提醒跟随者转向错误。

步骤s9中,dtw地磁序列匹配算法是指动态地磁时间序列的匹配,即输入动态的跟随者的地磁序列,实时与领路者的地磁序列相匹配,根据地磁序列的相似度决定是否匹配成功。具体步骤如下:

s9.1将跟随者某段元化路径上的地磁强度子序列和领路者对应匹配的元化路径上的地磁强度子序列分别表示为:

其中n和k分别表示跟随者元化路径上的总序列长度和领路者对应元化路径上的总序列长度,两者不一定相等。

s9.2子序列之间的dtw距离可以表示为

进一步地,利用dtw地磁序列匹配算法检测用户是否在离转弯点相近的路口转向,其具体步骤如下:

s9.3跟随者地磁序列中的前后采样点的dtw距离之差可表示为

s9.4设置一个固定阈值εm,当跟随者在离目标转弯点相近的转弯点转弯时,由于不同路径上的地磁强度不同,导致导航路径上的前后采样点的dtw距离之差εdtw大于εm,此时导航系统提醒用户发生路径偏移,与此同时,pdr算法暂停计算路径长度直到两者的航向角重新匹配,即跟随者返回至最近的一个元化路径并朝向与领路者一直,pdr继续运行。

现结合图2-5,以张三(领路者)和李四(跟随者)为例,详细说明本发明的实施范例。在某购物大厦内,p品牌店销售人员张三手持手机运行导航系统,从大厦的西面入口沿着路线a->b->c->d->e到达该店,该路线经过处理上传至服务器并分享给所有使用本系统的顾客。顾客李四可使用导航系统沿着同一路线a->b->c->d->e到达该店。

如图3所示,生成领路者张三的参考路径的具体步骤如下:

s1.张三选择起点(某购物大厦西面入口)和终点(p品牌店),系统将该信息上传服务器。张三从起点出发并开始生成参考路径。

s2.pdr算法计算张三行走的路程长度和航向角。同时,磁力计收集地磁强度数值。

s3,当用转弯检测法检测到张三转弯时,系统给张三走过的直线路径编号,同时计算该条元化路径上的平均航向角并将该航向角、张三已走的路径长度、转弯点的动作、地磁序列和元化路径编号上传至服务器,如图2中的路线a->b为元化路径1;b->c为元化路径2;c->d为元化路径3;d->e为元化路径4。

s4.由张三确认是否到达终点,若未到达终点,则重复步骤2-3。若到达终点,张三结束生成参考路径。

所述步骤s2中的pdr算法计算行走长度和估计航向角,其具体步骤如下:

2.1利用电子罗盘估计航向角。

2.2基于状态机完成自适应计步,其具体步骤如下:

2.2.1使用由加速度计收集的三轴线性加速度计数据来计算线性加速度矢量的大小。

2.2.2为了移除高频分量,用一个截止频率为flp=3hz的有限脉冲响应13阶高斯滤波器对加速度值进行滤波。

2.2.3使用状态机来模拟人的步行模式,并且根据状态机的周期来计算步数。不同的状态对应于一个步骤的不同阶段,它们形成了一步的整个过程。c0是平衡状态,c1是增加状态,c2是峰值状态,c3是下降状态,c4是波谷状态,c5是完成状态。为了驱动状态机,设置了四个阈值str1,str2,str3,str4,它们分别对应平衡阶段的上限,波峰的下限,波谷的上限和平衡阶段的下限。状态机运行如图过程如图4所示,状态机执行(a)-(f)指令:

(a)如果状态机处于状态c0,则确定当前线性加速度是否小于str1。如果是,状态机将保持在c0;否则,状态机将进入c1。

(b)如果状态机处于状态c1,则确定当前线性加速度是否小于str2。如果是,状态机将保持在c1中;否则,状态机将进入c2。

(c)如果状态机处于状态c2,则确定当前线性加速度是否小于str3。如果是,状态机将保持在c2中;否则,状态机将进入c3。

(d)如果状态机处于状态c3,则确定当前线性加速度是否小于str3。如果是,状态机将保持在c3;否则,状态机将进入c4。

(e)如果状态机处于状态c4,则确定当前线性加速度是否小于str4。如果是,状态机将保持在c4中;否则,状态机将进入c5。

(f)在c5状态下,根据附属条件确定是否计数一步。如果状态机处于状态c5,则需要确定该周期的信息是否满足附属条件。如果是,则向计数器加1并跳转到状态c0;否则,计数器的值保持不变,并且状态机跳转到状态c0。附属条件为:1)一个周期的时间应该在行人走过一个正常步骤的时间段之内;2)波峰和波谷之间的时间间隔应该满足一个正常步行时间间隔;3)峰值和谷值的差值应该满足一个正常的值域。这样可以减少振动或其他干扰因素的影响,提高精度。

2.3采用两种步长估计方法,并将两种方法用加权的方法融合。第一种步长估计为加速度方差的四次根:

其中,分别为第k步的加速度波峰和波谷值。β为固定比例,γ为补偿值。根据实际,我们将两者分别设为β=1.479和γ=-1.259。另一个步长估计为同时考虑行人身高和步频:

l2=h(afstep+b)+c

其中,a、b和c与行人身高和步频有关,fstep为行人步频。使用基于加权的融合方法来估计步长。

其中,ω1+ω2=1。两个权重的值可以实时调整。例如,当行人身高未知时,ω1被设置为零;当步进频率不能获取时,ω2在运动开始时设置为零;通过将相应的权重设置为零,可以从该融合过程中移除任何异常值。

利用转弯检测法元化路径,该转弯检测法基于加速器计和陀螺仪的输出数据,其具体实施步骤如下:

其中,是实际场景中智能手机收集的陀螺仪数据;(ax,ay,az)是实际场景中智能手机收集的加速度传感器的平均数据;为垂直旋转速度。n和m为窗口大小。实际应用中,对于转弯检测法,当旋转累积角度θ>θth时(θth是一个预设的阈值),即可以认为发生转向。

上传至服务器的元化路径信息记为:

其中,l为根据pdr计算得出的轨迹长度;h为该条路径中的平均航向角;e为转弯点的转向,如左转‘l’和右转‘r’。m为该路径上的地磁强度序列;nr为参考路径元化后的路径集合。

跟随者李四的元化轨迹记为

如图5所示,生成跟随者李四的导航路径的具体步骤如下:

在跟随者校准阶段,依次进行下列步骤:

s5,李四在选择了跟张三同样的起点和终点后,李四依靠室外gps步行至购物大厦西面入口。

s6,确定起点之后,李四根据pdr算法中估计的航向角进一步确定行走方向(与张三一致)。重复该步骤,直到航向角误差小于阈值,则进行下一个阶段。

航向角偏移误差定义为

其中为第i条元化路径上的航向角偏移误差,为导航路径上第i条元化路径上的平均航向角,为参考路径上第i条元化路径上的实时航向角。设置的阈值为一固定值εh,其大小可根据实际用户行走过程中最大摆动确定。

在跟随者直行匹配阶段,依次进行下列步骤:

s7,pdr算法开始检测步态和估计步长。同时,系统提示李四直行。

利用pdr匹配算法实时检测李四行走的路径长度是否已达到可提示前方转向的要求。

在未到达提示点前利用pdr匹配算法实时检测李四是否偏离路径;在到达提示点后,系统提示李四在前方路口做出与张三相同的转向动作。

路径长度匹配的误差定义为:

其中为第i条元化路径上的路径长度偏移误差,为导航路径上第i条元化路径上的路径长度,为参考路径上第i条元化路径上的路径长度。设置的阈值为一固定值εl,其大小可根据实际实验结果确定。

利用pdr匹配算法实时检测李四在直行的路径上是否偏离方向,其航向角误差和阈值定义同步骤s5。当李四的航向角误差大于阈值时,系统判断李四发生转向偏移并持续提醒李四直到航向角误差小于阈值。

在跟随者于领路者转弯匹配阶段,依次进行下列步骤:

步骤s8.1,实时检测李四是否转向,检测到转向后执行下一步。

s8.2,利用pdr匹配算法检测李四是否在转弯点转向错误。检测到转向正确后执行下一步。

s9,利用动态时间缩放(dtw)地磁序列匹配算法检测李四的地磁序列与张三的地磁序列是否匹配。

上述步骤任意一个不满足,说明跟随者李四在转弯匹配阶段的路径都未与领路者张三的路径成功匹配,此时导航会及时提示李四出现路径偏移。结合图2,当不满足上述步骤s7.1时,李四行走的路线为a->b->c->d->f;当不满足上述步骤7.2时,李四行走的路线为a->b->c->d->g;当不满足上述步骤s8时,李四行走的路线为a->b->c->g->i。

所述步骤7.1未能在匹配阶段检测到李四转向,即错误路径a->b->c->d->f。其具体方法为利用pdr算法计算李四行走的累积路径长度并与数据库中领路者张三在该元化路径上行走的路长相匹配。其路径长度误差和阈值定义同步骤s6。系统在g点提醒李四前方路口(d点)右转,李四错过d点后继续向f点前进,此时路径长度差值大于阈值,系统判断李四错过转弯区域,同时提醒李四错过转弯点并提示李四返回上一个的路口(d点)。

所述步骤s7.2中利用pdr匹配算法检测李四是否发生转弯点转向错误,即错误路径a->b->c->d->g。其具体方法为比较李四第i段元化路径上的是否与领路者张三第i段元化路径上的一致。领路者张三在元化路径c->d上保存的动作为右转若检测到跟随者李四在元化路径c->d转弯动作为左转系统提醒李四转向错误。

所述步骤s8中的利用dtw地磁序列匹配算法检测李四是否在离转弯点相近的路口转向,即错误路径a->b->c->g->i。具体步骤如下:

s9.1将跟随者李四某段元化路径上的地磁强度子序列和领路者张三对应匹配的元化路径上的地磁强度子序列分别表示为:

其中n和k分别表示跟随者元化路径上的总序列长度和领路者对应元化路径上的总序列长度,两者不一定相等。

s9.2建立一个二维矩阵g(1...k,1...n)用于计算dtw距离。基于动态规划的思想,dtw算法利用了一个递推方程式来填充矩阵,其表达方式为

为求解之间的欧几里得距离。磁强度序列m1与m2之间的dtw距离为g(k,n),即dtw(m1,m2)=g(k,n)。

子序列之间的dtw距离可以表示为

s9.3跟随者地磁序列中的前后采样点的dtw距离之差可表示为

s9.4设置一个固定阈值εm,当跟随者李四在离目标转弯点(d点)相近的转弯点(g点)转弯时,由于不同路径上(d->e和g->i)的地磁强度不同,导致导航路径上的前后采样点的dtw距离之差εdtw大于εm,此时导航系统提醒李四路径偏移并提示用户返回上一个路口(g点),与此同时,pdr算法暂停计算路径长度直到两者航向角匹配,即李四返回路口g点并且朝向为东面,pdr继续运行。

以上对本发明的优选实施例及原理进行了详细说明,对本领域的普通技术人员而言,依据本发明提供的思想,在具体实施方式上会有改变之处,而这些改变也应视为本发明的保护范围。

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