rssi室内定位算法原理_一种基于RSSI测距的室内定位方法与流程

本发明涉及室内定位领域,尤其涉及一种基于RSSI测距的室内定位方法。

背景技术:

室内无线定位,是指利用无线网络和定位终端提供待测节点位置、速度和方向等相关信息的服务。对于一个定位算法而言,评价其性能标准包括定位精度,节点密度,容错性和自适应性、功耗、成本等。目前,无线网络定位方法种类多,其中基于距离的定位技术大致有四种:基于信号传输时间(TOA),基于信号传输时间差(TDOA),基于信号到达角度(AOA)以及基于接收信号强度指示(RSSI)。

目前,基于RSSI的定位方法相比于其他三种定位技术有着节点无需增加额外的硬件设备,功耗低,成本低等优点,但实际的室内环境较为复杂,存在诸多干扰因素,而且标签节点可能处于移动状态,使得测距结果准确度较低,从而降低定位精确度。

技术实现要素:

为了解决上述问题,本发明提供一种基于RSSI测距的室内定位方法,采用多种优化形式的配合对计算的距离进行多重优化,确保测量距离的准确度,提升定位精确度。

为达到上述目的,本发明的技术方案是:一种基于RSSI测距的室内定位方法,包括如下步骤:

a、在定位区域内设置一个基站节点,多个子站节点及标签节点,将标签节点与待定位物体绑定,多个子站节点以正方形拓扑结构分布在定位区域内,并在服务器中配置子站节点的实际坐标值;

b、基站节点进行ZigBee网络组网,将子站节点和标签节点加入网络实现相互通讯;

c、标签节点进行数据广播,发送标签数据包,通过子站节点解析,再组成子站数据包后发送给基站节点;

d、基站节点对子站数据包进行解析校验,提取对应RSSI值,根据公式P(d)=P0-10*n*(lgd-lgd0)计算出标签节点与子站节点之间的距离d;其中P(d)代表距离d处的信号强度;P0为参考距离d0处测得的信号强度值,d0=1m;n为路径损耗因子,是一个常量;

e、利用卡尔曼滤波对步骤d计算的距离进行优化,降低误差波动引起的误差峰值;

f、利用迭代法对步骤e优化后的距离进行再次优化,获得精确的距离值上传给服务器;

g、服务器根据接收的距离值以及预存的子站节点坐标值,结合RSSI定位算法计算出待测节点的坐标值,实现定位。

优选的,所述步骤a中多个子站节点的分布方法包括:将定位区域分割成多个20*20m的正方形标准区域,以及多个尺寸小于20*20m的非标准区域,每个标准区域和非标准区域的的四个顶点均放置子站节点。

优选的,所述步骤c中标签数据包内容包括两个字节标识符,两个字节标签序号,一个字节当前数据包序号及一个字节校验位。

优选的,所述步骤c中子站数据包内容包括两个字节标识符,两个字节子站序号,两个字节标签序号,一个字节标签包序号,一个字节RSSI值及一个字节校验位。

优选的,所述步骤f中迭代法优化距离的步骤包括:

f1、记本次距离为dis_now,上次距离为dis_last,上上次距离为dis_last_last;

f2、判断上次数据是否出现过突变,如果出现则分别比较dis_now与dis_last和dis_last_last之间的差值,根据差值大小判断需上传的数据值,如果dis_now与dis_last差值的绝对值小于dis_now与dis_last_last差值的绝对值,则上传dis_now,否则上传dis_last_last;

f3、如果上次数据位未发生数据突变,则比较dis_now与dis_last之间的差值,如果差值在设定阈值范围内,则认为是正常抖动,上传dis_now,否则认为本次数据出现突变,上传dis_last;

f4、更新dis_last_last,dis_last的值,将dis_last的值赋给dis_last_last,dis_now的值赋给dis_last;

f5、循环执行步骤f1-f4。

有益效果,本发明揭示的一种基于RSSI测距的室内定位方法,具有如下有益效果:

子站节点在分布时采用正方形拓扑结构,控制节点距离小于20m,从而确保RSSI信号值的精度,确保后期RSSI算法的精确度;

针对初步计算得到的距离值进行卡尔曼滤波,消除突然出现的误差峰值,从而确保距离值的准确度,针对移动的标签情况或者干扰导致的标签漂移情况,采用迭代法对距离值进行对比修正,进一步确保上传至服务器的距离值的精确度,提升定位的精准度;

此外,针对RSSI测距模型易受外部环境干扰的问题提供一套加权质心算法,引入一个权值ω防止信息淹没现象,提高定位精度

附图说明:

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。

图1是本发明实施例中涉及的定位系统的空间布置原理框图;

图2为本发明实施例中涉及的卡尔曼滤波算法流程图;

图3为本发明实施例中涉及的迭代法优化流程图。

具体实施方式:

下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。

本发明所揭示的一种基于RSSI测距的室内定位方法,包括如下步骤:

a、在定位区域内设置一个基站节点,多个子站节点及标签节点(如图1所示),将标签节点与待定位物体绑定,多个子站节点以正方形拓扑结构分布在定位区域内,并在服务器中配置子站节点的实际坐标值;

子站节点具体的分布方法包括:将定位区域分割成多个20*20m的正方形标准区域,以及多个尺寸小于20*20m的非标准区域,每个标准区域和非标准区域的的四个顶点均放置子站节点;

b、基站节点进行ZigBee网络组网,将子站节点和标签节点加入网络实现相互通讯;

c、标签节点进行数据广播,向各个子站节点发送标签数据包,该标签数据包内容包括两个字节标识符,两个字节标签序号,一个字节当前数据包序号及一个字节校验位;

子站节点对标签数据包进行解析校验吗,然后加入子站信息后再组包形成子站数据包发送给基站节点,所述子站数据包内容包括两个字节标识符,两个字节子站序号,两个字节标签序号,一个字节标签包序号,一个字节RSSI值及一个字节校验位;

d、基站节点对子站数据包进行解析校验,提取对应RSSI值,根据统计模式公式P(d)=P0-10*n*(lgd-lgd0)计算出标签节点与子站节点之间的距离d;其中P(d)代表距离d处的信号强度;P0为参考距离d0处测得的信号强度值,d0=1m;n为路径损耗因子,是一个常量,一般在2~4之间;

e、步骤d在距离计算时,由于会受到外界环境干扰,这种外界干扰使得计算结果中出现误差波动范围比较集中,并且有时会有误差峰值,故而利用卡尔曼滤波降低忽然出现的误差峰值,并且对前一次数据进行统计,从而估算出现在的数据发展趋势,进而实现距离数据的优化,如图2所示,具体包括:

e1、创建信号能量测距状态模型:X(k)=AX(k-1)+BU(k-1)+W(k-1),其中X(k)是k时刻的系统状态,A为转改转移矩阵,属于系统参数,X(k-1)是预估k-1时刻的系统状态值,B是系统参数,U(k-1)是预估的k-1时刻系统状态控制量,W(k-1)为预估的k-1时刻的滤波噪声;

e2、采用自由空间模型对测距状态模型分析,建立观察模型方程:Z(k)=HX(k)+V(k),其中Z(k)是k时刻的测量值,H为测量系统参数,V(k)是k时刻测量噪声值;

e3、利用滤波进行预测和修正,其中:

预测过程为X(k|k-1)=AX(k-1|k-1)+BU(k),式中X(k|k-1)为用上一状态预测的结果;X(k-1|k-1)为上一状态最优的结果;U(k)为现在状态的控制量,系统结果更新后会更新对应的协方差P(k|k-1)=AP(k-1|k-1)AT+Q,式中P(k|k-1)是X(k|k-1)对应的协方差,P(k-1|k-1)是X(k-1|k-1)对应的协方差,AT表示A的转置矩阵;Q是W(k)的斜方差,现在有了当前状态的预测结果,那么再收集现在状态的测量值,结合预测值与测量值,就可以对当前测量值做一个最优估计值X(k|k);

修正过程为的到态下最优的估计值X(k|k),式中HT表示H的转置矩阵,R是V(k)的斜方差;

e4、最后更新k状态下X(k|k)的协方差P(k|k)=[I-K(k)H]P(k|k-1),其中I为1的矩阵,对于单模型但测量I=1。

f、利用迭代法对步骤e优化后的距离进行再次优化,获得精确的距离值上传给服务器,如图3所示,具体的步骤包括:

f1、记本次距离为dis_now,上次距离为dis_last,上上次距离为dis_last_last;

f2、判断上次数据是否出现过突变,如果出现则分别比较dis_now与dis_last和dis_last_last之间的差值,根据差值大小判断需上传的数据值,如果dis_now与dis_last差值的绝对值小于dis_now与dis_last_last差值的绝对值,则上传dis_now,否则上传dis_last_last;

f3、如果上次数据位未发生数据突变,则比较dis_now与dis_last之间的差值,如果差值在设定阈值范围内,则认为是正常抖动,上传dis_now,否则认为本次数据出现突变,上传dis_last;

f4、更新dis_last_last,dis_last的值,将dis_last的值赋给dis_last_last,dis_now的值赋给dis_last;

f5、循环执行步骤f1-f4;

g、服务器根据接收的距离值以及预存的子站节点坐标值,结合RSSI定位算法计算出待测节点的坐标值,实现定位。

所述步骤g的定位算法具体步骤包括:

g1、将标签节点与各个子站节点的距离值d1、d2…dn按照由小到大的顺序进行排序形成距离组;

g2、从排序后的距离组中提取前三个距离值d1、d2、d3,这三个距离值表示标签节点距三个最近子站节点的距离,通过这三个子站节点的坐标值O1(X1,Y1),O2(X2,Y2),O3(X3,Y3)计算三个子站节点相互之间的子站间距L12、L13、L23;

g3、依次将步骤g2计算的子站间距L12、L13、L23分别与预设阈值m对比,若某一子站间距超过预设阈值则剔除对应子站,从距离组提取第四个距离值d4,重复步骤g2,若都未超过预设阈值,则输出三个子站节点的坐标值O1(X1,Y1),O2(X2,Y2),O3(X3,Y3)以及标签节点到这三个子站的距离值d1、d2、d3;

g4、以三个子站节点坐标O1(X1,Y1),O2(X2,Y2),O3(X3,Y3)为原点,对应的距离值d1、d2、d3为半径画圆,建立加权质心模型,三个圆两两相交形成交点,其中子站节点O2与子站节点O3在子站节点O1内的交点为A,其坐标值为A(XA,YA),子站节点O1与子站节点O3在子站节点O2内的交点为B,其坐标值为B(XB,YB),子站节点O1与子站节点O2在子站节点O3内的交点为C,其坐标值为C(XC,YC),利用三个子站节点的坐标值以及半径值计算三个交点的坐标值,该计算可以参考现有计算方法;

g5、利用三个交点的坐标结合加权质心算法得到标签节点的坐标(X,Y),其中:

式中:ωA为交点A的加权值,且ωB为交点B的加权值,且ωC为交点C的加权值,且

本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。

你可能感兴趣的:(rssi室内定位算法原理)