wifi定位方法基本上可以分为两大类:
1.不基于RSSI
TOA(time ofarrival)TDOA(time difference of arrival)AOA(angle of arrival)但是这些值的获取需要特殊的wifi模块,在智能机上无法获取,因此这类方法无法使用。
2.基于RSSI
在智能手机上,可以通过系统SDK获取到周围各个AP(Access Point)发送的信号强度RSSI及AP地址,利用RSSI来定位目前看来是最可行的方法,因此下面着重介绍,基于RSSI定位主要有两个算法:三角定位算法,指纹算法。
三角定位:如果大家已经知道了这些AP的位置,大家可以利用信号衰减模型估算出移动设备距离各个AP的距离,然后根据智能机到周围AP距离画圆,其交点就是该设备的位置。很容易发现,三角定位算法需要大家提前知道AP的位置,因此对于环境变化较快的场合不适合使用。
指纹算法指纹算法类似于机器学习算法,分为两个阶段:
离线训练阶段将需要室内定位区域划分网格,建立采样点(间距1~2m)使用wifi接受设备逐个采样点采样,记录该点位置、所获取的RSSI及AP地址。对采样数据进行处理(滤波、均值等)在线定位阶段用户持移动设备在定位区域移动,实时获取当前RSSI及AP地址,将该信息上传到服务器进行匹配(匹配算法有NN、KNN、神经网络等) 得到估算位置。匹配算法有NN、KNN、神经网络等。比较:
指纹算法相比较三角定位算法精度更高。三角定位算法需要提前知道所有AP的位置指纹算法需要提前绘制一幅信号Map。总结:智能手机基于WIFI的室内定位应用,更适合使用基于RSSI信号的指纹算法,原因在于大家不需要提前知道所有AP的位置,而且指纹算法可以应对AP位置或状态的改变。可以提前将测绘指纹数据库储存到服务器上,移动设备在定位区域将自己得到的周围AP信息实时发送给服务器,由服务器进行匹配并返回坐标位置给客户端。一旦AP状态或位置变化,只需要更新定位区域数据库而并不需要在客户端作出改变。