一种基于智能手机的室内地磁定位系统
2018-11-20江聪世刘佳兴
江聪世,刘佳兴
(1.武汉大学 遥感信息工程学院,湖北 武汉 430072;2.地理空间信息与数字技术国家测绘地理信息局工程技术研究中心,湖北 武汉 430079)
0 引 言
智能终端随着科技的发展和人们生活水平的提高逐渐得到普及,基于位置的服务(LBS)也迅速发展并呈现出广阔的前景.借助卫星和基站,利用智能手机进行定位和导航极大地方便了我们的日常生活,但在室内区域内,受限于建筑物对信号的遮挡、在室内区域内信号的多径效应和信号的非视距传播方式等原因,传统的定位手段如基于CELL-ID和卫星的定位方式存在着信号差、定位不准确等缺陷,无法满足室内定位在定位精度和响应时间等方面的需求.在室内定位技术的研究上,WIFI、蓝牙和红外线等技术的研究是当今的热点之一,然而这些定位技术都需要事先布设足够多的基础设施,不利于技术在实际应用上的推广,其中WIFI热点(AP)尽管广泛的布置于室内建筑中,但WIFI信号的精度受信号衰减、人体阻挡和多径效应等的影响,精度受到了限制.地球表面空间分布有天然的地球磁场,而在室内区域内,受钢筋混泥土墙体和建筑物本身结构对磁场的干扰,局部室内区域的地磁场呈现出独特的分布,这使得在室内区域利用地磁场信息作为位置指纹进行定位成为了可能,借助智能手机上装载的多种传感器预先采集信号信息,能够在无需另外架设设备的情况下即可实现室内定位.
在室内地磁定位的研究中,利用智能手机实现定位的研究较少,主要还是集中在地磁匹配算法及其仿真研究上,如谢仕民等人研究了以平均绝对差、平均平方差、归一化积相关和Hausdorff距离等几种原理的匹配方法,并在MATLAB上通过仿真实验进行对比和比较,最终结果显示平均绝对差和平均平方差的方法要优于其他方法[1];Subbu在地磁信号的分类特征的基础上提出一种结合地磁和PDR方法的LocateMe系统,通过动态时间规划的方法来解决用户行走速度的变化[2];熊明亮等设计了基于地磁的室内定位系统,在粒子滤波的重采样过程中通过复制重要粒子以及重新采样低权值粒子提高了定位的性能[3].而近些年来,随着移动互联网的不断发展,利用智能终端实现地磁定位的研究开始得到重视,芬兰奥卢大学(Universityof Oulu)的一个研究团队开发了基于地磁的室内地图应用InDoorAtlas[4];姜浩等人提出基于Hausdorff距离的地磁匹配的算法[5].黄鹤等人以Arduino Mega 2560 板为基础设计了一套采集地磁数据的移动平台,采用了克里金地磁图数据差值算法输出2cm间隔大小的栅格地磁图作为定位基准图[5].另外,关于通过混合多种定位方法来实现更高精度定位的研究也逐渐得到关注,宋镖等人使用惯导技术作为地磁定位的辅助手段,通过组合定位方式显著提高了匹配效率,通过实验验证,其定位精度达到了1 m[6];Shu等提出Magicol室内定位和跟踪系统,通过设计一种双向的粒子滤波算法来提高精度,并使用动态WIFI扫描策略以节省开销,实验证实混合WIFI信号后能有效提升定位精度[7];Han-Sol Kim和Mei Zhang 都利用地磁场和粒子滤波实现室内导航和定位[8-9],其中Han-Sol Kim等通过机器人进行实验证实了粒子滤波有效的提高了定位精度,Mei Zhang则借助WIFI信号缩小了初始定位范围,并在Android手机上实现了应用进行实验.
本文提出了实现室内定位的基本步骤和实现流程,设计的定位系统包括服务器端和部署在Android手机上的移动端两个部分,以室内地磁场信息为基础提出了两种构建位置指纹的方式,并设计了相应的匹配算法,并将待定位区域以网格的形式划分,以每个划分的网格为基准采集地磁信息和确定位置.最后通过实验验证了系统的有效性,并分析比较了两种位置指纹各自的特点.
1 定位原理和定位系统的设计
地球表面不同区域的地磁场是不同的,这种不同在较小区域如室内也具有相同的特性.这种差异性代表着不同区域具有各自区别于其它区域的地磁场特征,利用该特征,通过智能手机采集每一个位置独特的地磁数据,把这一特征作为指纹实现室内定位功能.室内地磁定位算法实质是数字地磁匹配,这种通过度量测量序列和基准图中任意子图相关性程度来实现的方法称作相关分析方法[10].可以把实现室内定位的过程分为离线训练和在线匹配两个阶段,具体过程如图1所示.
离线训练阶段的主要内容为生成位置指纹图.为此需要在指定区域内采集地磁信号,记录下不同位置处独特的地磁信号,不同位置处的地磁信息就像每个人独特的指纹信息,离线训练阶段需要采集室内地磁数据并建立位置信息和地磁信号间的关联,从而利用对地磁信号的匹配来确定在室内的位置.由于受采集时的设备形态、测量误差等带来的影响,通过多次的测量和滤波算法、坐标转换等预处理来提高数据的精度.
在得到位置指纹图的基础上,在线定位阶段实现定位功能.为此需要设计合适的匹配算法,对于移动设备实时采集的信息,通过匹配算法和位置指纹图中的数据进行匹配计算,找出匹配度最高的点作为定位结果返回.
而室内地磁定位系统可以分为采集模块、数据处理模块、定位模块和通信模块几个部分构成,其示意图如图2所示.
采集模块在预采集和定位时通过智能手机采集当前位置下地磁传感器读数等信息;数据处理模块则负责对采集到的数据进行预处理,并生成地磁指纹图;定位运算模块则在接收到智能手机传输的数据后进行匹配运算,得到的定位结果并返回;而通信模块主要是前后端之间的数据的通信,包括智能手机传输采集到的地磁信息和服务器端返回定位的结果.
定位系统的流程如图3所示,移动设备分两步采集数据,一是收集室内的地磁分布信息,构建位置指纹图,二是记录实时的地磁信息用于定位匹配;借助滤波算法和匹配算法实现数据的处理和地磁匹配,并在智能手机上显示定位结果.
2 位置指纹和算法的设计
室内地磁定位系统的涉及两个方面,一是如何建立手机采集的信号信息和室内不同位置间的联系,即确定利用哪些信息来构建区域的位置指纹图;二是如何进行数据的匹配,即度量地磁数据间的相关度的算法.设计合适的位置指纹是实现定位的基础,合适的定位算法则有助于提高定位精度和准确度并减少定位的时间.
2.1 位置指纹设计
室内的地磁信号虽然有着良好的区分度,磁通门磁力计也具有高分辨率和良好的鲁棒性[11],但手机上的地磁信号读数是以手机坐标系为基准的,Android智能手机的手机坐标系如图4所示,其x轴指向手机屏幕的右方,y轴指向手机屏幕的正上方,而z轴垂直于手机屏幕,指向手机屏幕之外[12],手机坐标系与地面坐标系.手机坐标系不受设备的运动或转动的影响,坐标系的改变跟随着手机姿态的变化.
智能手机上的地磁传感器利用的是霍尔效应,地磁传感器产生的电压受传感器三个轴上的磁场强度和极性影响,将电压转换数字信号来表示三个方向上的磁场强度.智能手机中的地磁传感器被封装在一个小型电子芯片中,传感器的数值是基于智能手机的三轴坐标系来表示的.随着手机的翻转、移动、倾斜等变化,手机坐标系相对于地面坐标系发生了改变,地磁传感器的数值也随着手机坐标系变化.这使得在同一位置上,智能手机不同的姿态对应着不同的地磁传感器信息,这为地磁定位带来了困扰.为此我们在进行定位和数据采集时尽量使手机保持水平的状态以减少姿态所带来的影响.在位置指纹的设计上,也需要考虑到如何减小这一因素对定位带来的影响,为此设计了两种不同的处理方法.
2.1.1 水平化位置指纹
在记录下地磁数据的同时记录下陀螺仪的信息,Android系统中陀螺仪的读数正代表着手机相较水平面的偏转[13],而地磁传感器采集到的数据是以手机坐标系为基准的,借助陀螺仪得到的手机偏转信息,将地磁数据投影到水平坐标系,即将地磁信息由图4右所示的手机坐标系投影到图4左的地球坐标系的x轴和y轴所在平面,而分解后x轴和y轴的数值是原始数据在其上投影的和,水平化的步骤如下:
设地磁传感器采集的原始数据分别为Magx、Magy、Magz,陀螺仪采集的数据为Dirx、Diry、Dirz.
sinDirz×sinDirx×sinDiry),
(1)
(2)
sinDirz×sinDirx×cosDiry)
(3)
(4)
在y轴方向上的地磁分量My
cosDiry)-cosDirz×sinDirx×
sinDiry),
(5)
(6)
(cosDirz×sinDirx×cosDiry)),
(7)
(8)
通过以上处理后,每一个位置处得到形式为(Mx,My)的一条数据,所有位置数据的集合作为定位的地磁指纹图供后续定位使用.
这种处理方法每个位置只需存储一条数据,且位置指纹不依赖于手机在这个位置处的偏转和朝向,当然,在将原本传感器采集的三维数据转换成二维数据,在加快了定位计算速度的同时也降低了数据的区分度.而且经试验,陀螺仪采集的数据的准确度还不足以准确的反应出手机的实际形态,这使得上述计算中用到的各个方向角信息不够准确,使经过综合处理后的位置指纹有着较大的误差.
2.1.2 方向和地磁的混合位置指纹
进行水平转换的处理会降低原有地磁数据的辨识度,且这样处理的位置指纹要求准确的得到手机的姿态信息,这为位置指纹的搭建带来了困扰.我们在要求定位时智能手机保持相对地面水平的前提下,可以只考虑手机的朝向,即方向,这样一来,在一个位置上,智能手机只存在着方向上的差异,通过预先收集手机在每一个方向上地磁传感器的读数,记录下每一个位置上智能手机在各个方向上的地磁信息.智能手机方向的判定可以通过方向传感器实现,这样一种方向信息和地磁信息相结合的定位方法,包括了智能手机在一个位置上地磁数据的多种可能,能够有效的减少手机姿态变化对地磁传感器读数的影响.
位置指纹以如下的形式构建,在每一个位置的数据,都以如下形式存储:
(9)
其中,i代表在这一位置采集的数据的条数.
这种处理方法在完整保存原始地磁数据的同时又能够结合手机的方向信息做判断,在进行数据采集时,在每个位置,持智能手机绕原地旋转一周,记录下手机在不同方向时的地磁场信息,在进行定位计算时,通过调节方向信息和地磁信息的权重值达到最好效果.这种方法的缺点在于在每一个位置都需要绕原地一圈,采集不同方向的地磁数据,在室内区域较大,需要采集的点够多的时候,需要更长的时间来收集室内的地磁场分布信息,也增加了匹配计算的数据量.此外,实际的采集过程中,如果是由人来操作,在旋转的过程中比较难把握住手机方向的细微变化.
2.2 算法设计
地磁匹配实质上就是利用已经建立的地磁矢量信息与实时采集的某点的地磁特征信息按照一定的、人为规定的方法与准则进行比较,计算出两者之间的相似度或相关性,从而找出位置指纹中和待定位数据匹配度最高的点.本文中的匹配算法以欧式距离为基础,针对两种位置指纹的特点设计了两种匹配方法.
2.2.1 最邻近法
最邻近法是一种简单而又直接的匹配方法,适用于多种位置指纹.邻近算法也可以看作是k最邻近法(KNN)的一种特殊情况,假定待计算的数值能够用欧式空间里的点来表示,根据最优解判断准则,选择欧式空间,即欧几里德空间中和待匹配点之间距离最近的点作为结果.最邻近法中计算主要以欧几里德度量为标准,即欧式距离,是一种通用的定义距离的方法,能够代表某一确定维度中所处的两个点的实际的距离.最邻近法通过欧式距离来进行衡量,是一种确定性的匹配.
针对进行坐标转换后数据格式为(Mx,My)的位置指纹,位置指纹数据库中的数据可以表示为
(10)
式中,n代表地磁矢量图中点的总数
计算待定位数据和地磁矢量图中每个矢量间的欧式距离Li:
(11)
找出Lmin=min{Li}.此时Lmin对应的点作为定位的结果.
2.2.2 范围搜寻定位算法
对于结合了方向和地磁数据的位置指纹,地磁矢量图存储的数据可以表示为
(12)
式中:m代表地磁矢量图中点的总数;n为整个位置指纹数据库中数据的条数,一个位置信息Lock代表这m个点中的一个,它对应着方向信息Ori和地磁信息Mx,My,Mz不同的多条数据.
由于引入了手机的方向信息,而在同一个位置,手机的方向也会影响地磁传感器的读数,因而先由手机当前的方向信息从位置指纹库中筛选出方向相近的数据,这些数据是每一个位置相同方向上的地磁传感器数据,再以欧式距离为基础计算待定位数据和这些数据间的相关性.
|Ori0-Orii|>λ(其中λ为预先设定的阈值,i为从1到n的整数)
则从这次定位计算的位置指纹数据集中剔除该条数据.
对于筛选后的数据集,计算待定位数据和数据集中的每一组数据的欧式距离:
Li=
(13)
找出Lmin=min{Li}.此时Lmin对应的点作为定位的结果.
3 实 验
3.1 实验设计
为了验证本文提出的地磁数据处理算法和地磁定位算法的性能,设计实验进行全面的评估.实验地点选择武汉大学信息学部图书馆三楼的社会科学图书借阅区,如图5所示.因图书馆有精确的平面图,能准确获取每个馆室的长宽信息,利于精确计算定位的精度,且图书馆整齐摆放的书架为选取定位参考点提供了便利.
图5中,确定了定位区域后,将大小为约为100 m2的区域划分成11×8的网格,网格间的间隔约为1 m,这也代表着定位结果能够达到的最高区分度.在每个网格的中心处采集数据,采集时手机尽量保持水平.
由于定位方法的不同,在每个网格处需要用不同的两种方式来采集信息.对于由水平化处理生成的指纹,智能手机在同一位置处多次采集信息;对于结合了方向和地磁的混合指纹,在采集数据时,在网格中心处握着智能手机旋转一圈,在旋转的过程中记录下数据,得到了在每一个位置,手机指向不同的方向时地磁传感器的数值.采集的过程和采集得到的数据如图6所示.采集完所有位置的传感器数据后,使用个人电脑架设服务器,将地磁指纹图存储在服务器端,由服务器端进行数据的处理.
由于外界环境的影响、传感器自身的误差和移动设备的影响,地磁数据中掺杂噪声信号,滤波算法用以剔除或减少数据中的干扰量,如移动设备在实际采集数据的过程中由于状态不稳定如突然的抖动和倾斜,地磁数据指纹中可能会出现波动过大的点,这会影响定位的准确度和精度.差值滤波算法用以剔除地磁数据中的异常点.此外,使用中值滤波对信号数据作平滑处理,中值滤波的理论是基于排序理论基础的,它将一连串连续信号的信号值用邻域内所有信号值的中值来替代.这样混杂在信号量中的随机脉冲噪声所带来的影响就会大大降低,所以采用中值滤波,能在很好的保护原始信号值的情况,又能很好的消除随机脉冲噪声的干扰.
在对原始数据进行滤波处理后,存储的原始数据如图7所示,针对不同的位置指纹采取不同的构建方法,从处理后的数据中提取出不同的信息.
对于前一种二维位置指纹,从数据中提取出方向传感器和地磁传感器的数值,通过式(1)到式(8)所示的处理方法进行水平化,对于每一个网格,都得到了一条形式为(Mx,My)的数据代表这一个网格的地磁信息,所有网格处数据的集合构成了由水平化处理方法生成的位置指纹.
对于混合方向和地磁信息的位置指纹,对每一条采集的数据,提取出采集的位置点信息、采集时手机的方向信息和地磁传感器三个轴的数值,提出得到的数据以式(12)所示的形式,将这些存储在服务器端.
在完成了上述步骤,也就是离线训练阶段后,得到了代表一个室内区域内地磁场分布的数据集,数据集中的每一条数据都代表着室内某一位置的地磁信息,例如对应方向和地磁混合的位置指纹的数据集,其中的每一条数据存储的是室内某一位置上手机在某一个方向上的地磁场信息.利用这些信息,在室内定位阶段,通过实时的地磁信息和预先存储的地磁信息之间的匹配来实现定位.
3.2 地磁室内定位实验
智能手机通过网络与服务器建立连接.在预先采集并制作了地磁指纹图的室内区域,手持安装地磁定位程序的智能手机,在任意位置点击移动设备上的定位按钮进行定位,移动设备通过网络将采集的数据发送至服务器,服务器进行数据处理和计算后,将定位的结果返回给移动端,两种位置指纹进行定位时智能手机的显示如图8所示.记录下服务器端返回的定位结果和当前实际所处位置.
图8定位页面及定位结果的显示在这一区域内进行足够多次的定位实验,定位结果的统计如表1所示.其中,定位的准确率是实验过程中定位结果和实际所在的位置相一致的次数和定位总次数间的比率,定位的精度是定位所划分的网格相邻中心点间的距离,定位的计算时间指服务器接受到智能手机传来的数据到计算出定位结果的时间,而网络传输时间由智能手机端发送数据到接收到服务器返回的结果的时间间隔减去定位计算时间得到.
表1 地磁定位实验的结果
从定位结果表中可以看出,两种位置指纹都成功的借助地磁数据实现了室内定位,而在网络良好的情况下定位的速度也能满足实时性的要求.结果显示,水平化处理方法的定位准确率并不高,只有64%,这一方面是这种水平化的处理方法抹去了原始数据中的很多差异化信息,降低了位置指纹的区分度,此外手机形态的变化是由陀螺仪得到的,虽然陀螺仪能够很好的反映出手机变化的趋势,但并不能非常准确的代表智能手机当前的形态,这使得计算时用到的陀螺仪的数据信息原本就有较大的误差.
对于方向与地磁混合的位置指纹的定位结果,86%的定位准确率已经能够满足室内定位的实际需求了,进一步分析每次定位时实际进行定位的位置在划分的网格中的相对位置,在这50次定位实验中,有11条是在靠近网格中心处进行的,有12条是在靠近网格边缘处进行的,有27条是在二者之间的区域.处于不同相对位置的定位准确率如表2所示.
表2 相对网格不同位置的定位结果表
可以看到定位时若处于网格中心区域,其定位的准确率高于处于网格间边缘处的准确率,即越靠近预先采集数据的位置,定位的准确率越高.这说明将区域划分成网格的位置指纹生成法,虽然减少了需要采集的数据,简化了地磁指纹生成的流程,但网格中心处的数据无法准确的反映网格边缘处的信息.
4 结束语
实验结果证实了地磁定位系统的可行性,也验证了本文提出的地磁定位算法和数据处理算法的效果,特别结合方向和地磁信息的定位方法.通过预先采集区域内的信息建立位置指纹图,移动设备通过采集实时的信息进行匹配,能够获得当前所在的位置.在卫星定位或基站定位等方式受限的区域能作为一种很好的代替手段,同时也使得室内定位技术有了更多的实现手段.本文提出的是以地磁信号为基础的定位方式,如果能进一步优化位置指纹的设计,例如结合室内定位的其他热点技术如基于WIFI、RFID和蓝牙等的定位方式进行混合定位,综合各自的特点,能有效提高定位精度,推动实际应用的发展.