室内被动定位项目方案建议书Word文档格式.docx
《室内被动定位项目方案建议书Word文档格式.docx》由会员分享,可在线阅读,更多相关《室内被动定位项目方案建议书Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
概率性算法一般基于RSSI构建的指纹库搜索定位或RSSI反推传播距离,这类算法定位精度低,多用于wifi、蓝牙等系统。
三、解决方案及系统架构
考虑到本项目的应用目的,建议采用基于wifi/蓝牙的指纹定位方法,一方面不需要定制终端,直接利用手机自带的wifi模块或蓝牙模块即可完成定位;
另一方面考虑到被动定位的需求,可以不再终端上安装任何软件,只在网络侧完成定位。
下面对该定位方案及系统处理流程详述。
6.1基于地理指纹的室内被动定位
所有的WiFi终端有两种方式可以获取周围的无线网络:
一种是被动扫描,移动终端通过监听周围AP发送的Beacon(信标帧),该帧提供了AP及RSS信息;
另一种是主动扫描,移动终端主动发送一个探测请求帧(ProbeRequest帧),通过收到探测响应帧(ProbeResponse)获取网络信号。
本方案利用移动终端主动扫描接入AP时,AP被动接受其RSS来完成被动定位。
研究发现,移动终端发出的探测请求帧里面包含有MAC地址,监听由移动终端发出的探测请求帧(ProbeRequest帧),提取其中的MAC地址、时间戳、RSS。
基于以上分析,本方案提供一种被动定位数据采集方法,移动终端MT(mobileterminal)具有WiFi模块,利用移动端在WiFi打开时,会发出扫描信号,通过室内部署的AP检测扫描信号,捕获移动终端MT的信号强度RSS,交由服务器在已经体现训练好的指纹数据库中进行匹配搜索,完成室内被动定位。
方案示意图:
本方案提供一种新型的获取RSS技术来监督无线终端。
在获取RSS值时,移动终端并未和接入点设备链接,在移动终端仅仅打开WiFi功能,即可实现移动终端的RSS捕获。
6.2被动定位系统处理流程:
1)构建地理指纹数据库:
离线阶段在室内各个参考点处,检测移动终端的RSS离散值,每个AP获取的RSS组成一个向量,同时计算在一段时间内每个AP上RSS值对应的先验概率。
这些概率值和RSS组成一个矩阵——离线地图(地理指纹数据库)。
预先标定每个参考点位置坐标,建立各AP端捕获移动终端接收信号强度矩阵(表1),一段时间内,每个AP共获取n个RSS值,并在统计后获得各个RSS值对应的先验概率矩阵(表2);
表1某参考点RSS矩阵
AP1
AP2
…
APm
时间点1
RSS11
RSS21
RSSm1
2
RSS12
RSS22
RSSm2
n-1
n
RSS1n
RSSmn
表2某参考点RSS先验概率矩阵
RSSj1
RSSj2
RSSjn
P11
P12
P1n
m-1
m
Pmn
注:
构建以上两个矩阵时进行向量预处理,将不满足阈值的值剔除
阈值:
接收信号强度:
;
先验概率:
2)在线定位:
通过“先验概率最近邻”算法与指纹库里每个参考点的RSS值做匹配运算,取出差别最小的前K个参考点,利用选出的参考点的坐标取平均值,得到最终定位结果。
KNN算法:
根据移动终端在测试点处RSS值、参考点RSS值和先验概率,计算测试点与参考点的欧氏距离(公式),提取欧氏距离最短的前K个参考点,求其坐标的平均值作为测试点的定位坐标
其中,
表示移动终端在测试点处第j个AP接收的信号强度,共m个AP;
表示第j个AP的RSS平均值。
四、定位算法
之前简单起见,以KNN算法为例,介绍了整个定位流程,此处重点介绍P-KNN算法。
RSS统计分布并不是服从高斯分布,大部分是偏左,这是因为室内条件下移动终端与AP间的视距条件,在恶劣情况下,甚至产生严重的2峰值。
P-KNN:
将离线阶段每个RSS值得先验概率运用到计算欧氏距离中(如公式)
提取欧氏距离最短的前K个参考点,作为地理指纹数据库中的参考点与测试点差别最小的K个参考点。
五、被动定位系统建设
6.3手机与AP建立连接的过程:
移动终端与AP建立连接的过程包括以下几个步骤:
1)终端在全部13个信道发送探测请求Proberequest。
2)AP在收到请求之后做响应应答Proberesponse。
3)终端通过选择应答数据包中信号最强的AP连接。
4)终端发送身份认证信息。
5)AP认可了终端的认证信息并注册,建立连接。
AP不广播SSID,移动终端是无法知道要向哪个信道去发送连接请求的,所以这时候移动终端会向全部13个信道发送探测请求,直到收到AP的应答,然后就能进行后面的连接过程了。
6.4手机探测请求帧的结构:
1)RSSI信号强度获取
最上层是Ethernet帧格式。
前面12字节分别是目标MAC地址以及源MAC地址。
Type字段可以为0x0800,代表后面的数据是IP包;
当Ethernet帧要在无线网络上传输时,必须先将其转换为LLC帧,如中间一层所示。
这种转换方法由RFC1042规定。
它主要在MACheaders和Type之间增加了4个字段。
它们统称为SNAPheader;
最下层是无线局域网中的帧,网卡添加在802.11MAC头部前的数据,记录了信号强度、噪声强度和传输速率等物理层信息。
2)找到probeRequest帧:
3)找到时间戳和MAC地址
注(iOS8使用随机mac发送probe-request)
6.5路由器获得“探测请求帧”的设备改造
1)使用开源AP
通过装有openwrt的wifi设备可以获取到的主要指标就是周围处于打开状态的wifi设备的MAC地址和这些设备的wifi信号强度。
原理是通过抓取monitor模式的无线网卡的MAC层的管理包。
即可分辨出这些设备的MAC和信号强度。
使用到的程序包括iw,iwcap,iwinfo,getmac.sh,getclient.sh等五个程序。
所有的这五个程序都是运行在Openwrt平台上的,前三个程序是C程序,后两个是简单的shellscript程序。
前两个是系统支持的工具,后三个是我们自主完成的程序。
表3Openwrt所加载的程序
程序
作用
iw
辅助完成openWRT系统的网卡的管理,创建一个monitor模式的网卡
iwinfo
获取已连到当前AP的wifi设备列表及设备的MAC和信号强度
iwcap
抓取特定的prorequest数据包,并且截取这个包中的源MAC地址信息和信号强度数据。
经过简单的数据格式的处理后用TCP协议发送到指定的服务器的程序(也是一个TCP客户端)
getmac.sh
iwcap程序会调用这个脚本,获取本AP的MAC地址
getclient.sh
调用iwinfo以获取连接到本AP的wifi设备列表
软件安装及操作步骤:
服务器接收信息
2)使用定制AP:
自己做硬件选型(ProbeRequestSniffer制作)
设备选型1:
MeshliumXtreme
可提供信息
设备选型2:
六、开展计划
6.6算法半实物仿真
6.7基于服务器的工程验证
6.8扩展范围的螺旋式工程开展与回归改进
6.9