一种室内外定位方法及系统的制作方法

文档序号:10533423阅读:437来源:国知局
一种室内外定位方法及系统的制作方法
【专利摘要】一种室内外定位方法及系统,设置若干节点,每个节点包括CPU、GNSS接收机、IMU和UWB定位模块,当节点还没有获得自身的位置之前属性设置为Tag,已经获得后设置为Anchor,为其他Tag节点的定位提供参考位置;Anchor节点与Tag节点之间传输的信息包含测距信息和Anchor节点的位置信息;根据预设Anchor节点,属性为Tag的节点比较GNSS、UWB、IMU的定位结果和定位精度,从中选取精度最好的,并判断定位精度是否超限,如果不超限则转换为Anchor,为其他Tag提供定位服务。本发明扩大了定位范围,降低了系统成本,提高了可靠性,提高了系统的扩展性,保护了定位用户的隐私权。
【专利说明】
_种室内外定位方法及系统
技术领域
[0001]本发明属于传感器领域,发明了一种集成多传感器技术的室内外组合定位技术。
【背景技术】
[0002]室外定位技术已经相当成熟,基于GNSS的定位技术可以满足从米级到毫米级甚至更高精度的定位需求。由于物联网以及消防、警务、旅游等各种行业以及消费群体的需求,室内定位技术成为当今研究的热点,室内定位技术有多种技术平台可供使用,目前能在精度与成本之间取得较好平衡的是UWB定位技术。而目前的UWB定位技术使用的局限性很大,例如必须在定位区域内布设一定数量的Anchor,并且对这些Anchor的坐标进行精确测量,用户容量有限等,这样就使得UWB定位的灵活性很低,受到区域的限制,同时难以实现室内外定位的无缝结合。
[0003]具体来说,目前的UWB定位系统中,将节点划分为Tag和Anchor两类。其中,Tag是需要定位的未知点,而Anchor的位置需要固定,并且需要事先用其他定位方式将其位置测量出来(例如用全站仪)。这种模式使得目前的UWB定位系统的使用范围受到很大限制,给室内定位的推广使用造成了障碍,也不容易实现室内外定位的无缝结合。另外,定位运算集中在定位服务器,使得定位系统的可靠性降低,并且限制了用户数量。

【发明内容】

[0004]为了解决现有技术的问题,本发明提供一种室内外定位方法及系统。
[0005]本发明解决其技术问题所采用的技术方案是:
[0006]本发明还提供一种室内外定位方法,设置若干节点,每个节点包括CPU、GNSS接收机、MU和UWB定位模块,GNSS接收机、mU、UWB定位模块分别与CPU连接,
[0007]当一个节点还没有获得自身的位置之前,将自身的属性设置为Tag;
[0008]在一个节点已经获得自身的位置后,将自身的属性设置为Anchor,为其他Tag节点的定位提供参考位置;Anchor节点与Tag节点之间传输的信息不仅包含测距信息,还包含Anchor节点的位置信息;
[0009]根据预设的属性设置为Anchor的节点,属性为Tag的节点采用以下流程运行,
[0010]步骤I,记GNSS、UWB、IMU的定位结果为?81188、?丽13、?;[1]111,定位精度为481188、4丽13、Aimu,
[0011]判断GNSS是否可以定位,是则进入步骤2,否则进入步骤3;
[0012]步骤2,比较GNSS定位精度Agnss和頂U定位精度Aimu,选取精度高的定位结果更新当前位置Pos和当前精度Acc,包括如果Agnss〈Aimu,贝IjPos = Pgnss,Acc = Agnss,否则Pos =Pimu,Acc=Aimu ;进入步骤 5 ;
[0013]步骤3,将UWB定位模块设置为Tag模式,通过与周边属性为Anchor的节点通信进行UWB定位来确定位置Puwb和定位精度Auwb ;如果UWB定位不成功,则令UWB定位精度Auwb为一个极大值,表示不使用其定位结果;进入步骤4;
[0014]步骤4,比较UWB定位精度Auwb和頂U定位精度Aimu,选取精度高的定位结果更新当前位置Pos和当前精度Acc,包括如果Auwb〈Aimu,则Pos = Puwb ,Acc = Auwb,否则Pos = Pimu,Acc=Aimu;
[0015]步骤5,根据当前位置Pos和当前精度Acc,判断当前的定位精度是否超限,如未超限,则将UWB模块设置为Anchor模式,为周围的UWB Tag提供定位服务,并回到步骤I重新进入执行;如果超限,直接返回步骤I重新进入执行。
[0016]而且,所述IMU的定位结果Pimu和IMU定位精度Aimu,根据最近的定位结果Pos和定位精度Acc,采用Dead reckoning航位推测算法得到。
[0017]本发明还相应提供一种室内外定位系统,设置若干节点,每个节点包括CPU、GNSS接收机、頂U和UWB定位模块,GNSS接收机、頂U、UWB定位模块分别与CPU连接,当一个节点还没有获得自身的位置之前,将自身的属性设置为Tag;
[0018]在一个节点已经获得自身的位置后,将自身的属性设置为Anchor,为其他Tag节点的定位提供参考位置;Anchor节点与Tag节点之间传输的信息不仅包含测距信息,还包含Anchor节点的位置信息;
[0019]基于预设的属性设置为Anchor的节点,属性为Tag的节点设置以下模块,第一模块,用于记GNSS、UWB、IMU的定位结果为Pgnss、Puwb、Pimu,定位精度为Agnss、Auwb、Aimu,判断GNSS是否可以定位,是则命令第二模块工作,否则命令第三模块工作;
[0020]第二模块,用于比较GNSS定位精度Agnss和頂U定位精度Aimu,选取精度高的定位结果更新当前位置Pos和当前精度Acc,包括如果Agnss〈Aimu,贝IjPos = Pgnss,Acc = Agnss,否则Pos = Pimu,Acc=Aimu ;命令第五模块工作;
[0021]第三模块,用于将UWB定位模块设置为Tag模式,通过与周边属性为Anchor的节点通信进行UWB定位来确定位置Puwb和定位精度Auwb;如果UWB定位不成功,则令UWB定位精度Auwb为一个极大值,表示不使用其定位结果;命令第四模块工作;
[0022]第四模块,用于比较UWB定位精度Auwb和頂U定位精度Aimu,选取精度高的定位结果更新当前位置Pos和当前精度Acc,包括如果Auwb〈Aimu,贝IjPos = Puwb,Acc = Auwb,否则Pos = Pimu,Acc=Aimu ;
[0023]第五模块,用于根据当前位置Pos和当前精度Acc,判断当前的定位精度是否超限,如未超限,则将UWB模块设置为Anchor模式,为周围的UWB Tag提供定位服务,并命令第一模块工作重新进入工作;如果超限,直接命令第一模块工作重新进入工作。
[0024]而且,所述IMU的定位结果Pimu和IMU定位精度Aimu,根据最近的定位结果Pos和定位精度Acc,采用Dead reckoning航位推测算法得到。
[0025]本发明通过多传感器集成以及改变UWB定位的系统架构,提出了一种可以适应更多环境,覆盖分为更广的室内定位系统,并能够更好的实现室内外定位的无缝结合。本发明所提出的定位技术相比原来的UWB定位系统至少有如下优势:
[0026]1,扩大了定位范围。原先的UWB定位系统必须在定位区域内安装UWB Anchor,用户离开这个预定的区域就无法再定位。而本发明提出的方法所实现的系统,只要需要定位的用户周围有2个或2个以上的定位用户成功通过任何方式定位,该用户就可以成功定位,定位用户自身就可以将定位区域进行扩展。
[0027]2,降低了系统成本,提高了可靠性,原先的UWB定位系统必须在区域内安装多个Anchor,并需要对Anchor进行位置测量,同时配置位置解算服务器。而本发明提出的方法所实现的系统,Anchor的安装成为可选的,也不再需要解算服务器,系统的可靠性瓶颈得以突破。
[0028]3,提高了系统的扩展性,保护了定位用户的隐私权。原先的UWB定位系统对解算服务器有着很大的依赖性,所有的计算任务都交给解算服务器,因此用户容量就收到解算服务器的性能制约。而本发明提出的方法所实现的系统,将位置解算的任务由服务器分解到用户自身,这样一来,系统的用户数就可以无限扩大,不再受到制约。而用户自身的位置也不再由服务器计算分发,用户自身的位置隐私得到了一定的保护。
【附图说明】
[0029]图1本发明实施例的结构示意图。
[0030]图2本发明实施例的测量使用示意图。
【具体实施方式】
[0031]以下结合附图和实施例详细说明本发明技术方案。
[0032]UWB的定位原理是,未知位置的UWB设备(通常称作Tag)通过测量与已知位置设备(通常称作Anchor)之间的距离,当Tag获取到与两个以及两个以上Anchor之间的距离后,就可以通过解方程的方式得到自身的平面位置,当Tag获取到与三个以及三个以上Anchor之间的距离后,就可以通过解方程的方式得到自身的三维位置。
[0033]本发明提出的定位方法是:
[0034]首先对目前的UWB定位系统进行如下改进和扩展:
[0035]I,每个节点上不仅安装有UWB定位装置,还安装有GNSS以及頂U,可以实现组合定位。参见图1,实施例中每个节点包括CPU、GNSS接收机、頂U、UWB定位模块和显控设备,GNSS接收机、頂U、UWB定位模块、显控设备分别与CPU连接。显控设备可根据需要设置,例如显示屏和键盘。頂U为惯性测量单元。
[0036]2,节点不再严格划分为Tag和Anchor,任何一个节点都可以成为Tag,也可以成为Anchor。当一个节点还没有获得自身的位置之前,就将自身的属性设置为Tag,可以通过其它Anchor获取自身的位置,也可以通过其它的方法(GNSS,頂U等)来获取自身的位置,也可以通过组合定位的方式,集合GNSS/1MU/UWB定位系统的观测量,来计算自身的位置。
[0037]在一个节点已经获得自身的位置后,就可以将自身的属性设置为Anchor,为其他Tag节点的定位提供参考位置。
[0038]3,Tag与Anchor之间的通信信息不再是单纯的测距信息,而是要包含Anchor自身的位置信息。
[0039]4,如果节点上没有具备CPU,则需要配置CPU来协调所有部件的运行。
[0040]5,节点的定位不再依赖于专用的定位解算服务器,而是将定位算法放在节点自身。
[0041 ] 6 ,Anchor的安装不再是必须的,而是可选的。
[0042]经过改进和扩展的定位系统,包括若干节点(设置三个以上),其中包括至少两个Anchor,以提供初始的定位条件,可以在定位要求较高的区域安装固定的Anchor,其始终运行在Anchor模式。其他区域可以不用安装Anchor,而利用已经定位成功的Tag转换为Anchor,为其他Tag提供定位服务。
[0043]预先安装的Anchor功能为:当收到Tag的通信请求后,与Tag进行双向通信,测量Anchor自身与Tag之间的距离,同时将Anchor自身的坐标信息传送给Tag,以供Tag定位使用。、
[0044]除了预先安装的Anchor外,其他需要定位的用户均采用Tag/Anchor自主转换模式,本发明考虑分别获取GNSS、UWB、IMU的定位结果Pgnss、Puwb、Pimu和定位精度Agnss、Auwb、Aimu,并从中选取精度最好的作为当前的定位结果Pos和定位精度Acc,并判断定位精度是否超限,(超限的含义是其定位精度是否符合可以为其他Tag提供定位服务的精度。例如系统设定定位精度为2米,则可将定位精度的超限阈值定为1.5米,S卩,如果自身的定位精度优于1.5米(小于1.5米),则认为不超限,可以为其他Tag提供定位服务,否则此定位结果仅供自己使用,不为其他Tag提供定位服务,否则会引起较大的误差。)如果不超限,则控制UWB定位模块的运行模式转换为Anchor,为其他Tag提供定位服务。如果超限则设置该节点为Tag模式,不为其他Tag提供定位,
[0045]根据预设的属性设置为Anchor的节点,属性为Tag的节点具体设计运作方式如下:
[0046]开始后,基于节点的CPU,有两个进程同时运行,进程I是主进程,循环执行如下的步骤。进程2根据最近的定位结果和IMU的观测量,推算当前的位置Pimu,并根据IMU的特性和时间来计算定位精度Aimu。具体算法可以使用现有的Dead reckoning航位推测算法,本发明不予赘述。
[0047]I,判断GNSS是否可以定位,是则进入步骤2,否则进入步骤3。根据GNSS接收机的输出信息即可判断GNSS是否可以定位。
[0048]2,此时GNSS可以定位,则比较GNSS定位精度Agnss和MU定位精度Aimu,选取精度高的定位结果更新当前位置Pos和当前精度Acc,即如果Agnss〈Aimu,贝IjPos = Pgnss,Acc =Agnss,否则Pos = Pimu ,Acc=Aimu。进入步骤 5。
[0049]3,此时GNSS接收机无法定位,则将UWB定位模块设置为Tag模式,通过与周边可用的Anchor通信进行UWB定位来确定位置Puwb和定位精度Auwb。如果UWB定位不成功,则令UWB定位精度Auwb为一个极大值,例如UWB定位精度Auwb = 99999,以表示定位精度达到极大值,不使用其定位结果;进入步骤4。
[0050]4,比较UWB定位精度Auwb和MU定位精度Aimu,选取精度高的定位结果更新当前位置Pos和当前精度Acc,即如果Auwb〈Aimu,贝丨JPos = Puwb,Acc = Auwb,否贝丨JPos = Pimu,Acc =Aimu0
[0051]5,在每次更新了自身的位置和定位精度后,都判断当前的定位精度是否超限,如未超限,则将UWB模块设置为Anchor模式,为周围的UWB Tag提供定位服务,并回到步骤I重新进入执行以上流程。如果超限,直接返回步骤I重新进入执行以上流程。
[0052]本实施例基于以下主要部件:
[0053]UWB定位模块:DECAWAVE DffMlOOO
[0054]CPU:STM32F105ARM Cortex M3
[0055]IMU:MPU9250
[0056]GNSS接收机:Ublox LEA-M8S
[0057]显示设备:LCD1602Module
[0058]STM32F105 作为中央处理器 CPU,连接 DWM1000,MPU9250 以及 LEA-M8S 和 LCD1602,协调整个系统。
[0059]具体实施时,本领域技术人员也可以选用其他芯片。
[0060]CPU中运行如下两个进程:
[0061]A,主进程I
[0062]I,读取GNSS接收机LEA-M8S的定位结果Pgnss和定位精度Pacc(通过解析GGA语句),判断GNSS是否可以定位,是则进入步骤2,否则进入步骤4。
[0063]2,当前情况是定位成功,则读取进程2推算出来的IMU定位结果Pimu和和定位精度Aimu;比较GNSS定位精度Agnss和IMU定位精度Aimu,选取精度高的定位结果更新当前位置Pos和当前精度Acc,即如果Agnss〈Aimu,则Pos = Pgnss ,Acc=Agnss,否贝IjPos = Pimu,Acc =Aimu;进入步骤5。
[0064]3,当前情况是GNSS接收机无法定位,则将EWM1000设置为Tag模式,通过与周边可用的Anchor通信进行UWB定位来确定位置Puwb和定位精度Auwb。如果UWB定位不成功,贝Ij另UWB定位精度Auwb = 99999 ;进入步骤4。
[0065]4,比较UWB定位精度Auwb和頂U定位精度Aimu,选取精度高的定位结果更新当前位置Pos和当前精度Acc,即如果Auwb〈Aimu,贝丨JPos = Puwb,Acc = Auwb,否贝丨JPos = Pimu,Acc =Aimu。在IXD1602上显示定位结果。
[0066]5,在每次更新了自身的位置和定位精度后,都判断当前的定位精度是否超限,(超限的含义是其定位精度是否符合可以为其他Tag提供定位服务的精度。例如系统设定定位精度为2米,则可将定位精度的超限值定为1.5米,S卩,如果自身的定位精度优于1.5米,则可以为其他Tag提供定位服务,否则此定位结果仅供自己使用,不为其他Tag提供定位服务,否则会引起较大的误差。)如未超限,则将DWM1000设置为Anchor模式,为周围的UWB Tag提供定位服务,并回到步骤I ο如果超限,直接返回步骤I。
[0067]B,进程2:1MU位置推算,使用现有的Dead reckoning航位推测算法,重复执行如下步骤I,读取最近的定位结果Pos和定位精度Acc。具体实施时,Acc可以初始预设为一个极大值,第一次执行此步骤时,由此得到的Aimu更大,Pimu必然会被丢弃不用;后续重复执行此步骤时即可正常使用最近的定位结果Pos和定位精度Acc。
[0068]2,读取MPU9250的观测量,根据时间、观测量、Pos,Acc推算当前位置Pimu。
[0069 ] 3,根据MPU9250的性能(精度,漂移特性等)计算定位精度Aimu。
[0070]具体实施时,本发明所提供方法可基于软件技术实现自动运行流程,也可采用模块化方式实现相应系统。本发明实施例还相应提供一种室内外定位系统,设置若干节点,每个节点包括CPU、GNSS接收机、頂U和UWB定位模块,GNSS接收机JMU、UWB定位模块分别与CPU连接,
[0071 ]当一个节点还没有获得自身的位置之前,将自身的属性设置为Tag;
[0072]在一个节点已经获得自身的位置后,将自身的属性设置为Anchor,为其他Tag节点的定位提供参考位置;Anchor节点与Tag节点之间传输的信息不仅包含测距信息,还包含Anchor节点的位置信息;
[0073]基于预设的属性设置为Anchor的节点,属性为Tag的节点设置以下模块,
[0074]第一模块,用于记GNSS、UWB、IMU的定位结果为Pgnss、Puwb、Pimu,定位精度为Agnss、Auwb、Aimu,
[0075]判断GNSS是否可以定位,是则命令第二模块工作,否则命令第三模块工作;
[0076]第二模块,用于比较GNSS定位精度Agnss和頂U定位精度Aimu,选取精度高的定位结果更新当前位置Pos和当前精度Acc,包括如果Agnss〈Aimu,贝IjPos = Pgnss,Acc = Agnss,否则Pos = Pimu,Acc=Aimu ;命令第五模块工作;
[0077]第三模块,用于将UWB定位模块设置为Tag模式,通过与周边属性为Anchor的节点通信进行UWB定位来确定位置Puwb和定位精度Auwb;如果UWB定位不成功,则令UWB定位精度Auwb为一个极大值,表示不使用其定位结果;命令第四模块工作;
[0078]第四模块,用于比较UWB定位精度Auwb和頂U定位精度Aimu,选取精度高的定位结果更新当前位置Pos和当前精度Acc,包括如果Auwb〈Aimu,贝IjPos = Puwb,Acc = Auwb,否则Pos = Pimu,Acc=Aimu ;
[0079]第五模块,用于根据当前位置Pos和当前精度Acc,判断当前的定位精度是否超限,如未超限,则将UWB模块设置为Anchor模式,为周围的UWB Tag提供定位服务,并命令第一模块工作重新进入工作;如果超限,直接命令第一模块工作重新进入工作。
[0080]各模块具体实现可参见相应步骤,本发明不予赘述。
[0081]本实施例仅为验证本发明中技术方案的正确性和可实施性,采用了松组合模式。为便于推广以及提高性能,具体实施的时候,可以将UWB模块、GNSS模块、MU模块采用紧组合的方式,集成到现有的设备上去,例如集成到手机内,并利用手机的CPU完成定位算法实现,真正实现产品化。
[0082]需要强调的是,本发明所述的实施例是说明性的,而不是限定性的。因此本发明包括并不限于【具体实施方式】中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。
【主权项】
1.一种室内外定位方法,其特征在于:设置若干节点,每个节点包括CPU、GNSS接收机、頂U和UWB定位模块,GNSS接收机、mU、UWB定位模块分别与CPU连接, 当一个节点还没有获得自身的位置之前,将自身的属性设置为Tag; 在一个节点已经获得自身的位置后,将自身的属性设置为Anchor,为其他Tag节点的定位提供参考位置;Anchor节点与Tag节点之间传输的信息不仅包含测距信息,还包含Anchor节点的位置信息; 根据预设的属性设置为Anchor的节点,属性为Tag的节点采用以下流程运行, 步骤I,记GNSS、UWB、IMU的定位结果为Pgnss、Puwb、Pimu,定位精度为Agnss、Auwb、Aimu, 判断GNSS是否可以定位,是则进入步骤2,否则进入步骤3; 步骤2,比较GNSS定位精度Agnss和IMU定位精度Aimu,选取精度高的定位结果更新当前位置Pos和当前精度Acc,包括如果Agnss〈Aimu,则Pos = Pgnss ,Acc = Agnss,否则Pos =Pimu,Acc=Aimu ;进入步骤 5 ; 步骤3,将UWB定位模块设置为Tag模式,通过与周边属性为Anchor的节点通信进行UWB定位来确定位置Puwb和定位精度Auwb ;如果UWB定位不成功,则令UWB定位精度Auwb为一个极大值,表示不使用其定位结果;进入步骤4; 步骤4,比较UWB定位精度Auwb和IMU定位精度Aimu,选取精度高的定位结果更新当前位置 Pos 和当前精度 Acc,包括如果 Auwb〈Aimu,贝IjPos = Puwb,Acc = Auwb,否则Pos = Pimu,Acc=Aimu; 步骤5,根据当前位置Pos和当前精度Acc,判断当前的定位精度是否超限,如未超限,则将UWB模块设置为Anchor模式,为周围的UWB Tag提供定位服务,并回到步骤I重新进入执行;如果超限,直接返回步骤I重新进入执行。2.根据权利要求1所述室内外定位方法,其特征在于:所述IMU的定位结果Pimu和IMU定位精度Aimu,根据最近的定位结果Pos和定位精度Acc,采用Dead reckoning航位推测算法得到。3.—种室内外定位系统,其特征在于:设置若干节点,每个节点包括CPU、GNSS接收机、頂U和UWB定位模块,GNSS接收机、mU、UWB定位模块分别与CPU连接, 当一个节点还没有获得自身的位置之前,将自身的属性设置为Tag; 在一个节点已经获得自身的位置后,将自身的属性设置为Anchor,为其他Tag节点的定位提供参考位置;Anchor节点与Tag节点之间传输的信息不仅包含测距信息,还包含Anchor节点的位置信息; 基于预设的属性设置为Anchor的节点,属性为Tag的节点设置以下模块, 第一模块,用于记GNSS、UWB、IMU的定位结果为Pgnss、Puwb、Pimu,定位精度为Agnss、Auwb、Aimu, 判断GNSS是否可以定位,是则命令第二模块工作,否则命令第三模块工作; 第二模块,用于比较GNSS定位精度Agnss和IMU定位精度Aimu,选取精度高的定位结果更新当前位置Pos和当前精度Acc,包括如果Agnss〈Aimu,贝IjPos = Pgnss,Acc = Agnss,否则Pos = Pimu ,Acc=Aimu;命令第五模块工作; 第三模块,用于将UWB定位模块设置为Tag模式,通过与周边属性为Anchor的节点通信进行UWB定位来确定位置Puwb和定位精度Auwb ;如果UWB定位不成功,则令UWB定位精度Auwb为一个极大值,表示不使用其定位结果;命令第四模块工作; 第四模块,用于比较UWB定位精度Auwb和MU定位精度Aimu,选取精度高的定位结果更新当前位置Pos和当前精度Acc,包括如果Auwb〈Aimu,贝IjPos = Puwb,Acc = Auwb,否则Pos =Pimu,Acc=Aimu; 第五模块,用于根据当前位置Pos和当前精度Acc,判断当前的定位精度是否超限,如未超限,则将UWB模块设置为Anchor模式,为周围的UWB Tag提供定位服务,并命令第一模块工作重新进入工作;如果超限,直接命令第一模块工作重新进入工作。4.根据权利要求3所述室内外定位系统,其特征在于:所述IMU的定位结果Pimu和IMU定位精度Aimu,根据最近的定位结果Pos和定位精度Acc,采用Dead reckoning航位推测算法得到。
【文档编号】G01S19/49GK105891867SQ201610206983
【公开日】2016年8月24日
【申请日】2016年4月5日
【发明人】张涛
【申请人】武汉大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1