《第五章-Wi-Fi定位无线定位系统教学课件.pptx》由会员分享,可在线阅读,更多相关《第五章-Wi-Fi定位无线定位系统教学课件.pptx(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第五章-Wi-Fi定位无线定位系统无 线定位主编:梁久祯2022.6.22技术CONTENTS目录绪论卫星定位系统无线传感网络节点定位技术04Wi-Fi定位05蜂窝通信网络定03UWB定位技术060102CSS定位07软件无线电定位08PART 05Wi-Fi定位5.1Wi-Fi基础IEEE 802.11系列标准概述Wi-Fi 网络成员与结构Wi-Fi信道Wi-Fi MAC帧格式Wi-Fi扫描5.2概述位置指纹数据库搜索空间缩减技术位置估算方法 位置指纹法5.3轨迹优化状态空间模型贝叶斯递推估计原理卡尔晏滤波及其改进粒子滤波第5章 目 录Loc定位研究工具集LoclibLoctraceLoce
2、vaLocanaHTMLHTML5 GeoLocation定位实例5.45.55.1 Wi-Fi基础5.1.1 IEEE 802.11系列标准概述WLAN(Wireless LAN)的两个典型标准分别是由电气电子工程师协会(The Institute of Electrical and Electronics Engineers,IEEE)802标准化委员会下第11标准工作组制定的IEEE 802.11系列标准和欧洲电信标准化协会(European Telecommunications Standards Institute,ETSI)下的宽带无线电接入网络(Broadband Radio A
3、ccess Networks,BRAN)小组制定的HiperLAN系列标准。IEEE 802.11系列标准由Wi-Fi联盟(官方网址:www.wi-fi.org)负责推广,本章所有研究仅针对IEEE 802.11系列标准,并且用Wi-Fi代指IEEE 802.11技术。5.1 Wi-Fi基础5.1.1 IEEE 802.11系列标准概述1997年,IEEE为无线局域网制定了第一个版本标准-IEEE 802.11。1999年加上了两个补充版本:802.11a和802.11b。之后,802.11工作小组还继续推出了一系列的标准,直到目前为止,802.11工作小组仍然在制定新的标准其中比较常见的几个
4、标准是:在2003年被批准使用的802.11g,以及2009年被批准使用的802.11n。在经历一段时间的发展之后,IEEE802.11工作组会对IEEE802.11标准进行一次综合,比如最近的一次是2012年的802.11-2012,在原有标准的基础上,包含了k,n,p,r,s,u,v,w,y,z 这10个修正版。5.1 Wi-Fi基础5.1.2 Wi-Fi网络成员与结构IEEE 802.11主要规定了两种不同类型的基本架构:有基础架构的无线局域网络(Infrastructure Wireless LAN)和无基础架构的无线局域网络(Ad Hoc Wireless LAN)。在Wi-Fi定位
5、中常用的架构是有基础架构,如下图所示:5.1 Wi-Fi基础5.1.3 Wi-Fi信道截至目前,802.11工作组划分了三个独立的频段,2.4 GHz,3.7GHz以及 5 GHz。每个频段又划分为若干信道802.11b和802.11g将2.4 GHz的频段区分为14个重复、标记的频道;每个频道的中心频率相差5兆赫兹(MHz),具体如下图所示:对于802.11工作组划分的不同信道频段,每个国家自己制定政策如何使用这些频段。在中国,2.4GHz频段可用信道为113信道5.1 Wi-Fi基础5.1.4 Wi-Fi MAC帧格式首先我们先看一下一般的802.11 MAC帧格式其中比较重要的一个字段是
6、Frame Control(帧控制)字段,其各位表示的内容如下所示:Frame ControlDuration/IDAddress1Address2Address3Sequence ControlAddress4QoSControlHTControlFrame BodyFCS2266626240-795140-12-34-78 9 10 11 12 13 14 15 Protocol VersionTypeSubtypeTo DSFrom DSMore FragRetryPwr MgmtMore DataProtected FrameOrder224111111115.1 Wi-Fi基础5.1
7、.5 Wi-Fi扫描 使用任何网络之前,首先必须找到网络的存在。在所在区域识别现有的网络过程称为扫描(scanning)。在Wi-Fi网络里面有两种扫描方式:被动扫描和主动扫描。在被动扫描中,工作站会在信道列表(channel list)所列的各个信道之间不断切换并静候Beacon帧的到来。在主动扫描(active scanning)中,工作站扮演着比较积极的角色。在每个信道上,工作站都会发出Probe Request帧来请求某个特定网络予以回应。5.2 位置指纹法5.2.1 概述目前,Wi-Fi定位中存在的方法有很多,常用的有TOA、TDOA、AOA、RSSI测距方法、近似法和位置指纹法。首
8、先,位置指纹法通常都是一个两阶段的工作模式:离线阶段(有时也叫训练阶段)和在线阶段。位置指纹法通常会有一些共同的基本组件,如RF指纹数据库(LFDB)、位置指纹数据库、位置指纹数据库的缩减技术和位置估算方法,位置指纹法的工作机制如图所示。5.2 位置指纹法5.2.2 位置指纹数据库位置指纹数据库(LFDB)的构建是在离线阶段完成。位置指纹数据库是由众多数据库元素组成。数据库元素表述如下:其中L表示的是物理位置,R表示的是在该位置上采集到的指纹,表述如下:表示的是离线阶段在参考位置点上采样设备通信范围内的AP数目。表示的是采样设备接收自第 个AP的信号参数,表示的是AP的ID。抓住教学重点抓住教
9、学重点您的内容打在这里,或者通过复制您的文本后,在此框中选择粘贴,并选择只保留文字。学生实施学生实施ZigBee是一种近年来才兴起的无线网络通信技术标准,出现的时间较短,尚未进入大规模的商业化生产和应用。但是,它的上升势头十分明显,已有Chipcon、Freescale、CompXs、Ember等四家公司通过了ZigBee联盟对其产品所做的测试和兼容性验证。从2006年开始,基于ZigBee的无线通信产品和应用迅速得到普及和高速发展。RSSI测量法:LFDB可以整个地用RSSI测量法来构建。这通常需要一个MS,一个运行在MS上的收集和处理RSSI测量的软件,在室外环境下我们还需要一个GPS接收
10、器。通过MS或者AP,RSSI被周期性地测量得到。每一组被测得的RSSI集合都和真实的位置进行关联。该真实位置或通过GPS获取,或通过平面图获取。电波模型法:使用电波模型法构建LFDB,就是使用我们上一节介绍的电波传播模型,代入发射机的发射功率,通常在Wi-Fi网络中发射机的功率是100mW,然后根据环境选择电波模型,比如说室外环境我们就可以使用对数正态模型甚至是自由空间模型。混合法:在LFDB中,我们也可以同时使用电波模型预测和实测RSSI的指纹。首先,使用电波模型构建出LFDB。然后,实际测量一些参考指纹。如果在一个位置上实测指纹是可用的,就用实测指纹来替换预测指纹。同时,在实测点附近使用
11、一些插值算法,来平滑实测指纹和预测指纹的关系。对于那些距离实测点比较远的地方,就单纯使用预测指纹。5.2 位置指纹法5.2.2 位置指纹数据库位置指纹数据库的构建通常可以使用RSSI测量法,电波模型法以及混合法。5.2 位置指纹法5.2.3 搜索空间缩减技术 DBE包含了一个物理坐标和一个参考RF指纹。搜索空间包含有和目标指纹对比的参考RF指纹元素的集合初始情况下,搜索空间包含了所有LFDB的元素。如果直接使用这个搜索空间,那么计算的复杂度就会非常大,所以,我们需要有一种技术来缩小搜索空间,同时不对定位准确度有大的影响。在此,我们介绍两种搜索空间的缩减技术:LFDB过滤以及遗传算法。LFDB过
12、滤这种技术通过两次连续过滤,渐进地减小搜索空间。第一步过滤,使用目标RF指纹的最大RSSI对应的AP来进行过滤,我们可以获得一个搜索空间 。第二步过滤,使用“参考RF指纹包含目标RF指纹前 个AP”这条规则对搜索空间进行过滤。由于目标RF指纹 是按照RSSI大小进行降序排列的,因此这 个,AP就是 中具有最大RSSI的那些AP。遗传算法遗传算法GA(Genetic Algorithms)是一类借鉴生物界自然选择和自然遗传机制的随机化搜索算法,由J.H.Holland 教授于1975 年提出。它简单通用鲁棒性强,适于并行处理,因此在过去的20 多年中遗传算法已在很多领域得到了应用受到了人们的广泛
13、关注。将遗传算法用在解RF指纹搜索空间的缩减问题上时,每一个个体就是位置点。每一个位置点有一个用于评估个体适应度的参考RF指纹。于是遗传算法的步骤就是:1.初始化第一代种群,随机地从搜索空间中选择个体。2.估计当前种群中每一个个体的适应度,使用相关函数。3.建立染色体,将个体坐标转换成二进制格式。4.使用基因操作(选择、交叉、突变)建立新的种群。5.将染色体转换成整数格式。6.如果停止准则被满足,将适应度最高的个体对应的坐标返回作为MS位置;否则转到步骤2。5.2 位置指纹法5.2.3 搜索空间缩减技术Core Idea 最近邻方法需要RF指纹中包含RSSI的均值向量和标准差向量。为了估算出位
14、置,通常会使用一个距离测量函数将样本RSSI指纹分类到估算位置。基本的最近邻分类器就是使用训练集的参考RSSI指纹和样本RSSI指纹的近似度来进行分类的。概率方法使用条件概率对RF指纹进行建模,然后使用贝叶斯推断的方法来估计位置。概率方法假设了用户位置的概率分布和每个位置上RSSI的概率分布这两个先验知识。先验的RSSI分布通常通过实际的测量数据或者使用电波传播模型来获取。目前,应用到Wi-Fi定位的神经网络算法主要为BP神经网络算法。BP神经网络采用的是并行网络结构,包括输入层、隐含层和输出层。SVM方法的基本思想是基于结构风险最小化(Structural Risk Minimization
15、,SRM)原则来最小化期望风险泛函或者泛化误差的边界。01020403位置估算方法(定位算法)就是利用位置信息和RF指纹的依赖关系,通过采样得到的RF指纹来计算位置的一个过程。常用的方法有4种:最近邻方法,概率方法,神经网络方法,SVM方法。5.2 位置指纹法5.2.3 搜索空间缩减技术5.3 轨迹优化5.3.1 状态空间模型定位跟踪问题可以看作一个状态估计问题,状态空间模型因其明确的物理含义及简洁清晰的描述形式被广泛用来描述估计问题,在此亦借助状态空间模型来描述定位跟踪问题,假设目标的位置状态为 ,各时刻的观测集合为 ,那么目标的状态可由如下运动方程和观测方程来描述,即状态空间模型采用递推的
16、方式描述和处理状态估计问题,在每个时刻,均通过运动方程和观测方程将当前时刻的状态变化叠加到上一时刻的估计上。与传统的基于批处理方式的估计方法相比,状态空间模型具有实时性较好的优点。5.3 轨迹优化5.3.2 贝叶斯递推估计原理贝叶斯估计方法是借助状态的先验分布和观察似然函数确定状态后验概率分布的一种状态估计方法。贝叶斯算法的优缺点如下所示。算 法KFEKFUKFGSFPF分布函数高斯分布高斯分布高斯分布多高斯分布任意精度优一般一般优优适用条件线性高斯非线性高斯非线性高斯线性高斯非线性高斯健壮性一般一般优一般优实现复杂性优一般一般差优5.3 轨迹优化5.3.3 卡尔曼滤波及其改进卡尔曼滤波器给出
17、了线性、高斯条件下的最优贝叶斯实现,卡尔曼滤波器以其简洁的运算过程,优异的估计效果而在众多领域得到广泛的应用。但是在实际应用中,线性高斯系统的要求很难满足。因此,人们对传统卡尔曼滤波器进行了改进,以期达到使算法适用于更复杂场景的目的。在众多卡尔曼滤波改进型算法中,最具代表性的是扩展卡尔曼滤波器和无迹卡尔曼滤波器,它们均适用于非线性高斯系统,以下简述其基本原理。除了EKF与UKF算法,多元假设跟踪滤波器通过多个高斯分布函数来拟合非高斯分布,每个高斯分布采用KF算法独立处理,以达到适应非高斯环境的目的;网格滤波器通过将状态空间离散化处理来克服噪声非线性、非高斯问题;高斯和滤波器与多元假设跟踪类似,
18、采用多个高斯分布来表征状态分布。这些滤波器均在一定程度上改善了KF的性能,使其更加适用于实际应用。5.3 轨迹优化5.3.4 粒子滤波粒子滤波是一种通过蒙特卡洛仿真实现递归贝叶斯估计的方法。PF算法的核心是采用大量的加权粒子来代表被估计问题的概率分布函数。粒子滤波算法通过“采样重要性采样重采样”的结构实现贝叶斯估计,为了直观地表述粒子滤波器的工作过程,下面以跟踪一辆在公路上由左向右运动的汽车为例进行介绍。假设汽车的运动速率大致已知,道路上安装了两个路标,汽车运动至路标附近时可以判断其处于路标附近,但不能判断具体处于哪一个路标处。初始时刻的跟踪场景如图所示,圆代表粒子,圆的大小代表其权值,路上的
19、两个三角代表路标。5.3 轨迹优化5.3.4 粒子滤波由于没有汽车的先验位置信息,粒子随机分布在整条公路上,服从均匀分布。在某时刻,汽车发现路标,如图所示5.3 轨迹优化5.3.4 粒子滤波汽车继续向右运动,由于知道汽车的速率信息,粒子也向右做相应的移动,当到达第2个路标附近时,继续进行粒子权值更新计算,如图所示。5.4 Loc定位研究工具集下面介绍一套用于Wi-Fi定位研究的工具集Loclib,trace,eva,ana,由德国曼海姆大学的Thomas King等人开发,并且对外公开源码。该工具集包含6个组件,分别是Loclib、Loctrace、Loceva、Locana、Locutil1
20、和Locutil2。整个工具集的结构可以用图表示。5.4 Loc定位研究工具集上面已经对整个工具集进行了概述,下面着重对Loclib进行详细的描述,以及对其如何使用进行说明。Loclib被组织成了三层:传感器数据收集层、数据转换层、定位程序接口层,如图所示。5.4.1 Loclib传感器数据收集层通过传感器硬件收集数据。目前版本的Loclib(loclib-0.7.5)可以从Wi-Fi网卡、NMEA兼容的GPS接收器、数字罗盘和蓝牙收集数据。Loclib会通过驱动或者有可能通过直接询问的方式来收集数据。比如,数字罗盘和NMEA-0183设备的数据都是通过直接询问的方式来获取的。而Wi-Fi网卡
21、接收自不同AP的RSSI值则是通过驱动来获取的。通常,从传感器数据收集层采集到的数据都会被转给数据转换层,再进一步处理,不过也可以通过句柄(Handler)来直接访问。句柄是为了允许像Loctrace这样的应用程序来访问传感器数据而预先定义的接口。5.4 Loc定位研究工具集Loctrace只包含一个程序,即Tracer,用来收集构建指纹数据库的数据。为了实现这个目标,Tracer通过Loclib直接收集传感器数据(如Wi-Fi网络中通信范围内的AP的RSSI值)。Tracer包含一个图形用户界面(GUI)来方便配置(如选择一个扫描模式和设备)。其他参数,诸如扫描次数或两次扫描的间隔时间,同样
22、可以通过图形用户界面进行配置。如果追踪程序开始运行了,就会在Tracer界面的底部出现一个直方图,显示通信范围之内的AP,以及与它们相关的RSSI分布。如图所示,就是Tracer GUI的一个截图。5.4.2 Loctrace5.4 Loc定位研究工具集Loctrace产生的追踪文件可以交由Loceva来评估各种类型的定位算法。目前版本的Loceva已经实现了很多定位算法。5.4.3 Loceva5.4 Loc定位研究工具集Locana对Loctrace和Loceva产生的结果进行可视化。Locana包含了很多特定用途的小工具,大部分工具对Loctrace和Loceva的输出结果进行验证,或者
23、列出追踪文件中的一些特定对象。比如,Access Point Lister工具可以打印所有的AP及它们在追踪文件中出现的次数。如图所示为Radiomap工作在loctrace模式下的截图。5.4.4 Locana5.4 Loc定位研究工具集如图所示为Radiomap工作在loceva模式下的截图。5.4.4 Locana5.5 HTML5 GeoLocation定位实例下面讲述Wi-Fi定位的实例,即HTML5 GeoLocation。在接入 了 Wi-Fi网 络 移 动 终 端 的 浏 览 器 中,输 入http:/ GeoLocation的浏览器是Firefox 3.5+、Chrome 5
24、.0+、IE 9.0+、Safari 5.0+、Opera 10.6+、iPhone 3.1+、Android 2.0+、BlackBerry 6+),或者Google的数据库没有你的AP的MAC地址,或者是由其他原因造成的。5.5 HTML5 GeoLocation定位实例如果浏览器支持HTML5 Geolocation,那么我们如何获取用户的当前地理位置信息呢?可以使用如下语句进行位置的获取:navigator.geolocation.getCurrentPosition(successCallback,errorCallback,positionOptions);navigator.ge
25、olocation对象通过getCurrentPosition来获取用户当前位置信息,该方法包含以下3个参数。successCallback:成功获取用户位置信息后的回调函数。errorCallback:获取用户位置信息失败时的回调函数。positionOptions:可选。获取用户位置信息的配置参数。5.5 HTML5 GeoLocation定位实例successCallback代码如下:var successCallback=function(position)var lat=position.coords.latitude,lon=position.coords.longitude;al
26、ert(您的当前位置的纬度为:+lat+,经度为+lon);successCallback非常简单,带有一个参数,表示已经获取到的用户位置数据,也就是以上代码中的position。该对象包含两个属性coords和timestamp。coords属性中包含了以下7个值:accuracy(准确度)、latitude(纬度)、longitude(经度)、altitude(海拔高度)、altitudeAcuracy(海拔的精确度)、heading(行进方向)、speed(地面的速度)。如果浏览器没有获取到以上7个属性的值,就返回null。timestamp属性表示的是时间戳,不过在实际开发中用处不大。
27、5.5 HTML5 GeoLocation定位实例errorCallback可查看以下代码:var errorCallback=function(error)alert(错误代码:+error.code+,错误信息:+error.message);errorCallback也很简单,带有一个参数,表示HTML5 Geolocation返回的错误数据,其包含两个属性:message和 code。message属 性 表 示 错 误 信 息;code属 性 表 示 错 误 代 码:0(UNKNOWN_ERROR)表示不包括在其他错误代码中的错误,需要通过message参数查找错误的更多 详 细 信
28、 息;1(PERMISSION_DENIED)表 示 用 户 拒 绝 浏 览 器 获 取 位 置 信 息 的 请 求;2(POSITION_UNAVALIABLE)表示获取位置信息失败;3(TIMEOUT)表示获取位置信息超时。在options中指定了timeout值时才有可能发生这种错误。某些浏览器可能没有message属性的值,则返回null。5.5 HTML5 GeoLocation定位实例可选参数positionOptions的数据格式为JSON。positionOptions有如下3个可选属性。enableHighAcuracy:布尔值,表示是否启用高精确度模式,如果启用这种模式,浏
29、览器在获取位置信息时可能需要耗费更多的时间。timeout:整数,表示浏览器需要在指定的时间内获取位置信息,否则触发errorCallback。maximumAge:整数/常量(infinity),表示浏览器重新获取位置信息的时间间隔。通过这个例子我们发现,该接口的使用还是比较简单的。通过跟踪HTML5 GeoLocation的接口实现来看Google地图到底是通过什么技术手段来对移动终端进行定位的。由于对Google地图的访问,以及对HTML5 GeoLocation接口的使用都是通过浏览器来完成的,那么最方便的方法是打开浏览器一探究竟。这里使用的是Google的一个开源项目Chromium
30、,从中可以看到Google浏览器是如何实现HTML5 GeoLocation这个接口的。5.5 HTML5 GeoLocation定位实例打开浏览器,输入网址:http:/src.chromium.*/svn/trunk/src/content/browser/geolocation/,就会看到Google浏览器对GeoLocation接口的实现。如图所示为一部分截图。5.5 HTML5 GeoLocation定位实例再打开wifi_data_provider_common_win.cc文件,其中一个函数的代码如下:bool ConvertToAccessPointData(const NDI
31、S_WLAN_BSSID&data,AccessPointData*access_point_data)/Currently we get only MAC address,signal strength and SSID./TODO(steveblock):Work out how to get age,channel and signal-to-noise.DCHECK(access_point_data);access_point_data-mac_address=MacAddressAsString16(data.MacAddress);access_point_data-radio_
32、signal_strength=data.Rssi;/Note that _NDIS_802_11_SSID:Ssid:Ssid is not null-terminated.UTF8ToUTF16(reinterpret_cast(data.Ssid.Ssid),data.Ssid.SsidLength,&access_point_data-ssid);return true;可以看出,在Windows环境下,Google浏览器目前只是获取了AP的MAC地址和信号强度(也就是 之前讲的RSSI),这也表明Google浏览器采用的Wi-Fi定位手段是基于RSSI的。5.5 HTML5 GeoL
33、ocation定位实例Google街景车上运行的程序框架如图所示。这种程序实际上由两部分组成,一部分用于Wi-Fi信号收集的Kismet,另一部分用于GPS信号收集和对收集到的Wi-Fi、GPS进行处理的gslite。5.5 HTML5 GeoLocation定位实例Kismet是一款开源免费的用于无线网络检测和抓包的软件,通过把无线网卡设置成监听模式(monitor mode)来抓取无线网络中传输的报文。Kismet是使用被动模式来获取报文的,是一个独立的抓包和包过滤的程序。不过,Kismet也可以被配置为drone模式。在drone模式下,Kismet不会记录和处理抓到的报文,而是直接把抓
34、到的网络数据流传递给那些需要这个数据流的程序。Kismet还会在抓到IEEE 802.11 MAC帧之前加上一个Kismet头,这个Kismet头存放的就是一些无线传输的属性数据,我们所需要的RSSI也在其中。gslite来源于Google的一个开源项目gstumbler。gstumbler是在2006年被创建并通过gstumbler项目编译出来的一个可执行程序,起初叫作gstumbler,不过从2006年后,这个可执行程序被配备到了Google的街景车上用来获取数据,这样它就有了一个新的名字,即gslite。gslite的作用就是分析处理抓取到的Wi-Fi帧,同时接收从GPS系统传递的地理位
35、置坐标,然后把处理后的Wi-Fi帧、GPS返回的坐标和Wi-Fi帧的接收时间关联,最后一并存储到数据库中。默认状态下,gslite会收集所有的Wi-Fi帧,除掉那些被加密的数据帧的数据部分。1IEEE 802.11的第一个版本是在哪一年被制定的?Wi-Fi联盟又是在哪一年成立的?2IEEE 802.11b的工作频段是多少赫兹?IEEE 802.11a、802.11g、802.11n的工作频段又分别是多少赫兹?3根据IEEE 802.11 MAC帧的Frame Control字段的Type取值,MAC帧可以被分为哪几种类型?4现有一个IEEE 802.11 MAC帧,它的Frame Control字段的值为0 x0080,请判断它的类型(精确到子类型)。5Wi-Fi扫描的扫描类型有哪两种?课后习题56假设离线阶段,9个不同位置对4个AP采样得到的均值结果如下所示。课后习题5在线阶段时,某移动设备采集到的4个AP的RSSI从AP1AP4分别为(-33,-34,-36,-36),试用最近邻算法估算出移动设备的位置坐标。7假设在某位置x上对4个AP进行采样的采样情况如下所示。课后习题5在线阶段时,某移动设备采集到的4个AP的RSSI从AP1AP4分别为(-33,-34,-36,-36),试用最近邻算法估算出移动设备的位置坐标。