您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 基于wifi的控制装置设计
基于wifi控制装置设计姓名:系别:摘要:本文设计及实现了一个基于WiFi射频信号强度指纹匹配的移动终端定位系统,并设计实现了一种基于权重值选择的定位算法。该算法为每个扫描到的AP的RSSI设定了选择区间,指纹库中落在此区间的所有位置点设平均权值,最后选取权重值最大者为待定位点的位置估计,如有相同权重值,则比较信号强度距离,取最小者,这种算法在一定程度上克服了RSSI信号随机抖动对定位的影响,提高了定位的稳定性和精度。经实验测试,此系统在4米范围内具有良好的定位效果。可部署在展馆、校园、公园等公共场所,为客户提供定位导航服务。定位算法运行于服务端,客户端为配备WiFi模块的Android手机。借助该定位系统,基于Android系统的移动终端可方便地查询自身位置,并获取各种基于位置服务。关键词:接收信号强度;无线室内定位;射频指纹;Android操作系统DesignandImplementanIndoorLocationSystembasedonWiFi此处为英文姓名以及英文系别Abstract:ThispaperdesignsandimplementsanindoorlocationsystembasedonWiFiformobileuserwithAndroidhandset.AlocatingarithmeticbasedonWeight-SelectisintroducedtofiltertherandomnoiseofRSSI.ForeachlocationinRadioMap,aweightissetiftheRSSIoftheAPscannedisintheintervalpreset.Thenmax-weightedlocationorthemin-RSSI-distanceamongthemwillbeselectedastheestimatedposition.Accordingtoexperiments,4-metrelocatingprecisionisavailable.Itcanbeusedforlocatingandnavigatinginsuchsceneasexhibitioncenter,campus,park,andsoon.UsersequippedwithAndroidhandsetcouldgetitslocationandsomeintelligentservices.Itisalsoanopenandextensiblesystem.Somelocatingarithmeticalsocouldbetestedonthissystem.Keywords:ReceivedSignalStrength,WirelessIndoorLocating,RadioMap,AndroidOperatingSystem.1.引言位置信息在人们的日常生活中扮演着重要的作用。在郊外、展览馆、公园等陌生环境中,使用定位导航信息可为观众游览提供更便捷的服务;在仓储物流过程中,对物品进行实时定位跟踪将大大提高工作效率;在监狱环境中,及时准确地掌握相关人员的位置信息,有助于提高安全管理水平,简化监狱管理工作。目前全球定位系统是获取室外环境位置信息在紧急救援和各种基于位置服务中逐渐得到了应用。但由于卫星信号容易受到各种障碍物遮挡,GPS/APGS等卫星定位技术并不适用于室内或高楼林立的场合,目前无线室内定位技术迅速发展,已成为GPS的有力补充。一般来讲,使用无线信号强度获取目标位置信息的过程,就是建立无线信号强度和位置信息稳定映射关系的过程。现有室内无线定位系统主要采用红外、超声波[2]、蓝牙、WiFi、RFID等短距离无线技术。其中基于WiFi网络的无线定位技术由于部署广泛且低成本较低,因此备受关注[3,4]。其中由微软开发的RADAR系统是最早的基于WiFi网络的定位系统。它采用射频指纹匹配方法,从指纹库中查找最接近的K个邻居,取它们坐标的平均作为坐标估计。而文献[5]介绍的室内定位系统则基于RSSI信号的统计特性,采用贝叶斯公式,通过计算目标位置的后验概率分布,来进行定位。本文同样基于WiFi网络,设计和实现了一种无线室内定位系统,但与上述定位方法不同,本文采用了基于权值选择的定位算法,在一定程度上减少了RSS.信号随机变化引起的定位误差,实验结果表明,该系统可获得较好的定位精度(4米)。2.系统设计本系统可为移动终端客户在展馆、商场、校园等应用场景提供定位服务。鉴于移动终端受到计算能力、存储容量和电池电量等诸多限制,所以仅完成简单的信号采集工作,定位计算由定位服务端完成。定位系统的架构体系如所示。服务端主要负责定位计算和响应终端的定位请求。基于负载均衡考虑,响应位置请求的Web服务器和运行定位计算的定位服务器分离,数据交换方式采用客户端和Web服务器相同的数据交换方式。客户端依附于具体对象,主要负责采集周边AP的无线信号强度,并向服务端提交信号特征,服务器使用客户端采集的信号特征进行定位计算,获得移动终端的位置估计。客户端和服务端通信采用标准的HTTP协议,编程方便,可扩展性好,客户端程序功能可根据需要进行扩充。本定位系统的信息交互流程图。移动终端向Web服务器提交GET请求,GET请求中包含了信号强度特征向量,Web服务器收到请求后,以同样的方式传达给定位服务器,定位服务器查询数据库,并进行相关的定位运算操作,从而得到移动终端的位置估计。3.系统实现3.1.客户端设计本系统客户端采用Android系统手机[6]。Android系统是Google在2007年发布的基于Linux平台的开源手机操作系统。近年来,基于此平台的手机市场占有率不断提高,加上其良好的开放性和丰富的API接口,可以很方便地开发各种应用程序。3.1.1.Android系统架构简介Android系统架构见,它建立于Linux内核之上,包含了各种设备驱动和管理模块,囊括了非常齐全的类库和框架,包括轻量级数据库SQLite、浏览器Webkit等。整个系统建立在Dalvik虚拟机上,应用程序使用Java语言编写。Android系统提供了丰富的框架(活动管理、位置管理等)来管理系统的软、硬件资源,整合了常用的应用程序(联系人、电话本等),并开放了很全面的API供用户使用,整个平台具有良好的开放性和扩展性。3.1.2.Activity生命周期Android系统上运行的应用程序一般包含一个或多个Activity,主要由活动管理器进行管理,Activity是Android系统分配和管理资源的基本单位。每个Activity都有其对应的生命周期onCreate()方法在活动开始时调用,并依次调用onStart方法和onResume方法,Activity处于运行状态,如有新活动启动,则调用onPause,活动转入后台;如内存不足,活动进程则被关闭。退出程序则会依次调用onStop和onDestroy。活动管理器对Activity的管理体现在不同生命周期对以上几个方法的调用上,用户可根据自己的需要重载这几个方法。一般来讲,主程序类继承Activity类,用户的功能代码在重载这些方法中实现。3.1.3.获取周边AP信号强度本文采用基于射频指纹的定位方法,移动终端需要获得周围AP的RSSI指纹特征,Android系统提供的接口可以很方便地实现这一功能。参见示例代码片段。首先建立包含响应扫描结果的接收器recieve并重载onReceive()方法,此方法即为收到WiFi信号的回调函数,用户自定义功能在此实现;再通过registerReceiver方法将receiver向Android系统进行注册,getSystemService方法用于获得操作WiFi设备的句柄;最后用startScan方法启动扫描,当获得扫描结果后,系统会触发注册的回调函数,完成用户代码功能。实验结果表明,从给出扫描指令,至接收到扫描结果,耗时约400-500ms,考虑到后台服务器算法运算及网络通信开销,定位过程耗时将超过500ms。3.1.4.程序流程从程序的功能来看,客户端需完成3个功能:定期扫描并获得周围AP的信号强度指纹特征,向服务器提交指纹特征信息,得到定位结果后更新界面显示。程序流程如所示。首先程序初始化并建立更新回调函数,获得WiFi服务句柄后注册此回调函数,最后启动扫描进程周期扫描,直至系统结束程序。其中,回调函数首先获取扫描结果,并格式化为字符串,然后通过GET请求提交给服务端,获得定位结果后再更新显示界面。3.2.服务端软件设计3.2.1.Web服务器Web服务器用于对外通信,接收外界的请求,并返回相应的位置信息。Web服务器运行ApacheTomcat6.0.20,响应网络的定位请求,相应的软件设置参数为:在%TOMCAT_HOME%\webapps目录下建立目录:ExServletWEB-INF,建立web.xml描述文件和classes文件夹,web.xml文件是描述文件,classes存放后台处理的类文件。web.xml中定义了外部引用此服务的名字和对应的类文件,内容片段见。3.2.2.定位服务器定位服务器用于运行算法,硬件配置参数为,CPU:IntelCore2DuoE75002.93GHz,内存:2G,网卡:MarvellYukon88E8057PCI-EGigabitEthernetController。软件配置参数为,操作系统:WindowsXPProfessionalSP3,Web服务器:ApacheTomcat6.0.20。相应的软件配置参数与web服务器类似,web.xml中代码片3.3.客户端与服务端通信客户端与服务端都接入Internet,通过标准的HTTP协议通信,简化设计的同时,也为以后Web方式的应用留下了设计空间。服务端Servlet用于响应客户端的请求,客户端只需在GET请求中提交指纹信息即可获得定位结果。列出了客户端从定位服务器中获取位置信息的Java示例代码。其中url包含了服务器的IP地址和RSSI指纹信息,getConnection()方法是向服务器发出GET请求,服务器将返回位置信息,获得输入流后读出位置信息,并更新界面显示即完成整个通信过程。由于使用HTTP协议,实现方法简单,适用于多种编程语言。4.定位算法由于室内环境复杂,WiFi无线信号[7]具有较强的时变特性0。无线信号传播衰减模型[8]难以很好的表征距离与信号强度间的映射关系,本文采用基于射频指纹匹配定位方法,它具有较好的定位鲁棒性。本文采用快速选择的定位算法,训练阶段指纹特征采用RSSI均值,定位阶段采用逐次累加的RSSI均值与指纹库匹配的方法,从而大大降低了运算的复杂度。4.1.算法描述指纹特征采用每个AP的RSSI均值,即L(AP1,AP2,K)F=SS也就是,训练阶段对同一位置点采集的每个AP的多次数据取平均,定位阶段也是如此,区别在于训练阶段采集数据多,以便得到尽量多的信息,定位阶段采集的数据少,减少定位延时,一定程度上提高了实时性。指纹匹配采用快速选择的方式。伪码如下:对每个扫描到的AP的RSSI值,设定一个选择区间[RSSI-σ,RSSI+σ],σ为多次实验的经验值,在指纹库中查找满足此区间范围的位置点,若有n个位置点落在此区间范围,则这些位置点分别取权值为1/n,其他的位置点则取权值为0;对所有AP做如上处理后,选出权值最大的位置点为估计位置。如有多个位置点权值一样,则比较信号强度距离,取最小者。4.2.算法分析本文的算法是建立在RSSI统计特性相对稳定的基础上,从1中可以看出,RSSI值的直方图分布与正态分布曲线近似,因此均值在一定程度上代表了RSSI特征。这也避免了单次扫描的信号强度中某个AP的RSSI不稳定造成的定位结果偏差。时间复杂度分析:一次扫描有m个AP,前期训练阶段有n个位置点,则要进行m次选择,每次选择遍历n个位置点,时间复杂度为O(m*n),遇到权值一致的情况,要进行二次选择,最坏情况再比较n次,时间复杂度为O(n
本文标题:基于wifi的控制装置设计
链接地址:https://www.777doc.com/doc-2535364 .html