发明内容
本发明主要解决的技术问题是提供一种传感网络目标定位方法,能够将不可靠的测量距离排除在对目标的定位计算之外,提高目标的定位的准确性,节约传感节点的计算资源。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种传感网络目标定位方法,包括第一传感节点接收来自至少一个第二传感节点的信息,其中,信息包括至少一个第二传感节点的节点标识及至少一个第二传感节点到目标的测量距离;第一传感节点将自身的节点标识和至少一个第二传感节点的节点标识组成标识集合;第一传感节点获取标识集合中的标识成员i的邻居标识,并组成邻居集合,其中,邻居标识属于标识集合中的标识成员,并且是标识集合中的标识成员i所对应传感节点的邻居节点的节点标识,i为标识集合中的标识成员的编号;第一传感节点判断邻居集合是否为空;若邻居集合为空,则第一传感节点判断标识集合中的标识成员i对应的测量距离是否小于或者等于感知半径,若是,则将标识集合中的标识成员i对应的测量距离加入测量距离集合,若邻居集合非空,则分别为邻居集合中的成员构建限定区域,限定区域重叠部份为估计区域,并且第一传感节点判断标识集合中的标识成员i对应的测量距离是否小于或者等于估计区域内两点间的最大距离和感知半径之间的最小值,若是,则将标识集合的成员i对应的测量距离加入测量距离集合;第一传感节点根据测量距离集合的成员的数量以及测量距离集合的成员对应的位置,计算当前时刻目标所在的估计位置。。
其中,限定区域为以邻居集合中的成员对应的位置为中心,以感知半径为半径的圆的外接正方形的区域。
其中,第一传感节点根据测量距离集合的成员的数量以及测量距离集合的成员对应的位置,计算当前时刻目标所在的估计位置的步骤包括:第一传感节点判断测量距离集合的成员的数量;若测量距离集合的成员的数量为一个,则第一传感节点以测量距离集合中的成员对应的估计区域的中心作为估计位置,并标记估计位置的参与度为一,若测量距离集合中的成员的数量为两个,则第一传感节点分别以测量距离集合中的成员对应的位置和测量距离进行双边定位,获得两个定位位置,并计算定位位置与测量距离集合中的成员对应的估计区域的中心之间的距离,以距离最小的一个定位位置作为估计位置,并标记估计位置的参与度为二,若测量距离集合中的成员的数量大于或者等于三个,则第一传感节点以测量距离集合的成员对应的位置和测量距离进行三边定位或者多边定位,获得估计位置,并标记估计位置的参与度为测量距离集合的成员的数量。
其中,第一传感节点计算当前时刻目标所在的估计位置,标记估计位置的参与度的步骤之后,还包括:第一传感节点判断估计位置的参与度;若参与度大于或者等于三,则第一传感节点获取目标的三个历史时刻的估计位置,所述三个历史时刻的估计位置包括当前时刻目标的估计位置及前两个时刻的目标的估计位置;若参与度小于三,则第一传感节点获取目标的三个历史时刻的估计位置,三个历史时刻的估计位置均为参与度大于三,且参与度都高于其他估计位置的参与度的估计位置;第一传感节点根据三个历史时刻的估计位置及时间间隔计算目标下一个时刻所在的预测位置。
其中,计算目标下一个时刻所在的预测位置的步骤包括:第一传感节点根据三个历史时刻的估计位置及时间间隔,获取目标的对应时间间隔内的纵向平均速度和横向平均速度,其中,纵向平均速度和横向平均速度通过以下计算方式得到:
(x1,y1)、(x2,y2)和(x3,y3)分别为所选取三个估计位置的坐标,并且估计位置(x3,y3)对应的时刻离目标当前时刻最近,估计位置(x1,y1)对应的时刻离目标当前时刻最远,Δt为时间间隔,v′x为目标在估计位置(x1,y1)和估计位置(x2,y2)之间的平均横向速度,v″x为目标在估计位置(x3,y3)和估计位置(x2,y2)之间的平均横向速度,y′x为目标在估计位置(x1,y1)和估计位置(x2,y2)之间的平均纵向速度,y″x为目标在估计位置(x3,y3)和估计位置(x2,y2)之间的平均纵向速度;
第一传感节点根据目标的纵向平均速度和横向平均速度,获取目标的纵向加速度和横向加速度,其中,纵向加速度和横向加速度通过以下计算方式得到:
ax和ay分别为目标的横向加速度和纵向加速;
第一传感节点根据目标的纵向加速度和横向加速度,计算目标下一个时刻所在的预测位置,其中,预测位置通过以下计算方式得到:
x和y分别预测位置的横坐标和纵坐标,Δt2为目标一下时刻与目标在估计位置(x3,y3)的时刻之间的时间间隔。
其中,第一传感节点计算目标下一个时刻的预测位置的步骤之后,还包括:第一传感节点广播目标的估计位置及下一个时刻所在的预测位置。
其中,第一传感节点接收来自至少一个第二传感节点的信息的步骤之前,还包括:第一传感节点根据自身电能和或自身到目标的预测位置的距离,广播通知,以使至少一个第二传感节点接收通知后,标记第一传感节点为主节点,自身为从属节点。
为解决上述技术问题,本发明采用的另一个技术方案是:提供一种传感节点,包括接收模块,用于接收来自至少一个第二传感节点的信息,其中,信息包括至少一个第二传感节点的节点标识和至少一个第二传感节自身到目标的测量距离;组合模块,用于将传感节点的节点标识与至少一个第二传感节点的节点标识组成标识集合;第一获取模块,用于获取标识集合中的标识成员i的邻居标识,并组成邻居集合,其中,邻居标识属于标识集合中的标识成员,并且是标识集合中的标识成员i所对应传感节点的邻居节点的节点标识,i为标识集合中的标识成员的编号;第一判断模块,用于判断邻居集合是否为空;第二判断模块,用于在第一判断模块判断到邻居集合为空时,判断标识集合中的标识成员i对应的测量距离是否小于或者等于感知半径;限定区域构建模块,用于在第一判断模块判断到邻居集合非空时,分别为邻居集合的成员构建限定区域,限定区域重叠的部份为估计区域;第三判断模块,用于判断标识集合中的标识成员i对应的测量距离是否小于或者等于估计区域内两点间的最大距离和感知半径之间的最小值;添加模块,用于在第二判断模块判断到标识集合中的标识成员i对应的测量距离小于或者等于感知半径时,或者第三判断模块判断到标识集合中的标识成员i的测量距离小于或者等于估计区域内两点间的最大距离和感知半径之间的最小值时,将标识成员i对应的测量距离加入测量距离集合;计算模块,用于根据测量距离集合的成员的数量以及测量距离集合的成员对应的位置,计算当前时刻目标所在的估计位置。
其中,限定区域为以邻居集合的成员对应的位置为中心,以感知半径为半径的圆的外接正方形的区域。
其中,计算模块包括:第四判断单元,用于判断测量距离集合中的成员的数量;第一计算单元,用于在第四判断单元判断到距离集合中的成员的数量为一个时,则计算测量距离集合的成员对应的估计区域的中心,并以估计区域的中心作为估计位置,并标记估计位置的参与度为一;第二计算单元,用于在第四判断单元判断到距离集合中的成员的数量为两个时,则分别以测量距离集合中的成员对应的位置和测量距离进行双边定位,获得两个定位位置,并计算定位位置与测量距离集合中的成员对应的估计区域的中心之间的距离,且以距离最小的一个定位位置作为估计位置,并标记估计位置的参与度为二;第三计算单元,用于在第四判断单元判断到测量距离集合的成员的数量大于或者等于三个时,则以测量距离集合的成员对应的位置和测量距离进行三边定位或者多边定位,获得估计位置,并标记估计位置的参与度为测量距离集合的成员的数量。
其中,传感节点还包括:第五判断模块,用于判断估计位置的参与度;第二获取模块,用于在第五判断模块判断到参与度大于或者等于三时,获取目标的三个历史时刻的估计位置,三个历史时刻的估计位置包括当前时刻目标的估计位置及前两个时刻的目标的估计位置;第三获取模块,用于在第五判断模块判断到参与度小于三时,获取目标的三个历史时刻的估计位置,三个历史时刻的估计位置均为参与度大于三,且参与度都高于其他估计位置的参与度的估计位置;第四计算模块,用于根据三个历史时刻的估计位置及时间间隔计算目标下一个时刻所在的预测位置。
其中,第四计算单元具体包括:平均速度计算单元,用于根据三个历史时刻的估计位置及时间间隔,获取目标的对应时间间隔内的纵向平均速度和横向平均速度,其中,纵向平均速度和横向平均速度通过以下计算方式得到:
(x1,y1)、(x2,y2)和(x3,y3)分别为所选取三个估计位置的坐标,并且估计位置(x3,y3)对应的时刻离目标当前时刻最近,估计位置(x1,y1)对应的时刻离目标当前时刻最远,Δt1为时间间隔,v′x为目标在估计位置(x1,y1)和估计位置(x2,y2)之间的平均横向速度,v″x为目标在估计位置(x3,y3)和估计位置(x2,y2)之间的平均横向速度,y′x为目标在估计位置(x1,y1)和估计位置(x2,y2)之间的平均纵向速度,y″x为目标在估计位置(x3,y3)和估计位置(x2,y2)之间的平均纵向速度;
加速度计算单元,用于根据目标的纵向平均速度和横向平均速度,获取目标的纵向加速度和横向加速度,其中,纵向加速度和横向加速度通过以下计算方式得到:
ax和ay分别为目标的横向加速度和纵向加速;
预测位置计算单元,用于根据目标的纵向加速度和横向加速度,计算目标下一个时刻所在的预测位置,其中,预测位置通过以下计算方式得到:
x和y分别预测位置的横坐标和纵坐标,Δt2为目标一下时刻与目标在估计位置(x3,y3)的时刻之间的时间间隔。
其中,传感节点还包括:广播模块,广播模块,用于广播目标的估计位置及目标下一个时刻所在的预测位置。
其中,传感节点还包括通知模块,用于根据自身到目标的预测位置的距离与自身能量之和或者自身能量,广播通知,以使至少一个第二传感节点接收通知后,标记第一传感节点为主节点,自身为从属节点。
本发明的有益效果是:区别于现有技术的情况,本发明获取既是传感节点的邻居节点,又与传感节点同时感知到目标的节点,并组成邻居集合。判断邻居集合是否为空。若邻居集合非空,则可分别为邻居集合的成员构建限定区域,限定区域的重叠部份为估计区域。其中,传感节点与邻居集合的成员均相邻,则传感节点必定在估计区域内,邻居集合的成员均感知到目标,则目标也必定在估计区域内,因此,传感节点的测量距离必定小于或者等于估计区域内两点间的最大距离,并且小于或者等于感知半径。则可通过判断传感节点的测量距离是否小于或者等于估计区域内两点间的最大距离与感知半径之间的最小值的方式,判断传感节点的测量距离是否可靠,并把不可靠的测量距离排除在对目标的定位计算之外。传感节点的最大测量距离为感知半径的长度。若邻居集合为空,则通过判断传感节点的测量距离是否小于或者等于感知半径的方式,判断传感节点的测量距离是否可靠,并把不可靠的测量距离排除在对目标的定位计算之外。本发明仅使用可靠的测量距离进行目标定位计算,提高目标定位的准确性。并且在目标定位计算之前,就把不可靠的测量距离筛选掉,不需要在目标定位计算之后,再对目标的位置进行修正,减少传感节点的计算工作量,节约传感节点的计算资源。
具体实施方式
下面结合附图和实施方式对本发明进行详细说明。
请参阅图1,图1是本发明传感网络目标定位方法第一实施方式的流程图。如图所示,所述方法包括:
步骤S100:第一传感节点接收来自至少一个第二传感节点的信息,其中,信息包括至少一个第二传感节点的节点标识及至少一个第二传感节点到目标的测量距离;
传感节点为传感网络中的基本单元,多个传感节点组成传感网络,并且传感节点具有计算、存储和通信功能。传感节点间通过相互协作,确定进入传感网络内的目标的位置。无线信号强度随着传播距离的增加而衰减,并且无线信号强度与传播距离存在特定的函数关系。本发明实施方式中,传感节点通过计算接收到的信号强度RSSI值(ReceivedSignalStrength Indication,接收的信号强度指示),确定目标到传感节点间的测量距离。当然,传感节点也可以通过其他方式,确定目标到传感节点间的测量距离,例如:激光测距离、声波测距离等。节点标识为传感网络中的传感节点的标记。其中,第一传感节点与至少一个第二传感节点均在同一时刻内感知到半径。
步骤S101:第一传感节点将自身的节点标识和至少一个第二传感节点的节点标识组成标识集合。
步骤S102:第一传感节点获取标识集合中的标识成员i的邻居标识,并组成邻居集合,其中,邻居标识属于标识集合中的标识成员,并且是标识集合中的标识成员i所对应传感节点的邻居节点的节点标识,i为标识集合中的标识成员的编号;
传感节点的邻居节点指在传感节点的感知半径范围内的其他传感节点。第一传感节点和至少一个第二传感节点可预先分别与其相邻的传感节点交换邻节点表,其中,邻节点表包括邻居节点的节点标识及邻居节点的位置,或者,第一传感节点在步骤S102之前,向至少一个第二传感节点发送信号,使至少一个第二传感节点分别向第一传感节点发送其自身的邻节点表,使得第一传感节点就可根据自身的邻节点表及邻居节点的邻节点表确定标识集合中的标识成员i的邻居节点的节点标识。
步骤S103:第一传感节点判断邻居集合是否为空,若是,则进入步骤S104,否则进入步骤S105;
步骤S104:第一传感节点判断标识集合的标识成员i的测量距离是否小于或者等于感知半径,若是,则进入步骤S107;
在步骤S103判断到邻居集合为空时,则说明标识集合中的标识成员i对应的传感节点的邻居节点均没有感知到目标,则可直接判断标识集合中的标识成员i的测量距离是否小于或者等于感知半径即可。
步骤S105:第一传感节点分别为邻居集合中的成员构建限定区域,其中,限定区域重叠部份为估计区域;
在本发明实施方式中,限定区域为以邻居集合中的成员对应的位置为中心,以感知半径R为半径的圆的外接正方形的区域。如图2所示,若邻居集合中的成员对应为传感节点A、传感节点B及传感节点C,则分别为传感节点A、传感节点B及传感节点C构建限定区域,填充部份为估计区域。当然,限定区域的构造方式不限上述方式,例如:限定区域也可以为以邻居集合中的成员对应的位置为中心,以感知半径R为半径的圆形的区域。如图3所示,若邻居集合中的成员对应为传感节点A、传感节点B及传感节点C,则分别为传感节点A、传感节点B及传感节点C构建限定区域,填充部份为估计区域。
步骤S106:第一传感节点判断标识集合中的标识成员i对应的测量距离是否小于或者等于估计区域内两点间的最大距离和感知半径之间的最小值,若是,则进入步骤S107;
邻居集合中的成员均为标识集合中的标识成员i对应传感节点的邻居节点的节点标识,估计区域为标识成员i对应传感节点的邻居节点的限定区域的重叠部份,则标识集合中的标识成员i对应的传感节点必定在估计区域内。邻居集合中的成员对应的传感节点均在同一时刻感知到目标,则目标也必定在估计区域内。因此,目标与标识集合中的标识成员i对应的传感节点的距离必定小于或者等于估计区域内两点间的最大距离,并且小于或者等于感知半径。
步骤S107:第一传感节点将标识集合中的标识成员i对应的测量距离加入测量距离集合。
第一传感节点筛选出可靠的测量距离,并将不可靠的测量距离排除在对目标的定位计算之外。
步骤S108:第一传感节点根据测量距离集合的成员的数量及测量距离集合的成员对应的位置,计算当前时刻目标所在的估计位置;
在本发明实施方式中,获取传感节点的邻居节点,并从邻居节点获取与传感节点同一时刻感知到的目标的节点,并组成邻居集合;判断邻居集合是否空,若是,则判断传感节点的测量距离是否小于或者等于感知半径。由于传感节点的最大测量距离为感知半径的长度,若传感节点的测量距离大于感知半径,则说明该传感节点的测量距离不可靠,可直接排除在定位计算之外。若判断到邻居集合非空,则可分别为邻居节点的成员构建限定区域,限定区域的重叠部份为估计区域,判断传感节点的测量距离是否小于或者等于估计区域内两点间的最大距离与感知半径之间的最小值。由于传感节点与邻居集合的成员均相邻,则传感节点必定在估计区域内,邻居节点的成员均感知到目标,则目标也必定在估计区域内。因传感节点的测量距离必定小于或者等于估计区域内两点间的最大值,并小于或者等于感知半径。若传感节点的测量距离大于估计区域内两点间的最大距离或者感知半径,则说明该传感节点的测量距离不可靠,可直接排除在对目标的定位计算之外。仅使用可靠的测量距离进行目标定位计算,提高目标定位的准确性。并且在目标定位计算之前,就把不可靠的测量距离筛选掉,不需要在目标定位计算之后,再对目标的位置进行修正,减少传感节点的计算工作量,节约传感节点的计算资源。
请参阅图4,图4是本发明传感网络目标定位方法第二实施方式的流程图。如图所示,所述方法包括:
步骤S200:第一传感节点根据自身电能和或自身到目标的预测位置的距离,广播通知,以使至少一个第二传感节点接收通知后,标记第一传感节点为主节点,自身为从属节点。
电能为第一传感节点的电量。第一传感节点感知到目标后,查询是否有目标的预测位置,若有,则计算自身到目标的预测位置的距离和或自身电量,并在完成计算后,广播通知,至少一个第二传感节点接收到通知后,停止计算,并标记第一传感节点为主节点,自身为从属节点。
步骤S201:第一传感节点接收来自至少一个第二传感节点的信息,其中,信息包括至少一个第二传感节点的节点标识及至少一个第二传感节点到目标的测量距离。
传感节点为传感网络中的基本单元,并且传感节点具有计算、存储和通信功能。传感节点可根据接收到的信号强度RSSI值,计算自身到目标的距离。当然,传感节点也可通过激光测距离、声波测距离等方式,计算传感节点与目标的距离。
步骤S202:第一传感节点将自身的节点标识和至少一个第二传感节点的节点标识组成标识集合;
步骤S203:第一传感节点获取标识集合中的标识成员i的邻居标识,并组成邻居集合,其中,邻居标识属于标识集合中的标识成员,并且是标识集合中的标识成员i所对应的传感节点的邻居节点的节点标识,i为标识集合的标识成员的编号;
若传感节点与另一传感节点的距离小于或者等于感知半径,则传感节点与另一传感节点互为邻居节点。其中,可使第一传感节点和至少一个第二传感节点预先分别与其相邻的传感节点交换邻节点表,或者,至少一个第二传感节点分别将自身的邻节点表发送到第一传感节点,使得第一传感节点就可根据自身的邻节点表及邻居节点的邻节点表确定标识集合中的标识成员i对应的传感节点的邻居节点的节点标识。
步骤S204:第一传感节点判断邻居集合是否为空,若是,则进入步骤S205,否则,进入步骤S206;
步骤S205:第一传感节点判断标识集合中的标识成员i对应的测量距离是否小于或者等于感知半径,若是,则进入步骤S208;
传感节点的最大测量距离必定小于或者等于感知半径,若传感节点的测量距离大于感知半径,则说明该传感节点的测量距离有误,如果采用该传感节点的测量距离进行定位计算,会造成定位偏差。
步骤S206:第一传感节点分别为邻居集合中的成员构建限定区域,其中,限定区域重叠部份为估计区域;
其中,限定区域可以为以邻居集合中的成员对应的位置为中心,以感知半径R为半径的圆的外接正方形的区域,如图2所示。当然,限定区域的构造方式不仅限于上述方式,例如:限定区域也可以为以邻居集合中的成员对应的位置为中心,以感知半径R为半径的圆形的区域,如图3所示。
步骤S207:第一传感节点判断标识集合中的标识成员i对应的测量距离是否小于或者等于估计区域内两点间的最大距离和感知半径之间的最小值,若是,则进入步骤S208;
标识集合的成员i与目标必定在估计区域内,因此,目标与标识集合的成员i的距离必定小于或者等于估计区域内两点间的最大距离,并且小于或者等于感知半径。
步骤S208:第一传感节点将标识集合中的标识成员i对应的测量距离加入测量距离集合。
第一传感节点筛选出可靠的测量距离,并将不可靠的测量距离排除在对目标的定位计算之外。
步骤S209:第一传感节点判断测量距离集合的成员的数量,若测量距离集合的成员的数量为一个,则进入步骤S210,若测量距离集合的成员的数量为两个,则进入步骤S211,若测量距离集合的成员的数量为三个或者三个以上,则进入步骤S212;
步骤S210:第一传感节点以测量距离集合的成员对应的估计区域的中心作为估计位置,并标记估计位置的参与度为一;
取邻居集合中成员的横坐标与感知半径之差的最小值为估计区域的左下角横坐标,取邻居集合中成员的纵坐标与感知半径之差的最大值为估计区域的左下角纵坐标,取邻居集合中成员的横坐标与感知半径之和的最小值为估计区域的右上角横坐标,取邻居集合中成员的纵坐标与感知半径之和的最小值为估计区域的右上角纵坐标。请再次参阅图2,若测量距离集合的成员对应的邻居集合的成员为A,B,C,并且成员A的坐标为(XA,YA),成员B的坐标为(XB,YB),成员C的坐标为(XC,YC),则估计区域的左下角坐标(X1,Y1)及右上角坐标(X2,Y2)通过以下计算方式得到:
X1=Max(XA-R,XB-R,XC-R)
Y1=Max(YA-R,YB-R,YC-R)
X2=Min(XA+R,XB+R,XC+R)
Y2=Min(YA+R,YB+R,YC+R)
则估计区域的中心位置为(X,Y)通过以下的计算方式得到:
步骤S211:第一传感节点分别以测量距离集合中的成员对应的位置和测量距离进行双边定位,获得两个定位位置,并计算定位位置与测量距离集合中的成员对应的估计区域的中心之间的距离,并以距离最小的定位位置作为估计位置,并标记估计位置的参与度为二;
步骤S212:第一传感节点以测量距离集合的成员对应的位置和测量距离进行三边定位或者多边定位,获得估计位置,并标记估计位置的参与度为测量距离集合的成员的数量。
步骤S213:第一传感节点根据估计位置的参与度,计算目标下一时刻所在的预测位置;
在本发明实施方式中,步骤S213又可包括:
子步骤S2131:第一传感节点判断估计位置的参与度,若参与度大于或者等于三,则进入子步骤S2132,否则,进入子步骤S2133;
子步骤S2132:第一传感节点获取目标的三个历史时刻的估计位置,所述三个历史时刻的估计位置包括当前时刻目标的估计位置及前两个时刻的目标的估计位置;
传感网络内的传感节点完成对目标定位后,会广播相关的参数,例如:目标的坐标、当前时间等等。因此,第一传感节点能够获取目标的历史数据。其中,第一传感节点获取到目标前两个时刻的估计位置,与当前估计位置组成估计位置组,估计位置组中的估计位置的时间间隔均相同,并且为标准时间间隔。
子步骤S2133:第一传感节点获取目标三个历史时刻的估计位置,三个历史时刻的估计位置均为参与度大于三,参与度都高于其他估计位置的参与度的估计位置;
三个历史时刻的估计位置中的估计位置间的时间间隔均相同。
子步骤S2134:第一传感节点根据三个历史时刻的估计位置及时间间隔计算目标下一个时刻所在的预测位置。
在本发明实施方式中,子步骤S2134又包括:
子步骤S21341:第一传感节点根据三个历史时刻的估计位置及时间间隔,获取目标的对应时间间隔内的纵向平均速度和横向平均速度,其中,纵向平均速度和横向平均速度通过以下计算方式得到:
(x1,y1)、(x2,y2)和(x3,y3)分别为先取三个估计位置的坐标,并且估计位置(x3,y3)对应的时刻离目标当前时刻最近,估计位置(x1,y1)对应的时刻离目标当前时刻最远,Δt1为时间间隔,v′x为目标在估计位置(x1,y1)和估计位置(x2,y2)之间的平均横向速度,v″x为目标在估计位置(x3,y3)和估计位置(x2,y2)之间的平均横向速度,y′x为目标在估计位置(x1,y1)和估计位置(x2,y2)之间的平均纵向速度,y″x为目标在估计位置(x3,y3)和估计位置(x2,y2)之间的平均纵向速度。
子步骤S21342:第一传感节点根据目标的纵向平均速度和横向平均速度,获取目标的纵向加速度和横向加速度,其中,纵向加速度和横向加速度通过以下计算方式得到:
ax和ay分别为目标的横向加速度和纵向加速;
子步骤S21343:第一传感节点根据目标的纵向加速度和横向加速度,计算目标下一个时刻所在的预测位置,其中,预测位置通过以下计算方式得到:
x和y分别预测位置的横坐标和纵坐标,Δt2为目标一下时刻与目标在估计位置(x3,y3)的时刻之间的时间间隔。
步骤S214:第一传感节点广播目标的估计位置和下一个时刻所在的预测位置。
第一传感节点广播预测位置,使得下一个感知到目标的区域内的传感节点根据预测位置和或自身电能选定主节点。进一步的,通过预测位置确定目标下一个时刻所在区域,并在目标尚未到该区域之前,根据传感节点到预测位置的距离和传感节点自身电能,选定主节点,并使主节点及从属节点均进入对目标感知、测量距离的工作,避免目标进入该区域之后,才进行主节点选定工作,影响传感节点对目标的测量距离的工作。
在本发明实施方式中,从传感节点的邻居节点中,获取感知到目标的节点,并组成邻居集合。若邻居集合为空,说明传感节点的邻居节点均没有感知到目标,而传感节点能够感知到目标的最大距离为传感节点的感知半径,因此,可通过判断传感节点的测量距离是否小于或者等于感知半径的方式,来判断传感节点的测量距离是否可靠,并把不可靠的测量距离排除在对目标的定位计算之外。若邻居集合非空,则可分别为邻居集合的成员构建限定区域,限定区域的重叠部份为估计区域。传感节点为邻居集合的成员的邻居节点,则传感节点必定在估计区域内。邻居集合的成员均感知到目标,则目标也必定在估计区域内。因此,可通过判断传感节点的测量距离是否小于或者等于估计区域内两点间的最大距离,并且小于或者等于感知半径的方式,来判断传感节点的测量距离是否可靠,并把不可靠的测量距离排除在目标定位计算之外。仅使用可靠的测量距离进行目标定位计算,提高目标定位的准确性。并且在目标定位计算之前,就把不可靠的测量距离筛选掉,不需要在目标定位计算之后,再对目标的位置进行修正,减少传感节点的计算工作量,节约传感节点的计算资源。进一步的,根据可靠的测量距离的数量,选定合适的定位计算方式,使得目标的定位更准确。
请参阅图7,图7是本发明传感节点第一实施方式的结构示意图。如图所示,传感节点30包括接收模块301、组合模块302,第一获取模块303、第一判断模块304、第二判断模块305、限定区域构建模块306、第三判断模块307、添加模块308及计算模块309。
接收模块301接收来自至少一个第二传感节点的信息其中,信息包括至少一个第二传感节点的节点标识和至少一个第二传感节点自身到目标的测量距离。传感节点为传感网络中的基本单元,并且传感节点具有计算、存储和通信功能。传感节点可根据接收到的信号强度RSSI值,计算传感节点到目标的距离。
组合模块302将传感节点30的节点标识与至少一个第二传感节点的节点标识组成标识集合。
第一获取模块303获取标识集合中的标识成员i的邻居标识,并组成邻居集合,其中,邻居标识属于标识集合中的标识成员,并且是标识集合中的标识成员i所对应传感节点的邻居节点的节点标识,i为标识集合中的标识成员的编号,并且编号可为自然数或者其他特定的标记。邻居节点指在传感节点的感知范围内的其他传感节点。
第一判断模块304用于判断邻居集合是否为空。第二判断模块305在第一判断模块304判断到邻居集合为空时,判断标识集合中的标识成员i对应的测量距离是否小于或者等于感知半径。其中,传感节点的最大测量距离为感知半径,若传感节点的测量距离大于半径,则说明该传感节点的测量距离的不可靠。
限定区域构建模块306分别为邻居集合的成员构建限定区域,限定区域的重叠部份为估计区域。在本发明实施方式中,限定区域为以邻居集合中的成员对应的位置为中心,以感知半径R为半径的圆的外接正方形的区域,如图2所示。当然,限定区域的构造方式不限于上述方式,例如:限定区域也可以为以邻居集合中的成员对应的位置为中心,以感知半径R为半径的圆形的区域,如图3所示。
第三判断模块307判断标识集合中的标识成员i对应的测量距离是否小于或者等于估计区域内两点间的最大距离和感知半径之间的最小值。标识集合中的标识成员i对应的传感节点为邻居集合的成员对应传感节点的邻居节点,并且邻居集合的成员对应的传感节点均感知到目标,因此标识集合中的标识成员i对应的传感节点和目标必定在估计区域内。
添加模块308在第二判断模块305判断到标识集合中的标识成员i对应的测量距离小于或者等于感知半径时,或者第三判断模块307判断到标识集合中的标识成员i的测量距离小于或者等于估计区域内两点间的最大距离和感知半径之间的最小值时,将标识成员i对应的测量距离加入测量距离集合。
计算模块309根据测量距离集合的成员的数量以及测量距离集合的成员对应的位置,计算当前时刻目标所在的估计位置。在本发明实施方式中,计算模块309又可包括:第四判断单元3091、第一计算单元3092、第二计算单元3093及第三计算单元3094。
第四判断单元3091判断测量距离集合中的成员的数量。
第一计算单元3092在第四判断单元3091判断到距离集合中的成员的数量为一个时,则计算测量距离集合的成员对应的估计区域的中心,并以估计区域的中心作为估计位置,并标记估计位置的参与度为一。
第二计算单元3093在第四判断单元3091判断到测量距离集合中的成员的数量为两个时,则分别以测量距离集合的成员对应的位置和测量距离进行双边定位,获得两个定位位置,并计算定位位置与测量距离集合中的成员对应的估计区域的中心之间的距离,以距离最小的一个定位位置作为估计位置,并标记估计位置的参与度为二。
第三计算单元3094在第四判断单元3091判断到测量距离集合的成员的数量大于或者等于三个时,则以测量距离集合的成员的位置和测量距离进行三边定位或者多边定位,获得估计位置,并标记估计位置的参与度为测量距离集合的成员的数量。
进一步的,传感节点30还包括第五判断模块310、第二获取模块311、第三获取模块312及第四计算模块313。
第五判断模块310判断估计位置的参与度。第二获取模块311在第五判断模块310判断到参与度大于或者等于三时,获取目标的三个历史时刻的估计位置,三个历史时刻的估计位置包括当前时刻目标的估计位置及前两个时刻的目标的估计位置。第三获取模块312在第五判断模块310判断到参与度小于三时,获取目标的三个历史时刻的估计位置,该三个历史时刻的历史估计位置均为参与度大于三,参与度都高于其他估计位置的参与度的估计位置。第四计算模块313用于三个历史时刻的估计位置及时间间隔计算目标下一个时刻所在的预测位置。
在本发明实施方式中,第四计算模块313又可包括平均速度计算单元3131、加速度计算单元3132及位置计算单元3133。
平均速度计算单元3131根据三个历史时刻的估计位置及时间间隔,获取目标的对应时间间隔内的纵向平均速度和横向平均速度,其中,纵向平均速度和横向平均速度通过以下计算方式得到:
(x1,y1)、(x2,y2)和(x3,y3)分别为所选取三个估计位置的坐标,并且估计位置(x3,y3)对应的时刻离目标当前时刻最近,估计位置(x1,y1)对应的时刻离目标当前时刻最远,Δt1为时间间隔,v′x为目标在估计位置(x1,y1)和估计位置(x2,y2)之间的平均横向速度,v″x为目标在估计位置(x3,y3)和估计位置(x2,y2)之间的平均横向速度,y′x为目标在估计位置(x1,y1)和估计位置(x2,y2)之间的平均纵向速度,y″x为目标在估计位置(x3,y3)和估计位置(x2,y2)之间的平均纵向速度;
加速度计算单元3132用于根据目标的纵向平均速度和横向平均速度,获取目标的纵向加速度和横向加速度,其中,纵向加速度和横向加速度通过以下计算方式得到:
ax和ay分别为目标的横向加速度和纵向加速;
预测位置计算单元3133用于根据目标的纵向加速度和横向加速度,计算目标下一个时刻所在的预测位置,其中,预测位置通过以下计算方式得到:
x和y分别预测位置的横坐标和纵坐标,Δt2为目标一下时刻与目标在估计位置(x3,y3)的时刻之间的时间间隔。
传感节点30还包括广播模块314及通知模块300。广播模块314广播目标的估计位置及目标下一个时刻所在的预测位置。在接收模块301之前,通知模块300根据自身到目标的预测位置的距离与自身能量之和或者自身能量,广播通知,以使所述至少一个第二传感节点接收通知后,标记所述第一传感节点为主节点,自身为从属节点。
在本发明实施方式中,通过第一获取模块从传感节点的邻居节点中,获取感知到目标的节点,并组成邻居集合。第一判断模块判断邻居集合是否为空。若邻居集合为空,说明传感节点的邻居节点均没有感知到目标,而传感节点能够感知到目标的最大距离为传感节点的感知半径,则可通过第二判断模块判断传感节点的测量距离是否小于或者等于邻居,若是,则说明传感节点的测量可靠,保留该传感节点的测量距离。若邻居集合非空,限定区域构建模块分别为邻居集合的成员构建限定区域,限定区域的重叠部份为估计区域。而传感节点为邻居集合的成员的邻居节点,邻居集合的成员均感知到目标,因此,传感节点及目标必定在估计区域内。第三判断模块判断传感节点的测量距离是否小于或者等于估计区域内两点间的最大距离和感知半径之间的最小值,若是,则说明传感节点的测量可靠,保留该传感节点的测量距离。仅使用可靠的测量距离进行目标定位计算,提高目标定位的准确性。并且在目标定位计算之前,就把不可靠的测量距离筛选掉,不需要在目标定位计算之后,再对目标的位置进行修正,减少传感节点的计算工作量,节约传感节点的计算资源。
请参阅图8,图8是本发明传感节点第二实施方式的结构示意图。如图所示,传感节点40包括处理器401及存储器402。
处理器401用于接收来自至少一个第二传感节点的信息,并将自身与至少一个第二传感节点组成标识集合,其中,信息包括至少一个第二传感节点的标识及至少一个第二传感节点到目标的测量距离;并从标识集合中获取标识集合的成员i的邻居节点,并组成邻居集合,其中,i为标识集合的成员的编号;并判断邻居集合是否为空;若邻居集合为空,则判断标识集合的成员i的测量距离是否小于或者等于感知半径,若是,则将标识集合的成员i的测量距离加入测量距离集合;若邻居集合非空,则分别为邻居集合中的成员构建限定区域,限定区域重叠部份为估计区域,并判断标识集合的成员i的测量距离是否小于或者等于估计区域内两点间的最大距离和感知半径之间的最小值,若是,则将标识集合的成员i的测量距离加入测量距离集合;并根据测量距离集合的成员的数量以及测量距离集合的成员的位置,计算当前时刻目标所在的估计位置。
其中,处理器401执行的上述处理过程通常是由一段程序控制完成,程序存放于存储器402中,当需要进行上述动作时,将程序调入处理器401,由处理器401控制完成。当然,上述处理过程还可以是由硬件完成。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。