本发明涉及通讯技术领域,特别是涉及一种基于zigbee技术的室内定位方法。
背景技术:
在室内环境无法使用卫星定位时,使用室内定位技术作为卫星定位的辅助定位,解决卫星信号到达地面时较弱、不能穿透建筑物的问题。最终定位物体当前所处的位置。
除通讯网络的蜂窝定位技术外,常见的室内无线定位技术还有:wi-fi、蓝牙、红外线、超宽带、rfid、zigbee和超声波。
zigbee是一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通讯技术。它介于rfid和蓝牙之间,可以通过传感器之间的相互协调通信进行设备的位置定位。这些传感器只需要很少的能量,以接力的方式通过无线电波将数据从一个传感器传到另一个传感器,所以zigbee最显著的技术特点是它的低功耗和低成本。其主要用于距离短、功耗低且传输速率不高的各种电子设备之间进行数据传输以及典型的有周期性数据、间歇性数据和低反应时间数据传输的应用。
技术实现要素:
本发明提供一种基于zigbee技术的室内定位方法,包括:
s1:判断待测节点属于哪个三角形区域的待测节点分区;
s2:在每个三角形区域内迭代计算待测节点的坐标。
进一步的,在所述的基于zigbee技术的室内定位方法中,所述s1具体包括以下步骤:
s11:判断所有待测节点是否都已添加,若有没有添加的,则该待测节点接收所有锚点广播的信标信号,直至全部添加完成;
s12:依次计算待测节点与各锚点的连通度并从大到小排序;并选取前两个锚点做三角形的两个顶点;
s13:判断第三个连通度与第四个连通度的大小,如不相等则选第三个锚点,如相等则选任意一个锚点;做三角形的第三个定点;
s14:把待测节点按三角形区域分类加入到待测节点数组中。
进一步的,在所述的基于zigbee技术的室内定位方法中,在s14后还包括步骤:再次判断所有待测节点是否都添加完成,若都完成则结束。
进一步的,在所述的基于zigbee技术的室内定位方法中,所述s2具体包括以下步骤:
s21:三角形区域内所有待测节点接收这个三角形三个锚点的信标信号,并计算连通度;
s22:将所述连通度与阈值进行比对;当有多个待测节点满足阈值时则选取满足度最高的待测节点;当有相同待测节点满足阈值时则选取任意一个待测节点;当没有待测节点满足阈值时则选取满足度最高的待测节点;
s23:当为有多个待测节点满足阈值或有相同待测节点满足阈值的情况时,采用质心算法计算待测节点的坐标;当为没有待测节点满足阈值时,采用三边法计算待测节点的坐标。
s24:这个节点作为迭代的第一个节点,添加该待测节点到坐标已知数组,从待测节点数组中删除这个节点;
s25:计算该三角形中其它待测节点与该第一个节点的跳数,并进行排序;
s26:判断有无待测节点,如果有选跳数最小待测节点用极大似然法计算其坐标;将新计算出坐标的节点到坐标已知数组,从待测节点数组中删除这个节点;
s27:再次判断有无待测节点,如果没有则完成所有待测节点迭代计算,进行结果显示。
相应的,本发明还提供一种基于zigbee技术的室内定位系统,包括:
判断模块,用于判断待测节点属于哪个三角形区域的待测节点分区;
待测节点坐标模块,用于在每个三角形区域内迭代计算待测节点的坐标。
进一步的,在所述的基于zigbee技术的室内定位系统中,所述判断模块包括:
添加模块,用于判断所有待测节点是否都已添加,若有没有添加的,则该待测节点接收所有锚点广播的信标信号,直至全部添加完成;
第一第二顶点模块,用于依次计算待测节点与各锚点的连通度并从大到小排序;并选取前两个锚点做三角形的两个顶点;
第三顶点模块,用于判断第三个连通度与第四个连通度的大小,如不相等则选第三个锚点,如相等则选任意一个锚点;做三角形的第三个定点;
待测节点数组模块,用于把待测节点按三角形区域分类加入到待测节点数组中。
进一步的,在所述的基于zigbee技术的室内定位系统中,还包括再次添加模块,用于再次判断所有待测节点是否都添加完成,若都完成则结束。
进一步的,在所述的基于zigbee技术的室内定位系统中,所述待测节点坐标模块包括:
连通度模块,用于三角形区域内所有待测节点接收这个三角形三个锚点的信标信号,并计算连通度;
阈值比对模块,用于将所述连通度与阈值进行比对;当有多个待测节点满足阈值时则选取满足度最高的待测节点;当有相同待测节点满足阈值时则选取任意一个待测节点;当没有待测节点满足阈值时则选取满足度最高的待测节点;
坐标模块,用于当为有多个待测节点满足阈值或有相同待测节点满足阈值的情况时,采用质心算法计算待测节点的坐标;当为没有待测节点满足阈值时,采用三边法计算待测节点的坐标;
第一个节点模块,用于这个节点作为迭代的第一个节点,添加该待测节点到坐标已知数组,从待测节点数组中删除这个节点;
排序模块,用于计算该三角形中其它待测节点与该第一个节点的跳数,并进行排序;
新坐标模块,用于判断有无待测节点,如果有选跳数最小待测节点用极大似然法计算其坐标;将新计算出坐标的节点到坐标已知数组,从待测节点数组中删除这个节点;
显示模块,用于再次判断有无待测节点,如果没有则完成所有待测节点迭代计算,进行结果显示。
本发明结合已有的质心算法与abc算法无线定位算法,针对质心算法的特性定位精度高和abc算法是定位成本低的特点提出了一种改进定位方法。这种方法可以在降低质心算法的成本的同时,控制abc算法的定位精度在系统可接受范围内。
附图说明
图1是本发明基于zigbee技术的室内定位方法流程图;
图2为本发明判断待测节点属于哪个三角形区域的待测节点分区流程图;
图3为本发每个三角形区域内迭代计算待测节点坐标的流程图;
图4为abc算法测试结果示意图;
图5为本发明试验结果示意图;
图6为质心算法和本发明误差对比图;
图7为abc算法和本发明误差对比图。
具体实施方式
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
如图1所示,本发明提供一种基于zigbee技术的室内定位方法,包括:
s1:判断待测节点属于哪个三角形区域的待测节点分区;
具体来说,如图2所示,所述s1具体包括以下步骤:
s11:判断所有待测节点是否都已添加,若有没有添加的,则该待测节点接收所有锚点广播的信标信号,直至全部添加完成;
s12:依次计算待测节点与各锚点的连通度并从大到小排序;并选取前两个锚点做三角形的两个顶点;
s13:判断第三个连通度与第四个连通度的大小,如不相等则选第三个锚点,如相等则选任意一个锚点;做三角形的第三个定点;
s14:把待测节点按三角形区域分类加入到待测节点数组中。
s15:再次判断所有待测节点是否都添加完成,若都完成则结束。
s2:在每个三角形区域内迭代计算待测节点的坐标。
具体来说,如图3所示,所述s2具体包括以下步骤:
s21:三角形区域内所有待测节点接收这个三角形三个锚点的信标信号,并计算连通度;
s22:将所述连通度与阈值进行比对;当有多个待测节点满足阈值时则选取满足度最高的待测节点;当有相同待测节点满足阈值时则选取任意一个待测节点;当没有待测节点满足阈值时则选取满足度最高的待测节点;
s23:当为有多个待测节点满足阈值或有相同待测节点满足阈值的情况时,采用质心算法计算待测节点的坐标;当为没有待测节点满足阈值时,采用三边法计算待测节点的坐标。
s24:这个节点作为迭代的第一个节点,添加该待测节点到坐标已知数组,从待测节点数组中删除这个节点;
s25:计算该三角形中其它待测节点与该第一个节点的跳数,并进行排序;
s26:判断有无待测节点,如果有选跳数最小待测节点用极大似然法计算其坐标;将新计算出坐标的节点到坐标已知数组,从待测节点数组中删除这个节点;
s27:再次判断有无待测节点,如果没有则完成所有待测节点迭代计算,进行结果显示。
相应的,本发明还提供一种基于zigbee技术的室内定位系统,包括:判断模块和待测节点坐标模块;其中,
所述判断模块,用于判断待测节点属于哪个三角形区域的待测节点分区;
具体来说,所述判断模块包括:
添加模块,用于判断所有待测节点是否都已添加,若有没有添加的,则该待测节点接收所有锚点广播的信标信号,直至全部添加完成;
第一第二顶点模块,用于依次计算待测节点与各锚点的连通度并从大到小排序;并选取前两个锚点做三角形的两个顶点;
第三顶点模块,用于判断第三个连通度与第四个连通度的大小,如不相等则选第三个锚点,如相等则选任意一个锚点;做三角形的第三个定点;
待测节点数组模块,用于把待测节点按三角形区域分类加入到待测节点数组中。
再次添加模块,用于再次判断所有待测节点是否都添加完成,若都完成则结束。
所述待测节点坐标模块,用于在每个三角形区域内迭代计算待测节点的坐标。
具体来说,所述待测节点坐标模块包括:
连通度模块,用于三角形区域内所有待测节点接收这个三角形三个锚点的信标信号,并计算连通度;
阈值比对模块,用于将所述连通度与阈值进行比对;当有多个待测节点满足阈值时则选取满足度最高的待测节点;当有相同待测节点满足阈值时则选取任意一个待测节点;当没有待测节点满足阈值时则选取满足度最高的待测节点;
坐标模块,用于当为有多个待测节点满足阈值或有相同待测节点满足阈值的情况时,采用质心算法计算待测节点的坐标;当为没有待测节点满足阈值时,采用三边法计算待测节点的坐标;
第一个节点模块,用于这个节点作为迭代的第一个节点,添加该待测节点到坐标已知数组,从待测节点数组中删除这个节点;
排序模块,用于计算该三角形中其它待测节点与该第一个节点的跳数,并进行排序;
新坐标模块,用于判断有无待测节点,如果有选跳数最小待测节点用极大似然法计算其坐标;将新计算出坐标的节点到坐标已知数组,从待测节点数组中删除这个节点;
显示模块,用于再次判断有无待测节点,如果没有则完成所有待测节点迭代计算,进行结果显示。
【实施例】
设置场景为一地下停车场,在该停车场内随机设置了25个待测节点。待测节点的分布情况如图4和图5中的圆形节点所示。在保持这25个待测节点位置不变的情况下分别利用abc算法,质心算法和本发明对这25个待测节点进行定位,对其结果进行比较。在本发明中根据确定两个参数值的步骤,先采用连通度阈值为95%,三角形区域边长为10米来进行第一次实验,之后以3%为量度降低连通度阈值,以5米为量度加长三角形区域边长进行迭代。最后确定连通度阈值为89%(迭代2次),每个三角形区域的边长为50米(迭代8次)。本发明的锚点分布情况如图5中菱形节点所示。
定义em为第m个待测节点的定位误差,定位得到的待测节点的坐标为(xm’,ym’),其真实坐标为(xm,ym),则各待测节点的定位误差的计算方法如下面所示,即定位坐标与真实坐标间的距离。
定义n为第待测节点的个数,则整个系统的定位误差e的计算方法如下面公式所示,即各待测节点定位误差的平均数。
图6为质心算法和本发明(改进算法)误差对比、图7中abc算法和本发明(改进算法)误差对比。实验结果表明使用质心算法需40到50个锚点才能控制定位误差在可接受范围内,不能满足实际应用中对成本的要求。而本发明只需7个锚点,可以满足实际应用中对成本的要求。使用abc算法在待测节点个数个超过10个时定位误差急剧增加,不能满足实际应用中对定位精度的要求。而改进算法的定位误差基本稳定在可接受范围内,能满足实际应用中对定位精度的要求。因此得出结论本发明确实在降低了成本的同时保证了一定的定位精度。
虽然本发明已以实施方式揭露如上,然其并不用以限定本发明,任何熟习此技艺者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰,因此本发明的保护范围当视后附的申请专利范围所界定者为准。