




免费预览已结束
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一种基于一种基于 WiFi 的室内定位系统设计与实现的室内定位系统设计与实现 雷地球 罗海勇 刘晓明 中国科学院计算技术研究所 普适计算研究中心 北京 100190 摘要摘要 本文设计及实现了一个基于 WiFi 射频信号强度指纹匹配的移动终端定位系统 并设计实 现了一种基于权重值选择的定位算法 该算法为每个扫描到的 AP 的 RSSI 设定了选择区间 指 纹库中落在此区间的所有位置点设平均权值 最后选取权重值最大者为待定位点的位置估计 如 有相同权重值 则比较信号强度距离 取最小者 这种算法在一定程度上克服了 RSSI 信号随机 抖动对定位的影响 提高了定位的稳定性和精度 经实验测试 此系统在 4 米范围内具有良好的 定位效果 可部署在展馆 校园 公园等公共场所 为客户提供定位导航服务 定位算法运行于 服务端 客户端为配备 WiFi 模块的 Android 手机 借助该定位系统 基于 Android 系统的移动 终端可方便地查询自身位置 并获取各种基于位置服务 关键词关键词 接收信号强度 无线室内定位 射频指纹 Android 操作系统 Design and Implement an Indoor Location System based on WiFi Lei Diqiu Luo Haiyong Liu Xiaoming Pervasive Computing Research Center Institute of Computer Technology Chinese Academy of Sciences Beijing 100190 China Abstract This paper designs and implements an indoor location system based on WiFi for mobile user with Android handset A locating arithmetic based on Weight Select is introduced to filter the random noise of RSSI For each location in Radio Map a weight is set if the RSSI of the AP scanned is in the interval preset Then max weighted location or the min RSSI distance among them will be selected as the estimated position According to experiments 4 metre locating precision is available It can be used for locating and navigating in such scene as exhibition center campus park and so on Users equipped with Android handset could get its location and some intelligent services It is also an open and extensible system Some locating arithmetic also could be tested on this system Key words Received Signal Strength Wireless Indoor Locating Radio Map Android Operating System 1 引言引言 位置信息在人们的日常生活中扮演着重 要的作用 在郊外 展览馆 公园等陌生环境 中 使用定位导航信息可为观众游览提供更便 捷的服务 在仓储物流过程中 对物品进行实 时定位跟踪将大大提高工作效率 在监狱环境 中 及时准确地掌握相关人员的位置信息 有 助于提高安全管理水平 简化监狱管理工作 目 前 全 球 定 位 系 统 GPS Global Positioning System 是获取室外环境位置信息 基金资助 国家自然基金 60873244 60973310 60772070 北 京自然基金 4102059 联系作者 雷地球 E mail leidiqiu 的最常用方式 近年来 随着无线移动通信技 术的快速发展 GPS 和蜂窝网络相结合的 A GPS Assisted Global Positioning System 定 位方式 1 在紧急救援和各种基于位置服务 LBS Location Based Services 中逐渐得到 了应用 但由于卫星信号容易受到各种障碍物 遮挡 GPS APGS 等卫星定位技术并不适用于 室内或高楼林立的场合 目前无线室内定位技 术迅速发展 已成为 GPS 的有力补充 一般来讲 使用无线信号强度获取目标位 置信息的过程 就是建立无线信号强度和位置 信息稳定映射关系的过程 现有室内无线定位 系统主要采用红外 超声波 2 蓝牙 WiFi Wireless Fidelity RFID Radio Frequency Identification 等短距离无线技术 其中基于 WiFi 网络的无线定位技术由于部署广泛且低 成本较低 因此备受关注 3 4 其中由微软开 发的 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 系统手机 6 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 类 用户的功能代码在重 载这些方法中实现 3 1 3 获取周边获取周边 AP 信号强度信号强度 本文采用基于射频指纹的定位方法 移 动终端需要获得周围 AP 的 RSSI 指纹特征 Android 系统提供的接口可以很方便地实现 这一功能 参见图 5 示例代码片段 首先建立包含 响 应 扫 描 结 果 的 接 收 器 reciever 并 重 载 onReceive 方法 此方法即为收到 WiFi 信 号的回调函数 用户自定义功能在此实现 再通过 registerReceiver 方法将 receiver 向 Android 系统进行注册 getSystemService 方法用于获得操作 WiFi 设备的句柄 最后 用 startScan 方法启动扫描 当获得扫描结 果后 系统会触发注册的回调函数 完成用 户代码功能 图 5 扫描示例代码 实验结果表明 从给出扫描指令 至接收 到扫描结果 耗时约 400 500ms 考虑到后台 服务器算法运算及网络通信开销 定位过程耗 时将超过 500ms 3 1 4 程序流程程序流程 从程序的功能来看 客户端需完成 3 个功 能 定期扫描并获得周围 AP 的信号强度指纹 特征 向服务器提交指纹特征信息 得到定位 结果后更新界面显示 程序流程如图 6 所示 首先程序初始化并建立更新回调函数 获 private WifiManager wifi private BroadcastReceiver receiver receiver new BroadcastReceiver public void onReceive Context context Intent intent List results wifi getScanResults 注册回调函数 registerReceiver receiver new IntentFilter WifiManager SCAN RESULTS AVAILABLE ACTION wifi WifiManager getSystemService Context WIFI SERVICE 启动扫描 wifi startScan 得 WiFi 服务句柄后注册此回调函数 最后启 动扫描进程周期扫描 直至系统结束程序 其中 回调函数首先获取扫描结果 并格 式化为字符串 然后通过 GET 请求提交给服 务端 获得定位结果后再更新显示界面 图 6 程序流程图 3 2 服务端软件设计 服务端软件设计 3 2 1 Web 服务器服务器 Web 服务器用于对外通信 接收外界的请 求 并返回相应的位置信息 Web 服务器运行 Apache Tomcat 6 0 20 响应网络的定位请求 相应的软件设置参数 为 在 TOMCAT HOME webapps 目录下建 立目录 ExServlet WEB INF 建立 web xml 描述文件和 classes 文件夹 web xml 文件是描 述文件 classes 存放后台处理的类文件 web xml 中定义了外部引用此服务的名字 和对应的类文件 内容片段见图 7 图 7 web 服务器 web xml 代码片段 3 2 2 定位服务器定位服务器 定位服务器用于运行算法 硬件配置参数 为 CPU Intel Core2 Duo E7500 2 93GHz 内 存 2G 网卡 Marvell Yukon 88E8057 PCI E Gigabit Ethernet Controller 软件配置参数为 操作系统 Windows XP Professional SP3 Web 服务器 Apache Tomcat 6 0 20 相应的软件配 置参数与 web 服务器类似 web xml 中代码片 段见图 8 图 8 定位服务器 web xml 代码片段 3 3 客户端与服务端通信 客户端与服务端通信 客户端与服务端都接入 Internet 通过标 准的 HTTP 协议通信 简化设计的同时 也为 以后 Web 方式的应用留下了设计空间 服务端 Servlet 用于响应客户端的请求 客户端只需在 GET 请求中提交指纹信息即可 获得定位结果 图 9 列出了客户端从定位服务 器中获取位置信息的 Java 示例代码 其中 url 包含了服务器的 IP 地址和 RSSI 指纹信息 getConnection 方法是向服务器发出 GET 请 求 服务器将返回位置信息 获得输入流后读 出位置信息 并更新界面显示即完成整个通信 过程 由于使用 HTTP 协议 实现方法简单 适用于多种编程语言 图 9 客户端获取位置信息的通信示例代码 4 定位算法定位算法 由于室内环境复杂 WiFi 无线信号 7 具有 较强的时变特性图 10 无线信号传播衰减模型 8 难以很好的表征距离与信号强度间的映射 关系 本文采用基于射频指纹匹配定位方法 它具有较好的定位鲁棒性 try 建立 url 的连接 URL url new URL http HttpURLConnection con HttpURLConnection url openConnection 如果回应 OK 则刷新 否 则不刷新 if con getResponseCode HttpURLConnection HTTP OK 获得输入流 InputStream is con getInputStream 字节数据用于接收 byte b new byte is available 读入到字节数组 is read b 转换成字符串 String serverResult new String b 关闭流 is close 刷新或进一步处理 handler post update catch Exception e e printStackTrace ArithmaticServlets ArithmaticServlets com ldq arithmatic ArithmaticServlets ArithmaticServlets ArithmaticServlets ServletRemoteLocate ServletRemoteLocate com ldq ServletRemoteLocate ServletRemoteLocate ServletRemoteLocate 图 10 信号强度的时变特性 指纹匹配方式定位算法 9 建立在实验数 据基础上 它主要包括离线训练和在线定位两 个阶段 其中离线训练阶段的任务是建立射频 信号强度向量和客户端位置间的一一对应关 系 形成一个指纹库 radio map 10 定位阶段 则使用实时采集的信号强度向量去匹配训练 阶段构建的指纹库 从而获得目标的位置估 计 现有的基于射频指纹匹配定位方法主要 包括确定型和概率型两种 其中确定型定位算 法一般在指纹库中选择与实时采集的射频指 纹距离最小的几个点的质心作为目标的位置 估计 确定型定位算法的计算效率较高 但精 度较低 概率型定位算法一般采用贝叶斯估计 理论 通过不同的似然函数 如基于核函数的 似然函数 11 计算目标位置的后验概率 并取 后验概率最大的位置点作为目标的最终位置 估计 概率型定位算法具有较高的定位精度和 定位鲁棒性 但计算量相对较大 本文采用快速选择的定位算法 训练阶段 指纹特征采用 RSSI 均值 定位阶段采用逐次 累加的 RSSI 均值与指纹库匹配的方法 从而 大大降低了运算的复杂度 4 1 算法描述算法描述 指纹特征采用每个 AP 的 RSSI 均值 即 K 2APAP1 L SSF 也就是 训练阶段对同一位置点采集的每 个 AP 的多次数据取平均 定位阶段也是如此 区别在于训练阶段采集数据多 以便得到尽量 多的信息 定位阶段采集的数据少 减少定位 延时 一定程度上提高了实时性 指纹匹配采用快速选择的方式 伪码如 下 1 Initialization For Each Li Set Ei 0 2 For Each AP 3 Select Li IF RSSIAP RSSI RSSI 4 n Count Li 5 IF Li Selected 6 Ei 1 n 7 Else 8 Ei 0 9 End IF 10 End For 11 Return Li Where max Ei 对每个扫描到的 AP 的 RSSI 值 设定一 个选择区间 RSSI RSSI 为多次实 验的经验值 在指纹库中查找满足此区间范围 的位置点 若有 n 个位置点落在此区间范围 则这些位置点分别取权值为 1 n 其他的位置 点则取权值为 0 对所有 AP 做如上处理后 选出权值最大的位置点为估计位置 如有多个 位置点权值一样 则比较信号强度距离 取最 小者 4 2 算法分析算法分析 本文的算法是建立在 RSSI 统计特性相对 稳定的基础上 从图 11 中可以看出 RSSI 值 的直方图分布与正态分布曲线近似 因此均值 在一定程度上代表了 RSSI 特征 这也避免了 单次扫描的信号强度中某个 AP 的 RSSI 不稳 定造成的定位结果偏差 图 11 RSSI 的统计特性 时间复杂度分析 一次扫描有 m 个 AP 前期训练阶段有 n 个位置点 则要进行 m 次 选择 每次选择遍历 n 个位置点 时间复杂度 为 O m n 遇到权值一致的情况 要进行二 次选择 最坏情况再比较 n 次 时间复杂度为 O n 所以总的时间复杂度为 O m n 5 实验实验 5 1 实验过程实验过程 实验在计算所 6 层进行 见图 12 在南北 两侧走廊总共采集了 24 个位置点 距离约 4 米 加上在 645 房间 总共 25 个位置点的数 据 扫描周期 1s 扫描次数 120 次 采集数据 耗时约 1 小时 图 12 实验环境 本实验主要为验证定位准确性 所以定位 时采用多次扫描的均值作为信号特征 共选取 了 6 个位置点作为实验的位置点 测试次数约 为 50 次 扫描周期为 2s 运行界面见图 13 图 13 手机终端显示 5 2 实验结果实验结果 各实验位置点的结果见图 14 各个随机测 试位置点的定位准确率都较高 各位置点的准确率 100 100 100 96 90 0 20 40 60 80 100 603636645648654 位置点 准确率 图 14 各实验位置点定位结果 6 总结总结 本文基于 Android 智能手机平台 设计并 实现了一种基于 WiFi 信号的移动终端定位系 统 并提出了一种基于权值选择的定位算法 一定程度上克服 RSSI 信号随机扰动带来的定 位误差 经过实际环境的测试 多次定位实验 的精度在 4 米左右 适当调整 AP 的布置可以 进一步定位精度 本系统可方便地部署到展 馆 校园等实际场景中 参考文献参考文献 1 Veljo Otsason Accurate Indoor Localization Using Wide GSM Fingerprinting Master s Thesis Institute of Computer Science University of Tartu 2005 2 韩霜 罗海勇 陈颖 丁玉珍 基于 TDOA 的超声波室内定 位系统的设计与实现 传感技术学报 23 3 347 353 2010 3 Paramvir Bahl and Venkata N Padmanabhan RADAR An In Building RF based User Location and Tracking System IEEE infocom 774 7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 村集体资金入股合同范本
- 鱼船买卖合同协议书模板
- 船员的正规劳务合同范本
- 芯模板行业期货合同范本
- 游艇修理合同协议书模板
- 照明灯安装合同补充协议
- 高速便道租用协议书范本
- 肇庆正规劳务派遣协议书
- 高价回购铝合金合同范本
- 理发店长期消费合同范本
- 《大模型原理与技术》全套教学课件
- 《出口退税培训》课件
- 雾化吸入疗法课件
- 高考补习班招生策划书策划方案
- 康明斯产品合格证
- 矿山废水处理行业调研及投资前景分析报告
- DB13 5808-2023 餐饮业大气污染物排放标准
- 【五升六暑期阅读】专题10.环境描写及其作用-2024年五升六暑期阅读专项提升(统编版)5
- 【电商直播对消费者购买行为影响:以抖音直播为例开题报告1800字】
- AQ 2003-2018 轧钢安全规程(正式版)
- (高清版)WST 348-2024 尿液标本的采集与处理
评论
0/150
提交评论