定位实验题目: 基于 WIFI 位置指纹的室内定位实验成员:2012 年 12 月一、实验题目实验题目基于 Wifi 位置指纹的室内定位实验实验要求学台使用、android 编程、android 环境下 wifi 设备查看操作。实验内容利用最少数目的 wifi 热点设备,能够实时地对手机进行定位。2、实验目的目前全球定位系统(GPS ,Global Positioning System )是获取室外环境位置信息通过实施项目的最常用方式。但由于卫星信号容易受到各种障碍物遮挡,GPS/APGS 等卫星定位技术并不适用于室内或高楼林立的场合,目前无线室内定位技术迅速发展,已成为 GPS的有力补充。 了解智能手机如何利用 Wifi 热点设备信号强度进行室内定位。3、 系统架构简介Android 系统架构见图 ,它建立于 Linux 内核之上,包含了各种设备驱动和管理模块,囊括了非常齐全的类库和框架,包括轻量级数据库 SQLite 、浏览器 Webkit 等。整个系统建立在 Dalvik 虚拟机上,应用程序使用 Java 语言编写。Android 系统提供了丰富的框架(活动管理、位置管理等)来管理系统的软、硬件资源,整合了常用的应用程序(联系人、电话本等),并开放了很全面的 API 供用户使用,整个平台具有良好的开放性和扩展性。 AP 的 RSSI 指纹特征,Android 系统提供的接口可以很方便地实现这一功能。,WiFi 无线信号具有较强的时变无线信号传播衰减模型难以很好的表征距离与信号强度间的映射关系,采用基于射频指纹匹配定位方法,它具有较好的定位鲁棒性。指纹匹配方式定位算法建立在实验数据基础上,它主要包括离线训练和在线定位两个阶段,其中离线训练阶段的任务是建立射频信号强度向量和客户端位置间的一一对应关系,形成一个指纹库(radio map),定位阶段则使用实时采集的信号强度向量去匹配训练阶段构建的指纹库,从而获得目标的位置估计。:Ø 当手机程序初次运行时,会创建一个数据库,数据库中包含两个表,一个记录用户所采集的地点信息,另一个表记录每个之前所记录的地点信息所对应的 wifi 信息,为一对多的关系。Ø 手持手机设备采集指纹信息,即地点信息,指纹信息会存入之前创建的数据库中,即把输入的地点名称录入表 1 中,并对此地点的 wifi 进行扫描,将满足一定要求的 wifi 信息,每个 wifi SSID+地点名称 作为一个记录存进表 2 中。采集的指纹信息越多,定位就会越准确。Ø 定位时,先扫描得到所在地点的 wifi 信息列表,然后与数据库中每一个地点所拥有的 wifi 信息进行匹配,若待定位地点的 wifi 信息绝大部分都在数据库中某一地点的 wifi 信息列表中(允许存在一定的误差),则可以认为当前地点就是数据库中的那一个地点,于是输出那一个地点的名称,完成定位。4、 实验流程1. 首先在手机上面打开应用程序:如图 1图 12. 然后添加指纹信息,运行效果图如下图 2 和图 3:图 2 图 3重复此过程,直到数据库中有一定的数量的指纹信息3. 进入到查询界面,如图 4:图 44. 查询当前所在的位置,结果如图 5 所示:图 55、 个人工作及总结本次实验我主要负责程序中关于指纹数据库初始化模块和查询用户当前位置模块。Ø 在指纹数据库初始化模块中,主要任务是建立如下结构的表 1:wifi 和表 2:location:表一:ID Wifi_SSID Location_ID表二:Location_ID Location_name其中表一和表二通过 Location_ID 进行关联,建表的目的是存储 location信息及其对应的 wifi 列表信息,一个 location 信息对应多个 wifi 信息。Ø 在查询用户当前位置模块中,主要是进行待定位地点 wifi 列表信息与数据库中已经存在地点的 wifi 列表信息进行匹配。在此过程中用一个数组 wificount[]保存匹配的 wifi 个数,wificount[i]代表待定位地点 wifi 列表信息与数据库表二中 location_ID 为 i 的地点所拥有的wifi 列表信息匹配的 wifi 个数。最初实验只有两者个数完全一样时才输出此地点,但是在实际操作运行时总是没有匹配的信息输出。后来经过分析和查相关的资料,发现生活中很多 wifi 信号不是很稳定,并且 wifi 信号受外界环境的影响较大,手机就算是在同一地点所收到的 wifi 信号变化也会很大,于是考虑允许 wificount[i]有一定的误差,但是多少范围
wifi定位实验报告 来自淘豆网m.daumloan.com转载请标明出处.