基于RSSI的室内定位系统设计与实现

2022-03-23 09:16:22 | 浏览次数:

1 引言

近年来,随着无线通信技术和移动智能终端的广泛应用,基于移动的LBS应用服务发展迅猛。早期的LBS系统主要应用于快速救援,比较典型的有美国的E911系统和欧洲的E112系统。随着GPS的普及,LBS的应用范围扩至军事、交通、物流、医疗、民生等领域,用户可以查出到兴趣点的最优路径等信息[1]。近两年来在3G宽带移动互联网和智能手机的带动下,以手机为移动载体的LBS系统被广泛应用。其主要特点是室内室外都可以进行定位,定位精度高。

目前市场上应用于手机平台的室内LBS软件较少,本文将基于Android平台创建一个应用于室内环境的LBS系统平台,可以根据客户的位置提供相应的服务,该系统可以应用于众多的室内场所,如超市、书店、博物馆、火车站和商店等[2]。

2 基于Android的室内定位系统结构

2.1 移动端平台的选择

Android平台是谷歌并购Android后在2007年11月发布的一款新的手机操作平台。Android基于Linux内核,采用了软件叠层的架构。最底层是Linux核心层,以C语言进行开发,它作为软硬件之间的抽象层,隐藏了硬件细节而为其上层提供了统一服务。在核心层之上,是由函数库Libraries和运行时Runtime构成的中间层,用C++开发而成。其中Runtime中包括了Android核心库和Dalvik虚拟机。核心库主要提供Java编程语言核心库中可能用的功能,Dalvik虚拟机的作用则是为每一个Android应用程序提供一个运行环境。中间层之上是Android的应用层,它包括了应用软件及框架设计。通过这个开放的平台,开发者们可以通过框架API尽情发挥自己的想象力,利用Java语言编写出各种各样的应用软件[3]。

正是由于Android采用了上述软件分层结构,开发者无需过多了解其他层次,而只需把应用层作为一个有机整体对其进行理解并作进一步开发。与此同时Android的下层体系又能对上层提供很多服务,非常有利于标准化工作。同其他的手机平台相比,Android拥有的Linux内核在网络性能方面更为出色,对硬件平台的适应性更好。另外,Android手机提供的无线Wi-Fi以及GPS等功能,使用户可以非常方便地联网(本系统的设计就是应用了Android平台自带的Wi-Fi无线网络连接设备,在程序中可以非常方便地调用及停止此功能[4])。基于Android平台的以上特点,本系统选择Android为LBS系统的底层平台。

2.2 定位技术的选择

这几年室内无线定位技术迅速发展,一些新型定位技术在商场、大型楼宇、工厂等场景中得到了广泛应用,比如Wi-Fi技术、蓝牙技术、ZigBee技术等。通过对比,本文选择Wi-Fi技术作为室内定位的主要技术手段,配合手机的GPS功能,可以实现室内外全覆盖定位。与其他技术相比,Wi-Fi技术具有诸多优点,如:无线电波的覆盖范围广,可以在整栋大楼中使用;传输速度快,利于实时交互;成本低,无需额外设备。

当前,Wi-Fi定位技术主要分为四种:TOA(基于信号到达时间的定位)、TDOA(基于信号到达时间差的定位)、AOA(基于信号到达角度的定位)、RSSI(基于信号强度的定位方法)。这四种方法中,RSSI方法不需要增加额外的硬件设备就可以进行定位,在室内网络环境稳定时,其定位结果较为稳定精确,因此本文采用RSSI定位算法。

2.3 定位流程

利用RSSI进行定位,需要在区域内布置多个AP,然后将区域划分成多个子区域,分别采集子区域内的AP信号强度,采集时可以根据区域大小决定采集数据的密度[5],然后将信号强度数据上传到服务端,这样就可以据此绘制出位置-信号强度分布图。

当客户端进入这些区域时,手机将会自动实时采集这些AP信息点发出信号的强度,将这些数据传到服务端,在服务端将客户端传来的每个AP点的信号强度值与已经采集的信号值进行比对,通过一定的算法得到最接近于实际信号强度值附近的目标区域,从而对用户进行定位,并将定位结果返回给客户端。

定位流程如图1所示。

3 室内定位系统的结构设计

本文的LBS室内定位系统可以分为三大部分:客户端、服务端、数据库。客户端用于采集室内信号强度信息、位置信息,被定位端实时上传数据,定位端请求定位。服务端用于管理客户端的设备信息、位置信息,查看状态信息,并完成定位算法。数据库用于存储信号强度信息和室内位置信息。

系统结构如图2所示:

图2 系统结构图

4 室内定位系统的实现

如前所述,本系统主要分为客户端、服务端、数据库三部分,其中客户端主要实现用户数据采集和定位显示,服务端主要实现设备管理、位置管理等管理功能,数据用于存储数据信息。系统的物理结构如图3所示,软件结构图如图4所示。

图3 物理结构图

图4 系统模块图

根据功能的不同将系统划分为以下几个模块:终端设备管理模块,指纹数据管理模块,位置信息管理模块,运行时管理模块,定位服务管理模块。

4.1 终端设备管理模块

在使用系统时,终端设备第一次与平台建立连接后,需要在平台上注册,并在平台端生成一个注册码,对设备类型进行授权。当完成这些操作后,平台向终端发送注册码以及设备参数。

4.2 指纹数据管理模块

当终端采集设备连接到平台时,采集端可以通过Wi-Fi、宽带网络等通信方式,将采集到的指纹数据直接上传至平台,省去人工上传的附加动作。如果采集终端由于某些原因不能和平台建立连接,无法保证数据实时的传送到平台中心,那就可以通过平台提供的离线导入功能,将采集到的指纹数据上传至平台。

4.3 位置信息管理模块

位置信息是对实体建筑物在平台上的模型进行转换,平台将一个位置划分为建筑物信息、楼层信息、楼层内部房间及公共空间等。通过对位置信息的管理,可以将一个实体建筑物划分为可分开管理与维护的位置单元,从而可以在各个细分位置单元进行如数据采集与定位结果展示等操作。每个建筑物都有对应的楼层平面图,为了在平台端更直接地细分位置单元、建立更为详细的位置信息,平台支持在楼层平面图上直接标注房间及公共空间等细粒度维度信息。

楼层平面图需为标准SVG格式,在建立楼层时可同步上传对应的楼层平面图SVG文件。位置信息添加是建立位置信息的基础,通过手工建立位置信息及位置邻接关系,将现实实体模型转换为平台可识别的数据模型。位置信息是进行数据采集及定位结果显示的基础。由于用户可能不能及时上传楼层平面图SVG文件,该模块可以直接通过手工输入的形式进行位置信息的添加。

可以对已经添加的位置信息进行修改与删除操作,同时可以添加新建筑物,选择对应的建筑物可以添加新的楼层信息,选择建筑物楼层信息可以添加新的房间及公共空间信息。

当进行删除操作时,如果选择删除建筑物信息,那么该建筑物下的楼层、房间及公共空间信息也将随之删除;如果选择删除楼层信息,则该楼层下的房间及公共空间信息也随之删除。可单独删除房间及公共空间信息。

终端采集设备在进行采集数据工作时,需要先下载对应的位置信息;当终端采集设备首次下载位置信息或者需要更新位置信息时,终端采集设备需要连接到平台。

4.4 运行时管理模块

运行时管理主要针对当前连接到平台且正在运行的终端设备,包含采集端、定位端、被定位端等终端设备,其功能包括手工删除在线设备、重置在线设备、修改在线设备参数等。它是定位端查询可被定位终端设备、向平台发起定位请求的基础模块。

为有效管理终端设备,每个终端设备在启动、运行和关闭过程中,都会在指定时间范围内向平台发送心跳包信息,以便平台动态掌握终端运行状态。平台在接收到心跳信息后会及时更新运行时数据,以便更有效查看当前终端设备的运行状况。

如果平台端对该部分参数做出调整,平台会启动androidPN推送更新后的参数信息到指定的终端设备。平台端推送消息到特定终端设备的数据结构为JSONObject格式:

{"result":"0x0001","contLocInteval":00,"maxLocWaitTime":00,"heartbeat":00}

平台端可以人工管理正在运行的终端设备,若终端设备运行时数据异常,可以让其从平台端断开连接。手工删除指定运行时设备后,该设备将与平台端停止通信,下次通信时间点为该终端设备再次启动终端设备软件时。手工删除终端设备后,平台会启动androidPN推送停止消息到指定的终端设备,当前仅限于Android终端设备。平台端推送消息到特定终端设备的数据结构为JSONObject格式:

{"result":"0x0003","destImei":""}

平台端可对当前运行时设备正在进行的工作进行重置,此处主要针对终端设备定位端及终端设备被定位端而设立,可以使当前正在进行的定位活动停止并重新启动。终端设备重置后,会根据实际运行情况,主动再次连接平台并进行通信;而平台则会启动androidPN推送停止消息到指定的终端设备,当前仅限于Android终端设备。平台端推送消息到特定终端设备的数据结构为JSONObject格式:

{"result":"0x0002","destImei":""}

4.5 定位服务管理模块

该模块管理与维护定位算法及更新定位模型库,在更新指纹数据或者更新位置信息时暂停或者停止定位服务,以便定位算法更新相关数据模型。定位服务分为运行和停止两种状态,只有定位服务处于运行状态时,终端设备定位端发出的定位请求才是有效的。当指纹数据更新时,可通过平台直接更新定位模型,加快数据更新,减少手工操作的繁琐。

定位是建立在指纹数据、位置信息、定位算法、定位服务和运行时设备基础之上的。当终端设备定位端向平台提出定位请求时,平台会根据实际情况来确认该定位请求是否有效。平台根据终端设备被定位端提交的指纹数据运行定位算法,将定位结果推送到终端设备定位端。定位类型分为单次定位和多次定位即连续定位。

平台端根据提交的请求确认是否有效,如有效,平台通知终端设备定位端定位请求成功,并通知终端设备被定位端按定位类型向平台发送指纹数据;如无效,平台通知终端设备定位端定位请求无效。平台接收终端设备被定位端返回的指纹数据运行定位算法,获取定位结果,并利用androidPN技术推送定位结果到终端设备定位端。

选择终端设备被定位端及定位类型后,终端设备定位端向平台发出定位申请,由于获取终端设备被定位端数据列表到定位申请发出有时间间隔,平台会检测相应的被定位端当前工作状态。同时,针对每次定位申请,平台都会检测当前定位服务状态,只有当前定位服务状态为运行时才可以执行定位算法。

当终端设备被定位端接收到定位类型数据时,会自动在指定时间范围内向平台发送指纹数据,平台根据被定位端发送的指纹数据运行定位算法,将定位结果利用androidPN推送到指定定位端。平台运行定位算法得到定位结果后,会利用androidPN推送定位结果到指定的定位端完成定位流程。

4.6 数据表

本系统数据库主要包括以下数据表:终端设备表,主要用于记录终端设备信息;位置信息表,主要用于记录室内采集的位置信息;指纹数据表,主要用于记录采集的信号强度信息;定位日志表,主要用于记录定位结果信息;运行时设备表,主要用于记录正在运行的设备信息;系统用户表,用于记录当前管理用户信息。

5 实验结果分析

本次选择一个展览馆作为测试地点,此展览馆有很多Wi-Fi点满足系统对Wi-Fi点的要求。首先使用采集端在室内选择不同的位置点进行数据采集,在服务端将这些数据通过一定的算法生成位置模型记录到数据库中。然后切换到定位端和被定位端,此时需要两部手机,一部作为定位端,另一部作为被定位端,在被定位端上运行应用程序,应用程序将会把实时采集到的信号强度信息发送到服务端,在服务端通过跟以后的模型进行对照确定被定位端所处的位置,将结果返回给定位端。定位端根据需要选择被定位的设备,向服务端发送定位请求,服务端根据定位端发送过来的请求将定位结果返回给定位端手机。定位结果如图5所示:

(a)定位请求选择 (b)显示定位结果和室内图

图5 室内定位结果图

经过测试本系统的定位精度可以达到1m,反应时间在3s以内,能满足大多数室内定位要求。

6 结语

本文利用Android操作平台,结合RSSI室内定位技术设计了一个室内定位系统,该系统可以在多种场合使用,比如商场、车站、工厂、学校等地。在此基础上,可以根据不同的应用环境开发出基于室内定位的各种应用系统。此系统具有实现成本低廉、应用广泛的特点,将能给消费者带来很好的体验。

参考文献:

[1] 杨东勇,顾东袁,傅晓婕. 一种基于RSSI相似度的室内定位算法[J]. 传感技术学报, 2009,22(2): 264-268.

[2] 侯振堂,梁博,张建,等. Wi-Fi技术与传统矿井无线通信技术对比[J]. 科技信息,2012(3): 152,174.

[3] 顾聪,陈毅强,刘军发,等. 基于Android平台的室内LBS系统设计与实现[J]. 计算机工程与设计, 2012,33(1): 396-401.

[4] 朱明辉,张会清. 基于RSSI的室内测距模型的研究[J]. 传感器与微系统, 2010,29(8): 19-22.

[5] 康会娜,张琦. 大型场馆游客定位诱导系统的研究[J]. 信息技术, 2010,34(8): 65-69.

[6] 宋杰,王书菊,曹竹东,等. 基于ARM2440平台的Android操作系统的移植[J]. 计算机技术与发展, 2011,21(1): 66-69.

[7] 虞志飞,邬家伟. ZigBee技术及其安全性研究[J]. 计算机技术与发展, 2008,18(8): 144-147.

[8] 任秀丽,于海滨. ZigBee无线通信协议实现技术的研究[J]. 计算机工程与应用, 2007,43(6): 143-145.

[9] LIU Xiaodan, LUAN Ruoxing, HUANG Cuicui. A novel encoding method for visual two-dimensional barcode using pattern substitution[C]. International Conference on Machine Vision and Human-machine Interface. USA: IEEE Computer Society, 2010: 662-628.

[10] Ono S, Morinaga K, Nakayama S. Barcode design by evolutionary computation[J]. Artificial Life and Robotics, 2009,13(1): 238-241.

推荐访问: 定位系统 室内 设计 RSSI