CN105101402A - 定位方法及定位节点 - Google Patents
定位方法及定位节点 Download PDFInfo
- Publication number
- CN105101402A CN105101402A CN201410209784.9A CN201410209784A CN105101402A CN 105101402 A CN105101402 A CN 105101402A CN 201410209784 A CN201410209784 A CN 201410209784A CN 105101402 A CN105101402 A CN 105101402A
- Authority
- CN
- China
- Prior art keywords
- node
- location
- described location
- communication zone
- location node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明实施例提供了一种定位方法及定位节点。定位方法包括:定位节点确定一第一节点的可能通信区域,所述第一节点为非锚节点且为所述定位节点的直接邻居节点,所述第一节点的可能通信区域为所述第一节点处于所述第一节点的可能位置区域内多个位置时的多个通信覆盖区域的并集;确定所述定位节点的可能位置区域在所述第一节点的可能通信区域内。本发明实施例提供了一种定位方案,且充分利用了网络中的其它非锚节点的可能位置区域。
Description
技术领域
本发明实施例涉及网络技术领域,尤其涉及一种定位方法及定位节点。
背景技术
目前无线传感器网络节点定位方法分为测距的和非测距的两类方法。其中,基于测距的定位方法需要利用额外的硬件来测量传感器节点之间的距离或者角度,然后根据三边或者三角测量方法计算待定位节点的位置。该类定位方法的定位精度比较高,但是由于需要额外的硬件,成本消耗比较大,所以该类方法不适合应用在大规模的无线传感器网络中。
基于非测距的定位方法主要是基于传感器节点的连通性进行定位,不需要额外的辅助设施,其定位精度达不到基于测距的定位方法的效果。一种基于非测距的定位方法是:未知节点从邻居节点中选择3个锚节点,并判断自身是否在以这3个锚节点为顶点所组成的三角形内部,如果该节点在三角形内部,称此三角形包含该未知节点;然后再从邻居节点中选择其他3个锚节点进行相同的操作,直到遍历完所有的组合或者达到所需的精度,最后,该未知节点计算包含自身位置的所有三角形相交区域的中心作为自身的定位位置。
发明内容
有鉴于此,本发明实施例的一个目的在于提供一种定位方案。
为实现上述目的,根据本发明实施例的一个方面,提供一种定位方法,包括:
定位节点确定一第一节点的可能通信区域,所述第一节点为非锚节点且为所述定位节点的直接邻居节点,所述第一节点的可能通信区域为所述第一节点处于所述第一节点的可能位置区域内多个位置时的多个通信覆盖区域的并集;
确定所述定位节点的可能位置区域在所述第一节点的可能通信区域内。
为实现上述目的,根据本发明实施例的又一个方面,提供又一种定位方法,包括:
定位节点确定一第一节点的必然通信区域,所述第一节点为非锚节点且为所述定位节点的间接邻居节点,所述第一节点的必然通信区域为所述第一节点处于所述第一节点的可能位置区域内多个位置时的多个通信覆盖区域的交集;
确定所述定位节点的可能位置区域在所述第一节点的必然通信区域外。
为实现上述目的,根据本发明实施例的又一个方面,提供一种定位节点,包括:
第一确定模块,用于确定一第一节点的可能通信区域,所述第一节点为非锚节点且为所述定位节点的直接邻居节点,所述第一节点的可能通信区域为所述第一节点处于所述第一节点的可能位置区域内多个位置时的多个通信覆盖区域的并集;
第二确定模块,用于确定所述定位节点的可能位置区域在所述第一节点的可能通信区域内。
为实现上述目的,根据本发明实施例的又一个方面,提供又一种定位节点,包括:
第一确定模块,用于确定一第一节点的必然通信区域,所述第一节点为非锚节点且为所述定位节点的间接邻居节点,所述第一节点的必然通信区域为所述第一节点处于所述第一节点的可能位置区域内多个位置时的多个通信覆盖区域的交集;
第二确定模块,用于确定所述定位节点的可能位置区域在所述第一节点的必然通信区域外。
以上多个技术方案中的至少一个技术方案具有如下有益效果:
本发明实施例通过定位节点确定一第一节点的可能通信区域,所述第一节点为非锚节点且为所述定位节点的直接邻居节点,确定所述定位节点的可能位置区域在所述第一节点的可能通信区域内,提供了一种定位方案,且充分利用了网络中的其它非锚节点的可能位置区域。
附图说明
图1a为本发明提供的一种定位方法实施例一的流程示意图;
图1b为图1a所示实施例的一种可选的实现方式的流程示意图;
图2a~2d分别为图1b所示实现方式中各步骤的定位效果示意图;
图3为本发明提供的一种定位方法实施例二的流程示意图;
图4a为本发明提供的一种定位节点实施例一的结构示意图;
图4b~4h分别为图4a所示实施例的一种实现方式的结构示意图;
图5a为本发明提供的一种定位节点实施例二的结构示意图;
图5b~5f分别为图5a所示实施例的一种实现方式的结构示意图;
图6为本发明提供的一种定位节点实施例三的结构示意图;
图7为本发明提供的一种定位节点实施例四的结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细说明。以下实施例用于说明本发明,但不用来限制本发明的范围。
图1a为本发明提供的一种定位方法实施例一的流程示意图。如图1a所示,本实施例包括:
101、定位节点确定一第一节点的可能通信区域,所述第一节点为非锚节点且为所述定位节点的直接邻居节点。
本实施例中,所述定位节点是任一可以确定自身的可能位置区域(PossibleLocationArea,简称PLA)的节点。可选地,本实施例中的节点均为无线传感器网络中的节点。
本实施例中,所述第一节点的可能通信区域(PossibleCommunicationArea,简称PCA)为所述第一节点处于所述第一节点的PLA内多个位置时的多个通信覆盖区域(CommunicationCoverageArea,简称CCA)的并集。其中,所述第一节点的PCA涵盖了在所述第一节点的PLA内任一位置对应的第一节点的CCA。可选地,所述多个位置包括所述第一节点的PLA内的所有位置,或者,包括所述第一节点的PLA内距离超过所述第一节点的通信半径的每对位置。通常,所述第一节点位于每个位置时的CCA均取决于相应的位置和所述第一节点的通信半径,可选地,所述第一节点处于所述第一节点的PLA内一位置时的CCA为以该位置为中心、所述第一节点的通信半径为半径的区域。需要说明的是,本实施例的CCA,均可以包括但不限于以下任一种:圆形区域,扇形区域,等。
通常,根据节点是否确定自身的位置,将节点分为锚节点和非锚节点,其中,锚节点确定自身的位置,也称为信标节点,而非锚节点不确定自身的位置,也称为未知节点。至少在执行完本实施例的方法之前,所述定位节点不确定自身的位置,即,为一非锚节点。
通常,直接邻居节点是相对间接邻居节点来说的。具体地,一节点可以与其直接邻居节点直接交互信息,即,中间无需其它节点来转发信息,而一节点与其间接邻居节点交互信息时需要其它节点来帮助转发信息。换句话说,节点与其直接邻居节点的最小跳数为1,节点与其间接邻居节点的最小跳数大于等于2。
102、确定所述定位节点的PLA在所述第一节点的PCA内。
可选地,所述确定所述定位节点的PLA在所述第一节点的PCA内,包括:
所述定位节点将所述定位节点的PLA确定为之前确定的PLA与所述第一节点的PCA的交集。
其中,所述之前确定的PLA是执行上述交集的步骤之前已经确定的所述定位节点的PLA。可选地,所述之前确定的PLA可以是预设的初始位置区域,比如:整个网络覆盖区域、无穷大的区域等,或者,是通过其它定位方法或步骤确定的所述定位节点的PLA。
在一种可能的场景中,对于所述定位节点来说,有多个第一节点,可选地,所述定位节点将所述定位节点的PLA确定为之前确定的PLA与所述第一节点的PCA的交集之后,还包括:
所述定位节点确定又一第一节点的PCA;
将所述定位节点的PLA确定为之前确定的PLA与所述又一第一节点的PCA的交集。
也就是说,所述定位节点可以针对每个第一节点执行一次本实施例的方法。
在一种可选的实现方式中,本实施例还包括:
所述定位节点接收所述第一节点的一第一信息包,所述第一信息包包括:所述第一节点的节点标识、所述第一节点的PCA;
所述定位节点根据所述第一信息包,确定所述第一节点为非锚节点且为所述定位节点的直接邻居节点。
通常,每个中间节点转发其它节点的信息包时可以在该信息包中加入自身的节点标识,和/或,增加该信息包中的跳数值,相应地,所述定位节点可以根据接收到的信息包中是否包括中间节点的节点标识,和/或,该信息包中的跳数值,来确定该信息包是间接邻居节点的还是直接邻居节点的。
在直接邻居节点以广播的方式发送自己的信息包的场景中,所述定位节点可能接收到一个直接邻居节点的多个信息包,且该多个信息包可能是通过不同的通信链路传送的,但其中至少有一个信息包是直接发送到所述定位节点的。举例来说,所述定位节点Ni接收到所述第一节点N1的5个信息包,该5个信息包所经过的通信链路分别为:N1→Ni,N1→N2→Ni,N1→N2→N3→Ni,N1→N3→N2→Ni,N1→N3→Ni,相应地,通信链路N1→Ni传送的信息包的跳数值为1,通信链路N1→N2→Ni和N1→N3→Ni传送的信息包的跳数值均为2,通信链路N1→N2→N3→Ni和N1→N3→N2→Ni传送的信息包的跳数值均为3;对于所述定位节点Ni,在接收到的所述第一节点N1的至少一个信息包中,只要有一个信息包的跳数值为1,就可以确定所述第一节点N1为自己的直接邻居节点。
可选地,本实施例中节点的节点标识可以标识该节点是锚节点还是非锚节点。在一种可能的场景中,节点标识中有一个用于标识是否锚节点的bit(位),比如,该bit为0时表示非锚节点,该bit为1时表示锚节点;在又一种可能的场景中,所述定位节点保存有所有锚节点的节点标识,所述定位节点通过将信息包中的节点标识与保存的所有锚节点的节点标识进行比较,确定该节点标识对应节点是锚节点还是非锚节点。
需要说明的是,所述第一信息包也可以不包括所述第一节点的PCA,作为替代地,所述第一信息包包括:所述第一节点的节点标识,所述第一节点的PLA,相应地,所述定位节点至少根据所述第一节点的PLA和所述第一节点的通信半径确定所述第一节点的PCA。
可选地,所述第一信息包包括:所述第一节点的节点标识,所述第一节点的PLA和PCA。
可选地,所述接收所述第一节点的一第一信息包之后,还包括:
保存所述第一节点的PCA。
由于所述第一节点也是非锚节点,在所述第一节点对自身定位的过程中,所述第一节点确定的所述第一节点的PLA可能发生变化,导致所述第一节点的PCA可能也会相应的变化。在一种可能的场景中,所述确定所述定位节点的PLA在所述第一节点的PCA内之后,还包括:
接收所述第一节点的一第二信息包,所述第二信息包包括:所述第一节点的节点标识、所述第一节点的PCA;
响应于所述第二信息包中的所述第一节点的PCA与保存的所述第一节点的PCA不同,更新保存的所述第一节点的PCA;
将所述定位节点的PLA确定为之前确定的PLA与更新后的所述第一节点的PCA的交集。
可选地,若所述第二信息包中的所述第一节点的PCA与保存的所述第一节点的PCA相同,则可以不更新保存的所述第一节点的PCA,相应地不执行上述交集的步骤。
可选地,各节点基于其它节点的请求发送自己的信息包,和/或,周期性地发送自己的信息包,和/或,当自己的信息包中的信息更新时(比如PCA或PLA发生变化时)发送自己的信息包;其中,上述发送信息包的方式可选地为广播方式。可选地,所述定位节点接收所述第一节点的一第一信息包之前,还包括:
所述定位节点广播用于请求信息包的请求信息。
通常,一节点位于其直接邻居节点的CCA内。基于此,在一种可选的实现方式中,所述确定所述定位节点的PLA在所述第一节点的PCA内之前,还包括:
所述定位节点确定一第二节点的CCA,所述第二节点为锚节点且为所述定位节点的直接邻居节点,所述第二节点的CCA为以所述第二节点的位置为中心、以所述第二节点的通信半径为半径的区域;
确定所述定位节点的PLA为之前确定的PLA与所述第二节点的CCA的交集。
其中,所述之前确定的PLA是执行上述交集的步骤之前已经确定的所述定位节点的PLA。具体地,所述之前确定的PLA可以是预设的初始位置区域,比如:整个网络覆盖区域、无穷大的区域等,或者,是通过其它定位方法或步骤确定的所述定位节点的PLA。
可选地,上述确定一第二节点的CCA、将所述定位节点的PLA确定为之前确定的PLA与所述第二节点的CCA的交集的步骤也可以发生在102之后,相应地,上述交集所用到的所述之前确定的PLA可以是102中确定的PLA。
与确定所述第一节点为非锚节点且为所述定位节点的直接邻居节点类似,所述定位节点可以根据接收到的所述第二节点的信息包确定所述第二节点为锚节点且为所述定位节点的直接邻居节点。可选地,所述第二节点的信息包包括:所述第二节点的节点标识,所述第二节点的位置信息或所述第二节点的CCA。
通常,一节点不位于其间接邻居节点的CCA内。基于此,在又一种可选的实现方式中,所述确定所述定位节点的PLA在所述第一节点的PCA内之前,还包括:
所述定位节点确定一第三节点的CCA,所述第三节点为锚节点且为所述定位节点的间接邻居节点,所述第三节点的CCA为以所述第三节点的位置为中心、以所述第三节点的通信半径为半径的区域;
确定所述定位节点的PLA为之前确定的PLA与所述第三节点的CCA的差集。
其中,所述之前确定的PLA是执行上述差集的步骤之前已经确定的所述定位节点的PLA。具体地,所述之前确定的PLA可以是预设的初始位置区域,比如:整个网络覆盖区域、无穷大的区域等,或者,是通过其它定位方法或步骤确定的所述定位节点的PLA,如:上述与所述第二节点的CCA的交集确定的PLA。
可选地,上述确定一第三节点的CCA、将所述定位节点的PLA确定为之前确定的PLA与所述第三节点的CCA的差集的步骤可以发生在102之后。相应地,上述差集所用到的所述之前确定的PLA可以是102中确定的PLA。
与确定所述第一节点为非锚节点且为所述定位节点的直接邻居节点类似,所述定位节点可以根据接收到的所述第三节点的信息包确定所述第三节点为锚节点且为所述定位节点的间接邻居节点。可选地,所述第三节点的第三信息包包括:所述第三节点的节点标识、所述第三节点的位置信息或所述第三节点的CCA。
在又一种可选的实现方式中,本实施例既包括上述确定一第二节点的CCA、将所述定位节点的PLA确定为之前确定的PLA与所述第二节点的CCA的交集的步骤,又包括上述确定一第三节点的CCA、将所述定位节点的PLA确定为之前确定的PLA与所述第三节点的CCA的差集的步骤,且执行上述步骤的前后顺序可以是任意的。
在上述任一实现方式或场景中,为了进一步地缩小所述定位节点的PLA,可选地,本实施例还包括:
所述定位节点确定一第四节点的必然通信区域(InevitableCommunicationArea,简称ICA),所述第四节点为非锚节点且为所述定位节点的间接邻居节点;
将所述定位节点的PLA确定为之前确定的PLA与所述第四节点的ICA的差集。
其中,所述之前确定的PLA是执行上述差集的步骤之前已经确定的所述定位节点的PLA。具体地,所述之前确定的PLA可以是预设的初始位置区域,比如:整个网络覆盖区域、无穷大的区域等,或者,是通过其它定位方法或步骤确定的所述定位节点的PLA,如:102中确定的PLA、上述与所述第二节点的CCA的交集确定的PLA、上述与所述第三节点的CCA的差集确定的PLA,等。
本实施例中,所述第四节点的ICA为所述第四节点处于所述第四节点的PLA内多个位置时的多个CCA的交集。通常,所述第四节点位于每个位置时的CCA均取决于相应的位置和所述第四节点的通信半径,可选地,所述第四节点处于所述第四节点的PLA内一位置时的CCA为以该位置为中心、所述第四节点的通信半径为半径的区域。
通常,网络中存在多个非锚节点,可选地,其中有多个非锚节点可以作为定位节点执行本实施例的方法,也就是说,除了本实施例中的定位节点利用其它非锚节点的PCA确定自己的PLA,其它的至少一个非锚节点也可以利用本实施例中的定位节点的PCA确定自己的PLA,进一步地互相迭代、缩小各自的PLA。
基于此,在一种可选的实现方式中,本实施例还包括:
所述定位节点至少根据所述定位节点的PLA确定所述定位节点的PCA;
广播所述定位节点的一第三信息包,所述第三信息包包括:所述定位节点的节点标识、所述定位节点的PCA。
需要说明的是,所述第三信息包中也可以不包括所述定位节点的PCA,作为替代地,所述第三信息包包括:所述定位节点的节点标识、所述定位节点的PLA,相应地,所述定位节点无需确定自己的PCA,而需要利用所述定位节点的PCA来进行定位的其它定位节点可以至少根据所述定位节点的PLA和所述定位节点的通信半径来确定所述定位节点的PCA。
可选地,所述第三信息包包括:所述定位节点的节点标识、所述定位节点的PLA和PCA。
在又一种可选的实现方式中,本实施例还包括:
所述定位节点至少根据所述定位节点的PLA确定所述定位节点的ICA和PCA;
广播所述定位节点的一第四信息包,所述第四信息包包括:所述定位节点的节点标识、所述定位节点的ICA和PCA。
需要说明的是,所述第四信息包中也可以不包括所述定位节点的ICA和PCA,作为替代地,所述第四信息包包括:所述定位节点的节点标识、所述定位节点的PLA,相应地,所述定位节点无需确定自己的ICA和PCA,而需要利用所述定位节点的ICA和/或PCA来进行定位的其它定位节点可以至少根据所述定位节点的PLA和所述定位节点的通信半径来确定所述定位节点的ICA和/或PCA。
可选地,所述第四信息包包括:所述定位节点的节点标识、所述定位节点的PLA、ICA和PCA。
本实施例中,所述通信半径为预设的参考通信半径,或者,为对应节点的实际通信半径。举例来说,为实现方便,可以认为网络中各节点的通信半径都一样,且预先设定一参考通信半径,确定CCA、PCA、ICA所需的任一节点的通信半径均以所述参考通信半径为准。又举例来说,为了更准确的定位,考虑到网络中各节点的实际通信半径可能不同,各节点可以在自己的信息包中携带上自己的实际通信半径,和/或,在转发的其它节点的信息包中除了添加自己的节点标识或增加跳数值之外还添加自己的实际通信半径,这样的话,所述定位节点可以根据各其它节点的信息包,和/或,各其它节点转发的信息包,确定各其它节点的实际通信半径,从而至少根据位置信息和实际通信半径确定所述第二节点的CCA和所述第三节点的CCA。
在上述任一可选的实现方式中,可选地,所述定位节点在确定自身的PLA之后,还可以根据确定的PLA估计自身的位置。具体地,估计的方式有多种,举例来说,可以将确定的PLA的中心作为自身的位置,本实施例对此不做限定。
图1b为图1a所示实施例的一种可选的实现方式的流程示意图,图2a~2d分别为图1b所示实现方式中各步骤的定位效果示意图。本实现方式中的定位节点用Ni表示,如图1b所示,本实现方式包括:
201、Ni获得一个初始PLA,并广播请求信息。
如果Ni的PLA未知,则将PLA初始化为整个网络区域。
如图2a所示,Ni(图中空心圆点所示)的初始PLA为虚线所围成的区域,表示为
其中,所述请求信息用于请求包括直接邻居和间接邻居的邻居节点发送自己的信息包。
202、Ni根据收到的信息包将邻居节点分为四个集合。
上述四个集合分为是:作为直接邻居的锚节点集合{DA(Ni)},作为间接邻居的锚节点集合{IA(Ni)},作为直接邻居的非锚节点集合{DR(Ni)},作为间接邻居的非锚节点集合{IR(Ni)}。
203、Ni依次计算自己的PLA与作为直接邻居的锚节点集合中各节点的CCA的交集,然后将结果作为其新的PLA并覆盖旧值。
如图2a所示,实心圆点Br为{DA(Ni)}中的任一节点,实线所围成的区域为Br的CCA。因为锚节点Br为Ni的直接邻居节点,则Ni必然位于Br的CCA内。Ni通过计算自己的PLA与Br的CCA的交集可以缩小其PLA。图2a中的阴影区域为缩小后的Ni的PLA。
需要说明的是,对于任一锚节点,可以认为其CCA与其PCA、ICA均相同。
204、Ni依次计算自己的PLA与作为间接邻居的锚节点集合中各节点的CCA的差集,然后将结果作为其新的PLA并覆盖旧值。
如图2b所示,实心圆点Bk为{IA(Ni)}中的任一节点,因为锚节点Bk为Ni的间接邻居节点,则Ni不能直接收到Bk发来的信息包,也即Ni位于Bk的CCA范围之外。
图2b中的浅色阴影区域和深色阴影区域组成的区域为执行完203之后Ni的PLA,表示为
Ni通过计算其PLA与Bk的CCA的差集可以缩小其PLA,图2b中的深色阴影区域为缩小后的Ni的PLA。
通过203、204步骤,Ni的PLA得到了缩减。
205、Ni根据其更新的PLA计算自己的PCA和ICA,并将计算后的PCA和ICA打包成信息包并广播。
206、Ni依次计算自己的PLA与作为直接邻居的非锚节点集合中各节点的PCA的交集,然后将结果作为其新的PLA并覆盖旧值。
如图2c所示,非锚节点Nj为Ni的直接邻居节点,Ni必然位于Nj的PCA范围之内,虚线所围成的区域为Nj的PLA,表示为实线所围成的小椭圆区域为Nj的ICA,表示为实线所围成的大椭圆区域为Nj的PCA,表示为
图2c中浅色阴影区域和深色阴影区域组成的区域为执行完204之后Ni的PLA,表示为Ni通过计算其PLA与Nj的PCA的交集可以缩小其PLA,图2c中深色阴影区域为缩小后的Ni的PLA。
207、Ni依次计算自己的PLA与作为间接邻居的非锚节点集合中各节点的ICA的差集,然后将结果作为其新的PLA并覆盖旧值。
如图2d所示,非锚节点Nl为Ni的间接邻居节点,则Ni位于Nl的ICA范围之外,虚线所围成的区域为Nl的PLA,表示为实线所围成的小椭圆区域为Nl的ICA,表示为实线所围成的大椭圆区域为Nl的PCA,表示为
如果Ni的PLA与Nl的ICA的交集不为空,则通过计算Ni的PLA与Nl的ICA的差集可以进一步缩小Ni的PLA。
图2d中的浅色阴影部分和深色阴影部分共同组成的区域为执行完206之后Ni的PLA,表示为通过差集计算,Ni的PLA可以缩小为深色阴影部分。
208、Ni根据其更新的PLA计算自己的PCA和ICA,并将计算后的PCA和ICA打包成信息包并广播。
在本实现方式的各步骤的执行过程中,Ni时刻准备接收邻居节点发来的信息包。若Ni接收到来自邻居节点发来的信息包,检查该信息包对应的节点是否已存在202确定的四个集合中,若不存在,则将该信息包对应的节点分到对应的集合中,并执行对应的步骤,举例来说,接收到的信息包对应的节点为一新的非锚节点且为Ni的直接邻居节点,则将该节点分到{DR(Ni)}中,并计算自己的PLA与该节点的PCA的交集,然后将结果作为其新的PLA并覆盖旧值,并执行208;若已存在202确定的四个集合中,则判断该信息包中的对应信息是否已更新,若未更新则结束,若已更新则执行对应的步骤,举例来说,接收到的信息包对应的节点为一非锚节点且为Ni的间接邻居节点,且该节点的ICA已更新,Ni计算自己的PLA与该节点的ICA的差集,然后将结果作为其新的PLA并覆盖旧值,并执行208。
可选地,为了避免Ni在计算过程中受到新收到的信息包的影响,可以设定一个时间段,在某时间段中Ni仅处理上一时间段收到的信息包,而本时间段中收到的信息包留待下一时间段再处理。
209、Ni计算其最终的PLA的中心作为其位置。
由于网络中可能存在多个Ni,每个Ni均执行上述步骤201~208以计算自己的PLA,对于一个Ni,可能会不断地收到其它Ni更新后的信息包,从而,自己的PLA也在不断的更新,形成一个互相迭代的过程。对于这样一个互相迭代的过程,可以预先设置停止迭代的条件,比如,当收到的邻居节点的信息包中的信息均没有更新时停止迭代,或者,当计算得到的自己的PLA达到一定的精度、范围时停止迭代,相应地,在停止迭代后执行209。
需要说明的是,虽然图2a~2d仅以二维形式示意各CCA、PCA、ICA、PLA,但不意味着本实施例中的各CCA、PCA、ICA、PLA局限于二维的区域,本领域技术人员可以理解,本实施例还可以应用于各CCA、PCA、ICA、PLA均为三维区域的场景中。
本实施例通过定位节点确定一第一节点的PCA,所述第一节点为非锚节点且为所述定位节点的直接邻居节点,确定所述定位节点的PLA在所述第一节点的PCA内,提供了一种定位方案,且充分利用了网络中的其它非锚节点的PLA,进一步地使得非锚节点之间互相利用其它节点的PLA来收敛自己的PLA。
图3为本发明提供的一种定位方法实施例二的流程示意图。如图3所示,本实施例包括:
301、定位节点确定一第一节点的ICA,所述第一节点为非锚节点且为所述定位节点的间接邻居节点。
本实施例中,所述定位节点是任一可以确定自身的PLA的节点。可选地,本实施例中的节点均为无线传感器网络中的节点。
本实施例中,所述第一节点的ICA为所述第一节点处于所述第一节点的PLA内多个位置时的多个CCA的交集。其中,所述第一节点的ICA在所述第一节点的PLA内任一位置对应的第一节点的CCA内。可选地,所述多个位置包括所述第一节点的PLA内的所有边缘位置。通常,所述第一节点位于每个位置时的CCA均取决于相应的位置和所述第一节点的通信半径,可选地,所述第一节点处于所述第一节点的PLA内一位置时的CCA为以该位置为中心、所述第一节点的通信半径为半径的区域。需要说明的是,本实施例的CCA,均可以包括但不限于以下任一种:圆形区域,扇形区域,等。
通常,根据节点是否确定自身的位置,将节点分为锚节点和非锚节点,其中,锚节点确定自身的位置,也称为信标节点,而非锚节点不确定自身的位置,也称为未知节点。至少在执行完本实施例的方法之前,所述定位节点不确定自身的位置,即,为一非锚节点。
通常,直接邻居节点是相对间接邻居节点来说的。具体地,一节点可以与其直接邻居节点直接交互信息,即,中间无需其它节点来转发信息,而一节点与其间接邻居节点交互信息时需要其它节点来帮助转发信息。换句话说,节点与其直接邻居节点的最小跳数为1,节点与其间接邻居节点的最小跳数大于等于2。
302、确定所述定位节点的PLA在所述第一节点的ICA外。
可选地,所述确定所述定位节点的PLA在所述第一节点的ICA外,包括:
所述定位节点将所述定位节点的PLA确定为之前确定的PLA与所述第一节点的ICA的差集。
其中,所述之前确定的PLA是执行上述差集的步骤之前已经确定的所述定位节点的PLA。可选地,所述之前确定的PLA可以是预设的初始位置区域,比如:整个网络覆盖区域、无穷大的区域等,或者,是通过其它定位方法或步骤确定的所述定位节点的PLA。
在一种可能的场景中,对于所述定位节点来说,有多个第一节点,可选地,所述定位节点将所述定位节点的PLA确定为之前确定的PLA与所述第一节点的ICA的差集之后,还包括:
所述定位节点确定又一第一节点的ICA;
将所述定位节点的PLA确定为之前确定的PLA与所述又一第一节点的ICA的差集。
也就是说,所述定位节点可以针对每个第一节点执行一次本实施例的方法。
在一种可选的实现方式中,本实施例还包括:
所述定位节点接收所述第一节点的至少一第一信息包,所述第一信息包包括:所述第一节点的节点标识、所述第一节点的ICA;
所述定位节点根据所述至少一第一信息包,确定所述第一节点为非锚节点且为所述定位节点的间接邻居节点。
通常,每个中间节点转发其它节点的信息包时可以在该信息包中加入自身的节点标识,和/或,增加该信息包中的跳数值,相应地,所述定位节点可以根据接收到的信息包中是否包括中间节点的节点标识,和/或,该信息包中的跳数值,来确定该信息包是间接邻居节点的还是直接邻居节点的。
在间接邻居节点以广播的方式发送自己的信息包的场景中,所述定位节点可能接收到一个间接邻居节点的多个信息包,且该多个信息包可能是通过不同的通信链路传送的。举例来说,所述定位节点Ni接收到所述第一节点N1的4个信息包,该4个信息包所经过的通信链路分别为:N1→N2→Ni,N1→N2→N3→Ni,N1→N3→N2→Ni,N1→N3→Ni,相应地,通信链路N1→N2→Ni和N1→N3→Ni传送的信息包的跳数值均为2,通信链路N1→N2→N3→Ni和N1→N3→N2→Ni传送的信息包的跳数值均为3;对于所述定位节点Ni,若接收到的所述第一节点N1的所有信息包的跳数值均大于1,则可以确定所述第一节点N1为自己的间接邻居节点。
可选地,本实施例中节点的节点标识可以标识该节点是锚节点还是非锚节点。在一种可能的场景中,节点标识中有一个用于标识是否锚节点的bit(位),比如,该bit为0时表示非锚节点,该bit为1时表示锚节点;在又一种可能的场景中,所述定位节点保存有所有锚节点的节点标识,所述定位节点通过将信息包中的节点标识与保存的所有锚节点的节点标识进行比较,确定该节点标识对应节点是锚节点还是非锚节点。
需要说明的是,所述第一信息包也可以不包括所述第一节点的ICA,作为替代地,所述第一信息包包括:所述第一节点的节点标识,所述第一节点的PLA,相应地,所述定位节点至少根据所述第一节点的PLA和所述第一节点的通信半径确定所述第一节点的ICA。
可选地,所述第一信息包包括:所述第一节点的节点标识,所述第一节点的PLA和ICA。
可选地,所述接收所述第一节点的至少一第一信息包之后,还包括:保存所述第一节点的ICA。由于所述第一节点也是非锚节点,在所述第一节点对自身定位的过程中,所述第一节点确定的所述第一节点的PLA可能发生变化,导致所述第一节点的ICA可能也会相应的变化。在一种可能的场景中,所述确定所述定位节点的PLA在所述第一节点的ICA外之后,还包括:
接收所述第一节点的一第二信息包,所述第二信息包包括:所述第一节点的节点标识、所述第一节点的ICA;
响应于所述第二信息包中的所述第一节点的ICA与保存的所述第一节点的ICA不同,更新保存的所述第一节点的ICA;
将所述定位节点的PLA确定为之前确定的PLA与更新后的所述第一节点的ICA的差集。
可选地,若所述第二信息包中的所述第一节点的ICA与保存的所述第一节点的ICA相同,则可以不更新保存的所述第一节点的ICA,相应地不执行上述差集的步骤。
可选地,各节点基于其它节点的请求发送自己的信息包,和/或,周期性地发送自己的信息包,和/或,当自己的信息包中的信息更新时(比如ICA或PLA发生变化时)发送自己的信息包;其中,上述发送信息包的方式可选地为广播方式。可选地,所述定位节点接收所述第一节点的至少一第一信息包之前,还包括:
所述定位节点广播用于请求信息包的请求信息。
通常,一节点位于其直接邻居节点的CCA内。基于此,在一种可选的实现方式中,所述确定所述定位节点的PLA在所述第一节点的ICA外之前,还包括:
所述定位节点确定一第二节点的CCA,所述第二节点为锚节点且为所述定位节点的直接邻居节点,所述第二节点的CCA为以所述第二节点的位置为中心、以所述第二节点的通信半径为半径的区域;
确定所述定位节点的PLA为之前确定的PLA与所述第二节点的CCA的交集。
其中,所述之前确定的PLA是执行上述交集的步骤之前已经确定的所述定位节点的PLA。具体地,所述之前确定的PLA可以是预设的初始位置区域,比如:整个网络覆盖区域、无穷大的区域等,或者,是通过其它定位方法或步骤确定的所述定位节点的PLA。
可选地,上述确定一第二节点的CCA、将所述定位节点的PLA确定为之前确定的PLA与所述第二节点的CCA的交集的步骤也可以发生在302之后,相应地,上述交集所用到的所述之前确定的PLA可以是302中确定的PLA。
与确定所述第一节点为非锚节点且为所述定位节点的间接邻居节点类似,所述定位节点可以根据接收到的所述第二节点的信息包确定所述第二节点为锚节点且为所述定位节点的直接邻居节点。可选地,所述第二节点的信息包包括:所述第二节点的节点标识,所述第二节点的位置信息或所述第二节点的CCA。
通常,一节点不位于其间接邻居节点的CCA内。基于此,在又一种可选的实现方式中,所述确定所述定位节点的PLA在所述第一节点的ICA外之前,还包括:
所述定位节点确定一第三节点的CCA,所述第三节点为锚节点且为所述定位节点的间接邻居节点,所述第三节点的CCA为以所述第三节点的位置为中心、以所述第三节点的通信半径为半径的区域;
确定所述定位节点的PLA为之前确定的PLA与所述第三节点的CCA的差集。
其中,所述之前确定的PLA是执行上述差集的步骤之前已经确定的所述定位节点的PLA。具体地,所述之前确定的PLA可以是预设的初始位置区域,比如:整个网络覆盖区域、无穷大的区域等,或者,是通过其它定位方法或步骤确定的所述定位节点的PLA,如:上述与所述第二节点的CCA的交集确定的PLA。
可选地,上述确定一第三节点的CCA、将所述定位节点的PLA确定为之前确定的PLA与所述第三节点的CCA的差集的步骤可以发生在302之后。相应地,上述差集所用到的所述之前确定的PLA可以是302中确定的PLA。
与确定所述第一节点为非锚节点且为所述定位节点的间接邻居节点类似,所述定位节点可以根据接收到的所述第三节点的信息包确定所述第三节点为锚节点且为所述定位节点的间接邻居节点。可选地,所述第三节点的第三信息包包括:所述第三节点的节点标识、所述第三节点的位置信息或所述第三节点的CCA。
在又一种可选的实现方式中,本实施例既包括上述确定一第二节点的CCA、将所述定位节点的PLA确定为之前确定的PLA与所述第二节点的CCA的交集的步骤,又包括上述确定一第三节点的CCA、将所述定位节点的PLA确定为之前确定的PLA与所述第三节点的CCA的差集的步骤,且执行上述步骤的前后顺序可以是任意的。
通常,网络中存在多个非锚节点,可选地,其中有多个非锚节点可以作为定位节点执行本实施例的方法,也就是说,除了本实施例中的定位节点利用其它非锚节点的ICA确定自己的PLA,其它的至少一个非锚节点也可以利用本实施例中的定位节点的ICA确定自己的PLA,进一步地互相迭代、缩小各自的PLA。基于此,在上述任一种实现方式中,可选地,本实施例还包括:
所述定位节点至少根据所述定位节点的PLA确定所述定位节点的ICA;
广播所述定位节点的一第三信息包,所述定位节点的节点标识、所述定位节点的ICA。
需要说明的是,所述第三信息包中也可以不包括所述定位节点的ICA,作为替代地,所述第三信息包包括:所述定位节点的节点标识、所述定位节点的PLA,相应地,所述定位节点无需确定自己的ICA,而需要利用所述定位节点的ICA来进行定位的其它定位节点可以至少根据所述定位节点的PLA和所述定位节点的通信半径来确定所述定位节点的ICA。
可选地,所述第三信息包包括:所述定位节点的节点标识、所述定位节点的PLA和ICA。
本实施例中,所述通信半径为预设的参考通信半径,或者,为对应节点的实际通信半径。举例来说,为实现方便,可以认为网络中各节点的通信半径都一样,且预先设定一参考通信半径,确定CCA、ICA所需的任一节点的通信半径均以所述参考通信半径为准。又举例来说,为了更准确的定位,考虑到网络中各节点的实际通信半径可能不同,各节点可以在自己的信息包中携带上自己的实际通信半径,和/或,在转发的其它节点的信息包中除了添加自己的节点标识或增加跳数值之外还添加自己的实际通信半径,这样的话,所述定位节点可以根据各其它节点的信息包,和/或,各其它节点转发的信息包,确定各其它节点的实际通信半径,从而至少根据位置信息和实际通信半径确定所述第二节点的CCA和所述第三节点的CCA。
在上述任一可选的实现方式中,可选地,所述定位节点在确定自身的PLA之后,还可以根据确定的PLA估计自身的位置。具体地,估计的方式有多种,举例来说,可以将确定的PLA的中心作为自身的位置,本实施例对此不做限定。
本实施例的一种可选的实现方式可以如图1b所示,相应地,本实施例的定位效果也可参照图2a~2d所示的定位效果。
本实施例通过定位节点确定一第一节点的ICA,所述第一节点为非锚节点且为所述定位节点的间接邻居节点,确定所述定位节点的PLA在所述第一节点的ICA外,提供了一种定位方案,且充分利用了网络中的其它非锚节点的PLA,进一步地使得非锚节点之间互相利用其它节点的PLA来收敛自己的PLA。
图4a为本发明提供的一种定位节点实施例一的结构示意图。如图4a所示,定位节点400包括:
第一确定模块41,用于确定一第一节点的PCA,所述第一节点为非锚节点且为定位节点400的直接邻居节点,所述第一节点的PCA为所述第一节点处于所述第一节点的PLA内多个位置时的多个CCA的并集;
第二确定模块42,用于确定定位节点400的PLA在所述第一节点的PCA内。
本实施例中,定位节点400是任一可以确定自身的PLA的节点。可选地,本实施例中的节点均为无线传感器网络中的节点。
本实施例中,所述第一节点的PCA为所述第一节点处于所述第一节点的PLA内多个位置时的多个CCA的并集。其中,所述第一节点的PCA涵盖了在所述第一节点的PLA内任一位置对应的第一节点的CCA。可选地,所述多个位置包括所述第一节点的PLA内的所有位置,或者,包括所述第一节点的PLA内距离超过所述第一节点的通信半径的每对位置。通常,所述第一节点位于每个位置时的CCA均取决于相应的位置和所述第一节点的通信半径,可选地,所述第一节点处于所述第一节点的PLA内一位置时的CCA为以该位置为中心、所述第一节点的通信半径为半径的区域。需要说明的是,本实施例的CCA,均可以包括但不限于以下任一种:圆形区域,扇形区域,等。
通常,根据节点是否确定自身的位置,将节点分为锚节点和非锚节点,其中,锚节点确定自身的位置,也称为信标节点,而非锚节点不确定自身的位置,也称为未知节点。至少在第二确定模块42实现所述确定定位节点400的PLA在所述第一节点的PCA内的功能之前,之前,定位节点400不确定自身的位置,即,为一非锚节点。
通常,直接邻居节点是相对间接邻居节点来说的。具体地,一节点可以与其直接邻居节点直接交互信息,即,中间无需其它节点来转发信息,而一节点与其间接邻居节点交互信息时需要其它节点来帮助转发信息。换句话说,节点与其直接邻居节点的最小跳数为1,节点与其间接邻居节点的最小跳数大于等于2。
可选地,第二确定模块42具体用于:将定位节点400的PLA确定为之前确定的PLA与所述第一节点的PCA的交集。
其中,所述之前确定的PLA是在第二确定模块42执行上述交集的步骤之前已经确定的定位节点400的PLA。可选地,所述之前确定的PLA可以是预设的初始位置区域,比如:整个网络覆盖区域、无穷大的区域等,或者,是通过其它定位方法或步骤确定的定位节点400的PLA。
在一种可能的场景中,对于所述定位节点来说,有多个第一节点,可选地,第一确定模块41还用于:确定又一第一节点的PCA;
第二确定模块42还用于:将定位节点400的PLA确定为之前确定的PLA与所述又一第一节点的PCA的交集。
也就是说,第一确定模块41可以针对每个第一节点执行一次确定其PCA的步骤,相应地,第二确定模块42可以针对每个第一节点执行一次将定位节点400的PLA确定为之前确定的PLA与第一节点的PCA的交集的步骤。
在一种可选的实现方式中,如图4b所示,定位节点400还包括:
接收模块43,用于接收所述第一节点的一第一信息包,所述第一信息包包括:所述第一节点的节点标识、所述第一节点的PCA;
第三确定模块44,用于根据所述第一信息包,确定所述第一节点为非锚节点且为定位节点400的直接邻居节点。
通常,每个中间节点转发其它节点的信息包时可以在该信息包中加入自身的节点标识,和/或,增加该信息包中的跳数值,相应地,第三确定模块44可以根据接收模块43接收到的信息包中是否包括中间节点的节点标识,和/或,该信息包中的跳数值,来确定该信息包是间接邻居节点的还是直接邻居节点的。
在直接邻居节点以广播的方式发送自己的信息包的场景中,接收模块43可能接收到一个直接邻居节点的多个信息包,且该多个信息包可能是通过不同的通信链路传送的,但其中至少有一个信息包是直接发送到所述定位节点的。举例来说,定位节点400(用Ni表示)的接收模块43接收到所述第一节点N1的5个信息包,该5个信息包所经过的通信链路分别为:N1→Ni,N1→N2→Ni,N1→N2→N3→Ni,N1→N3→N2→Ni,N1→N3→Ni,相应地,通信链路N1→Ni传送的信息包的跳数值为1,通信链路N1→N2→Ni和N1→N3→Ni传送的信息包的跳数值均为2,通信链路N1→N2→N3→Ni和N1→N3→N2→Ni传送的信息包的跳数值均为3;对于定位节点400,在接收模块43接收到的所述第一节点N1的至少一个信息包中,只要有一个信息包的跳数值为1,第三确定模块44就可以确定所述第一节点N1为定位节点400的直接邻居节点。
可选地,本实施例中节点的节点标识可以标识该节点是锚节点还是非锚节点。在一种可能的场景中,节点标识中有一个用于标识是否锚节点的bit(位),比如,该bit为0时表示非锚节点,该bit为1时表示锚节点;在又一种可能的场景中,定位节点400保存有所有锚节点的节点标识,第三确定模块44通过将信息包中的节点标识与保存的所有锚节点的节点标识进行比较,确定该节点标识对应节点是锚节点还是非锚节点。
需要说明的是,所述第一信息包也可以不包括所述第一节点的PCA,作为替代地,所述第一信息包包括:所述第一节点的节点标识,所述第一节点的PLA,相应地,第一确定模块41至少根据所述第一节点的PLA和所述第一节点的通信半径确定所述第一节点的PCA。
可选地,所述第一信息包包括:所述第一节点的节点标识,所述第一节点的PLA和PCA。
可选地,如图4c所示,定位节点400还包括:保存模块45,用于保存所述第一节点的PCA。由于所述第一节点也是非锚节点,在所述第一节点对自身定位的过程中,所述第一节点确定的所述第一节点的PLA可能发生变化,导致所述第一节点的PCA可能也会相应的变化。在一种可能的场景中,接收模块43还用于,在第二确定模块42确定定位节点400的PLA在所述第一节点的PCA内之后,接收所述第一节点的一第二信息包,所述第二信息包包括:所述第一节点的节点标识、所述第一节点的PCA;
定位节点400还包括:
更新模块46,用于响应于所述第二信息包中的所述第一节点的PCA与保存的所述第一节点的PCA不同,更新所述保存模块保存的所述第一节点的PCA;
第四确定模块47,用于将定位节点400的PLA确定为之前确定的PLA与更新后的所述第一节点的PCA的交集。
可选地,若所述第二信息包中的所述第一节点的PCA与保存的所述第一节点的PCA相同,则更新模块46可以不更新保存的所述第一节点的PCA,相应地第四确定模块47不执行上述交集的步骤。
通常,一节点位于其直接邻居节点的CCA内。基于此,在一种可选的实现方式中,如图4d所示,定位节点400还包括:
第五确定模块48,用于确定一第二节点的CCA,所述第二节点为锚节点且为定位节点400的直接邻居节点,所述第二节点的通信覆盖区域为以所述第二节点的位置为中心、以所述第二节点的通信半径为半径的区域;
第六确定模块49,用于确定定位节点400的PLA为之前确定的PLA与所述第二节点的CCA的交集。
其中,所述之前确定的PLA是在第六确定模块49执行上述交集的步骤之前已经确定的定位节点400的PLA。具体地,所述之前确定的PLA可以是预设的初始位置区域,比如:整个网络覆盖区域、无穷大的区域等,或者,是通过其它定位方法或步骤确定的定位节点400的PLA。
可选地,上述第五确定模块48确定一第二节点的CCA、第六确定模块49将定位节点400的PLA确定为之前确定的PLA与所述第二节点的CCA的交集,也可以发生在第二确定模块42将定位节点400的PLA确定为之前确定的PLA与所述第一节点的PCA的交集之后,相应地,第六确定模块49交集所用到的所述之前确定的PLA可以是第二确定模块42确定的PLA。
与第三确定模块44确定所述第一节点为非锚节点且为所述定位节点的直接邻居节点类似,第五确定模块48可以根据接收模块43接收到的所述第二节点的信息包确定所述第二节点为锚节点且为所述定位节点的直接邻居节点。可选地,所述第二节点的信息包包括:所述第二节点的节点标识,所述第二节点的位置信息或所述第二节点的CCA。
通常,一节点不位于其间接邻居节点的CCA内。基于此,在又一种可选的实现方式中,如图4e所示,定位节点400还包括:
第七确定模块410,用于确定一第三节点的CCA,所述第三节点为锚节点且为定位节点400的间接邻居节点,所述第三节点的CCA为以所述第三节点的位置为中心、以所述第三节点的通信半径为半径的区域;
第八确定模块411,用于确定定位节点400的PLA为之前确定的PLA与所述第三节点的CCA的差集。
其中,所述之前确定的PLA是在第八确定模块411执行上述差集的步骤之前已经确定的定位节点400的PLA。具体地,所述之前确定的PLA可以是预设的初始位置区域,比如:整个网络覆盖区域、无穷大的区域等,或者,是通过其它定位方法或步骤确定的定位节点400的PLA,如:上述第六确定模块49确定的PLA。
可选地,上述第七确定模块410确定一第三节点的CCA、第八确定模块411将所述定位节点的PLA确定为之前确定的PLA与所述第三节点的CCA的差集,可以发生在第二确定模块42将定位节点400的PLA确定为之前确定的PLA与所述第一节点的PCA的交集之后。相应地,上述差集所用到的所述之前确定的PLA可以是第二确定模块42确定的PLA。
与第三确定模块44确定所述第一节点为非锚节点且为所述定位节点的直接邻居节点类似,第七确定模块410可以根据接收模块43接收到的所述第三节点的信息包确定所述第三节点为锚节点且为所述定位节点的间接邻居节点。可选地,所述第三节点的第三信息包包括:所述第三节点的节点标识、所述第三节点的位置信息或所述第三节点的CCA。
在又一种可选的实现方式中,本实施例既包括第五确定模块48、第六确定模块49,又包括第七确定模块410、第八确定模块411。
在上述任一实现方式或场景中,为了进一步地缩小所述定位节点的PLA,可选地,如图4f所示,定位节点400还包括:
第九确定模块412,用于确定一第四节点的ICA,所述第四节点为非锚节点且为定位节点400的间接邻居节点,所述第四节点的ICA为所述第四节点处于所述第四节点的PLA内多个位置时的多个CCA的交集;
第十确定模块413,用于将定位节点400的PLA确定为之前确定的PLA与所述第四节点的ICA的差集。
其中,所述之前确定的PLA是在第十确定模块413执行上述差集的步骤之前已经确定的定位节点400的PLA。具体地,所述之前确定的PLA可以是预设的初始位置区域,比如:整个网络覆盖区域、无穷大的区域等,或者,是通过其它定位方法或步骤确定的定位节点400的PLA,如:第二确定模块42确定的PLA、第六确定模块49确定的PLA、第八确定模块411确定的PLA,等。
本实施例中,所述第四节点的ICA为所述第四节点处于所述第四节点的PLA内多个位置时的多个CCA的交集。通常,所述第四节点位于每个位置时的CCA均取决于相应的位置和所述第四节点的通信半径,可选地,所述第四节点处于所述第四节点的PLA内一位置时的CCA为以该位置为中心、所述第四节点的通信半径为半径的区域。
通常,网络中存在多个非锚节点,可选地,其中有多个非锚节点均可以是本实施例的定位节点400,也就是说,除了本实施例中的定位节点400利用其它非锚节点的PCA确定自己的PLA,其它的至少一个非锚节点也可以利用本实施例中的定位节点400的PCA确定自己的PLA,进一步地互相迭代、缩小各自的PLA。
基于此,在一种可选的实现方式中,如图4g所示,定位节点400还包括:
第十一确定模块414,用于至少根据定位节点400的PLA确定定位节点400的PCA;
第一广播模块415,用于广播定位节点400的一第三信息包,所述第三信息包包括:定位节点400的节点标识、定位节点400的PCA。
需要说明的是,所述第三信息包中也可以不包括定位节点400的PCA,作为替代地,所述第三信息包包括:定位节点400的节点标识、定位节点400的PLA,相应地,第十一确定模块414无需确定定位节点400的PCA,而需要利用定位节点400的PCA来进行定位的其它定位节点可以至少根据定位节点400的PLA和定位节点400的通信半径来确定定位节点400的PCA。
可选地,所述第三信息包包括:定位节点400的节点标识、定位节点400的PLA和PCA。
在又一种可选的实现方式中,如图4h所示,定位节点400还包括:
第十二确定模块416,用于至少根据定位节点400的PLA确定定位节点400的ICA和PCA;
第二广播模块417,用于广播定位节点400的一第四信息包,所述第四信息包包括:定位节点400的节点标识、定位节点400的ICA和PCA。
需要说明的是,所述第四信息包中也可以不包括定位节点400的ICA和PCA,作为替代地,所述第四信息包包括:定位节点400的节点标识、定位节点400的PLA,相应地,第十二确定模块416无需确定定位节点400的ICA和PCA,而需要利用定位节点400的ICA和/或PCA来进行定位的其它定位节点可以至少根据定位节点400的PLA和定位节点400的通信半径来确定定位节点400的ICA和/或PCA。
可选地,所述第四信息包包括:定位节点400的节点标识、定位节点400的PLA、ICA和PCA。
可选地,各节点基于其它节点的请求发送自己的信息包,和/或,周期性地发送自己的信息包,和/或,当自己的信息包中的信息更新时(比如PCA或PLA发生变化时)发送自己的信息包;其中,上述发送信息包的方式可选地为广播方式。可选地,定位节点400还包括:请求模块,用于广播用于请求信息包的请求信息。
本实施例中,所述通信半径为预设的参考通信半径,或者,为对应节点的实际通信半径。举例来说,为实现方便,可以认为网络中各节点的通信半径都一样,且预先设定一参考通信半径,确定CCA、PCA、ICA所需的任一节点的通信半径均以所述参考通信半径为准。又举例来说,为了更准确的定位,考虑到网络中各节点的实际通信半径可能不同,各节点可以在自己的信息包中携带上自己的实际通信半径,和/或,在转发的其它节点的信息包中除了添加自己的节点标识或增加跳数值之外还添加自己的实际通信半径,这样的话,定位节点400中的相应模块可以根据各其它节点的信息包,和/或,各其它节点转发的信息包,确定各其它节点的实际通信半径,从而至少根据位置信息和实际通信半径确定所述第二节点的CCA和所述第三节点的CCA。
在上述任一可选的实现方式中,可选地,定位节点400在确定自身的PLA之后,还可以根据确定的PLA估计自身的位置。具体地,估计的方式有多种,举例来说,可以将确定的PLA的中心作为自身的位置,本实施例对此不做限定。
需要说明的是,本实施例的定位效果可参照图2a~2d。
本实施例通过定位节点的第一确定模块确定一第一节点的PCA,所述第一节点为非锚节点且为所述定位节点的直接邻居节点,第二确定模块确定所述定位节点的PLA在所述第一节点的PCA内,提供了一种定位方案,且充分利用了网络中的其它非锚节点的PLA,进一步地使得非锚节点之间互相利用其它节点的PLA来收敛自己的PLA。
图5a为本发明提供的一种定位节点实施例二的结构示意图。如图5a所示,定位节点500包括:
第一确定模块51,用于确定一第一节点的ICA,所述第一节点为非锚节点且为定位节点500的间接邻居节点;
第二确定模块52,用于确定定位节点500的PLA在所述第一节点的ICA外。
本实施例中,定位节点500是任一可以确定自身的PLA的节点。可选地,本实施例中的节点均为无线传感器网络中的节点。
本实施例中,所述第一节点的ICA为所述第一节点处于所述第一节点的PLA内多个位置时的多个CCA的交集。其中,所述第一节点的ICA在所述第一节点的PLA内任一位置对应的第一节点的CCA内。可选地,所述多个位置包括所述第一节点的PLA内的所有边缘位置。通常,所述第一节点位于每个位置时的CCA均取决于相应的位置和所述第一节点的通信半径,可选地,所述第一节点处于所述第一节点的PLA内一位置时的CCA为以该位置为中心、所述第一节点的通信半径为半径的区域。需要说明的是,本实施例的CCA,均可以包括但不限于以下任一种:圆形区域,扇形区域,等。
通常,根据节点是否确定自身的位置,将节点分为锚节点和非锚节点,其中,锚节点确定自身的位置,也称为信标节点,而非锚节点不确定自身的位置,也称为未知节点。至少第二确定模块52确定定位节点500的PLA在所述第一节点的ICA外之前,定位节点500不确定自身的位置,即,为一非锚节点。
通常,直接邻居节点是相对间接邻居节点来说的。具体地,一节点可以与其直接邻居节点直接交互信息,即,中间无需其它节点来转发信息,而一节点与其间接邻居节点交互信息时需要其它节点来帮助转发信息。换句话说,节点与其直接邻居节点的最小跳数为1,节点与其间接邻居节点的最小跳数大于等于2。
可选地,第二确定模块52具体用于:将定位节点500的PLA确定为之前确定的PLA与所述第一节点的ICA的差集。
其中,所述之前确定的PLA是在第二确定模块52执行上述差集的步骤之前已经确定的定位节点500的PLA。可选地,所述之前确定的PLA可以是预设的初始位置区域,比如:整个网络覆盖区域、无穷大的区域等,或者,是通过其它定位方法或步骤确定的定位节点500的PLA。
在一种可能的场景中,对于定位节点500来说,有多个第一节点,可选地,第一确定模块51还用于:确定又一第一节点的ICA;
第二确定模块52还用于:将定位节点500的PLA确定为之前确定的PLA与所述又一第一节点的ICA的差集。
也就是说,第一确定模块51可以针对每个第一节点执行一次确定其ICA,第二确定模块52可以针对每个第一节点执行一次将定位节点500的PLA确定为之前确定的PLA与其ICA的差集。
在一种可选的实现方式中,如图5b所示,定位节点500还包括:
接收模块53,用于接收所述第一节点的至少一第一信息包,所述第一信息包包括:所述第一节点的节点标识、所述第一节点的ICA;
第三确定模块54,用于根据所述至少一第一信息包,确定所述第一节点为非锚节点且为定位节点500的间接邻居节点。
通常,每个中间节点转发其它节点的信息包时可以在该信息包中加入自身的节点标识,和/或,增加该信息包中的跳数值,相应地,第三确定模块54可以根据接收模块53接收到的信息包中是否包括中间节点的节点标识,和/或,该信息包中的跳数值,来确定该信息包是间接邻居节点的还是直接邻居节点的。
在间接邻居节点以广播的方式发送自己的信息包的场景中,接收模块53可能接收到一个间接邻居节点的多个信息包,且该多个信息包可能是通过不同的通信链路传送的。举例来说,定位节点500(用Ni表示)的接收模块53接收到所述第一节点N1的4个信息包,该4个信息包所经过的通信链路分别为:N1→N2→Ni,N1→N2→N3→Ni,N1→N3→N2→Ni,N1→N3→Ni,相应地,通信链路N1→N2→Ni和N1→N3→Ni传送的信息包的跳数值均为2,通信链路N1→N2→N3→Ni和N1→N3→N2→Ni传送的信息包的跳数值均为3;对于定位节点500,若接收模块53接收到的所述第一节点N1的所有信息包的跳数值均大于1,则第三确定模块54可以确定所述第一节点N1为定位节点500的间接邻居节点。
可选地,本实施例中节点的节点标识可以标识该节点是锚节点还是非锚节点。在一种可能的场景中,节点标识中有一个用于标识是否锚节点的bit(位),比如,该bit为0时表示非锚节点,该bit为1时表示锚节点;在又一种可能的场景中,定位节点500保存有所有锚节点的节点标识,第三确定模块54通过将信息包中的节点标识与保存的所有锚节点的节点标识进行比较,确定该节点标识对应节点是锚节点还是非锚节点。
需要说明的是,所述第一信息包也可以不包括所述第一节点的ICA,作为替代地,所述第一信息包包括:所述第一节点的节点标识,所述第一节点的PLA,相应地,第一确定模块51至少根据所述第一节点的PLA和所述第一节点的通信半径确定所述第一节点的ICA。
可选地,所述第一信息包包括:所述第一节点的节点标识,所述第一节点的PLA和ICA。
可选地,如图5c所示,定位节点500还包括:保存模块55,用于保存所述第一节点的ICA。由于所述第一节点也是非锚节点,在所述第一节点对自身定位的过程中,所述第一节点确定的所述第一节点的PLA可能发生变化,导致所述第一节点的ICA可能也会相应的变化。在一种可能的场景中,接收模块53还用于,在所述第二确定模块确定定位节点500的PLA在所述第一节点的ICA外之后,接收所述第一节点的一第二信息包,所述第二信息包包括:所述第一节点的节点标识、所述第一节点的ICA;
定位节点500还包括:
更新模块56,用于响应于所述第二信息包中的所述第一节点的ICA与保存的所述第一节点的ICA不同,更新所述保存模块保存的所述第一节点的ICA;
第四确定模块57,用于将定位节点500的PLA确定为之前确定的PLA与更新后的所述第一节点的ICA的差集。
可选地,若所述第二信息包中的所述第一节点的ICA与保存的所述第一节点的ICA相同,则更新模块56可以不更新保存模块55保存的所述第一节点的ICA,相应地,第四确定模块57不执行上述差集的步骤。
通常,一节点位于其直接邻居节点的CCA内。基于此,在一种可选的实现方式中,如图5d所示,定位节点500还包括:
第五确定模块58,用于确定一第二节点的CCA,所述第二节点为锚节点且为定位节点500的直接邻居节点,所述第二节点的CCA为以所述第二节点的位置为中心、以所述第二节点的通信半径为半径的区域;
第六确定模块59,用于确定定位节点500的PLA为之前确定的PLA与所述第二节点的CCA的交集。
其中,所述之前确定的PLA是在第六确定模块59执行上述交集的步骤之前已经确定的定位节点500的PLA。具体地,所述之前确定的PLA可以是预设的初始位置区域,比如:整个网络覆盖区域、无穷大的区域等,或者,是通过其它定位方法或步骤确定的定位节点500的PLA。
可选地,上述第五确定模块58确定一第二节点的CCA、第六确定模块59将定位节点500的PLA确定为之前确定的PLA与所述第二节点的CCA的交集,也可以发生在第二确定模块52将定位节点500的PLA确定为之前确定的PLA与所述第一节点的ICA的差集之后,相应地,上述第六确定模块59交集所用到的所述之前确定的PLA可以是第二确定模块52确定的PLA。
与第三确定模块54确定所述第一节点为非锚节点且为定位节点500的间接邻居节点类似,第五确定模块58可以根据接收模块53接收到的所述第二节点的信息包确定所述第二节点为锚节点且为定位节点500的直接邻居节点。可选地,所述第二节点的信息包包括:所述第二节点的节点标识,所述第二节点的位置信息或所述第二节点的CCA。
通常,一节点不位于其间接邻居节点的CCA内。基于此,在又一种可选的实现方式中,如图5e所示,定位节点500还包括:
第七确定模块510,用于确定一第三节点的CCA,所述第三节点为锚节点且为定位节点500的间接邻居节点,所述第三节点的CCA为以所述第三节点的位置为中心、以所述第三节点的通信半径为半径的区域;
第八确定模块511,用于确定定位节点500的PLA为之前确定的PLA与所述第三节点的CCA的差集。
其中,所述之前确定的PLA是在第八确定模块511执行上述差集的步骤之前已经确定的定位节点500的PLA。具体地,所述之前确定的PLA可以是预设的初始位置区域,比如:整个网络覆盖区域、无穷大的区域等,或者,是通过其它定位方法或步骤确定的定位节点500的PLA,如:第六确定模块59确定的PLA。
可选地,上述第七确定模块510确定一第三节点的CCA、第八确定模块511将定位节点500的PLA确定为之前确定的PLA与所述第三节点的CCA的差集,可以发生在第二确定模块52将定位节点500的PLA确定为之前确定的PLA与所述第一节点的ICA的差集之后。相应地,上述第八确定模块511差集所用到的所述之前确定的PLA可以是第二确定模块52确定的PLA。
与第三确定模块54确定所述第一节点为非锚节点且为定位节点500的间接邻居节点类似,第七确定模块510可以根据接收模块53接收到的所述第三节点的信息包确定所述第三节点为锚节点且为定位节点500的间接邻居节点。可选地,所述第三节点的第三信息包包括:所述第三节点的节点标识、所述第三节点的位置信息或所述第三节点的CCA。
在又一种可选的实现方式中,本实施例既包括第五确定模块58、第六确定模块59,又包括第七确定模块510、第八确定模块511。
通常,网络中存在多个非锚节点,可选地,其中有多个非锚节点均可以作为本实施例的定位节点500确定自身的PLA,也就是说,除了本实施例中的定位节点500利用其它非锚节点的ICA确定自己的PLA,其它的至少一个非锚节点也可以利用本实施例中的定位节点500的ICA确定自己的PLA,进一步地互相迭代、缩小各自的PLA。基于此,在上述任一种实现方式中,可选地,如图5f所示,定位节点500还包括:
第九确定模块512,用于至少根据定位节点500的PLA确定定位节点500的ICA;
广播模块513,用于广播定位节点500的一第三信息包,定位节点500的节点标识、定位节点500的ICA。
需要说明的是,所述第三信息包中也可以不包括定位节点500的ICA,作为替代地,所述第三信息包包括:定位节点500的节点标识、定位节点500的PLA,相应地,第九确定模块513无需确定定位节点500的ICA,而需要利用定位节点500的ICA来进行定位的其它定位节点可以至少根据定位节点500的PLA和定位节点500的通信半径来确定定位节点500的ICA。
可选地,所述第三信息包包括:定位节点500的节点标识、定位节点500的PLA和ICA。
可选地,各节点基于其它节点的请求发送自己的信息包,和/或,周期性地发送自己的信息包,和/或,当自己的信息包中的信息更新时(比如ICA或PLA发生变化时)发送自己的信息包;其中,上述发送信息包的方式可选地为广播方式。可选地,定位节点500还包括:请求模块,用于广播用于请求信息包的请求信息。
本实施例中,所述通信半径为预设的参考通信半径,或者,为对应节点的实际通信半径。举例来说,为实现方便,可以认为网络中各节点的通信半径都一样,且预先设定一参考通信半径,确定CCA、ICA所需的任一节点的通信半径均以所述参考通信半径为准。又举例来说,为了更准确的定位,考虑到网络中各节点的实际通信半径可能不同,各节点可以在自己的信息包中携带上自己的实际通信半径,和/或,在转发的其它节点的信息包中除了添加自己的节点标识或增加跳数值之外还添加自己的实际通信半径,这样的话,定位节点500可以根据各其它节点的信息包,和/或,各其它节点转发的信息包,确定各其它节点的实际通信半径,从而至少根据位置信息和实际通信半径确定所述第二节点的CCA和所述第三节点的CCA。
在上述任一可选的实现方式中,可选地,定位节点500在确定自身的PLA之后,还可以根据确定的PLA估计自身的位置。具体地,估计的方式有多种,举例来说,可以将确定的PLA的中心作为自身的位置,本实施例对此不做限定。
本实施例的一种可选的实现方式可以如图1b所示,相应地,本实施例的定位效果也可参照图2a~2d所示的定位效果。
本实施例通过定位节点中的第一确定模块确定一第一节点的ICA,所述第一节点为非锚节点且为所述定位节点的间接邻居节点,第二确定模块确定所述定位节点的PLA在所述第一节点的ICA外,提供了一种定位方案,且充分利用了网络中的其它非锚节点的PLA,进一步地使得非锚节点之间互相利用其它节点的PLA来收敛自己的PLA。
图6为本发明提供的一种定位节点实施例三的结构图。如图6所示,定位节点600包括:
处理器(processor)61、通信接口(CommunicationsInterface)62、存储器(memory)63、以及通信总线64。其中:
处理器61、通信接口62、以及存储器63通过通信总线64完成相互间的通信。
通信接口62,用于与比如邻居节点等外部设备的通信。
处理器61,用于执行程序632,具体可以执行上述定位方法实施例一中的相关步骤。
具体地,程序632可以包括程序代码,所述程序代码包括计算机操作指令。
处理器61可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecificIntegratedCircuit),或者是被配置成实施定位方法实施例一的一个或多个集成电路。
存储器63,用于存放程序632。存储器63可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。程序632具体可以用于使得定位节点600执行以下步骤:
确定一第一节点的可能通信区域,所述第一节点为非锚节点且为定位节点600的直接邻居节点,所述第一节点的可能通信区域为所述第一节点处于所述第一节点的可能位置区域内多个位置时的多个通信覆盖区域的并集;
确定定位节点600的可能位置区域在所述第一节点的可能通信区域内。
程序632中各步骤的具体实现可以参见上述定位方法实施例一中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述定位方法实施例一中的对应过程描述,在此不再赘述。
图7为本发明提供的一种定位节点实施例四的结构图。如图7所示,定位节点700包括:
处理器(processor)71、通信接口(CommunicationsInterface)72、存储器(memory)73、以及通信总线74。其中:
处理器71、通信接口72、以及存储器73通过通信总线74完成相互间的通信。
通信接口72,用于与比如邻居节点等外部设备的通信。
处理器71,用于执行程序732,具体可以执行上述定位方法实施例二中的相关步骤。
具体地,程序732可以包括程序代码,所述程序代码包括计算机操作指令。
处理器71可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecificIntegratedCircuit),或者是被配置成实施定位方法实施例二的一个或多个集成电路。
存储器73,用于存放程序732。存储器73可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。程序732具体可以用于使得定位节点700执行以下步骤:
确定一第一节点的必然通信区域,所述第一节点为非锚节点且为定位节点700的间接邻居节点,所述第一节点的必然通信区域为所述第一节点处于所述第一节点的可能位置区域内多个位置时的多个通信覆盖区域的交集;
确定定位节点700的可能位置区域在所述第一节点的必然通信区域外。
程序732中各步骤的具体实现可以参见上述定位方法实施例二中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述定位方法实施例二中的对应过程描述,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对原有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (40)
1.一种定位方法,其特征在于,所述方法包括:
定位节点确定一第一节点的可能通信区域,所述第一节点为非锚节点且为所述定位节点的直接邻居节点,所述第一节点的可能通信区域为所述第一节点处于所述第一节点的可能位置区域内多个位置时的多个通信覆盖区域的并集;
确定所述定位节点的可能位置区域在所述第一节点的可能通信区域内。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述定位节点接收所述第一节点的一第一信息包,所述第一信息包包括:所述第一节点的节点标识、所述第一节点的可能通信区域;
所述定位节点根据所述第一信息包,确定所述第一节点为非锚节点且为所述定位节点的直接邻居节点。
3.根据权利要求2所述的方法,其特征在于,所述接收所述第一节点的一第一信息包之后,还包括:
保存所述第一节点的可能通信区域;
所述确定所述定位节点的可能位置区域在所述第一节点的可能通信区域内之后,还包括:
接收所述第一节点的一第二信息包,所述第二信息包包括:所述第一节点的节点标识、所述第一节点的可能通信区域;
响应于所述第二信息包中的所述第一节点的可能通信区域与保存的所述第一节点的可能通信区域不同,更新保存的所述第一节点的可能通信区域;
将所述定位节点的可能位置区域确定为之前确定的可能位置区域与更新后的所述第一节点的可能通信区域的交集。
4.根据权利要求2或3所述的方法,其特征在于,所述定位节点接收所述第一节点的一第一信息包之前,还包括:
所述定位节点广播用于请求信息包的请求信息。
5.根据权利要求1~4中任一所述的方法,其特征在于,所述确定所述定位节点的可能位置区域在所述第一节点的可能通信区域内,包括:
所述定位节点将所述定位节点的可能位置区域确定为之前确定的可能位置区域与所述第一节点的可能通信区域的交集。
6.根据权利要求5所述的方法,其特征在于,所述确定所述定位节点的可能位置区域在所述第一节点的可能通信区域内之前,还包括:
所述定位节点确定一第二节点的通信覆盖区域,所述第二节点为锚节点且为所述定位节点的直接邻居节点,所述第二节点的通信覆盖区域为以所述第二节点的位置为中心、以所述第二节点的通信半径为半径的区域;
确定所述定位节点的可能位置区域为之前确定的可能位置区域与所述第二节点的通信覆盖区域的交集。
7.根据权利要求5或6所述的方法,其特征在于,所述确定所述定位节点的可能位置区域在所述第一节点的可能通信区域内之前,还包括:
所述定位节点确定一第三节点的通信覆盖区域,所述第三节点为锚节点且为所述定位节点的间接邻居节点,所述第三节点的通信覆盖区域为以所述第三节点的位置为中心、以所述第三节点的通信半径为半径的区域;
确定所述定位节点的可能位置区域为之前确定的可能位置区域与所述第三节点的通信覆盖区域的差集。
8.根据权利要求6或7所述的方法,其特征在于,所述通信半径为预设的参考通信半径,或者,为对应节点的实际通信半径。
9.根据权利要求5~8中任一所述的方法,其特征在于,所述定位节点将所述定位节点的可能位置区域确定为之前确定的可能位置区域与所述第一节点的可能通信区域的交集之后,还包括:
所述定位节点确定又一第一节点的可能通信区域;
将所述定位节点的可能位置区域确定为之前确定的可能位置区域与所述又一第一节点的可能通信区域的交集。
10.根据权利要求1~9中任一所述的方法,其特征在于,所述方法还包括:
所述定位节点确定一第四节点的必然通信区域,所述第四节点为非锚节点且为所述定位节点的间接邻居节点,所述第四节点的必然通信区域为所述第四节点处于所述第四节点的可能位置区域内多个位置时的多个通信覆盖区域的交集;
将所述定位节点的可能位置区域确定为之前确定的可能位置区域与所述第四节点的必然通信区域的差集。
11.根据权利要求1~10中任一所述的方法,其特征在于,所述方法还包括:
所述定位节点至少根据所述定位节点的可能位置区域确定所述定位节点的可能通信区域;
广播所述定位节点的一第三信息包,所述第三信息包包括:所述定位节点的节点标识、所述定位节点的可能通信区域。
12.根据权利要求10所述的方法,其特征在于,所述方法还包括:
所述定位节点至少根据所述定位节点的可能位置区域确定所述定位节点的必然通信区域和可能通信区域;
广播所述定位节点的一第四信息包,所述第四信息包包括:所述定位节点的节点标识、所述定位节点的必然通信区域和可能通信区域。
13.一种定位方法,其特征在于,所述方法包括:
定位节点确定一第一节点的必然通信区域,所述第一节点为非锚节点且为所述定位节点的间接邻居节点,所述第一节点的必然通信区域为所述第一节点处于所述第一节点的可能位置区域内多个位置时的多个通信覆盖区域的交集;
确定所述定位节点的可能位置区域在所述第一节点的必然通信区域外。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
所述定位节点接收所述第一节点的至少一第一信息包,所述第一信息包包括:所述第一节点的节点标识、所述第一节点的必然通信区域;
所述定位节点根据所述至少一第一信息包,确定所述第一节点为非锚节点且为所述定位节点的间接邻居节点。
15.根据权利要求14所述的方法,其特征在于,所述接收所述第一节点的至少一第一信息包之后,还包括:
保存所述第一节点的必然通信区域;
所述确定所述定位节点的可能位置区域在所述第一节点的必然通信区域外之后,还包括:
接收所述第一节点的一第二信息包,所述第二信息包包括:所述第一节点的节点标识、所述第一节点的必然通信区域;
响应于所述第二信息包中的所述第一节点的必然通信区域与保存的所述第一节点的必然通信区域不同,更新保存的所述第一节点的必然通信区域;
将所述定位节点的可能位置区域确定为之前确定的可能位置区域与更新后的所述第一节点的必然通信区域的差集。
16.根据权利要求14或15所述的方法,其特征在于,所述定位节点接收所述第一节点的至少一第一信息包之前,还包括:
所述定位节点广播用于请求信息包的请求信息。
17.根据权利要求13~16中任一所述的方法,其特征在于,所述确定所述定位节点的可能位置区域在所述第一节点的必然通信区域外,包括:
所述定位节点将所述定位节点的可能位置区域确定为之前确定的可能位置区域与所述第一节点的必然通信区域的差集。
18.根据权利要求17所述的方法,其特征在于,所述确定所述定位节点的可能位置区域在所述第一节点的必然通信区域外之前,还包括:
所述定位节点确定一第二节点的通信覆盖区域,所述第二节点为锚节点且为所述定位节点的直接邻居节点,所述第二节点的通信覆盖区域为以所述第二节点的位置为中心、以所述第二节点的通信半径为半径的区域;
确定所述定位节点的可能位置区域为之前确定的可能位置区域与所述第二节点的通信覆盖区域的交集。
19.根据权利要求17或18所述的方法,其特征在于,所述确定所述定位节点的可能位置区域在所述第一节点的必然通信区域外之前,还包括:
所述定位节点确定一第三节点的通信覆盖区域,所述第三节点为锚节点且为所述定位节点的间接邻居节点,所述第三节点的通信覆盖区域为以所述第三节点的位置为中心、以所述第三节点的通信半径为半径的区域;
确定所述定位节点的可能位置区域为之前确定的可能位置区域与所述第三节点的通信覆盖区域的差集。
20.根据权利要求18或19所述的方法,其特征在于,所述通信半径为预设的参考通信半径,或者,为对应节点的实际通信半径。
21.根据权利要求17~20中任一所述的方法,其特征在于,所述定位节点将所述定位节点的可能位置区域确定为之前确定的可能位置区域与所述第一节点的必然通信区域的差集之后,还包括:
所述定位节点确定又一第一节点的必然通信区域;
将所述定位节点的可能位置区域确定为之前确定的可能位置区域与所述又一第一节点的必然通信区域的差集。
22.根据权利要求13~21中任一所述的方法,其特征在于,所述方法还包括:
所述定位节点至少根据所述定位节点的可能位置区域确定所述定位节点的必然通信区域;
广播所述定位节点的一第三信息包,所述定位节点的节点标识、所述定位节点的必然通信区域。
23.一种定位节点,其特征在于,所述定位节点包括:
第一确定模块,用于确定一第一节点的可能通信区域,所述第一节点为非锚节点且为所述定位节点的直接邻居节点,所述第一节点的可能通信区域为所述第一节点处于所述第一节点的可能位置区域内多个位置时的多个通信覆盖区域的并集;
第二确定模块,用于确定所述定位节点的可能位置区域在所述第一节点的可能通信区域内。
24.根据权利要求23所述的定位节点,其特征在于,所述定位节点还包括:
接收模块,用于接收所述第一节点的一第一信息包,所述第一信息包包括:所述第一节点的节点标识、所述第一节点的可能通信区域;
第三确定模块,用于根据所述第一信息包,确定所述第一节点为非锚节点且为所述定位节点的直接邻居节点。
25.根据权利要求24所述的定位节点,其特征在于,所述定位节点还包括:保存模块,用于保存所述第一节点的可能通信区域;
所述接收模块还用于,在所述第二确定模块确定所述定位节点的可能位置区域在所述第一节点的可能通信区域内之后,接收所述第一节点的一第二信息包,所述第二信息包包括:所述第一节点的节点标识、所述第一节点的可能通信区域;
所述定位节点还包括:
更新模块,用于响应于所述第二信息包中的所述第一节点的可能通信区域与保存的所述第一节点的可能通信区域不同,更新所述保存模块保存的所述第一节点的可能通信区域;
第四确定模块,用于将所述定位节点的可能位置区域确定为之前确定的可能位置区域与更新后的所述第一节点的可能通信区域的交集。
26.根据权利要求23~25中任一所述的定位节点,其特征在于,所述第二确定模块具体用于:将所述定位节点的可能位置区域确定为之前确定的可能位置区域与所述第一节点的可能通信区域的交集。
27.根据权利要求26所述的定位节点,其特征在于,所述定位节点还包括:
第五确定模块,用于确定一第二节点的通信覆盖区域,所述第二节点为锚节点且为所述定位节点的直接邻居节点,所述第二节点的通信覆盖区域为以所述第二节点的位置为中心、以所述第二节点的通信半径为半径的区域;
第六确定模块,用于确定所述定位节点的可能位置区域为之前确定的可能位置区域与所述第二节点的通信覆盖区域的交集。
28.根据权利要求26或27所述的定位节点,其特征在于,所述定位节点还包括:
第七确定模块,用于确定一第三节点的通信覆盖区域,所述第三节点为锚节点且为所述定位节点的间接邻居节点,所述第三节点的通信覆盖区域为以所述第三节点的位置为中心、以所述第三节点的通信半径为半径的区域;
第八确定模块,用于确定所述定位节点的可能位置区域为之前确定的可能位置区域与所述第三节点的通信覆盖区域的差集。
29.根据权利要求26~28中任一所述的定位节点,其特征在于,所述第一确定模块还用于:确定又一第一节点的可能通信区域;
所述第二确定模块还用于:将所述定位节点的可能位置区域确定为之前确定的可能位置区域与所述又一第一节点的可能通信区域的交集。
30.根据权利要求23~29中任一所述的定位节点,其特征在于,所述定位节点还包括:
第九确定模块,用于确定一第四节点的必然通信区域,所述第四节点为非锚节点且为所述定位节点的间接邻居节点,所述第四节点的必然通信区域为所述第四节点处于所述第四节点的可能位置区域内多个位置时的多个通信覆盖区域的交集;
第十确定模块,用于将所述定位节点的可能位置区域确定为之前确定的可能位置区域与所述第四节点的必然通信区域的差集。
31.根据权利要求23~30中任一所述的定位节点,其特征在于,所述定位节点还包括:
第十一确定模块,用于至少根据所述定位节点的可能位置区域确定所述定位节点的可能通信区域;
第一广播模块,用于广播所述定位节点的一第三信息包,所述第三信息包包括:所述定位节点的节点标识、所述定位节点的可能通信区域。
32.根据权利要求30所述的定位节点,其特征在于,所述定位节点还包括:
第十二确定模块,用于至少根据所述定位节点的可能位置区域确定所述定位节点的必然通信区域和可能通信区域;
第二广播模块,用于广播所述定位节点的一第四信息包,所述第四信息包包括:所述定位节点的节点标识、所述定位节点的必然通信区域和可能通信区域。
33.一种定位节点,其特征在于,所述定位节点包括:
第一确定模块,用于确定一第一节点的必然通信区域,所述第一节点为非锚节点且为所述定位节点的间接邻居节点,所述第一节点的必然通信区域为所述第一节点处于所述第一节点的可能位置区域内多个位置时的多个通信覆盖区域的交集;
第二确定模块,用于确定所述定位节点的可能位置区域在所述第一节点的必然通信区域外。
34.根据权利要求33所述的定位节点,其特征在于,所述定位节点还包括:
接收模块,用于接收所述第一节点的至少一第一信息包,所述第一信息包包括:所述第一节点的节点标识、所述第一节点的必然通信区域;
第三确定模块,用于根据所述至少一第一信息包,确定所述第一节点为非锚节点且为所述定位节点的间接邻居节点。
35.根据权利要求34所述的定位节点,其特征在于,所述定位节点还包括:保存模块,用于保存所述第一节点的必然通信区域;
所述接收模块还用于,在所述第二确定模块确定所述定位节点的可能位置区域在所述第一节点的必然通信区域外之后,接收所述第一节点的一第二信息包,所述第二信息包包括:所述第一节点的节点标识、所述第一节点的必然通信区域;
所述定位节点还包括:
更新模块,用于响应于所述第二信息包中的所述第一节点的必然通信区域与保存的所述第一节点的必然通信区域不同,更新所述保存模块保存的所述第一节点的必然通信区域;
第四确定模块,用于将所述定位节点的可能位置区域确定为之前确定的可能位置区域与更新后的所述第一节点的必然通信区域的差集。
36.根据权利要求33~35中任一所述的定位节点,其特征在于,所述第二确定模块具体用于:将所述定位节点的可能位置区域确定为之前确定的可能位置区域与所述第一节点的必然通信区域的差集。
37.根据权利要求36所述的定位节点,其特征在于,所述定位节点还包括:
第五确定模块,用于确定一第二节点的通信覆盖区域,所述第二节点为锚节点且为所述定位节点的直接邻居节点,所述第二节点的通信覆盖区域为以所述第二节点的位置为中心、以所述第二节点的通信半径为半径的区域;
第六确定模块,用于确定所述定位节点的可能位置区域为之前确定的可能位置区域与所述第二节点的通信覆盖区域的交集。
38.根据权利要求36或37所述的定位节点,其特征在于,所述定位节点还包括:
第七确定模块,用于确定一第三节点的通信覆盖区域,所述第三节点为锚节点且为所述定位节点的间接邻居节点,所述第三节点的通信覆盖区域为以所述第三节点的位置为中心、以所述第三节点的通信半径为半径的区域;
第八确定模块,用于确定所述定位节点的可能位置区域为之前确定的可能位置区域与所述第三节点的通信覆盖区域的差集。
39.根据权利要求36~38中任一所述的定位节点,其特征在于,所述第一确定模块还用于:确定又一第一节点的必然通信区域;
所述第二确定模块还用于:将所述定位节点的可能位置区域确定为之前确定的可能位置区域与所述又一第一节点的必然通信区域的差集。
40.根据权利要求33~39中任一所述的定位节点,其特征在于,所述定位节点还包括:
第九确定模块,用于至少根据所述定位节点的可能位置区域确定所述定位节点的必然通信区域;
广播模块,用于广播所述定位节点的一第三信息包,所述定位节点的节点标识、所述定位节点的必然通信区域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410209784.9A CN105101402B (zh) | 2014-05-16 | 2014-05-16 | 定位方法及定位节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410209784.9A CN105101402B (zh) | 2014-05-16 | 2014-05-16 | 定位方法及定位节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105101402A true CN105101402A (zh) | 2015-11-25 |
CN105101402B CN105101402B (zh) | 2019-06-21 |
Family
ID=54580661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410209784.9A Active CN105101402B (zh) | 2014-05-16 | 2014-05-16 | 定位方法及定位节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105101402B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101004448A (zh) * | 2007-01-18 | 2007-07-25 | 北京航空航天大学 | 无线传感器网络三角滤波凸规划定位方法 |
CN101363909A (zh) * | 2008-09-04 | 2009-02-11 | 南昌大学 | 一种基于单元格的无线传感器网络定位方法 |
CN101493517A (zh) * | 2009-02-23 | 2009-07-29 | 东南大学 | 传感器网络中不依赖地理位置信息的节点定位方法 |
WO2013081696A1 (en) * | 2011-12-02 | 2013-06-06 | Apple Inc. | Methods for operating wireless electronic devices in coordinated multipoint transmission networks |
-
2014
- 2014-05-16 CN CN201410209784.9A patent/CN105101402B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101004448A (zh) * | 2007-01-18 | 2007-07-25 | 北京航空航天大学 | 无线传感器网络三角滤波凸规划定位方法 |
CN101363909A (zh) * | 2008-09-04 | 2009-02-11 | 南昌大学 | 一种基于单元格的无线传感器网络定位方法 |
CN101493517A (zh) * | 2009-02-23 | 2009-07-29 | 东南大学 | 传感器网络中不依赖地理位置信息的节点定位方法 |
WO2013081696A1 (en) * | 2011-12-02 | 2013-06-06 | Apple Inc. | Methods for operating wireless electronic devices in coordinated multipoint transmission networks |
Also Published As
Publication number | Publication date |
---|---|
CN105101402B (zh) | 2019-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101378630B1 (ko) | 무선 네트워크의 상태를 표시하는 장치 및 방법 | |
US9306648B2 (en) | Method and device for performing beam tracking through short range object detection | |
Sotheara et al. | Effective data gathering and energy efficient communication protocol in wireless sensor networks employing UAV | |
CN106664678A (zh) | 经由Bluetooth低能量扫描进行运动检测 | |
US9730142B2 (en) | Device and method for performing route search in wireless relay network, and non-transitory computer readable medium | |
KR101844417B1 (ko) | 주변 연결에서 무선 인터페이스 선택 방법 및 허브 | |
JP2017531809A (ja) | 情報のスマートインタラクション及びブロードキャストのためのレンジ構成可能なビーコンベース装置 | |
CN101409678A (zh) | 在ad hoc网络设置包传输路径的方法及网络设备 | |
US9736726B2 (en) | Techniques for optimizing a mesh network | |
CN106303908B (zh) | 设备间通信方法及设备间通信装置 | |
KR20160149562A (ko) | 이동 로봇 주행 시스템, 자율 주행 로봇, 및 로봇 이동 제어 방법 | |
US9161251B2 (en) | Data transmission system for determining data transmission power using a virtual cell | |
KR101560523B1 (ko) | 에너지 효율성을 고려한 무선센서 네트워크 운영방법 | |
CN107949031A (zh) | 一种无线网络的扫描方法、移动终端及存储介质 | |
CN107645771B (zh) | 一种定位方法及装置 | |
KR101663994B1 (ko) | 사물 인터넷에 기반한 기기 간 무선 통신 환경에서 경량화 라우팅 프로토콜 제공 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
US8989732B2 (en) | Method and apparatus for setting communication target in wireless communication system | |
CN104457733A (zh) | 室内电子装置定位系统及方法 | |
WO2019084924A1 (zh) | 传输数据的方法和设备 | |
US11457341B2 (en) | Apparatuses, method and computer programs for a first vehicle and for a second vehicle | |
CN106301676A (zh) | 一种数据传输方法、设备及系统 | |
CN105101402A (zh) | 定位方法及定位节点 | |
US20140133311A1 (en) | Method and apparatus for configuring routing path in wireless communication system | |
EP3542567B1 (en) | Load balancing in cellular networks | |
CN114258048B (zh) | 组网方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |