基于通用多模式状态机的定位引擎的装置、系统和方法及其应用与流程

文档序号:32752059发布日期:2022-12-31 01:26阅读:38来源:国知局
基于通用多模式状态机的定位引擎的装置、系统和方法及其应用与流程

1.本发明一般涉及卫星导航技术,更具体地说,涉及使用具有基于状态机(state machine)的定位引擎(localization engine)的全球导航卫星系统(gnss)进行定位的装置、系统和方法及其应用。


背景技术:

2.此处提供的背景描述是为了常规介绍本发明的背景。发明背景部分中讨论的主题不应仅仅因为其在发明背景部分中被提及而被认定为现有技术。同样,发明背景部分中提到的问题或与发明背景部分中的主题相关的问题不应被假定为先前已在现有技术中得到承认。发明背景部分中的主题只是代表不同的方法,这些方法本身也可以是发明。
3.全球导航卫星系统(gnss)是获得准确的全球定位的重要部分。在某些情况下,用户可以使用具有定位引擎的电子接收器,如扩展卡尔曼滤波(ekf)引擎,来接收来自gnss的信号,以进行高精度的地理空间定位。然而,当gnss的信号被隧道、桥梁、建筑物,甚至是树木阻挡时,gnss的质量可能很低。此外,电子接收器上的下游模块理论上可以使用定位引擎的协方差(covariance)输出来确定定位的质量并采取适当的动作。然而,在某些情况下,协方差矩阵可能无法反映出解决方案的真实质量。
4.因此,本领域中存在着迄今尚未解决的需求,以解决上述的缺陷和不足之处。


技术实现要素:

5.本发明涉及使用具有基于通用多模式状态机的定位引擎的全球导航卫星系统(gnss)进行定位的装置、系统和方法及其应用。具体而言,装置提供了基于状态机的定位引擎,可在多状态和定位精度状态(local accuracy status)之间切换,以便根据原始gnss观测的质量和板载芯片给出的位置-速度-时间(pvt)解决方案来控制ekf的不同行为。
6.在本发明的一个方面,提供了使用具有基于状态机的定位引擎的全球导航卫星系统(gnss)进行定位的装置。在某些实施例中,装置包括:与gnss通信连接的接收设备以及具有处理器和存储设备的计算设备,接收设备被配置为接收来自gnss的gnss信号,存储设备存储计算机可执行指令。计算机可执行指令,当在处理器上执行时,使处理器提供定位引擎以处理gnss信号;基于gnss状态和位置-速度-时间(pvt)状态,确定定位引擎的状态,其中定位引擎的状态可在至少三种状态之间切换,且该至少三种状态包括航位推算状态(dead reckoning state)、紧耦合状态(tightly coupling state)和松耦合状态(loosely coupling state);由定位引擎基于定位引擎的状态确定定位精度状态;以及由下游模块基于定位精度状态执行下游动作。
7.本发明的另一个方面涉及使用具有基于状态机的定位引擎的全球导航卫星系统(gnss)进行定位的方法。在某些实施例中,方法包括由与gnss通信连接的装置接收来自gnss的gnss信号;在装置上提供定位引擎以处理gnss信号;基于gnss状态和位置-速度-时
间(pvt)状态,确定定位引擎的状态,其中定位引擎的状态可在至少三种状态之间切换,且该至少三种状态包括航位推算状态、紧耦合状态和松耦合状态;由定位引擎根据定位引擎的状态确定定位精度状态;以及由在装置上执行的下游模块根据定位精度状态执行下游动作。
8.在一个实施例中,gnss状态根据gnss中内点(inlier)的数量,表示是否有有效的gnss观测或良好的gnss观测;而pvt状态根据pvt精度值,表示是否有有效的pvt观测或良好的pvt观测。
9.在一个实施例中,当gnss中内点的数量大于或等于2时,gnss状态表示有效的gnss观测,当gnss中内点的数量大于或等于7时,表示良好的gnss观测;而当水平精度值小于0.5时,pvt状态表示有效的pvt观测,当水平精度值小于0.2时,表示良好的pvt观测。
10.在一个实施例中,响应确定在预先确定的时间段内没有有效的gnss观测,将定位引擎切换到航位推算状态;响应确定有良好的gnss观测,将定位引擎切换到紧耦合状态;响应确定有有效的pvt观测但在预先确定的时间段内没有良好的gnss观测,将定位引擎切换到松耦合状态。
11.在一个实施例中,预先确定的时间段为5秒。
12.在一个实施例中,定位精度状态可在航位推算模式、基于gnss的定位模式和基于pvt的定位模式之间切换。
13.在一个实施例中,当最后一次gnss更新时间大于1秒时,定位精度状态被切换到航位推算模式;当最后一次gnss更新时间小于1秒时,定位精度状态被切换到基于gnss的定位模式;以及在以下情况下,定位精度状态被切换到基于pvt的定位模式:(1)最后一次gnss更新时间小于1秒,定位引擎的状态处于松耦合状态,且定位引擎通过pvt新息测试;或(2)定位精度状态处于基于gnss的定位模式5秒,且定位引擎通过pvt新息测试。
14.在一个实施例中,下游模块是地图融合模块。
15.本发明的另一个方面涉及具有上述装置的车辆。
16.本发明的另一个方面涉及存储计算机可执行指令的非暂时性有形计算机可读介质,该指令在被一个或多个处理器执行时,导致上述方法被执行。
17.本发明的这些和其他方面将从以下对优选实施例的描述中变得明显,结合以下附图,尽管其中的变化和修改可能会受到影响而不脱离本公开的新颖概念的精神和范围。
附图说明
18.附图说明了本发明的一个或多个实施例,并与说明书一起,用于解释本发明的原理。在整个说明书附图中可以使用相同的附图标记来标示实施例中相同或相似的元件。
19.图1示意性地示出了根据本发明的一个实施例的全球导航卫星系统(gnss)的整体结构。
20.图2a示意性地示出了根据本发明的一个实施例的gnss接收器的计算设备。
21.图2b示意性地示出了根据本发明的一个实施例的图2a所示的计算设备中的离群点检测模块。
22.图3示意性地示出了根据本发明的一个实施例的三状态定位引擎的状态流,其中定位引擎的状态可在航位推算状态gnss_dr、紧耦合状态gnss_tc和松耦合状态gnss_lc之
间切换。
23.图4示意性地示出了根据本发明的一个实施例的定位精度状态的状态流。
24.图5示意性地示出了根据本发明的一个实施例的四状态定位引擎的状态流,其中定位引擎的状态可在航位推算状态gnss_dr、差分全球定位系统(dgps)紧耦合状态dgps-tc、载波相位(cp)紧耦合状态cp-tc和pvt松耦合状态pvt-lc之间切换。
25.图6示出了根据本发明的一个实施例,使用具有基于状态机的定位引擎的gnss进行定位的方法的流程图。
具体实施方式
26.下面将参照附图对本发明进行更全面的描述,在附图中显示了本发明的示范性实施例。然而,本发明可以以许多不同的形式体现出来,不应该被理解为局限于本文描述的实施例。相反,提供这些实施例是为了使本发明仔细和完整,并将本发明的范围完全传达给本领域技术人员。类似的附图标记指的是整个类似的元件。
27.本说明书中使用的术语通常在本领域、在本发明的全文中以及在使用每个术语的具体内容中具有其普通含义。某些用于描述本发明的术语在本文或说明书的其他地方进行了讨论,以便为实施者提供有关本发明描述的额外指导。为方便起见,某些术语可能会被突出显示,例如使用斜体和/或引号。突出显示的使用对术语的范围和含义没有影响;无论是否突出显示,术语的范围和含义在同一背景下都是一样的。可以理解的是,同一物品可以用多种方式表达。因此,这里讨论的任何一个或多个术语都可以使用替代语言和同义词,也不需要对某一术语是否在这里进行阐述或讨论有任何特殊意义。某些术语的同义词已经提供。对一个或多个同义词的叙述并不排除对其他同义词的使用。本说明书中任何地方使用的示例,包括这里讨论的任何术语的示例,都只是说明性的,并不限制本发明或任何示例性术语的范围和含义。同样,本发明也不限于本说明书中给出的各种实施例。
28.可以理解的是,在这里的描述中以及在整个权利要求书中,一(a)、一(an)和该(the)的含义包括复数形式,除非文中明确规定了其他含义。另外,可以理解的是,当元件被称为“在另一元件上”时,它可以是直接在另一元件上,也可以是在两者之间存在中间元件。相反,当元件被称为“直接在另一元件上”时,就没有中间元件存在。正如本技术所使用的,术语“和/或”包括一个或多个相关列出的项目的任何和所有组合。
29.可以理解的是,尽管术语第一、第二、第三等在此可用于描述各种元件、组件、区域、层和/或区段,但这些元件、组件、区域、层和/或区段不应受到这些术语的限制。这些术语只是用来区分元件、组件、区域、层或区段与另一元件、组件、区域、层或区段。因此,下面讨论的第一元件、组件、区域、层或区段可以被称为第二元件、组件、区域、层或区段而不偏离本发明的教导。
30.此外,相对术语,如“下”或“底”和“上”或“顶”,可在此用于描述如图中所示的元件与另一元件的关系。可以理解的是,除了图中描述的方向外,相对术语还包括设备的不同方向。例如,如果其中一个图中的设备被翻转过来,被描述为在其他元件的“下”侧的元件就会被定向到其他元件的“上”侧。因此,示例性术语“下”可以包括“下”和“上”两个方向,这取决于图的特定方向。同样地,如果其中一个图中的设备被翻转过来,被描述为“在其他元件下方”或“在其他元件之下”将被定向为“在其他元件上方”。因此,示例性的术语“下方”或“之
下”可包括上和下的方向。
31.将进一步理解,术语“包括(comprises)”和/或“包含(comprising)”、或“包括(includes)”和/或“包含(including)”或“有(has)”和/或“具有(having)”、或“携带(carry)”和/或“带有(carrying)”、或“包含(contain)和/或“含有(containing)、或“涉及(involve)”和/或“及于(involving),以及类似的术语是开放式的,即意味着包括但不限于此。当在本发明中使用时,它们规定了描述的特征、区域、整数、步骤、操作、元件和/或组件的存在,但不排除存在或添加一个或多个其他特征、区域、整数、步骤、操作、元件、组件和/或其组合。
32.除非另有定义,本技术使用的所有术语(包括技术和科学术语)与本发明所属技术的普通技术人员通常理解的含义相同。人们将进一步理解,术语,如那些在常用字典中定义的术语,应被解释为具有与其在相关技术和本发明背景下的含义相一致的含义,除非在此明确定义,否则将不会被解释为理想化或过于正式的含义。
33.如本技术所使用的,短语a、b和c中的至少一个应被理解为逻辑的(a或b或c),使用非排他性的逻辑or。如本技术所使用的,术语“和/或”包括一个或多个相关列出的项目的任何和所有组合。
34.如本技术所使用的,术语“模块”可指的是,是专用集成电路(asic)的一部分,或包括专用集成电路(asic);电子电路;组合逻辑电路;现场可编程门阵列(fpga);执行代码的处理器(共享、专用或组);提供描述的功能的其他合适的硬件组件;或上述部分或全部的组合,例如在片上系统(system-on-chip)。术语模块可包括存储由处理器执行的代码的内存(共享、专用或组)。
35.本技术所使用的术语“芯片”或“计算机芯片”,一般是指硬件电子组件,可指或包括小型电子电路单元,也称为集成电路(ic),或电子电路或ic的组合。
36.如本技术所使用的,术语“微控制器单元”或其缩写mcu通常是指单个ic芯片上的小型计算机,它可以执行程序以控制其他设备或机器。微控制器单元包含一个或多个cpu(处理器核心)以及内存和可编程的输入/输出(i/o)外设,通常是为嵌入式应用而设计的。
37.本文所使用的术语“接口”一般是指组件之间相互作用点上的通信工具或方式,用于在组件之间进行有线或无线数据通信。一般来说,接口可以在硬件和软件层面上适用,可以是单向或双向的接口。物理硬件接口的示例可以包括电连接器、总线、端口、缆线、终端和其他i/o设备或组件。与接口通信的组件可以是,例如计算机系统的多个组件或外围设备。
38.本文所用的术语“代码(code)”可包括软件、固件和/或微代码(microcode),并可指程序、例程、功能、类和/或对象。来自多个模块的部分或全部代码可使用单个(共享)处理器执行。此外,来自多个模块的部分或全部代码可以由单个个(共享)内存来存储。此外,来自单个模块的部分或全部代码可以使用一组处理器执行。此外,来自单一模块的部分或全部代码可以使用一组内存来存储。
39.装置和方法将在以下详细说明中描述,并在附图中以各种框图、组件、电路、过程、算法等进行说明(统称为“元件”)。这些元件可以使用电子硬件、计算机软件或其任何组合来实现。这些元件是以硬件还是软件的形式实现,取决于特定的应用和对整个系统的设计限制。举例来说,元件,或元件的任何部分,或元件的任何组合可以作为“处理系统”来实现,其中包括一个或多个处理器。处理器的示例包括微处理器、微控制器、图形处理单元(gpu)、
中央处理单元(cpu)、应用处理器、数字信号处理器(dsp)、简化指令集计算(risc)处理器、片上系统(soc)、基带处理器、现场可编程门阵列(fpga)、可编程逻辑器件(pld)、状态机、门控逻辑、离散硬件电路和其他合适的硬件,它们被配置为执行整个本公开内容所描述的各种功能。处理系统中的一个或多个处理器可以执行软件。软件应被广义地理解为指令、指令集、代码、代码段、程序代码、程序、子程序、软件组件、应用程序、软件包、例程、子例程、对象、可执行文件、执行线程、程序、功能等,无论被称为软件、固件、中间件、微代码、硬件描述语言或其他。
40.因此,在一个或多个示例性实施例中,描述的功能可在硬件、软件或其任何组合中实现。如果在软件中实现,这些功能可以存储在计算机可读介质上或编码为一个或多个指令或代码。计算机可读介质包括计算机存储介质。存储介质可以是任何可以被计算机访问的可用介质。举例来说,这种计算机可读介质可以包括随机存取内存(ram)、只读内存(rom)、电流可消除可程序只读内存(eeprom)、光盘存储、磁盘存储、其他磁性存储设备、上述类型的计算机可读介质的组合,或任何其他可用于存储计算机可执行代码的指令或数据结构形式的介质,这些都可以被计算机访问。
41.下面的描述仅仅是说明性的,决不是为了限制本发明、其应用或用途。本发明的广泛教导可以以各种形式实现。因此,虽然本发明包括特定的示例,但本发明的真正范围不应受到如此限制,在研究了附图、说明书和权利要求书后,其他的修改将变得很明显。为了清楚起见,附图中会使用相同的附图标记来标识类似的元件。应该理解的是,方法中的一个或多个步骤可以按不同的顺序(或同时)执行而不改变本发明的原理。
42.如上所述,在某些情况下,当信号被外部结构所阻挡时,gnss的质量可能很低。例如,gnss接收器中的大多数板载芯片提供它们自己可能有更多的卫星和频段的pvt解决方案。因此,pvt解决方案可能比消费者从原始gnss数据中获得的要好(观测较少)。
43.此外,如上所述,gnss接收器上提供的下游模块理论上可以使用定位引擎的协方差输出来确定定位的质量并采取适当的动作。然而,协方差矩阵可能并不总是反映解决方案的真实质量,因为协方差独立于几个因素,如与不同观测的一致性,这可能无法捕捉到定位的基本准确性。
44.鉴于这些不足,本发明的某些方面涉及装置,它提供了基于状态机的定位引擎,可在多种状态和定位精度状态之间切换,以便根据板载芯片给出的原始gnss观测和pvt解决方案的质量控制ekf的不同行为。此外,定位引擎可以定义定位精度检测器,为下游模块提供语义输出,使下游模块能够利用定位输出做出更明智的决定。
45.本发明的一个方面涉及使用具有基于状态机的定位引擎的gnss进行定位的装置。图1示意性地示出了根据本发明的一个实施例的gnss的整体结构。如图1所示,gnss 100包括gnss接收器110和多个卫星120。具体来说,gnss接收器110可以是具有与卫星120通信连接的接收设备的装置,使得gnss接收器110可以从卫星120接收gnss信号。在某些实施例中,gnss接收器110可以是安装在车辆中的车载设备,车辆可以是汽车、摩托车、飞机、船舶、漫游车或其他类型的需要定位或定位功能的车辆。此外,gnss接收器110还包括计算设备,用于处理从卫星120接收的gnss信号并执行定位或定位功能。在某些实施例中,计算设备可以是车载计算机,例如车辆的内置的电子控制单元(ecu)。或者,在某些实施例中,计算设备可以是gnss接收器110的单独计算设备或控制单元,它独立于车辆的现有ecu运行。在某些实
施例中,计算设备可以是通用计算机,被提供必要的硬件和/或软件组件以执行定位或定位功能,或者可以是专门设计和配置为执行定位或定位功能的专用计算机或控制器。
46.图2a示意性地示出了根据本发明的一个实施例的计算设备。具体来说,如图2a所示的计算设备200被用作如图1所示的gnss接收器110(即装置)的计算设备。如图2a所示,计算设备200包括处理器210、内存220和存储设备230,以及将处理器210、内存220和存储设备230互连的总线240。在某些实施例中,计算设备200可以包括必要的硬件和/或软件组件(未显示)以执行其相应的任务。这些硬件和/或软件组件的示例可以包括但不限于其他所需的内存模块、接口、总线、输入/输出(i/o)模块和外围设备,其细节在此不作详述。
47.处理器210控制计算设备200的操作,它可以用来执行任何计算机可执行代码或指令。在某些实施例中,处理器210可以是中央处理单元(cpu),而由处理器210执行的计算机可执行代码或指令可以包括存储在计算设备200中的操作系统(os)和其他应用程序、代码或指令。在某些实施例中,计算设备200可以在多个处理器上运行,其中可以包括任何适当数量的处理器。
48.内存220可以是易失性存储器模块,例如随机存取内存(ram),用于在计算设备200的操作期间存储数据和信息。在某些实施例中,内存220可以是易失性内存阵列的形式。在某些实施例中,计算设备200可以在一个以上的内存220上运行。
49.存储设备230是非易失性存储介质或设备,用于存储计算机可执行代码或指令,例如操作系统和计算设备200的软件应用程序。存储设备230的示例可以包括闪存、内存卡、usb驱动器,或其他类型的非易失性存储设备,如硬盘、软盘、光驱或任何其他类型的数据存储设备。在某些实施例中,计算设备200可以有一个以上的存储设备230,而计算设备200的软件应用可以分别存储在一个以上的存储设备230中。
50.如图2a所示,存储在存储设备230中的计算机可执行代码可以包括定位引擎250和地图融合模块255。具体来说,定位引擎250是基于通用多模式状态机的定位引擎,当执行时,提供用于执行定位的定位功能。在某些实施例中,定位引擎250可以是ekf引擎或其他类型的定位引擎。图2b示意性地示出了根据本发明的一个实施例的如图2a所示的计算设备中的定位引擎。具体而言,如图2b所示的定位引擎250包括gnss检测模块260、pvt模块270和定位状态模块280。此外,尽管在图2b中没有明确示出,但提供了数据库,它可以是表格或其他数据集合的形式,以存储和记录定位功能所需的gnss/pvt和/或其他信息。例如,对于gnss中的每颗卫星,可将卫星的状态检测为离群点(outlier)或内点(inlier),检测到的状态可存储在数据库中。
51.gnss检测模块260用于处理从gnss中的卫星接收的gnss信号,并检测gnss中各卫星的状态。具体而言,gnss检测模块260可以根据gnss中的每颗卫星的状态确定gnss状态,该状态用于表示gnss观测的状态(以下简称“obsgnss”)。在某些实施例中,gnss检测模块260可以将gnss中每颗卫星的状态检测为离群点或内点,然后根据gnss中内点的数量相应地确定gnss状态。在一个实施例中,gnss检测模块260可以为有效的obsgnss设置第一阈值,为良好的obsgnss设置第二阈值。例如,第一阈值可以设置为2,这样,当gnss中的内点的数量大于或等于2时,gnss状态可以表示有效的obsgnss;而第二阈值可以设置为7,这样,当gnss中的内点的数量大于或等于7时,gnss状态可以表示良好的obsgnss。另一方面,当gnss中的内点的数量小于2时,gnss状态可表示没有有效的或良好的obsgnss。
52.在上述示例性实施例中,gnss检测模块260根据gnss中内点的数量来确定gnss状态。然而,gnss检测模块260可以将gnss中的每颗卫星检测为内点或离群点。因此,在另一个实施例中,也可以根据gnss中离群点的数量来确定gnss状态。内点/离群点检测可以使用现有的检测算法进行。例如,现有的算法,如多普勒-伪距(doppler-pseudorange)比较、随机抽样一致算法(ransac)检查、基于历史的离群点检测(outlier rejection),或其组合,可用于执行gnss离群点检测和/或抵御。关于内点/离群点检测的细节在此不再详述。
53.pvt模块270用于对gnss中的每颗卫星进行pvt观测。具体来说,在gnss信号处理块(sdr)流程图中,因为沿着gnss接收器流动的数据流在pvt块中结束,pvt块是最后一个,并且它作为信号汇。在某些实施例中,pvt模块270可以是板载芯片上现有的pvt解决方案的形式,也可以是提供pvt观测功能的修改过的软件模块。具体来说,pvt模块270可以根据pvt精度值和其他pvt相关因素,确定pvt状态,用于表示pvt观测的状态(以下简称“obspvt”)。在某些实施例中,例如,水平精度值h_acc可用于通过设置多个水平精度阈值来确定pvt状态。在一个实施例中,可以预设0.5的第一阈值和0.2的第二阈值,这样,当h_acc《0.5(即水平精度值h_acc小于0.5的第一阈值)时,pvt状态表示有效的obspvt,而当h_acc《0.2(即水平精度值h_acc小于0.2的第二阈值)时,表示良好的obspvt。另一方面,当h_acc》0.5时,pvt模块270可以确定没有有效或良好的obspvt。在某些实施例中,pvt状态的确定可以有其他因素参与。例如,当航向准确时,pvt模块270可以确定存在有效或良好的obspvt。pvt精度值和/或其他因素的细节可能有所不同,因此在此不作详细说明。
54.定位状态模块280用于执行对定位引擎250的状态以及定位精度状态的确定。具体来说,定位状态模块280可以根据gnss检测模块260确定的gnss状态和pvt模块270确定的pvt状态来生成定位状态模块280的状态,然后根据定位引擎280的状态来确定定位精度状态。
55.如上所述,定位引擎是基于状态机的定位引擎,其状态可在多个预先确定的状态之间切换。具体来说,状态机被用于定位引擎,以处理ekf重置的情况(例如,当车辆进入或走出隧道时)。例如,图3示意性地示出了根据本发明的一个实施例的三状态定位引擎的状态流,其中定位引擎的状态可在航位推算状态gnss_dr、紧耦合状态gnss_tc和松耦合状态gnss_lc之间切换。具体来说,如图3所示的三种状态是根据实际情况直观地设计的,具体阐述如下。
56.航位推算(dr)状态gnss_dr 310:这是ekf(即定位引擎)不使用gnss/pvt观测而只使用惯性导航系统(ins)传播时的状态。在某些实施例中,gnss_dr状态是初始状态。
57.紧耦合(tc)状态gnss_tc 320:在该状态下,ekf(即定位引擎)将使用有效的gnss观测和良好的pvt观测。
58.松耦合(lc)状态gnss_lc 330:在该状态下,ekf(即定位引擎)以松耦合的方式只使用pvt观测,因为没有良好的gnss观测。
59.如图3所示,当定位引擎处于dr状态gnss_dr时,定位引擎不使用obsgnss或obspvt。此时,如果没有良好的obsgnss,但有有效的obspvt(例如,h_acc《0.5)的预先确定的时间段,例如5秒,则定位引擎从dr状态gnss_dr切换到lc状态gnss_lc,这样,定位引擎可以使用有效的obspvt。另一方面,如果有良好的观测gnss(例如,内点的数量》=7),则定位引擎从dr状态gnss_dr切换到tc状态gnss_tc,这样,定位引擎可以使用有效或良好的
obsgnss。
60.此外,当定位引擎处于lc状态gnss_lc时,定位引擎只使用有效的obspvt,因为在此状态下没有有效的obsgnss。此时,如果在预先确定的时间段内,例如5秒,没有有效的obspvt(例如h_acc》0.5),定位引擎就会从lc状态gnss_lc切换到dr状态gnss_dr。另一方面,如果有良好的obsgnss(例如,内点的数量》=7),则定位引擎从lc状态gnss_lc切换到tc状态gnss_tc,这样,定位引擎可以使用有效或良好的obsgnss。
61.此外,当定位引擎处于tc状态gnss_tc时,定位引擎可以使用有效的obsgnss,并且只有在obsgnss存在的情况下才可以使用良好的obspvt。此时,如果在预先确定的时间段内,例如5秒,没有有效的obsgnss(例如,内点的数量《2),定位引擎就会从tc状态gnss_tc切换到dr状态gnss_dr。应该注意的是,不存在定位引擎从tc状态gnss_tc直接切换到lc状态gnss_lc的情况。
62.应该注意的是,如图3所示的定位引擎在不同状态之间切换的条件(即,gnss状态和pvt状态)是作为一个示例性的实施例提供的,因此并不能用来限制本发明的范围。
63.回到图2a,地图融合模块255是装置的下游模块,可根据定位引擎250的输入执行相应的下游地图融合动作,例如在预设地图中跟踪装置。例如,如上所述,定位状态模块280被用来执行定位精度状态的确定。具体而言,定位状态模块280可以定义定位精度检测器,该定位精度检测器将定位精度状态作为语义输出提供给下游模块,例如图2a中所示的地图融合模块255,从而使下游地图融合模块255利用定位引擎250的输出做出更明智的决定。
64.具体而言,在某些实施例中,当装置100安装在车辆上时,地图融合模块255可用于根据地图和由定位引擎250提供的信息来控制车辆的自动驾驶。例如,在某些实施例中,第3级驾驶要求车辆处于“按地图驾驶”模式,其中车辆相对于预设地图的位置被跟踪。然而,当车辆的位置不能在地图上被成功跟踪时,地图融合模块255可以降级到第2级驾驶,即处于“按感知驾驶”模式。理想情况下,用户希望车辆尽可能地处于第3级自动驾驶模式。因此,地图融合模块255可以利用定位状态模块280输出的定位精度状态,以控制2级和3级自动驾驶模式之间的切换。
65.在某些实施例中,地图融合模块255有一些关于定位功能的假设,以触发从2级模式升级到3级模式。例如,地图融合模块255会假设定位是车道级别的准确。因此,定位引擎250(或其中的定位状态模块280)必须向地图融合模块255表明其估计的精度。因此,定位精度状态可以在loc_acc_st字段中输出,以将信息传递给地图融合模块255(或任何其他可使用该信息执行相应下游动作的下游模块)。
66.图4示意性地示出了根据本发明的一个实施例的定位精度状态的状态流。具体来说,如图4所示,定位精度状态可在三种模式之间切换,包括以下。
67.航位推算(dr)模式(由loc_acc_st=0表示);
68.基于gnss的定位模式(由loc_acc_st=1表示);和
69.基于pvt的定位模式(由loc_acc_st=2表示)。
70.dr模式(loc_acc_st=0)表示ekf(即定位引擎)没有使用obsgnss或obspvt。换句话说,dr模式对应的是定位引擎的dr状态。在dr模式下,如果最后的gnss更新时间大于1秒(或任何预先确定的时间阈值),则定位精度状态被切换到dr模式。当最后一次gnss更新时间变得小于1秒时,定位精度状态被切换到基于gnss的定位模式。另一方面,当最后一次
gnss更新时间小于1秒,且定位引擎的状态为lc状态时,定位精度状态可切换到基于pvt的定位模式。
71.此外,基于gnss的定位模式(loc_acc_st=1)表示定位可以基于obsgnss。换句话说,基于gnss的定位模式可以对应于定位引擎的tc状态。如果最后的gnss更新时间小于1秒(或任何预先确定的时间阈值),则定位精度状态被切换到基于gnss的定位模式。在基于gnss的定位模式中,如果最后一次gnss更新时间变得大于1秒,定位精度状态可能被切换回dr模式。另一方面,如果定位精度状态脱离dr模式超过5秒(或任何其他预先确定的时间阈值),定位精度状态可能被切换到基于pvt的定位模式。
72.此外,基于pvt的定位模式(loc_acc_st=2)表示,定位可以基于obspvt。换句话说,基于gnss的定位模式可以对应于定位引擎的lc和/或tc状态。如果最后的gnss更新时间小于1秒(或任何预先确定的时间阈值),并且定位引擎的状态处于lc状态,则定位精度状态被切换到基于pvt的定位模式。此外,如果定位精度状态处于基于gnss的定位模式(并因此脱离dr模式)超过5秒(或任何其他预先确定的时间阈值),定位精度状态也被切换到基于pvt的定位模式。在基于pvt的定位模式下,如果最后的gnss更新时间大于1秒,定位精度状态可能被切换回dr模式。
73.在某些实施例中,pvt新息测试可以作为基于pvt的定位模式的条件的一部分来执行。pvt新息测试的示例可按以下执行。
74.1)如果pvt不使用实时动态(rtk),那么该状态被报告为no_rtk-pvt。下面的公式显示了这一判断。
75.if(hacc《h_acc_thershold||s_acc《s_acc《threshold||!fix_ok||!diff_sol)
76.pvt_solution=no_rtk_pvt
77.2)如果ekf相对于pvt新息测试的误差小于阈值,并且pvt精度很高,则状态设置为ekf_consistent,否则状态为high_pvt_error。下面的公式显示了这一判断。
78.if(abs(ekf_pvt_error_cbf_lateral《pvt_residual_max_err&&h_err《max_hacc_sacc&&s_err《max_hacc_sacc&&fix_ok&&diff_sol)
79.pvt_solution=ekf consistent pvt
80.else
81.pvt_solution=high_pvt_error(测试失败)
82.当pvt新息测试作为基于pvt的定位模式条件的一部分被执行时,定位引擎必须通过pvt新息测试(即pvt_solution!=high_pvt_error),以保持在基于pvt的定位模式。换句话说,基于pvt的定位模式的条件可以总结为:(1)最后一次gnss更新时间小于1秒,定位引擎的状态处于lc状态,并且定位引擎通过pvt新息测试,或者(2)定位精度状态处于基于gnss的定位模式(从而脱离dr模式)5秒,并且定位引擎通过pvt新息测试。
83.在某些实施例中,地图融合模块255可以使用定位精度状态(或loc_acc_st的值)来为定位分配初始方差(variance),并触发从2级模式升级到3级模式。
84.在某些实施例中,使用上述基于状态机的定位引擎的优点包括以下。
85.使用状态机来控制异常的ekf行为,如出隧道时的位置重置。
86.通过使用内部计数器和新息测试,状态机将为dr、lc和tc选择合适的动作,使定位引擎在多种情况下更加稳定。
87.通过对状态转换条件的灵活设计,更好地处理当gnss观测质量不高时的地理位置(situation)和极端状况(corner case)。
88.需要特别强调的是,图4所示的定位精度状态不一定与图3所示的定位引擎的状态一一对应。例如,定位引擎可能处于tc状态,但定位精度状态可能处于基于gnss的定位模式或基于pvt的定位模式。
89.在图3和图4所示的实施例中,使用了三状态的定位引擎。然而,该定位引擎可以是四状态的定位引擎,其中其状态可在四个不同的状态之间切换。例如,图5示意性地示出了根据本发明的一个实施例的四状态定位引擎的状态流,其中定位引擎的状态可在航位推算状态dr 510、差分gps(dgps)紧耦合状态dgps-tc 520、载波相位(cp)紧耦合状态cp-tc 525、以及pvt松耦合状态pvt-lc 530之间切换。具体来说,如图3所示的tc状态320被分离成两个单独的状态,包括dgps tc状态dgps-tc 520和cp tc状态cp-tc 525。各个状态之间的切换条件可以与图3所示的条件类似。
90.本发明的另一个方面涉及用于使用具有基于状态机的定位引擎的gnss执行定位的方法。例如,图6示出了根据本发明的一个实施例的用于使用具有基于状态机的定位引擎的gnss执行定位的方法的流程图。在某些实施例中,如图6所示的方法可以在如图1所示的gnss接收器110(即装置)和如图2a和2b所示的计算设备200上实施。应特别注意的是,除非在本公开内容中另有说明,该方法的步骤可以按不同的顺序排列,因此不限于如图6所示的顺序排列。
91.如图6所示,在进程610,装置可以提供基于状态机的定位引擎,例如图2a和2b中所示的定位引擎。在进程620,定位引擎根据gnss状态和pvt状态确定其状态。例如,当定位引擎是三状态的定位引擎时,定位引擎的状态可以在dc状态、tc状态和lc状态之间切换,如图3所示。一旦确定了定位引擎的状态,在进程630,定位引擎可以根据定位引擎的状态确定定位精度状态。在如图4所示的状态流中可以参考定位精度状态的示例。使用该方法,定位精度状态可由定位引擎生成为语义输出,然后将其传递给下游模块,例如如图2a所示的地图融合模块255。在进程640,下游模块可以根据定位精度状态执行相应的下游动作。在这种情况下,下游模块可以根据定位引擎的状态,适当地对定位姿态的输出采取相应的动作。
92.然而,本发明的另一个方面提供了存储指令的非暂时性有形计算机可读介质,该指令在被gnss接收器的一个或多个处理器执行时,使上述公开的利用具有基于状态机的定位引擎的gnss进行定位的方法得以执行。计算机可执行指令或程序代码使上述公开的gnss接收器(即装置)或类似的系统或装置按照上述公开的方法完成各种操作。存储介质/内存可包括但不限于高速随机存取介质/内存,如dram、sram、ddr ram或其他随机存取固态存储器装置,以及非易失性存储器,如一个或多个磁盘存储装置、光盘存储装置、闪存装置或其他非易失性固态存储装置。
93.前面对本发明的示范性实施例的描述只是为了说明和描述的目的,并不打算详尽无遗或将本发明限制在所披露的精确形式上。根据上述教导,许多修改和变化是可能的。
94.选择和描述这些实施例是为了解释本发明的原理及其实际应用,以便使本领域的其他技术人员能够利用本发明和各种实施例,并进行适合于所设想的特定用途的各种修改。在不偏离本发明的精神和范围的情况下,替代性的实施例对那些熟悉本发明的人来说将是显而易见的。因此,本发明的范围是由所附的权利要求书而不是前面的描述和其中所
描述的示范性实施例所界定的。
95.一些参考文献,可能包括专利、专利申请和各种出版物,在本公开的描述中被引用和讨论。对这些参考文献的引用和/或讨论只是为了澄清本公开内容的描述,并不意味着承认任何此类参考文献是本文所述公开内容的“现有技术”。本说明书中所引用和讨论的所有参考文献在此全部并入,其程度与每个参考文献单独并入的程度相同。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1