吴雨,杨力,王梦茹,孔港港
(信息工程大学 导航与空天目标工程学院,郑州 450002)
基于Android平台的WiFi定位系统研究与实现
吴雨,杨力,王梦茹,孔港港
(信息工程大学 导航与空天目标工程学院,郑州 450002)
随着人们对室内位置服务需求的不断增加,基于Android平台的室内无线保真定位的研究成为热点。本文利用无线保真传感器结合安卓智能手机研制了一种基于附加权值的K邻近位置指纹算法的室内定位系统并在实验室进行了相关实验,结果表明,该系统能够实现实时的定位功能并且具有较好的定位精度,精度能够稳定的保持在3 m以内。
无线保真;安卓;室内定位;位置指纹
全球定位系统(GPS)卫星信号由于遮挡等原因无法满足室内定位的要求。因此,利用已有的室内定位技术实现室内目标的定位成为当前研究热点。现有的室内定位技术包括超宽带(UWB)、红外线、无线射频识别(RFID)、超声波、蓝牙、无线保真(WiFi)等多种技术。
目前在一些大型室内环境下如商场、机场、会展中心等都已广泛覆盖了WiFi信号,WiFi定位成本低、覆盖范围广、传输速率高等原因使其成为室内定位的主流。基于信号强度值的定位方式包括信号传播模型和位置指纹法两种,传播模型法受周围环境、模型等影响较大,导致定位精度相对较差。另一方面,Andriod系统是一个开放式的移动互联网操作系统,已成为现今应用最广的移动互联网平台,面向Android系统的软件开发成为社会的主流[1]。本文利用WiFi传感器结合Android智能手机,采用基于无线信号强度值RSSI (Received Signal Strength Indication)的位置指纹定位方法,以附加权值的K邻近算法实现了一种对室内人员位置进行定位的定位系统并在某场地进行了实验验证,结果表明该系统能够实现室内人员的实时定位并取得了较好的定位效果。
位置指纹定位方法是基于无线信号强度RSSI的方法,主要分为两个阶段:离线采样阶段和在线定位阶段[2-3],如图1所示。
图1 指纹定位示意图
(1)
2.1系统架构
本定位系统采用的是C/S客户端服务端模式[4],整个框架包括4个部分即客户端部分、服务端部分和通信部分以及传感器部分,具体过程如图2所示。首先将客户端采集并且封装过滤后的所有指纹数据通过通信手段发送至服务端,服务端接收指纹数据并存储至数据库中。定位时客户端扫描AP传感器发射的信号,通过与服务器的通信将扫描到的信号强度值以及信号地址发送给服务端,服务端将接收到的信号强度值与数据库中的指纹数据进行匹配处理,选择合适的参考点内插得出最终的定位结果在服务端予以显示,同时将定位结果通过网络返回给客户端并在智能终端地图上予以显示,完成整个定位过程。
图2 系统架构图
2.2客户端设计
客户端程序是移植在Android智能终端上[5]的,利用eclipse软件和Java语言开发。主要功能是用于采集周围信号的强度RSSI、与服务端的通信交互以及对于定位结果的显示,其中与服务端的交互主要包括指纹数据的采集与传输和定位数据的采集与传输两个部分。由于Android编程是面向函数库的编程,通过调用WifiManager和WifiInfo两个WiFi相关类可以连接扫描得到附近AP的各种信息,包括信号强度level、MAC地址BSSID以及网络名称SSID等。指纹采集时,将采集到的AP信号强度值序列高斯滤波后封装,通过Socket连接发送给服务端存储到数据库中,服务端数据库采用MySQL;在线定位阶段,用户通过与服务端之间的Socket通信发送定位请求到服务端,将扫描到的WiFi信号强度和MAC地址等信息数据通过网络发送给服务端处理,最后接收服务器返回的定位结果并在手机地图上予以显示。客户端的模块图如图3所示。
图3 客户端设计架构图
2.3服务端设计
定位服务端运行于计算机上并连接到互联网[6],客户端采集的指纹数据存储到数据库MySQL中,包括指纹点的滤后信号强度RSSI、MAC地址BSSID、网络地址SSID以及坐标。服务端主要功能用于辅助离线阶段指纹数据库的创建以及在线定位阶段定位结果的计算与返回。服务端框架利用VS2010和C#语言开发。服务端开启后,同时会开启一个监听线程进行socket监听,等待客户端的指纹信息传输或者定位请求。当服务端监听到库客户端创建指纹信息数据库请求时,连接客户端并将接收到的指纹信息进行处理,再连接数据库并将相应的WiFi信息存入其中。当服务端接收到客户端的定位请求时,服务端连接并接收客户端发送的WiFi信息并与指纹数据库中的指纹信息匹配,采用相应的定位算法内插出客户端的当前位置坐标予以显示并将结果返回到定位客户端。服务端设计架构图如图4所示。
图4 服务端设计架构图
为了验证定位系统的可行性以及定位精度的高低,利用现有的扫描到的AP信号源,无需增加额外的设备,在某实验楼长14 m宽12.5 m的8间空房间区域进行定位实验,实验区域平面图如图5所示。
图5实验区域平面图
实验前事先将实验区域按照长宽为1 m的间隔划分为格网状,其中圆形网格点即为需要采集的指纹点(如图5中圆点所示),避开大的障碍物,一共需要采集132个指纹点。另外在不同区域具有不同特征的位置选择10个点(如图5中三角点)做为测试点,用来验证本系统的定位效果。以426房间左下角为坐标原点,向右为x轴正方向,向上为y轴正方向。在该区域能够同时搜索到6个AP接入点,如表1所示。
表1 扫描到的AP信息表
采样时,在每个待采集的指纹点上多次扫描WiFi信息,由客户端程序控制自动扫描50次并且滤波后求得平均信号强度值序列封装发送至服务端,存入数据库中。定位阶段,在选择的10个定位节点上进行定位验证,利用加权K邻近法计算出10个定位节点的坐标。将这10个点的实际坐标与定位坐标进行比较,分析系统的定位效果,结果如表2和图6所示。
表2 真实坐标与定位坐标结果比较
从图6中可以看出,10组定位结果的平均误差为1.68 m,位于指纹区域的边缘时误差较大,误差在2.5 m左右,位于指纹区域内,误差相对较小,保持在1.5 m左右。定位误差能够保持在3 m以内,指纹点覆盖区域内定位精度基本稳定在2 m以内。能够满足一般情况下对室内行人的位置服务需求。定位位置与真实位置的对比图如图7所示。
图6 定位误差图
图7 定位位置与真实位置对比图
基于Android平台的WiFi定位系统无论在成本上还是在应用范围上都有很大优势,可利用现有的AP定位,无需增加多余的设备。考虑到信号衰减的不稳定性,本系统采用指纹定位结合加权K邻近算法实现室内实时定位,精度保持在3 m以内,具有可行性。为了进一步提高WiFi定位的精度,如何优化匹配算法和降低信号强度的不稳定性需要进一步的研究。
[1]徐元坤.基于Wi-Fi和Android平台的室内定位技术研究[J].测绘地理信息,2014(10):21-24.
[2]蔡朝晖,夏溪,胡波,等.室内信号强度指纹定位算法改进[J].计算机科学,2014(11):178-181.
[3]王忠民,陈振,潘春华.一种改进的位置指纹智能手机室内定位算法[J].西安邮电大学学报,2014(1):17-20.
[4]李炜,金亮,陈曦.基于Android平台的室内定位系统设计与实现[J].华中科技大学学报,2013(10):422-424.
[5]崔惠媚,王小伟,王伟.基于WiFi的室内定位系统[J].网络与通信,2014(23):58-61.
[6]徐潇潇,谢林柏,彭力.基于WiFi信号强度特征的室内定位系统设计[J].计算机工程,2015(4):87-91.
Research and Implementation of WiFi Positioning System Based on Android Platform
WU Yu,YANG Li,WANG Mengru,KONG Ganggang
(InformationEngineeringUniversity,CollegeofNavigationandAerospaceEngineering,Zhengzhou450052,China)
With People's increasing demand for indoor location service, the indoor Wi-Fi positioning system based on the Android platform has become the study hotspot. This paper, by using Wi-Fi wireless sensor and Android smartphone develop an indoor positioning system with K neighboring algorithm and do the experiments in the field. The results show that the system can achieve the function of real-time positioning and has good localization accuracy that the precision can stable stay within 3 m. In order to improve the accuracy of Wi-Fi positioning, people need to research how to optimization algorithm and improve the stability of the signal.
Wi-Fi; Android; indoor positioning; position fingerprint
10.13442/j.gnss.1008-9268.2016.04.019
2016-03-08
P228.4
A
1008-9268(2016)04-0090-05
吴雨(1990-),男,安徽淮北人,硕士生,主要研究方向无线传感器定位。
杨力(1965-),男,河南郑州人,教授,主要研究方向为卫星精密定轨与导航应用。
王梦茹(1991-),女,河南郑州人,硕士生,主要研究方向为组合导航数据处理与航迹规划。
孔港港(1993-),男,河南安阳人,硕士生,主要研究方向为无线传感器定位。
联系人: 吴雨E-mail: 565122062@qq.com