CN103269517A - 基于CC2530和ZigBee技术的定位系统及其实现方法 - Google Patents
基于CC2530和ZigBee技术的定位系统及其实现方法 Download PDFInfo
- Publication number
- CN103269517A CN103269517A CN2013101643865A CN201310164386A CN103269517A CN 103269517 A CN103269517 A CN 103269517A CN 2013101643865 A CN2013101643865 A CN 2013101643865A CN 201310164386 A CN201310164386 A CN 201310164386A CN 103269517 A CN103269517 A CN 103269517A
- Authority
- CN
- China
- Prior art keywords
- module
- message
- rssi
- coordinate
- router
- 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.)
- Pending
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了基于CC2530和ZigBee技术的定位系统及其实现方法,该定位系统包括基于Z-Stack协议栈的ZigBee无线网络单元,分别与所述ZigBee无线网络单元连接的无线终端和待定位模块,以及与所述待定位模块连接的电源;所述无线终端,通过ZigBee无线网络单元,获取待定位模块的相应信息,并基于所得相应信息进行计算,得到待定位模块的位置信息。本发明所述基于CC2530和ZigBee技术的定位系统及其实现方法,可以克服现有技术中精度低、受参考节点密度及分布影响大、以及受误差累计影响大等缺陷,以实现精度高、受参考节点密度及分布影响小、以及受误差累计影响小的优点。
Description
技术领域
本发明涉及通信技术领域,具体地,涉及基于CC2530和ZigBee技术的定位系统及其实现方法。
背景技术
ZigBee是一种低数据率、低功耗的短程无线通信网络协议,适用于工业控制和传感网络,于2002年由ZigBee联盟成立并提出,它接受了IEEE802.15.4协议作为协议的PHY层和MAC层。ZigBee协议工作于868MHz、915MHz和2.4GHz,其中2.4GHz是全球免执照频段,最大数据传输率为250kbps,支持星状、网状、树状等网络结构,且支持自组网。
TI出品的CC2530,是一款针对ZigBee的片上系统解决方案,集成了一个高性能射频收发器和51核的基带处理器;另外,还包括8KB RAM和最高达到256KB的大容量闪存及其它功能外设,整体设计非常小巧,功耗也极低。
在现有技术中,无线传感器网络定位算法的性能通常由定位精度、定位所需的时间代价和空间代价、传感器网络的能耗、适用规模与环境、覆盖率以及自适应性和容错性等来决定。其中定位精度和能耗在算法的设计和实现中尤为重要。常用的定位算法还有质心算法,它完全基于网络的互通性,无需参考节点与未知节点的协调,实现简单。但是质心算法的精度很难有定量的表达,而且与参考节点的密度以及分布有很大的关系,并且容易受到误差累计的影响。
在实现本发明的过程中,发明人发现现有技术中至少存在精度低、受参考节点密度及分布影响大、以及受误差累计影响大等缺陷。
发明内容
本发明的目的在于,针对上述问题,提出基于CC2530和ZigBee技术的定位系统,以实现精度高、受参考节点密度及分布影响小、以及受误差累计影响小的优点。
本发明的第二目的在于,提出基于CC2530和ZigBee技术的定位系统的实现方法。
为实现上述目的,本发明采用的技术方案是:基于CC2530和ZigBee技术的定位系统,包括基于Z-Stack协议栈的ZigBee无线网络单元,分别与所述ZigBee无线网络单元连接的无线终端和待定位模块(待定位模块是指无线网络中需要获取其位置信息的一个路由器),以及与所述待定位模块连接的电源;
所述无线终端,通过ZigBee无线网络单元,获取待定位模块的相应信息,并基于所得相应信息进行计算,得到待定位模块的位置信息。
进一步地,所述电源,具体是蓄电池或干电池或移动电源。
进一步地,所述无线终端,具体是PC或笔记本电脑或掌上电脑或平板电脑或手机。
进一步地,所述ZigBee无线网络单元,包括基于CC2530的协调器,以及配置在多个位置固定且坐标已知的参考节点处、且基于CC2530的多个路由器;所述待定位模块位于多个路由器形成的场区中,每个路由器与协调器无线连接。
进一步地,所述待定位模块,包括用于周期性休眠以减少能耗的周期性休眠模块,用于自休眠状态醒来时向外发送报文的醒时报文发送模块,用于在发完一次报文后将报文序号递加、并准备进行休眠状态等待下次发送报文的报文序号递加模块;
所述周期性休眠模块、醒时报文发送模块和报文序号递加模块依次连接,所述报文序号递加模块与周期性休眠模块连接,所述醒时报文发送模块与临近的相应路由器连接。
进一步地,每个路由器,包括用于自所述醒时报文发送模块发送报文中提取报文、以及接收信号指示强度的报文及接收信号指示强度提取模块,用于结合提取所得报文及接收信号指示强度、以及自身ID并生成新报文的新报文生成模块,用于随机延时发送新报文、以及对接收到的其他路由器发来的数据报文进行转发的新报文延时发送模块;
所述报文及接收信号指示强度提取模块、新报文生成模块和报文延时发送模块依次连接;所述报文及接收信号指示强度提取模块,与醒时报文发送模块连接;所述新报文延时发送模块,与协调器连接。
进一步地,所述协调器,包括用于建立所述ZigBee无线网络单元所处无线网络环境的无线网络建立模块,用于维护所述ZigBee无线网络单元所处无线网络环境的无线网络维护模块,用于接收所述新报文延时发送模块发送新报文的新报文接收模块,用于将接收所得新报文转发至无线终端的新报文转发模块;
所述无线网络建立模块、无线网络维护模块、新报文接收模块和新报文转发模块依次连接;所述新报文转发模块和无线网络维护模块,分别与无线终端连接;所述新报文接收模块与新报文延时发送模块连接。
进一步地,所述无线终端,包括用于存储及更新各路由器ID及参考节点坐标的各路由器ID及参考节点坐标对应表存储及更新模块,用于接收来自与待定位模块临近的多个路由器的相应新报文的多个新报文接收模块,用于提取接收到的每个新报文对应信号功率值的功率值提取模块,用于根据提取的功率值、从所接收多个新报文中选取RSSI值较大的若干报文、并将所选报文的RSSI值换算为距离的报文挑选及换算模块,用于根据所选报文携带的路由器ID、从各路由器ID及参考节点坐标对应表查找得到相应参考节点坐标的路由器参考节点坐标查找模块,用于基于查找所得相应路由器参考节点坐标求取待定位模块位置信息的待定位模块位置信息计算模块;
所述多个新报文接收模块、功率值提取模块、报文挑选及换算模块、路由器参考节点坐标查找模块和待定位模块位置信息计算模块依次连接,所述无线网络维护模块、各路由器ID及参考节点坐标对应表存储及更新模块、以及路由器参考节点坐标查找模块依次连接,所述新报文转发模块与多个新报文接收模块连接。
同时,本发明采用的另一技术方案是:以上所述的基于CC2530和ZigBee技术的定位系统的实现方法,包括:
a、将基于CC2530的模块配置为协调器,并与诸如计算机的无线终端通过串口相连;由协调器建立和维护基于Z-Stack协议栈的ZigBee无线网络;在无线终端上安装能够处理协调器送来报文的应用程序,无线终端通过串口接收协调器发来的报文;
b、在设定场区内,布置多个位置固定且坐标已知的参考节点,为每个参考节点所在位置编号;在无线终端中,设置用于保存参考节点坐标位置和编号对应关系的参考节点坐标位置和编号对应关系表;
在每个参考节点的坐标位置处,安置基于CC2530的模块,并配置为路由器;路由器收到来自待定位模块的信息后,负责向协调器发起数据报文;收到来自别的路由器发来的数据报文时,负责转发报文;
c、待定位模块采用电池供电,每次发送完报文,将报文序号加一后即进入睡眠状态等待下一次发送;
d、临近待定位模块的场区内多个路由器收到报文;路由器提取报文及接收信号指示强度,再将这些信息连同自身ID组织成新的报文,并在一个随机延时后发往协调器;
e、协调器将信息通过串口传递给无线终端,由无线终端进行统一处理;无线终端从这组报文中挑选RSSI值最大的三个报文,将RSSI换算为距离,再从表中对应查找到接收节点的坐标,就能够联立方程以求解待定位模块的位置。
进一步地,在步骤e中,所述联立方程以求解待定位模块的位置的操作,具体包括:
通过三个固定位置的节点来确定一个未知节点,选择接收信号强度最强的三个固定位置的节点作为定位参考点,同时包含缩小误差,对真实位置进行无限逼近;
上述对真实位置进行无限逼近的算法,具体包括以下三个部分:
⑴利用曲线拟合的最小二乘法拟合出信号强度RSSI与距离d的关系式:
将在精确模拟的应用环境下多次测量得到的数据,进行处理,根据RSSI和距离d的大约理论关系,去掉一些测量效果非常不好的点的值,得到RSSI的平均值和距离后,绘制出以RSSI为x轴、d为y轴的折线图,该折线图大致符合信号传播的衰减模型;
再根据最小二乘法进行曲线拟合就可得到RSSI与距离d的关系;具体过程如下:
②根据,得到:
经计算得到:
相应的法方程为:
;
④带入所设方程得到RSSI-d的经验公式:
其中,d的单位为m,RSSI的单位为dBm;
⑵运用三边定位原理并结合极大似然法得到所求的节点的位置坐标:
算法基于三边测量法,首先要得到待定位模块D(x,y)到各个已知节点的距离;设已知固定节点为,待定位模块周期地广播信息,固定节点收到信息,并提取RSSI值,组织新数据包上传到协调器,最后被无线终端处理;
A、B、C三点RSSI的值记为RSSI_AVERa、RSSI_AVERb、RSSI_AVERc;根据曲线拟合得到的距离与RSSI的函数关系计算出未知节点到各个已知节点的距离;以已知节点的坐标和计算得来的距离值为输入建立方程组并化简为矩阵方程的形式;
⑶误差估计与误差最小化,其中再次用到极大似然估计法:
因此:
把上式看作X的函数,令其梯度等于零,得到:
由第一个方程开始分别减去最后一个方程,得到:
化为线性方程组为:AX=b,其中:
采用极大似然估计法来估计到最接近其真实值的估计值的具体算法中,在解矩阵方程时,用高斯消去法先将其增广矩阵化为上三角形矩阵,再进行回带即可得到方程组的解;得到坐标值后利用极大似然法进行误差估计,若误差在允许范围之内则直接输出结果;若误差太大,则将估计值加上误差值再进行误差估计直到误差在允许的范围内。
本发明各实施例的基于CC2530和ZigBee技术的定位系统及其实现方法,由于该定位系统包括基于Z-Stack协议栈的ZigBee无线网络单元,分别与ZigBee无线网络单元连接的无线终端和待定位模块,以及与待定位模块连接的电源;无线终端,通过ZigBee无线网络单元,获取待定位模块的相应信息,并基于所得相应信息进行计算,得到待定位模块的位置信息;可以实现对移动物体的实时定位;从而可以克服现有技术中精度低、受参考节点密度及分布影响大、以及受误差累计影响大的缺陷,以实现精度高、受参考节点密度及分布影响小、以及受误差累计影响小的优点。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明基于CC2530和ZigBee技术的定位系统的工作原理示意图;
图2为本发明基于CC2530和ZigBee技术的定位系统优选实施例的工作原理示意图;
图3为本发明中方程组有解情况的三边测量定位原理示意图;
图4为本发明中方程组无解情况一的三边测量定位原理示意图;
图5为本发明中方程组无解情况二的三边测量定位原理示意图;
图6为本发明基于CC2530和ZigBee技术的定位系统的实现方法的流程示意图。
结合附图,本发明实施例中附图标记如下:
1-PC;2-协调器;3-路由器;4-待定位模块。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
为了克服现有技术中质心算法的精度很难有定量的表达和容易受到误差累计的影响等缺陷,根据本发明实施例,如图1-图5所示,提供了一种基于CC2530和ZigBee技术的定位系统及其实现方法,主要包括ZigBee组网、消息路由、距离估计、误差估计和定位算法等操作。该基于CC2530和ZigBee技术的定位系统实现方法,具体涉及一种基于ZigBee无线网络,可以实现对移动物体的实时定位,属于ZigBee在物联网中的应用领域。
本发明实施例的基于CC2530和ZigBee技术的定位系统及其实现方法,使用TI提供的Z-Stack协议栈,它完全符合ZigBee协议的要求,为开发的稳定性以及可维护性提供了保证,并缩短了开发的周期。将网络中固定位置坐标的接收节点配置为路由器,接收待定位模块周期性发送出的信息并提取RSSI值。路由器可以方便发起新报文的传送,也可转发来自别的路由器的报文。报文最终被送至协调器,并上传到PC进行定位处理。
系统实施例
参见图1,本实施例的基于CC2530和ZigBee技术的定位系统,包括基于Z-Stack协议栈的ZigBee无线网络单元,分别与ZigBee无线网络单元连接的无线终端和待定位模块(如待定位模块4),以及与待定位模块连接的电源;无线终端,通过ZigBee无线网络单元,获取待定位模块的相应信息,并基于所得相应信息进行计算,得到待定位模块的位置信息。该电源,具体可以是蓄电池或干电池或移动电源。该无线终端,具体可以是PC(如PC 1)或笔记本电脑或掌上电脑或平板电脑或手机。
其中,ZigBee无线网络单元,包括基于CC2530的协调器(如协调器2),以及配置在多个位置固定且坐标已知的参考节点处、且基于CC2530的多个路由器(如路由器3);待定位模块位于多个路由器形成的场区中,每个路由器与协调器无线连接。
参见图2,上述待定位模块,包括用于周期性休眠以减少能耗的周期性休眠模块,用于自休眠状态醒来时向外发送报文的醒时报文发送模块,用于在发完一次报文后将报文序号递加、并准备进行休眠状态等待下次发送报文的报文序号递加模块;周期性休眠模块、醒时报文发送模块和报文序号递加模块依次连接,报文序号递加模块与周期性休眠模块连接,醒时报文发送模块与临近的相应路由器连接。
参见图2,上述每个路由器,包括用于自醒时报文发送模块发送报文中提取报文、以及接收信号指示强度的报文及接收信号指示强度提取模块,用于结合提取所得报文及接收信号指示强度、以及自身ID并生成新报文的新报文生成模块,用于随机延时发送新报文、以及对接收到的其他路由器发来的数据报文进行转发的新报文延时发送模块;报文及接收信号指示强度提取模块、新报文生成模块和报文延时发送模块依次连接;报文及接收信号指示强度提取模块,与醒时报文发送模块连接;新报文延时发送模块,与协调器连接。
参见图2,上述协调器,包括用于建立ZigBee无线网络单元所处无线网络环境的无线网络建立模块,用于维护ZigBee无线网络单元所处无线网络环境的无线网络维护模块,用于接收新报文延时发送模块发送新报文的新报文接收模块,用于将接收所得新报文转发至无线终端的新报文转发模块;无线网络建立模块、无线网络维护模块、新报文接收模块和新报文转发模块依次连接;新报文转发模块和无线网络维护模块,分别与无线终端连接;新报文接收模块与新报文延时发送模块连接。
参见图2,上述无线终端,包括用于存储及更新各路由器ID及参考节点坐标的各路由器ID及参考节点坐标对应表存储及更新模块,用于接收来自与待定位模块临近的多个路由器的相应新报文的多个新报文接收模块,用于提取接收到的每个新报文对应信号功率值的功率值提取模块,用于根据提取的功率值、从所接收多个新报文中选取RSSI值较大的若干报文、并将所选报文的RSSI值换算为距离的报文挑选及换算模块,用于根据所选报文携带的路由器ID、从各路由器ID及参考节点坐标对应表查找得到相应参考节点坐标的路由器参考节点坐标查找模块,用于基于查找所得相应路由器参考节点坐标求取待定位模块位置信息的待定位模块位置信息计算模块;多个新报文接收模块、功率值提取模块、报文挑选及换算模块、路由器参考节点坐标查找模块和待定位模块位置信息计算模块依次连接,无线网络维护模块、各路由器ID及参考节点坐标对应表存储及更新模块、以及路由器参考节点坐标查找模块依次连接,新报文转发模块与多个新报文接收模块连接。
在上述实施例的基于CC2530和ZigBee技术的定位系统中,以TI出品的CC2530为核心,实现三类模块:协调器、路由器和待定位模块;TI出品的CC2530是一款针对 ZigBee的片上系统解决方案。采用TI提供的Z-Stack协议栈,由协调器维护和建立无线网络,同时通过串口与PC通信,将所有定位信息交由PC运算处理;各个位置固定且坐标已知的参考节点被配置为路由器,并加入由协调器建立的无线网络;待定位模块周期性的休眠,每次醒来时向外发送报文。
这样,待定位模块以一定功率发送信息,在接收方可以侦测到接收信号的功率值,从而可以推算出两个节点的距离。因为在网络中,有多个位置已知的参考节点都接收到信息,所以每次可以得到一组距离值,联立方程组从而可解出待定位模块的位置信息。这里,根据接收方侦测到待定位模块发送信息的功率值,推算出两个节点的距离的操作中,涉及的软件算法包括:
⑴用最小二乘法拟合RSSI-Distance曲线,形成经验公式;
⑵运用三边定位原理、并结合极大似然法,得到所求的节点的位置坐标;
⑶误差估计与误差最小化。
具体地,在上述实施例中,基于CC2530和ZigBee技术的定位系统的工作流程,包括:
⑴基于CC2530实现三类模块:协调器、路由器和待定位模块。采用TI提供的Z-Stack协议栈,由协调器和路由器搭建ZigBee无线网络环境,待定位模块周期性地发送包含自身的ID和该次发送序号的报文。
⑵针对待定位模块的移动特性,采用电池供电。待定位模块每次发送完报文,将报文序号加一后即进入睡眠状态等待下一次发送,使得功耗最省。
⑶在临近待定位模块的场区内多个路由器收到报文。路由器提取报文及接收信号指示强度,再将这些信息连同自身的ID组织成新的报文,并在一个随机延时后发往协调器。路由器收到来自别的路由器发来的报文时,负责转发报文。
⑷协调器将信息通过串口传递给PC,由PC进行处理。
对于特定的序号,协调器会收到一组由几个路由器发起的报文,这些报文包含有不同的RSSI值,代表了待定位模块距离这些路由器的距离。PC从这组报文中挑选RSSI值最大的三个报文,将RSSI换算为距离。PC里存储了一张表,表里维护了各个路由器ID与其坐标地址的对应关系。根据报文中路由器ID信息,在表里查找出对应的参考节点坐标,由此联立方程以求解待定位模块的位置。
在PC上计算带定位模块的位置信息的具体算法,包括:
⑸用最小二乘法拟合RSSI-Distance曲线,形成经验公式。
取两个模块进行先期实验,一个作为发送方,另一个作为接收方。随着接收方和发送方的距离变化,接收方提取的RSSI值也不断变化,将这些数据记录下来,即可描绘出一条RSSI-Distance图形。为最小化由样本造成的偏差,对多对模块进行多次实验,将每个距离上的RSSI取平均值,再采用最小二乘法拟合出最佳的曲线方程。
⑹运用三边定位原理并结合极大似然法得到所求的节点的位置坐标。
三边测量定位法的优点在于只需知道3个参考节点的坐标和未知节点到各个参考节点的距离,即可计算待定位模块的坐标。但在实际的应用环境中,由于测量误差的存在,使得未知节点到3个已知节点的距离不准确,从而造成了方程组无解的情况,采用极大似然法来解决这种问题。
⑺误差估计与误差最小化。
运用矩阵运算来解方程组。采用高斯消去法先将其增广矩阵化为上三角形矩阵,再进行回带即可得到方程组的解。得到坐标值后利用极大似然法进行误差估计,若误差在允许范围之内则直接输出结果。若误差太大,则将估计值加上误差值再进行误差估计直到误差在允许的范围内。
上述实施例的基于CC2530和ZigBee技术的定位系统,基于CC2530的协调器模块与路由器模块,搭建ZigBee无线网络。待定位模块周期性地进入睡眠,醒来时向外发送报文,内容包括自身ID和报文序号。临近待定位模块的场区内的多个路由器收到报文。路由器提取报文及接收信号指示强度,再将这些信息连同自身的ID组织成新的报文,并在一个随机延时后发往协调器。协调器将收到的信息上传到PC,报文结构如下:
由待测模块ID和报文序号共同确定同属于同组的报文。PC从这些报文中提取路由器ID,查表获取该路由器的坐标信息。再从报文中提取RSSI值,由经验公式()计算得到距离值,由三组或以上已知参考节点坐标和距离,就可以联立方程,计算出待定位模块的坐标。
这里,求取待定位模块的坐标的算法描述,具体如下:
㈠用最小二乘法拟合RSSI-Distance经验公式。
PC上收集的是RSSI值,首先要通过经验公式将RSSI值换算成距离。在很多实际问题中,往往需要根据两个变量x和y的m组实验数据来求得这两个变量的函数关系的近似式(经验公式),这个过程就叫做曲线拟合。通过多对模块的多次实验,在确定了曲线的数学公式模型之后,使用最小二乘法计算曲线方程中的系数。所谓最小二乘法,是选择曲线的数学公式模型之后,使样点中的值与之差的平方和最小来选择中的系数的方法。在实际计算中,通过用偏差的平方和对每个系数求偏导数,使偏导数为零来建立方程组,经过一系列推导计算得到系数公式,然后求得系数。这个过程往往比较复杂,但是如果引进矩阵,通过矩阵运算则更为方便。以样点中的值与之差的平方和为条件来选择中的系数,使达到样本均方根误差最小。记偏差的平方和为,又设中有n个系数:,则D是的n元函数,求出D有最小值时的即可。于是得方程组为:
㈡运用三边定位原理并结合极大似然法计算节点的位置坐标。
⑴三边测量定位法是一种基于距离的定位算法,其算法描述如下:设未知节点D坐标为(x,y),已知节点A、B、C这3个点的坐标分别为(x1,y1),(x2,y2),(x3,y3),他们到D的距离分别为d1、d2、d3,于是以A、B、C为圆心,d1、d2、d3为半径,可描绘出三个圆,而带定位模块正是三个圆的公共交点,参见图3,得如下方程组:
公式(1)减公式(3)、以及公式(2)减去公式(3)后,联立方程,由此可得到矩阵方程:
;
解该矩阵方程,即可得到D点的坐标(x,y)。
图3显示的是三边测量定位法。三边测量定位法的优点在于只需知道3个参考节点的坐标和未知节点到各个参考节点的距离,计算比较方便。但在实际的应用环境中,由于测量误差的存在,使得未知节点到3个已知节点的距离不准确,从而造成了方程组无解的情况。由于实际应用中距离误差仅仅是由于测量引起的,不会很大,所以方程无解的情况,仅考虑图4和图5所示的两种情况。
可以采用极大似然法来解决这种问题。
因此:
把上式看作X的函数,令其梯度等于零,可得:
即:为问题的解。由于测量误差,造成多个定位圆无法精确的交于一点,使得定位方程组得不到解析解。这时,可采用极大似然估计法来估计到最接近其真实值的估计值。已知节点1,2,...,n的坐标分别为,它们到节点D(x,y)的距离分别为。那么存在下列公式:
;
由第一个方程开始分别减去最后一个方程,可得:
化为线性方程组为:AX=b,其中:
;
实现方法实施例
参见图6,上述实施例的基于CC2530和ZigBee技术的定位系统的实现方法,包括:
步骤100:将基于CC2530的模块配置为协调器,并与计算机通过串口相连。由协调器建立和维护ZigBee无线网络。在PC上开发应用程序,单独开放一个线程作为串口接收,以处理协调器送来的报文。
在特定区域内,布置足够多的点,测定这些点的坐标位置,为每个位置编号。在PC应用程序中,保留一张表格,其中保存这些坐标位置和编号的对应关系信息。
步骤102:在这些坐标处安置基于CC2530的模块,并配置为路由器。路由器收到来自待定位模块的信息后,负责向协调器发起数据报文;收到来自别的路由器发来的报文时,负责转发报文。
步骤103:待定位模块采用电池供电,每次发送完报文,将报文序号加一后即进入睡眠状态等待下一次发送。
步骤104:临近待定位模块的场区内多个路由器收到报文。路由器提取报文及接收信号指示强度,再将这些信息连同自身的ID组织成新的报文,并在一个随机延时后发往协调器。
步骤105:协调器将信息通过串口传递给PC,由PC进行统一处理。PC从这组报文中挑选RSSI值最大的三个报文,将RSSI换算为距离,再从表中对应查找到接收节点的坐标,即可联立方程以求解待定位模块的位置。
软件算法核心是通过三个固定位置的节点来确定一个未知节点,选择接收信号强度最强的三个固定位置的节点作为定位参考点,同时包含缩小误差,对真实位置进行无限逼近。算法中包含三个部分,第一部分是利用曲线拟合的最小二乘法拟合出信号强度RSSI与距离d的关系式;第二部分是运用三边定位原理并结合极大似然法得到所求的节点的位置坐标;第三部分为误差估计与误差最小化,其中再次用到极大似然估计法。
⑴曲线拟合RSSI与距离d的线性关系:
将在精确模拟的应用环境下多次测量得到的数据,进行处理,根据RSSI和距离d的大约理论关系,去掉一些测量效果非常不好的点的值,得到RSSI的平均值和距离后,绘制出以RSSI为x轴、d为y轴的折线图,这个折线图大致符合信号传播的衰减模型。
再根据最小二乘法进行曲线拟合就可得到RSSI与距离d的关系。具体过程如下:
②这时可以得到:
经计算可得:
相应的法方程为:
。
④带入所设方程得到RSSI-d的经验公式:
其中,d的单位为m,RSSI的单位为dBm。
⑵精确定位的实现
算法基于三边测量法,首先要得到待定位模块D(x,y)到各个已知节点的距离。设已知固定节点为,待定位模块周期地广播信息,固定节点收到信息,并提取RSSI值,组织新数据包上传到协调器,最后被PC处理。A、B、C三点RSSI的值记为RSSI_AVERa,RSSI_AVERb,RSSI_AVERc;根据曲线拟合得到的距离与RSSI的函数关系计算出未知节点到各个已知节点的距离。以已知节点的坐标和计算得来的距离值为输入建立方程组并化简为矩阵方程的形式。
由于测量误差,造成多个定位圆无法精确的交于一点,使得定位方程组得不到解析解。这时,可以采用极大似然估计法来估计到最接近其真实值的估计值。采用极大似然估计法来估计到最接近其真实值的估计值的具体算法,可参见上述系统实施例的相应说明,在此不再赘述。
采用极大似然估计法来估计到最接近其真实值的估计值的具体算法中,在解矩阵方程时,用到了最常用的高斯消去法先将其增广矩阵化为上三角形矩阵,再进行回带即可得到方程组的解。得到坐标值后利用极大似然法进行误差估计,若误差在允许范围之内则直接输出结果。若误差太大,则将估计值加上误差值再进行误差估计直到误差在允许的范围内。矩阵计算的核心代码如下:
//x:已知节点x坐标;
//y:已知节点y坐标;
//n:已知节点个数;
//d:测试的距离;
void Trilateration(float *x,float *y,float *d,float *a,int n)
{
int i,j,m,k;
float A[n-1][2],y_[n-1];
for(i=0;i<n-1;i++)
y_[i]=x[i]*x[i]-x[n-1]*x[n-1]+y[i]*y[i]-y[n-1]*y[n-1]+d[n-1]*d[n-1]-d[i]*d[i];
for(i=0;i<n-1;i++)
{
A[i][0]=2*(x[i]-x[n-1]);
A[i][1]=2*(y[i]-y[n-1]);
}
float AT[2][n-1]; //矩阵A的转秩
for(i=0;i<2;i++) //矩阵初始化
for(k=0;k<n-1;k++)
AT[i][k]=0.0;
for(i=0;i<2;i++) //计算矩阵A的转秩
for(k=0;k<n-1;k++)
AT[i][k]=A[k][i];
float B[2][2]; //B=ATA
for(i=0;i<2;i++) //矩阵B初始化
for(k=0;k<2;k++)
B[i][k]=0.0;
for(i=0;i<2;i++) //计算矩阵B
for(j=0;j<2;j++)
for(k=0;k<2;k++)
B[i][j]=B[i][j]+AT[i][k]*A[k][j];
float C[2]; //C=AT*y_
for(i=0;i<2;i++)
C[i]=0.0;
for(i=0;i<2;i++) //计算C矩阵
for(k=0;k<n-1;k++)
C[i]=C[i]+AT[i][k]*y_[k];
float BC[2][3]; //增广矩阵
for(i=0;i<2;i++)
for(j=0;j<3;j++)
BC[i][j]=0.0;
float L,M; //顺序消元的比拟系数
//构建增广矩阵
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
BC[i][j]=B[i][j];
BC[i][2]=C[i];
}
//顺序消元法解方程
for(i=0;i<1;i++)
{
L=BC[i+1][i]/BC[i][i];
for(k=i+1;k<2;k++)
for(j=0;j<3;j++)
BC[k][j]=BC[k][j]-L*BC[i][j];
}
for(i=1;i>0;i--) //表示基元 BC[i][i]
{
M=BC[i-1][i]/BC[i][i];
for(k=i-1;k>=0;k--)
for(j=0;j<3;j++)
BC[k][j]=BC[k][j]-M*BC[k+1][j];
}
for(i=0;i<2;i++)
a[i]=BC[i][2]/BC[i][i]; //计算方程的解,即得多项式参数
}
综上所述,与现有技术中相比,本发明上述各实施例的基于CC2530和ZigBee技术的定位系统及其实现方法,至少可以达到以下有益效果:
⑴基于三边测量定位算法,是利用待定位模块与三个参考节点之间的关联信息来计算待定位模块的位置,这种算法开销低,对硬件要求不高,最易于实际应用;
⑵在具体计算时,采用矩阵算法去处理方程求解和误差估计的繁复公式,简化了步骤,而且提高了定位精度和运算速度;
⑶利用ZigBee完整稳定的网络功能,可将含有待定位模块位置信息的报文立刻传回中心处理,确保了定位信息的实时性和有效性。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.基于CC2530和ZigBee技术的定位系统,其特征在于,包括基于Z-Stack协议栈的ZigBee无线网络单元,分别与所述ZigBee无线网络单元连接的无线终端和待定位模块,以及与所述待定位模块连接的电源;
所述无线终端,通过ZigBee无线网络单元,获取待定位模块的相应信息,并基于所得相应信息进行计算,得到待定位模块的位置信息。
2.根据权利要求1所述的基于CC2530和ZigBee技术的定位系统,其特征在于,所述电源,具体是蓄电池或干电池或移动电源。
3.根据权利要求1所述的基于CC2530和ZigBee技术的定位系统,其特征在于,所述无线终端,具体是PC或笔记本电脑或掌上电脑或平板电脑或手机。
4.根据权利要求1-3中任一项所述的基于CC2530和ZigBee技术的定位系统,其特征在于,所述ZigBee无线网络单元,包括基于CC2530的协调器,以及配置在多个位置固定且坐标已知的参考节点处、且基于CC2530的多个路由器;所述待定位模块位于多个路由器形成的场区中,每个路由器与协调器无线连接。
5.根据权利要求4所述的基于CC2530和ZigBee技术的定位系统,其特征在于,所述待定位模块,包括用于周期性休眠以减少能耗的周期性休眠模块,用于自休眠状态醒来时向外发送报文的醒时报文发送模块,用于在发完一次报文后将报文序号递加、并准备进行休眠状态等待下次发送报文的报文序号递加模块;
所述周期性休眠模块、醒时报文发送模块和报文序号递加模块依次连接,所述报文序号递加模块与周期性休眠模块连接,所述醒时报文发送模块与临近的相应路由器连接。
6.根据权利要求5所述的基于CC2530和ZigBee技术的定位系统,其特征在于,每个路由器,包括用于自所述醒时报文发送模块发送报文中提取报文、以及接收信号指示强度的报文及接收信号指示强度提取模块,用于结合提取所得报文及接收信号指示强度、以及自身ID并生成新报文的新报文生成模块,用于随机延时发送新报文、以及对接收到的其他路由器发来的数据报文进行转发的新报文延时发送模块;
所述报文及接收信号指示强度提取模块、新报文生成模块和报文延时发送模块依次连接;所述报文及接收信号指示强度提取模块,与醒时报文发送模块连接;所述新报文延时发送模块,与协调器连接。
7.根据权利要求6所述的基于CC2530和ZigBee技术的定位系统,其特征在于,所述协调器,包括用于建立所述ZigBee无线网络单元所处无线网络环境的无线网络建立模块,用于维护所述ZigBee无线网络单元所处无线网络环境的无线网络维护模块,用于接收所述新报文延时发送模块发送新报文的新报文接收模块,用于将接收所得新报文转发至无线终端的新报文转发模块;
所述无线网络建立模块、无线网络维护模块、新报文接收模块和新报文转发模块依次连接;所述新报文转发模块和无线网络维护模块,分别与无线终端连接;所述新报文接收模块与新报文延时发送模块连接。
8.根据权利要求7所述的基于CC2530和ZigBee技术的定位系统,其特征在于,所述无线终端,包括用于存储及更新各路由器ID及参考节点坐标的各路由器ID及参考节点坐标对应表存储及更新模块,用于接收来自与待定位模块临近的多个路由器的相应新报文的多个新报文接收模块,用于提取接收到的每个新报文对应信号功率值的功率值提取模块,用于根据提取的功率值、从所接收多个新报文中选取RSSI值较大的若干报文、并将所选报文的RSSI值换算为距离的报文挑选及换算模块,用于根据所选报文携带的路由器ID、从各路由器ID及参考节点坐标对应表查找得到相应参考节点坐标的路由器参考节点坐标查找模块,用于基于查找所得相应路由器参考节点坐标求取待定位模块位置信息的待定位模块位置信息计算模块;
所述多个新报文接收模块、功率值提取模块、报文挑选及换算模块、路由器参考节点坐标查找模块和待定位模块位置信息计算模块依次连接,所述无线网络维护模块、各路由器ID及参考节点坐标对应表存储及更新模块、以及路由器参考节点坐标查找模块依次连接,所述新报文转发模块与多个新报文接收模块连接。
9.根据权利要求1所述的基于CC2530和ZigBee技术的定位系统的实现方法,其特征在于,包括:
a、将基于CC2530的模块配置为协调器,并与诸如计算机的无线终端通过串口相连;由协调器建立和维护基于Z-Stack协议栈的ZigBee无线网络;在无线终端上安装能够处理协调器送来报文的应用程序,无线终端通过串口接收协调器发来的报文;
b、在设定场区内,布置多个位置固定且坐标已知的参考节点,为每个参考节点所在位置编号;在无线终端中,设置用于保存参考节点坐标位置和编号对应关系的参考节点坐标位置和编号对应关系表;
在每个参考节点的坐标位置处,安置基于CC2530的模块,并配置为路由器;路由器收到来自待定位模块的信息后,负责向协调器发起数据报文;收到来自别的路由器发来的数据报文时,负责转发报文;
c、待定位模块采用电池供电,每次发送完报文,将报文序号加一后即进入睡眠状态等待下一次发送;
d、临近待定位模块的场区内多个路由器收到报文;路由器提取报文及接收信号指示强度,再将这些信息连同自身ID组织成新的报文,并在一个随机延时后发往协调器;
e、协调器将信息通过串口传递给无线终端,由无线终端进行统一处理;无线终端从这组报文中挑选RSSI值最大的三个报文,将RSSI换算为距离,再从表中对应查找到接收节点的坐标,就能够联立方程以求解待定位模块的位置。
10.根据权利要求9所述的基于CC2530和ZigBee技术的定位系统的实现方法,其特征在于,在步骤e中,所述联立方程以求解待定位模块的位置的操作,具体包括:
通过三个固定位置的节点来确定一个未知节点,选择接收信号强度最强的三个固定位置的节点作为定位参考点,同时包含缩小误差,对真实位置进行无限逼近;
上述对真实位置进行无限逼近的算法,具体包括以下三个部分:
⑴利用曲线拟合的最小二乘法拟合出信号强度RSSI与距离d的关系式:
将在精确模拟的应用环境下多次测量得到的数据,进行处理,根据RSSI和距离d的大约理论关系,去掉一些测量效果非常不好的点的值,得到RSSI的平均值和距离后,绘制出以RSSI为x轴、d为y轴的折线图,该折线图大致符合信号传播的衰减模型;
再根据最小二乘法进行曲线拟合就可得到RSSI与距离d的关系;具体过程如下:
①对多对模块进行多次实验,取平均后将结果数据的描点,得到RSSI与d大致成2次比例关系;因此,设 ;
经计算得到:
相应的法方程为:
④带入所设方程得到RSSI-d的经验公式:
其中,d的单位为m,RSSI的单位为dBm;
⑵运用三边定位原理并结合极大似然法得到所求的节点的位置坐标:
算法基于三边测量法,首先要得到待定位模块D(x,y)到各个已知节点的距离;设已知固定节点为,待定位模块周期地广播信息,固定节点收到信息,并提取RSSI值,组织新数据包上传到协调器,最后被无线终端处理;
A、B、C三点RSSI的值记为RSSI_AVERa、RSSI_AVERb、RSSI_AVERc;根据曲线拟合得到的距离与RSSI的函数关系计算出未知节点到各个已知节点的距离;以已知节点的坐标和计算得来的距离值为输入建立方程组并化简为矩阵方程的形式;
⑶误差估计与误差最小化,其中再次用到极大似然估计法:
因此:
把上式看作X的函数,令其梯度等于零,得到:
由第一个方程开始分别减去最后一个方程,得到:
化为线性方程组为:AX=b,其中:
采用极大似然估计法来估计到最接近其真实值的估计值的具体算法中,在解矩阵方程时,用高斯消去法先将其增广矩阵化为上三角形矩阵,再进行回带即可得到方程组的解;得到坐标值后利用极大似然法进行误差估计,若误差在允许范围之内则直接输出结果;若误差太大,则将估计值加上误差值再进行误差估计直到误差在允许的范围内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101643865A CN103269517A (zh) | 2013-05-07 | 2013-05-07 | 基于CC2530和ZigBee技术的定位系统及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101643865A CN103269517A (zh) | 2013-05-07 | 2013-05-07 | 基于CC2530和ZigBee技术的定位系统及其实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103269517A true CN103269517A (zh) | 2013-08-28 |
Family
ID=49013118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013101643865A Pending CN103269517A (zh) | 2013-05-07 | 2013-05-07 | 基于CC2530和ZigBee技术的定位系统及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103269517A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761839A (zh) * | 2014-01-14 | 2014-04-30 | 柳明福 | 一种基于tof无线测距的防遗失物品的搜索方法 |
CN104125537A (zh) * | 2014-08-12 | 2014-10-29 | 湖北工业大学 | 一种基于cc2530的多方式协同定位系统和定位方法 |
CN104394589A (zh) * | 2014-11-20 | 2015-03-04 | 北京东霖消防科技有限公司 | 一种单兵作战定位基站 |
CN104991226A (zh) * | 2015-07-27 | 2015-10-21 | 桂林电子科技大学 | 一种基于ZigBee路灯控制系统的定位导航设备及其应用 |
CN105813193A (zh) * | 2016-04-15 | 2016-07-27 | 国网河北省电力公司 | 一种智能电网无线传感器网络节点定位方法 |
CN105911519A (zh) * | 2016-04-08 | 2016-08-31 | 成都理工大学 | 一种自适应校准的大型室内rssi混合滤波定位方法 |
CN106550448A (zh) * | 2015-09-23 | 2017-03-29 | 伊姆西公司 | 定位方法和定位装置 |
CN107018485A (zh) * | 2017-06-15 | 2017-08-04 | 贵州大学 | 一种基于zigbee电子标签的室内物品寻找方法及系统 |
CN109375163A (zh) * | 2018-08-31 | 2019-02-22 | 福建三元达网络技术有限公司 | 一种高精度的室内定位方法及终端 |
CN110493712A (zh) * | 2019-08-01 | 2019-11-22 | 维沃移动通信有限公司 | 一种定位方法及移动终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100003162A (ko) * | 2008-06-30 | 2010-01-07 | 충북대학교 산학협력단 | 저전력 기반의 지그비 위치 인식 방법 |
CN102215565A (zh) * | 2011-06-13 | 2011-10-12 | 苏州两江科技有限公司 | 基于wsn技术的室内三维精确定位方法 |
CN102883427A (zh) * | 2012-10-12 | 2013-01-16 | 浙江大学城市学院 | 一种基于ZigBee实现串口透传与定位同步的方法及系统 |
-
2013
- 2013-05-07 CN CN2013101643865A patent/CN103269517A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100003162A (ko) * | 2008-06-30 | 2010-01-07 | 충북대학교 산학협력단 | 저전력 기반의 지그비 위치 인식 방법 |
CN102215565A (zh) * | 2011-06-13 | 2011-10-12 | 苏州两江科技有限公司 | 基于wsn技术的室内三维精确定位方法 |
CN102883427A (zh) * | 2012-10-12 | 2013-01-16 | 浙江大学城市学院 | 一种基于ZigBee实现串口透传与定位同步的方法及系统 |
Non-Patent Citations (3)
Title |
---|
陈群: "《南昌大学硕士学位论文,ZigBee技术在室内定位中的应用研究》", 30 November 2012, article "ZigBee技术在室内定位中的应用研究" * |
马育麟: "《济南大学硕士学位论文,基于ZigBee无线技术的区域移动目标定位系统》", 30 November 2012 * |
马育麟: "《济南大学硕士学位论文,基于ZigBee无线技术的区域移动目标定位系统》", 30 November 2012, article "基于ZigBee无线技术的区域移动目标定位系统" * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761839A (zh) * | 2014-01-14 | 2014-04-30 | 柳明福 | 一种基于tof无线测距的防遗失物品的搜索方法 |
CN104125537A (zh) * | 2014-08-12 | 2014-10-29 | 湖北工业大学 | 一种基于cc2530的多方式协同定位系统和定位方法 |
CN104394589A (zh) * | 2014-11-20 | 2015-03-04 | 北京东霖消防科技有限公司 | 一种单兵作战定位基站 |
CN104991226A (zh) * | 2015-07-27 | 2015-10-21 | 桂林电子科技大学 | 一种基于ZigBee路灯控制系统的定位导航设备及其应用 |
CN106550448A (zh) * | 2015-09-23 | 2017-03-29 | 伊姆西公司 | 定位方法和定位装置 |
US10588108B2 (en) | 2015-09-23 | 2020-03-10 | EMC IP Holding Company LLC | Locating method and a locating device |
CN105911519A (zh) * | 2016-04-08 | 2016-08-31 | 成都理工大学 | 一种自适应校准的大型室内rssi混合滤波定位方法 |
CN105813193A (zh) * | 2016-04-15 | 2016-07-27 | 国网河北省电力公司 | 一种智能电网无线传感器网络节点定位方法 |
CN107018485A (zh) * | 2017-06-15 | 2017-08-04 | 贵州大学 | 一种基于zigbee电子标签的室内物品寻找方法及系统 |
CN109375163A (zh) * | 2018-08-31 | 2019-02-22 | 福建三元达网络技术有限公司 | 一种高精度的室内定位方法及终端 |
CN109375163B (zh) * | 2018-08-31 | 2021-04-09 | 福建三元达网络技术有限公司 | 一种高精度的室内定位方法及终端 |
CN110493712A (zh) * | 2019-08-01 | 2019-11-22 | 维沃移动通信有限公司 | 一种定位方法及移动终端 |
CN110493712B (zh) * | 2019-08-01 | 2020-11-13 | 维沃移动通信有限公司 | 一种定位方法及移动终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103269517A (zh) | 基于CC2530和ZigBee技术的定位系统及其实现方法 | |
CN101778472B (zh) | 一种无线传感器网络的分布式节点定位方法 | |
CN100566345C (zh) | 基于超宽带的无线传感器网络节点定位方法 | |
CN107708202A (zh) | 一种基于DV‑Hop的无线传感器网络节点定位方法 | |
CN103582118B (zh) | 一种基于rssi的无线传感网络节点定位方法 | |
Yulan et al. | Research about improvement of LEACH protocol | |
CN103313280A (zh) | 一种用于奶牛定位的装置和方法 | |
CN104219743B (zh) | 用于无线传感和控制的低能耗通信方法和装置 | |
CN104159292A (zh) | 一种基于虚拟中心节点的三维无线传感网络定位方法 | |
CN102547977A (zh) | 一种基于跳数的传感网定位方法 | |
Fu et al. | An improved DV-HOP localization algorithm in wireless sensor network | |
Lin | An intelligent monitoring system for agriculture based on ZigBee wireless sensor networks | |
CN204666186U (zh) | 基于无线网的仓储环境监测系统 | |
Zhang et al. | Indoor location based on independent sensors and WIFI | |
Dou et al. | 3D localization method based on MDS-RSSI in wireless sensor network | |
Qiao et al. | Improvement of Localization Algorithm for Wireless Sensor Networks Based on DV-Hop. | |
Chen et al. | A WSN-based experiment platform for monitoring | |
CN204679110U (zh) | 一种基于百度地图和gsm/北斗短报文的物流检测系统 | |
CN103869280A (zh) | 一种联合局部拓扑与信标方位信息的高效定位方法与装置 | |
CN204442700U (zh) | 一种基于微型传感器的定位系统 | |
Liu et al. | Information Processing and Data Management Technology in Wireless Sensor Networks. | |
CN102209387B (zh) | 一种基于wsn技术的三维快速定位方法 | |
Wang | An improved Zigbee routing algorithm based on energy level partition | |
Wu et al. | IOT Water Meter Reading System Based on Multi-agent and Ah Hoc | |
CN202421103U (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130828 |