您好, 访客   登录/注册

基于Android平台酒店人员定位系统的设计与实现

来源:用户上传      作者:

  摘要:GPS技术日渐成熟,用户可以获得满意的室外定位精度。但是,大型建筑物日益增多,室内定位显得越发重要。人员定位系统是室内定位系统的重要组成部分。本文针对酒店服务的需求,结合客房走廊的物理结构和实际环境,利用Android开发平台的开放性和WiFi定位技术,设计了一个可实际应用的酒店人员定位系统。最后,通过实验结果表明,所设计的Android终端定位模块精度较高,能够满足一般酒店的要求。
  关键词:Android平台;无线WiFi;定位
  中图分类号:TP393 文献标识码:A DOI: 10.3969/j.issn.1003-6970.2015.10.018
  引言
  近年来,在社会资源管理、日常生活等领域,具有空间位置特性的地理信息越来越受到人们的关注。用户通过安装在移动终端的客户端软件和网络无缝结合,确定用户的地理位置,近而提供信息推送服务。目前,GPS定位是应用最广泛的定位技术。但GPS定位主要应用于室外环境下,在建筑物内部,GPS信号容易受到建筑物的影响而导致信号强度急剧衰减,定位精度极差甚至无法定位。因此,GPS不适用于室内定位技术。Android是一种基于Linux的开发系统,由于其开放源码,发展十分迅速。到目前为止,Android已经成为应用最广泛的移动互联网平台。
  本文根据酒店客房走廊狭长,两侧房间较多的结构特点,在原有酒店的网络基础上,设计了一种基于Android系统的实时人员定位系统。本系统利用酒店的无线局域网络和接入点(Access Point,AP)信息实现人员定位,并且进行实时信息推送。
  1 系统网络结构
  图1为酒店网络结构图。酒店的无线AP一般分为两种:吸顶式无线AP和入墙式无线AP。在大厅、餐厅、咖啡厅、公共休息室和大中小会议室、客房走廊等场所,使用吸顶式无线AP,实现覆盖;在办公室和客房,使用人墙式AP,这种AP布置在2个客房的中间墙上,实现2个客房的无线覆盖。移动终端通过AP接入到酒店网络,扫描和收集周围的环境信号并选出参考节点,根据参考节点的坐标、信号强度等信息计算得到移动终端的位置,并显示在地图上。
  由于墙壁对信号的遮挡作用,移动终端接收到无线信号情况大致分为三种:人员仅在客房内部活动的时候,可能只接收到一个客房内AP的信号,也可能接收到客房走廊上的吸入式AP的信号;人员在客房走廊、大厅、餐厅等位置走动的时候,也可能搜到三个以上的AP信号。
  2 人员定位算法
  加权质心定位算法的基本思想就是采用权值来体现各个参考节点对移动终端坐标决定权的大小。移动终端收到的接收信号强度(Received SignalStrength Indication,RSSI)越大,说明与参考节点之间距离越近,权值也就越大。本文综合多种室内定位算法,设计了一种用于酒店的Android移动终端的定位算法。
  移动终端如果想要依赖AP定位,必然需要收到至少一个AP信号。考虑到人员的移动速度,移动终端可以周期性的扫描周围RSSI信息。如果移动终端实时扫描RSSI信息,不仅没有必要,反而会浪费大量的电能。
  移动节点根据参考节点与其通信时的信号强度,选取信号强度最大的参考节点进行距离估算,详细的定位流程如下:
  (1)当打开酒店软件后,移动终端对周围网络信号进行过滤,筛选出酒店的AP信号,也就是服务集标识(Service Set Identifier,SSID)相同、基本服务集(Basic Service Set,BSSID)不同的一组信号,并得到它们的RSSI值;
  (2)如果移动终端如果收到RSSI值只有一个,将该节点的位置信息显示在移动终端的地图上,并将位置信息返回给前台,定位结束。否则,执行步骤(3);
  (3)如果移动终端如果收到RSSI值只有两个,就将这两个AP都作为参考节点,执行步骤(5)。否则,执行步骤(4);
  (4)如果移动终端收到RSSI值不少于三个,将收集的RSSI信息进行降序排列,选出其中最大的三个作为优先参考节点;
  (5)移动终端向RSSI值最大的参考节点发送路径衰落指数n的清求信息,信息中包含其他参考节点的网络地址。同时设定一个计时器,设置时间为T;
  (6)参考节点收到路径衰落指数请求信息后,向其他参考节点发送M次RSSI请求广播,得到回复后,计算出路径衰落指数n,并把n值回复给移动终端;
  (7)移动终端收到参考节点发送的n值后,按照加权质心定位算法计算出自己的坐标。如果汁时时间T到,移动终端还没收到n值,则用上一次得到的n值计算坐标;
  (8)移动终端得到坐标后,将自己的位置信息显示在移动终端的屏幕地图上,并将位置信息发送给地面救援中心。
  3 Android终端的实现
  为了提高整个系统的有效性和利用率,减少整个网络中数据量,我们采用层次化的结构来实现Android移动终端的程序设计。从下往上,各个层次完成的功能为:
  (1)物理层和数据链路层:打开WIFI物理接口,周期性搜索周围WIFI信号,得到周围WIFI信号的信息。同时发送路径衰落请求信息;
  (2)网络层:接入酒店WiFi网络,从酒店服务器中得到AP节点的位置信息,并把移动终端位置信息发送给酒店前台;
  (3)应用层:图形界面的设计和处理底层的信息,将计算后的节点位置显示到终端的界面上。
  Android终端程序将逻辑处理部分和地图显示部分分开,逻辑处理部分仅仅依靠Android SDK中包含的API完成,地图显示部分采用Esri公司ArcGIS for Android的API完成。整个程序设计采用Java语言编写,在Eclipse开发平台上完成。   4 Android终端测试
  为了检验所设计的Android终端的定位性能,酒店客房进行了实验。图2为实验平面拓扑结构,实验室外走廊用来模拟客房外走廊;走廊两侧的房间用来模拟酒店客房。实验采用了三个同构的AP节点,分别取名为MeshPointl、MeshPoint2、MeshPoint3,其中,MeshPointl部署在实验室内,MeshPoint2部署在与MeshPointl相距5米的实验室和走廊的交岔口,MeshPoint3部署与MeshPoint2距离为8米的实验室外走廊上。测试Android手机终端的型号是HUAWEI Y320-TOO。手机终端程序使用的权值为1.8。
  实验开始后,测试人员分别拿着Android手机站在不同的地点处接收节点信号,通过控制三个AP节点开断电来模拟Android终端分别收到1个、2个或3个节点信号的情况。
  图3为Android手机端的原始地图包。地图标注了节点的位置和BSSID信息。
  图4的3张图为Android程序不同环境下进行多次测试后手机地图显示的人员位置信息,地图中蓝色圆形表示的是程序计算出来的人员位置。为了便于对比观察,我们也把人员真实位置在图中用白色的五角星标注出来。此外,定位所花时间小于0.5s。
  图4 (a)模拟的是Android终端可以接收到三个或者三个以上AP信号的情况。此时,3个AP均打开;
  图4(b)模拟的是Android终端可以接收到两个AP信号的情况。此时,仅仅打开了Meshpoint2和MeshPoint3节点;
  图4(c)模拟的是Android终端仅接收1个AP信号的情况。此时,只有Meshpoint2节点开启。
  通过三张图的对比效果显示,当Android终端可以搜到三个以上信号的时候,误差在0.5m以内;收到两个信号时候定位精度稍微差一些,误差在0.5m到Im之间;当Android终端仅仅收到一个信号的时候,定位的位置只是搜到的AP节点的位置,定位精度最低。总体来说,当Android终端可以接收到两个以上AP节点信号的时候,定位的精度都可以满足酒店定位的要求。
  此外,在测试中,我们还发现,使用不同的Android终端设备在同一地点收到的AP信号强度也各不相同,程序在地图上显示的位置也不相同,但是,均不会偏离实际位置很远。
  5 结束语
  本文分析了酒店的结构,在Android平台上,提出了一种可实际应用的室内RSSI定位方法,并基于WiFi网络充分利用Android平台的开放性,提出了一种可实际应用的酒店人员定位系统。通过对Android终端定位模块的测试,可以看出所提出的方案的定位精确度可以满足人员定位的要求。
转载注明来源:https://www.xzbu.com/8/view-11480761.htm