近年来,无线技术飞速发展,已经融入人们生活的各个方面,人们对于无线定位服务的需求也越来越大[1]。然而室内定位技术却仍面临很大难题,即便是技术已经非常成熟的GPS技术,也只是局限于室外定位服务,对于室内的定位则无能为力[2]。本文针对这个研究课题,自主设计一套基于Android手机端的室内Wi-Fi定位系统,并设计全新的定位组合算法,将室内定位精度进行提高,并对系统中涉及到的功能模块进行开发。
1 系统总体设计方案Wi-Fi技术能够克服复杂多变的室内环境因素,其无线电信号可以穿透障碍物[3],并且对硬件设备要求较低,因此本设计采用Wi-Fi技术作为室内定位技术。考虑到移动电话在实际应用中日益重要的角色,以及Android开源的开发环境[4],提出了一种基于Android系统的室内Wi-Fi定位系统设计方案。
总体设计主要分为3个部分内容,分别是Android端模块开发、PC服务器端数据库开发和定位组合算法设计。具体内容及主要涉及技术如下:
1) Wi-Fi登录模块开发和手机数据库创建
应用Eclipse软件,在Java环境下进行代码编程,完成Wi-Fi登录模块以及手机端SQLite数据库开发。
2) PC服务器端数据库创建
应用SQL数据库语言,在Mysql环境下借助SQLyog工具创建服务器端数据库,并使用Qt Creator设计数据库服务端各个窗口。
3) 定位组合算法提出和设计
综合指纹定位算法、Wi-Fi信号传播损耗模型以及NN匹配算法,自主设计能够实现较高定位精度的组合算法和全新的定位逻辑,并进行实地测试分析。
2 基于Android的定位模块设计Android系统是一个以Linux为底层的开源操作系统,采用了软件叠层的架构[5]。这部分对Android架构中的应用层和应用程序框架层进行开发设计。
2.1 客户端登录模块设计现有开发Android软件的工具很多,我们采用以IDE为开发环境免费的、开源的Eclipse软件进行模块开发[6]。下面分别从Wi-Fi登录模块设计、Android手机数据库创建和虚拟机上运行3个部分简要叙述。
打开Eclipse软件,在File中New Android Application下创建新的开发项目,命名“Wi-Fi登录模块”。SDK是Android开发的软件工具包,Eclipse软件通过安装adt插件来调用SDK进行软件开发。通过设置参数定义图标样式,并设计软件界面和功能。
1) Wi-Fi登录界面设计。包括登陆账号输入框、密码输入框、登录按钮等。在res/layout/ activity_main.xml下进行编写设计,主要界面如图 1所示。需要注意的是,通过“android:inputType="textPassword"”语句实现密码以“· ”隐码形式输入,增加用户使用安全性。
2) 虚拟机上运行测试。开发完整的应用软件工作量很大,分部分开发便于随时模拟运行软件程序和检测bug,Eclipse提供Emulator模拟器插件可以实现这一功能。通过Eclipse中相应的API版本插件以及系统镜像,创建名字为“Capital”的虚拟机如图 2所示。
3) 嵌入Wi-Fi登录模块。在activity_main.xml下完成界面的编程后,将登录模块在虚拟机中运行,如图 3所示。
本设计需要实现位置定位功能,而手机端与服务器端可能出现连接失败或服务器端故障无法工作的情况,因此在原设计基础上自主开发设计基于Android手机端的数据库模块。
采用Android系统能够直接调用和编辑的SQLite数据库,应用Eclipse进行数据的插入和数据库的创建。运行程序,将workspace文件中生成的.apk格式文件安装在手机中,真机中运行如图 4所示。
在互联网技术飞速发展的背景下,21世纪已经进入了大数据时代,大到一个国家的生存发展,小到普通老百姓的茶米油盐,数据正深深地影响着我们。如最大的搜索引擎Google存储着大量的信息;阿里的淘宝保存着每一个客户的交易记录;全国的铁路系统联网存储着各地客运的信息等。在信息量越来越大的情况下,数据库的出现给数据管理和操作带来了解决办法。本定位系统由于要采集大量的位置指纹数据,并进行线上查询对比,因此同样要采用数据库进行辅助工作。
3.1 定义指纹参考点数据库的建立离不开数据,在创建数据库之前对数据进行采集,包括位置信息和各参考点的不同AP强度信息[7]。从对Wi-Fi信号强度的分析以及实际环境中测试现象观察中,我们发现室内Wi-Fi信号强度值并不稳定,且在较小范围内区分度很小。根据实地数据的采集情况,对参考点的选择和间隔的确定做了如下定义[8],如图 5所示。图 5为实际定位环境的按比例绘制的平面图,对定位区域进行划分,并标记指纹参考点的位置,用“小黑点”表示,定义了对应坐标。这些参考点是要进行位置指纹数据采集的坐标点[9],图中“黑色三角”代表 3个无线信号发射装置AP1,AP2,AP3[10]。
Mysql数据库不同于其他数据库,它运行在系统DOS界面下,进行本地数据库管理,必须在Windows系统运行窗口进行编辑和命令的控制,并且使用SQL语言,操作复杂且容易出错。因此,这里应用配套的可视化数据库管理软件SQLyog创建数据库。运行SQLyog,通过连接功能使可视化编辑关联到本机的Mysql数据库,实现对应的后台代码编译和功能的实现。使用SQLyog可视化工具代替在DOS下使用SQL语言建立数据库,把前面采集到的位置指纹信息创建成数据库,并以.sql格式保存。图 6为位置指纹数据库的可视图。
这部分采用QT Creator界面设计软件完成服务器端的窗口设计。
在QT工作环境下,进行窗口模块的编译,创建“database1234”项目,在“界面文件”中的“mainwindow.ui”中自主设计服务器的主窗口界面,包括按键、文字和背景的编辑,完成后运行,如图 7、8所示。
现有的室内定位算法,结构和逻辑过于简单,在定位的过程中,无法保证空间中不同位置、环境下的定位精度要求[11]。本文自主设计一套综合的定位逻辑和算法,把一些定位算法加以改进与融合,并根据实际定位环境进行各个算法参数的选择和模型的组合,主要分为3步,详述如下。
1) 基于指纹定位法的区域初步筛选。这是一种通过采集信号强度值和实际地理信息并通过一定算法完成的定位方法。它分为线下和线上2个阶段。首先将定位空间分为A至H共8个区域,对这8个区域进行投票初选,区域平面如图 9所示。
如线下数据库中第i区第j个AP信号的数值范围是(rssi_min, rssi_max),而线上移动终端采集到的第j(j=1, 2, 3) 个AP信号恰好在这个区间范围,那么投一票给第i区,逻辑图如图 10所示。
实际投票中,容易得到票数相同的结果,因此要对传统的投票方法进行改进,通过对真实数据的分析以及概率方法的运用,决定对投票原则进行加权改进,这就是基于加权的投票改进方案,如表 1所示。
基于加权投票初选后,可以初步判断定位所在区域。如果仍然出现相同票数,那么根据临近AP点的强度值对比判断。
2) 基于信号损耗的测距模型。前文我们使用的位置指纹定位方法,最重要的是采集无线信号强度信息。Wi-Fi信号强度与测量距离存在一定关系,随着距离的增大,强度逐渐减小[12],如图 11所示。
考虑到室内各种复杂布局、人员活动、电磁设备等干扰因素,建立如下数学模型,根据信号的损耗计算定位点与信号源的距离R。公式为
$ {P_{\rm{d}}} = {P_{\rm{r}}}-\left( {40 + 10n{\rm{log}}d-{G_1}-{G_2}} \right) - NW $ | (1) |
式中:Pr代表发射信号强度,Pd代表接收信号强度,n是损耗系数,d是距离,G1、G2分表代表发射端和接收端的天线增益,W代表不同介质的衰减值,N代表障碍物个数。
通过测距模型计算出定位点距离某AP信号源的距离R,以R为半径画圆,圆周与前面锁定的目标区域相交的几个参考点便是几率最大的参考位置点。
3) 最近邻算法确定系统定位点。经过指纹投票原则和测距模型的定位环节,最终得到几个可能的指纹参考点。此时,采用DCM(database correlation method)在线匹配算法进行最后筛选。该算法主要由K最近邻算法、加权K近邻算法、NN(nearest neighbor)匹配算法组成。
采用NN匹配算法,得到强度误差最小的指纹参考点作为最终的定位点,算法公式如下:
$ {L_i} = \sqrt {\sum\nolimits_{j = 1}^n {{{(s{s_j}-s{s_{ij}})}^2}} } $ |
式中:Li代表误差值,ssj代表定位点采集到的Wi-Fi强度值,ssij代表指纹点的信号强度。
5 系统实现与结果分析 5.1 实验环境搭建1) 定位区域确定。本实验选择在学校某一办公楼5层,定位区域包括4个房间、2个卫生间、1个走廊区域和1个楼梯口,区域面积为33.88 m×20.76 m,其中走廊位于区域中线,但两侧房间面积大小不同。
2) 硬件设备。Android系统智能手机一部,型号是HM NOTE 1LTE,Android版本为4.1;笔记本电脑一台,品牌型号为ASUS A550J,windows 8.1操作系统;无线路由器3个,基础结构模式,外置全域双天线;米尺,用于实际定位区域的测绘工作,位置指纹参考点的坐标测量,定位测试的误差测量等。
5.2 在线测试阶段 5.2.1 测试流程完成实验环境的搭建以及线下各部分的测试和数据库数据的采集后[13],进入线上的定位测试实验,定位流程如图 12所示。
表 2为实验中2组信号强度测试值,现做如下重点叙述和分析。
1) 定位点的信号强度信息采集。
2) 利用指纹定位法,对A~H这8个区域筛选和参考点初选,选择结果见表 3。
3) 采用基于信号损耗的Wi-Fi信号传输模型,由式(1) 计算第一组定位点与AP1信号源的距离,其中Pt发射功率取20 dBm,n损耗指数取3.0,W取40 dB。计算得距离R等于6.31 m,以AP1为圆心、R=6.31 m画圆,与步骤2) 确定的区域(黑色部分)相交产生3个几率最大的参考点,见图 13(x轴刻度代表实际距离为1:3.68 m,y轴刻度代表实际距离为1:3.46 m)。
4) 确定定位点及结果分析。采用NN匹配算法对3个参考点进行位置指纹坐标匹配,得到参考点(3, 3) 与定位信息误差最小,如图 14所示。图中(3, 3) 点信号强度误差最小,因此(3, 3) 参考点成为第一组测试最终定位点。2号组同理进行相同的系统定位。
第一组测试实际位置坐标为(3.70, 2.60),系统测试结果坐标为(2.80,2.90),实际相差3.47 m,计算过程如下:
x方向距离:
$ \left( {3.70-2.80} \right) \times 3.68 \approx 3.31{\rm{ }}m $ |
y方向距离:
$ \left( {2.90-2.60} \right) \times 3.46 \approx 1.04{\rm{ }}m $ |
定位误差距离:
$ \sqrt {{{3.31}^2} + {{1.04}^2}} \approx 3.47{\rm{ }}m < 5{\rm{ }}m $ |
利用本设计的定位系统,进行多组定位测试,并把系统定位的结果和实际的定位位置坐标绘制在同一坐标网格中,如图 15所示。
1) 本文自主设计的定位组合算法,弥补了单一定位算法的不足和缺陷,在复杂的室内环境中,把定位精度确控制在3 m以内,不仅满足室内定位要求,而且提高了系统的定位性能。
2) 基于Android手机端的功能模块和SQLite数据库的开发,使用户能方便进行定位服务。PC服务器端的数据库设计和窗口设计也提高了定位监控和系统运行的可操作性。
通过大量实地定位测试和数据分析,本室内Wi-Fi定位系统充分发挥了作用,符合预期的定位效果。组合算法的提出和设计也得到了充分验证,在现有室内定位研究领域具有很好创新价值和实际意义。
[1] | 孙继飞. 无线通信新技术与应用[J]. 中国新通信, 2012, 19: 50-51. DOI:10.3969/j.issn.1673-4866.2012.23.036 (0) |
[2] | 代帆. 802. 11无线局域网定位系统的设计与验证[D]. 长沙: 国防科学技术大学, 2012. http://cdmd.cnki.com.cn/Article/CDMD-90002-1014048248.htm (0) |
[3] | FRANCISCO J A, MARTIN P R. A method of characterizing radio signal space for wireless device localization[J]. Tsinghua science and technology, 2015, 20(4): 385-408. DOI:10.1109/TST.2015.7173454 (0) |
[4] | 罗利. 基于Android的WIFI室内定位技术研究[D]. 成都: 西南交通大学, 2014. http://d.wanfangdata.com.cn/Thesis_Y2577395.aspx (0) |
[5] | 卢天立. Android软件栈与终端无缝对接技术研究与设计[D]. 长沙: 中南大学, 2013. http://cdmd.cnki.com.cn/Article/CDMD-10533-1014147348.htm (0) |
[6] | 刘洪星, 谢玉山. Eclipse开发平台及其应用[J]. 武汉理工大学学报:信息与管理工程版, 2005, 27(2): 89-92. (0) |
[7] | 林浩, 张熠, 梁久祯. 基于用户反馈的WiFi位置指纹数据库更新算法[J]. 计算机应用与软件, 2015, 32(6): 178-181, 211. (0) |
[8] | MI Luna, GUO Meifeng, ZHANG Xinxi, et al. An indoor pedestrian positioning system based on inertial measurement unit and wireless local area network[C]//IEEE Control Conference. Hangzhou, China. 2015:5419-5424. (0) |
[9] | 董艳侠. 基于位置指纹的WIFI室内定位算法研究[D]. 成都: 西南科技大学, 2015. http://cdmd.cnki.com.cn/Article/CDMD-10619-1015318973.htm (0) |
[10] | ZHU Nan, ZHAO Hongbo, FENG Wenquan, et al. A novel particle filter approach for indoor positioning by fusing WiFi and inertial sensors[J]. Chinese journal of aeronautics, 2015, 28(6): 1725-1734. DOI:10.1016/j.cja.2015.09.009 (0) |
[11] | 王淑婷. 基于位置指纹的WiFi定位算法研究[D]. 长春: 吉林大学, 2015. http://cdmd.cnki.com.cn/Article/CDMD-10183-1015597749.htm (0) |
[12] | 张文学. 基于WiFi的RSSI指纹定位算法研究[D]. 成都: 电子科技大学, 2015. http://cdmd.cnki.com.cn/Article/CDMD-10614-1015711729.htm (0) |
[13] | 徐潇潇, 谢林柏, 彭力. 基于Wi-Fi信号强度特征的室内定位系统设计[J]. 计算机工程, 2015, 41(4): 87-91. (0) |