基于无线传感器网络的分布式定位方法和无线传感器节点与流程

文档序号:15395621发布日期:2018-09-08 02:06阅读:272来源:国知局

本发明涉及定位技术领域,特别涉及一种基于无线传感器网络的分布式定位方法和无线传感器节点。



背景技术:

随着物联网技术的发展和广泛应用,人们对位置服务的要求越来越高。目前,广泛采用卫星定位系统来实现对移动终端的定位,例如gps(globalpositionsystem,全球定位系统)和北斗定位系统等。这类定位技术依赖于通信基础设施,在卫星信号被阻挡的室内环境或阴影区域无法使用。因此,出现了基于无线传感器网络的定位技术,其不依赖于通信基础设施,部署灵活,可以应用于室内或者地下空间等不存在通信基础设施的环境中进行相对定位。目前,基于无线传感器网络的定位技术精度较低,不能满足定位需求。



技术实现要素:

为了解决现有技术中的问题,本发明实施例提供了一种基于无线传感器网络的分布式定位方法和无线传感器节点。所述技术方案如下:

本发明实施例提供了一种基于无线传感器网络的分布式定位方法,所述无线传感器网络由多个无线传感器节点组建,所述多个无线传感器节点包括多个锚节点和多个目标节点,所述锚节点存储有自身的位置信息,所述方法包括:待定位目标节点广播定位请求报文并在设定时长内接收定位响应报文,所述待定位目标节点为所述多个目标节点中的任意一个,所述定位响应报文包括发送所述定位响应报文的锚节点的标识和位置信息;当接收到的所述定位响应报文的数量不少于三个,且接收到的所述定位响应报文所属的锚节点中至少有三个锚节点不在同一条直线上时,所述待定位目标节点采用超宽带飞行时间算法逐一测量自身与定位参考节点之间的距离,所述定位参考节点为所述待定位目标节点接收到的定位响应报文所属的锚节点;所述待定位目标节点根据所述定位参考节点的位置信息以及测量出的所述距离,基于粒子群优化算法估计所述待定位目标节点的位置,得到定位结果;将所述定位结果通过所述无线传感器网络上报给上位机监控系统。

在本发明实施例的一种实现方式中,所述待定位目标节点采用超宽带飞行时间算法逐一测量自身与定位参考节点之间的距离,包括:采用基于超宽带技术的双向飞行时间测量方法,逐一测量自身与各个所述定位参考节点之间的电报文飞行时间;将测得的所述电报文飞行时间分别与光速相乘,得到所述待定位目标节点与各个所述定位参考节点之间的距离。

在本发明实施例的另一种实现方式中,所述待定位目标节点根据所述定位参考节点的位置信息和所述距离,确定粒子群优化算法的搜索空间;所述待定位目标节点在所述搜索空间内初始化m个粒子并计算每个粒子的适应度值,m为大于1的整数;所述待定位目标节点基于所述每个粒子的适应度值,迭代更新各个所述粒子的位置;当粒子群优化算法搜索到粒子的适应度值小于设定阈值或所述迭代更新的次数达到设定的最大迭代次数时,所述待定位目标节点将搜索结果作为所述待定位目标节点的位置。

进一步地,所述待定位目标节点根据以下公式(1)确定所述搜索空间:

公式(1)中,(xi,yi)为第i个定位参考节点的坐标,di是测得的待定位目标节点与第i个定位参考节点之间的距离,n为定位参考节点的数量,min表示集合中的最小值,max表示集合中的最大值;

所述待定位目标节点根据公式(2)初始化m个粒子并根据公式(3)计算每个粒子的适应度值:

公式(2)和(3)中,(xi',yi')是第j个粒子的坐标,rand(1)产生[0,1]区间上服从均匀分布的随机数,m是粒子群的粒子个数,f(xj',yj')表示第j个粒子的适应度值,(xi,yi)是的第i个定位参考节点的坐标,di是待定位目标节点测得的自身与第i个定位参考节点之间的距离;

所述待定位目标节点按照公式(4)和(5)迭代更新各个粒子的位置:

公式(4)和(5)中,(vjx(k),vjy(k))是第j个粒子当前的速度向量,且vjx(0)=0,vjy(0)=0,(vjx(k+1),vjy(k+1))是粒子j更新的速度向量;(xj'(k),yj'(k))是第j个粒子的第k次位置更新后的坐标;(xj'(k+1),yj'(k+1))是第j个粒子第k+1次位置更新后的坐标;(pbestjx,pbestjy)是第j个粒子前k次迭代中的最优位置;(gbestx,gbesty)整个粒子群在前k次迭代中的最优位置;w是惯性权重;c1和c2是两个正常数;k是迭代索引。

在本发明实施例的另一种实现方式中,所述方法还包括:当所述待定位目标节点在所述设定时长内接收到的定位响应报文的数量少于三个,或者当所述待定位目标节点在所述设定时长内接收到的定位响应报文所属的锚节点中不存在至少三个不在同一条直线上的锚节点时,重新广播定位请求报文。

本发明实施例还提供了一种无线传感器节点,所述无线传感器节点包括:

超宽带射频模块,用于与无线传感器网络中的其他无线传感器节点之间进行报文收发,所述无线传感器网络由多个无线传感器节点组建,所述多个无线传感器节点包括多个锚节点,所述锚节点存储有自身的位置信息;

数据采集模块,用于采集所处环境的数据;

数据处理和控制模块,用于处理所述数据采集模块所采集来的数据,并控制所述超宽带射频模块广播定位请求报文并在设定时长内接收定位响应报文,所述定位响应报文包括发送所述定位响应报文的锚节点的标识和位置信息;当接收到的所述定位响应报文的数量不少于三个,且接收到的所述定位响应报文所属的锚节点中至少有三个锚节点不在同一条直线上时,控制所述超宽带射频模块采用超宽带飞行时间算法逐一测量自身与定位参考节点之间的距离,所述定位参考节点为所述超宽带射频模块接收到的定位响应报文所属的锚节点;根据所述定位参考节点的位置信息以及测量出的所述距离,基于粒子群优化算法估计所述待定位目标节点的位置,得到定位结果;控制所述超宽带射频模块将所述定位结果通过所述无线传感器网络上报给上位机监控系统;

电源模块,用于对所述超宽带射频模块、所述数据处理和控制模块以及所述数据采集模块供电。

进一步地,所述数据处理和控制模块用于控制所述超宽带射频模块采用基于超宽带技术的双向飞行时间测量方法,逐一测量自身与各个所述定位参考节点之间的电报文飞行时间;将测得的所述电报文飞行时间分别与光速相乘,得到所述待定位目标节点与各个所述定位参考节点之间的距离。

在本发明实施例的一种实现方式中,,所述数据处理和控制模块用于根据所述定位参考节点的位置信息和所述距离,确定粒子群优化算法的搜索空间;在所述搜索空间内初始化m个粒子并计算每个粒子的适应度值,m为大于1的整数;基于所述每个粒子的适应度值,迭代更新各个所述粒子的位置;当粒子群优化算法搜索到粒子的适应度值小于设定阈值或所述迭代更新的次数达到设定的最大迭代次数时,将搜索结果作为所述待定位目标节点的位置。

所述数据处理和控制模块用于根据以下公式(1)确定所述搜索空间:

公式(1)中,(xi,yi)为第i个定位参考节点的坐标,di是测得的待定位目标节点与第i个定位参考节点之间的距离,n为定位参考节点的数量,min表示集合中的最小值,max表示集合中的最大值;

根据公式(2)初始化m个粒子并根据公式(3)计算每个粒子的适应度值:

公式(2)和(3)中,(xi',yi')是第j个粒子的坐标,rand(1)产生[0,1]区间上服从均匀分布的随机数,m是粒子群的粒子个数,f(xj',yj')表示第j个粒子的适应度值,(xi,yi)是的第i个定位参考节点的坐标,di是待定位目标节点测得的自身与第i个定位参考节点之间的距离;

按照公式(4)和(5)迭代更新各个粒子的位置:

公式(4)和(5)中,(vjx(k),vjy(k))是第j个粒子当前的速度向量,且vjx(0)=0,vjy(0)=0,(vjx(k+1),vjy(k+1))是粒子j更新的速度向量;(xj'(k),yj'(k))是第j个粒子的第k次位置更新后的坐标;(xj'(k+1),yj'(k+1))是第j个粒子第k+1次位置更新后的坐标;(pbestjx,pbestjy)是第j个粒子前k次迭代中的最优位置;(gbestx,gbesty)整个粒子群在前k次迭代中的最优位置;w是惯性权重;c1和c2是两个正常数;k是迭代索引。

在本发明实施例的另一种实现方式中,所述数据处理和控制模块还用于当所述待定位目标节点在所述设定时长内接收到的定位响应报文的数量少于三个,或者当所述待定位目标节点在所述设定时长内接收到的定位响应报文所属的锚节点中不存在至少三个不在同一条直线上的锚节点时,控制所述超宽带射频模块重新广播定位请求报文。

本发明实施例提供的技术方案带来的有益效果是:

待定位目标节点通过广播定位请求报文并在设定时长内接收定位响应报文,当接收到的所述定位响应报文的数量不少于三个,且接收到的所述定位响应报文所属的锚节点中至少有三个锚节点不在同一条直线上时,所述待定位目标节点采用超宽带飞行时间算法逐一测量自身与定位参考节点之间的距离,并根据定位参考节点的位置信息以及测量出的所述距离,基于粒子群优化算法确定所述待定位目标节点的位置,可以准确确定出待定位目标节点的位置,定位精度较高。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种无线传感器节点的硬件结构示意图;

图2是本发明实施例提供的一种基于无线传感器网络的分布式定位方法的流程示意图;

图3是本发明实施例提供的一种基于pso算法估计待定位目标节点的位置的流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

为了便于理解本发明,下面先简单介绍一下本发明实施例中的无线传感器网络(wirelesssensornetworks,wsn)。该无线传感器网络由多个无线传感器节点组建。这多个无线传感器节点包括多个锚节点和多个目标节点,所述锚节点存储有自身的位置信息(即坐标),也就是说,锚节点为位置已知的无线传感器节点,而目标节点为位置未知的无线传感器节点。目标节点可以在无线传感器网络的覆盖区域内移动。

其中,无线传感器网络可以采用zigbee(紫蜂)技术组建,锚节点同时作为无线传感器网络中的路由节点(router),同时,其中一个锚节点作为zigbee网络中的协调节点(coordinator)(也可以称为主控节点)。协调节点负责zigbee网络的组建,并充当zigbee网络与上位机之间的网关,各个路由节点检测到的环境数据均通过无线传感器网络发送至该协调节点,经由协调节点发送给上位机监控系统,该上位机监控系统用于接收各个路由节点采集到的环境数据,以进行环境监测。同时,目标节点确定自身的位置后,也会将定位结果经wsn发送至该协调节点,经由协调节点发送给上位机监控系统,以进行定位。

无线传感器节点是wsn的基本单元,负责传感器数据的采集、处理以及传输,同时具有高精度距离测量功能。该无线传感器节点的硬件结构如图1所示,包括:数据采集模块21、数据处理和控制模块22以及超宽带射频模块23。其中,数据采集模块包括传感器211和模数转换器212,用于采集环境数据,环境数据包括但不限于温度、湿度、光照等,可以包括其中任意一种或多种,相应地,传感器包括但不限于温度传感器、湿度传感器、光照传感器等。数据处理和控制模块22可以包括微处理器,用于控制数据采集模块对数据进行采集,并对数据采集模块采集到的数据进行处理,以及控制超宽带射频模块23与其他无线传感器节点以及上位机进行信息交互。超宽带射频模块23可以包括uwb(ultrawideband,超宽带)射频芯片。

其中,射频芯片可以采用爱尔兰decwave公司的dw1000芯片,该芯片是一款高集成度,低功耗,ic兼容,带有cmos射频收发器的芯片,符合ieee802.15.4-2011超宽带标准。改模块集成了天线、射频电路、电源管理和时钟电路,可用于距离测量,并且支持高达6.8mbps的数据传输速率。

为了降低功耗,数据处理与控制模块22可以采用具有深度睡眠模式的低功耗单片机(例如stm32f105单片机),通过同步spi(serialperipheralinterface,串行外设接口)与超宽带射频模块23进行通信,并通过输出引脚对超宽带射频模块23进行休眠或唤醒控制。超宽带射频模块23的中断引脚连接单片机的输入引脚,产生中断信号时,通知单片机进行相应的中断处理。

进一步地,传感器211可以采用低功耗数字传感器,例如,温湿度复合传感器dht11,数字型光强度传感器bh1750等,单片机可以通过i2c总线读取并处理相应的传感器数据,并通过无线传感器网络将传感器数据传送到上位机。

当然,无线传感器节点还可以包括电源模块24,用于为前述各个模块供电。该电源模块可以采用电池供电,例如,可以采用a5型3.6v锂电池供电,以避免电源芯片带来的静态电流消耗。

为满足定位的准确性需求,以无线传感器网络覆盖区域内任意位置为中心,处于该中心处的无线传感器节点的uwb无线电有效通信范围内,至少存在3个不在同一条直线上的锚节点。

基于前述无线传感器网络,本发明实施例提供了一种分布式定位方法,应用于待定位目标节点,该待定位目标节点为可以为前述无线传感器节点中的任意一个。图2为该分布式定位方法的流程示意图,如图2所示,该分布式定位方法包括:

201:待定位目标节点判断待定位目标节点是否已加入无线传感器网络;

若待定位目标节点未加入无线传感器网络,则执行步骤202;若待定位目标节点已加入无线传感器网络,则执行步骤203。

需要说明的是,对于待定位目标节点而言,可以按照设定时间间隔进行一次定位,每次开始进行定位时,即重复执行图3所示流程。实现时,可以设置一个定时器,每当该定时器达到设定时间间隔值,即开始执行图3所示流程。

该步骤201可以由数据处理和控制模块实现。

202:待定位目标节点加入所述无线传感器网络。

该步骤202可以由数据处理和控制模块配合超宽带射频模块实现。

203:待定位目标节点广播定位请求报文。

相应地,在待定位目标节点的有效通信范围内的锚节点会接收到该定位请求报文,并发送定位响应报文,该定位响应报文包括发送该定位响应报文的锚节点的标识(例如网络id)和位置信息(即坐标)。

该步骤203可以由数据处理和控制模块配合超宽带射频模块实现。

204:待定位目标节点在设定时长内接收定位响应报文。

实现时,可以设置另一个定时器,在发送定位请求报文的同时,待定位目标节点启动该定时器,在该定时器对应的时间到达后,执行步骤205。

该步骤204可以由数据处理和控制模块配合超宽带射频模块实现。

205:待定位目标节点判断在设定时长内接收到的定位响应报文的数量是否不少于三个,且接收到的所述定位响应报文所属的锚节点中是否有至少三个不在同一条直线上的锚节点;当待定位目标节点在设定时长内接收到的定位响应报文不少于三个且接收到的所述定位响应报文所属的锚节点中有至少三个不在同一条直线上的锚节点时,执行步骤206;当待定位目标节点在设定时长内接收到的定位响应报文少于三个或接收到的所述定位响应报文所属的锚节点中没有至少三个不在同一条直线上的锚节点时,返回步骤203。

具体地,可以根据定位响应报文中的坐标来确定是否存在至少三个不在同一条直线上的锚节点。

实现时,该步骤205中的判断过程可以由数据处理和控制模块实现。

206:待定位目标节点采用超宽带飞行时间(ultrawidebandtimeofflight,uwb-tof)算法逐一测量自身与定位参考节点之间的距离。

其中,所述定位参考节点为所述待定位目标节点接收到的定位响应报文对应的锚节点。

该步骤206可以包括:采用基于超宽带技术的双向tof测量方法,逐一测量自身与各个所述定位参考节点之间的tof;将测量出的tof分别与光速相乘,得到所述待定位目标节点与各个所述定位参考节点之间的距离。

采用超宽带技术结合双向tof测量方法确定目标节点和定位参考节点之间的距离,精度高(可以达到15cm),可以有效提高最终定位精度。

实现时,该步骤206可以由前述数据处理和控制模块以及超宽带射频模块实现。

207:待定位目标节点根据所述定位参考节点的位置信息以及测量出的所述距离,基于pso(particleswarmoptimization,粒子群优化)算法估计所述待定位目标节点的位置,得到定位结果。

如图3所示,该步骤207可以包括:

2071:待定位目标节点根据所述定位参考节点的位置信息和所述距离,确定pso算法的搜索空间;

2072:待定位目标节点在所述搜索空间内初始化m个粒子并计算每个粒子的适应度值,m为大于1的整数;

2073:待定位目标节点基于所述每个粒子的适应度值,迭代更新各个所述粒子的位置;

2074:当pso算法搜索到粒子的适应度值小于设定阈值或所述迭代更新的次数达到设定的最大迭代次数时,待定位目标节点将搜索结果作为所述待定位目标节点的位置。

其中,设定阈值可以设置为tof测距最大误差,最大迭代次数可以根据定位的实时性要求确定,如10~15次。设定阈值和最大迭代次数可以根据距离测量精度和算法实时性要求确定,本发明对此不做限定。

步骤2071中,可以采用公式(1)确定pso算法的搜索空间:

公式(1)中,(xi,yi)为第i个定位参考节点的坐标,di是步骤206中测得的待定位目标节点与第i个定位参考节点之间的距离,n为定位参考节点的数量。min表示集合中的最小值,max表示集合中的最大值。

需要说明的是,由于待定位目标节点是可以移动的,所以在不同次的定位流程中,定位参考节点的数量可以相同也可以不同,具体使用的锚节点也可能是不同的(包括全部不同和部分不同),具体以接收到定位响应报文对应的锚节点为准,也就是说,公式(1)中的定位参考节点均指本次定位流程中所采用的锚节点。

步骤2072中,可以采用公式(2)初始化m个粒子,并根据公式(3)计算每个粒子的适应度值。

公式(2)和(3)中,(xi',yi')是第j个粒子的坐标,rand(1)产生[0,1]区间上服从均匀分布的随机数,m是粒子群的粒子个数,f(xj',yj')表示第j个粒子的适应度值,(xi,yi)是的第i个定位参考节点的坐标,di是待定位目标节点测得的自身与第i个定位参考节点之间的距离。即如果目标节点在第j个粒子的位置,那么这个位置与所有定位参考节点位置的距离和通过tof测量的距离的均方差,这个适应度值越小,粒子j的位置是目标节点所在位置的可能性越大。

步骤2073中,可以按照公式(4)和(5)迭代更新各个粒子的位置。

公式(4)和(5)中,(vjx(k),vjy(k))是第j个粒子当前的速度向量,(vjx(k+1),vjy(k+1))是粒子j更新的速度向量;(xj'(k),yj'(k))是第j个粒子的第k次位置更新后的位置;(xj'(k+1),yj'(k+1))是第j个粒子第k+1次位置更新后的位置;(pbestjx,pbestjy)是第j个粒子前k次迭代中的最优位置;(gbestx,gbesty)整个粒子群在前k次迭代中的最优位置;w是惯性权重,为[0,1]之间的小数;c1和c2是两个正常数,可取1.49;k是迭代索引,为1至最大迭代次数之间的正整数。pbestj和gbest根据计算得到的适应度值来选取,适应度值越小的粒子位置越优。

需要说明的是,所有的粒子的初始速度向量均为0,即vjx(0)=0,vjy(0)=0。

实现时,该步骤可以由前述数据处理和控制模块实现。

208:将定位结果通过wsn上报给上位机监控系统。

当然,在发送位置信息的同时还可以向上位机发送待定位目标节点检测到的环境数据。相应地,上位机接收到定位结果后,会对应保存待定位目标节点的标识和位置,并且还可以显示该定位结果。

实现时,该步骤208可以由前述数据处理和控制模块控制超宽带射频模块实现。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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