Android的室内LBS系统研发及实现

时间:2022-03-05 04:52:11

Android的室内LBS系统研发及实现

室内环境下采用的定位方法主要有两种:基于超声波的TDOA方法和基于RSSI的方法[1-4]。TDOA方法的传感器节点需要集成超声波收发装置,不但增大了节点尺寸、提高了成本和能耗,而且传播距离短、穿透性差。采用RSSI技术的定位方法,节点无需额外的硬件装置,功耗低、成本低。Google研制的Android是一个真正意义上的开放性移动设备综合平台,它包括操作系统、用户界面、中间件和应用程序,拥有移动电话工作所需的全部软件,同时其开放性保证该平台不存在任何阻碍移动产业创新的专有权障碍。目前市场上应用于手机平台的室内LBS软件相对较少,因此本文基于Android平台创建了一个应用于室内环境的LBS(基于位置的服务)系统平台。平台采用了RSSI定位的方法,并整合了时下最流行的微博功能,对其功能进行封装,使其他用户可以通过该平台进一步设计出符合各种不同要求的系统,具有良好的扩展性。文章最后给出的书店应用系统实例就是其中的一个系统应用,该系统模拟了书店内的环境布置,使用户在步入书店购买书籍的时候可以通过本地书店的用户评价以及在线用户的推荐,购买到自己满意的书籍,并可通过本地评论系统或者微博分享自己的购买体会。

1绪论

利用GPS提供的成熟的可靠的高精度的卫星定位,室外的LBS拥有着最为广泛的应用。不过目前我们所能使用到的室内LBS应用却远不如室外LBS应用那么广泛[5-7]。究其原因,主要有二。首先,因为GPS的卫星信号在室内会变得很弱,致使GPS定位无法发挥其作用,所以在室内需要使用别的定位方法。而目前的室内定位方法都还不及室外GPS定位。其次,虽然许多室内定位方法在定位精度上有了一定的提高[8-9],但是却没有一个应用平台来开发LBS,因而使得人们无法真正的感受到室内定位技术带来的生活上便利。

目前已有的手机室内LBS软件中,康会娜等人基于蓝牙定位提出的大型场馆诱导系统[10]可以应用于支持蓝牙的手机上。不过由于受蓝牙信号的传播距离限制,该系统在室内空间较大时需布设大量的蓝牙局域网接入点,造成耗费成本较高且周围环境对蓝牙信号的干扰较大等问题。岑丹丹在其学位论文中提到了在WindowsMobile平台上使用一种改善的基站定位方法来对手机用户定位[11],不过其也指出受基站信号强度的影响,该方法只能应用于离基站较近的场所,缺乏较好的普适性。目前尚未见到在Android平台上设计室内LBS系统的文献。因此,本文基于Android平台,结合Wi-Fi室内定位方法设计了一个LBS系统。

本文设计的系统可以根据客户的位置向其提供相应的商品列表以及相关的商品评论信息。其特色在于可应用于众多的室内场所,不论是超市、书店,还是博物馆、火车站,商家只需将与位置相关的商品环境数据导入系统中,便可使用到适合其自身特点的系统功能。例如,用户在购买商品时,可以利用它查看消费者对于该系列物品的评价和意见来选择适合自己的商品,还可以提交自己对商品的评价,为其他用户的购买提供自己的宝贵意见。利用此LBS,各种各样的服务提供商可以将他们的特色服务加入进来。使用户仅仅通过手机便能享受到LBS带来的便利,将LBS真正的融合到了我们的日常生活当中。

2基于Android的LBS系统结构

2.1手机系统平台

Android的选择对欲开发的LBS系统,我们首先考虑的是手机系统平台的选择。Android平台是谷歌并购了Android公司后于2007年11月5日正式公布的一款新的手机系统平台。Android基于Linux内核,采用了软件叠层的架构,其架构如图1所示。其最底层是Linux核心层,以C语言进行开发,它作为硬软件之间的抽象层,隐藏了具体硬件细节而为其上层提供了统一服务。在Linux核心层之上,是由函数库Libaries和运行时Runtime构成的中间层,以C++语言进行开发而成。Runtime中又包括了Android核心库和Dalvik虚拟机。核心库主要是提供了Java编程语言核心类库中可用的功能,图1Android结构Dalvik虚拟机的作用则是为每一个Android应用程序提供一个运行环境,使他们运行于各自的进程中。中间层之上是Android的应用层,它包括了应用软件及框架设计。通过这个开放的开发平台,开发者们可以通过利用框架API尽情发挥自己的想象力,使用Java语言编写出各种各样的应用软件,并且开发者可以该应用程序的功能,从而让其他的应用程序可以直接使用该功能,不过前提是在遵守Android制定的安全机制基础之上。由于Android采用上述软件分层结构,开发者在无需过多了解其他层次的基础上,可以将应用层作为一个有机整体对其进行理解并做进一步开发。同时Android的下层体系又能对上层提供很多服务。这样的分层结构将层次间的依赖性降到最低,非常有利于标准化的工作。同目前市场上的一些主流手机相比,Android拥有的Linux内核在网络性能方面能力超强,对硬件平台的适应面更为广阔。Android在软件提交方面是完全免费的,各种软件市场的开发者们可以自由提交自己的软件,只要用户喜欢就可以下载。在审核机制上,Google不会加以干涉,除非有很多用户进行举报。软件开发者和软件使用者都有着更多的自。此外,Android手机上提供无线Wi-Fi及GPRS等免费上网的功能,用户可以非常方便地连接到互联网。本系统的设计就用到了Android平台自带的Wi-Fi无线网络连接设备,在程序中可以非常方便地调用及关闭该功能。鉴于以上特点,Android平台是一个非常适合提供LBS应用服务的平台,在这个平台上LBS将有着非常光明的应用前景。因此,我们选择了Android平台来开发LBS系统。

2.2定位技术的选择

其次,我们考虑LBS系统中室内定位技术的选择。近些年来,室内无线定位技术发展迅速,一些新兴的无线网络技术,如:Wi-Fi、蓝牙、Zigbee以及超宽带技术等在办公室、工厂和家庭都得到了广泛的应用,各种技术都有其优缺点。有些技术定位精准,但是成本较高,有些则成本较低适合普及但是定位精度稍差。通过比较我们选择了Wi-Fi技术。与其他技术相比,Wi-Fi技术的优势在于:①无线电波的覆盖范围广,基本在整栋大楼中可以使用;②传输速度非常快,对于实时交互方面的应用非常有利;③成本低,便于大范围普及且适合于手机上的应用。而其缺点主要是无线通信质量不是很好,数据安全性能和蓝牙相比要差一些。不过当处于较为稳定的环境中时,其通信的可靠性还是足以信赖的。因此,考虑到Wi-Fi定位的信号覆盖范围以及它在手机上应用的方便性,本文在LBS系统设计中采取了Wi-Fi定位的方式。

目前,Wi-Fi室内定位方法主要分为以下几种:基于信号到达时间的定位方法(TOA)[12-13]、基于信号到达时间差的定位方法(TDOA)、基于信号到达角度的定位方法(AOA)[14-15]和基于信号强度的定位方法(RSSI)[16-17]。与TOA、TDOA和AOA等定位方法相比较,RSSI定位方法不需要增加额外的硬件设备来进行精确的角度测量或者时间同步,它可以直接利用到现有的无线网络设施进行定位,大大降低了成本,并且在稳定的室内无线网络环境下,RSS的定位方法的精确度还是令人比较满意的。因此本文采取了RSSI定位方法。RSSI定位方法的基本流程如下:首先在对象区域内布置多个AP,然后将区域看作是若干个子区域,分别对子区域内的各AP信号强度值进行采集。可以根据子区域的区域面积大小来决定采集的密度,通常不需要太大。采集到各子区域的信号强度分布数据后,可以得到一个地址与AP信号强度相对应的数据表,再结合区域地理环境绘制出该地区的信号强度分布图来,将其保存于服务器端。当客户端进入对象子区域后,将实时扫描得到的AP信号值发送给服务器,服务器将客户端传来的每个AP点的信号强度值与已采集的值进行比对,并通过聚类算法得到最接近于实际信号强度值附近的目标区域,从而定位到目标用户,进而将该区域内的相关数据发送至客户端。在用户使用应用软件的过程中,客户端每隔一段时间会对本地信号强度进行定时的搜索,并将其提交至服务器端,通过再次定位,服务器便能感知到客户端地址的变化情况,并且根据变化对向客户端传输的内容做出实时的调整。

2.3LBS系统的结构设计

本文的LBS系统可以分为以下部分,如图2所示:

(1)客户端:本系统以Android手机作为客户端。手机可以通过GPRS连接或者是Android手机自带的Wi-Fi无线连接设备连上网络,客户端启动后将自动访问指定的服务器网络IP地址,并发送一个连接请求到服务器,当服务器接受请求后便建立起一个连接。通过该连接,客户端定时将后台搜索到的Wi-Fi信号强度值发送给服务器,并接收服务器返回的位置数据。当用户操作客户端界面时,操作信息也通过网络连接与发送至服务器端与之通信。

(2)网络:网络是连接服务器与客户端的通道,通常将服务器假设在Internet上并指定其IP地址与一个端口号,当客户端连接到Internet上后,便通过访问服务器的IP地址及端口号来与服务器进行通信。

(3)服务器:服务器端架设在网络上,并指定一个网络IP与端口号供客户端进行连接。服务器端开启一个监听线程,当有客户端的连接请求进来时,服务器便会分配其一个连接端口号并建立一个线程与客户端进行交互。当收到客户端传来的Wi-Fi信号强度时,服务器首先将其与离线建立的信号强度分布图进行对比,通过最近邻算法估计出客户端的位置,然后调用后台地图数据库确定客户端所在区域。此后,当客户端传来界面操作指令,如请求获取物品详细列表时,服务器调用后台的属性数据库将数据返回给客户端。其间,后台一直监听客户端传来的信号强度值,以捕捉客户端位置的变化。

(4)数据库:本系统采用了MySql数据库,存放有地图数据以及物品数据。在启动服务器前,管理员将自己的地图数据以及物品信息导入到数据库中,之后服务器便可以自动调用该数据。用户导入数据后,也可以通过本系统带的数据库操作程序对数据进行更新、修改等操作,保持数据的实时性。

3LBS系统的设计

3.1系统功能

本系统平台旨在将室内定位技术引用到实际生活当中来,将其与室内购物相结合。该系统主要具备以下一些功能:①用户登录系统后,系统将对客户端进行区域定位,然后将用户当前所处区域的商品列表发送至用户的手机端显示出来;②当用户位置发生变化时,服务器会通过匹配客户端新发来的信号强度值,对客户端进行重定位,并将新的是商品列表发送至客户端;③用户通过点击物品列表中的相应物品栏目,可以进一步查看到其他消费者对于该商品实用度的评论及评分;④用户可以通过客户端提交自己对商品的使用心得,对其他消费者用户提供购买参考。

3.2定位模块设计

在程序运行之前,需要建立起信号强度分布图及区域划分图的地图数据库。首先在目标区域内布设AP,本系统的试验环境为矩形区域,经过测试,在矩形的各边中央布设AP可以达到最好的效果,满足AP数量不多且覆盖范围内的信号强度值较强。然后建立目标区域的坐标平面图,然后在该区域内进行信号强度值的采集,采集密度根据环境而定。为了减小噪声和异常值对定位结果的影响,在此环节中加入数据处理功能,以此来平滑接收到的信号强度。经过处理后的数据与坐标值相结合,从而得到对象区域的信号强度分布图。然后根据实际物品摆设将目标区域分为若干个小区域,并将各个区域分别命名,且记录该区域的坐标覆盖范围。然后将数据保存到数据库中,以供实时定位使用。实时定位阶段包括信号强度的采集、数据处理、判定区域等部分构成。当服务器运行时,利用之前建立的信号强度信息与地图数据库,和客户端传来的各个AP的实时信号强度值得出移动设备的位置。该工作分为以下3个步骤进行:(1)服务器收到客户端的实时信号强度信息,将其与离线建立的信号强度分布图进行比对,通过最近邻算法得到估计的客户端坐标位置;(2)导入包含坐标信息与区域信息名的地图数据库,得到客户端所在区域名;(3)将调用该区域对应的属性数据库,从而得到客户端所在位置的对象信息,之后可以将其发送至客户端供用户查看。客户端在后台定时扫描Wi-Fi信号强度信息(扫描间隔时间为10s一次),将其发送至服务器,使之得以判定客户端所在位置的变化。

3.3消息格式设计

考虑到本系统中客户端与服务器之间信息交互种类较多,包括Wi-Fi信号强度RSSI提交信息、物品列表请求信息、物品评价信息等,本系统采用了socket的流传输方式来通信。为了区别不同信息包,所有信息包的包头有一个字节的包类型标识符,如RSSI信号强度包以'w'开头,表示为Wi-Fi信号强度RSSI的信息。各个包类型都定义在PacketType类中。以RSSI信息包为例,当客户端点击连接服务器时,客户端会在将后台搜索到的指定AP点的信号强度发送至服务器端,客户端发送的信息中包含了RSSI信息,因为其中不止一个AP信号源的信号强度信息,所以不同的信号强度之间以分隔符隔开,在信息的末端以结束符结束。分隔符与结束符分别用整形的1和2表示。在其他的信息包中,信息内容之间也是以分隔符隔开,并在最后以结束符结尾。服务器与客户端、数据库之间的信息序列定义如图3所示。

3.4客户端模块设计

客户端的模块包括以下一些:后台Wi-Fi信号扫描模块,界面处理模块,信息压包、解包模块以及信息传输模块。其中Wi-Fi信号扫描模块为后台线程,客户端启动后便保持运行状态。如图4所示。3.5服务器端模块设计服务器端的功能模块包括socket监听模块,定位模块,服务信息处理模块,数据库管理模块,信息压包、解包模块以及信息传输模块。其流程图如图5所示。当客户端发送信号强度值到服务器,定位模块据此确定客户端的坐标并将其送给服务处理模块;服务处理模块根据用户坐标依据地图数据库确定用户位置,再根据服务类型属性数据库中的对应数据提供服务数据。

3.6数据库设计

系统中的数据库使用的是MySql数据库,存储了地图数据以及属性数据。地图数据包括信号强度分布图与区域划分图两项数据。信号强度分布图由数据项信号强度值与横坐标、纵坐标组成,区域划分图则由区域名、横坐标范围、纵坐标范围构成。属性数据则包括物品列表与评论列表,其中物品列表与区域划分图通过数据项区域名相关联,而评论列表与物品列表通过数据项物品名相关联。数据库管理模块则负责对这两个数据库的查询和维护。

4实验与结果分析

我们模拟书店环境开发了一个基于Android平台的LBS系统的应用实例。该应用系统的环境配置如下:客户端:只要用户的手持设备是Android平台的手机,安装客户端后即可以使用;服务器:运行在Windows平台下,可安装在书店前台的电脑上;数据库:MySql安装在Windows平台上,与服务器位于同一个PC上即可;AP信号源:可根据书店大小及需要,在书店的各个角落里安置2个以上的AP信号源。该应用系统的工作流程如下:用户进入系统后点击“连接服务器”,后台开始扫描Wi-Fi信号强度并将其发送至服务器端,服务器获取到信号强度以后与本地保存的信号强度信息进行匹配,得到一个地址信息发送至客户端。客户端收到以后再发送一个请求得到相关书籍列表,其后将服务器返回的列表信息显示在界面上。用户通过点击书籍列表界面上的书名,可以进一步查看用户对该书的评论情况,并且通过点击“我要评论”可以进一步提交自己的评论信息或是将物品信息通过“微博查询”直接发表到自己的微博,在线询问朋友的意见。其客户端界面如图6显示。图6书店系统应用实例通过实验证明,利用系统的定位功能,进入书店后用户可以快速的查阅当前所处区域的书籍,并且可以根据书店的本地评论以及微博两种方式来得到用户对书籍的评价。同时,也可以通过这两种渠道来给出自己的意见。同理,在画展、超市等其他地方,商家可以通过这种方式收集得到用户的评论意见,同时用户又能更好的享受到室内定位技术带来的便利。当商家配置好服务器后,由于Android平台对硬件配置的适应性及平台的开放性,客户端可以通过网络很方便的下载安装,便可享受到服务。

5结束语

本文基于Android平台,结合室内RSSI定位技术设计了一个开放式的LBS平台,该平台可以应用于多种室内场景,如商场、书店、画展等地,在此平台基础之上可以根据不同的用户需求,设计出各种用于不同环境的购物推荐或者物品评价系统。此方案实现成本低,应用范围广,并且可以给消费者带来很好的体验感,具有良好的普适应用前景。在今后的工作中,将进一步考虑加入用户兴趣模块,提高定位及各方面性能,使系统更加的面向大众。

上一篇:景观疗养保障现存问题及管理策略 下一篇:绿色室内设计创新趋势