«上一篇
文章快速检索     高级检索
下一篇»
  应用科技  2017, Vol. 44 Issue (3): 72-77  DOI: 10.11991/yykj.201605017
0

引用本文  

闫保中, 李英帅. 室内Wi-Fi定位系统设计及组合算法[J]. 应用科技, 2017, 44(3): 72-77. DOI: 10.11991/yykj.201605017.
YAN Baozhong, LI Yingshuai. Design and combined location algorithm on indoor Wi-Fi positioning system[J]. Applied Science and Technology, 2017, 44(3): 72-77. DOI: 10.11991/yykj.201605017.

通信作者

李英帅, E-mail:13124506378@163.com

作者简介

闫保中(1963-), 男, 研究员;
李英帅(1993-), 男, 硕士研究生

文章历史

收稿日期:2016-05-27
网络出版日期:2017-05-19
室内Wi-Fi定位系统设计及组合算法
闫保中, 李英帅    
哈尔滨工程大学 自动化学院, 黑龙江 哈尔滨 150001
摘要:为了实现较高精度的室内定位功能,利用Wi-Fi技术设计并搭建了室内定位系统,并提出一种定位组合算法。选择以Android系统为载体的移动定位终端,应用Eclipse开发工具自主开发手机端功能模块。除此之外,在PC端应用Mysql和QT Creator软件创建并设计定位指纹信息库及服务器端窗口,以完善室内定位系统。着重研究并设计了室内定位组合算法:包括位置指纹投票法与基于损耗测距模型的结合,NN匹配算法的应用等,成功获得了较高的定位精度。通过进行系统的实地测试与定位结果分析,验证了组合算法的有效性。
关键词室内Wi-Fi定位    组合算法    Android开发    Eclipse    QT    数据库    指纹    NN匹配算法    
Design and combined location algorithm on indoor Wi-Fi positioning system
YAN Baozhong, LI Yingshuai    
College of Automation, Harbin Engineering University, Harbin 150001, China
Abstract: In order to realize the indoor positioning function with high accuracy, this paper used Wi-Fi technology to build the indoor Wi-Fi positioning system, designed the combined location algorithm independently.This paper chose a mobile positioning terminal with Android system as the carrier, used the Eclipse development tools to design the functional modules at the cellphone terminal independently.In addition, the paper used the MySQL software to create a location fingerprint information database and designed the server-side window interface by QT Creator software, so as to improve the indoor positioning system.This paper focused on the design of the integrated indoor positioning algorithm, which included the combination of the Fingerprint Voting Method, the Loss Ranging Model and the application of NN matching algorithm, etc., successfully obtained high positioning accuracy.Finally, by testing the function of the entire positioning system and analyzing the result, the effectiveness of the combined location algorithm was verified.
Key words: indoor Wi-Fi positioning    combined location algorithm    Android development    Eclipse    QT    database    fingerprint    NN matching algorithm    

近年来,无线技术飞速发展,已经融入人们生活的各个方面,人们对于无线定位服务的需求也越来越大[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"”语句实现密码以“· ”隐码形式输入,增加用户使用安全性。

图 1 Wi-Fi登录模块主界面

2) 虚拟机上运行测试。开发完整的应用软件工作量很大,分部分开发便于随时模拟运行软件程序和检测bug,Eclipse提供Emulator模拟器插件可以实现这一功能。通过Eclipse中相应的API版本插件以及系统镜像,创建名字为“Capital”的虚拟机如图 2所示。

图 2 Andriod模拟器运行界面

3) 嵌入Wi-Fi登录模块。在activity_main.xml下完成界面的编程后,将登录模块在虚拟机中运行,如图 3所示。

图 3 模拟器上运行Wi-Fi登录模块
2.2 手机端SQLite数据库设计

本设计需要实现位置定位功能,而手机端与服务器端可能出现连接失败或服务器端故障无法工作的情况,因此在原设计基础上自主开发设计基于Android手机端的数据库模块。

采用Android系统能够直接调用和编辑的SQLite数据库,应用Eclipse进行数据的插入和数据库的创建。运行程序,将workspace文件中生成的.apk格式文件安装在手机中,真机中运行如图 4所示。

图 4 Android真机安装并运行数据库
3 PC服务器端数据库设计部分

在互联网技术飞速发展的背景下,21世纪已经进入了大数据时代,大到一个国家的生存发展,小到普通老百姓的茶米油盐,数据正深深地影响着我们。如最大的搜索引擎Google存储着大量的信息;阿里的淘宝保存着每一个客户的交易记录;全国的铁路系统联网存储着各地客运的信息等。在信息量越来越大的情况下,数据库的出现给数据管理和操作带来了解决办法。本定位系统由于要采集大量的位置指纹数据,并进行线上查询对比,因此同样要采用数据库进行辅助工作。

3.1 定义指纹参考点

数据库的建立离不开数据,在创建数据库之前对数据进行采集,包括位置信息和各参考点的不同AP强度信息[7]。从对Wi-Fi信号强度的分析以及实际环境中测试现象观察中,我们发现室内Wi-Fi信号强度值并不稳定,且在较小范围内区分度很小。根据实地数据的采集情况,对参考点的选择和间隔的确定做了如下定义[8],如图 5所示。图 5为实际定位环境的按比例绘制的平面图,对定位区域进行划分,并标记指纹参考点的位置,用“小黑点”表示,定义了对应坐标。这些参考点是要进行位置指纹数据采集的坐标点[9],图中“黑色三角”代表 3个无线信号发射装置AP1,AP2,AP3[10]

图 5 平面定位区域参考点分布
3.2 创建Mysql数据库

Mysql数据库不同于其他数据库,它运行在系统DOS界面下,进行本地数据库管理,必须在Windows系统运行窗口进行编辑和命令的控制,并且使用SQL语言,操作复杂且容易出错。因此,这里应用配套的可视化数据库管理软件SQLyog创建数据库。运行SQLyog,通过连接功能使可视化编辑关联到本机的Mysql数据库,实现对应的后台代码编译和功能的实现。使用SQLyog可视化工具代替在DOS下使用SQL语言建立数据库,把前面采集到的位置指纹信息创建成数据库,并以.sql格式保存。图 6为位置指纹数据库的可视图。

图 6 用SQLyog编写可视化指纹数据库
3.3 PC服务器端窗口设计

这部分采用QT Creator界面设计软件完成服务器端的窗口设计。

在QT工作环境下,进行窗口模块的编译,创建“database1234”项目,在“界面文件”中的“mainwindow.ui”中自主设计服务器的主窗口界面,包括按键、文字和背景的编辑,完成后运行,如图 78所示。

图 7 应用QT开发服务端界面
图 8 PC服务器端数据库查询窗口
4 室内定位组合算法的设计与研究

现有的室内定位算法,结构和逻辑过于简单,在定位的过程中,无法保证空间中不同位置、环境下的定位精度要求[11]。本文自主设计一套综合的定位逻辑和算法,把一些定位算法加以改进与融合,并根据实际定位环境进行各个算法参数的选择和模型的组合,主要分为3步,详述如下。

1) 基于指纹定位法的区域初步筛选。这是一种通过采集信号强度值和实际地理信息并通过一定算法完成的定位方法。它分为线下和线上2个阶段。首先将定位空间分为AH共8个区域,对这8个区域进行投票初选,区域平面如图 9所示。

图 9 平面8个区域分布

如线下数据库中第i区第j个AP信号的数值范围是(rssi_min, rssi_max),而线上移动终端采集到的第j(j=1, 2, 3) 个AP信号恰好在这个区间范围,那么投一票给第i区,逻辑图如图 10所示。

图 10 定位区域初选流程

实际投票中,容易得到票数相同的结果,因此要对传统的投票方法进行改进,通过对真实数据的分析以及概率方法的运用,决定对投票原则进行加权改进,这就是基于加权的投票改进方案,如表 1所示。

表 1 基于加权的投票原则

基于加权投票初选后,可以初步判断定位所在区域。如果仍然出现相同票数,那么根据临近AP点的强度值对比判断。

2) 基于信号损耗的测距模型。前文我们使用的位置指纹定位方法,最重要的是采集无线信号强度信息。Wi-Fi信号强度与测量距离存在一定关系,随着距离的增大,强度逐渐减小[12],如图 11所示。

图 11 Wi-Fi信号强度与距离关系测试

考虑到室内各种复杂布局、人员活动、电磁设备等干扰因素,建立如下数学模型,根据信号的损耗计算定位点与信号源的距离R。公式为

$ {P_{\rm{d}}} = {P_{\rm{r}}}-\left( {40 + 10n{\rm{log}}d-{G_1}-{G_2}} \right) - NW $ (1)

式中:Pr代表发射信号强度,Pd代表接收信号强度,n是损耗系数,d是距离,G1G2分表代表发射端和接收端的天线增益,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所示。

图 12 系统整体定位实现流程
5.2.2 2组实例定位

表 2为实验中2组信号强度测试值,现做如下重点叙述和分析。

表 2 2组信号强度值表

1) 定位点的信号强度信息采集。

2) 利用指纹定位法,对A~H这8个区域筛选和参考点初选,选择结果见表 3

表 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)。

图 13R为半径测距确定坐标参考点

4) 确定定位点及结果分析。采用NN匹配算法对3个参考点进行位置指纹坐标匹配,得到参考点(3, 3) 与定位信息误差最小,如图 14所示。图中(3, 3) 点信号强度误差最小,因此(3, 3) 参考点成为第一组测试最终定位点。2号组同理进行相同的系统定位。

图 14 三组匹配点信号强度误差
5.3 结果分析

第一组测试实际位置坐标为(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所示。

图 15 多组定位测试结果示意
6 结论

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)