Systems and methods for re-converging GNSS position estimates

By using dead reckoning technology to estimate the receiver position during the phase lock loss event of the GNSS receiver and determining the cycle jump in combination with the buffered carrier signal set, the problem that the receiver needs to reconverge for a long time after the loss lock is solved, and fast and accurate position reconvergence is achieved.

CN115485584BActive Publication Date: 2025-05-30SWIFT NAVIGATION INC
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
CN202180028883.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-02-14
Filing Date
2021-02-16
Publication Date
2025-05-30
Estimated Expiration
2041-02-16

AI Technical Summary

Technical Problem

In the field of satellite positioning, the GNSS receiver needs to be restarted after phase lock is lost to reconverge the position, resulting in the position being under-knowledged and the reconvergence time being longer.

Method used

The receiver position is estimated during a phase lock loss event using dead reckoning techniques and the cycle jump is determined using a buffered continuous carrier signal set to quickly reconverge the receiver position.

Benefits of technology

It realizes rapid reconvergence of receiver position after phase lock loss, improves positioning accuracy and completeness, and shortens reconvergence time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115485584B_ABST
    Figure CN115485584B_ABST
Patent Text Reader

Abstract

A system and method for determining a receiver position may include: determining a receiver position based on a set of satellite observations; determining a receiver position based on sensor measurements; determining a satellite observation interruption; and determining a second receiver position based on the satellite observation interruption.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross - Reference to Related Applications

[0002] This application claims the benefit of U.S. Provisional Application No. 62 / 977,005, filed on February 14, 2020, which is incorporated herein by reference in its entirety. Technical Field

[0003] The present invention generally relates to the field of satellite positioning, and more particularly, to a new and useful system and method in the field of satellite positioning.

[0004] Background

[0005] Global Navigation Satellite Systems (GNSS) can be used to determine the position of a receiver with high accuracy and high integrity. Generally, GNSS solutions lock onto carrier phases. However, GNSS solutions may lose lock, for example, due to receiver dynamics and / or errors (e.g., tracking errors). Generally, after losing lock, the receiver needs to be restarted to re - converge to the receiver position. Restarting the calculations and re - establishing lock can take a long time, during which the receiver position is not well - known (e.g., known, but with insufficient integrity to be used). Thus, there is a need in the field of satellite positioning to create new and useful systems and methods. The present invention provides such new and useful systems and methods. Brief Description of the Drawings

[0007] Figure 1 is a schematic representation of the system.

[0008] Figure 2 is a schematic representation of an example of a positioning engine.

[0009] Figure 3 is a schematic representation of the method.

[0010] Figure 4 is a flow - chart representation of an example of the method.

[0011] Figure 5A and 5B is a schematic representation of an example of integrity risk (IR) and protection level (PL) before a measurement engine outage (e.g., GNSS outage), during a measurement engine outage, during re - convergence, and after re - convergence.

[0012] Figure 6 is a schematic representation of an example of determining the position of a mobile receiver after a GNSS outage.

[0013] Figure 7 is a flow - chart representation of examples of different verification levels.

[0014] Figure 8 A schematic representation of a specific example of a method.

[0015] Figure 9A 、 Figure 9B and Figure 9C A schematic representation of an example for determining cycle slips that occur during a phase-lock loss duration.

[0016] Description of Preferred Embodiments

[0017] The following description of preferred embodiments of the present invention is not intended to limit the present invention to these preferred embodiments, but rather to enable any person skilled in the art to make and use the present invention.

[0018] 1. Overview

[0019] As Figure 1 shown, the system may include one or more receivers, one or more sensors, and a computing system. The system may optionally include one or more reference stations and / or any suitable components. The computing system may include: a correction engine, a positioning engine, and / or any suitable components.

[0020] As Figure 3 shown, a method for determining a receiver position includes: determining the receiver position S100 using GNSS technology, determining the receiver position S300 using dead reckoning, and determining one or more satellite outage parameters S400. The method may optionally include detecting a phase-lock loss event S200, operating an external system using the receiver position S600, and / or any suitable steps.

[0021] Embodiments of the system and / or method are preferably used to quickly determine the position of a receiver with high accuracy and integrity after a phase lock loss event occurs. Examples of phase lock loss events include: interruptions (e.g., loss of power to the receiver, satellite failure, etc.), occlusion events (e.g., partial and / or complete occlusion, e.g., preventing the receiver from receiving satellite signals corresponding to one or more satellites), blockages, interruptions, corrupted information (e.g., transmitted by a satellite), loss of connection (e.g., connection to a remote computing system), and / or any event that causes the GNSS signal to be unavailable for determining the receiver position. A phase lock loss event can be a discrete event and / or a continuous event (e.g., lasting for a period of time). A phase lock loss event can cause the GNSS signal and / or GNSS receiver position determination to pause during the phase lock loss period. The phase lock loss period is preferably short (e.g., <1s, <2s, <5s, <10s, <20s, <30s, etc.), but can be of any duration (e.g., >30s). In some examples, the phase lock loss period can be considered to include different parts. In specific variants of these examples as shown in Figure 5A and Figure 5B , the phase lock loss period can include satellite signal interruption, occlusion time (e.g., the time during which the receiver cannot acquire satellite signals), reacquisition time (e.g., the time during which the receiver is acquiring satellite signals), and reconvergence time (e.g., the processing time for determining the receiver position from the satellite signals). However, the phase lock loss period can be a uniform time and / or divided in any suitable manner.

[0022] The accuracy of the determined receiver position can be within 1 mm to 10 m, for example, 1 cm, 5 cm, 10 cm, 20 cm, 30 cm, 50 cm, 1 m, 2 m, 5 m. However, the system and method can achieve an accuracy of less than 1 mm, greater than 10 m, and / or any suitable accuracy.

[0023] The integrity of the determined receiver position can include the concept of real-time or near-real-time error estimation (as opposed to post - error calculation). Based on this real-time error estimation, a positioning system with integrity can provide an alert when the positioning error is likely to exceed an error threshold. Parameters that describe the integrity of a positioning system can include: position error (PE), integrity risk (e.g., the inverse of the probability of a failure event, the probability that the position error will exceed a certain threshold (alert limit) within a certain time period, etc.), protection level (PL), alert limit (AL), alert time (TTA), and / or any suitable integrity parameter. An integrity instance in this document can refer to one or more integrity parameters and / or any suitable integrity of the receiver position. Real-time or near-real-time error estimation can occur within a predetermined estimation time (e.g., 100 ms, 1 s, 2 s, 3 s, 4 s, 5 s, 10 s, 20 s, 30 s, 45 s, 60 s, 90 s, 120 s, 180 s, 240 s, 300 s, 600 s, values in between, etc.), "fast enough to be used during navigation", and / or occur at any suitable timing.

[0024] The receiver position is preferably determined with high integrity, but can be determined to have medium integrity, low integrity, application - dependent integrity, external - system - dependent integrity, can be determined without determining integrity and / or be determined to have any suitable integrity. For example, a high - integrity receiver position can have a target integrity risk (TIR) between 10 -10 / hr and 10 -2 / hr (e.g., 10 -3 / hr, 10 -4 / hr, 10 -5 / hr, 10 -6 / hr, 10 -7 / hr, 10 -8 / hr, 10 -9 / hr, or a value in between). However, the TIR can be greater than 10 -2 / hr, less than 10 -10 / hr, and / or be any suitable TIR. In a second example, a high - integrity receiver position can have a protection level of less than about 10 meters (e.g., at most 5 m, 3 m, 2 m, 1 m, 75 cm, 50 cm, 40 cm, 30 cm, 25 cm, 20 cm, 10 cm, 5 cm, 3 cm, 1 cm, 5 mm, and / or 1 mm). However, the protection level can be greater than 10 meters and / or be any suitable value. However, a high - integrity receiver position can be specified in other ways.

[0025] In a variant, the system and / or method can implement more than one integrity level. Different integrity levels can correspond to different accuracies, integrity, convergence (and / or re-convergence) speeds, and / or any suitable metric. In a specific example, the system and / or method can include two levels (corresponding to high and medium integrity levels of integrity risk 10 -7 / hour and 10 -4 / hour respectively). In this example, the high integrity level can converge in 2 seconds, while the medium integrity level can converge in 1 second, but the pattern can converge within any suitable time period. The system can select the integrity level to be used (e.g., selected by an external system, selected based on use cases, selected based on receiver context (such as speed), selected based on a specified target integrity risk (TIR), etc.) or have a predetermined integrity level.

[0026] Embodiments of the technology can be used in conjunction with an external system 400. For example, embodiments of the technology can be coupled to and / or integrated with an external system. In a specific example, the external system can include an unmanned aerial vehicle (UAV), an unmanned aerial system (UAS), an autonomous vehicle, agricultural equipment, a robot, a rail transit system, a rail transportation system, global navigation satellite system (GNSS) research, a survey system, and / or any suitable external system. In these embodiments, the technology can be used (e.g., as an input) to control the operation of the external system, for external system guidance (e.g., to ensure the external system travels in the correct direction) and / or for any suitable purpose.

[0027] 2. Benefits

[0028] Variants of the technology can provide several benefits and / or advantages.

[0029] First, variants of the technology are able to re-converge to the receiver position faster than other GNSS technologies after a satellite signal interruption. For example, using dead reckoning to estimate the receiver position during an event (such as a satellite signal interruption, loss of phase lock, etc.) can enable the technology to quickly re-converge to the receiver position after the event. In a specific example, the method bootstraps the re-convergence by using the receiver position estimated during the interruption (e.g., dead reckoning position; used to estimate position changes) and a buffered set of continuous carrier signals (e.g., used to determine the carrier phase displacement estimated during the interruption) to jointly determine cycle slips (e.g., integer ambiguity jumps during the interruption). In a second example, a short re-convergence time can be achieved by using multiple validators running in parallel.

[0030] Second, variants of the technique can provide various levels of integrity for the receiver position according to application requirements. In a specific example, the technique can determine integrity as one or more integrity levels. In variants of these examples, different levels may require different time periods to converge (and / or re-converge).

[0031] Third, variants of the technique can provide a self-consistent check for the integrity of the solution of the receiver position. In a specific example, the technique can provide independent data sets to different processing modules and compare the results among these processing modules. This comparison of results can be used as an internal verification of the integrity of the receiver position solution.

[0032] However, variants of the technique can confer any other suitable benefits and / or advantages.

[0033] 3. System

[0034] The system is preferably used to determine the position of a receiver. In particular, the system can be used (e.g., after a phase lock loss event, after an occlusion event, using buffered receiver position determination, etc.) to re-determine the position of the receiver, but the system can determine the receiver position at any suitable time. The position of the receiver is preferably re-determined within a predetermined time (e.g., within 20s, 10s, 5s, 2s, 1s, etc.) after the end of a phase lock loss event (e.g., an occlusion event), but the position of the receiver can be determined at any suitable time. The re-convergence time is preferably short (e.g., <1s, <2s, <5s, <10s, <20s, etc.), but can be of any suitable duration.

[0035] The system preferably uses a set of data collected by one or more data sources. The data sources can include: receivers, sensors (e.g., located on receivers, external systems, reference stations, etc.), databases, satellites, reference stations, and / or any other suitable data sources. Examples of data that can be used include: satellite observations, sensor observations, reference station observations, and / or any other suitable data.

[0036] A receiver 100 (e.g., a GNSS receiver), and an antenna is preferably used to receive a set of satellite observations (e.g., satellite signals) from one or more satellites. In a variant, the receiver can determine the position of the receiver (e.g., the receiver antenna, an external system, etc.) based on the satellite observations (e.g., by using pseudorange, by using carrier phase, by using code data, etc.). The receiver preferably communicates with a computing system. However, the receiver can be integrated with the computing system, and / or the receiver and the computing system can be arranged in any suitable manner. The receiver is preferably an independent device (e.g., a GNSS receiver, an antenna). However, the receiver can be integrated into an external system (e.g., as a component of an automobile, an aircraft, a marine vehicle, etc.), can be a user device (e.g., a smart phone, a laptop computer, a mobile phone, a smart watch, etc.), and / or can be configured in any suitable manner.

[0037] The set of satellite observations can include orbital data, timestamps, range rate data, carrier phase data, pseudorange data, and / or any suitable data. The set of satellite observations can be associated with metadata (e.g., ephemeris) and / or any suitable data. The set of satellite observations preferably includes satellite observations corresponding to satellites from more than one satellite constellation (e.g., the Global Positioning System (GPS), the Global Navigation Satellite System (GLONASS), the Beidou Navigation Satellite System (BDS), Galileo, etc.). However, the set of satellite observations can correspond to satellites from a single satellite constellation, can include data from augmentation systems (e.g., satellite-based augmentation systems (SBAS), such as the Wide Area Augmentation System (WAAS), the European Geostationary Navigation Overlay Service (EGNOS), the Multi-functional Satellite Augmentation System (MSAS), Omnistar, StarFire, etc.; ground-based augmentation systems (GBAS), such as the Local Area Augmentation System (LAAS); etc.), and / or can include any suitable data.

[0038] In a variant of a system including more than one receiver, each receiver can be configured to receive satellite observations associated with a satellite constellation, a carrier frequency (e.g., frequencies such as L1, L2, L5, E1, E5a, E5b, Eab, E6, G1, G3, B1, B2, B3, LEX, etc.) and / or corresponding to any suitable data.

[0039] The sensor 300 is preferably used to measure sensor data (e.g., auxiliary data) associated with an external system (and / or a GNSS receiver). The sensor data is preferably used to determine the external system position (e.g., independent of satellite observations), but can additionally or alternatively be used to assist (e.g., accelerate, correct, refine, converge, re-converge, etc.) the position calculation based on satellite observations (e.g., calculating a state vector, estimating phase ambiguity) and / or otherwise be used. The sensor preferably communicates with a computing system. The sensor can be: on-board an external system, on-board a separate external system, integrated into a GNSS receiver, separated from a GNSS receiver, and / or otherwise associated with the receiver or external system. The sensor data can include: inertial data (e.g., velocity, acceleration, angular velocity, angular acceleration, etc.), odometry (e.g., wheel tick, visual odometry, etc.), attitude (e.g., position, orientation), mapping data (e.g., images, point clouds), temperature, pressure, ambient light, and / or any other suitable data. The sensor can include one or more of the following: an inertial measurement unit (IMU), an accelerometer, a gyroscope, a magnetometer, an odometer (e.g., wheel speed; wheel tick; steering angle; visual odometry such as a camera; etc.), a pressure sensor, and / or any suitable sensor.

[0040] The system can include more than one GNSS receiver and / or sensor, which can be used to provide redundancy, provide information to one of the GNSS receivers or sensors in case of an interruption, provide verification and / or cross-check between data sources, and / or otherwise function. The relative attitude between each GNSS receiver (e.g., between each GNSS receiver antenna), between each sensor, and / or between each GNSS receiver / sensor pair is preferably known, but can be unknown.

[0041] The computing system 200 is preferably used for: performing the steps of the method (e.g., as described below); processing data from receivers, reference stations, and / or sensors (e.g., satellite observations); and / or may otherwise function. The computing system may: aggregate data (e.g., combine receiver satellite observations, reference station satellite observations, and sensor data; e.g., reorganize receiver satellite observations, reference station satellite observations, and sensor data based on timestamps, transmission times, reception times, etc.); filter data (e.g., to compute state vectors, ambiguities (e.g., phase ambiguities), etc. associated with the data); compute the receiver position (e.g., based on the ambiguity); correct data (e.g., correct satellite observations for clock errors, hardware biases, atmospheric effects, etc.); and / or may process data in any suitable manner. The computing system may be local (e.g., onboard an external system, integrated in a receiver, integrated with a reference station, etc.), remote (e.g., cloud computing, server, networked, etc.), and / or may be distributed.

[0042] The computing system is preferably communicatively coupled to the receiver, reference station, and sensor, but the computing system may communicate with any suitable components. In the variant as Figure 1 shown, the computing system may include: a correction engine 230, a positioning engine 260, and / or any suitable components. In an illustrative example, the correction engine may be part of a remote computing system (e.g., a server), while the positioning engine may be part of a local computing system (e.g., integrated in an external system, integrated in a GNSS receiver, collocated with a GNSS receiver, etc.). However, the correction engine and / or the positioning engine may be distributed otherwise.

[0043] The correction engine is used to generate corrections (e.g., correction data) to be used by the positioning engine (and / or the GNSS receiver) and / or to determine the reliability of the corrections (e.g., verify the corrections). The corrections are preferably used to improve the accuracy and / or integrity of the estimated position and / or velocity. The corrections may take the form of PPP corrections, RTK corrections, satellite-based augmentation system (SBAS) corrections, or any other type of corrections. The corrections may be used to correct satellite observations (e.g., as measured by the GNSS receiver), facilitate carrier phase determination (e.g., via a carrier phase determination module), facilitate outlier detection (e.g., at an outlier detector), facilitate the determination of a predefined event, and / or may be used in any suitable manner.

[0044] In a specific example, the calibration engine may operate in a manner described in U.S. Patent Application No. 17 / 022,924, which was filed on September 16, 2020 and titled "SYSTEMS AND METHODS FOR HIGH - INTEGRITY SATELLITE POSITIONING", and which is incorporated herein by reference in its entirety. However, the calibration engine may operate in any manner.

[0045] The positioning engine 260 is used to estimate the position of the GNSS receiver and / or an external system coupled to the GNSS receiver. The positioning engine preferably takes satellite observations (e.g., multiple sets of satellite observations) from the receiver (or other GNSS data sources) and corrections (e.g., correction data) from the calibration processing engine as inputs to generate an estimated position (e.g., position data). However, the positioning engine may additionally or alternatively obtain sensor data, reference station observations, satellite observations from other GNSS receivers, and / or any data or information input. The positioning engine preferably outputs the estimated position and the integrity of the estimated position (e.g., protection limit, integrity risk, etc.). However, the positioning engine may additionally or alternatively output a dead reckoning position (e.g., the position of the GNSS receiver and / or external system derived from sensor data), sensor biases, and / or any suitable data. The positioning engine is preferably communicatively coupled to the GNSS receiver, the calibration processing engine, and the sensors, but may additionally or alternatively be communicatively coupled to a reference station and / or any suitable component.

[0046] In some variations of the positioning engine, the positioning engine may operate in two or more modes. The positioning engine may operate in these modes simultaneously, or may operate in a single mode at a time. These modes may include: GNSS positioning mode, dead reckoning positioning mode, high integrity mode, medium integrity mode, low integrity mode, integrity unspecified mode, and / or any suitable mode. In the illustrative example as Figure 7 shown, the positioning engine may operate in the high integrity mode and the low integrity mode simultaneously. In the high integrity mode, the positioning engine may be used to attempt to achieve high integrity (e.g., TIR < 10 -7 / hr, PL approximately 3m, etc.) after a phase lock loss event (e.g., based on sensor data acquired during the phase lock loss period), and in the low integrity mode, the positioning engine may be used to attempt to achieve low integrity (e.g., TIR < 10 -4 / hr, the PL is about 1 m, etc.). In this specific example, when neither condition is met, the positioning engine can re-determine the GNSS receiver position (e.g., without using the sensor data acquired during the phase lock loss duration). However, the positioning engine may be able to operate in any suitable mode.

[0047] In a specific example as Figure 2 shown, the positioning engine may include: an observation module 261 (e.g., an observation monitor, which is used, for example, to check satellite observations for potential predefined events and / or outliers), a carrier phase determination module 262 (e.g., which is used to determine the carrier phase ambiguity associated with the satellite observations), a re-convergence module 266 (e.g., which is used to determine or estimate cycle slips, multipath errors, or other predefined events that occur during a phase lock loss event based on sensor data), an outlier detector 268 (e.g., which is used to detect outliers in satellite observations, mitigate the effects of outliers in satellite observations, etc.), a position module 267 (e.g., a fixed integer position filter, which is used to determine the receiver position and / or associated integrity based on satellite observations (e.g., based on satellite observations with the carrier phase ambiguity removed)), a velocity module (e.g., which is used to determine the receiver velocity based on satellite observations, time-differenced carrier phase measurements, Doppler shift data, pseudoranges, differential estimated positions, etc.), a dead reckoning module 269 (e.g., which is used to determine the GNSS receiver and / or external system position and / or velocity based on sensor data), and / or any suitable module. However, one or more modules may be integrated with each other and / or the positioning engine may include any suitable module.

[0048] In a specific example, the positioning engine (and / or its components) may operate in a manner described in U.S. Patent Application No. 17 / 022,924, filed on September 16, 2020, and titled "Systems and Methods for High-Integrity Satellite Positioning", which is incorporated herein by reference in its entirety. However, the correction engine may operate in any manner.

[0049] 4. Method

[0050] As Figure 3As shown, a method for determining the position of a receiver includes: determining the position of the receiver using GNSS technology S100, determining the position of the receiver using dead reckoning S300, determining one or more satellite outage parameters S400, and determining the position of the receiver S500. The method may optionally include detecting a phase lock loss event S200, operating an external system using the receiver position S600, and / or any suitable steps. Typically but not always, S100 is performed before a phase lock loss event occurs, S300 and S400 are performed during a phase lock loss period, and S500 is performed after the phase lock loss period ends. However, these steps may be performed at any suitable time relative to the phase lock loss event or period. The method is preferably performed iteratively (e.g., repeated whenever a phase lock loss event occurs), but may be performed continuously, intermittently (e.g., in response to a trigger, call, etc. for receiver position determination; at a predetermined timing of every 1 s, 5 s, 10 s, 20 s, etc.; each time a signal is received from a data source; etc.), performed once, randomly, and / or at any suitable frequency and / or timing. The number of iterations of the method may be a predetermined number of phase lock loss events (e.g., up to 1, 2, 5, 10, 20, 30, 50, 100, 200, 300, 500, 1000, 2000, 3000, 3600, etc. per hour), an infinite number, and / or have any suitable number of iterations. The number of iterations that the method may be performed may depend on the target integrity (e.g., target integrity risk, target protection level, etc.), application, external system, target accuracy, re-convergence time, phase lock loss duration, and / or any suitable information. After the method has been performed for multiple iterations, the method may repeat S100 after the phase lock loss event has ended, rather than proceeding to S500 and / or the method may operate otherwise after the multiple iterations.

[0051] The method is for determining the position of a receiver (e.g., an external system coupled to the receiver) based on one or more sets of satellite observations. The method preferably determines the position of the receiver and / or one or more intermediate values (e.g., state vectors) for quickly (e.g., <30 s, <20 s, <10 s, <5 s, <2 s, <1 s, etc.) determining the position of the receiver after a phase lock loss event. However, the method may determine the receiver position at any suitable timing. One or more instances of the method and / or steps of the method may be performed in series and / or in parallel (e.g., simultaneously).

[0052] The use of GNSS technology to determine the receiver position S100 is preferably used to calculate the position of a receiver (and / or an external system) based on a set of satellite observations. S100 preferably determines the receiver position with high accuracy and integrity (e.g., integrity risk < 10 -7 / hr, < 10 -6 / hr, < 10 -5 / hr, < 10 -4 / hr, > 10 -3 / hr, etc.; accuracy < 1 cm, < 10 cm, < 50 cm, < 1 m, < 10 m, etc.; and so on). S100 is preferably executed by a computing system (e.g., the positioning engine of a computing system); however, S100 can additionally and / or alternatively be executed by the receiver, a reference station, and / or by any suitable component.

[0053] S100 preferably includes storing one or more receiver positions, carrier signal data (e.g., carrier phase measurements for each signal), corresponding fixed integer carrier phase ambiguities, and / or any other suitable data for each timestamp, epoch, and / or other sampling basis. The data can be: stored indefinitely, stored until a new receiver position is determined, stored until a phase lock loss event, stored until reconvergence (e.g., during or after a phase lock loss event), stored for a predetermined period of time (e.g., 10 s, 30 s, 1 min, 2 min, 5 min, 10 min, 30 min, 1 hr, 2 hr, 4 hr, 8 hr, 12 hr, 24 hr, etc.), stored until a signal is reacquired in response to data received from a data source, stored as long as the data source remains in the field of view, and / or stored for any suitable period of time.

[0054] In a specific example, S100 may include: receiving satellite observations S120, receiving GNSS corrections S140, determining phase ambiguities S160, and calculating receiver position S180. However, S100 may include any suitable steps. In a related example, S100 may determine the receiver position according to the methods disclosed in U.S. Patent Application No. 9,933,528 and U.S. Patent No. 10,473,790. The title of U.S. Patent Application No. 9,933,528 is "SYSTEMS AND METHODS FOR REAL TIME KINEMATIC SATELLITE POSITIONING" and was filed on February 12, 2015. The title of U.S. Patent No. 10,473,790 is "SYSTEMS AND METHODS FOR DISTRIBUTED DENSE NETWORK PROCESSING OF SATELLITE POSITIONING DATA" and was filed on November 19, 2018. Each of these is incorporated herein by reference in its entirety.

[0055] Receiving one or more satellite observations S120 is preferably used to (e.g., at a receiver, at a reference station, etc.) measure and / or access one or more sets of satellite observations (e.g., carrier phase measurement results, pseudorange measurement results, code measurement results, etc.) from one or more observed satellites. The satellite observations may be measured and / or received by the receiver, retrieved from a database (e.g., retrieve stored satellite observations; retrieve stored corrections; retrieve an almanac such as weather conditions, tides, etc.; etc.) and / or received in other ways. S120 may include receiving Doppler measurement data, sensor data, and / or any suitable data. The satellite observations may include signals from one or more satellite constellations. S120 may include detecting one or more predetermined events in the satellite observations. S120 may be performed by an observation monitor 261 (e.g., of a positioning engine) and / or by any suitable component.

[0056] (e.g., received in S140) GNSS corrections are preferably determined by a correction engine (e.g., by a correction engine of a computing system; based on reference station observations, based on ephemeris data, based on models, etc.), but can be determined by a positioning engine (e.g., where the positioning engine receives data to generate corrections), a receiver, and / or by any suitable component. The corrections can be applied (e.g., for calibration) in response to the following: hardware biases, timing errors (e.g., satellite clocks, receiver clocks, reference station clocks, etc.), atmospheric effects (e.g., ionospheric effects, tropospheric effects), relativistic effects, local effects (e.g., multipath errors), global effects, noise (e.g., outliers), and / or any suitable effects. In a specific example, reference station satellite observations can be used (e.g., by calculating double-differenced satellite observations) to correct receiver satellite observations. In a second example, the effects on satellite observations (e.g., atmospheric effects) can be modeled. Based on this model, the satellite observations can be corrected. However, the correction of satellite observations can be performed in any suitable manner.

[0057] S160 can include: determining a set of floating phase ambiguity hypotheses, determining a set of integer phase ambiguity hypotheses from the set of floating phase ambiguity hypotheses, validating the set of integer phase ambiguity hypotheses, and / or any suitable steps. S160 can be performed by (e.g., a carrier phase detection module monitor of a positioning engine) and / or by any suitable component. In an illustrative example, S160 can include steps as disclosed in U.S. Patent Application No. 16 / 685,927 and / or U.S. Patent Application No. 16 / 817,196 and / or be performed as disclosed in these two U.S. patent applications, U.S. Patent Application No. 16 / 685,927, filed on November 15, 2019, titled "SYSTEM AND METHOD FOR SATELLITE POSITIONING", U.S. Patent Application No. 16 / 817,196, filed on March 12, 2020, titled "SYSTEMS AND METHODS FOR REAL TIME KINEMATIC SATELLITE POSITIONING", each of these two U.S. patent applications is incorporated herein by reference in its entirety.

[0058] Preferably, a filter (e.g., floating filter 263) is used to determine the set of floating phase ambiguity hypotheses. The filter is preferably a Kalman filter. However, the filter can be an extended Kalman filter, an unscented Kalman filter, a Bierman-Thornton filter, a particle filter, a Monte Carlo simulation, and / or any suitable mean square error filter and / or sensor fusion algorithm. However, the set of floating phase ambiguity hypotheses can be determined in other ways.

[0059] Determining the set of integer phase ambiguity hypotheses can include reducing the correlation between the ambiguities of the set of phase ambiguities (e.g., floating phase ambiguity hypotheses), and performing a search (e.g., least squares search, absolute value search, etc.) to identify possible integer phase ambiguities to be included in the set of integer phase ambiguity hypotheses. For example, the least squares ambiguity decorrelation adjustment (LAMBDA) algorithm, the modified LAMBDA (MLAMBDA) algorithm, the LLL reduction algorithm, the whitening transform, the coloring transform, the decorrelation transform, rounding, the ambiguity function method (AFM), the fast ambiguity resolution approach (FARA), the least squares ambiguity search technique (LSAST), the integer bootstrap, and / or any suitable decorrelation or reduction algorithm can be used to fix and / or identify the integer phase ambiguity. The set of integer phase ambiguity hypotheses preferably includes integer phase ambiguities that satisfy the hypothesis criteria, but can include any suitable integer phase ambiguities. Examples of hypothesis criteria include the threshold sum of least squares, the threshold sum of absolute differences, the threshold likelihood of the correct solution, and / or any suitable criteria. The set of integer phase ambiguity hypotheses can be determined by the integer fixing module 264 or any suitable module or component. However, the set of integer phase ambiguity hypotheses can be generated in any way.

[0060] Verifying the integer carrier phase ambiguity is used to determine an integrity score regarding the most likely correct integer carrier phase ambiguity and / or the determined receiver position and / or to determine (e.g., select, identify) the most likely correct integer carrier phase ambiguity and / or the determined receiver position. The integer carrier phase ambiguity can be verified in the position domain, in the measurement result domain, and / or any other suitable domain.

[0061] In a first variant, verifying an integer carrier phase ambiguity can include performing a hypothesis test. The hypothesis test is preferably Bayesian inference, but can additionally or alternatively be based on statistical confidence, significance testing, and / or any suitable hypothesis test. Examples of hypothesis tests can include difference tests, ratio tests, projector tests, f-tests, GIA tests, and / or any suitable hypothesis test. In an illustrative example, performing a hypothesis test can include: determining a probability (e.g., likelihood, log-likelihood, etc.) associated with a subset of the integer phase ambiguity of an integer phase ambiguity hypothesis; calculating a probability ratio between two subsets of the integer phase ambiguity (e.g., within the same ambiguity set, across different ambiguity sets); and when the ratio between the most likely subset and the next most likely subset of the integer phase ambiguity exceeds a threshold, storing the most likely subset of the integer phase ambiguity as the integer phase ambiguity and stopping the hypothesis test. However, any hypothesis test can be performed. The carrier phase ambiguity verified by the hypothesis test can be referred to as an empirically verified carrier phase ambiguity.

[0062] In a second variant, verifying an integer carrier phase ambiguity can include verifying the carrier phase ambiguity in a multi-step process. For example, in a first step, the integer ambiguities of at least two satellite constellations (e.g., GPS and Galileo, GPS and GLONASS, GPS and BDS, Galileo and GLONASS, Galileo and BDS, GLONASS and BDS, etc.) can be verified simultaneously (e.g., by combining data from each satellite constellation). In a second step, the integer carrier phase ambiguity can be verified (in parallel or sequentially) for satellite observations corresponding to a first subset of satellite observations (e.g., which are associated with a first satellite constellation) independent of those satellite observations corresponding to a second subset of satellite observations (e.g., which are associated with a second satellite constellation). A third step can include repeating the second step an additional one or more times (e.g., 2x, 3x, 5x, 10x, 20x, etc.). However, in the first step, the second step, and / or the third step, integer-valued carrier phase ambiguities corresponding to three or more satellite constellations, subsets of satellites within one or more satellite constellations (e.g., verifying the integer-valued carrier phase values of satellite observations for each satellite of a single satellite constellation, verifying the integer-valued carrier phase values of satellite observations for a first subset and a second subset of satellites corresponding to a single satellite constellation, verifying the integer-valued carrier phase values of satellite observations for each satellite from multiple satellite constellations, etc.), and / or any suitable satellite observations can be verified and / or verified any suitable number of times. However, the multi-step verification process can be performed in other ways.

[0063] In a third variant, the carrier phase ambiguity can be verified as disclosed in U.S. Patent Application No. 17 / 119,823, filed on December 11, 2020, titled "SYSTEM AND METHOD FORVALIDATING GNSS AMBIGUITIES", which is incorporated herein by reference in its entirety.

[0064] In a fourth variant, the carrier phase ambiguity can be verified by combining two or more of the previous variants. The carrier phase ambiguity is preferably verified using the verification module 265, but any suitable module can be used to verify it. However, the carrier phase ambiguity can be verified in other ways.

[0065] Preferably, the receiver position (e.g., before loss of phase lock) is calculated according to a measurement model (e.g., in S180). S180 can be performed by a position module 267 (e.g., of a positioning engine) and / or by any suitable component. In an illustrative example, the measurement model can be:

[0066]

[0067] where λ is the wavelength of the signal (e.g., wavelengths such as L1, L2, L5, E1, E2, E5a, E5b, E6, G1, G3, etc.; differential wavelengths such as L1 - L2, L1 - L5, G1 - G3, etc.; narrow channel wavelengths; etc.), is the phase of receiver j corresponding to satellite i at time t, r is the distance between the receiver and satellite i, δt i is the clock error of satellite i, δt j is the clock error of receiver j, I includes atmospheric effects (e.g., ionosphere, troposphere, etc.), is the integer phase ambiguity corresponding to satellite i and receiver j, and is the noise. However, the measurement model can include more terms, fewer terms, and / or different terms. However, any suitable measurement model can be used and / or the receiver position can be calculated in other ways.

[0068] In some embodiments, S100 can include determining the speed of the receiver and / or the integrity associated with the speed of the receiver. The speed can be determined based on satellite observations, time-differenced carrier phase measurements, Doppler shift data, pseudoranges, differential estimated positions, and / or in other ways. The speed and / or the integrity of the speed is preferably determined using a speed filter, but can be determined using the position module 267, the dead reckoning module 269, or any suitable component.

[0069] In a specific example, the position of the receiver can be determined as disclosed in U.S. Patent Application No. 17 / 022,924, filed on September 16, 2020, titled "SYSTEMS AND METHODS FOR HIGH - INTEGRITY SATELLITE POSITIONING", which is incorporated herein by reference in its entirety. However, S100 can be performed in any way.

[0070] Detecting a phase - lock loss event S200 can be used to determine that a phase - lock loss event has occurred. S200 can be performed before, during, and / or after S100. S200 preferably occurs after determining the receiver position with high integrity, but S200 can occur before knowing the receiver position with high integrity. S200 can be performed by a single - frequency cycle - slip detector, a dual - frequency cycle - slip detector, a triple - frequency cycle - slip detector, an outlier detector 268 (e.g., of a positioning engine), a receiver, a reference station, and / or by any suitable module or component. For example, S200 can include: determining that one or more satellite signals corresponding to one or more satellites (and / or satellite constellations) are not detected, determining that the power state has changed (e.g., power outage, power surge, etc.), determining that one or more satellite signals are incomplete, determining that the network connection has changed (e.g., low bandwidth, disconnected, etc.), and / or any suitable step.

[0071] In a variant, S200 can include: optionally identifying the source of the phase - lock loss event (e.g., an obstruction (e.g., the cause of the obstruction), power failure, etc.), storing the location of the phase - lock loss event (e.g., storing on a map, e.g., to identify locations where a phase - lock loss can be predicted), detecting that the source of the phase - lock loss event no longer exists (e.g., the satellite is no longer obstructed, normal power is restored, etc.), and / or can include any suitable step.

[0072] Determining the receiver position based on dead reckoning S300 is preferably used when GNSS positioning is unavailable (e.g., during a phase - lock loss period, as Figure 5A and 5BDetermine (e.g., calculate, estimate, model, etc.) the receiver position (and associated covariance) based on examples shown in [e.g., etc.]. However, S300 can be performed when GNSS positioning is available (e.g., to estimate sensor bias by comparing the result of the GNSS position with the result from dead reckoning; to provide redundancy when determining the receiver position; etc.) and / or S300 can be performed at any suitable timing. S300 is preferably performed by a computing system (e.g., the dead reckoning module of a positioning engine, by an assisted positioning system, etc.), but can be performed by the receiver, the sensor, and / or any suitable component. S300 can be performed after, before, and / or during S100 or S200 (e.g., in response to S200, in parallel with S100, etc.). Preferably, S300 is performed at least for the duration of the phase lock loss period (e.g., occlusion time, reacquisition time, reconvergence time, etc.). However, additionally or alternatively, S300 can be continuously (e.g., during the operation of the receiver, during the operation of an external system), before the phase lock loss event, after the phase lock loss event, simultaneously with S100 (and / or S500), and / or at any suitable time. S300 is preferably used in isolation (e.g., not generating GNSS position estimates simultaneously) for up to 20 seconds (e.g., 1s, 2s, 3s, 4s, 5s, 7s, 10s, 15s, etc.), but S300 can be used for longer than 20 seconds (e.g., during a partial occlusion event where a threshold number of satellites are retained in the receiver's field of view).

[0073] The receiver position determined in S300 typically has a medium integrity level (for the phase lock loss duration, e.g., TIR < 10 -4 / hour and / or PL is about 5), but can have high integrity, low integrity, unknown integrity, and / or any suitable integrity. Usually, but not always, when the integrity of the receiver position determined in S300 is lower than the threshold integrity (e.g., TIR > 10 -4 / hour), restart the method (e.g., once satellite observations become available, start from S100).

[0074] The S300 can use any suitable dead reckoning technique and / or combination thereof to determine the receiver position. In a series of examples, the S300 can use visual odometry, visual-inertial odometry, integration of inertial measurements (e.g., speed, acceleration, rotational speed, etc.), mechanical odometry (e.g., wheel odometry, motor odometry), LIDAR, and / or any suitable dead reckoning technique that can be used. The receiver position in the S300 can be determined based on the following: previous receiver position (e.g., receiver position determined from GNSS, the last receiver position before a phase lock loss event, the receiver position determined in S100, etc.), sensor data (e.g., images, LIDAR, IMU data, speed, direction, velocity, acceleration, etc.), sensor biases (e.g., modeled, estimated, etc.), and / or any suitable data input. The receiver position can be determined using the following: equations (e.g., where the change in position calculated from sensor data is added to the previous position); filters (e.g., a Kalman filter or Bayesian filter that estimates the current position as a hidden state); and / or any other suitable method. The receiver position in the S300 can include an estimation error (e.g., uncertainty) in the receiver position.

[0075] In some embodiments, the S300 can additionally or alternatively include determining the speed of the receiver and / or the integrity associated with the speed based on sensor measurements.

[0076] In a variant, the method can include determining that the GNSS interruption has ended S250. S250 is preferably used to determine that the source of the GNSS interruption has been resolved (e.g., the satellite is no longer blocked from the receiver's view, the reference station is no longer blocked from the receiver's view, power is restored, network connection is restored, etc.). S250 can be performed in the same and / or different ways (e.g., in the opposite way) as S200. S250 preferably occurs during S300, but S250 can occur before and / or after S300.

[0077] Determining one or more satellite observation interruptions S400 is used to estimate satellite observation interruptions to facilitate using GNSS technology to determine the current or updated receiver position (e.g., for use in S500). Satellite observation interruptions preferably refer to cycle slips (e.g., jumps or changes in carrier phase ambiguities that are typically integer values, such as Figure 6as shown in the example in; also known as integer ambiguity jump), but can additionally or alternatively refer to range discontinuity, code discontinuity, multipath error, and / or any suitable discontinuity. S400 can be performed during or after the phase lock loss duration. For example, S400 can be performed during the re-convergence time of the phase lock loss duration (e.g., after receiving one or more cycles of the carrier phase signal after an interruption). S400 can be performed by a re-convergence module (e.g., the re-convergence module of a positioning engine, the residual filter of the re-convergence module, etc.) and / or by any suitable module or component. However, S400 can be performed at any timing.

[0078] S400 can be performed within one or more sampling periods after reacquiring phase lock but before using the resulting position estimate (e.g., iteratively performed in consecutive cycles until integrity reaches a predetermined threshold), or otherwise used. S400 is preferably performed by a computing system (e.g., a positioning engine, such as the re-convergence module 266, the carrier phase ambiguity module 262, or other suitable modules of the positioning engine), but can be performed by a receiver, a sensor, and / or any suitable component.

[0079] Satellite observation discontinuity is preferably determined in the measurement domain, but can be determined in the position domain, in a hybrid domain or a mixture of domains, and / or in any suitable domain. Satellite observation discontinuity can be determined for: all satellites associated with the observations in a set of satellite observations, a set of satellites that lost signal during the phase lock loss duration, satellites associated with a particular satellite constellation, a set of satellites that did not lose signal during the phase lock loss duration, and / or any suitable satellites. Satellite observation discontinuity can be determined based on: current carrier phase measurements, estimated carrier phase (e.g., estimated from sensor data, estimated from the change between the current receiver position and the receiver position before the phase lock loss period, etc.), current receiver position (e.g., determined using dead reckoning relative to the receiver position before the phase lock loss period, estimated from satellite observations, etc.), previous receiver position (e.g., before the phase lock loss period), satellite code data, satellite pseudorange data, and / or any suitable data or information can be used to determine.

[0080] Generally, signals from at least one satellite (and preferably more than one satellite) in a group of satellites preferably do not get lost during the phase lock loss duration. However, during the phase lock loss duration, different satellites can each be available (e.g., a signal can be received from a first satellite during a first time period, a signal can be received from a second time period, and so on, where the different time periods preferably but not necessarily overlap), and / or signals from all satellites may get lost (during all or a portion of the phase lock loss duration). When the signal from at least one satellite is not lost, that satellite can be used as a reference satellite, e.g., to estimate (and thus correct or otherwise account for) one or more states (e.g., which can include orbital error, clock error, atmospheric error, receiver position, etc.), determine an estimated carrier phase discontinuity, calculate an integer carrier phase ambiguity, and / or be used in other ways. For example, phase observations from a continuously phase locked satellite can be used to determine a new state (e.g., a global or shared error such as a clock error, an orbital error, etc.), which can be used to reduce the residual variance when determining the integer ambiguity of a satellite for which phase lock has been lost. When no satellite is available during the phase lock loss duration, then S400 can include constraining errors (e.g., clock, orbital, atmospheric, etc. errors), modeling the errors, estimating the errors based on other data sources, calculating different cycle slips (e.g., based on differential satellite signals), using different re-convergence methods (e.g., not using dead reckoning to guide re-convergence), and / or performing calculations and / or validations in other ways.

[0081] S400 preferably includes determining and validating satellite observation discontinuities based on a dead reckoning position (e.g., as determined in S300). However, S400 can include any suitable steps.

[0082] Satellite observation discontinuities are preferably determined without tightly coupling the dead reckoning position and satellite observations (e.g., not providing the dead reckoning position and / or underlying sensor measurements and satellite observations to a filter that calculates satellite observation discontinuities). However, satellite observation discontinuities can be determined using a tightly coupled model and / or using any suitable model.

[0083] Determining a satellite observation interruption may include determining a residual between an estimated carrier phase and a measured carrier phase, a residual between different estimated receiver positions, a residual between an estimated floating ambiguity and a measured floating ambiguity, and / or other residuals. The residuals may be a satellite observation interruption (and / or related to a satellite observation interruption, for example, according to an equation). For example, a residual between an estimated carrier phase and a measured carrier phase (or an associated floating carrier ambiguity) may be used as a cycle slip estimate. The residuals are preferably rounded to the nearest integer; however, an integer search may be performed on the residuals, the residuals may be used without rounding, and / or the residuals may be used in other ways. The residuals may be determined based on: an estimated carrier phase, a measured carrier phase, a new state, a design matrix, and / or any other suitable information.

[0084] In a first variant, as Figure 9A shown, determining a satellite observation interruption may include: estimating a current carrier phase using a measurement model from a current receiver position (e.g., determined using dead reckoning such as from S300), a covariance of the current receiver position, a previous receiver position (e.g., determined using GNSS technology such as from S100), and / or previous carrier phase measurements.

[0085] In a second variant, as Figure 9B shown, determining a satellite observation interruption may include: determining a current receiver position (e.g., using dead reckoning, such as determined from S300), and estimating the current receiver position using a measurement model based on a difference between a previous carrier phase measurement (before a phase lock loss event) and a current carrier phase measurement (e.g., after a phase lock loss duration). Additionally or alternatively, in addition to and / or instead of the current receiver position determined from dead reckoning, a current position determined from a secondary satellite (which is available during the phase lock loss duration) may also be used.

[0086] In a third variant, as Figure 9C shown, determining a satellite observation interruption may include: estimating a carrier phase difference between a carrier phase determined using dead reckoning (e.g., as described in the first variant) and a measured carrier phase, and determining a carrier phase difference between a currently measured carrier phase and a carrier phase measured before a phase lock loss event.

[0087] In a specific example, the satellite observation interruption can be determined by calculating a priori residuals of phase observation results that may have cycle slips, and the calculation is performed in the following manner: processing satellite observation results (e.g., coded and carrier phases) associated with satellites that did not lose phase lock during the duration of phase lock loss, and determining (e.g., calculating, estimating) the residuals of a set of satellites that lost phase lock based on a new state (e.g., determined from and / or including the following: processed satellite observation results associated with satellites that did not lose the signal, the current position of the receiver, the change in the receiver position during phase lock loss, satellite observation results before phase lock loss, etc.) and a design matrix.

[0088] However, the satellite observation interruption can be determined in other ways.

[0089] Verifying the satellite observation interruption can include: performing a statistical analysis or statistical test on the determined satellite observation interruption, comparing the residuals with a threshold, comparing the covariance around the residuals with a threshold, comparing the cycle slip variance with a threshold, comparing the estimated satellite observation interruption with the satellite carrier phase ambiguity of satellites that did not lose phase lock (e.g., satellites that did not experience an interruption), comparing independently (or dependently) generated satellite observation interruptions (e.g., two independently generated estimates of satellite observation interruptions associated with a satellite), modeling the satellite observation interruption, comparing the estimated satellite carrier phase with the measured satellite carrier phase, comparing the residual variance with a threshold, and / or verifying in other ways.

[0090] In some embodiments, particularly but not exclusively, when the positioning engine operates in a high integrity mode and / or when a high integrity receiver position is to be achieved in step S500, the satellite observation interruption can be verified independently for a subset of satellite observation results. For example, cycle slips can be verified independently for a first satellite constellation (e.g., GPS) and a second satellite constellation (e.g., Galileo). However, the subset of satellite observation results can include any suitable satellites (e.g., a first subset and a second subset of GPS satellites) and / or any suitable satellite constellations.

[0091] In a first variant, when the residual (e.g., the difference between the residual and the closest integer) is sufficiently close to zero (e.g., the distance between the residual and the integer is less than a threshold, where the threshold can be, for example, 1 / 2, 1 / 3, 1 / 4, 1 / 5, 1 / 6, 1 / 8, 1 / 10, 1 / 20, 1 / 50, 1 / 100, <1 / 100, values in between, etc.), a satellite observation interruption can be verified. For example, when the residual (e.g., the non-integer part of the residual, the difference, etc.) is less than a multiple (e.g., 1x, 2x, 3x, etc.) of the residual standard deviation (or variance), the residual can be sufficiently close to zero. The first variant can be used to ensure that the residual is a satellite observation interruption, such as a cycle slip (e.g., as opposed to another type of outlier), but can act in other ways.

[0092] In a second variant, when the standard deviation of the residual is less than a threshold standard deviation (e.g., 0.2, 0.3, 0.5, 0.7, etc.), then a satellite observation interruption can be verified. For example, the threshold standard deviation can be 1 cycle length, such as 1 / 2, 1 / 3, 1 / 4, 1 / 5, 1 / 6, 1 / 8, 1 / 10, 1 / 20, 1 / 50, 1 / 100, <1 / 100 of a cycle length or values in between. The second variant can be used to correctly select a cycle slip (e.g., the correct value or actual value of an integer ambiguity jump), and / or act in other ways.

[0093] In the first and second variants, the threshold can be fixed (e.g., independent of the positioning engine mode), dependent on the positioning engine mode (e.g., a higher integrity mode has a tighter or smaller threshold), dependent on the target receiver position integrity (after re-convergence, after loss of phase lock, etc.), and / or determined in other ways.

[0094] However, satellite observation interruptions can be verified by other methods.

[0095] Generally, verified satellite observation interruptions are provided to S500, where the verified satellite observation interruptions can be used to determine the receiver position. However, un-verified satellite observation interruptions can additionally or alternatively be provided to S500 (e.g., where the un-verified satellite observation interruptions can be used to determine the receiver position).

[0096] When a satellite observation interruption is not verified, the method can be restarted (e.g., restart S100), additional satellite observation interruptions can be determined (e.g., using the same input data, using different input data, using the same method, using different methods, etc.), and / or any suitable response can occur.

[0097] S500 for determining the position of a second receiver based on GNSS technology is preferably used to determine the receiver position using GNSS data (e.g., satellite signals, reference station signals, etc.). S500 preferably occurs after the phase lock loss period has ended (e.g., after the masking time, after the reacquisition time, after the GNSS interruption period, etc.), but can occur at any suitable timing. S500 is preferably performed by a computing system (e.g., a positioning engine), but can be performed by the receiver and / or any suitable component.

[0098] S500 is preferably performed as described in S100 without resolving the carrier phase ambiguity (e.g., as described in S160) (e.g., because the carrier phase ambiguity can be determined based on the satellite observation interruption determined in S400). However, S500 can be performed in the same manner as described in S100, performed as described in S100 without verifying or fixing the carrier phase ambiguity, performed in a manner different from that described in S100, and / or performed in any way.

[0099] In an illustrative example, S500 can include receiving a set of satellite observations (e.g., a set of satellite observations for determining a satellite observation interruption, a set of satellite observations received after a satellite observation interruption has been determined, a set of satellite observations determined after reacquisition, etc.), modifying the set of satellite observations to account for the satellite observation interruption (e.g., as determined in S400, as verified in S400, etc.), and using a measurement model to calculate the receiver position. However, the measurement model can be modified to account for the satellite observation interruption (e.g., instead of modifying the satellite observations) and / or the receiver position can be determined in other ways.

[0100] When using a verified satellite observation interruption, the receiver position integrity (and / or accuracy) can be the same as before the phase lock loss event, can depend on the mode of the positioning engine, can depend on the verification of the satellite observation interruption, can depend on how the satellite observation interruption is determined, can depend on the duration of the phase lock loss (or a subset thereof, e.g., the reacquisition time), can depend on the number of measurements in a set of satellite observations (or a subset thereof), can depend on sensor data (e.g., the type of sensor used to generate the data, sensor biases, etc.), and / or can be determined in other ways. When the integrity of the receiver position is less than the target integrity, S500 can include performing additional verification tests (e.g., additional steps of a multi-step verification) on the carrier phase ambiguity and / or on the satellite observation interruption (e.g., cycle slips) to improve integrity. For example, when S500 determines that there is approximately 10 -4When at the receiver position of TIR of / hour, S500 may include performing a third verification step of carrier phase ambiguity (as disclosed above) to achieve a receiver position with a TIR of approximately 10 -7 / hour of receiver position. However, S500 may additionally or alternatively improve the integrity of the receiver position and / or otherwise improve the integrity of the solution by operating the re-convergence module in a higher integrity mode (e.g., relative to the mode used to establish the positioning value), using one or more processes as disclosed in U.S. Patent Application No. 17 / 022,924, filed on September 16, 2020, titled "SYSTEMS AND METHODS FOR HIGH-INTEGRITY SATELLITE POSITIONING", which is incorporated herein by reference in its entirety.

[0101] When using unvalidated satellite observation outages in S500, the integrity and / or accuracy of the receiver position is typically unspecified (or unknown). However, when using unvalidated satellite observation outages, the integrity of the receiver position may be known or estimated. When using unvalidated satellite observation outages, S500 may include: performing one or more processes to generate a high integrity receiver position (e.g., as described above), determining (e.g., calculating) the receiver position integrity, repeating S100, and / or any suitable steps.

[0102] S600 may include determining the position (and / or positioning) and / or velocity of an external system (e.g., a vehicle) based on the receiver position and / or velocity (e.g., from S100, S300, S500, etc.). The external system position may be determined based on a transformation from the receiver coordinates to the external system coordinates, based on a known relative position from the receiver to the external system, and / or in other ways. The external system position may be a relative position (e.g., relative to the receiver, relative to a reference position, relative to a sensor, relative to the centroid of multiple sensors, relative to the centroid of one or more receivers and sensors, etc.) and / or an absolute position (e.g., coordinates). The external system position is preferably determined based on a high integrity receiver position, but may be determined based on a medium integrity, low integrity, unknown integrity, and / or any suitable integrity receiver position.

[0103] S600 may include generating operating instructions for the external system based on the external system position and / or operating the external system (e.g., according to the operating instructions). For example, the operating instructions for a vehicle may include making lane adjustments to stay within a traffic lane, steering instructions, and / or other instructions for traversing a path, complying with laws, guiding the external system (and / or its user or occupant), delivering a payload (e.g., to a target location), and / or other purposes.

[0104] 5. Specific Examples

[0105] In a specific example, as Figure 4 shown, the method may include: using GNSS positioning technology to determine the first receiver position; during a satellite signal interruption (e.g., during a phase lock loss period), determining the receiver position based on sensor signals (e.g., using dead reckoning); after the satellite signal interruption (e.g., the satellite is no longer obstructed, the system resumes power supply, etc.), determining cycle slips based on the GNSS position before the satellite signal interruption and the current receiver position (e.g., determined using dead reckoning); verifying the cycle slips; determining the receiver position based on the verified cycle slips; optionally, transmitting the receiver position (and integrity); optionally, operating an external system based on the receiver position, and / or any suitable steps. Using GNSS positioning technology to determine the receiver position may include: receiving data from multiple satellites, receiving reference station data, estimating carrier phase ambiguities (e.g., floating ambiguities, integer ambiguities), and calculating the receiver position based on the estimated phase ambiguities. However, the method may include any suitable steps.

[0106] In a second specific example, as Figure 8 shown, the method may include: acquiring a carrier signal; determining the receiver and / or external system position based on the carrier signal; detecting a phase lock loss event; during the phase lock loss period, estimating the system position using an auxiliary positioning system (e.g., dead reckoning); reacquiring the carrier signal; estimating the change in integer ambiguity during the GNSS interruption using the estimated system position and the buffered carrier signal; determining the system position; verifying the integer ambiguity; and operating the (external) system based on the system position.

[0107] The methods of the preferred embodiments and their variations may be at least partially embodied and / or implemented as a machine configured to receive a computer-readable medium storing computer-readable instructions. The instructions are preferably executed by computer-executable components integrated with a system for GNSS PVT generation. The computer-readable medium may be stored on any suitable computer-readable medium (e.g., RAM, ROM, flash memory, EEPROM, optical devices (CD or DVD), hard disk drive, floppy disk drive, or any suitable device). The computer-executable components are preferably general or special purpose processors, but any suitable special hardware or hardware / firmware combination device may alternatively or additionally execute the instructions.

[0108] Embodiments of the system and / or method may include every combination and permutation of various system components and various method processes, where one or more instances of the methods and / or processes described herein may be performed asynchronously (e.g., sequentially), simultaneously (e.g., in parallel), or in any other suitable order by and / or using one or more instances of the systems, elements, and / or entities described herein.

[0109] As will be recognized by those skilled in the art from the foregoing detailed description, as well as from the accompanying drawings and claims, modifications and changes may be made to the preferred embodiments of the invention without departing from the scope of the invention as defined in the appended claims.

Claims

1. A system for determining the position of a receiver, comprising: a positioning engine that executes on a computing system collocated with the receiver, the positioning engine comprising: - an observation monitor configured to receive a set of satellite observations from a set of global navigation satellites; - an integer fixing module configured to determine an integer-valued carrier phase ambiguity associated with each satellite in the set of global navigation satellites; - a re-convergence module configured to determine cycle slips based on IMU data acquired during a phase lock loss period and the receiver position determined prior to the phase lock loss period; and a position filter configured to estimate the position of the receiver based on satellite observations from which the associated integer-valued carrier phase ambiguities have been removed; wherein the positioning engine is capable of operating in a first mode and a second mode, wherein the first mode and the second mode correspond to different integrity levels, and the re-convergence speed at which the positioning engine estimates the position of the receiver after the phase lock loss period is different in the first mode than in the second mode.

2. The system according to claim 1, further comprising a dead reckoning module configured to determine the position of the receiver based on the IMU data during the phase lock loss period.

3. The system according to claim 1, wherein, the integer fixing module is further configured to verify the integer-valued carrier phase ambiguity using a multi-step verification process; wherein the integrity risk of the estimated position of the receiver depends on the verification steps of the multi-step verification process.

4. The system according to claim 1, wherein, Before the phase lock loss period, the integrity risk of the estimated position is at most 10 per hour -7 .

5. The system according to claim 1, wherein, the re-convergence time of the positioning engine in the first mode is within 1 second, and wherein the re-convergence time in the second mode is within 2 seconds.

6. The system according to claim 5, wherein, As determined by the positioning engine operating in the first mode, after the phase lock loss period, the integrity risk of the receiver position is at most 10 per hour -4 , and wherein, as determined by the positioning engine operating in the second mode, after the phase lock loss period, the integrity risk of the receiver position is at most 10 per hour -7 .

7. The system according to claim 5, wherein: in the first mode, satellite observations including at least two satellite constellations are used to verify the cycle slips; and in the second mode, satellite observations associated with a first satellite constellation and satellite observations associated with a second satellite constellation are used to independently verify the cycle slips.

8. The system according to claim 1, wherein, the re-convergence module determines the cycle slips by: estimating a current carrier phase using the receiver position determined based on the IMU data and the receiver position determined prior to the phase lock loss period; determining a residual between the estimated carrier phase and a second set of satellite observations acquired after the phase lock loss period; and determining the integer closest to the residual, wherein the integer is the cycle slip.

9. The system according to claim 1, further comprising a remote server in communication with the positioning engine, the remote server comprising: A reference station observation monitor configured to receive a set of reference station observations associated with a set of reference stations; A modeling engine configured to generate corrections based on the set of reference station observations; and A reliability engine configured to verify the corrections generated by the modeling engine; wherein the positioning engine estimates the position of the receiver based on the verified corrections.

Citation Information

Patent Citations

  • Systems and methods for distributed dense network processing of satellite positioning data

    US10473790B2

  • System and method for satellite positioning

    US10871579B2

  • Systems and methods for real time kinematic satellite positioning

    US20200271795A1

  • Systems and methods for high-integrity satellite positioning

    US20200408926A1

  • System and method for validating GNSS ambiguities

    US20210181357A1