一种基于指纹对的辅助定位方法与流程

文档序号:19580440发布日期:2019-12-31 19:56阅读:218来源:国知局
一种基于指纹对的辅助定位方法与流程

本发明涉及的是一种室内定位方法,具体地说是一种基于指纹对的辅助定位方法。



背景技术:

随着网络技术的发展,基于位置服务(location-basedservice,lbs)为人们生活提供了极大的便利,人们对于位置追踪和定位的需求也日益增加。在室外环境中,卫星定位和基站定位技术都已经相当成熟,精度也越来越高。然而人的大多数时间都是在室内进行活动的,在室内环境中,具有典型的非视距特性,gps信号受到阻挡会急速衰减,定位非常不准确。目前室内定位有基于测距的定位方法(如toa(timeofarrival)和tdoa(timedifferenceofarrival)等)、基于指纹的定位方法、基于移动传感器的定位方法(如行人航位推算(pedestriandeadreckoning,pdr))。其中,基于测距的定位方法,尤其是采用双曲线定位的tdoa方法,具有成本低、无需训练等优点,被广泛应用。而且与toa相比,具有更好的稳定性、且对测距误差相对不敏感。在室内环境中会有很多的障碍物遮挡,导致某些区域接收不到三个径的信息,无法通过toa或者tdoa进行定位,目前还没有很好的解决方法,只能通过pdr等手段粗略定位,定位精度较低。

虽然目前已有大量研究者研究了指纹定位技术,但是与本发明的指纹对方式具有显著的不同。第一方面解决的问题不同,ge等人利用指纹定位计算场景内所有区域的位置,没有单独考虑非视距区域的差异性。(gex,quz.optimizationwifiindoorpositioningknnalgorithmlocation-basedfingerprint[c]//20167thieeeinternationalconferenceonsoftwareengineeringandservicescience(icsess).ieee,2016:135-137.)而本发明提出的方法是解决非视距环境下的指纹定位,不考虑可视距的环境下的指纹定位计算。

第二方面,解决问题的方法不同,he等人比较了一些指纹定位的方法,这些方法在离线数据采集阶段都是记录一个参考点的rssi值作为一组数据,在线匹配阶段也是直接匹配几个点的rssi值(hes,chanshg.wi-fifingerprint-basedindoorpositioning:recentadvancesandcomparisons[j].ieeecommunicationssurveys&tutorials,2015,18(1):466-490.)而本发明提出的指纹对方法,将前一时刻的指纹同当前时刻一同记录为一组数据。匹配时也是参考实测阶段前一时刻的rssi值,与此时的rssi值一起匹配指纹库中的指纹对。



技术实现要素:

本发明的目的在于提供一种能够解决非视距区域定位问题的基于指纹对的辅助定位方法。

本发明的目的是这样实现的:

(1)在定位区域周围布置m个网元,在区域中划分n×n个网格,在网格的交叉点部署参考点,考查每个参考点接收的网元信息,如果参考点接收到的网元信号数量≤2,则将这些参考点划分成单独的区域,记录区域内参考点的rssi值和真实位置信息;

(2)将非视距区域分成p个互相不连通的子区域,计算非视距区域的邻接点集合,记录邻接点集合中每个参考点的rssi值;

(3)利用指纹建立离线指纹库,离线指纹库里存储的数据为,一个能接收到3个及以上径的指纹和距离这个指纹欧氏距离最近的只能接收2个及以下径的指纹组成的指纹对,用k-means聚类算法将指纹库中的指纹对进行分类,将实测到的指纹对匹配到相应的类,通过wknn算法计算位置坐标。

本发明还可以包括:

1.步骤(1)具体包括如下步骤:

(1.1)设场景中有m个网元,表示为α1,α2,…αm;n个参考点,表示为β1,β2,…βn,第i个参考点βi接收到网元的rssi信号为rssii=[rssii1,…,rssiij,…,rssiim],其中rssiij是指βi接收到αi的信号强度,j=1,…,m;第i个参考点βi的位置为si=[xi,yi];

(1.2)搜索所有参考点的rssi值,当网元信号弱于一个固定值u,则视为无效的定位信号,检测每个参考点接收所有网元的信号,如果参考点的有效网元信号数量≤2,则把它们加入到集合a中。

2.步骤(2)具体包括如下步骤:

(2.1)①在集合a中选择一个参考点βi,设两个参考点之间的最短距离为h,如果βi距离它为h的上下左右4个点和距离为的4个对角线上的点,一共8个参考点至少有一个在集合a中,则把与βi相邻的点和βi全部放入子集合a1中;②在集合a1中继续选择除βi的点,用上一步①的方法直到a1中的点不再增加;③继续选择集合a中不在a1中的点,重复前两步①和②,将所有参考点分到各自的子集中,集合a中一共p个集合,分别代表p个互相不连通的非视距区域,a=[a1,…,ap];

(2.2)分别求p个区域的邻接点集合,例如在ai中依次选择每一个参考点,计算每一个参考点距离为h的参考点接收的有效网元信号数量,如果接收有效网元信号的数量≥3,将这些参考点加入b1集合。这样p个邻接点集合可以表示为b=[b1,…,bp]。

3.步骤(3)分为两部分,首先,建立指纹对数据库,数据库中共有d个指纹对,先给出初始的k个聚类,用k-means聚类算法分配其他的d-k个坐标到k类,不断更新聚类中心直至不再变化;其次,在线定位阶段,用实测的指纹对匹配聚类中心,用类中的指纹对rssi值计算每个指纹对为待定位坐标贡献的权值,最终求得待定位位置。

4.步骤(3)具体包括如下步骤:

(3.1)从集合bi中选出一个指纹作为t-1时刻的指纹从对应的集合ai中找到离pt-1距离最近的指纹作为t时刻的指纹,数据库中共有d个指纹对,其中t时刻的位置si=[xi,yi],i=1,…,d,数据库中存放指纹对的所有信息为gi=[pi,si],i=1,…,d,数据库存放的数据g为:

(3.2)为k-means聚类算法设置初始的k个聚类,k=pm,p为独立区域的个数,m为网元个数,因为t时刻指纹只能接收不超过两个网元信息,所以初始聚类中心按rssi值的不同划分,指纹对的t时刻rssi值[rssii1,rssii2,0,…,0]为一个初始中心,指纹对的t时刻rssi值[0,0,rssij3,rssij4,…,0]为另一个聚类的初始中心,k个聚类中心的集合c=[p1,…,pk];

(3.3)把剩下的d-k个指纹对分到k个聚类中,c1,c2,…,ck,计算d-k个指纹对到k个聚类中心的欧氏距离,求出距离最近的ci,如果当l=i时,px距离ci的最小,则将px放入ci,px到ci的最小距离为:

(3.4)更新聚类中心,重新计算加入指纹对后的聚类中心,设ci中有n个指纹对,则新聚类中心为:

(3.5)重复(3.3)—(3.4),直到聚类中心不再改变,此时聚类收敛到极值,完成聚类;

(3.6)实测阶段,每次都保存t-1时刻指纹,一旦检测到t-1时刻接收超过2个有效网元信号,而t时刻接收没有超过2个有效网元信号,开始进行匹配,找到实测指纹对距离k个聚类中心最小的类ci,其中ci中包含n个指纹对,其位置指纹对的rssi值集合表示为:

(3.7)gn中有n个指纹对,令每个指纹对pi、i=1,…,k中各个rssi的均值和标准差si为:

(3.8)设n个指纹对进行数据估算的每个权重系数为其中i=1,…,n;

(3.9)对权重系数ωi,利用ci中各个指纹对位置进行加权求和,最终位置坐标为:

本发明涉及由于非视距环境引起的接收不到足够数量的网元信号无法采用双曲线定位的情况,从而设计一种基于指纹对的辅助定位方法。

本发明旨在解决室内定位中,由于室内非视距的影响,造成部分区域接收不到三个径的信息,没有办法利用toda进行定位,而现有的指纹定位方法并不能很好的解决非视距的问题。为解决上述问题,本发明提出一种基于指纹对的辅助定位方法,其主要思想就是通过指纹对匹配,解决接收不到三个径信息的区域的高精度定位问题。具体而言,利用在室内设置的多个网元,测量不同位置接收rssi信号的强度和位置坐标建立离线指纹库,并将上一时刻与当前时刻的指纹绑定成指纹对,在在线定位阶段利用测得的指纹数据匹配估算位置。

本发明考虑的是在非视距的影响下如何提高定位的精度,因此在场景中,能够接收到三个网元信息的区域,利用tdoa能够快速,方便的定位,不用训练指纹库,能够节约很多时间。所以在本发明中,只是针对非视距的区域进行定位算法上的改进。首先区分哪些区域是非视距的区域,在这些区域的内部和外围边缘找到相邻的参考点,组合成指纹对信息,与真实位置信息一起存放在数据库中。实测阶段测量t时刻rssi值的同时,保留上一时刻的rssi值,如果发现待定位点已经进入非视距的区域,将上一时刻的rssi值和当前时刻rssi值组成指纹对,开始在数据库中与数据库中指纹对进行匹配,求得最终的坐标。

本发明的基于指纹对的辅助定位方法的主要特点体现在:

(1)本发明考虑到了室内环境下的非视距影响,对传统的指纹定位做了改进,利用t-1时刻的rssi,建立一个存放数据为指纹对的指纹库,能够有效的修正位置坐标。

(2)本发明中一种基于指纹对的辅助定位方法,在非视距区域的定位中,定位结果准确。

附图说明

图1是本发明的基于指纹对的辅助定位方法得流程图。

图2是具体实施场景中非视距区域和指纹对采集示意图。

图3是指纹对数据库建立、k-means聚类和wknn算法匹配的示意图。

具体实施方式

本发明的基于指纹对的辅助定位方法,主要包括以下具体步骤:

(1)在定位区域周围布置m个网元,在区域中划分n×n个网格,在网格的交叉点部署参考点,考查每个参考点接收的网元信息,如果参考点接收到的网元信号数量≤2,则将这些参考点划分成单独的区域,记录区域内参考点的rssi值和真实位置信息。

(2)将非视距区域分成p个互相不连通的子区域,计算非视距区域的邻接点集合,记录邻接点集合中每个参考点的rssi值。

(3)利用指纹对信息建立离线指纹库。离线指纹库里存储的数据为,一个能接收到3个及以上径的指纹和距离这个指纹欧氏距离最近的只能接收2个及以下径的指纹组成的指纹对。用k-means聚类算法将指纹库中的指纹对进行分类,将实测到的指纹对匹配到相应的类,通过现有的wknn算法计算位置坐标。

前述步骤(1)的具体实现步骤如下:

(1.1)假设场景中有m个网元,表示为α1,α2,…αm,n个参考点;表示为β1,β2,…βn,第i个参考点βi接收到网元的rssi信号为rssii=[rssii1,…,rssiij,…,rssiim],其中rssiij是指βi接收到αi的信号强度,j=1,…,m;第i个参考点βi的位置为si=[xi,yi]。

(1.2)搜索所有参考点的rssi值,其中rssiij可以是任意值或为0,当网元信号弱于一个固定值u,则视为无效的定位信号。检测每个参考点接收所有网元的信号,如果参考点的有效网元信号数量≤2,则把它们加入到集合a中。

前述步骤(2)中具体实现步骤如下:

(2.1)将非视距区域分成p个互相不连通的子区域。①在集合a中选择一个参考点βi,设两个参考点之间的最短距离为h,如果βi距离它为h的上下左右4个点和距离为的4个对角线上的点,一共8个参考点至少有一个在集合a中,则把与βi相邻的点和βi全部放入子集合a1中。②在集合a1中继续选择除βi的点,用上一步的方法直到a1中的点不再增加。③继续选择集合a中不在a1中的点,重复前两步,将所有参考点分到各自的子集中。集合a中一共p个集合,分别代表p个互相不连通的非视距区域,a=[a1,…,ap]。

(2.2)分别求p个区域的邻接点集合,例如在ai中依次选择每一个参考点,计算每一个参考点距离为h的参考点接收的有效网元信号数量,如果接收有效网元信号的数量≥3,将这些参考点加入b1集合。这样p个邻接点集合可以表示为b=[b1,…,bp]。

前述步骤(3)中主要分为两个步骤,首先要建立指纹对数据库,数据库中共有d个指纹对,先给出初始的k个聚类,用现有的k-means聚类算法分配其他的d-k个坐标到k类,不断更新聚类中心直至不再变化。第二步是在线定位阶段,用实测的指纹对匹配聚类中心,用类中的指纹对rssi值计算每个指纹对为待定位坐标贡献的权值,最终求得待定位位置。具体实现步骤如下:

(3.1)指纹对数据库的建立,从集合bi中选出一个指纹作为t-1时刻的指纹从对应的集合ai中找到离pt-1距离最近的指纹作为t时刻的指纹。数据库中共有d个指纹对,其中t时刻的位置si=[xi,yi],i=1,…,d。因此,数据库中存放指纹对的所有信息为下式gi=[pi,si],i=1,…,d。数据库存放的数据g为:

(3.2)为k-means聚类算法设置初始的k个聚类,k=pm,p为独立区域的个数,m为网元个数,因为t时刻指纹只能接收不超过两个网元信息,所以初始聚类中心按rssi值的不同划分。例如,指纹对的t时刻rssi值[rssii1,rssii2,0,…,0]为一个初始中心,指纹对的t时刻rssi值[0,0,rssij3,rssij4,…,0]为另一个聚类的初始中心。k个聚类中心的集合c=[p1,…,pk]。

(3.3)把剩下的d-k个指纹对分到k个聚类中,c1,c2,…,ck,计算d-k个指纹对到k个聚类中心的欧氏距离,求出距离最近的ci,如果当l=i时,px距离ci的最小,,则将px放入ci。px到ci的最小距离为:

(3.4)更新聚类中心。重新计算加入指纹对后的聚类中心,设ci中有n个指纹对,则新聚类中心为:

(3.5)重复(3.3)—(3.4),直到聚类中心不再改变,此时聚类收敛到极值,完成聚类。

(3.6)实测阶段,每次都保存t-1时刻指纹,一旦检测到t-1时刻接收超过2个有效网元信号,而t时刻接收没有超过2个有效网元信号,开始进行匹配。找到实测指纹对距离k个聚类中心最小的类ci,其中ci中包含n个指纹对,其位置指纹对的rssi值集合表示为:

(3.7)gn中有n个指纹对,令每个指纹对pi(i=1,…,k)中各个rssi的均值和标准差si为:

(3.8)设n个指纹对进行数据估算的每个权重系数为其中(i=1,…,n)。

(3.9)对权重系数ωi,利用ci中各个指纹对位置进行加权求和,最终位置坐标为:

本发明旨在解决室内定位中,由于室内非视距的影响,造成部分区域接收不到三个径的信息,没有办法利用toda进行定位,而现有的指纹定位方法并不能很好的解决非视距的问题。为解决上述问题,本发明提出一种基于指纹对的辅助定位方法,其主要思想就是通过指纹对匹配,解决接收不到三个径信息的区域的高精度定位问题。下面结合附图举例对本发明进行详细说明。

图1展示了指纹对的定位流程,首先区分哪些区域是非视距的区域,在这些区域的内部和外围边缘找到相邻的参考点,组合成指纹对信息,与真实位置信息一起存放在数据库中。实测阶段测量t时刻rssi值的同时,保留上一时刻的rssi值,如果发现待定位点已经进入非视距的区域,将上一时刻的rssi值和当前时刻rssi值组成指纹对,开始在数据库中与数据库中指纹对进行匹配,求得最终的坐标。

本发明的一种基于指纹对的辅助定位方法,主要包括以下具体步骤:

(1.1)图2展示了定位具体场景,在区域中划分24×16个网格,在网格的交叉点部署参考点;定位区域中共有5个网元,表示为α1,α2,…α5,384个参考点,表示为β1,β2,…β384,第i个参考点βi接收到网元的rssi信号为rssii=[rssii1,…,rssii5],其中rssiij是指βi接收到αi的信号强度,第i个参考点βi的位置为si=[xi,yi]。

(1.2)搜索所有参考点的rssi值,其中rssiij可以是任意值或为0,当网元信号弱于一个固定值u,则视为无效的定位信号。检测每个参考点接收所有网元的信号,如果参考点的有效网元信号数量≤2,则把它们加入到集合a中。

(2.1)将非视距区域分成2个互相不连通的子区域。集合a1=(β100,β101,β102,β103,β123,β128,β147,β152,β171,β176,β196,β197,β198,β199)。集合a2=(β258,β259,β260,β261,β262,β280,β281,β286,β303,β308,β309,β310,β327,β328,β329,β330,β331)。所以集合a=[a1,a2]。

(2.2)分别求2个区域的邻接点集合,例如在a1中依次选择每一个参考点,计算每一个参考点距离为h的参考点接收的有效网元信号数量,如果接收有效网元信号的数量≥3,将这些参考点加入b1集合。b1=(β76,β77,β78,β79,β99,β104,β146,β153,β170,β177,β195,β200,β220,β221,β222,β223)。b2=(β233,β234,β235,β236,β237,β256,β257,β263,β279,β287,β302,β311,β326,β332,β333,β334,β350,β351,β352,β353,β354)这样2个邻接点集合可以表示为b=[b1,b2]。

(3.1)指纹对数据库的建立,从集合bi中选出一个指纹作为t-1时刻的指纹从对应的集合ai中找到离pt-1距离最近的指纹作为t时刻的指纹。数据库中共有d个指纹对,其中t时刻的位置si=[xi,yi],i=1,…,d。因此,数据库中存放指纹对的所有信息为下式gi=[pi,si],i=1,…,d。数据库存放的数据g为:

(3.2)为k-means聚类算法设置初始的k个聚类,k=10,因为t时刻指纹只能接收不超过两个网元信息,所以初始聚类中心按rssi值的不同划分。例如,指纹对的t时刻rssi值[rssii1,rssii2,0,0,0]为一个初始中心,指纹对的t时刻rssi值[0,0,rssij3,rssij4,0]为另一个聚类的初始中心。10个聚类中心的集合c=[p1,…,p10]。

(3.3)把剩下的d-10个指纹对分到10个聚类中,c1,c2,…,c10,计算d-10个指纹对到10个聚类中心的欧氏距离,求出距离最近的ci,如果当l=i时,px距离ci的最小,则将px放入ci。px到ci的最小距离为:

(3.4)更新聚类中心。重新计算加入指纹对后的聚类中心,设ci中有n个指纹对,则新聚类中心为:

(3.5)重复(3.3)—(3.4),直到聚类中心不再改变,此时聚类收敛到极值,完成聚类。

(3.6)实测阶段,每次都保存t-1时刻指纹,一旦检测到t-1时刻接收超过2个有效网元信号,而t时刻接收没有超过2个有效网元信息,开始进行匹配。找到实测指纹对距离10个聚类中心最小的类ci,其中ci中包含n个指纹对,其位置指纹对的rssi值集合表示为:

(3.7)gn中有n个指纹对,令每个指纹对pi(i=1,…,10)中各个rssi的均值和标准差si为:

(3.8)设n个指纹对进行数据估算的每个权重系数为其中(i=1,…,n)。

(3.9)对权重系数ωi,利用ci中各个指纹对位置进行加权求和,最终位置坐标为:

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1