本发明涉及室内定位技术,特别是一种基于预先设定ap位置的wifi定位算法。
背景技术:
目前,室外定位主要依靠卫星导航,民用定位精度可控制在米级,军用定位精度可控制在厘米级。民用级基本可满足人们日常生活使用的需求。当移动设备转移到室内时,因墙体阻挡及复杂的室内建筑结构,卫星定位精度变得急速下降,几乎无法使用。室内定位环境复杂,信号传输时具有散射、衍射、反射、折射、多径效应、时延扩展以及频率选择性衰落等原因,定位精度受到影响。
wifi定位是目前室内定位应用最多的技术之一,原因在于wifi热点的普及,每天都有数亿台设备连接着wifi,无需额外安装硬件设备,以及定位精度较高。同时wifi信号受非视距的影响比较小,即使在障碍物阻挡的情况下也能使用。
knn算法是一种经典的基于rssi的定位技术,算法中,选取k个与待测点欧氏距离最小的指纹数据库中的样点,以k个样点的平均值作为待测点的定位,得到的待测点位置偏差不会较大,有很好的稳定性。该算法缺点是算法需要花费时间在大量数据的指纹库中寻找k个最近欧氏距离,算法的实时性很差,并且并没有考虑到不同的样点对于待测点定位的贡献不同,导致最终定位的稳定性较差。
wknn算法是在knn算法基础上进行了改进,考虑到不同样点的欧氏距离不同,对于待测点定位贡献不同,欧氏距离越小的表示越接近待测点,对于待测点贡献应更大,于是他将knn算法中取k个平均值改为加权平均值,取欧氏距离的倒数作为权值带入计算,使得待测点位置的最终结果得以优化,定位更加精准。其相比于knn算法,定位精度明显提高且定位稳定有所提升,但当室内ap数量较多时,实际测量得到的定位与实验结果误差仍较大。
bp神经网络算法是一种具有很强的非线性映射的能力的算法,模拟人体大脑神经元信息的传递,由输入层、隐藏层和输出层组成。信号通过输入层,对下层神经元产生激励,通过训练得到神经元网络的权值和阈值。调节神经网络的权值和阈值建立一个wifi传播模型,然后利用这个模型来预测位置,而不是直接用待测点的rssi与位置指纹数据库直接匹配的方法。但此方法在训练网络时,收敛速度较慢,且极易形成局部极优,这使得网络预测能力和训练能力间成为矛盾。
技术实现要素:
本发明的目的在于提供一种基于预先设定ap位置的wifi定位算法,实现高效率的室内实时定位。
实现本发明目的的技术解决方案为:一种基于预先设定ap位置的wifi定位算法,包括以下步骤:
预先根据室内环境按圆模型布置多个ap进行区域划分粗定位:基于数学模型建立按照圆设定ap位置的模型,在圆的边径以及圆心点上安置ap,根据不同ap信号的重叠情况对定位区域进行标记,然后根据标记好的区域划分对待测点进行粗定位,确定所属子区域;
子区域内采用加权模糊定位算法,对待测点进行细定位。
进一步的,预先根据室内环境按圆模型布置多个ap进行区域划分粗定位,具体方法为:
以90度为平均差值,5个ap分别位于中心圆的0度、90度、180度、270度以及圆中心点处,中心圆的半径为d,且d为ap发射信号能接收到的最远范围;
以中心圆上的四个点为圆心,半径同样为d,划分四个圆;
根据室内区域面积,采用上述方法建立圆模型,将室内区域划分为多个子区域;
根据待测点接收到的ap信息,确定待测点所属的子区域。
当移动终端打开wifi后,接收来自周围ap发出的信息,包括ap的mac地址、ssid以及rssi信息;mac地址是ap的唯一标识,根据待测点处终端接收到的不同ap的mac地址,按照圆模型划分的wifi定位子区域表进行粗定位,判断出待测终端所属的子区域。
在前期离线阶段,在子区域节点的四周分别设置样点,测量样点处接收到不同ap的rssi数值;
若根据待测移动终端接收到ap的mac地址信息,确定所属子区域,将该子区域节点周围的所属于其他子区域靠近节点的样点以及属于子区域的样点rssi序列值,与待测点的rssi序列值相比对,通过相关性权重确定待测点所属子区域。
进一步的,子区域内采用加权模糊定位算法,对待测点进一步定位,具体方法为:
已知粗定位所属子区域后,选取该子区域边界内的样点,再根据样点与待测终端的相关度加权系数bi计算待测点位置;a、b、c点为待测点所属子区域边界内设置样点,o为无线终端实际位置;将o点接收到的rssi信号值与a、b、c样点收到信号值进行相关度计算,待测点位置(x,y)计算公式如下:
di=|rsl-ri1|2 |rs2-ri2|2 |rs3-ri3|2
di为粗定位所属区域内边界样点与待测点接收信号强度综合偏差度;
bi为ap相关度加权系数,ai为样点的相关度;
a点对于位置定位贡献为:
b点对于位置定位贡献为:
c点对于位置定位贡献为:
待测点o点的坐标为:
xo=b1x1 b2x2 b3x3
yo=b1y1 b2y2 b3y3
进一步的,待测点细定位后,对非预设ap进行筛选,联合筛选后的非预设ap进行定位,具体方法为:i(ap)为数据库中采样点采集到的各ap信号数据,rssii为接收到编号为i的ap发射出来的信号,sj(ap)为待测点第j次采集到的各ap信号数据,并与数据库中采样点进行比较,判断待测点是否收集到设定ap的信号,若存在,则此定位数据可使用,若不存在,则此数据不能用来定位。
本发明与现有技术相比,其显著优点为:(1)本发明应用于室内wifi定位场景中,利用预先按圆模型设定ap的方法,通过子区域划分粗定位以及子区域内加权模糊定位算法,联合筛选后的非预设ap提高定位精确度,实现高效率的室内实时定位;(2)该算法的效率相比其它传统wifi算法,比如knn,wknn,bp神经网络算法等实时性有明显提高;(3)使用预先按圆模型设定ap位置的方法建立wifi传播模型,根据模型来预测位置,而不是完全基于未知wifi热点位置的定位算法,不需要进行大量的前期离线数据采集或者必须每一次定位都要计算反向传播参数的方法;(4)根据接收到ap信号的不同情况区分定位区域,首先进行粗定位。所属子区域确定后采用加权模糊定位算法,提高在子区域内的定位准确度;(5)联合非布置ap接入点,筛选后进行辅助定位,利用加权平均算法得到最终定位坐标,最终可以获得比之前wifi指纹算法预测模型更好的定位效果。
下面结合附图对本发明作进一步详细描述。
附图说明
图1为wifi定位预先设定的ap位置示意图。
图2为利用圆模型组合区域划分示意图。
图3为测量样点示意图。
图4为子区域边界内样点和待测点示意图。
图5为采样点i与待测点s点扫描到相似ap可能出现的三种情况示意图。
图6为对非预设ap进行筛选示意图
图7为室内ap分布图。
图8为按圆模型预设ap定位过程流程图。
图9为联合非预设ap过程流程图。
具体实施方式
本发明提出一种预先按圆模型设定ap位置的wifi定位算法,用于无线定位,算法包含三个部分:一是预先根据室内环境按圆模型布置多个ap进行区域划分粗定位,在圆的边径以及圆心点上安置ap,根据不同ap信号的重叠情况对定位区域进行标记,然后根据标记好的区域划分对待测点进行粗定位;二是采用加权模糊定位算法,使得在区域划分边缘得到更佳的定位效果;三是联合部分经筛选的非预设ap进行定位,进一步提高定位精度。
一、按圆模型设定ap点的区域划分组合模型
图1描述的是wifi定位预先设定的ap位置,以90度为平均差值,5个ap分别位于中心圆的0度、90度、180度、270度以及圆中心点处。中心圆的半径为d,且d为ap发射信号能接收到的最远范围。且以a、b、c、d为圆心,半径同样为d。根据探测范围重叠情况可划分为16个区域,如图1中,如果仅收到a,o点信号,即可确定待测点处于区域1中;如果收到a,b,o三点信号,即可确定待测点处于区域2中;如果仅收到a点的信号,则确定待测点处于区域10中;如果同时可收到a,d点上2个信号,则判断待测点位于9中;以此类推。如图1所示。
表1按圆模型区域划分
图2描述的是利用圆模型组合区域划分,根据信号接收的种类进行区域划分,方法类似于图1。
表2按圆模型划分wifi定位子区域
当移动终端打开wifi后,可以接收到来自周围ap发出的信息,其中包括ap的mac地址、ssid以及rssi信息。其中mac地址是ap的唯一标识。因此我们可以根据待测点处终端接收到的不同ap的mac地址,按照圆模型划分的wifi定位子区域表进行粗定位,判断出待测终端所属的子区域。
wifi定位时容易受多径效应和室内环境的影响。为减少数据的偏差,我们在前期离线阶段,在子区域节点的四周分别设置样点,测量样点处接收到不同ap的rssi数值。如图3所示,在区域1~4中间有一节点,在节点四周分别测量a、b、c、d样点处接收到的不同ap的rssi序列。例如,若根据待测移动终端接收到ap的mac地址信息,所属子区域为2。我们将区域2节点周围的所属于其他子区域靠近节点的a、c、d样点以及属于区域2的b样点rssi序列值,与待测点的rssi序列值相比对,用相关性权重来确定待测点所属子区域。
在前期离线阶段,采集各区域节点周围样点的rssi序列,建成二维定位样点指纹库。在线粗定位时利用匹配算法,测量出待测点接收到的rssi值rs={rs1,rs2,...rsm}和指纹数据库中节点四周的样点接收到的rssi值ri={ri1,ri2,...rim}的相关性。其中待测点接收到的rssi值rs由以下公式算出
其中rsmi为待测点第i次收到来自第m个ap发出的信号强度大小,
rs与ri的相关性可以由以下公式算出。
(1)样本向量归一化
rij为第i个样点处接收得到的第j个ap发射出的信号向量。
rsj为待测点处接收得到的第j个ap发射出的信号向量。
(2)利用欧式公式计算待测点与样点相关性
(3)相关性权重从高排到低,选取与待测点相关性最高的样点,并且选择此样点所属的子区域作为待测点的最终定位子区域area[s]:
area[s]=area[i|max(ri,rs)]
二、加权模糊定位算法
经过粗定位确定所属子区域后,在子区域内采用加权模糊定位算法进行细定位。
已知粗定位所属子区域后,选取该子区域边界内的样点,再根据样点与待测终端的相关度加权系数bi计算待测点位置。如图4所示,a、b、c点为待测点所属子区域边界内设置样点,o为无线终端实际位置。将o点接收到的rssi信号值与a、b、c样点收到信号值进行相关度计算,将利用相关度d1、d2、d3之间的比例权重关系结合样点的具体坐标(xn,yn)得出无线终端的定位(xi,yi)。三个样点所占权重分别是b1,b2,b3。待测点位置(x,y)计算公式如下。算法如下:
di=|rs1-ri1|2 |rs2-ri2|2 |rs3-ri3|2
di为粗定位所属区域内边界样点与待测点接收信号强度综合偏差度。
bi为ap相关度加权系数,ai为样点的相关度。
a点对于位置定位贡献为:
b点对于位置定位贡献为:
c点对于位置定位贡献为:
待测点o点的坐标为:
xo=b1x1 b2x2 b3x3
yo=b1y1 b2y2 b3y3
三、对非预设ap进行筛选
在定位时可能会接受到非预先设定ap的信号,分为2种情况。
(1)非预设ap关闭,各个ap的rssi值相互独立,非预设ap信号的消失不会影响设定ap的信号强度。
(2)非预设ap开启,先判断非预设ap的信号强度是否接近位置指纹库的分布,从而判断是否进入二次位置判断。
i(ap)=(rssi1,rssi2,rssi3,rssi4)
s1(ap)=(rssi1,rssi2,rssi4,rssi6)
s2(ap)=(rssi1,rssi3,rssi4,rssi6)
s3(ap)=(rssi3,rssi4,rssi5,rssi6)
s4(ap)=(rssi5,rssi6,rssi7,rssi8)
i(ap)为指纹库某样点采集到的各ap信号数据,rssi1为接收到编号为1的ap发射出来的信号,s1(ap)为待测点第一次采集到的各ap信号数据,并与数据库中采样点进行比较,判断待测点是否收集到设定ap的信号,若存在,则此定位数据可使用,若不存在,例如s4(ap),则此数据不能用来定位。
并且扫描到相同ap越多表示越相近,反之越远。采样点i与待测点s的相似度simi,s公式:
假设ap信号发射最远距离为r,采样点i与待测点s之间距离为d,则采样点i与待测点s点扫描到相似ap可能出现三种情况,如图5所示。
由上述相似度公式可得,当d=r时,相似度为0.41。通过计算ap的相似度值,我们可以判断采样点i与待测点s的距离,当相似度值小于0.41时,他们之间的距离就已经超过最大通信距离r,此时我们就将此待测点排除。通过匹配滤波,我们可以将不在通信范围内的非布置ap点排除,只计算在通信范围内的,这样可减少计算工作量,同时提高了定位精度,提高算法的效率。如图6所示。
本发明按圆模型预先设定ap位置的wifi定位算法是与之前的knn,wknn,bp神经网络等算法完全不同的算法:
(1)使用了预先按圆模型设定ap位置的方法建立wifi传播模型,根据模型来预测位置,而不是完全基于未知wifi热点位置的定位算法,不需要进行大量的前期离线数据采集或者必须每一次定位都要计算反向传播参数的方法;
(2)根据接收到ap信号的不同情况区分定位区域,首先进行粗定位。所属子区域确定后采用加权模糊定位算法,提高在子区域内的定位准确度。
(3)联合非布置ap接入点,筛选后进行辅助定位,利用加权平均算法得到最终定位坐标,最终可以获得比之前wifi指纹算法预测模型更好的定位效果。
下面结合附图和实施例详细说明本发明的实施过程。
实施例
本发明提出了一种预先按圆模型设定ap的室内定位方法,其流程图如图8所示,它包含以下步骤。
步骤1:粗定位,按圆模型预先设定ap,对定位区域按可接受到ap信号划分,并在区域交点周围设置离线样点。具体包括如下步骤。
步骤1.1:根据室内大小,选取合适信号强度的ap。如图7所示,在8个房间的区域内放置9个ap,以信号接收最远距离为半径r,ap为圆心,如虚线圈所示作圆。根据信号重叠进行区域划分。在各个区域节点周围布置4个样点,并采集4个样点处可收集到不同ap的信号强度。建立离线定位数据库。
步骤1.2:在线定位阶段,我们将一小段时间内待测点接收到3次的信号值进行优选,取较为趋中的信号值。
步骤2:精确定位,具体包括如下步骤。
步骤2.1:如步骤1所示,t时刻p2点接受到的rssi序列为(rssia,rssib,rssih),位于区域2内。区域2内有三个样点。在线定位时利用模糊匹配算法,测量出待测点接收到的rssi值rs={ra,rb,rh}和指纹数据库同一区域内3个样点接收到的rssi值ri的偏差度。
di=|rs1-ri1|2 |rs2-ri2|2 |rs3-ri3|2
步骤2.2:根据三个样点亲密度加权系数b1,b2,b3计算待测点位置。三个样点的亲密度是a1,a2,a3。待测点位置(x,y)计算公式如下。
第1个样点对于位置定位贡献为:
第2个样点对于位置定位贡献为:
第3个样点对于位置定位贡献为:
xp2=b1xh b2xb b3xa
待测点p2坐标为:yp2=b1yh b2yb b3ya;
步骤3:结合非预设ap综合定位,如图9所示。
步骤3.1:判断非布置ap的信号强度是否接近位置指纹库的分布,从而判断是否进入二次位置判断。i(ap)为指纹库某样点采集到的各ap信号数据,rssi1为接收到编号为1的ap发射出来的信号,s1(ap)为待测点第一次采集到的各ap信号数据,并与数据库中采样点进行比较,判断待测点是否收集到设定ap的信号,若存在,则此定位数据可使用,若不存在,则此数据不能用来定位。
本发明提出了一种基于按圆模型预先设定ap位置的wifi定位算法。已知ap安放位置,因此该算法不需要人工预先进行大量的位置指纹数据库的采集以及模型的训练,且对wifi信号的强度无过高的要求。根据圆模型覆盖面积最大且覆盖无缝隙原则,将各ap均匀放置在圆的边径及圆心点上,根据接收到ap信号的不同情况划分区域。利用移动端的wifi功能,在待测点采集到来自不同ap的信号来源,首先根据预先区域划分进行粗定位。再根据接收到不同ap的信号强度大小,在粗定位子区域内采用加权模糊定位算法,得出较为精准的位置定位。并且对定位时可能接收到的非预设ap信号进行筛选,部分可用于定位,从而进一步提高定位精度,得到最终定位数据。根据实验结果表明,该算法的效率相比其它传统wifi算法,比如knn,wknn,bp神经网络算法等实时性有明显提高,能够在室内建筑中得到充分的利用,如火车站、商场、博物馆等。
1.一种基于预先设定ap位置的wifi定位算法,其特征在于,包括以下步骤:
预先根据室内环境按圆模型布置多个ap进行区域划分粗定位:基于数学模型建立按照圆设定ap位置的模型,在圆的边径以及圆心点上安置ap,根据不同ap信号的重叠情况对定位区域进行标记,然后根据标记好的区域划分对待测点进行粗定位,确定所属子区域;
子区域内采用加权模糊定位算法,对待测点进行细定位。
2.根据权利要求1所述的基于预先设定ap位置的wifi定位算法,其特征在于,预先根据室内环境按圆模型布置多个ap进行区域划分粗定位,具体方法为:
以90度为平均差值,5个ap分别位于中心圆的0度、90度、180度、270度以及圆中心点处,中心圆的半径为d,且d为ap发射信号能接收到的最远范围;
以中心圆上的四个点为圆心,半径同样为d,划分四个圆;
根据室内区域面积,采用上述方法建立圆模型,将室内区域划分为多个子区域;
根据待测点接收到的ap信息,确定待测点所属的子区域。
3.根据权利要求2所述的基于预先设定ap位置的wifi定位算法,其特征在于,当移动终端打开wifi后,接收来自周围ap发出的信息,包括ap的mac地址、ssid以及rssi信息;mac地址是ap的唯一标识,根据待测点处终端接收到的不同ap的mac地址,按照圆模型划分的wifi定位子区域表进行粗定位,判断出待测终端所属的子区域。
4.根据权利要求1所述的基于预先设定ap位置的wifi定位算法,其特征在于,子区域内采用加权模糊定位算法,对待测点进一步定位,具体方法为:
已知粗定位所属子区域后,选取该子区域边界内的样点,再根据样点与待测终端的相关度加权系数bi计算待测点位置;a、b、c点为待测点所属子区域边界内设置样点,o为无线终端实际位置;将o点接收到的rssi信号值与a、b、c样点收到信号值进行相关度计算,待测点位置(x,y)计算公式如下:
di=|rs1-ri1|2 |rs2-ri2|2 |rs3-ri3|2
di为粗定位所属区域内边界样点与待测点接收信号强度综合偏差度;
bi为ap相关度加权系数,ai为样点的相关度;
a点对于位置定位贡献为:
b点对于位置定位贡献为:
c点对于位置定位贡献为:
待测点o点的坐标为:
xo=b1x1 b2x2 b3x3
yo=b1y1 b2y2 b3y3
5.根据权利要求1所述的基于预先设定ap位置的wifi定位算法,其特征在于,待测点细定位后,对非预设ap进行筛选,联合筛选后的非预设ap进行定位,具体方法为:
i(ap)为数据库中采样点采集到的各ap信号数据,rssii为接收到编号为i的ap发射出来的信号,sj(ap)为待测点第j次采集到的各ap信号数据,并与数据库中采样点进行比较,判断待测点是否收集到设定ap的信号,若存在,则此定位数据可使用,若不存在,则此数据不能用来定位。
技术总结