基于Android平台的位置指纹室内定位系统研究与设计*

2016-06-21 09:18
舰船电子工程 2016年5期

许 微 查 峰 李 豹

(海军工程大学导航工程系 武汉 430033)



基于Android平台的位置指纹室内定位系统研究与设计*

许微查峰李豹

(海军工程大学导航工程系武汉430033)

摘要在研究基于 RSSI(Received Signal Strength Indication)位置指纹室内定位算法的基础上,设计了一种基于 Android平台的室内定位系统。该系统分为定位客户端和服务器端两部分,同时设计了位置指纹库的相关字段。系统主要应用于室内人员的定位,不同的系统使用者可以添加各种丰富的基于位置的服务信息,从而提供LBS。

关键词接收信号强度指示; 位置指纹; 室内定位系统

Class NumberU666.1

1引言

随着人们对基于位置的服务的需求的迅速增加,室内定位的应用如雨后春笋,例如:在大型展馆中,根据游览者的当前位置,导游系统可以提供精准导览,大大提升用户的参观体验,同时节省人力成本;在地下矿藏开采中,及时准确地掌握工人的位置,有助于提高企业的管理水平,尤其是在发生安全事故时,便于应急救援的开展,最大程度的减少伤亡。

但是传统的全球卫星导航系统,如GPS和北斗,在室外定位领域已经是功勋卓著,但是在室内定位领域(包括森林和地下环境),由于建筑物对卫星信号的遮蔽,无法为室内用户提供精准的位置信息,对于室内用户的定位的接力棒就交给了室内定位系统。

2室内定位系统现状分析

现有的室内定位系统,由于不能像全球卫星导航系统,可以一种技术架构适用于所有不用领域、不同需求的解决方案。各个行业、各个应用领域的室内定位均有各自的技术特点。因此从不同角度分类,可以将室内定位系统根据定位技术和定位算法等进行分类。

首先,根据采用的定位技术的不同,室内定位系统可概括分为两大块:基于惯性技术(基于加速度传感器和陀螺仪等的惯性测量)和基于短距离无线技术(包括红外、超声波、蓝牙、射频标签、Zigbee、UWB和无线局域网WLAN)。

其次,根据采用的定位算法的不同,可分为基于距离参数定位方法和基于非距离参数定位方法的室内定位系统。基于距离参数定位方法通过测量节点间的距离或角度等信息来计算节点的位置,定位精度相对较高[1],如 TOA ( Time of Arrival ) 、TDOA ( TimeDifference of Arrival) 、AOA ( Angle of Arrival) 等,需要额外的硬件支持。基于非距离参数定位方法利用网络连通性、相似匹配性等信息实现定位,在成本和功耗等方面有一定的优势,但定位精度相对较低,如质心算法[2],APIT( Approximate Point-In-Triangulation Test )[3]、DV-Hop ( Distance Vector-hop)[4]、MAP(Mobile Anchor Point)、凸规划定位和Ring-Overlapping定位算法[5]等。

因此,如何减少额外硬件设备,以较低的成本实现复杂室内环境下的高精度定位,满足室内用户的位置信息需求,成为定位技术领域的前沿和热点课题。随着无线通信技术的快速发展,非主要应用于定位的无线信号的无处不在,促使人们利用这些无线信号的特征进行定位的想法。位置指纹法正是在这样的背景下显现出广泛的应用价值。基于位置指纹的定位技术主要是基于射频无线信号的目标定位方法,目前多应用于基于无线网络的定位系统,如无线局域网(WLAN)、GSM网络、WCDMA网络、ZigBee网络等[6~10]。所谓位置指纹,是指目标源处于某一位置时,各个接收器所测得的某些物理参数与该位置存在一一对应关系,即一组物理参数可唯一地表示一个目标源位置,则可将这组物理量视作该位置的指纹。对于确定信号源定位,可用于做指纹的特征物理量有很多,如接收信号强度、信噪比、功率级、响应速度等,其中最常用的是接收信号强度(Received Signal Strength, RSS),这是由于大部分无线网络如WLAN和ZigBee 等协议都支持以接收信号强度指示(Received Signal Strength Indication, RSSI)的形式提供以dBm为单位的接收信号强度信息,完全通过纯软件的方式就能够实现定位。基于位置指纹的定位算法主要分为离线指纹库建立阶段和在线定位阶段[11]:

1) 离线指纹库建立阶段。此阶段在目标定位之前进行,在部署好的网络环境中,根据应用需求,确定指纹采集点的数目与位置。之后,接收设备至各采集点进行信号采集。在每一个采集点处,将各个接收器采集到的信号特征量与采集点的坐标一同组成位置指纹库。

2) 在线定位阶段。当目标运动到某一位置时,各个接收器可接收到RSSI序列,组成一组特征矢量 。将该组矢量与位置指纹库中的各组数据中特征量部分进行匹配,将满足匹配条件的己存特征矢量所对应的坐标或坐标的某种组合作为目标的位置[12]。

3系统设计

本文设计的位置指纹室内定位系统,属于一个主动定位的基于Android平台的定位系统,一般用于服务场合。如在大型博览会中,用户可以通过自己随身携带的Android终端获取自己当前的位置信息,同时系统会根据用户所处的位置将对应的商家服务信息推送给用户,这样便达到了游览者和商家双赢的目的;在医院,就医者可以从自己的手机终端上获得自己所处的院内位置信息,快速找到自己的就诊科室,及时就医;在图书馆,借阅者同样可以浏览手中Android移动终端上显示的位置信息,获知自己当前位置属于哪类图书的存放区。类似的室内场合还很多,主要的应用价值在于定位用户可以获取自己在室内的位置信息,系统可以根据用户当前的位置,选择性推送相关的基于位置的服务信息,这样可以让定位移动终端用户获取较好的基于位置的服务体验。

3.1总体设计

系统拟采用客户端/服务器 (Client/Server,C/S)的软件架构(如图1)。

图1 系统架构图

主要提供基本的静态定位功能,这是其他跟踪导航功能的基础,后续开发中将实现针对动态用户的定位导航跟踪,不同的系统使用者可以在服务器端的数据库中添加各种丰富的基于位置的服务信息,从而提供LBS。

客户端和服务端的开发语言为JAVA。客户端是安装在Android系统上的APP应用程序,采用Android 主流的开发环境 Eclipse+ADT+Android SDK,Android应用程序是在 Eclipse平台上编写的,首先需要在Eclipse上安装ADT插件,然后指定Android SDK所在的路径,便可以创建Android虚拟机,进行Android应用程序的初步调试。服务器端同样以Eclipse作为开发环境,采用JAVA语言编写实现。

位置指纹数据库选用SQLite数据库。SQLite是一款轻型的数据库,只需要几百KB的内存即可,占用的资源非常少,适用于内存不多的嵌入式产品,如智能手机。SQLite虽然很小巧,但是支持很多SQL语句,例如attach database,begin transaction,create index,create view,select以及update等数据库操作命令,同时,它也遵守ACID关系型数据库管理系统。Android平台采用了SQLite的数据库存储方式,并且为开发者提供了API。开发者可以通过创建SQLiteDataHdper的子类来创建自己的SQLiteDatabase实例。SQLiteDatabase提供了对数据库的所有操作,如query,insert,update,delete等。

3.2客户端设计

系统的客户端主要是实现各种移动终端位置导航定位。具体就是具有检测和识别RSSI、发送RSSI和定位请求、显示定位结果的功能。

另外,为了便于离线训练阶段指纹数据库的创建,尽量减少人工统计记录的工作,该系统在上述的功能模块基础上,设计了一个辅助创建指纹数据库的另一个客户端,同样运行于Android平台上,主要供数据库管理员使用,应具有采集位置指纹信息,传送参考点的RSSI和位置信息到服务器端的功能;对应地,在服务器端,需要增加相应的功能模块,配合数据库创建客户端完成指纹数据库的创建,应具有接收参考点位置指纹信息、处理指纹信息、连接数据库并写入指纹数据的功能。

定位客户端和创建数据库客户端均是安装在Android平台的移动终端上,离线建立指纹数据库时,系统管理员通过Android手机内置的无线网卡连接功能连到服务器所在的网络,使得客户端和服务器处在同一局域网内,并按照设定好的参考点位置在每一个参考点使用创建数据库客户端采集参考点位置指纹信息,并连同其的位置坐标传送到服务器端。在线定位时,用户启动客户端程序后,并发送一个定位请求到服务器,通过和服务器之间的socket通信进行数据传输,将能采集到的AP的RSSI通过socket连接发送给服务器,最后接收并显示服务器定位出的位置信息。

3.3服务器端设计

系统的服务器端运行于计算机上,主要是实现位置指纹库的建立、更新和维护以及信号处理和定位算法功能实现。具体可以描述为接收RSSI信息,处理RSSI信息、连接读取数据库、执行定位算法、发送定位结果的功能。

服务器主要负责辅助离线阶段指纹数据库的创建以及在线定位阶段定位的执行。开启服务器后,相应会开启一个监听线程进行socket监听,等待客户端的指纹信息传输或者定位请求。当收到创建数据库客户端的指纹信息时,服务器要将接收到的指纹信息进行处理,再连接数据库并将相应的指纹信息存入其中。当收到定位客户端的定位请求时,服务器读取其中的位置指纹信息,并读取离线阶段创建的指纹数据库中的指纹信息,执行最邻近定位算法估算出定位客户端的当前位置,并将结果返回到定位客户端。

3.4位置指纹数据库的设计

位置指纹库是实现定位的基础,系统在位置指纹库的建立阶段会产生大量的数据,怎样合理的设计数据库才能使系统运行效率更高是非常关键的问题[13]。本系统釆用的Android平台进行开发,适用于Android手机的应用软件,考虑到手机的存储和运算能力并不能像计算机那样强大,所以需要通过设计一个好的数据库来节约手机的内存。Android系统内置有一个轻量级的数据库系统:SQLite数据库,同时也提供了管理数据库的类和方法,能够有效地对数据库进行管理。

通过对待定位区域进行数据采集得到位置指纹库,而后利用位置指纹库实时的与在线位置指纹信息进行匹配实现定位,所以位置指纹库准确性对定位精度的影响非常大。

本系统共包含9张数据库表,用以存储系统所有产生的数据,如表1所示。

表DATA_COLLECT_ORIGIN用于保存离线阶段数据釆集时重复多次采集的包含釆集点位置坐标,AP列表和AP的信号强度列表。此列表信息如表2。

表DATA_COLLECT_FILTER存储的是数据釆集阶段经过处理后的数据,其结构与表 DATA_COLLECT_ORIGIN 一样。

表1 指纹数据库中涉及的表

表2 数据库表DATA_COLLECT_ORIGIN 信息

表DATA_COLLECT_AVERAGE存储的是对每个AP的信号强度经过求平均之后得到的新数据,其信息如表3。

表DATA_RSSI_RANGE存储的是每个AP的信号强度变化范围,其信息如表4。

表4 DATA_RSSI_RANGE 表信息

表DATA_AP_RSSI用来保存数据釆集阶段釆集到的RSSI数据,存储了AP的名字和信号强度,通过表5来描述。

表5 DATA_AP_RSSI 表信息

表DATA_FEATURE_LIBARAY存储的是特征库的信息。

表6 DATA_FEATURE_LIBARAY 表信息

表CURRENT_RSSI_LEVEL用以存储当前实时扫描到的AP信息,包括AP的名字和信号强度。其结构与表DATA_AP_RSSI相同。

表POSITION_WEIGHT用来存储匹配后得到的包含权值和位置信息的数据,其信息如表7。

表7 含权值和位置信息的数据表

为了在每一次定位结束时对本次定位结果进行判断,需要对每一次定位的结果进行存储,表POSITION_CORRECT存储的是每一次正确定位后的位置信息,如表8所示为数据库表POSITION_CORRECT的结构。

表8  POSITION_CORRECT 表信息

4系统实现

系统主要由类图中的七个类实现,MainActivity类是系统最主要的类是系统的入口 ,系统的特征库建立功能模块的实现就由这个类来完成。MatchingActivity类是定位算法的主体类,实现当前扫描的数据与特征库的匹配,计算目标定位坐标,主要调用的方法:readData(),writeData(), matchData(),calculateCoordinate()等。类图中的其他类主要负责系统运行过程巾的数据处理,实现数据的交互和存储等。

图2 系统类图

5结语

本文着眼实际,以基于位置的服务应用为研究背景,以室内定位领域的前沿理论成果为理论基础。采用软硬件结合的研究方法,以位置指纹室内定位系统的工程实用化为目标,探索并设计了基于Android的位置指纹室内定位系统,为后续研究位置指纹室内定位算法的优化奠定了坚实的基础。

参 考 文 献

[1] Garg V,Jhamb M. A Review of Wireless Sensor Network on Locali-zation Techniques[J].International Journal of Engineering Trends and Technology,2013,4(4):1049-1053.

[2] Han G,Xu H,Duong T Q,et al. Localization Algorithms of Wireless Sensor Networks: Survey[J].Telecommunication Systems,2013,52(4):2419-2436.

[3] 冯秀芳,崔秀锋,祈会波.无线传感器网络中基于移动锚节点的APIT 的改进定位算法[J].传感技术学报,2011,24(2):269-274.

[4] 温江涛,范学敏,吴希军.基于 RSSI 跳数修正的DV-Hop改进算法[J].传感技术学报,2014,27(1):113-117.

[5] Shin B J,Lee K W, Choi S H, et al. Indoor WiFi positioning system for Android-based smartphone[C]//Proceedings of International Conference on Information and Communication Technology Convergence ICTC′10, 2010.

[6] 扬帆,赵东东.基于Android平台的WiFi定位[J].电子测量技术,2012,35(9):116-124.

[7] 雷地球,罗海勇,刘晓明.一种基于WiFi的室内定位系统设计与实现[C]//第六届和谐人机环境联合学术会议,2010.

[8] 顾聪.基于Android平台的室内LBS系统的研究与实现[D].湘潭:湘潭大学硕士学位论文,2011.

[9] Le Dortz N, Gain F,Zetterberg P. WiFi fingerprint indoor positioning system using probability distribution comparison[C]//Acoustics, Speech and Signal Processing (ICASSP),2012 IEEE International Conference on. IEEE,2012:2301-2304.

[10] Yongliang Sun, Yubin Xu, Lin Ma, Zhian Deng. KNN-FCM Hybrid Algorithm for Indoor Location in WLAN[C]//International Conference on Power Electronics and Intelligent Transportation System,2009.

[11] Di Wu,Yubin Xu,Lin Ma. Research on RSS based Indoor Location Method[C]//Shenzhen: Pacific-Asia Conference on Knowledge Engineering and Software Engineering,2009:205-208.

[12] Moustafa Youssef, Mohamed Abdallah, Ashok Agrawala. Multivariate Analysis for Probabilistic WLAN Location Determination Systems[C]//The Second Annual International Conference on Mobile and Ubiquitous Systems: Networking and Services,2005:353-362.

[13] Hung-Huan Liu,Yu-Non Yang.WiFi-Based Indoor Positioning for Multi-Floor Enviromnent[C]//Tencon IEEE Region Conference,2011:24(4):597-601.

Study and Design of Indoor Position System with Fingerprint Based on Android Platform

XU WeiZHA FengLI Bao

(Department of Navigation Engineering, Naval University of Engineering, Wuhan430033)

AbstractOn the basis of the research based on RSSI indoor positioning, the paper designs a kind of fingerprint indoor position system based on Android platform.The system is divided into two parts, including positioning the customer terminal and positioning server. It mainly applies to position for indoor people. Different users can add kinds of information to the system in order to provide the server based on location.

Key Wordsreceived signal strength indication, fingerprint, indoor position system

* 收稿日期:2015年11月3日,修回日期:2015年12月27日

基金项目:海军工程大学青年自然科学基金(编号:HGDQNJJ15006,HGDQNJJ15020);国家自然科学基金(编号:61503404);航空科学基金(编号:20150816002)资助。

作者简介:许微,女,硕士,讲师,研究方向:卫星导航、室内定位和重力匹配导航。查峰,男,博士,讲师,研究方向:惯性技术及应用。李豹,男,博士,讲师,研究方向:卫星导航技术及应用。

中图分类号U666.1

DOI:10.3969/j.issn.1672-9730.2016.05.013