视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
一种基于WiFi的室内定位系统设计与实现[图]
2025-09-23 21:09:44 责编:小OO
文档
一种基于WiFi的室内定位系统设计与实现[图]

1. 引言

位置信息在人们的日常生活中扮演着重要的作用。在郊外、展览馆、公园等陌生环境中,使用定位导航信息可为观众游览提供更便捷的服务;在仓储物流过程中,对物品进行实时定位跟踪将大大提高工作效率;在监狱环境中,及时准确地掌握相关人员的位置信息,有助于提高安全管理水平,简化监狱管理工作。

目前全球定位系统( GPS , GlobalPositioning System)是获取室外环境位置信息的最常用方式。近年来,随着无线移动通信技术的快速发展,GPS 和蜂窝网络相结合的A-GPS(Assisted Global Positioning System)定位方式在紧急救援和各种基于位置服务(LBS,Location-Based Services)中逐渐得到了应用。但由于卫星信号容易受到各种障碍物遮挡,GPS/APGS 等卫星定位技术并不适用于室内或高楼林立的场合,目前无线室内定位技术迅速发展,已成为GPS 的有力补充。

一般来讲,使用无线信号强度获取目标位置信息的过程,就是建立无线信号强度和位置信息稳定映射关系的过程。现有室内无线定位系统主要采用红外、超声波、蓝牙、WiFi(Wireless Fidelity)、RFID(Radio FrequencyIdentification)等短距离无线技术。其中基于WiFi 网络的无线定位技术由于部署广泛且低成本较低,因此备受关注。其中由微软开发的RADAR 系统是最早的基于WiFi 网络的定位系统。它采用射频指纹匹配方法,从指纹库中查找最接近的K 个邻居,取它们坐标的平均作为坐标估计。而文献[5]介绍的室内定位系统则基于RSSI 信号的统计特性,采用贝叶斯公式,通过计算目标位置的后验概率分布,来进行定位。

本文同样基于WiFi 网络,设计和实现了一种无线室内定位系统,但与上述定位方法不同,本文采用了基于权值选择的定位算法,在一定程度上减少了RSS.信号随机变化引起的定位误差,实验结果表明,该系统可获得较好的定位精度(4 米)。

2. 系统设计

本系统可为移动终端客户在展馆、商场、校园等应用场景提供定位服务。鉴于移动终端受到计算能力、存储容量和电池电量等诸多,所以仅完成简单的信号采集工作,定位计算由定位服务端完成。

定位系统的架构体系如图1 所示。服务端主要负责定位计算和响应终端的定位请求。基于负载均衡考虑,响应位置请求的Web 服务器和运行定位计算的定位服务器分离,数据交换方式采用客户端和Web 服务器相同的数据交换方式。客户端依附于具体对象,主要负责采集周边AP 的无线信号强度,并向服务端提交信号特征,服务器使用客户端采集的信号特征进行定位计算,获得移动终端的位置估计。

客户端和服务端通信采用标准的HTTP协议,编程方便,可扩展性好,客户端程序功能可根据需要进行扩充。

图1 定位系统网络结构

图2 为本定位系统的信息交互流程图。移动终端向Web 服务器提交GET 请求,GET 请求中包含了信号强度特征向量,Web 服务器收到请求后,以同样的方式传达给定位服务器,定位服务器查询数据库,并进行相关的定位运算操作,从而得到移动终端的位置估计。

图2 移动终端与服务器间的信息交互3. 系统实现

3.1. 客户端设计

本系统客户端采用Android 系统手机。

Android 系统是Google 在2007 年发布的基于Linux 平台的开源手机操作系统。近年来,基于此平台的手机市场占有率不断提高,加上其良好的开放性和丰富的API 接口,可以很方便地开发各种应用程序。

3.1.1. Android 系统架构简介

Android 系统架构见图3,它建立于Linux内核之上,包含了各种设备驱动和管理模块,囊括了非常齐全的类库和框架,包括轻量级数据库SQLite、浏览器Webkit 等。整个系统建立在Dalvik 虚拟机上,应用程序使用Java 语言编写。Android 系统提供了丰富的框架(活动管理、位置管理等)来管理系统的软、硬件资源,整合了常用的应用程序(联系人、电话本等),并开放了很全面的API 供用户使用,整个平台具有良好的开放性和扩展性。

图3 Android 系统架构图

3.1.2. Activity 生命周期

Android 系统上运行的应用程序一般包含一个或多个Activity,主要由活动管理器进行管理,Activity 是Android 系统分配和管理资源的基本单位。每个Activity 都有其对应的生命周期(图4)。

图4 Activity 生命周期

onCreate()方法在活动开始时调用,并依次调用onStart()方法和onResume()方法,Activity 处于运行状态,如有新活动启动,则调用onPause(),活动转入后台;如内存不足,活动进程则被关闭。退出程序则会依次调用onStop()和onDestroy()。

活动管理器对Activity 的管理体现在不同生命周期对以上几个方法的调用上,用户可根据自己的需要重载这几个方法。一般来讲,主程序类继承Activity 类,用户的功能代码在重载这些方法中实现。下载本文

显示全文
专题