一种多传感器融合的室内三维导航系统*
2018-05-03陈立建杨志凯施伟元邬锦彬毛科技王万良
陈立建,杨志凯,施伟元,邬锦彬,毛科技*,王万良
(1.浙江工业大学计算机科学与技术学院,杭州 310023;2.浙江广播电视大学萧山学院,杭州 311201)
近年来,随着移动网络与智能终端的普及,室内导航系统在一些特定场合的实用性和必要性已经日益显著,其应用前景广阔,研究意义非常大。例如在大型商场中的智能导购;在陌生的办公楼里寻找会议室;在庞大的停车场寻找停泊的位置等。全球定位系统GPS(Global Positioning System)被广泛应用于室外导航系统,然而由于信号衰减以及多径效应的影响,该系统只能工作在户外开阔地带,无法实现室内复杂环境下的可靠定位[1]。早期对室内定位系统的研究大部分基于红外线、超声波、激光测距和射频无线标签等[2]。这些定位系统虽然可以达到理想的定位精度,但是它们的定位范围较小,并且需要特定设备来获取信号,在日常生活中并不实用。因此,设计一种精确可靠,实时性高的室内导航方式来满足人们日益增长的室内定位服务需求具有重要意义。
针对上述问题,本文提出了一种基于地磁指纹的众包室内导航方法。本导航系统充分利用了建筑物内地磁场局部异常且长期稳定的特点,借助众包思想让用户参与到指纹地图数据库构建工作中,通过基于动态时间规整DTW(Dynamic Time Warping)的地磁指纹匹配算法实现定位并导航。
1 相关工作
基于WiFi的室内定位系统通过将待定位目标的位置指纹特征与位置指纹数据库进行匹配来获得目标的位置,这种方法也称为“位置指纹法”[3]。相关研究成果如陈斌涛[4]等人设计并实现的一种基于WiFi射频信号强度指纹的室内定位方法,该方法有效降低了在实际使用过程中用户手持手机的方向、用户的身体遮挡以及使用环境的动态变化对RSSI值所带来的影响。文献[5]基于RSSI指纹信息,同时在构建位置指纹地图时加以考虑普通用户的运动轨迹,在保障定位精度的同时减少了约三分之二构建指纹地图的工作量。与基于WiFi的室内定位导航相类似的还有基于蓝牙的室内定位系统[6]。然而,基于WiFi和蓝牙的室内定位方法也存在着缺陷,最明显的一点就是它们都非常依赖无线基础设施,需要安装大量昂贵的无线基站(无线AP及蓝牙基站),对于那些还未架设无线基础设施的场景便束手无策。无线基站的数量及分布也对定位有着重要影响。假如定位基站节点失效,那么用户设备所采集到的指纹数据将无法与数据库中的指纹数据进行成功匹配,最终导致无效的定位结果。同时,两者的信号在室内都容易受到人体、障碍物等影响从而导致信号强度严重衰减。
相比于WiFi和蓝牙信号,地磁信号同样易于获取。有研究表明,自然界中许多动物如海龟、龙虾等能够利用磁场辨别方向和感知位置[7],进而完成迁徙。事实上,地球表面大量的含铁物质、矿物等的存在使得磁场产生了异常,正是这些局部异常的地磁场为这些动物指引航向。在建筑物内,建筑物本身的钢筋混凝土,电子设备,电梯等都会对附近的磁场产生影响[8],产生局部的“磁异常”,形成一种与位置相关、长期稳定且无处不在的特殊信号。这些地磁异常信号能够提供位置指纹信息。Akia[9]、Emter[10]、Lau[11]、Vallivaara[12]等人成功地在智能机器人、智能小车上利用地磁异常进行定位导航。因此,研究人员逐渐将研究目标投向易于获取并且更加稳定且无处不在的地磁信号。
利用地磁信号作为位置指纹信息进行定位最开始用于机器人自定位[13]。芬兰Oulu大学的Haverinen[12]等人设计了一种基于地磁信号以及粒子滤波的室内导航系统,并成功应用于机器人的室内导航。然而他们的系统最初只能在一维空间(如矿道)定位并且需要事先采集大量用于匹配的地磁数据。Gozick[14]等人在他们的研究中描述了如何利用室内地磁信息的独特性构建路标进而区分不同的教室、实验室、走廊等。并且进行了大量的实验,分析了柱子的尺寸、不同形状材质的柱子以及设备与柱子之间的距离对地磁数据的干扰程度。Lau[11]等人通过对海龟利用地磁进行导航这一现象进行深入研究及仿效,利用高斯混合模型对矢量磁场进行建模,并采用直接似然法获取估计位置,同时利用这些估计位置作为“伪训练数据”提高高斯混合模型的回归效率。该算法在智能小车上成功地进行了实验,取得了较好的定位精度。文献[15]利用惯性导航技术进行了相对定位获得移动载体的三维空间中的相对位置,使用地磁匹配算法MSD进行绝对定位,并给予Android平台实现了该室内导航系统。
现阶段对于基于地磁信号的室内定位导航系统的研究存在着不少缺陷:粒子滤波在基于地磁信号的室内定位导航系统中一种常用的算法,但它容易被行为模型误差所影响,导致定位误差较大且容易失效;基于高斯混合模型及似然估计方法的室内定位系统计算开销大、回归效率较低,导航的实时性并不好;构建地磁指纹数据库是一件非常耗费人力物力的任务,现有的系统并没有解决繁杂的地磁指纹数据的构建工作。文献[16]设计了一种室内实时定位系统,该系统基于多指纹地磁信息,充分借助手机惯性传感器及地磁传感器,通过最小方根寻找测试点与地磁数据库相似度最高的点来校正航位推算结果,进而得到准确地位置,同样的,根据最小均方根计算两个地磁序列之间的相似度会存在一定的误差,无法处理长度不一的序列。文献[17]提出了即插即用的导航模型FOLLOWME,虽然看似简化了建立地磁指纹的工作量,但该系统只能从规定的起点到达指定的目的地,如果导航过程出错,只能退回原点,并且不能识别重复路径,缺少灵活性。文献[18]中提到的自我系统,借助于影像识别,可以识别简单的重复路径,但影像识别需要较大的存储空间,而且受环境变化的影响非常大,当人较多时可能导致系统无法工作。
本文针对以上缺陷设计了一种基于地磁指纹的众包室内导航系统:①将众包思想应用于地磁指纹数据库的构建,极大的减小了构建数据库的工作量;②设计了一种基于方向传感器的转角检测算法;③将动态时间规整算法应用于重叠路径的识别以及地磁指纹匹配算法中来,能有效解决不同长度的地磁时间序列的匹配问题;④在定位导航过程中,利用磁场干扰明显的区域以及转角处作为特征点来对当前导航结果进行校准。
2 系统设计
本系统的整体模块设计如图1所示,按照不同的功能可以将整个系统分为两个部分,包括地磁指纹地图构建模块以及定位导航模块。
图1 系统整体模块图
2.1 指纹地图构建
利用地磁数据进行定位的精确非常依赖于地磁指纹数据库的有效性和准确性,因此本文对如何有效地构建准确可靠的地磁指纹数据库进行了深入研究。
首先将地磁指纹地图看作是由若干给定的点及连接两点的线所构成的无向图(任意一个点的地磁强度不受手机水平朝向的影响)。因此,某一个建筑物内一个楼层的地磁指纹地图可以表示为Mi=
构建地磁指纹数据库的工作即通过调用智能手机丰富的传感器设备,来识别并记录各个转角及各条走廊,并采集相应位置实时的地磁时间序列。但在建筑物内,由一个位置到另一个位置会有多条可行的路径,如图2所示,由A至B可以是AECDFB或者AEFB等。当有两个不同的地图构建人员分别在这两条路径采集了数据并上传至服务器之后,服务器端如何识别出多条路径的重叠部分(如AE、FB),区分它们的不同,并采集到的不同路径匹配成为完整的地磁指纹地图,这也是需要解决的问题之一。
本文采用DTW算法来判断所采集路径的重叠部分,并以众包方式构建地磁指纹地图;同时采取了一系列措施来保证实时数据的稳定性。
图2 多路径示意图
2.2 定位导航
当用户进入一栋已经完成地磁指纹地图构建工作的建筑物内,并需要导航服务内,系统将从服务器端下载相应的地磁指纹地图。在导航开始之前,用户首先需要设定到达的目的地。接着,用户只需要手持智能手机(手机朝向对数据的影响如图3(a)、(b)、(c)所示,为防止手机朝向变化对数据采集造成额外的影响,系统在运行时需要用户保持手机朝向的固定),沿当前路径匀速行走时,系统会持续为用户提供到达目的地相应的路径信息,直到导航结束。
bc中黑线顺序相反
在定位导航过程中,用户的智能手机采集到的连续地磁数据是一种时间序列,基于地磁信号的指纹匹配问题实质就是一种时间子序列匹配问题。由于每个人的行走习惯、行走速度不同,用户所采集到的地磁时间序列与地磁指纹地图中相对应的子序列存在长度上的差异,无法直接使用欧式距离、曼哈顿距离或者是相关系数等常用的相似性度量方法来衡量两个地磁时间序列之间的相似度。为了解决这一问题,本系统采用了动态时间规整算法[19]。动态时间规整算法是一种衡量两个长度不同的时间序列相识度的方法,主要应用在语音识别领域来识别两端语音是否表示同一个单词。该算法通过把时间序列进行延伸和收缩,从而实现两个时间序列之间的相似性的度量。
因此,系统在定位导航过程中只需要将用户的智能手机所采集到的一定长度(约2 s)的地磁时间子序列与地磁指纹数据库中的参考序列进行遍历匹配,计算得到参考序列中动态时间规整距离最小(即相似度最高)的子序列,并将该子序列转换为相应的地图坐标即可完成定位。同时系统充分考虑地磁时间子序列的相关特征,如最大最小值、极值点、变化趋势等来筛选地磁指纹数据库中的待匹配序列,从未缩小匹配时间、提高匹配的准确率、增强系统的实时性,并且将地磁指纹地图中地磁干扰严重的点作为地磁指纹地图的“特征点”。这些“特征点”更容易被检测出来,因此,本文利用这些“特征点”作为“路标”,来对定位导航结果进行校正。
3 系统实现
3.1 多传感器协同工作
本文提到的导航系统在智能手机上实现,利用了其自带的各种传感器,如地磁传感器、气压传感器、方向传感器。
简单来说,地磁传感器记录地磁数据、转向角传感器记录转过的角度、气压传感器检测用户当前所处环境中楼层高度的变化而判断其是否有上下的行为。值得一提的是,当用户在户外有GPS信号时,手机后台会记录用户的平均行走速度,当用户进入室内时,可以使用所记录的行走速度来计算到达目的地所需时间、当前已行走距离等,本文将根据这些数据对用户的位置进行校准。这些辅助数据能够为定位结果的校准工作提供帮助。
在智能手机中,传感器又可以分为基于硬件和基于软件的。基于硬件实现的传感器大部分都是采用物理组件,它们往往通过去测量物理世界中的环境属性来获取数据,如加速度传感器、地磁传感器、气压传感器等。另一方面,基于软件的传感器不是依靠物理组件,实质上是通过一个或更多的硬件传感器来获取数据,如方向传感器,实质上是加速度传感器加地磁传感器。
3.1.1 地磁传感器
地磁场是地球的基本物理场,地球近地空间内任意一点都具有磁场强度,且其强度和方向会因经度和高度的不同而不同。地磁场有着丰富的参数信息,如地磁总场、地磁三分量、磁倾角、磁偏角和地磁场梯度等[20]。手机内置的三轴地磁传感器能够直接读取地磁三分量的值[21],即相对于设备坐标系在X、Y、Z3个方向上的地磁值。在研究中发现当用户沿着同一条路不同方向行走时,地磁三分量的值在同一地点的差异明显,而它们的合强度几乎相同,如图3所示,因此,本文选择地磁合强度作为位置指纹信息。
需要注意的是,在获取正确地磁数据前需要校准,通常可用“8字校准法”。“8字校准法”要求用户使用需要校准的设备在空中做8字晃动,原则上尽量多的让设备法线方向指向空间的所有8个象限即可。
3.1.2 气压传感器
气压传感器也是一种硬件传感器,它能够测量出用户当前所处环境的大气压强(单位为hPa,百帕斯卡),进而根据气压值计算公式计算出当前位置的海拔高度。然而,气压传感器测得大气压强容易受到外界环境(温度、风速、天气等)及时间的影响导致计算得到的海拔高度存在一定的误差,为此,本文根据一定时间内气压传感器测得的压强差与事先设定的阈值进行对比,进而判断用户是否有上楼行为,楼层变化对气压值的影响如图4所示。
图4 气压值随着楼层变化而变化
3.1.3 方向传感器
方向传感器是一种典型的软件传感器,它的数据是通过加速度传感器和地磁传感器共同获得的。方向传感器返回的数据包含X、Y、Z3个方向的值[22],包括指向地心的方位角、俯仰角以及翻转角。本文中利用了指向地心的方位角来成检测转角以及其对应的角度。为了避免手机的不同姿态对采集到的数据造成差异,本文默认手机保持水平朝向。本系统中利用方向传感器在数据采集模块中制作了一个水平仪,使得用户在数据采集过程中能够更加直观地了解当前手机的姿态,方便其校正手机朝向。
3.2 地磁指纹地图构建模块
地磁指纹地图的构建工作往往非常繁琐,需要耗费大量的人力、精力。随着智能手机的广泛普及以及“众包”[23]概念的深入人心,这一难题也就迎刃而解。
在3.1节中,本文中提到的指纹地图可看作是由若干点和连接两点的线所构成的无向图,因此,地图构建工作就能够分解为两个关键部分:利用用户采集的方向传感器的数据识别转角,也是无向图中的点;识别出转角,那么两个转角之间便是一条完整的走廊,对应无向图中的边,记录走廊的地磁数据,同时利用地磁数据来判断不同用户所采集的数据中的路径重叠部分,并将不同的部分拼接起来最终形成完整的地磁指纹地图。
3.2.1 数据采集处理
为保证采集数据的可靠及准确,系统在数据采集过程中首先利用“8字法”对手机内的传感器进行校准。其次,对传感器数据进行了滤波处理。地磁传感器和气压传感器的数据变化比较平稳,使用低通滤波算法(如式(1)所示)对数据进行平滑去噪处理。
datai=datai-1(1-α)+newData·α
(1)
式中:newData为当前读取到的数据,datai-1为上一次从传感器获取的数据,datai为本次传感器读取结果,α为滤波系数,本文中取α=0.1。
另外,本文使用限幅滤波算法去除方向传感器由于偶然因素引起的跳变干扰,限幅滤波算法如式(2)所示。
(2)
式中:newData为当前采样值,datai-1为上一次从传感器采样获取的结果,datai为本次传感器读取结果,ε为限幅系数,本文中取ε=20,即方向传感器两次采样之间最大偏差不超过20°。
在数据采集过程中,用户的手机朝向水平固定。记录每个采样时间点ti对应的地磁强度mi(xi,yi,zi)并根据式(3)计算该点地磁合强度,并进一步计算出气压强度pi以及当前手机指向的方位角di。本文中默认的数据采样频率为5 Hz。为了使数据更加平滑精细,系统对采样的数据进行插值处理(三样条插值算法),将数据精度调整至0.1 s对应 10 Hz 的采样频率。以地磁传感器为例,图5展示了采集到的原始地磁数据经由低通滤波算法及插值算法处理的效果。
(3)
对于每一个传感器数据,本文中都给它增加了一个时间戳,这是为后面地磁指纹匹配算法做准备。
3种传感器所采集的数据格式如表1所示。
表1 传感器原始数据格式
3.2.2 转角识别
在本小节将详细阐述如何利用方向传感器所采集的数据检测转角并计算其对应的角度。
如图6(a)所示,该数据采集地点为浙江工业大学屏峰校区广知C楼4楼(楼层平面图如图7所示),数据采集路径为S-a-b-c-d-e-f-D),图中横坐标表示时间,纵坐标表示所采集到的方位角。图7中用户每一次转弯,都能在图6(a)中很直观地区分出来。然而,由于图6(a)一个波峰或者波谷表示方位角发生了两次改变(两个转角),这并不利于系统用算法对其进行识别。为此,系统首先计算前后两次方位角的差值,并对该角度进行限幅滤波(滤波的阈值为20°)处理,其图像如图6(b)所示。然后,设置一个长度为2 s的滑动窗口,计算滑动窗口内角度差之和即计算当前滑动窗口内累积的角度变化,得到如图6(c)所示的图像。最后,只需要识别出在一定阈值范围内(本文中认为超过30度为一次有效的转弯)的波峰及波谷,就成功识别出了转角。算法的执行步骤如表2所示。并且,从中能够获取更多信息:波峰即代表一次右转,波谷及代表一次左转,波峰或波谷的值即代表的该转角的角度。
图7 楼层平面图
图6 转角识别
表2 转角识别算法
3.2.3 地图拼接与动态时间规整(DTW)算法
假设某天有用户A来到图7所示楼层,并决定贡献自己的力量为该楼层采集地磁指纹信息。他手持智能手机,沿着S-a-b-c-d-e-f-D的路线完成了数据采集,并将数据上传至服务端。服务端将采集结果显示在地图上,由用户A进行再次确认。另一天,又有一名用户B来到该楼层,当他打开APP发现该楼层的地磁指纹地图完成了大半部分,便决定完成一小部分的地图构建工作。于是,他便手持智能手机,沿着另外一条路径S-a-b′-c′-d-e-f-D采集了地磁数据,同样地用户B也将其采集的数据上传至服务器端并完成了确认。此时,本系统只需要设法在用户A和用户B所采集的数据中,区分出路径的重叠部分,并将不同部分(a-b-c-d和a-b′-c′-d)进行拼接,就能够完成该楼层的地磁指纹地图构建工作。
在构建地图过程中,系统需要对传感器采集到的地磁原始数据进行处理。除了转角检测外,还需要将地磁强度和大气压强度按照时间先后组成相应的时间序列,并在地磁时间序列中加入相应的地图坐标信息,从而将地磁指纹信息与地图形成映射,其格式如表3所示。
表3 时间序列格式
在同一路径采集的地磁时间序列往往形状相似,但是由于用户行走速度以及行走习惯的不同,导致地磁时间序列之间存在长度上的差异(如图8(b)所示),因此无法直接用欧式距离、曼哈顿距离或者是相关系数等常用的相似性度量方法来衡量两个地磁时间序列之间的相似度。为了解决这一问题,本文中采用了动态时间规整算法。动态时间规整算法是一种衡量两个长度不同的时间序列相似度的方法。给定两个时间序列X=x1,x2,…,xm和Y=y1,y2,…,yn,它的递推计算公式如式(4)所示,当两条地磁时间序列的DTW距离小于阈值σdtw时,系统便认为它们表示同一段路径。
图8 手机不同朝向及相同路径下不同速度下产生的地磁时间序列
(4)
3.2.4 众包激励机制
对于参与地图构建的用户,当后台人员确认其上传的数据是有效的,可以给予一定的奖励,如商场折扣卷、抽奖机会等,以此激励更多的用户参与到地图构建当中。
3.3 定位与指纹匹配算法
当地磁地图构建完成后,用户便能够利用地磁指纹数据库及智能手机实现定位导航。在定位过程中,用户手持智能手机,并且为了得到更加精确的定位结果,应尽量使手机保持水平朝向。
3.3.1 基于DTW的指纹匹配算法
在定位过程中,本系统设置了一个队列用来保存待匹配的地磁时间子序列,一个校正数据缓冲区用来对定位结果进行校正,保存两个转角之间完整的地磁时间序列,每当检测到一个新的转角时将其清空。这里需要说明的是,地磁时间子序列长度会影响匹配时间及定位误差,待匹配的地磁时间子序列越长,定位精度相对也越高,但是相对的匹配时间越久实时性越低,反之则相反。为此,本文中设置待匹配地磁子序列的长度为2 s。
定位开始,系统会有一个“预热”阶段。此时,程序后台会不断采集当前用户周围的地磁信息,同时将三轴地磁数据根据式(3)转换为地磁合强度。在采集到长度为2 s的待匹配地磁子序列后,使用三样条插值算法对该序列进行插值处理。同时,从地磁指纹数据库中取出参考序列,利用滑动窗口技术,计算窗口内参考子序列与待匹配地磁时间子序列的动态时间规整距离。最后,找出与待匹配地磁时间子序列相似度最高,即动态时间规整距离最小的地磁序列,并将该序列的终点映射为相应地图坐标,那么该坐标即为定位结果。算法的具体步骤如表4所示。
表4 地磁指纹算法
3.3.2 定位校正
直接根据指纹匹配算法得到的结果存在6 m左右的平均误差(子序列长度设置为2 s时),仍然有很大的改进空间,为此,根据室内地磁信号,本文设计了一套定位校正方案。
首先,建筑物内每条走廊上都或多或少存在着强磁异常点,也就是地磁干扰较强的点,这些点直观地显示在图像中往往就是波峰或者波谷,将这些点看作是“特征点”从而当用户经过这些点时,就能获得置信度非常高的定位结果。
其次,利用建筑物内的转角及设置的校正数据缓冲区也能够被用来对定位结果进行校正。由于方向传感器测得的角度较为准确,该算法也能够准确地识别出用户的每一次转向,并且每个转角都会有转向、角度信息,这些信息均能够缩小定位范围:例如当用户沿着图7中的起点S开始行走,当他走到分叉点a时选择了右转,此时通过本文中的转角检测算法就能判断该用户转动的方向及对应的角度,此时将校正数据缓冲区的地磁数据与各条走廊的参考序列进行DTW匹配就能识别出用户上一段走过的路径为S-a,在a点向右转向了90度,进而判断用户将沿a-b继续行走而非a-b′。
3.3.3 楼层识别
在第2章中已经对气压传感器进行了简单的介绍,本小节将详细介绍如何利用气压传感器来判断用户是否有上下楼行为。
大气压强在一天内会随着时间的改变而变化(1 hPa~3 hPa),在同一个地点早、中、晚的大气压强也会有所差异,但是在短时间内不会有大明显的波动。并且,当所处海拔越高,大气压强也就越小;反之,所处海拔越低,那么大气压强也就会越大。同时,用户上下楼时,局部气压变化并不会太明显,因此,系统通过观察气压传感器读取的大气压强的变化,来断定用户是上楼还是下楼,甚至是乘坐电梯。
图9 楼层变化引起的气压值变化
图9中记录了用户从教学楼四楼行走至三楼(AB段),在三楼处理了一些工作稍作停留后(BC段)便回到了四楼(CD段),大约0.5 min后又行走至五楼(EF段),这期间的手机气压传感器数值的变化情况。从图中可以很清楚地看到楼层变化对于气压值的影响,同时也符合海拔变化对于气压值的影响规律。
为了检测楼层的变化,首先需要对采集到的气压数据进行低通滤波平滑处理。紧接着,如果当前读取到的气压值为pn,那么寻找在前Ts内(本文默认为20 s)与该气压值差值最大的点,假设该点的气压值为pm。计算两者的差值的绝对值|pn-pm|,如果该差值大于气压阈值(本文设定为0.4 hPa),便可以判断用户上楼或者下楼的行为以及其上下楼具体的楼层数。当然,由于每个建筑物的楼层高度不同,室内环境也大不相同,因此,前面提到的阈值及有效时间需要根据具体建筑具体分析再进行设定。
本文中还借助加速度传感器对用户行走步伐进行检测,假如检测到用户有上下楼的行为而行走的步数较少(在一定阈值内,如只走了10步但是楼层数变化了一层),那么系统就可以认为该用户乘坐了电梯等其他工作。
3.4 导航模块
在导航之前,用户需要手动选定目的地。然后,系统将当前定位结果作为起点,用户所选的目的地作为终点。在构建地磁地图时将整个地磁地图看作是一个以转角为点,两个转角之间的走廊为边的无向图,其每条边的权值即为对应地磁时间序列的长度(即时间),因此系统中直接能够使用最短路径算法Dijkstra规划导航路径[24],并将规划结果在智能手机端显示以及给出相应提示。
图10 数据采集及数据检测模块
本文提出的室内导航系统在Google Nexus5(安卓版本 4.4.4)智能手机上实现,demo程序截图如图10、图11 所示。
其中:图10(a)为数据采集模块。在数据采集模块中,大气压强、地磁强度、手机方向以及水平仪等信息实时显示在屏幕上,地图构建者能够选择系统根据其行走习惯设定的默认采样频率,同时也能够自己设定采样频率。同时,地图构建者需要为每次采集的数据添加标签以区分不同的路径。在采集数据时,地图构建者只需要按下“START”按钮,匀速沿采集路径行走,并尽量保持水平仪上的红点在十字的中心即可,当采集完成时再按下按钮即可。
图10(b)为数据检测模块,用来帮助地图构建者更好地观测当前环境中地磁变化,方便其发现地磁异常点。
定位导航模块如图11(a)、11(b)所示,仅对用户进行了定位,尚未启动导航功能。蓝色箭头即表示用户当前位置,箭头朝向即当前用户手机的朝向(利用了方向传感器的方位角实现)。当用户需要使用导航功能时,只需要在文本框中输入需要导航的位置,如417房间,然后按下文本框侧面的开始按钮,那么程序就会启动导航,如图11(b)所示。
图11 定位导航模块
4 实验及系统评估
本文的实验在6层高的校园办公楼中进行,每个楼层面积大概700 m2左右(10 m×70 m)。这是两幢“回”型大楼连接而成的建筑,连廊处于半开放状态。实验环境平面示意图如图7所示。为了评估导航性能,建立了第4层楼的整个磁场地图,实验一共有3个志愿者帮助采集数据并完成导航系统的测试任务。
4.1 参数测试
首先利用志愿者采集的楼层地磁数据探究地磁指纹匹配算法中的地磁数据队列MagDeq长度l与定位误差(未校正)以及耗时之间的关系,并确定合适的队列长度。在实验中,设置队列的长度l由1 s逐渐增长至5 s,并记录匹配误差以及每次匹配所消耗的时间,实验如图12所示,图12(a)显示了序列长度与误差之间的关系,图12(b)为误差的累计分布函数,图12(c)显示了序列长度与耗时之间的关系。从图12(a)、12(c)中,能很直观的看出来,随着序列长度的增加定位误差逐渐下降而耗时逐渐上升。综合考虑导航系统的精度以及定位的实时性,本文将地磁数据队列的长度l设置为2 s。
图12 待匹配子序列长度与定位误差和耗时的关系
4.2 导航性能
首先让4个志愿者分别将手机置于胸前,按照自己的行走习惯沿相同路径,如图7中所示S-a-b-c-d-e-f-D完成一次导航测试,表5记录了四名用户在不同路段各自的行走误差以及平均误差(单位:m)。这说明地磁地图导航效果稳定,对不同行走习惯的用户影响基本一致。同时,从表5中能够看出,较长的路径对应了较大的误差(如bc段和fD端)。本文认为这是由于路径较长时,对应的参考地磁序列中会出现多条极其相似的子序列,从而使地磁指纹匹配算法得出错误的结果,最终导致定位产生误差。
表5 不同路段的定位误差
图13蓝色线条部分为四名志愿者测试结果整体的误差累积分布函数,从图13可以看出,有95%左右的跟踪误差都在3 m范围内,最高的精度达到了1 m。对比未校正前的误差累计分布函数,能够直观地发现本文中采用的定位校正方案的有效性。
图13 经过校正后的误差累计分布函数
4.3 楼层和角度检测
当志愿者所在楼层发生变化时,气压传感器的数据变化显著且平稳,因此本文中提出的楼层识别算法能够有效监测出楼层变化(接近100%)以及对应变化的层数。
图14 转角检测算法的误差累计分布函数
另外,志愿者还对转角检测算法进行了测试。测试楼层的转角均为90°,以此为基准,要求志愿者采集多组转弯的数据,并且尽量保持每次转动角度为90°。每人采集了约50组转角处方向角变化的数据,总共约200组数据。实验结果表明,在总共200组左右的数据中,仅有2次未能检测出转向,成功率接近100%。在所有检测出转角的结果中,全部正确地判断出了用户的转向。最终对转角误差的累计分布进行了统计如图14所示。实验表明本文采用的转角检测算法有着出色的效果。
5 结论
尽管基于WiFi指纹及蓝牙指纹的室内定位导航系统有着广泛应用,然而它们均非常依赖昂贵的无线基础设施(无线AP及蓝牙基站),对于那些没有安装无线基础设施的建筑便束手无策。同时,两者的信号在室内都容易受到信号衰减、人体干扰等的影响。针对以上问题,本系统利用建筑物内局部异常且长期稳定的地磁指纹数据,加入众包的概念来减轻地磁指纹地图的构建工作,利用基于动态时间规整的指纹匹配算法实现定位,同时充分利用了建筑物内磁异常较强的点以及转角对定位结果进行校正,实现了无需网络基础设施、实时性高、定位准确的室内定位导航系统。
当然,本系统在获取数据的时候需要用户保持手机与身体呈90°影响体验以及准确定位前需要“预热”过程等缺陷都是在未来工作中需要解决的问题。
参考文献:
[1] Misra P,Enge P. Global Positioning System:Signals,Measurements and Performance Second Edition[M]. Lincoln,MA:Ganga-Jamuna Press,2006.
[2] Hightower J,Borriello G. Location Systems for Ubiquitous Computing[J]. Computer,2001(8):57-66.
[3] Wu C,Yang Z,Liu Y,et al. WILL:Wireless Indoor Localization without Site Survey[J]. IEEE Transactions on Parallel and Distributed Systems,2013,24(4):839-848.
[4] 陈斌涛,刘任任,陈益强,等. 动态环境中的WiFi指纹自适应室内定位方法[J]. 传感技术学报,2015,28(5):729-738.
[5] Alonazi A,Ma Y,Tafazolli R. Less-Calibration Wi-Fi-Based Indoor Positioning[C]//IEEE International Conference on Communications. IEEE,2015:2733-2738.
[6] Altini M,Brunelli D,Farella E,et al. Bluetooth Indoor Localization with Multiple Neural Networks[C]//Wireless Pervasive Computing(ISWPC),2010 5th IEEE International Symposium on. IEEE,2010:295-300.
[7] Lohmann K J,Lohmann C M F. Sea Turtles,Lobsters,and Oceanic Magnetic Maps[J]. Marine and Freshwater Behaviour and Physiology,2006,39(1):49-64.
[8] Yamazaki K,Kato K,Ono K,et al. The Analysis of Magnetic Disturbance due to Buildings[C]//Magnetics Conference,2003. INTERMAG 2003. IEEE International. IEEE,2003:CR-06.
[9] Akai N,Hoshino S,Inoue K,et al. Monte Carlo Localization Using Magnetic Sensor and LIDAR for Real World Navigation[C]//System Integration(SII),2013 IEEE/SICE International Symposium on. IEEE,2013:682-687.
[10] Emter T,Petereit J. Multi-Sensor Fusion for Localization of a Mobile Robot in Outdoor Environments[C]//Robotics(ISR),2010 41st International Symposium on and 2010 6th German Conference on Robotics(ROBOTIK). VDE,2010:1-6.
[11] Lau T K,Cheuk C,Liu Y H,et al. Turtle-Inspired Localization on Robot[C]//Intelligent Robots and Systems(IROS),2013 IEEE/RSJ International Conference on. IEEE,2013:5950-5955.
[12] Vallivaara I,Haverinen J,Kemppainen A,et al. Simultaneous Localization and Mapping Using Ambient Magnetic Field[C]//Multisensor Fusion and Integration for Intelligent Systems(MFI),2010 IEEE Conference on. IEEE,2010:14-19.
[13] Suksakulchai S,Thongchai S,Wilkes D M,et al. Mobile Robot Localization Using an Electronic Compass for Corridor Environment[C]//Systems,Man,and Cybernetics,2000 IEEE International Conference on. IEEE,2000,5:3354-3359.
[14] Gozick B,Subbu K P,Dantu R,et al. Magnetic Maps for Indoor Navigation[J]. Instrumentation and Measurement,IEEE Transactions on,2011,60(12):3883-3891.
[15] 宋镖,程磊,周明达,等. 基于惯导辅助地磁的手机室内定位系统设计[J]. 传感技术学报,2015,28(8):1249-1254.
[16] 张荣吉. 基于移动设备多维感知的室内定位方法研究[D]. 燕山大学,2013.
[17] Shu Y,Shin K G,He T,et al. Last-Mile Navigation Using Smartphones[C]//Proceedings of the 21st Annual International Conference on Mobile Computing and Networking. ACM,2015:512-524.
[18] Haverinen J,Kemppainen A. Global Indoor Self-Localization Based on the Ambient Magnetic Field[J]. Robotics and Autonomous Systems,2009,57(10):1028-1035.
[19] Müller M. Dynamic Time Warping[J]. Information REtrieval for Music and Motion,2007:69-84.
[20] 龙礼,张合. 三轴地磁传感器误差的自适应校正方法[J]. 仪器仪表学报,2013,34(1):161-165.
[21] 陈龙彪,李石坚,潘纲. 智能手机:普适感知与应用[J]. 计算机学报,2015,38(2):423-438.
[22] Atzori L,Dessi T,Popescu V. Indoor Navigation System Using Image and Sensor Data Processing on a Smartphone[C]//Optimization of Electrical and Electronic Equipment(OPTIM),2012 13th International Conference on. IEEE,2012:1158-1163.
[23] Howe J. The Rise of Crowdsourcing[J]. Wired Magazine,2006,14(6):1-4.
[24] 鲍培明. 距离寻优中Dijkstra算法的优化[J]. 计算机研究与发展,2001,38(3):307-311.