本发明涉及一种室内定位方法。
背景技术:
近年来,获取位置信息的应用在市场上越来越受欢迎,人们对位置信息的准确度要求也越来越高。现有的室内定位技术可以分为两大类:基于测距的室内定位技术和基于非测距的室内定位技术,接收信号强度指示RSSI(Received Signal Strength Indication)模型是无线测距技术中受到较多关注的模型,其基本的测距思想是信号传播功率的衰减程度是关于信号传播距离的函数,如果已知定位区域内某处的信号强度值,结合具体的信号传播经验模型,即可得出该处的距离信息。而在已有的基于RSSI,根据距离信息得到待定位点的位置信息的方法中,三边算法最具代表性。
为进一步提高三边算法的定位精度,研究者们提出了各种各样的方案:为减小RSSI值波动对定位精度的影响,将待定位节点的可能位置分散在以参考节点为圆心的圆环区域内,但由于要对定位区域内所有的点进行概率计算,因此计算量较为庞大;通过减小三个定位圆的重叠区域的方法,在减小三个定位圆的重叠区域的同时,误差的存在,很可能将待定位点排除出重叠区域,因此这种办法对定位精度的提高意义不大。
技术实现要素:
针对现有技术中存在的问题,本发明的目的在于,提供一种室内定位方法,该方法能够准确实现目标的定位。
为了实现上述目的,本发明采用如下技术方案:
一种室内定位方法,包括以下步骤:
步骤1,根据待定位目标设定定位区域,在定位区域内随机选取多个参考点Pi,i=1,2,…,I,其中,I为参考点的总数;
步骤2,针对每个参考点,多次获取该参考点的RSSI值Rin,计算该参考点对应的所有RSSI值Rin的均值和方差;其中i=1,2,…,I,n=1,2,…,N,N为针对每个参考点,获取的该参考点的RSSI值的总次数;
步骤3,根据参考点对应的所有RSSI值Rin的均值和方差,求该参考点的等级值;采用公式(1)计算:
其中,ai为参考点Pi的等级值,mi为参考点Pi对应的所有RSSI值的均值,vi为参考点Pi对应的所有RSSI值的方差;
步骤4,根据参考点对应的所有RSSI值的均值和信号强度衰减模型计算参考点到待定位目标的距离;
步骤5,将所有参考点的等级值按照由大到小进行排序,选取等级值最高的三个参考点作为定位参考点;
步骤6,分别以三个定位参考点为圆心,以定位参考点到待定位目标的距离为半径作圆,三个圆形成一个重叠区域;求重叠区域的最小外接矩形,最小外接矩形内的所有位于重叠区域内的点形成点集Q,点集Q中的点分别为q1,q2,...qj,...qJ,其中,qj为点集Q中的第j个点,J为点集Q中的点的总数;
步骤7,计算点集Q中的每个点的初始等级值,采用的方法如下:
步骤7.1:对于点集Q中的点,计算该点到所有参考点中除去三个定位参考点的每个参考点的距离,若该点到所有参考点中除去三个定位参考点的每个参考点的距离小于或者等于参考点到待定位目标的距离,则将该点与该参考点对应的等级计算值记为1,否则记为0;
步骤7.2:按照公式(2)计算点集Q中的每个点的初始等级值:
其中,Yjm表示点qj与所有参考点中除去定位参考点的第m个参考点对应的等级计算值,bj表示点集Q中的点qj的初始等级值;
步骤8,将步骤7计算得到的所有初始等级值按照由大到小进行排序,在点集Q中选取初始等级值最高的K个点,形成点集S;
步骤9,判断点集S中的K个点的初始等级值是否均为I-3,若是,则求K个点的横坐标的平均值以及纵坐标的平均值,并将K个点的横坐标的平均值作为待识别目标的横坐标,将K个点的纵坐标的平均值作为待识别目标的纵坐标;否则,执行步骤10;
步骤10,计算点集S中的每个点的二次等级值:
其中,ck表示点集S中的第k个点的二次等级值,bk表示点集S中的第k个点的初始等级值,Ykm表示点集S中的第k个点与参考点中除去定位参考点的第m个参考点对应的等级计算值;
步骤11,计算点集S中的每个点的权重因子,采用公式(4)计算:
其中,wk表示点集S中的第k个点的权重因子,ck表示点集S中的第k个点的二次等级值;
步骤12,根据点集S中的每个点的权重因子,计算待定位目标的坐标(x,y),采用公式(5)计算:
其中,(xk,yk)为点集S中的第k个点的坐标。
具体地,所述步骤6中的求重叠区域的最小外接矩形,采用的方法如下:
重叠区域由点p1,点p2和点p3围成,求点p1,点p2和点p3的坐标;
求点p1和点p2之间的弧线的中点p12的坐标,点p1,点p3之间的弧线的中点p13的坐标,点p2,点p3之间的弧线的中点p23的坐标;
求点p1、点p2、点p3、点p12、点p13和点p23中横坐标的最小值x1,点p1、点p2、点p3、点p12、点p13和点p23中横坐标的最大值x2,点p1、点p2、点p3、点p12、点p13和点p23中纵坐标的最小值y1,点p1、点p2、点p3、点p12、点p13和点p23中纵坐标的最大值y2;
直线x=x1,x=x2,y=y1和y=y2围成的矩形即为最小外接矩形。
与现有技术相比,本发明具有以下技术效果:
本发明的方法通过对每个参考点多个采样,求取RSSI的均值和方差,结合均值和方差来给参考标签划分等级,不仅考虑到了环境复杂性导致的RSSI强度的衰减,也进一步减小了RSSI的波动性对定位精度的影响;充分考虑到了三圆重叠区域的每一个坐标点为待定位目标的坐标的可能性,尽可能让重叠区域的每一个坐标点都参与到待定位坐标的计算中,使得定位结果更加准确。
下面结合附图和具体实施方式对本发明的方案作进一步详细地解释和说明。
附图说明
图1是参考点选取示意图;
图2是最小外接矩形示意图;
图3是30个待定位目标示意图。
具体实施方式
本发明的室内定位方法,包括以下步骤:
步骤1,根据待定位目标设定定位区域,在定位区域内随机选取多个参考点Pi,i=1,2,…,I,其中,I为参考点的总数。
待定位目标携带RFID阅读器,在RFID阅读器的通信区域内选取长度和宽度均为L的矩形区域作为定位区域,待定位目标位于定位区域内。本实施例中,参考点选取有8个,分别为A,B,C,D,E,F,G和H,如图1所示。
步骤2,针对每个参考点,多次获取该参考点的RSSI值Rin,计算该参考点对应的所有RSSI值Rin的均值和方差;其中i=1,2,…,I,n=1,2,…,N,N为针对每个参考点,获取的该参考点的RSSI值的总次数。
每个参考点上设置一个RFID电子标签,RFID阅读器获取每个参考点的RSSI值。
步骤3,根据参考点对应的所有RSSI值Rin的均值和方差,求该参考点的等级值;采用公式(1):
其中,ai为参考点Pi的等级值,mi为参考点Pi对应的所有RSSI值的均值,vi为参考点Pi对应的所有RSSI值的方差。
步骤4,根据参考点对应的所有RSSI值的均值和信号强度衰减模型计算参考点到待定位目标的距离。采用的公式如下:
mi=RSSIi(d0)+10nlog(d/d0)+Xσ
其中,mi为参考点Pi对应的所有RSSI值的均值,,RSSIi(d0)表示参考点Pi对应的单位距离d0下的所有RSSI值的均值,n表示路径损耗指数,n越大,路径损耗则越大,不同环境下n的取值不同;Xσ是标准差为σ的正态随机变量。在本实施例中,d0=1m,n为2.5,σ的范围为3.0~14.1dB。
步骤5,将所有参考点的等级值按照由大到小进行排序,选取等级值最高的三个参考点作为定位参考点;本实施例中,等级值最高的三个参考点为A,B和C,即定位参考点为A,B和C。
步骤6,分别以三个定位参考点为圆心,以定位参考点到待定位目标的距离为半径作圆,三个圆形成一个重叠区域;求重叠区域的最小外接矩形,最小外接矩形内所有位于重叠区域内的点形成点集Q,点集Q中的点分别为q1,q2,...qj,...qJ,其中,qj为点集Q中的第j个点,J为点集Q中的点的总数。由于室内环境对RSSI值的影响,测量的三个定位参考节点到待定位目标的距离往往比实际值偏大,造成三个圆的半径比理论值偏大,因此三个圆很难交于一点,往往会互相重叠,出现三个交点,形成一个重叠区域。
步骤7,计算点集Q中的每个点的初始等级值,采用的方法如下:
步骤7.1:对于点集Q中的点,计算该点到所有参考点中除去三个定位参考点的每个参考点的距离,若该点到所有参考点中除去三个定位参考点的每个参考点的距离小于或者等于参考点到待定位目标的距离,则将该点与该参考点对应的等级计算值记为1,否则记为0;本实施例中,所有参考点中除去三个定位参考点的每个参考点为D、E、F、G和H。
步骤7.2:按照公式(2)计算点集Q中的每个点的初始等级值:
其中,Yjm表示点qj与参考点中除去定位参考点的第m个参考点对应的等级计算值。bj表示点集Q中的点qj的初始等级值。
步骤8,将步骤7计算得到的所有初始等级值按照由大到小进行排序,在点集Q中选取初始等级值最高的K个点,形成点集S,本实施中,K=10。
步骤9,判断点集S中的K个点的初始等级值是否均为I-3,若是,则求K个点的横坐标的平均值以及纵坐标的平均值,并将K个点的横坐标的平均值作为待识别目标的横坐标,将K个点的纵坐标的平均值作为待识别目标的纵坐标;否则,执行步骤10。
步骤10,计算点集S中的每个点的二次等级值:
其中,ck表示点集S中的第k个点的二次等级值,bk表示点集S中的第k个点的初始等级值,Ykm表示点集S中的第k个点与参考点中除去定位参考点的第m个参考点对应的等级计算值。
步骤11,计算点集S中的每个点的权重因子,采用公式(4)计算:
其中,wk表示点集S中的第k个点的权重因子,ck表示点集S中的第k个点的二次等级值。
步骤12,根据点集S中的每个点的权重因子,计算待定位目标的坐标(x,y),采用公式(5)计算:
其中,(xk,yk)为点集S中的第k个点的坐标。
具体地,在又一实施例中,步骤6中的求重叠区域的最小外接矩形,采用的方法如下:
重叠区域由点p1,点p2和点p3围成,求点p1,点p2和点p3的坐标;
求点p1和点p2之间的弧线的中点p12求点p1,点p2和点p3的坐标;点p1,点p3之间的弧线的中点p13的坐标;点p2,点p3之间的弧线的中点p23的坐标;
求点p1、点p2、点p3、点p12、点p13和点p23中横坐标的最小值x1,点p1、点p2、点p3、点p12、点p13和点p23中横坐标的最大值x2,点p1、点p2、点p3、点p12、点p13和点p23中纵坐标的最小值y1,点p1、点p2、点p3、点p12、点p13和点p23中纵坐标的最大值y2;这六个点如图2中的小菱形所示。
直线x=x1,x=x2,y=y1,y=y2围成的矩形即为最小外接矩形。
由于室内环境复杂性导致的RSSI强度的衰减,以及导致的RSSI的波动性,影响了定位方法的定位精度,而一般通过多次采样取RSSI均值的方法并不能很好的降低这种影响,本发明方法通过对每个参考标签多次采样,同时取RSSI的均值和方差,结合均值和方差来给参考标签划分等级,不仅考虑到了环境复杂性导致的RSSI强度的衰减,也进一步减小了RSSI的波动性对定位精度的影响。
本发明方法充分考虑到了三圆重叠区域的每一个坐标点为待定位点的可能性,尽可能让重叠区域的每一个坐标点都参与到待定位坐标的计算中;相比于现有的试图缩小三圆重叠区域的做法(因为误差的存在,可能将最有希望成为待定位目标的坐标点排除),本发明方法很好的确保了最有可能成为待定位点的坐标点在考虑范围内。
效果分析
为了验证本发明方法的性能,将本发明方法、传统的结合质心算法的三边算法和采用欧几里得距离加权的三边算法进行对比,比较三个方法的定位精度。定位精度采用定位误差来说明,定位误差越小,定位精度越高。定位误差的计算方法如下:
其中,(x,y)表示测得的待定位目标的坐标,(x0,y0)表示待定位目标的实际坐标。
仿真平台为MATLAB 8.2,设RFID的最大通信范围为L,随机从定位区域内选取30个待定位目标进行定位,如图3所示,图3中的数字表示待定位目标的标号。测距误差服从高斯分布,最终从点集S中选取K=10个点进行加权计算,来得到待定位目标的坐标。仿真结果如表1所示。
从仿真结果可以看出,本发明方法在对位于定位区域较边缘的点进行定位时,如第2个点、第8个点、第18个点,定位误差稍大,相比于传统的结合质心算法的三边算法、采用欧几里得距离加权的三边算法,对定位精度的提高情况不理想。但对于其他的待定位点,改进算法相比于其他两种算法,定位误差有了大幅度的减小,定位精度大大提高。
综合对比下来,本发明方法的平均定位误差为0.072,传统的结合质心算法的三边算法的平均定位误差为0.150,采用欧几里得距离加权的三边算法的平均定位误差为0.138。相比于传统的结合质心算法的三边算法,本发明方法的定位误差减小了50%以上,相比于采用欧几里得距离加权的三边算法,本发明方法的定位误差减小了约48%。
表1定位误差具体数据