基于RSSI的室内定位系统设计与实现
- 格式:pdf
- 大小:605.11 KB
- 文档页数:5
嚣戮 移动互联网”专题{i
基于R S S I的室内定位系统设计与实现
孔勇平,钟致民,杨广龙,张玉良
(中国电信股份有限公司广州研究院,广东广州510630)
【摘要】
【关键词】 当前,手机定位技术尤其是室内定位技术的发展仍然不够成熟,已经成为制约LBS发展的瓶颈。在研究定位技术 现状和发展趋势的基础上,提出~种新的室内定位方法,它依靠手机接收到的基站、Wi.Fi ̄DGPS信号即可完成 室内环境的精准定位,具有简单、方便、灵活的优点,能够满足LBS的发展需求。 RSSI Wi.Fi 基站LBS Android
中图分类号:TN929.53 文献标识码:A 文章编号:1006—1O1o(201 4)一05—0()34—05
l引言
近年来,随着无线通信技术和移动智能终端的广
泛应用,基于移动的LBS应用服务发展迅猛。早期的
LBS系统主要应用于快速救援,比较典型的有美国的
E911系统和欧洲的E112系统。随着GPS的普及,LBS
的应用范围扩至军事、交通、物流、医疗、民生等领 域,用户可以查出到兴趣点的最优路径等信息”】。近两 年来在3G宽带移动互联网和智能手机的带动下,以手
机为移动载体的LBS系统被广泛应用。其主要特点是室 内室外都可以进行定位,定位精度高。
目前市场上应用于手机平台的室内LBs软件较
少,本文将基于Android平台创建一个应用于室内环境 的LBS系统平台,可以根据客户的位置提供相应的服
务,该系统可以应用于众多的室内场所,如超市、书
店、博物馆、火车站和商店等 l。
2基于Android的室内定位系统结构
2.1移动端平台的选择
Android平台是谷歌并购Android后在2007年1 1月
收稿日期:2014—03—03 责任编辑:左永君zuoyongjun@mbcom.cn
34 l 发布的一款新的手机操作平台。Android基于Linux内
核,采用了软件叠层的架构。最底层是Linux核心层,
以c语言进行开发,它作为软硬件之间的抽象层,隐藏
了硬件细节而为其上层提供了统一服务。在核心层之
上,是由函数库Libraries和运行 ̄t(untime构成的中间
层,用c++开发而成。其中P.untime中包括了Android
核心库和Dalvik虚拟机。核心库主要提 ̄Java编程语言 核心库中可能用的功能,Dalvik虚拟机的作用则是为
每一个Android应用程序提供一个运行环境。中间层
之上是Android的应用层,它包括了应用软件及框架设
计。通过这个开放的平台,开发者们可以通过框架API
尽情发挥自己的想象力,利用Iava语言编写出各种各样
的应用软件p】。 正是由于Android采用了上述软件分层结构,开
发者无需过多了解其他层次,而只需把应用层作为一
个有机整体对其进行理解并作进一步开发。与此同时
Android的下层体系又能对上层提供很多服务,非常有
利于标准化工作。同其他的手机平台相比,Android拥
有的Linux内核在网络性能方面更为出色,对硬件平台
的适应性更好。另外,Android手机提供的无线w卜Fi
以及GPS等功能,使用户可以非常方便地联网(本系 统的设计就是应用了Android平台自带的Wi—Fi无线网
络连接设备,在程序中可以非常方便地调用及停止此 功能 )。基于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信号强度,采集时可以根据区域大小决定采集数据
的密度 】,然后将信号强度数据上传到服务端,这样就
可以据此绘制出位置一信号强度分布图。
当客户端进入这些区域时,手机将会自动实时采
集这些AP信息点发出信号的强度,将这些数据传到服
务端,在服务端将客户端传来的每个AP点的信号强度
值与已经采集的信号值进行比对,通过一定的算法得
到最接近于实际信号强度值附近的目标区域,从而对
用户进行定位,并将定位结果返回给客户端。 定位流程如图1所示。
3室内定位系统的结构设计
本文的LBS室内定位系统可以分为三大部分:客
户端、服务端、数据库。客户端用于采集室内信号强
度信息、位置信息,被定位端实时上传数据,定位端
请求定位。服务端用于管理客户端的设备信息、位置 ;i“移动互联网”专题戮; ;
[ 用户 ] 采l定If 显 集 I 位I l 示
l 采集端l J定位端I l被定位端『 , J l f l f 委
室内定位管理平台
处 返 指 理 回 纹 数 结 匹 据 果 配 1 r , 1 —) l L—苎筑物信息,自动采集数据多模指! —一
图1 定位流程图
信息,查看状态信息,并完成定位算法。数据库用于 存储信号强度信息和室内位置信息。
系统结构如图2所示:
采集多模信号 (GPS/Wi—Fi/CDMA /GSM/GPS)
j I 信号过滤 =工
i I 信号过滤
、薹 公共位置服务API
环境识别l f坐标偏转
算法调度 二[ 定位算法 路网修正 — 一 逆编码
『位置,Wi-Fi/C1) ̄/GSMI
图2系统结构图 多模采集信号 Wi—Fi/cDIn/ GS艟/GPS
信号过滤
多模数据上传『
4室内定位系统的实现
如前所述,本系统主要分为客户端、服务端、数
据库三部分,其中客户端主要实现用户数据采集和定
位显示,服务端主要实现设备管理、位置管理等管理
功能,数据用于存储数据信息。系统的物理结构如图3
l350 5 2 14年第期l
嚣戮 移动互联网”专题;i
所示,软件结构图如图4所示。
图3物理结构图
厂一 定位表l I位置表I
厂 --__ 采集入库I ...... l I l---■ 采集终端卜_ _一 注册心跳I I位置管理I ._(
定位端L_ __一 {定位请求I -● 定位管理1l l l I 被定位端L _一 1指纹上报I 终端管理I4-=- !!!里 竺 竺 j I l I 终端 Tomcat ̄务器 Web呈现 通讯前 置模块
图4系统模块图
根据功能的不同将系统划分为以下几个模块:终
端设备管理模块,指纹数据管理模块,位置信息管理
模块,运行时管理模块,定位服务管理模块。
4.1终端设备管理模块
在使用系统时,终端设备第一次与平台建立连
接后,需要在平台上注册,并在平台端生成一个注册
码,对设备类型进行授权。当完成这些操作后,平台
向终端发送注册码以及设备参数。
4.2指纹数据管理模块
当终端采集设备连接到平台时,采集端可以通过
wi—Fi、宽带网络等通信方式,将采集到的指纹数据
直接上传至平台,省去人工上传的附加动作。如果采
集终端由于某些原因不能和平台建立连接,无法保证
数据实时的传送到平台中心,那就可以通过平台提供
的离线导入功能,将采集到的指纹数据上传至平台。
4-3位置信息管理模块
位置信息是对实体建筑物在平台上的模型进行
36 I 转换,平台将一个位置划分为建筑物信息、楼层信
息、楼层内部房间及公共空间等。通过对位置信息的
管理,可以将一个实体建筑物划分为可分开管理与维
护的位置单元,从而可以在各个细分位置单元进行如
数据采集与定位结果展示等操作。每个建筑物都有对
应的楼层平面图,为了在平台端更直接地细分位置单
元、建立更为详细的位置信息,平台支持在楼层平面
图上直接标注房间及公共空间等细粒度维度信息。
楼层平面图需为标准SVG格式,在建立楼层时可
同步上传对应的楼层平面图SVG文件。位置信息添加
是建立位置信息的基础,通过手工建立位置信息及位
置邻接关系,将现实实体模型转换为平台可识别的数
据模型。位置信息是进行数据采集及定位结果显示的
基础。由于用户可能不能及时上传楼层平面图SVG文
件,该模块可以直接通过手工输入的形式进行位置信
息的添加。
可以对已经添加的位置信息进行修改与删除操
作,同时可以添加新建筑物,选择对应的建筑物可以
添加新的楼层信息,选择建筑物楼层信息可以添加新
的房间及公共空间信息。
当进行删除操作时,如果选择删除建筑物信息,
那么该建筑物下的楼层、房间及公共空间信息也将随
之删除;如果选择删除楼层信息,则该楼层下的房间
及公共空间信息也随之删除。可单独删除房间及公共
空间信息。
终端采集设备在进行采集数据工作时,需要先下
载对应的位置信息;当终端采集设备首次下载位置信
息或者需要更新位置信息时,终端采集设备需要连接
到平台。
4.4运行时管理模块
运行时管理主要针对当前连接到平台且正在运
行的终端设备,包含采集端、定位端、被定位端等终
端设备,其功能包括手工删除在线设备、重置在线设
备、修改在线设备参数等。它是定位端查询可被定位
终端设备、向平台发起定位请求的基础模块。
为有效管理终端设备,每个终端设备在启动、运
行和关闭过程中,都会在指定时间范围内向平台发送
心跳包信息,以便平台动态掌握终端运行状态。平台