US20230018631A1 - System and method for satellite positioning - Google Patents

System and method for satellite positioning Download PDF

Info

Publication number
US20230018631A1
US20230018631A1 US17/940,728 US202217940728A US2023018631A1 US 20230018631 A1 US20230018631 A1 US 20230018631A1 US 202217940728 A US202217940728 A US 202217940728A US 2023018631 A1 US2023018631 A1 US 2023018631A1
Authority
US
United States
Prior art keywords
fault
observations
satellite
receiver
differenced
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
US17/940,728
Inventor
Paul Grgich
Lloyd Maza
Philippe Brocard
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Swift Navigation Inc
Original Assignee
Swift Navigation Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Swift Navigation Inc filed Critical Swift Navigation Inc
Priority to US17/940,728 priority Critical patent/US20230018631A1/en
Assigned to Swift Navigation, Inc. reassignment Swift Navigation, Inc. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BROCARD, PHILIPPE, GRGICH, PAUL, MAZA, LLOYD
Publication of US20230018631A1 publication Critical patent/US20230018631A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/20Integrity monitoring, fault detection or fault isolation of space segment
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/38Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
    • G01S19/39Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/40Correcting position, velocity or attitude
    • G01S19/41Differential correction, e.g. DGPS [differential GPS]
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/38Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
    • G01S19/39Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/42Determining position
    • G01S19/43Determining position using carrier phase measurements, e.g. kinematic positioning; using long or short baseline interferometry
    • G01S19/44Carrier phase ambiguity resolution; Floating ambiguity; LAMBDA [Least-squares AMBiguity Decorrelation Adjustment] method

Definitions

  • This invention relates generally to the satellite positioning field, and more specifically to a new and useful system and method in the satellite positioning field.
  • RAIM receiver autonomous integrity monitoring algorithms
  • ARAIM advanced RAIM
  • ERAIM extended RAIM
  • RRAIM relative RAIM
  • FIG. 1 is a schematic representation of the system.
  • FIG. 2 is a schematic representation of the method.
  • FIG. 3 is a schematic representation of an embodiment of determining fault modes for the satellite observations and determining a fault parameter in the satellite observations.
  • FIG. 4 is a schematic representation of an embodiment of transforming the satellite observations.
  • FIG. 5 A is a schematic representation of an example of determining the fault modes.
  • FIG. 5 B is a schematic representation of an example of determining the fault modes where a subset of the fault modes correspond to transformed satellite observations using a different reference satellite from the satellite observations.
  • FIG. 6 is a schematic representation of an example of the method.
  • FIG. 7 is a schematic representation of an example of a solution separation threshold excluding and including solution covariances in two dimensions.
  • FIGS. 8 A and 8 B are schematic representations of exemplary receiver position and protection level determination directions.
  • the method can include receiving satellite observations S 100 , determining fault modes for the satellite observations S 400 , determining a fault parameter S 500 , and determining position and protection levels S 700 .
  • the method can optionally include processing the satellite observations S 200 , determining the carrier phase ambiguity for the satellite observations S 300 , mitigating an effect of a fault S 600 , and/or any suitable steps.
  • the system 10 can include a GNSS receiver 100 and a computing system 200 .
  • the system can optionally include one or more reference station 300 .
  • the GNSS receiver and the reference station are preferably coupled to a set of satellites (e.g., configured to receive signals from each satellite of the set of satellites).
  • the set of satellites can correspond to one or more satellite constellation (e.g., GPS, BDS, Galileo, GLONASS, etc.).
  • the system and method preferably function to estimate a position and associated protection levels of a GNSS receiver.
  • Embodiments of the system and/or method can be used, for example, in autonomous or semi-autonomous vehicle guidance (e.g., for unmanned aerial vehicles (UAVs), unmanned aerial systems (UAS), self-driving cars, agricultural equipment, robotics, rail transport/transit systems, autonomous trucking, last mile delivery, etc.), GPS/GNSS research, surveying systems, user devices, mobile applications, internet-of-things (IOT) devices, and/or may be used in any other suitable application.
  • UAVs unmanned aerial vehicles
  • UAS unmanned aerial systems
  • self-driving cars agricultural equipment
  • robotics robotics
  • rail transport/transit systems autonomous trucking, last mile delivery, etc.
  • GPS/GNSS research GPS/GNSS research
  • surveying systems e.g., surveying systems, user devices, mobile applications, internet-of-things (IOT) devices, and/or may be used in any other
  • system can be coupled to any suitable external system such as a vehicle (e.g., UAV, UAS, car, truck, etc.), robot, railcar, user device (e.g., cell phone), and/or any suitable system, and can provide positioning data, integrity data (e.g., protection level data), and/or other data to said system.
  • a vehicle e.g., UAV, UAS, car, truck, etc.
  • robot e.g., robot
  • railcar e.g., cell phone
  • user device e.g., cell phone
  • integrity data e.g., protection level data
  • variants of the technology can estimate protection levels and/or receive position using only carrier phase (e.g., differenced carrier phase), which can enable the technology to better integrate with existing real-time kinematics (RTK) GNSS solutions.
  • carrier phase e.g., differenced carrier phase
  • these variants can enable higher accuracy position determination and/or tighter tolerances for the protection levels.
  • using carrier phase can be enabled by transforming the satellite observations (e.g., to differenced satellite observations) and/or by considering fault modes that account for differenced satellite observations.
  • Differenced satellite observations are generally incompatible with conventional RAIM methods because the observations are now correlated via the reference satellite used for differencing, while RAIM (e.g., ARAIM) assumes uncorrelated observations.
  • RAIM e.g., ARAIM
  • the inventors have discovered that, when analyzing the (differencing) reference satellite as the fault mode, a different reference satellite can be used without substantial loss of accuracy and/or precision, such that fault mode detection can be used with correlated observations.
  • a legitimate protection level e.g., a protection level such that the probability of an error in the position estimate exceeding the protection level is guaranteed to be less than a given threshold
  • any reference satellite e.g., for each fault mode
  • the inventors have found that any reference satellite (e.g., for each fault mode) can be selected from the set of non-faulting satellites and the resulting protection level will be legitimate.
  • the inventors have also modified the fault-tolerant position calculations and the solution separation test to accommodate for the differenced observations.
  • variants of the technology can enable more accurate (e.g., conservative, tighter, more representative, etc., in one or more coordinates) bounds on the protection level to be achieved (e.g., as compared to traditional RAIM technology). More accurate bounds on the protection level can be beneficial for ensuring or providing more accurate knowledge of the probable receiver position. In a specific example, the more accurate bounds can be achieved by accounting for the covariances and/or correlations between satellite observations and/or receiver positions in the solution separation threshold.
  • variants of the technology can determine an accurate (e.g., accurate to within 0.01%, 0.1%, 1%, 2%, 5%, 10%, 20%, 25%, 50%, etc. of the actual) upper bound on the error of (e.g., a protection level of) a receiver position estimate (e.g., a high accuracy receiver position estimate). These variants preferably achieve said protection level using a low CPU load.
  • accurate protection levels can be achieved by correcting for correlations or covariances in satellite observations, storing intermediate data between receiver position estimates, and/or by generating optimal (e.g., including the maximal number of fault tolerant satellite observations) fault modes.
  • the system 10 preferably functions to determine the position and associated integrity of a receiver.
  • the system 10 preferably uses a set of data collected by one or more data sources.
  • Data sources can include: receivers (e.g., GNSS receivers, antennae, etc.), sensors (e.g., located onboard the receiver, the external system, the reference stations, etc.), databases, satellites, reference stations, and/or any other suitable data source. Examples of data that can be used include: satellite observations, sensor observations, and/or any other suitable data.
  • the receiver 100 preferably functions to receive a set of satellite observations (e.g., satellite signals such as carrier phase and satellite code) from one or more satellites.
  • the receiver e.g., a processor of a receiver
  • the receiver is preferably in communication with the computing system.
  • the receiver can be integrated with the computing system, and/or the receiver and computing system can be arranged in any suitable manner.
  • the receiver is preferably a stand-alone device (e.g., a GNSS receiver, antenna).
  • the receiver can be integrated into the external system (e.g., be a component of an automobile, aero vehicle, nautical vehicle, mobile device, etc.), can be a user device (e.g., smart phone, laptop, cell phone, smart watch, etc.), and/or can be configured in any suitable manner.
  • the external system e.g., be a component of an automobile, aero vehicle, nautical vehicle, mobile device, etc.
  • a user device e.g., smart phone, laptop, cell phone, smart watch, etc.
  • the set of satellite observations can include orbital data, timestamp, code data, carrier phase data, pseudocode 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 a plurality of satellite constellations (e.g., Global Positioning System (GPS), GLObal Navigation Satellite System (GLONASS), BeiDou navigation satellite System (BDS), Galileo, etc.).
  • GPS Global Positioning System
  • GLONASS GLObal Navigation Satellite System
  • BDS BeiDou navigation satellite System
  • Galileo Galileo
  • the set of satellite observations can correspond to satellites from a single satellite constellation, can include data from an augmentation system (e.g., Satellite Based Augmentation System (SBAS) such as Wide Area Augmentation System (WAAS), European Geostationary Navigation Overlay Service (EGNOS), Multi-Functional Satellite Augmentation System (MSAS), Omnistar, StarFire, etc.; Ground Based Augmentation Systems (GBAS) such as Local Area Augmentation System (LAAS); etc.), and/or can include any suitable data.
  • SBAS Satellite Based Augmentation System
  • WAAS Wide Area Augmentation System
  • GNOS European Geostationary Navigation Overlay Service
  • MSAS Multi-Functional Satellite Augmentation System
  • GBAS Ground Based Augmentation Systems
  • LAAS Local Area Augmentation System
  • Each satellite observation from the set of satellite observations preferably corresponds to a common time window (e.g., epoch).
  • each satellite observation can be associated with a time stamp (e.g., time of transmission, time of receipt
  • each receiver can be configured to receive satellite observations corresponding to a satellite constellation, to a carrier frequency (e.g., the L1, L2, L5, E1, E5a, E5b, E5ab, E6, G1, G2, G3, B1, B2, B3, LEX, etc. frequencies), and/or corresponding to any suitable source.
  • a carrier frequency e.g., the L1, L2, L5, E1, E5a, E5b, E5ab, E6, G1, G2, G3, B1, B2, B3, LEX, etc. frequencies
  • the receiver can be in communication with a correction service (e.g., a networked correction service, PPP correction service, PPP-RTK correction service, etc.), which can provide corrections (e.g., for global corrections such as clock, orbit, etc.; for local corrections such as ionosphere delay, troposphere delay, etc.; etc. such as those as disclosed in U.S. patent application Ser. No. 16/589,932 filed Oct. 1, 2019 entitled “SYSTEMS AND METHODS FOR DISTRIBUTED DENSE NETWORK PROCESSING OF SATELLITE POSITIONING DATA” and/or U.S. patent application Ser. No. 16/983,706 filed Aug. 3, 2020 entitled “SYSTEM AND METHOD FOR GAUSSIAN PROCESS ENHANCED GNSS CORRECTIONS GENERATION,” each of which is incorporated in its entirety by this reference) for one or more of the satellite observations.
  • a correction service e.g., a networked correction service, PPP
  • the reference station(s) preferably function to receive a set of satellite observations (e.g., reference station satellite observations, reference observations, etc.) and transmit the reference station satellite observations (e.g., to the computing system, to the receiver).
  • the satellite observations from the reference station(s) can be used to determine corrections (e.g., local and/or global corrections such as to account for atmospheric effects, to account for clock errors, etc.) to the set of satellite observations corresponding to the receiver, can be used to transform the satellite observations (e.g., computing differenced satellite observations), and/or can otherwise be used.
  • Each reference station is preferably communicably coupled to the computing system.
  • the reference station can include the computing system and/or be coupled to the computing system in any suitable manner.
  • the reference stations can be in direct or indirect (e.g., via an intermediary) communication with the receiver.
  • the reference station(s) are preferably located within about 500 km of the receivers, but the distance between the reference stations and the receiver can be any suitable distance.
  • the reference station satellite observations preferably correspond to the same set of satellites as the set of satellite observations.
  • the reference station satellite observations can correspond to any suitable satellite observations.
  • the location (e.g., position) of the reference station(s) is preferably known to a high degree of accuracy (e.g., less than 1 mm, 1 cm, 1 dm, 1 m, etc. of uncertainty in the location of the reference station such as in the location of the reference station antenna).
  • the location of the reference station(s) can be static and/or dynamic.
  • the computing system 200 preferably functions to process the data (e.g., satellite observations) from the receiver and/or the reference stations.
  • the computing system can: aggregate the data (e.g., combine the receiver satellite observations, reference station satellite observations, and sensor data; reorganize the receiver satellite observations, reference station satellite observations, and sensor data such as based on the time stamp, time of transmission, time of receipt, etc.; etc.), filter the data (e.g., to calculate state vectors, ambiguities such as phase ambiguities, etc.
  • the computing system can be local (e.g., on-board the external system, integrated in a receiver, integrated with a reference station, etc.), remote (e.g., cloud computing, server, networked, etc.), and/or distributed (e.g., between a remote and local computing system).
  • the computing system 200 is preferably configured to perform a RAIM calculation (e.g., RAIM, ARAIM, ERAIM, RRAIM, modified RAIM, modified ARAIM, modified ERAIM, modified RRAIM, CRAIM, PRAIM, HRAIM, VRAIM, etc.) to estimate the receiver position and protection level, but can estimate the receiver position and protection level using any algorithm.
  • the inputs to the RAIM calculation are preferably the carrier phase (e.g., carrier phase with ambiguities resolved) and/or the satellite code data, but can additionally or alternatively include pseudorange, ambiguities and/or any suitable data.
  • the inputs to the RAIM calculation are only the carrier phases associated with satellites of the set of satellites.
  • the inputs to the RAIM calculation can be only carrier phases that have fixed and/or validated integer ambiguities.
  • only differenced satellite observations for instance only double differenced observations such as to obtain a protection level associated with an RTK baseline positioning solution
  • only differenced satellite observations that have fixed and/or validated integer ambiguities can be used as inputs to the RAIM calculation.
  • any suitable inputs to the RAIM calculation can be used.
  • Outputs from the RAIM calculation can include a receiver position, a receiver position integrity (e.g., integrity risk, protection level, etc.), fault information (e.g., fault identification, fault mitigation, fault detection, fault impact, etc.), and/or any suitable information.
  • a receiver position integrity e.g., integrity risk, protection level, etc.
  • fault information e.g., fault identification, fault mitigation, fault detection, fault impact, etc.
  • the computing system is preferably communicably coupled to the receiver, to the reference station, and to the sensors, but the computing system can be in communication with any suitable components.
  • the computing system can include one or more: processing module, dead reckoning module, and validation module.
  • the computing system can include any suitable modules.
  • system can include one or more components as described in U.S. application Ser. No. 16/817,196 filed Mar. 12, 2020, and/or U.S. application Ser. No. 16/865,077 filed May 1, 2020, each of which is incorporated herein its entirety by this reference, or otherwise configured.
  • the method preferably functions to estimate (e.g., calculate, determine) the position of the receiver and the associated integrity (e.g., protection level).
  • Steps and/or substeps of the method can be performed iteratively (e.g., for different epochs, for the same epoch, etc.), sequentially, and/or in any suitable order.
  • the steps and/or substeps of the method can be performed in series and/or in parallel.
  • the steps and/or substeps are preferably performed by a system as described above, but can be performed by any system.
  • the integrity is preferably a conservative integrity (e.g., overestimate of the actual protection level and/or receiver position, overestimate of the integrity risk, overestimate of the total integrity risk, etc.
  • the method is preferably performed in real or near-real time (e.g., can be completed during a single satellite observation epoch, completed before additional satellite observations associated with a satellite are received, etc.), but can be performed with a delay (e.g., lagging to accommodate a delay in one or more data source), offline, and/or with any suitable timing.
  • the method and/or steps thereof can be performed using and/or be referred to as a modified ARAIM algorithm.
  • the ARAIM algorithm can be modified to process carrier phase observations (in addition to or alternative to pseudorange or code observations), modified to process differenced carrier phase observations, modified to process predetermined sets or subsets of satellite constellations, modified to account for observation and/or positional covariances (in addition to or alterative to variances), and/or otherwise be modified.
  • the method and/or steps thereof can additionally or alternatively be performed using any suitable RAIM algorithm(s) and/or any suitable algorithm.
  • the RAIM algorithm (e.g., modified ARAIM algorithm) can use a measurement rejection approach (MRA), an error characterization approach (ECA), and/or any suitable approach.
  • MRA measurement rejection approach
  • ECA error characterization approach
  • the RAIM algorithm (e.g., modified ARAIM algorithm) can perform fault detection, fault exclusion, fault identification, fault mitigation, and/or any suitable steps in processing or determining a receiver position.
  • the method can include receiving satellite observations S 100 , determining fault modes for the satellite observations S 400 , determining a fault parameter S 500 , and determining position and protection levels S 700 .
  • the method can optionally include processing the satellite observations S 200 , determining the carrier phase ambiguity for the satellite observations S 300 , mitigating an effect of a fault Shoo, and/or any suitable steps.
  • Receiving the satellite observations S 100 functions to measure and/or detect a set of satellite signals, where each satellite signal is associated with a satellite, at a GNSS receiver (e.g., a mobile receiver) and/or reference station. Satellite observations corresponding to or associated with the same set of satellites are preferably received at the GNSS receiver and the reference station; however, the GNSS receiver and the reference station can receive satellite observations from any satellites.
  • the satellite observations preferably refer to carrier phase and/or satellite signal code data.
  • the satellite observations can include only satellite carrier phase.
  • the satellite observations can include only satellite code data.
  • the satellite observations can include both satellite carrier phase and code data.
  • the satellite observations can additionally or alternatively include satellite pseudorange, and/or any suitable data.
  • Receiving the satellite observations can include transmitting the satellite observations to the GNSS receiver and/or to the computing system.
  • S 100 is preferably performed before processing the satellite observations S 200 ; however, S 100 can be performed at the same time as S 200 .
  • S 100 is preferably performed by a receiver. However, S 100 can additionally or alternatively be performed by one or more reference stations, by one or more sensors, and/or by any suitable component.
  • the data (e.g., satellite observations, sensor data, etc.) received in S 100 is preferably measured during a time window (e.g., time period, epoch).
  • a time window e.g., time period, epoch.
  • Each of the sets of satellite observations can correspond to the same and/or to a different time window.
  • the method can include repeating S 100 during a second time window.
  • the second time window can be the same duration as the time window and/or a different duration.
  • the second time window preferably immediately follows the time window; however, the second time window can be delayed relative to the time window by any amount.
  • the (first and second) time windows are preferably separate and distinct (e.g., consecutive, nonconsecutive, etc.), but can alternatively overlap or otherwise be related.
  • the second time window can additionally or alternatively be started in response to a trigger event (e.g., convergence of one or more calculation; receiver position; loss of satellite observations such as for a specific satellite, for an amount of time, etc.; etc.), at a predetermined time, and/or at any suitable time.
  • a trigger event e.g., convergence of one or more calculation; receiver position; loss of satellite observations such as for a specific satellite, for an amount of time, etc.; etc.
  • the time window can be extended and/or any suitable action can occur in response to the trigger event.
  • Processing the satellite observations S 200 preferably functions to transform the set of satellite observations, but can function to process the set of satellite observations in any manner (e.g., to denoise the observations, to mitigate an effect of outliers, etc.). Processing the satellite observations is preferably performed by a computing system (e.g., a processing module of a computing system, by a processor of the data receiver such as the mobile receiver, GNSS receiver, reference station, etc.,), but can be performed by any component.
  • a computing system e.g., a processing module of a computing system, by a processor of the data receiver such as the mobile receiver, GNSS receiver, reference station, etc.,
  • Processing the satellite observations can include: removing non-carrier phase observations from the set of satellite observations, aligning the carrier phase observations and the validated ambiguities (e.g., from a previous epoch, from the current epoch, etc.), transforming the carrier phase observations to a differenced and/or disambiguated space, generating linear combinations of satellite observations, fixing the carrier phase observations (e.g., using the integer phase ambiguities, the validated integer phase ambiguities, etc.), correcting the satellite observations (e.g., based on corrections data generated by or received from a corrections service), and/or any suitable step(s).
  • S 200 can be performed before, during, and/or after S 300 .
  • the set of processed satellite observations can be correlated (e.g., form correlated sets of satellite observations such as differenced satellite observations), uncorrelated, and/or include both correlated and uncorrelated satellite observations.
  • Variants where the processed satellite observations are correlated can be particularly beneficial for facilitating fault mode determination and fault mode counting as in these variants, the number of fault modes can correspond to a sum of binomial distributions (for instance based on the number and/or type of processing).
  • Variants where the processed satellite observations are correlated can be beneficial for facilitating fault mode isolation.
  • the variants can facilitate fault mode generation and/or determination in any manner.
  • a first set of processed satellite observations can be used to determine satellite observation ambiguities and/or a receiver position and a second set of processed satellite observations can be used to determine a receiver position and/or an integrity of a receiver position.
  • the first and second set of processed satellite observations are preferably derived from the same satellite observations. However, either the first or the second set of processed satellite observations can include information derived associated with additional or fewer satellites or other data sources.
  • the first and the second set of processed satellite observations can be processed in the same manner or in different manners. However, a single set of processed satellite observations can be used (e.g., as shown for example in FIG. 8 A ), and/or any suitable number of processed satellite observations can be derived.
  • the satellite observations can be transformed to a narrow lane, a wide lane, an extra wide lane, a Melbourne-Wübbena wide lane, a Hatch-Melbourne-Wübbena combination, a geometry free linear combination, an ionosphere-free linear combination, and/or other linear combination of satellite observations.
  • processed satellite observations can include (and/or correspond to) differenced satellite observations (e.g., differenced space).
  • the differenced satellite observations can include a single difference (e.g., between satellite observations received at the GNSS receiver, between satellite observations received at the GNSS receiver and a satellite observations received at a reference station, etc.), double difference (e.g., between satellite observations received at the GNSS receiver and the reference station, between satellite observations received at the GNSS receiver and different reference stations), triple differenced (e.g., between satellite observations received during a first epoch at the GNSS receiver and the reference station and satellite observations received during a second epoch at the GNSS receiver and the reference station), and/or any suitable difference can be computed.
  • a single reference satellite (e.g., per satellite constellation) is preferably used to calculate the differences (e.g., each difference is computed relative to the same satellite).
  • double-differenced satellite observations can include GNSS receiver and reference station sources, and can be differenced within a code type against a reference satellite.
  • a single reference satellite can be used, a plurality of reference satellites can be used, and/or any data can be used to compute the difference.
  • the transformation from the measured satellite observations to the wide-lane double differenced space can be:
  • H a transforms the satellite carrier phase (e.g., observation space of) y (e.g., in units of length such as meters) to a phase space y (e.g., in units of cycles)
  • T transforms the phase space y to a double differenced phase space ⁇ y
  • A are the carrier phase ambiguities (e.g., determined in S 300 , determined for a previous epoch, determined for the current epoch, etc.).
  • the transformation from the measured satellite observations to the wide-lane double difference space can be:
  • ⁇ y′ T′H′ A ⁇ 1 y′ ⁇ A
  • corresponds to noncarrier phase observations (e.g., satellite code, pseudorange, etc.)
  • corresponds to carrier phase observations
  • Determining the carrier phase ambiguities functions to determine an unknown ambiguity in the carrier phase of each satellite observation.
  • the unknown ambiguity is preferably determined to be an integer ambiguity, but can be determined as a floating (e.g., floating precision) ambiguity and/or determined in any precision.
  • S 300 can be performed before, during, and/or after S 200 .
  • S 300 is preferably performed by a computing system (e.g., a GNSS receiver computing system, a cloud computing system, etc.), but can be performed by any suitable component.
  • the carrier phase ambiguities are preferably validated, but can be unvalidated. Determining and/or validating the carrier phase ambiguity can be performed as described in U.S. application Ser. No. 16/817,196 filed Mar.
  • S 300 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, performing hypothesis testing to validate the set of integer phase ambiguities hypotheses, and/or any suitable steps.
  • Determining a set of floating phase ambiguity hypotheses preferably functions to determine a phase ambiguity (typically in a floating point representation, but other representations can be used) associated with each satellite represented in the set of satellite observations.
  • the set of floating phase ambiguity hypotheses can be determined using snapshot methods (e.g., using a snapshot least squares calculation) using a filter, and/or using any suitable method.
  • the filter can be a Kalman filter, an extended Kalman filter, an unscented Kalman filter, a Bierman-Thornton filter, a particle filter, a snapshot least-squares filter, a Monte Carlo simulation, and/or any suitable mean-square error filter and/or sensor fusion algorithm.
  • the inputs to the floating hypotheses determination method can include: satellite observations (e.g., receiver satellite observations, corrected satellite observations, reference station satellite observations, processed satellite observations, etc. preferably associated with a single epoch but potentially associated with a plurality of epochs), sensor data, and/or any suitable data.
  • the output of the floating hypotheses determination method is preferably one or more floating carrier phase ambiguity hypotheses, but can include any suitable states (e.g., state vector) or information.
  • Determining a set of integer phase ambiguity hypotheses preferably functions to constrain (and/or otherwise determine from) the floating phase ambiguity hypotheses to a set of integer phase ambiguity hypotheses. Integer phase ambiguities can be beneficial for improving an accuracy of the determined receiver position as compared to the receiver position determined using floating ambiguities. Determining the set of integer phase ambiguity hypotheses can include reducing a correlation between ambiguities of the set of phase ambiguities (e.g., floating phase ambiguity hypotheses), performing a search (e.g., a least squares search, an absolute value search, etc.) to identify possible integer phase ambiguities to include in the set of integer phase ambiguity hypotheses, and/or include any suitable steps.
  • a search e.g., a least squares search, an absolute value search, etc.
  • Least-Squares Ambiguity Decorrelation Adjustment LAMBDA
  • modified-LAMBDA MLAMBDA
  • LLL reduction algorithm a whitening transformation, a coloring transformation, a decorrelation transformation, rounding
  • the Ambiguity Function Method AFM
  • FARA Fast Ambiguity Resolution Approach
  • LSAST Least-Squares Ambiguity Search Techniques
  • integer bootstrapping and/or any suitable decorrelation or reduction algorithm
  • the set of integer phase ambiguity hypotheses preferably includes integer phase ambiguities that satisfy a hypothesis criterion, but can include any suitable integer phase ambiguities.
  • Example of hypotheses criterion include a threshold sum of least squares, a threshold sum of absolute differences, a threshold likelihood of the correct solution, and/or any suitable criterion.
  • the set of integer phase ambiguity hypotheses can be generated in any manner.
  • Performing hypothesis testing preferably functions to determining the integer phase ambiguities from the set of integer phase ambiguity hypotheses that are most likely to be correct.
  • the hypothesis test is preferably a Bayesian inference, but can additionally or alternatively be based on a statistical confidence, significance testing, and/or any suitable hypothesis testing. Examples of hypothesis tests can include difference test, ratio test, projector test, f-test GIA test, and/or any suitable hypothesis test.
  • performing hypothesis testing can include determining a probability (e.g., a likelihood, a log likelihood, etc.) associated with subsets of integer phase ambiguities of the integer phase ambiguity hypotheses; computing a ratio of the probability between two subsets of integer phase ambiguities (e.g., within the same ambiguity set, across different ambiguity sets); when the ratio between a most-likely and a next most likely subset of integer phase ambiguities exceeds a threshold, storing the most-likely subset of integer phase ambiguities as the integer phase ambiguities and ceasing hypothesis testing.
  • a probability e.g., a likelihood, a log likelihood, etc.
  • determining the carrier phase ambiguity can otherwise be performed.
  • Determining fault mode(s) S 400 preferably functions to determine (e.g., identify, generate, list, enumerate, etc.) a set of fault modes for the satellites and/or satellite observations.
  • Each fault mode of the set of fault modes can refer to (or be associated with) unique sets of satellite observations that could potentially fail, unique sets of satellites that could potentially fail, satellite constellation failure, each unique processed satellite observation that could potentially fail, and/or to any potential failure.
  • the set of fault modes could include up to 6 fault modes: 3 single satellite fault modes, 2 double satellite fault modes, and a triple satellite fault mode.
  • Each fault mode can be associated with a set of excluded satellites (e.g., individual satellites, constellations, constellation subsets, etc.), a predicted probability of the fault occurring, and/or any suitable information. Determining the set of fault modes is preferably performed by the computing system (e.g., a fault module of the computing system, of the GNSS receiver, of the external system, of a cloud computing system, etc.), but can be performed by any component.
  • Examples of faults can include: satellite failure, satellite constellation failure, non-line of sight measurements (e.g., multipath), clock errors, atmospheric effects, orbit errors, ephemeris errors, receiver faults, cycle slip, and/or any suitable faults (or predetermined events such as those disclosed in U.S. application Ser. No. 17/022,924 filed Sep. 16, 2020 entitled “SYSTEMS AND METHODS FOR HIGH-INTEGRITY SATELLITE POSITIONING” incorporated in its entirety by this reference).
  • S 400 can be performed by a computing system (e.g., of an external system, of a GNSS receiver, cloud computing system, etc.) and/or by any suitable component. S 400 is preferably performed after S 100 , but can be performed at the same time as S 100 .
  • a computing system e.g., of an external system, of a GNSS receiver, cloud computing system, etc.
  • Every fault mode that considers up to a predetermined number of simultaneous satellite failures is preferably analyzed. However, every potential fault mode, fault modes with a predetermined probability of occurring, a predetermined set of fault modes, and/or any suitable fault modes can be analyzed.
  • the fault modes to be considered can depend on the application (e.g., a target protection level, a target position accuracy, a location of the external system, etc.), a probability of one or more satellites and/or satellite constellations failing, and/or can be otherwise determined.
  • the maximum number of simultaneous satellite failures to be considered can be determined using:
  • N fault ⁇ _ ⁇ max r > 0 argmax [ P multiple ( r ) ⁇ P threshold ] ,
  • N fault_max corresponds to the maximum number of simultaneous satellite failures
  • P threshold corresponds to a threshold probability
  • r is an integer (e.g., number of simultaneous faults to consider such as satellites, observations, etc. such as 1, 2, 3, 4, 5, 7, 10, 15, 20, etc.), and an upper bound on P multiple (r) can be determined according to
  • N sat corresponds to the number of satellites in the set of satellites
  • N const corresponds to the number of satellite constellations represented in the set of satellite observations
  • P event,k is a predetermined and/or estimated probability of an event occurring.
  • N fault_max is between about 1 and 3, inclusive.
  • N fault_max can be any value between 1 and the number of satellites in view of the receiver (e.g., number of satellites in the set of satellites, number of satellites associated with a satellite observation, etc.).
  • the threshold probability can be a predetermined threshold (e.g., 10 ⁇ 2 , 10 ⁇ 3 , 10 ⁇ 4 , 10 ⁇ 5 , 10 ⁇ 6 , 10 ⁇ 7 , 10 ⁇ 8 , 10 ⁇ 9 , 10 ⁇ 10 , 10 ⁇ 2 -10 ⁇ 10 %, etc.), depend on the application, depend on a target integrity (e.g., target protection level), depend on the satellites in view (e.g., satellite constellations that are observed, depend on the number of satellites in view, etc.), and/or be otherwise determined.
  • a target integrity e.g., target protection level
  • the satellites in view e.g., satellite constellations that are observed, depend on the number of satellites in view, etc.
  • the set of fault modes can be generated or determined by iterating through every possible combination of removing satellite observations correspond to at most N fault_max satellite failures to generate each unique permutation of satellite observations excluding m satellites, where m is an integer less than or equal to N fault_max .
  • the set of fault modes can exclude fault modes corresponding to faults in the reference satellite which may lead to larger (or erroneous) protection levels.
  • the set of fault modes can be generated or determined by iterating through every possible combination of removing satellite observations corresponding to at most N fault_max satellite observations to generate each unique permutation of satellite observations excluding m satellite observations, where m is an integer less than or equal to N fault_max .
  • the satellite observations can be modified such that the fault modes do not need to consider the processed satellite observations (e.g., do not need to use or see double-differenced measurements).
  • each reference satellite can have a single-differenced ambiguity of o, where double-differenced satellite observations can be mapped into single-differenced satellite observations by “adding” this ambiguity to each measurement.
  • the set of satellite observations can be processed (e.g., rotated transformed, etc.) to a different representation or space.
  • double differenced satellite observations can be transformed to single differenced satellite observations, to double differenced satellite observations relative to a different reference satellite, to undifferenced satellite observations, to differenced satellite observations relative to an arbitrary constant (e.g., a predetermined constant, a fixed error, an independently determined value, etc.), and/or otherwise be transformed.
  • a single clock state e.g., per constellation, per satellite, per reference satellite, per process, etc.
  • This variation can be beneficial for decreasing and/or removing a need to consider correlations between fault modes. However, this variation can otherwise be achieved.
  • determining the set of fault modes can include determining a second reference satellite, where the second reference satellite is preferably distinct from the reference satellite.
  • the second reference satellite is preferably not potentially faulty (e.g., selected from a fault mode or associated set of satellite observations that exceeds a threshold probability of not including a fault), but can be randomly or pseudorandomly selected (e.g., from the set of satellites excluding the original reference satellite), selected based on a property of the second reference satellite (e.g., line of sight to the satellite, signal strength, predicted availability, predicted duration of the satellite remaining in view of the receiver, etc.), can be potentially faulty (e.g., selected from a fault mode or associated set of satellite observations that exceeds a threshold probability of including a fault), and/or can otherwise be selected.
  • the second reference satellite is or will be tested for a potential fault (e.g., during a second instance of S 400 and/or S 500 ), but the second reference satellite does not have to be tested for a potential fault.
  • the set of fault modes can include a subset of fault modes corresponding to satellite observations processed relative to the reference satellite and a second subset of fault modes corresponding to satellite observations processed relative to the second reference satellite (e.g., by applying a transformation as described above to change from a first differenced space to a second differenced space).
  • the two subsets of fault modes are preferably distinct (e.g., account for different fault modes), but can be overlapping and/or otherwise related.
  • the second subset of fault modes can be determined by applying a second transformation matrix to the satellite observations (e.g., the transformed satellite observations), where the second transformation matrix transforms the satellite observations to a second differenced space (e.g., a fault tolerant second space).
  • the second transformation matrix can be determined by taking the intersection between the transformation matrix (e.g., the transformation matrix that transforms the satellite observations to the differenced space) and the matrix formed by dropping the rows corresponding to the observations assumed to be faulting from the identity matrix.
  • This specific example can have the benefit of including the maximum number of satellite observations within the fault mode (e.g., no other set of satellite observations can be generated that is fault tolerant such as to test for potential faults in the reference and/or faulting satellite(s) and has more observations).
  • Determining a fault parameter S 500 preferably functions to determine a fault parameter (e.g., for each fault mode) that is correlated with and/or indicative of whether any satellites are likely to have faulted and/or whether any satellites have faulted (e.g., failed).
  • the fault parameter is preferably a probability that the fault-tolerant receiver position associated with the fault parameter exceeds the protection level (e.g., a likelihood that a fault has occurred), but can additionally or alternatively be a probability that the fault will occur or has occurred, a probability that the fault-tolerant receiver position along a reference axis or coordinate exceeds the protection level (e.g., the protection level for the same reference axis or coordinate), an identification of a fault as present, and/or any suitable fault parameter.
  • the protection level e.g., a likelihood that a fault has occurred
  • Determining a fault parameter is preferably performed by the computing system (e.g., a fault observation module of the computing system, of the external system, of the GNSS receiver, of a cloud server, etc.), but can be performed by any component.
  • S 500 is preferably performed after S 400 , but can be performed at the same time as S 400 .
  • Determining a fault parameter preferably tests (e.g., determines a fault parameter for) every fault mode of the set of fault modes, but can test any subset of and/or suitable fault modes. In variants, as shown for example in FIG.
  • determining a fault parameter can include: determining an all-in-view receiver position S 530 , determining fault tolerant receiver position S 560 , determining whether each fault tolerant receiver position is within a predetermined threshold of the all-in-view receiver position S 590 , and/or any suitable steps.
  • Determining an all-in-view receiver position S 530 functions to determine (e.g., estimate, calculate) a receiver position (and associated variance) based on a set of satellite observations (e.g., received satellite observations, processed satellite observations, fault-mitigated satellite observations, etc.).
  • the receiver position can be determined using a Kalman filter (e.g., recursive Kalman filtering), an extended Kalman filter, a particle filter, MD simulations, a least-squares solution (e.g., an iterative snapshot least-squares method), and/or using any algorithm.
  • the weighted least-squares method can be defined as:
  • G is a geometry matrix (e.g., a matrix with dimension [n sat ⁇ 3], calculated from the actual satellite geometry)
  • W is a weight matrix (e.g., a square matrix with each element corresponding to the reciprocal of the square of a given satellite observations variance, a scaled weight such as based on the probability of a fault in the associated satellite(s), etc.)
  • ⁇ circumflex over (x) ⁇ is the estimated receiver position (e.g., absolute receiver position, relative receiver position such as relative to a previous receiver position, differenced receiver position, etc.)
  • y is the set of satellite observations (e.g., processed satellite observations, unprocessed satellite observations, differenced satellite observations, etc.).
  • Determining the fault-tolerant receiver position S 560 functions to determine (e.g., estimate, calculate) the receiver position using the sets of satellite observations associated with one or more fault modes.
  • the fault tolerant receiver position can be determined in series and/or in parallel (e.g., for each fault mode, for a subset of fault modes, etc.).
  • the fault-tolerant solutions are preferably determined for each fault mode. However, any subset of fault modes can be used. In a specific example, when the likelihood of a fault having occurred (e.g., the fault parameter) exceeds a threshold, no further fault-tolerant solutions need to be generated.
  • the fault-tolerant receiver positions are preferably determined in the same manner as (e.g., using different satellite observations) the all-in-view receiver position, but can be performed in any manner.
  • the weight matrix used to determine the fault-tolerant receiver position can be
  • W i , i ⁇ 0 , if ⁇ satellite ⁇ i ⁇ is ⁇ in ⁇ fault ⁇ mode ⁇ k W i , i ( 0 ) , otherwise .
  • the weight matrix for the fault tolerant solution can be generated by inverting the weight matrix of the all-in-view solution to obtain the satellite observation covariance matrix, removing the rows and columns corresponding to fault mode k, inverting the resulting matrix to obtain a weight matrix, resizing the transformed weight matrix to the original size (e.g., by adding zeros corresponding to the faulting observations), and proceeding with the fault tolerant position calculation.
  • any weight matrix can be used.
  • Determining the fault-tolerant receiver position preferably includes determining a variance of the difference between each fault-tolerant receiver position and the all-in-view receiver position.
  • determining the fault-tolerant receiver position can use a rank one update (e.g., the Sherman-Morrison formula) to modify stored intermediate data (e.g., stored during determining the all-in-view receiver position), which can increase the speed of the computations.
  • Determining whether each fault tolerant receiver position is within a predetermined threshold of the all-in-view receiver position S 590 functions to detect whether a fault (e.g., a satellite failure) is likely to have occurred and/or has occurred within the set of satellite observations.
  • a fault e.g., a satellite failure
  • the probability of fault occurrence can be determined based on: probability that the fault-tolerant solution exceeds the protection level is greater than 10 ⁇ 2 , 10 ⁇ 3 , 10 ⁇ 4 , 10 ⁇ 5 , 10 ⁇ 6 , 10 ⁇ 7 , 10 ⁇ 8 , 10 ⁇ 9 10-10, 10 ⁇ 2 -10 ⁇ 10 %, etc.; probability of a fault being present is greater than 10 ⁇ 2 , 10 ⁇ 3 , 10 ⁇ 4 , 10 ⁇ 5 , 10 ⁇ 6 , 10 ⁇ 7 , 1%, 5%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90%, 95%, 99%, etc.; probability of a fault exceeds a total integrity risk; probability of a fault exceeds an allocated integrity risk for a given fault; and/or otherwise determined.
  • Determining whether each fault tolerant receiver position is within a predetermined threshold of the all-in-view receiver position is preferably performed by a computing system (e.g., a fault detection module of a computing system), but can be performed by any component. Determining whether each fault tolerant receiver position is within a predetermined threshold of the all-in-view receiver position preferably includes performing a solution separation test, but can additionally or alternatively include performing a p-test, a ratio test, a chi-squared test, and/or any suitable tests.
  • the solution separation test preferably corresponds to a statistical assessment of each fault-tolerant receiver position compared to the all-in-view receiver position, but can be otherwise defined.
  • the solution separation test is preferably based on a solution separation threshold, but can be based on an absolute value and/or be otherwise defined.
  • the solution separation threshold can be determined according to an equation, using machine learning, heuristically, empirically, based on an application (e.g., a target protection level, an environment that the external system is operating in such as an urban environment vs an open sky environment, etc.), predetermined, and/or otherwise determined.
  • the solution separation threshold can be determined based on the variance of the all-in-view receiver position, the covariance of the all-in-view receiver position, a variance and/or covariance of one or more fault-tolerant receiver positions, a prior solution separation threshold (e.g., associated with a previous epoch), an integrity risk, a total integrity risk, a target integrity, and/or otherwise be determined.
  • the solution separation threshold can be a manifold (e.g., a surface, a volume bounded by a surface, a volume excluded from a surface, etc.), a coordinate frame, a vector space, and/or have any suitable form.
  • the solution separation threshold can define a prismatoid (e.g., rectangular prism), an ellipsoid (e.g., a sphere, a spheroid, a tri-axial ellipsoid, etc.), a homoeoid, a cylinder, a capsule (e.g., sphereocylinder), ovoid, and/or define any suitable volume or have any suitable shape.
  • a prismatoid e.g., rectangular prism
  • an ellipsoid e.g., a sphere, a spheroid, a tri-axial ellipsoid, etc.
  • a homoeoid e.g., a cylinder
  • a capsule e.g., sphereocylinder
  • ovoid e.g., ovoid
  • a solution e.g., an all-in-view receiver position, a fault-tolerant position, etc.
  • the solution separation threshold e.g., within the surface or volume defined by the solution separation threshold
  • the solution is considered not likely to be faulty and when the solution is outside of the solution separation threshold, the solution is considered likely to be faulty (e.g., the probability of the solution and/or associated satellites or satellite observations being faulty exceeds a threshold).
  • solutions can otherwise be considered faulty or not faulty with respect to the
  • the fault mode can be accounted for (e.g., in the governing equation), the fault-tolerant receiver position can be not likely faulty (e.g., less than a threshold probability of a fault associated with a satellite or satellite observation), no fault can be detected, and/or the fault mode(s) can otherwise be treated.
  • a fault mode can be detected (and subsequently mitigated and/or identified), the fault mode or associated data can be likely to include a fault, and/or the fault mode can otherwise be treated.
  • the solution separation threshold can be otherwise used.
  • the solution separation test can correspond to
  • determining whether each fault tolerant receiver position is within a predetermined threshold of the all-in-view receiver position can include correcting for the correlated satellite observations, which can function to determine more accurate protection levels. Correcting for the correlated observations can include accounting for the receiver position covariances (e.g., in addition to the receiver position variance) in the solution separation test (e.g., via the solution separation threshold). As shown for example in FIG. 7 , when covariances are excluded, the solution separation or tolerance threshold can define a rectangular space bounded by the threshold in each geometric direction.
  • the threshold region e.g., manifold
  • the threshold region can become an ellipsoidal region (e.g., asymmetrical ellipsoid, tilted ellipsoid, etc.). As shown for example in FIG.
  • solutions e.g., fault-tolerant solutions
  • solutions that can be indicated as acceptable (e.g., identified as not faulty or not likely to be faulty) within a rectangular manifold defining the solution separation threshold (e.g., derived by using all-in-view receiver position variances)
  • the solution separation threshold e.g., derived by using all-in-view receiver position variances
  • an ellipsoidal manifold e.g., derived by using all-in-view receiver position variances and covariances
  • accounting for solution covariances can be beneficial for representing or producing a more conservative integrity (e.g., compared to using solution variances).
  • T q (k) can additionally or alternatively be used as an upper bound for the receiver position error
  • T q (k) can be a maximum value of the ellipsoid (e.g., along each axis or coordinate q, the maximum value of the ellipsoid, etc.), determined using principal component analysis, determined using an iterative approach through the ellipsoidal volume, determined using eigenvalue decomposition, determined using single value decomposition, and/or otherwise be determined.
  • determining whether each fault tolerant receiver position is within a predetermined threshold of the all-in-view receiver position can include performing a chi-squared test.
  • the chi-squared test can be performed in addition to and/or instead the solution separation test.
  • the chi-squared test is preferably an upper bound for all of the solution separation tests.
  • the resultant receiver position and associated protection levels can be considered invalid (e.g., even when each solution separation test passes)
  • one or more mitigation steps can be performed, a new set of satellite observations can be received (e.g., the method can be restarted), and/or any suitable response can occur.
  • Mitigating the effect of faults S 600 functions to decrease the effect of fault modes and/or satellite observations associated with satellites and/or satellite constellations that are likely to have (e.g., based on the fault parameter) and/or have faulted on the position solution and the associated protection level when faults are likely and/or detected.
  • S 600 is preferably performed when a fault parameter associated with particular fault mode(s) exceeds a threshold (e.g., a threshold probability).
  • a threshold e.g., a threshold probability
  • Shoo can be performed independent of the fault parameters, when a predetermined number or type of fault modes are detected, and/or otherwise be performed responsive to or based on the fault parameters.
  • the threshold can be a predetermined threshold (e.g., 1, 0.1, 10 ⁇ 2 , 10 ⁇ 3 , 10 ⁇ 4 , 10 ⁇ 5 , 10 ⁇ 6 , 10 ⁇ 7 , 10 ⁇ 8 , 10 ⁇ 9 , 10 ⁇ 10 , 10 ⁇ 2 -10 ⁇ 10 %, etc.), be determined based on the application (e.g., be a smaller threshold for applications that require higher accuracy), be determined based on the probability of a particular fault mechanism, be determined empirically, be determined heuristically, be determined according to an equation, and/or be otherwise determined.
  • a predetermined threshold e.g., 1, 0.1, 10 ⁇ 2 , 10 ⁇ 3 , 10 ⁇ 4 , 10 ⁇ 5 , 10 ⁇ 6 , 10 ⁇ 7 , 10 ⁇ 8 , 10 ⁇ 9 , 10 ⁇ 10 , 10 ⁇ 2 -10 ⁇ 10 %, etc.
  • the method can accommodate any error introduced by the fault mode (e.g., the receiver position determined including the satellite observations within the fault mode will not exceed the protection level). However, any suitable action can occur based on the value of the fault parameter relative to the threshold.
  • the resultant fault-mitigated receiver position can subsequently be used in lieu of the fault-unmitigated receiver position (e.g., in S 700 ), or otherwise used.
  • Mitigating the effect of faults is preferably performed by a computing system (e.g., a fault mitigation module of the computing system), but can be performed by any component.
  • mitigating the effect of faults can include: removing one or more satellite observations from the set of satellite observations, applying a weight factor to one or more satellite observations (e.g., apply a smaller weight factor to satellite observations associated with a fault mode, apply a larger weight factor to satellite observations not associated with a faulting satellite, etc.), acquiring additional satellite observations, choosing a new reference satellite and transforming the satellite observations according to the new reference satellite, and/or any suitable mitigation steps.
  • Mitigating the effect of faults is preferably followed by determining a fault parameter for the set of satellite observations where the faults have been mitigated and/or determining fault modes for the set of satellite observations where the faults have been mitigated.
  • mitigating the effect of faults can be followed by determining the GNSS receiver position and associated protection level, processing the satellite observations, and/or by any suitable step.
  • a fault mode (and/or associated set of satellite observations) that indicates at least a threshold probability of a satellite fault (e.g., a fault parameter that is at least a threshold value) has occurred can be defined as (e.g., used as) a second all-in-view set of satellite observations (e.g., which can be used to repeat step S 400 and S 500 with the second all-in-view set of satellite observations).
  • the receiver position is preferably determined by a computing system (e.g., a positioning module of a computing system, of an external system, of a GNSS receiver, of a cloud computing system, etc.), but can be determined by any component.
  • the receiver position (and residual) can be the position solution determined by the all-in-view receiver position, the position solution determined by a fault-tolerant solution, determined using ambiguity-resolved carrier phase measurements, calculated relative to a baseline between the receiver and a reference station, and/or otherwise be determined.
  • the protection level is preferably determined (e.g., calculated, estimated) using a governing equation (e.g., a nonlinear governing equation), but can be determined using machine learning (e.g., a neural network, decision trees, regression analysis, Bayesian networks, etc.), and/or in any manner.
  • the protection level is preferably a conservative protection level (e.g., overestimate of the actual protection level and/or receiver position, to better ensure that the external system can be operated according to target operation parameters, etc.), but can produce an exact and/or aggressive (e.g., underestimate of the actual protection level).
  • the governing equation can be solved using an iterative approach (e.g., an iterative half-step approach), a binary search (e.g., a naive binary search approach), using an equation (e.g., a closed-form approximation to the governing solution such as an upper or lower bound to the solution), graphically, using machine learning, and/or in any manner.
  • an iterative approach e.g., an iterative half-step approach
  • a binary search e.g., a naive binary search approach
  • an equation e.g., a closed-form approximation to the governing solution such as an upper or lower bound to the solution
  • L q is the protection level associated with axis q (e.g., horizontal axis, vertical axis)
  • Q is a tail probability distribution (e.g., of a zero-mean unit Normal distribution)
  • ⁇ q is a standard deviation of the position solution along axis q
  • P fault is the probability of a given fault (e.g., determined from a third-party message such as an Integrity Support Message, determined heuristically, determined based on previous measurements, etc.)
  • T q is the solution separation threshold on axis or coordinate q
  • the integrity risk e.g., estimated integrity risk
  • any governing equation can be used.
  • T q can be replaced with a maximum value of the threshold's bound along an axis or coordinate (e.g., a maximum value of the manifold's bound in each direction), a value of the threshold in one axis or coordinate when the other axes coordinates are o (e.g., the threshold's value along an axis or coordinate), a value of a bounding box that encloses the threshold, and/or any suitable value can be used.
  • a maximum value of the threshold's bound along an axis or coordinate e.g., a maximum value of the manifold's bound in each direction
  • a value of the threshold in one axis or coordinate when the other axes coordinates are o e.g., the threshold's value along an axis or coordinate
  • a value of a bounding box that encloses the threshold e.g., a bounding box that encloses the threshold, and/or any suitable value can be used.
  • more than one receiver position can be determined.
  • a receiver position can be determined according to an ARAIM algorithm and a second receiver position can be determined from a baseline vector determined based on the integer ambiguity.
  • the receiver positions can be used to validated and/or verify the results (e.g., compared to one another), a preferred value can be used (e.g., a receiver position associated with a preferred determination method can be used), a receiver position with an associated integrity can be used, an average (or other combination of) the receiver positions can be used, a receiver position can be selected (e.g., by voting), and/or any suitable receiver position can be used.
  • a preferred value e.g., a receiver position associated with a preferred determination method can be used
  • a receiver position with an associated integrity can be used
  • an average (or other combination of) the receiver positions can be used
  • a receiver position can be selected (e.g., by voting), and/or any suitable receiver position can be used.
  • the receiver position and/or protection level can be transmitted to an external system, stored (e.g., cached), used to operate and/or control an external system, used to generate external system operation instructions (e.g., turn, accelerate, decelerate, acquire data, etc.), and/or used in any manner.
  • an external system stored (e.g., cached)
  • used to operate and/or control an external system used to generate external system operation instructions (e.g., turn, accelerate, decelerate, acquire data, etc.), and/or used in any manner.
  • the method can include: at a GNSS receiver, receiving a set of satellite observations; at a reference station, receiving a set of satellite observations; transforming the satellite observations to a set of double differenced satellite observations; determining integer carrier phase ambiguities; removing the integer carrier phase ambiguities from the double differenced satellite observations; determining a set of fault modes; calculating an all-in-view receiver position; calculating a fault tolerant solution for each fault mode; when the fault tolerant receiver position(s) pass a solution separation test, estimating the receiver position and protection levels; when a fault tolerant solution does not pass the solution separation test, removing the corresponding fault mode from the double differenced satellite observations and repeating the calculation of the all-in-view receiver position with the updated double differenced satellite observations.
  • a new set of double-differenced satellite observations can be determined without the reference satellite and/or with a different satellite as the reference satellite, and the method repeated using the new set of double-differenced satellite observations.
  • the method can be otherwise performed.
  • Embodiments of the system and/or method can include every combination and permutation of the various system components and the various method processes, wherein one or more instances of the method and/or processes described herein can be performed asynchronously (e.g., sequentially), concurrently (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.

Abstract

A method and system for determining a receiver position comprising receiving satellite observations from a set of satellites, determining differenced observations based on the satellite observations, determining an all-in-view position of the receiver based on the differenced observations, determining a set of fault modes each associated with a subset of the differenced observations, for a fault mode of the set of fault modes, determining a fault-tolerant position of the receiver using the subset of differenced observations associated with the fault mode, when the all-in-view position and the fault tolerant position of the receiver for each fault mode are within a solution separation threshold, calculating a protection level associated with the all-in-view position of the receiver.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is a continuation of U.S. patent application Ser. No. 17/343,327 filed Jun. 9, 2021, which claims the benefit of U.S. Provisional Application No. 63/036,748, filed Jun. 9, 2020, each of which is incorporated in its entirety by this reference.
  • TECHNICAL FIELD
  • This invention relates generally to the satellite positioning field, and more specifically to a new and useful system and method in the satellite positioning field.
  • BACKGROUND
  • Traditional receiver autonomous integrity monitoring algorithms (RAIM such as advanced RAIM (ARAIM), extended RAIM (ERAIM), relative RAIM (RRAIM), etc.) are designed to estimate an integrity of a receiver position determined using satellite observations. However, these techniques typically estimate the integrity using satellite pseudorange, limiting the position accuracy of the solution and providing large protection levels such as on the order of meters to tens of meters. Emerging problems in receiver positioning can benefit from improved accuracies. Thus, there is a need in the satellite positioning field to create a new and useful system and method. This invention provides such new and useful systems and methods.
  • BRIEF DESCRIPTION OF THE FIGURES
  • FIG. 1 is a schematic representation of the system.
  • FIG. 2 is a schematic representation of the method.
  • FIG. 3 is a schematic representation of an embodiment of determining fault modes for the satellite observations and determining a fault parameter in the satellite observations.
  • FIG. 4 is a schematic representation of an embodiment of transforming the satellite observations.
  • FIG. 5A is a schematic representation of an example of determining the fault modes.
  • FIG. 5B is a schematic representation of an example of determining the fault modes where a subset of the fault modes correspond to transformed satellite observations using a different reference satellite from the satellite observations.
  • FIG. 6 is a schematic representation of an example of the method.
  • FIG. 7 is a schematic representation of an example of a solution separation threshold excluding and including solution covariances in two dimensions.
  • FIGS. 8A and 8B are schematic representations of exemplary receiver position and protection level determination directions.
  • DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • The following description of the preferred embodiments of the invention is not intended to limit the invention to these preferred embodiments, but rather to enable any person skilled in the art to make and use this invention.
  • 1. Overview.
  • As shown in FIG. 2 , the method can include receiving satellite observations S100, determining fault modes for the satellite observations S400, determining a fault parameter S500, and determining position and protection levels S700. The method can optionally include processing the satellite observations S200, determining the carrier phase ambiguity for the satellite observations S300, mitigating an effect of a fault S600, and/or any suitable steps.
  • As shown in FIG. 1 , the system 10 can include a GNSS receiver 100 and a computing system 200. The system can optionally include one or more reference station 300. The GNSS receiver and the reference station are preferably coupled to a set of satellites (e.g., configured to receive signals from each satellite of the set of satellites). The set of satellites can correspond to one or more satellite constellation (e.g., GPS, BDS, Galileo, GLONASS, etc.).
  • The system and method preferably function to estimate a position and associated protection levels of a GNSS receiver. Embodiments of the system and/or method can be used, for example, in autonomous or semi-autonomous vehicle guidance (e.g., for unmanned aerial vehicles (UAVs), unmanned aerial systems (UAS), self-driving cars, agricultural equipment, robotics, rail transport/transit systems, autonomous trucking, last mile delivery, etc.), GPS/GNSS research, surveying systems, user devices, mobile applications, internet-of-things (IOT) devices, and/or may be used in any other suitable application. In specific examples, the system (and/or components) can be coupled to any suitable external system such as a vehicle (e.g., UAV, UAS, car, truck, etc.), robot, railcar, user device (e.g., cell phone), and/or any suitable system, and can provide positioning data, integrity data (e.g., protection level data), and/or other data to said system.
  • 2. Benefits.
  • Variations of the technology can confer several benefits and/or advantages.
  • First, variants of the technology can estimate protection levels and/or receive position using only carrier phase (e.g., differenced carrier phase), which can enable the technology to better integrate with existing real-time kinematics (RTK) GNSS solutions. By using carrier phase, these variants can enable higher accuracy position determination and/or tighter tolerances for the protection levels. In a specific example, using carrier phase can be enabled by transforming the satellite observations (e.g., to differenced satellite observations) and/or by considering fault modes that account for differenced satellite observations.
  • Differenced satellite observations are generally incompatible with conventional RAIM methods because the observations are now correlated via the reference satellite used for differencing, while RAIM (e.g., ARAIM) assumes uncorrelated observations. The inventors have discovered that, when analyzing the (differencing) reference satellite as the fault mode, a different reference satellite can be used without substantial loss of accuracy and/or precision, such that fault mode detection can be used with correlated observations. In particular, the inventors have found that no matter which reference satellite is chosen for a given fault mode, a legitimate protection level (e.g., a protection level such that the probability of an error in the position estimate exceeding the protection level is guaranteed to be less than a given threshold) will result. Relatedly, the inventors have found that any reference satellite (e.g., for each fault mode) can be selected from the set of non-faulting satellites and the resulting protection level will be legitimate. The inventors have also modified the fault-tolerant position calculations and the solution separation test to accommodate for the differenced observations.
  • Second, variants of the technology can enable more accurate (e.g., conservative, tighter, more representative, etc., in one or more coordinates) bounds on the protection level to be achieved (e.g., as compared to traditional RAIM technology). More accurate bounds on the protection level can be beneficial for ensuring or providing more accurate knowledge of the probable receiver position. In a specific example, the more accurate bounds can be achieved by accounting for the covariances and/or correlations between satellite observations and/or receiver positions in the solution separation threshold.
  • Third, variants of the technology can determine an accurate (e.g., accurate to within 0.01%, 0.1%, 1%, 2%, 5%, 10%, 20%, 25%, 50%, etc. of the actual) upper bound on the error of (e.g., a protection level of) a receiver position estimate (e.g., a high accuracy receiver position estimate). These variants preferably achieve said protection level using a low CPU load. In specific examples, accurate protection levels can be achieved by correcting for correlations or covariances in satellite observations, storing intermediate data between receiver position estimates, and/or by generating optimal (e.g., including the maximal number of fault tolerant satellite observations) fault modes.
  • However, variants of the technology can confer any other suitable benefits and/or advantages.
  • 3. System.
  • The system 10 preferably functions to determine the position and associated integrity of a receiver.
  • The system 10 preferably uses a set of data collected by one or more data sources. Data sources can include: receivers (e.g., GNSS receivers, antennae, etc.), sensors (e.g., located onboard the receiver, the external system, the reference stations, etc.), databases, satellites, reference stations, and/or any other suitable data source. Examples of data that can be used include: satellite observations, sensor observations, and/or any other suitable data.
  • The receiver 100 (e.g., GNSS receiver, mobile receiver, antenna, etc.) preferably functions to receive a set of satellite observations (e.g., satellite signals such as carrier phase and satellite code) from one or more satellites. In variants, the receiver (e.g., a processor of a receiver) can determine the location of the receiver (and/or external system) based on the satellite observations. The receiver is preferably in communication with the computing system. However, the receiver can be integrated with the computing system, and/or the receiver and computing system can be arranged in any suitable manner. The receiver is preferably a stand-alone device (e.g., a GNSS receiver, antenna). However, the receiver can be integrated into the external system (e.g., be a component of an automobile, aero vehicle, nautical vehicle, mobile device, etc.), can be a user device (e.g., smart phone, laptop, cell phone, smart watch, etc.), and/or can be configured in any suitable manner.
  • The set of satellite observations can include orbital data, timestamp, code data, carrier phase data, pseudocode 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 a plurality of satellite constellations (e.g., Global Positioning System (GPS), GLObal Navigation Satellite System (GLONASS), 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 an augmentation system (e.g., Satellite Based Augmentation System (SBAS) such as Wide Area Augmentation System (WAAS), European Geostationary Navigation Overlay Service (EGNOS), Multi-Functional Satellite Augmentation System (MSAS), Omnistar, StarFire, etc.; Ground Based Augmentation Systems (GBAS) such as Local Area Augmentation System (LAAS); etc.), and/or can include any suitable data. Each satellite observation from the set of satellite observations preferably corresponds to a common time window (e.g., epoch). However, each satellite observation can be associated with a time stamp (e.g., time of transmission, time of receipt, time of processing, etc.), different time windows (e.g., different epochs), and/or the satellite observations can have any suitable timing.
  • In variants of the system including more than one receiver, each receiver can be configured to receive satellite observations corresponding to a satellite constellation, to a carrier frequency (e.g., the L1, L2, L5, E1, E5a, E5b, E5ab, E6, G1, G2, G3, B1, B2, B3, LEX, etc. frequencies), and/or corresponding to any suitable source.
  • The receiver can be in communication with a correction service (e.g., a networked correction service, PPP correction service, PPP-RTK correction service, etc.), which can provide corrections (e.g., for global corrections such as clock, orbit, etc.; for local corrections such as ionosphere delay, troposphere delay, etc.; etc. such as those as disclosed in U.S. patent application Ser. No. 16/589,932 filed Oct. 1, 2019 entitled “SYSTEMS AND METHODS FOR DISTRIBUTED DENSE NETWORK PROCESSING OF SATELLITE POSITIONING DATA” and/or U.S. patent application Ser. No. 16/983,706 filed Aug. 3, 2020 entitled “SYSTEM AND METHOD FOR GAUSSIAN PROCESS ENHANCED GNSS CORRECTIONS GENERATION,” each of which is incorporated in its entirety by this reference) for one or more of the satellite observations.
  • In variants of the system including reference stations 300 (e.g., reference receivers), the reference station(s) preferably function to receive a set of satellite observations (e.g., reference station satellite observations, reference observations, etc.) and transmit the reference station satellite observations (e.g., to the computing system, to the receiver). The satellite observations from the reference station(s) can be used to determine corrections (e.g., local and/or global corrections such as to account for atmospheric effects, to account for clock errors, etc.) to the set of satellite observations corresponding to the receiver, can be used to transform the satellite observations (e.g., computing differenced satellite observations), and/or can otherwise be used. Each reference station is preferably communicably coupled to the computing system. However, the reference station can include the computing system and/or be coupled to the computing system in any suitable manner. The reference stations can be in direct or indirect (e.g., via an intermediary) communication with the receiver. The reference station(s) are preferably located within about 500 km of the receivers, but the distance between the reference stations and the receiver can be any suitable distance.
  • The reference station satellite observations preferably correspond to the same set of satellites as the set of satellite observations. However, the reference station satellite observations can correspond to any suitable satellite observations.
  • The location (e.g., position) of the reference station(s) is preferably known to a high degree of accuracy (e.g., less than 1 mm, 1 cm, 1 dm, 1 m, etc. of uncertainty in the location of the reference station such as in the location of the reference station antenna). The location of the reference station(s) can be static and/or dynamic.
  • The computing system 200 preferably functions to process the data (e.g., satellite observations) from the receiver and/or the reference stations. The computing system can: aggregate the data (e.g., combine the receiver satellite observations, reference station satellite observations, and sensor data; reorganize the receiver satellite observations, reference station satellite observations, and sensor data such as based on the time stamp, time of transmission, time of receipt, etc.; etc.), filter the data (e.g., to calculate state vectors, ambiguities such as phase ambiguities, etc. associated with the data), calculate the receiver position (e.g., based on the ambiguities), calculate the protection level, determine the fault modes, determine a fault parameter, correct the data (e.g., correct the satellite observations for clock errors, hardware bias, atmospheric effects, etc.), and/or can process the data in any suitable manner. The computing system can be local (e.g., on-board the external system, integrated in a receiver, integrated with a reference station, etc.), remote (e.g., cloud computing, server, networked, etc.), and/or distributed (e.g., between a remote and local computing system).
  • The computing system 200 is preferably configured to perform a RAIM calculation (e.g., RAIM, ARAIM, ERAIM, RRAIM, modified RAIM, modified ARAIM, modified ERAIM, modified RRAIM, CRAIM, PRAIM, HRAIM, VRAIM, etc.) to estimate the receiver position and protection level, but can estimate the receiver position and protection level using any algorithm. The inputs to the RAIM calculation are preferably the carrier phase (e.g., carrier phase with ambiguities resolved) and/or the satellite code data, but can additionally or alternatively include pseudorange, ambiguities and/or any suitable data. In a specific example, the inputs to the RAIM calculation are only the carrier phases associated with satellites of the set of satellites. In a variation of this specific example, the inputs to the RAIM calculation can be only carrier phases that have fixed and/or validated integer ambiguities. In a second variation of this specific example, only differenced satellite observations (for instance only double differenced observations such as to obtain a protection level associated with an RTK baseline positioning solution) can be used as inputs to the RAIM calculation. In a third variation, only differenced satellite observations that have fixed and/or validated integer ambiguities can be used as inputs to the RAIM calculation. However, any suitable inputs to the RAIM calculation can be used. Outputs from the RAIM calculation can include a receiver position, a receiver position integrity (e.g., integrity risk, protection level, etc.), fault information (e.g., fault identification, fault mitigation, fault detection, fault impact, etc.), and/or any suitable information.
  • The computing system is preferably communicably coupled to the receiver, to the reference station, and to the sensors, but the computing system can be in communication with any suitable components. In variants, the computing system can include one or more: processing module, dead reckoning module, and validation module. However, the computing system can include any suitable modules.
  • In specific examples, the system can include one or more components as described in U.S. application Ser. No. 16/817,196 filed Mar. 12, 2020, and/or U.S. application Ser. No. 16/865,077 filed May 1, 2020, each of which is incorporated herein its entirety by this reference, or otherwise configured.
  • 4 Method.
  • The method preferably functions to estimate (e.g., calculate, determine) the position of the receiver and the associated integrity (e.g., protection level). Steps and/or substeps of the method can be performed iteratively (e.g., for different epochs, for the same epoch, etc.), sequentially, and/or in any suitable order. The steps and/or substeps of the method can be performed in series and/or in parallel. The steps and/or substeps are preferably performed by a system as described above, but can be performed by any system. The integrity is preferably a conservative integrity (e.g., overestimate of the actual protection level and/or receiver position, overestimate of the integrity risk, overestimate of the total integrity risk, etc. such as to better ensure that the external system can be operated according to target operation parameters), but can produce an exact and/or aggressive integrity (e.g., underestimate of the actual protection level). The method is preferably performed in real or near-real time (e.g., can be completed during a single satellite observation epoch, completed before additional satellite observations associated with a satellite are received, etc.), but can be performed with a delay (e.g., lagging to accommodate a delay in one or more data source), offline, and/or with any suitable timing.
  • The method and/or steps thereof (particularly, but not exclusively, steps S400 through S700) can be performed using and/or be referred to as a modified ARAIM algorithm. For instance, the ARAIM algorithm can be modified to process carrier phase observations (in addition to or alternative to pseudorange or code observations), modified to process differenced carrier phase observations, modified to process predetermined sets or subsets of satellite constellations, modified to account for observation and/or positional covariances (in addition to or alterative to variances), and/or otherwise be modified. However, the method and/or steps thereof can additionally or alternatively be performed using any suitable RAIM algorithm(s) and/or any suitable algorithm. The RAIM algorithm (e.g., modified ARAIM algorithm) can use a measurement rejection approach (MRA), an error characterization approach (ECA), and/or any suitable approach. The RAIM algorithm (e.g., modified ARAIM algorithm) can perform fault detection, fault exclusion, fault identification, fault mitigation, and/or any suitable steps in processing or determining a receiver position.
  • The method can include receiving satellite observations S100, determining fault modes for the satellite observations S400, determining a fault parameter S500, and determining position and protection levels S700. The method can optionally include processing the satellite observations S200, determining the carrier phase ambiguity for the satellite observations S300, mitigating an effect of a fault Shoo, and/or any suitable steps.
  • Receiving the satellite observations S100 functions to measure and/or detect a set of satellite signals, where each satellite signal is associated with a satellite, at a GNSS receiver (e.g., a mobile receiver) and/or reference station. Satellite observations corresponding to or associated with the same set of satellites are preferably received at the GNSS receiver and the reference station; however, the GNSS receiver and the reference station can receive satellite observations from any satellites. The satellite observations preferably refer to carrier phase and/or satellite signal code data. In a first specific example, the satellite observations can include only satellite carrier phase. In a second specific example, the satellite observations can include only satellite code data. In a third specific example, the satellite observations can include both satellite carrier phase and code data. However, the satellite observations can additionally or alternatively include satellite pseudorange, and/or any suitable data. Receiving the satellite observations can include transmitting the satellite observations to the GNSS receiver and/or to the computing system.
  • S100 is preferably performed before processing the satellite observations S200; however, S100 can be performed at the same time as S200. S100 is preferably performed by a receiver. However, S100 can additionally or alternatively be performed by one or more reference stations, by one or more sensors, and/or by any suitable component.
  • The data (e.g., satellite observations, sensor data, etc.) received in S100 is preferably measured during a time window (e.g., time period, epoch). Each of the sets of satellite observations can correspond to the same and/or to a different time window. In variants, after the time window has expired or ended, the method can include repeating S100 during a second time window. The second time window can be the same duration as the time window and/or a different duration. The second time window preferably immediately follows the time window; however, the second time window can be delayed relative to the time window by any amount. The (first and second) time windows are preferably separate and distinct (e.g., consecutive, nonconsecutive, etc.), but can alternatively overlap or otherwise be related. The second time window can additionally or alternatively be started in response to a trigger event (e.g., convergence of one or more calculation; receiver position; loss of satellite observations such as for a specific satellite, for an amount of time, etc.; etc.), at a predetermined time, and/or at any suitable time. However, the time window can be extended and/or any suitable action can occur in response to the trigger event.
  • Processing the satellite observations S200 preferably functions to transform the set of satellite observations, but can function to process the set of satellite observations in any manner (e.g., to denoise the observations, to mitigate an effect of outliers, etc.). Processing the satellite observations is preferably performed by a computing system (e.g., a processing module of a computing system, by a processor of the data receiver such as the mobile receiver, GNSS receiver, reference station, etc.,), but can be performed by any component. Processing the satellite observations can include: removing non-carrier phase observations from the set of satellite observations, aligning the carrier phase observations and the validated ambiguities (e.g., from a previous epoch, from the current epoch, etc.), transforming the carrier phase observations to a differenced and/or disambiguated space, generating linear combinations of satellite observations, fixing the carrier phase observations (e.g., using the integer phase ambiguities, the validated integer phase ambiguities, etc.), correcting the satellite observations (e.g., based on corrections data generated by or received from a corrections service), and/or any suitable step(s). S200 can be performed before, during, and/or after S300.
  • The set of processed satellite observations can be correlated (e.g., form correlated sets of satellite observations such as differenced satellite observations), uncorrelated, and/or include both correlated and uncorrelated satellite observations. Variants where the processed satellite observations are correlated can be particularly beneficial for facilitating fault mode determination and fault mode counting as in these variants, the number of fault modes can correspond to a sum of binomial distributions (for instance based on the number and/or type of processing). Variants where the processed satellite observations are correlated can be beneficial for facilitating fault mode isolation. However, the variants can facilitate fault mode generation and/or determination in any manner.
  • In some embodiments of the method (as shown for example in FIG. 8B), a first set of processed satellite observations can be used to determine satellite observation ambiguities and/or a receiver position and a second set of processed satellite observations can be used to determine a receiver position and/or an integrity of a receiver position. The first and second set of processed satellite observations are preferably derived from the same satellite observations. However, either the first or the second set of processed satellite observations can include information derived associated with additional or fewer satellites or other data sources. The first and the second set of processed satellite observations can be processed in the same manner or in different manners. However, a single set of processed satellite observations can be used (e.g., as shown for example in FIG. 8A), and/or any suitable number of processed satellite observations can be derived.
  • In specific examples (particularly of correlated satellite observations), the satellite observations can be transformed to a narrow lane, a wide lane, an extra wide lane, a Melbourne-Wübbena wide lane, a Hatch-Melbourne-Wübbena combination, a geometry free linear combination, an ionosphere-free linear combination, and/or other linear combination of satellite observations.
  • In specific examples, processed satellite observations can include (and/or correspond to) differenced satellite observations (e.g., differenced space). The differenced satellite observations can include a single difference (e.g., between satellite observations received at the GNSS receiver, between satellite observations received at the GNSS receiver and a satellite observations received at a reference station, etc.), double difference (e.g., between satellite observations received at the GNSS receiver and the reference station, between satellite observations received at the GNSS receiver and different reference stations), triple differenced (e.g., between satellite observations received during a first epoch at the GNSS receiver and the reference station and satellite observations received during a second epoch at the GNSS receiver and the reference station), and/or any suitable difference can be computed. A single reference satellite (e.g., per satellite constellation) is preferably used to calculate the differences (e.g., each difference is computed relative to the same satellite). In an illustrative example, double-differenced satellite observations can include GNSS receiver and reference station sources, and can be differenced within a code type against a reference satellite. However, additionally or alternatively, a single reference satellite can be used, a plurality of reference satellites can be used, and/or any data can be used to compute the difference.
  • In a first illustrative example such as when the satellite observations (e.g., observation space) only include carrier phase, the transformation from the measured satellite observations to the wide-lane double differenced space can be:

  • ∇Δ y=TH A −1 y−A
  • where Ha transforms the satellite carrier phase (e.g., observation space of) y (e.g., in units of length such as meters) to a phase space y (e.g., in units of cycles), T transforms the phase space y to a double differenced phase space ∇Δy, and A are the carrier phase ambiguities (e.g., determined in S300, determined for a previous epoch, determined for the current epoch, etc.).
  • In a second illustrative example as shown in FIG. 4 , the transformation from the measured satellite observations to the wide-lane double difference space can be:
  • ∇Δ y′=T′H′ A −1 y′−A
  • Where
  • y = [ ρ φ ] ,
  • where ρ corresponds to noncarrier phase observations (e.g., satellite code, pseudorange, etc.), φ correspond to carrier phase observations,
  • T = [ I 0 0 T ] and H A = [ I 0 0 H A ] .
  • However, any transformation(s) can be used.
  • Determining the carrier phase ambiguities S300 functions to determine an unknown ambiguity in the carrier phase of each satellite observation. The unknown ambiguity is preferably determined to be an integer ambiguity, but can be determined as a floating (e.g., floating precision) ambiguity and/or determined in any precision. S300 can be performed before, during, and/or after S200. S300 is preferably performed by a computing system (e.g., a GNSS receiver computing system, a cloud computing system, etc.), but can be performed by any suitable component. The carrier phase ambiguities are preferably validated, but can be unvalidated. Determining and/or validating the carrier phase ambiguity can be performed as described in U.S. application Ser. No. 16/817,196 filed Mar. 12, 2020 entitled “SYSTEMS AND METHODS FOR REAL TIME KINEMATIC SATELLITE POSITIONING”, U.S. patent application Ser. No. 16/685,927 filed Nov. 15, 2019 entitled “SYSTEM AND METHOD FOR SATELLITE POSITIONING”, U.S. application Ser. No. 17/022,924 filed Sep. 16, 2020 entitled “SYSTEMS AND METHODS FOR HIGH-INTEGRITY SATELLITE POSITIONING”, and/or U.S. application Ser. No. 17/235,333 filed Apr. 20, 2021 entitled “SYSTEM AND METHOD FOR VALIDATING GNSS AMBIGUITIES”, each of which is incorporated in its entirety by this reference, and/or otherwise determined or validated.
  • S300 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, performing hypothesis testing to validate the set of integer phase ambiguities hypotheses, and/or any suitable steps.
  • Determining a set of floating phase ambiguity hypotheses preferably functions to determine a phase ambiguity (typically in a floating point representation, but other representations can be used) associated with each satellite represented in the set of satellite observations. The set of floating phase ambiguity hypotheses can be determined using snapshot methods (e.g., using a snapshot least squares calculation) using a filter, and/or using any suitable method. The filter can be a Kalman filter, an extended Kalman filter, an unscented Kalman filter, a Bierman-Thornton filter, a particle filter, a snapshot least-squares filter, a Monte Carlo simulation, and/or any suitable mean-square error filter and/or sensor fusion algorithm. The inputs to the floating hypotheses determination method can include: satellite observations (e.g., receiver satellite observations, corrected satellite observations, reference station satellite observations, processed satellite observations, etc. preferably associated with a single epoch but potentially associated with a plurality of epochs), sensor data, and/or any suitable data. The output of the floating hypotheses determination method is preferably one or more floating carrier phase ambiguity hypotheses, but can include any suitable states (e.g., state vector) or information.
  • Determining a set of integer phase ambiguity hypotheses preferably functions to constrain (and/or otherwise determine from) the floating phase ambiguity hypotheses to a set of integer phase ambiguity hypotheses. Integer phase ambiguities can be beneficial for improving an accuracy of the determined receiver position as compared to the receiver position determined using floating ambiguities. Determining the set of integer phase ambiguity hypotheses can include reducing a correlation between ambiguities of the set of phase ambiguities (e.g., floating phase ambiguity hypotheses), performing a search (e.g., a least squares search, an absolute value search, etc.) to identify possible integer phase ambiguities to include in the set of integer phase ambiguity hypotheses, and/or include any suitable steps. For example, Least-Squares Ambiguity Decorrelation Adjustment (LAMBDA) algorithm, modified-LAMBDA (MLAMBDA) algorithm, LLL reduction algorithm, a whitening transformation, a coloring transformation, a decorrelation transformation, rounding, the Ambiguity Function Method (AFM), Fast Ambiguity Resolution Approach (FARA), Least-Squares Ambiguity Search Techniques (LSAST), integer bootstrapping, and/or any suitable decorrelation or reduction algorithm can be used to fix and/or identify integer phase ambiguities. The set of integer phase ambiguity hypotheses preferably includes integer phase ambiguities that satisfy a hypothesis criterion, but can include any suitable integer phase ambiguities. Example of hypotheses criterion include a threshold sum of least squares, a threshold sum of absolute differences, a threshold likelihood of the correct solution, and/or any suitable criterion. However, the set of integer phase ambiguity hypotheses can be generated in any manner.
  • Performing hypothesis testing preferably functions to determining the integer phase ambiguities from the set of integer phase ambiguity hypotheses that are most likely to be correct. The hypothesis test is preferably a Bayesian inference, but can additionally or alternatively be based on a statistical confidence, significance testing, and/or any suitable hypothesis testing. Examples of hypothesis tests can include difference test, ratio test, projector test, f-test GIA test, and/or any suitable hypothesis test. In an illustrative example, performing hypothesis testing can include determining a probability (e.g., a likelihood, a log likelihood, etc.) associated with subsets of integer phase ambiguities of the integer phase ambiguity hypotheses; computing a ratio of the probability between two subsets of integer phase ambiguities (e.g., within the same ambiguity set, across different ambiguity sets); when the ratio between a most-likely and a next most likely subset of integer phase ambiguities exceeds a threshold, storing the most-likely subset of integer phase ambiguities as the integer phase ambiguities and ceasing hypothesis testing. However, any hypothesis testing can be performed.
  • However, determining the carrier phase ambiguity can otherwise be performed.
  • Determining fault mode(s) S400 preferably functions to determine (e.g., identify, generate, list, enumerate, etc.) a set of fault modes for the satellites and/or satellite observations. Each fault mode of the set of fault modes can refer to (or be associated with) unique sets of satellite observations that could potentially fail, unique sets of satellites that could potentially fail, satellite constellation failure, each unique processed satellite observation that could potentially fail, and/or to any potential failure. As an illustrative example, if a set of satellite observations included three satellite observations, the set of fault modes could include up to 6 fault modes: 3 single satellite fault modes, 2 double satellite fault modes, and a triple satellite fault mode. Each fault mode can be associated with a set of excluded satellites (e.g., individual satellites, constellations, constellation subsets, etc.), a predicted probability of the fault occurring, and/or any suitable information. Determining the set of fault modes is preferably performed by the computing system (e.g., a fault module of the computing system, of the GNSS receiver, of the external system, of a cloud computing system, etc.), but can be performed by any component. Examples of faults can include: satellite failure, satellite constellation failure, non-line of sight measurements (e.g., multipath), clock errors, atmospheric effects, orbit errors, ephemeris errors, receiver faults, cycle slip, and/or any suitable faults (or predetermined events such as those disclosed in U.S. application Ser. No. 17/022,924 filed Sep. 16, 2020 entitled “SYSTEMS AND METHODS FOR HIGH-INTEGRITY SATELLITE POSITIONING” incorporated in its entirety by this reference).
  • S400 can be performed by a computing system (e.g., of an external system, of a GNSS receiver, cloud computing system, etc.) and/or by any suitable component. S400 is preferably performed after S100, but can be performed at the same time as S100.
  • Every fault mode that considers up to a predetermined number of simultaneous satellite failures is preferably analyzed. However, every potential fault mode, fault modes with a predetermined probability of occurring, a predetermined set of fault modes, and/or any suitable fault modes can be analyzed. The fault modes to be considered can depend on the application (e.g., a target protection level, a target position accuracy, a location of the external system, etc.), a probability of one or more satellites and/or satellite constellations failing, and/or can be otherwise determined.
  • In an illustrative example, the maximum number of simultaneous satellite failures to be considered can be determined using:
  • N fault _ max = r > 0 argmax [ P multiple ( r ) < P threshold ] ,
  • where Nfault_max corresponds to the maximum number of simultaneous satellite failures, Pthreshold corresponds to a threshold probability, r is an integer (e.g., number of simultaneous faults to consider such as satellites, observations, etc. such as 1, 2, 3, 4, 5, 7, 10, 15, 20, etc.), and an upper bound on Pmultiple(r) can be determined according to
  • P m u l t i p l e ( r ) = ( k = 1 N s a t + N c onst P even t , k ) r r ! ,
  • where Nsat corresponds to the number of satellites in the set of satellites, Nconst corresponds to the number of satellite constellations represented in the set of satellite observations, and Pevent,k is a predetermined and/or estimated probability of an event occurring. Often, Nfault_max is between about 1 and 3, inclusive. However, Nfault_max can be any value between 1 and the number of satellites in view of the receiver (e.g., number of satellites in the set of satellites, number of satellites associated with a satellite observation, etc.). The threshold probability can be a predetermined threshold (e.g., 10−2, 10−3, 10−4, 10−5, 10−6, 10−7, 10−8, 10−9, 10−10, 10−2-10−10%, etc.), depend on the application, depend on a target integrity (e.g., target protection level), depend on the satellites in view (e.g., satellite constellations that are observed, depend on the number of satellites in view, etc.), and/or be otherwise determined.
  • In a first variant of S400, as shown in FIG. 5A, the set of fault modes can be generated or determined by iterating through every possible combination of removing satellite observations correspond to at most Nfault_max satellite failures to generate each unique permutation of satellite observations excluding m satellites, where m is an integer less than or equal to Nfault_max. In examples of the first variant, the set of fault modes can exclude fault modes corresponding to faults in the reference satellite which may lead to larger (or erroneous) protection levels.
  • In a second variant, the set of fault modes can be generated or determined by iterating through every possible combination of removing satellite observations corresponding to at most Nfault_max satellite observations to generate each unique permutation of satellite observations excluding m satellite observations, where m is an integer less than or equal to Nfault_max.
  • In a variation of the first and/or second variant, the satellite observations can be modified such that the fault modes do not need to consider the processed satellite observations (e.g., do not need to use or see double-differenced measurements). For example, each reference satellite can have a single-differenced ambiguity of o, where double-differenced satellite observations can be mapped into single-differenced satellite observations by “adding” this ambiguity to each measurement. Additionally or alternatively, the set of satellite observations can be processed (e.g., rotated transformed, etc.) to a different representation or space. For instance, double differenced satellite observations can be transformed to single differenced satellite observations, to double differenced satellite observations relative to a different reference satellite, to undifferenced satellite observations, to differenced satellite observations relative to an arbitrary constant (e.g., a predetermined constant, a fixed error, an independently determined value, etc.), and/or otherwise be transformed. In this variation, a single clock state (e.g., per constellation, per satellite, per reference satellite, per process, etc.) is preferably retained, which could provide an estimate for the reference satellite ambiguity. This variation can be beneficial for decreasing and/or removing a need to consider correlations between fault modes. However, this variation can otherwise be achieved.
  • As shown for example in FIG. 5B, determining the set of fault modes can include determining a second reference satellite, where the second reference satellite is preferably distinct from the reference satellite. The second reference satellite is preferably not potentially faulty (e.g., selected from a fault mode or associated set of satellite observations that exceeds a threshold probability of not including a fault), but can be randomly or pseudorandomly selected (e.g., from the set of satellites excluding the original reference satellite), selected based on a property of the second reference satellite (e.g., line of sight to the satellite, signal strength, predicted availability, predicted duration of the satellite remaining in view of the receiver, etc.), can be potentially faulty (e.g., selected from a fault mode or associated set of satellite observations that exceeds a threshold probability of including a fault), and/or can otherwise be selected. In general, the second reference satellite is or will be tested for a potential fault (e.g., during a second instance of S400 and/or S500), but the second reference satellite does not have to be tested for a potential fault. The set of fault modes can include a subset of fault modes corresponding to satellite observations processed relative to the reference satellite and a second subset of fault modes corresponding to satellite observations processed relative to the second reference satellite (e.g., by applying a transformation as described above to change from a first differenced space to a second differenced space). The two subsets of fault modes are preferably distinct (e.g., account for different fault modes), but can be overlapping and/or otherwise related. In a specific example, the second subset of fault modes can be determined by applying a second transformation matrix to the satellite observations (e.g., the transformed satellite observations), where the second transformation matrix transforms the satellite observations to a second differenced space (e.g., a fault tolerant second space). The second transformation matrix can be determined by taking the intersection between the transformation matrix (e.g., the transformation matrix that transforms the satellite observations to the differenced space) and the matrix formed by dropping the rows corresponding to the observations assumed to be faulting from the identity matrix. This specific example can have the benefit of including the maximum number of satellite observations within the fault mode (e.g., no other set of satellite observations can be generated that is fault tolerant such as to test for potential faults in the reference and/or faulting satellite(s) and has more observations).
  • Determining a fault parameter S500 preferably functions to determine a fault parameter (e.g., for each fault mode) that is correlated with and/or indicative of whether any satellites are likely to have faulted and/or whether any satellites have faulted (e.g., failed). The fault parameter is preferably a probability that the fault-tolerant receiver position associated with the fault parameter exceeds the protection level (e.g., a likelihood that a fault has occurred), but can additionally or alternatively be a probability that the fault will occur or has occurred, a probability that the fault-tolerant receiver position along a reference axis or coordinate exceeds the protection level (e.g., the protection level for the same reference axis or coordinate), an identification of a fault as present, and/or any suitable fault parameter.
  • Determining a fault parameter is preferably performed by the computing system (e.g., a fault observation module of the computing system, of the external system, of the GNSS receiver, of a cloud server, etc.), but can be performed by any component. S500 is preferably performed after S400, but can be performed at the same time as S400. Determining a fault parameter preferably tests (e.g., determines a fault parameter for) every fault mode of the set of fault modes, but can test any subset of and/or suitable fault modes. In variants, as shown for example in FIG. 3 , determining a fault parameter can include: determining an all-in-view receiver position S530, determining fault tolerant receiver position S560, determining whether each fault tolerant receiver position is within a predetermined threshold of the all-in-view receiver position S590, and/or any suitable steps.
  • Determining an all-in-view receiver position S530 functions to determine (e.g., estimate, calculate) a receiver position (and associated variance) based on a set of satellite observations (e.g., received satellite observations, processed satellite observations, fault-mitigated satellite observations, etc.). The receiver position can be determined using a Kalman filter (e.g., recursive Kalman filtering), an extended Kalman filter, a particle filter, MD simulations, a least-squares solution (e.g., an iterative snapshot least-squares method), and/or using any algorithm.
  • In a specific example, the weighted least-squares method can be defined as:

  • {circumflex over (x)}=(G T W (0) G)−1 G T W (0) y
  • Where G is a geometry matrix (e.g., a matrix with dimension [nsat×3], calculated from the actual satellite geometry), W is a weight matrix (e.g., a square matrix with each element corresponding to the reciprocal of the square of a given satellite observations variance, a scaled weight such as based on the probability of a fault in the associated satellite(s), etc.), {circumflex over (x)} is the estimated receiver position (e.g., absolute receiver position, relative receiver position such as relative to a previous receiver position, differenced receiver position, etc.), and y is the set of satellite observations (e.g., processed satellite observations, unprocessed satellite observations, differenced satellite observations, etc.). In this specific example, the variance of the receiver position can be S(0)=(GTW(0)G)−1GTW(0).
  • Determining the all-in-view receiver position can optionally include storing one or more pieces of intermediate data (e.g., W, G, W−1, G−1, Ã(0)=GTW(0)G,
    Figure US20230018631A1-20230119-P00001
    (0))−1, etc.).
  • Determining the fault-tolerant receiver position S560 functions to determine (e.g., estimate, calculate) the receiver position using the sets of satellite observations associated with one or more fault modes. The fault tolerant receiver position can be determined in series and/or in parallel (e.g., for each fault mode, for a subset of fault modes, etc.). The fault-tolerant solutions are preferably determined for each fault mode. However, any subset of fault modes can be used. In a specific example, when the likelihood of a fault having occurred (e.g., the fault parameter) exceeds a threshold, no further fault-tolerant solutions need to be generated. The fault-tolerant receiver positions are preferably determined in the same manner as (e.g., using different satellite observations) the all-in-view receiver position, but can be performed in any manner. In a specific example, the weight matrix used to determine the fault-tolerant receiver position can be
  • W i , i = { 0 , if satellite i is in fault mode k W i , i ( 0 ) , otherwise .
  • In a second specific example such as when the satellite observations are correlated, the weight matrix for the fault tolerant solution can be generated by inverting the weight matrix of the all-in-view solution to obtain the satellite observation covariance matrix, removing the rows and columns corresponding to fault mode k, inverting the resulting matrix to obtain a weight matrix, resizing the transformed weight matrix to the original size (e.g., by adding zeros corresponding to the faulting observations), and proceeding with the fault tolerant position calculation. However, any weight matrix can be used.
  • Determining the fault-tolerant receiver position preferably includes determining a variance of the difference between each fault-tolerant receiver position and the all-in-view receiver position. In a specific example, the variance of the fault tolerant receiver position can be determined according to S(k)=(GTW(k)G)−1GTW(k). In a related specific example, the variance of the difference can be determined according to Σss (k)=(S(k)−S(0))Cacc(S(k)−S(0)) where Σss (k) is the difference of the variance between fault-tolerant receiver position k and the all-in-view receiver position and Cacc is a modified observation covariance matrix.
  • In some variants, determining the fault-tolerant receiver position can use a rank one update (e.g., the Sherman-Morrison formula) to modify stored intermediate data (e.g., stored during determining the all-in-view receiver position), which can increase the speed of the computations. In a specific example, Ã(k) can be determined according to Ã(k)(0)−Wi,i (0)gigi T where gi is the ith column and/or row of the geometry matrix. In this specific example,
  • ( k ) ) - 1 = ( A ~ ( 0 ) ) - 1 - ( A ~ ( 0 ) ) - 1 g i g i T ( A ~ ( 0 ) ) - 1 1 + g i T ( A ~ ( 0 ) ) - 1 g i .
  • Determining whether each fault tolerant receiver position is within a predetermined threshold of the all-in-view receiver position S590 (and/or determining whether the fault parameter exceeds a threshold) functions to detect whether a fault (e.g., a satellite failure) is likely to have occurred and/or has occurred within the set of satellite observations. The probability of fault occurrence can be determined based on: probability that the fault-tolerant solution exceeds the protection level is greater than 10−2, 10−3, 10−4, 10−5, 10−6, 10−7, 10−8, 10−9 10-10, 10−2-10−10%, etc.; probability of a fault being present is greater than 10−2, 10−3, 10−4, 10−5, 10−6, 10−7, 1%, 5%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90%, 95%, 99%, etc.; probability of a fault exceeds a total integrity risk; probability of a fault exceeds an allocated integrity risk for a given fault; and/or otherwise determined. Determining whether each fault tolerant receiver position is within a predetermined threshold of the all-in-view receiver position is preferably performed by a computing system (e.g., a fault detection module of a computing system), but can be performed by any component. Determining whether each fault tolerant receiver position is within a predetermined threshold of the all-in-view receiver position preferably includes performing a solution separation test, but can additionally or alternatively include performing a p-test, a ratio test, a chi-squared test, and/or any suitable tests.
  • The solution separation test preferably corresponds to a statistical assessment of each fault-tolerant receiver position compared to the all-in-view receiver position, but can be otherwise defined. The solution separation test is preferably based on a solution separation threshold, but can be based on an absolute value and/or be otherwise defined. The solution separation threshold can be determined according to an equation, using machine learning, heuristically, empirically, based on an application (e.g., a target protection level, an environment that the external system is operating in such as an urban environment vs an open sky environment, etc.), predetermined, and/or otherwise determined. The solution separation threshold can be determined based on the variance of the all-in-view receiver position, the covariance of the all-in-view receiver position, a variance and/or covariance of one or more fault-tolerant receiver positions, a prior solution separation threshold (e.g., associated with a previous epoch), an integrity risk, a total integrity risk, a target integrity, and/or otherwise be determined. The solution separation threshold can be a manifold (e.g., a surface, a volume bounded by a surface, a volume excluded from a surface, etc.), a coordinate frame, a vector space, and/or have any suitable form. For example, the solution separation threshold can define a prismatoid (e.g., rectangular prism), an ellipsoid (e.g., a sphere, a spheroid, a tri-axial ellipsoid, etc.), a homoeoid, a cylinder, a capsule (e.g., sphereocylinder), ovoid, and/or define any suitable volume or have any suitable shape. Generally, when a solution (e.g., an all-in-view receiver position, a fault-tolerant position, etc.) is within the solution separation threshold (e.g., within the surface or volume defined by the solution separation threshold), the solution is considered not likely to be faulty and when the solution is outside of the solution separation threshold, the solution is considered likely to be faulty (e.g., the probability of the solution and/or associated satellites or satellite observations being faulty exceeds a threshold). However, solutions can otherwise be considered faulty or not faulty with respect to the When the difference between each fault-tolerant receiver position and the all-in-view receiver position is less than the solution separation threshold, the fault mode can be accounted for (e.g., in the governing equation), the fault-tolerant receiver position can be not likely faulty (e.g., less than a threshold probability of a fault associated with a satellite or satellite observation), no fault can be detected, and/or the fault mode(s) can otherwise be treated. When the difference between a fault-tolerant receiver position and the all-in-view receiver position is greater than or equal to the solution separation threshold, a fault mode can be detected (and subsequently mitigated and/or identified), the fault mode or associated data can be likely to include a fault, and/or the fault mode can otherwise be treated. However, the solution separation threshold can be otherwise used.
  • In an illustrative example, the solution separation threshold, Tq (k), can be determined according to Tq (k)=KFA,qσss,q (k) where
  • K FA , q = Q - 1 ( P FA , q 2 N fault _ modes )
  • and can be used as a scaling factor for scaling the variance (and/or covariance) of the receiver position. In a related example, the solution separation test can correspond to
  • "\[LeftBracketingBar]" x ˆ q ( k ) - x ˆ q ( 0 ) "\[RightBracketingBar]" T q ( k ) 1.
  • In some embodiments, determining whether each fault tolerant receiver position is within a predetermined threshold of the all-in-view receiver position can include correcting for the correlated satellite observations, which can function to determine more accurate protection levels. Correcting for the correlated observations can include accounting for the receiver position covariances (e.g., in addition to the receiver position variance) in the solution separation test (e.g., via the solution separation threshold). As shown for example in FIG. 7 , when covariances are excluded, the solution separation or tolerance threshold can define a rectangular space bounded by the threshold in each geometric direction. When covariances are included, the threshold region (e.g., manifold) can become an ellipsoidal region (e.g., asymmetrical ellipsoid, tilted ellipsoid, etc.). As shown for example in FIG. 7 , solutions (e.g., fault-tolerant solutions) that can be indicated as acceptable (e.g., identified as not faulty or not likely to be faulty) within a rectangular manifold defining the solution separation threshold (e.g., derived by using all-in-view receiver position variances) can be found to have (or be likely to have) a fault when an ellipsoidal manifold (e.g., derived by using all-in-view receiver position variances and covariances) is used to define the solution separation threshold. Therefore, accounting for solution covariances can be beneficial for representing or producing a more conservative integrity (e.g., compared to using solution variances). In an illustrative example of these embodiments, the solution separation threshold can be Tq (k)=KFA,q√{square root over (Σss,q (k))}. In related examples, such as where Tq (k) can additionally or alternatively be used as an upper bound for the receiver position error, Tq (k) can be a maximum value of the ellipsoid (e.g., along each axis or coordinate q, the maximum value of the ellipsoid, etc.), determined using principal component analysis, determined using an iterative approach through the ellipsoidal volume, determined using eigenvalue decomposition, determined using single value decomposition, and/or otherwise be determined.
  • In some variants, determining whether each fault tolerant receiver position is within a predetermined threshold of the all-in-view receiver position can include performing a chi-squared test. The chi-squared test can be performed in addition to and/or instead the solution separation test. In these variants, the chi-squared test is preferably an upper bound for all of the solution separation tests. When the chi-square test fails, the resultant receiver position and associated protection levels can be considered invalid (e.g., even when each solution separation test passes), one or more mitigation steps can be performed, a new set of satellite observations can be received (e.g., the method can be restarted), and/or any suitable response can occur.
  • Mitigating the effect of faults S600 functions to decrease the effect of fault modes and/or satellite observations associated with satellites and/or satellite constellations that are likely to have (e.g., based on the fault parameter) and/or have faulted on the position solution and the associated protection level when faults are likely and/or detected.
  • S600 is preferably performed when a fault parameter associated with particular fault mode(s) exceeds a threshold (e.g., a threshold probability). However, Shoo can be performed independent of the fault parameters, when a predetermined number or type of fault modes are detected, and/or otherwise be performed responsive to or based on the fault parameters. The threshold can be a predetermined threshold (e.g., 1, 0.1, 10−2, 10−3, 10−4, 10−5, 10−6, 10−7, 10−8, 10−9, 10−10, 10−2-10−10%, etc.), be determined based on the application (e.g., be a smaller threshold for applications that require higher accuracy), be determined based on the probability of a particular fault mechanism, be determined empirically, be determined heuristically, be determined according to an equation, and/or be otherwise determined. When the fault parameter associated with a particular fault mode is less than or equal to a threshold, the method can accommodate any error introduced by the fault mode (e.g., the receiver position determined including the satellite observations within the fault mode will not exceed the protection level). However, any suitable action can occur based on the value of the fault parameter relative to the threshold.
  • When S600 is performed, the resultant fault-mitigated receiver position can subsequently be used in lieu of the fault-unmitigated receiver position (e.g., in S700), or otherwise used.
  • Mitigating the effect of faults is preferably performed by a computing system (e.g., a fault mitigation module of the computing system), but can be performed by any component. In variants, mitigating the effect of faults can include: removing one or more satellite observations from the set of satellite observations, applying a weight factor to one or more satellite observations (e.g., apply a smaller weight factor to satellite observations associated with a fault mode, apply a larger weight factor to satellite observations not associated with a faulting satellite, etc.), acquiring additional satellite observations, choosing a new reference satellite and transforming the satellite observations according to the new reference satellite, and/or any suitable mitigation steps. Mitigating the effect of faults is preferably followed by determining a fault parameter for the set of satellite observations where the faults have been mitigated and/or determining fault modes for the set of satellite observations where the faults have been mitigated. However, mitigating the effect of faults can be followed by determining the GNSS receiver position and associated protection level, processing the satellite observations, and/or by any suitable step.
  • In an illustrative example of S600, a fault mode (and/or associated set of satellite observations) that indicates at least a threshold probability of a satellite fault (e.g., a fault parameter that is at least a threshold value) has occurred can be defined as (e.g., used as) a second all-in-view set of satellite observations (e.g., which can be used to repeat step S400 and S500 with the second all-in-view set of satellite observations).
  • Determining the GNSS receiver position and associated protection level functions S700 to estimate (e.g., calculate) a receiver position, a residual of the receiver position, and/or a protection level of the receiver position. The receiver position is preferably determined by a computing system (e.g., a positioning module of a computing system, of an external system, of a GNSS receiver, of a cloud computing system, etc.), but can be determined by any component.
  • The receiver position (and residual) can be the position solution determined by the all-in-view receiver position, the position solution determined by a fault-tolerant solution, determined using ambiguity-resolved carrier phase measurements, calculated relative to a baseline between the receiver and a reference station, and/or otherwise be determined.
  • The protection level is preferably determined (e.g., calculated, estimated) using a governing equation (e.g., a nonlinear governing equation), but can be determined using machine learning (e.g., a neural network, decision trees, regression analysis, Bayesian networks, etc.), and/or in any manner. The protection level is preferably a conservative protection level (e.g., overestimate of the actual protection level and/or receiver position, to better ensure that the external system can be operated according to target operation parameters, etc.), but can produce an exact and/or aggressive (e.g., underestimate of the actual protection level). The governing equation can be solved using an iterative approach (e.g., an iterative half-step approach), a binary search (e.g., a naive binary search approach), using an equation (e.g., a closed-form approximation to the governing solution such as an upper or lower bound to the solution), graphically, using machine learning, and/or in any manner.
  • In a specific example, the governing equation can be given by:
  • 2 Q ( L q - b q ( 0 ) σ q ( 0 ) ) + k = 1 N fault _ modes P f a u l t ( k ) Q ( L q - T q ( k ) - b q ( k ) σ q ( k ) ) = I q ( 1 - P unmonitored I t o t )
  • Where Lq is the protection level associated with axis q (e.g., horizontal axis, vertical axis), _(k) represent quantities associated with fault mode k where k=o refers to the all-in-view receiver position, Q is a tail probability distribution (e.g., of a zero-mean unit Normal distribution), σq is a standard deviation of the position solution along axis q, Pfault is the probability of a given fault (e.g., determined from a third-party message such as an Integrity Support Message, determined heuristically, determined based on previous measurements, etc.), Tq is the solution separation threshold on axis or coordinate q, bq is the nominal bias contribution (e.g., a worst case nominal bias contribution) to the position solution on axis or coordinate q (e.g., approximately o, bq (k)i=1 N sat |Sq,i (k)|bnom,i where Sq,i (k) is the fit matrix and bnom is a vector of per-observation biases, etc.), Itot is the total integrity budget (e.g., total integrity budget for each axis or coordinate q, total integrity risk for satellite failures, etc.), and Punmonitored is the probability of unmonitored fault modes.
  • Q ( L q - T q ( k ) - b q ( k ) σ q ( k ) )
  • can, for instance, be the integrity risk (e.g., estimated integrity risk) for a given fault mode k (and can be independently or within during the protection level and/or positioning calculation be determined). However, any governing equation can be used.
  • In a second specific example, which can be particularly but not exclusively beneficial when position covariances are accounted for (e.g., in S500), the governing equation can be given by:
  • 2 Q ( L q - b q ( 0 ) σ q ( 0 ) ) + k = 1 N fault _ modes P f a u l t ( k ) Q ( L q - T q ( k ) - b q ( k ) ss , q ( k ) ) = I q ( 1 - P unmonitored I t o t )
  • Where
  • Q ( L q - T q ( k ) - b q ( k ) s s , q ( k ) )
  • can be the integrity risk for fault mode k.
  • In some variations of these specific examples, Tq can be replaced with a maximum value of the threshold's bound along an axis or coordinate (e.g., a maximum value of the manifold's bound in each direction), a value of the threshold in one axis or coordinate when the other axes coordinates are o (e.g., the threshold's value along an axis or coordinate), a value of a bounding box that encloses the threshold, and/or any suitable value can be used.
  • However, any governing equation can be used.
  • In some embodiments (e.g., as shown for example in FIGS. 8A and 8B), more than one receiver position can be determined. For instance, a receiver position can be determined according to an ARAIM algorithm and a second receiver position can be determined from a baseline vector determined based on the integer ambiguity. When more than one receiver position is determined, the receiver positions can be used to validated and/or verify the results (e.g., compared to one another), a preferred value can be used (e.g., a receiver position associated with a preferred determination method can be used), a receiver position with an associated integrity can be used, an average (or other combination of) the receiver positions can be used, a receiver position can be selected (e.g., by voting), and/or any suitable receiver position can be used.
  • In variants, the receiver position and/or protection level can be transmitted to an external system, stored (e.g., cached), used to operate and/or control an external system, used to generate external system operation instructions (e.g., turn, accelerate, decelerate, acquire data, etc.), and/or used in any manner.
  • In a specific example as shown in FIG. 6 , the method can include: at a GNSS receiver, receiving a set of satellite observations; at a reference station, receiving a set of satellite observations; transforming the satellite observations to a set of double differenced satellite observations; determining integer carrier phase ambiguities; removing the integer carrier phase ambiguities from the double differenced satellite observations; determining a set of fault modes; calculating an all-in-view receiver position; calculating a fault tolerant solution for each fault mode; when the fault tolerant receiver position(s) pass a solution separation test, estimating the receiver position and protection levels; when a fault tolerant solution does not pass the solution separation test, removing the corresponding fault mode from the double differenced satellite observations and repeating the calculation of the all-in-view receiver position with the updated double differenced satellite observations. In variations of this specific example, when the reference satellite that was used to calculate the differenced satellite observations for a particular fault mode is itself assumed to fault, a new set of double-differenced satellite observations can be determined without the reference satellite and/or with a different satellite as the reference satellite, and the method repeated using the new set of double-differenced satellite observations. However, the method can be otherwise performed.
  • Embodiments of the system and/or method can include every combination and permutation of the various system components and the various method processes, wherein one or more instances of the method and/or processes described herein can be performed asynchronously (e.g., sequentially), concurrently (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.
  • As a person skilled in the art will recognize from the previous detailed description and from the figures and claims, modifications and changes can be made to the preferred embodiments of the invention without departing from the scope of this invention defined in the following claims.

Claims (20)

We claim:
1. A method for determining a receiver position comprising:
receiving a set of satellite carrier phase observations from a set of satellites;
receiving a set of reference observations from a set of reference stations;
determining double-differenced observations based on the set of satellite carrier phase observations and the set of reference observations;
determining an all-in-view position of the receiver based on the double-differenced observations;
determining a fault-tolerant position of the receiver by processing a subset of the double-differenced observations, wherein the subset of the double-differenced excludes at least one double-differenced observation from the double-differenced observations; and
comparing the all-in-view position and the fault-tolerant position of the receiver;
when the all-in-position and the fault tolerant position of the receiver for each fault mode are within a solution separation threshold, determining a protection level associated with the all-in-view position of the receiver.
2. The method of claim 1, wherein the set of satellites comprises at least one satellite associated with a first satellite constellation and at least one satellite associated with a second satellite constellation.
3. The method of claim 1, wherein each fault mode of the set of fault modes is associated with at least one potentially faulty satellite from the set of satellites, wherein each fault mode is associated with a subset of the differenced observations with the potentially faulty satellites excluded.
4. The method of claim 1, wherein the solution separation threshold depends on a covariance of the all-in-view receiver position.
5. The method of claim 4, further comprising, for each fault mode, determining an integrity risk based on the covariance.
6. The method of claim 1, wherein when the all-in-view position and the fault tolerant position of the receiver for a fault mode of the set of fault modes differ by more than the solution separation threshold, determining a second set of differenced satellite observations that excludes observations associated with the fault mode.
7. The method of claim 6, further comprising: when the potentially faulty satellites associated with the fault comprises a reference satellite, determining the second set of differenced observations using a second reference satellite.
8. A method comprising:
at a GNSS receiver, receiving satellite observations from a set of satellites;
determining differenced observations based on the satellite observations;
determining an all-in-view position of the receiver based on the differenced observations;
for each fault mode of a set of fault modes, determining a fault-tolerant position of the receiver using a subset of differenced observations associated with the respective fault mode; and
when the all-in-view position and a fault tolerant position of the receiver for a fault mode of the set of fault modes differ by more than a solution separation threshold, detecting that a fault has occurred with a probability greater than a threshold probability.
9. The method of claim 8, wherein each fault mode is associated with a distinct subset of the differenced observations.
10. The method of claim 9, wherein each fault mode is associated with one or more test satellites, wherein the distinct subset of the differenced observations associated with a respective fault mode excludes differenced observations associated with the one or more test satellites.
11. method of claim 8, further comprising when the all-in-view position and the fault tolerant positions of the receiver for each fault mode differ by at most the solution separation threshold, calculating a protection level associated with the all-in-view position of the receiver.
12. The method of claim 11, wherein the protection level is determined based on off-diagonal covariance terms of the all-in-view position.
13. The method of Claim 11, further comprising performing a chi-squared test on the all-in-view position and the fault tolerant positions, wherein when the chi-squared test fails, the protection level is invalid.
14. The method of claim 8, further comprising receiving a set of reference station observations, wherein the differenced observations comprise double-differenced observations.
15. The method of claim 8, further comprising:
determining a second set of differenced satellite observations that excludes observations associated with the potentially faulty satellites associated with the fault mode,
determining a second all-in-view receiver position using the second set of differenced satellite observations;
for each fault mode of a second set of fault modes, determining a second fault-tolerant position of the receiver using a subset of the second set of differenced observations associated with the respective fault mode; and
determining whether a fault is probable within the second set of differenced satellite observations.
16. The method of claim 15, wherein the second set of fault modes is independent of the set of fault modes.
17. The method of claim 8, wherein each fault mode is associated with at most a maximum number of potentially faulty satellites based on a probability that the maximum number of potentially faulty satellites have contemporaneous faults.
18. The method of claim 8, wherein determining the all-in-view receiver position comprises resolving carrier phase ambiguities of the satellite observations.
19. The method of claim 18, wherein resolving carrier phase ambiguities comprises:
determining a set of float phase ambiguities associated with the differenced observations;
determining a set of integer phase ambiguity hypotheses using an integer search algorithm; and
selecting an integer phase ambiguity of the set of integer phase ambiguity hypotheses based on results of a hypothesis test comparing integer phase ambiguities of the set of integer phase ambiguity hypotheses.
20. The method of claim 8, wherein the all-in-view receiver position is determined using a snapshot least-squares calculation.
US17/940,728 2020-06-09 2022-09-08 System and method for satellite positioning Pending US20230018631A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/940,728 US20230018631A1 (en) 2020-06-09 2022-09-08 System and method for satellite positioning

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063036748P 2020-06-09 2020-06-09
US17/343,327 US11480690B2 (en) 2020-06-09 2021-06-09 System and method for satellite positioning
US17/940,728 US20230018631A1 (en) 2020-06-09 2022-09-08 System and method for satellite positioning

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US17/343,327 Continuation US11480690B2 (en) 2020-06-09 2021-06-09 System and method for satellite positioning

Publications (1)

Publication Number Publication Date
US20230018631A1 true US20230018631A1 (en) 2023-01-19

Family

ID=78817310

Family Applications (2)

Application Number Title Priority Date Filing Date
US17/343,327 Active US11480690B2 (en) 2020-06-09 2021-06-09 System and method for satellite positioning
US17/940,728 Pending US20230018631A1 (en) 2020-06-09 2022-09-08 System and method for satellite positioning

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US17/343,327 Active US11480690B2 (en) 2020-06-09 2021-06-09 System and method for satellite positioning

Country Status (4)

Country Link
US (2) US11480690B2 (en)
EP (1) EP4162300A1 (en)
CN (1) CN116075747A (en)
WO (1) WO2021252638A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020213320A1 (en) * 2020-10-22 2022-04-28 Robert Bosch Gesellschaft mit beschränkter Haftung Method for determining at least one item of integrity information for a localization result of a GNSS-based localization device of a vehicle in the case of an abruptly and significantly changing GNSS reception situation
US11802971B2 (en) * 2021-03-02 2023-10-31 Qualcomm Incorporated Real-time kinematic (RTK) and differential global navigation satellite system (DGNSS) corrections using multiple reference stations
WO2023167899A1 (en) 2022-03-01 2023-09-07 Swift Navigation, Inc. System and method for fusing sensor and satellite measurements for positioning determination
CN116106952B (en) * 2023-02-24 2023-06-09 广州导远电子科技有限公司 Ambiguity fixing detection method, terminal equipment and storage medium
CN117111101B (en) * 2023-06-26 2024-03-22 北京航空航天大学 Fault detection method for eliminating lever effect of double-layer space-based navigation enhanced ad hoc network

Family Cites Families (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4806940A (en) 1986-04-30 1989-02-21 Honeywell Inc. Navigation mode selection apparatus
US5610614A (en) 1995-09-13 1997-03-11 Trimble Navigation Limited Real-time kinematic initialization test system
US6453237B1 (en) 1999-04-23 2002-09-17 Global Locate, Inc. Method and apparatus for locating and providing services to mobile devices
US6691066B1 (en) 2000-08-28 2004-02-10 Sirf Technology, Inc. Measurement fault detection
US6427122B1 (en) 2000-12-23 2002-07-30 American Gnc Corporation Positioning and data integrating method and system thereof
JP4116792B2 (en) 2001-12-19 2008-07-09 古野電気株式会社 Carrier phase relative positioning device
US6856905B2 (en) 2003-04-29 2005-02-15 Garmin At, Inc. Systems and methods for fault detection and exclusion in navigational systems
US7148843B2 (en) 2003-07-02 2006-12-12 Thales North America, Inc. Enhanced real time kinematics determination method and apparatus
US7117417B2 (en) 2003-07-30 2006-10-03 Navcom Technology, Inc. Method for generating clock corrections for a wide-area or global differential GPS system
US7219013B1 (en) 2003-07-31 2007-05-15 Rockwell Collins, Inc. Method and system for fault detection and exclusion for multi-sensor navigation systems
US6864836B1 (en) 2003-09-05 2005-03-08 Navcom Technology, Inc. Method for receiver autonomous integrity monitoring and fault detection and elimination
US20050114023A1 (en) 2003-11-26 2005-05-26 Williamson Walton R. Fault-tolerant system, apparatus and method
US8131463B2 (en) 2003-12-02 2012-03-06 Gmv Aerospace And Defence, S.A. GNSS navigation solution integrity in non-controlled environments
US7289061B2 (en) 2004-07-23 2007-10-30 California Institute Of Technology Generating high precision ionospheric ground-truth measurements
FR2881008B1 (en) 2005-01-20 2007-04-20 Thales Sa SATELLITE POSITIONING RECEIVER WITH IMPROVED INTEGRITY AND CONTINUITY
EP1729145B1 (en) 2005-06-02 2013-08-07 GMV Aerospace and Defence S.A. Method and system for providing GNSS navigation position solution with guaranteed integrity in non-controlled environments
US7292183B2 (en) 2005-06-08 2007-11-06 Trimble Navigation Limited GPS reference system providing synthetic reference phases for controlling accuracy of high integrity positions
CN102353936B (en) 2005-10-03 2016-08-24 天宝导航有限公司 Many GNSS signal with clock difference modeling process
CN103713301A (en) 2006-01-10 2014-04-09 高通股份有限公司 Global navigation satellite system
US7436355B2 (en) 2006-04-18 2008-10-14 Andrew Corporation Method and apparatus for geolocation determination
ES2394943T3 (en) 2007-03-22 2013-02-06 DLR Deutsches Zentrum für Luft- und Raumfahrt e.V. Procedure to process a set of signals from a global navigation satellite system with at least three carriers
JP5069492B2 (en) 2007-04-13 2012-11-07 株式会社エヌ・ティ・ティ・ドコモ Positioning system, IC chip for positioning, positioning method and positioning program
JP4964047B2 (en) 2007-07-12 2012-06-27 アルパイン株式会社 Position detection apparatus and position detection method
WO2009058213A2 (en) 2007-10-30 2009-05-07 Trimble Navigation Limited Generalized partial fixing
CL2009000010A1 (en) 2008-01-08 2010-05-07 Ezymine Pty Ltd Method to determine the overall position of an electric mining shovel.
US8694250B2 (en) 2008-01-09 2014-04-08 Trimble Navigation Limited Processing multi-GNSS data from mixed-type receivers
ES2348109T3 (en) 2008-04-21 2010-11-30 Deutsches Zentrum Fur Luft- Und Raumfahrt E.V. OPERATING PROCEDURE OF A SATELLITE NAVIGATION RECEIVER.
DE112009002026B4 (en) 2008-08-19 2022-07-28 Trimble Navigation Limited Methods and apparatus for processing GNSS signals with selection of candidate sets
CN102171583B (en) 2008-10-06 2015-02-18 天宝导航有限公司 Position estimation method and apparatus
US20100164789A1 (en) 2008-12-30 2010-07-01 Gm Global Technology Operations, Inc. Measurement Level Integration of GPS and Other Range and Bearing Measurement-Capable Sensors for Ubiquitous Positioning Capability
US8825456B2 (en) 2009-09-15 2014-09-02 The University Of Sydney Method and system for multiple dataset gaussian process modeling
CN102498415B (en) 2009-09-19 2014-04-16 天宝导航有限公司 Gnss signal processing with rover ambiguity fixing
JP5760001B2 (en) 2009-11-17 2015-08-05 トプコン ポジショニング システムズ, インク. Detection and correction of anomalous measurements and determination of ambiguity in a global navigation satellite system receiver.
US8441398B2 (en) 2010-02-03 2013-05-14 Texas Instruments Incorporated Receivers, circuits, and methods to improve GNSS time-to-fix and other performances
US20110238308A1 (en) 2010-03-26 2011-09-29 Isaac Thomas Miller Pedal navigation using leo signals and body-mounted sensors
US8659474B2 (en) 2011-01-12 2014-02-25 Navcom Technology, Inc. Navigation system and method for resolving integer ambiguities using double difference ambiguity constraints
EP2689266B1 (en) 2011-03-22 2019-05-08 Trimble Inc. Gnss signal processing with ionospheric bridging for reconvergence
US8610624B2 (en) 2011-07-06 2013-12-17 Honeywell International Inc. Satellite navigation system fault detection based on biased measurements
US20130050020A1 (en) 2011-08-23 2013-02-28 Raytheon Company Method to handle single failure gps faults in high integrity relative positioning systems
US9069073B2 (en) 2011-12-19 2015-06-30 Texas Instruments Incorporated Removing and de-weighting outlier measurements from satellite and previous information
US9405012B2 (en) 2012-04-12 2016-08-02 Trimble Navigation Limited Advanced global navigation satellite systems (GNSS) positioning using precise satellite information
US8976064B2 (en) * 2012-09-06 2015-03-10 Honeywell International Inc. Systems and methods for solution separation for ground-augmented multi-constellation terminal area navigation and precision approach guidance
NL2009695C2 (en) 2012-10-25 2014-05-06 Fugro N V Ppp-rtk method and system for gnss signal based position determination.
US9557422B1 (en) 2012-12-11 2017-01-31 Apple Inc. Systems, methods, devices and subassemblies for creating and delivering a GNSS augmentation service
US9743373B2 (en) 2012-12-28 2017-08-22 Trimble Inc. Concurrent dual processing of pseudoranges with corrections
US9612341B2 (en) 2012-12-28 2017-04-04 Trimble Inc. GNSS receiver positioning system
DE102013213397A1 (en) 2013-07-09 2015-01-15 Robert Bosch Gmbh Method and apparatus for providing support point data for a data-based function model
US9784844B2 (en) 2013-11-27 2017-10-10 Honeywell International Inc. Architectures for high integrity multi-constellation solution separation
US8996311B1 (en) 2013-12-06 2015-03-31 Novatel Inc. Navigation system with rapid GNSS and inertial initialization
US10261191B2 (en) 2014-03-11 2019-04-16 Raven Industries, Inc. High reliability GNSS correction
US9599716B2 (en) 2014-04-15 2017-03-21 Honeywell International Inc. Ground-based system and method to extend the detection of excessive delay gradients using dual processing
EP2966477B1 (en) 2014-07-09 2021-08-11 ANavS GmbH Method for determining the position and attitude of a moving object using low-cost receivers
US9817129B2 (en) 2014-10-06 2017-11-14 Sierra Nevada Corporation Monitor based ambiguity verification for enhanced guidance quality
FR3030057B1 (en) 2014-12-12 2017-01-27 Thales Sa METHOD AND SYSTEM FOR VALIDATION OF SATELLITE GEOLOCATION
US10684375B2 (en) 2015-01-05 2020-06-16 Samsung Electronics Co., Ltd Method of multiple satellite measurement failure detection and isolation for GNSS
WO2016147569A1 (en) 2015-03-13 2016-09-22 パナソニックIpマネジメント株式会社 Satellite positioning system, electronic instrument, and positioning method
US10809391B2 (en) 2015-06-29 2020-10-20 Deere & Company Satellite navigation receiver and method for switching between real-time kinematic mode and precise positioning mode
WO2017070732A1 (en) 2015-10-27 2017-05-04 Spatial Information Systems Research Ltd A method of analysing a signal transmitted between a global satellite navigation satellite system and a receiver
CN105629263B (en) 2015-12-21 2019-04-02 广州中海达卫星导航技术股份有限公司 A kind of troposphere atmosphere delay estimation error correcting method and correction system
US10274606B1 (en) 2016-03-09 2019-04-30 Rockwell Collins, Inc. High integrity partial almost fix solution
US10191157B2 (en) 2016-03-18 2019-01-29 Deere & Company Precise low-latency GNSS satellite clock estimation
DE102016120235A1 (en) 2016-10-24 2018-04-26 Geo++ GmbH Method and system for determining a position of a mobile device
US11112507B2 (en) 2016-10-27 2021-09-07 United States Of America As Represented By The Administrator Of Nasa Location correction through differential networks system
EP3336584B1 (en) 2016-12-19 2020-11-04 Trimble Inc. Outlier-tolerant navigation satellite system positioning method and system
EP3839568A1 (en) 2016-12-30 2021-06-23 u-blox AG Gnss receiver protection levels
US10371530B2 (en) 2017-01-04 2019-08-06 Qualcomm Incorporated Systems and methods for using a global positioning system velocity in visual-inertial odometry
US10690775B2 (en) 2017-06-29 2020-06-23 Novatel Inc. Crowdsourcing atmospheric correction data
DE102017212603A1 (en) 2017-07-21 2019-01-24 Robert Bosch Gmbh A method of providing and improving a positional probability distribution for GNSS receive data
US10677933B1 (en) 2017-08-09 2020-06-09 Rockwell Collins, Inc. Heading or pitch determination systems and methods with high confidence error bounds
CN107422354B (en) 2017-09-25 2019-06-25 武汉大学 A kind of PPP/SINS tight integration positioning and orientation method that fuzziness is fixed
EP3462213A1 (en) 2017-09-28 2019-04-03 Technische Universität München Method for precise point positioning in a satellite navigation system
US10473790B2 (en) 2017-11-17 2019-11-12 Swift Navigation, Inc. Systems and methods for distributed dense network processing of satellite positioning data
US10578747B2 (en) 2017-12-14 2020-03-03 Swift Navigation, Inc. Systems and methods for reduced-outlier satellite positioning
US11119222B2 (en) 2017-12-18 2021-09-14 Korea Advanced Institute Of Science And Technology (Kaist) Method and system for local-area differential GNSS for UAV navigation, and for generating optimal protection level and geometry screening therefor
FR3076354B1 (en) 2017-12-28 2019-11-22 Thales METHOD FOR VERIFYING THE ENTIRE POSITION ESTIMATION OF A MOBILE CARRIER IN A SATELLITE POSITIONING MEASUREMENT SYSTEM
EP3627188A1 (en) 2018-09-21 2020-03-25 Trimble Inc. Correction information integrity monitoring in navigation satellite system positioning methods, systems, and devices
US20200209406A1 (en) 2018-12-28 2020-07-02 Alibaba Group Holding Limited Error Correction in GPS Signal
JP7267460B2 (en) 2019-05-01 2023-05-01 スウィフト ナヴィゲーション,インコーポレイテッド System and method for high integrity satellite positioning
EP3792665A1 (en) 2019-09-10 2021-03-17 Trimble Inc. Protection level generation methods and systems for applications using navigation satellite system (nss) observations

Also Published As

Publication number Publication date
US11480690B2 (en) 2022-10-25
US20210382181A1 (en) 2021-12-09
EP4162300A1 (en) 2023-04-12
WO2021252638A1 (en) 2021-12-16
CN116075747A (en) 2023-05-05

Similar Documents

Publication Publication Date Title
US11543541B2 (en) Systems and methods for high-integrity satellite positioning
US11480690B2 (en) System and method for satellite positioning
US11237276B2 (en) System and method for gaussian process enhanced GNSS corrections generation
CN108508461B (en) GNSS carrier phase based high-precision positioning integrity monitoring method
US8610624B2 (en) Satellite navigation system fault detection based on biased measurements
US20240142637A1 (en) System and method for gaussian process enhanced gnss corrections generation
US20220187475A1 (en) System and method for reconverging gnss position estimates
EP2037291A1 (en) Integrity monitoring method for GNSS navigation based on historical information
US20230296786A1 (en) System and method for validating gnss ambiguities
US11906640B2 (en) System and method for fusing sensor and satellite measurements for positioning determination
US20230341563A1 (en) System and method for computing positioning protection levels
CN114355410B (en) Satellite navigation real-time precise single-point positioning system and method based on parallel computing
US11860287B2 (en) System and method for detecting outliers in GNSS observations
Koshaev Redundancy and lack of information in specific problems of GNSS measurement processing
Zemskov et al. Yet Another FDE for Multiple Outliers

Legal Events

Date Code Title Description
AS Assignment

Owner name: SWIFT NAVIGATION, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GRGICH, PAUL;MAZA, LLOYD;BROCARD, PHILIPPE;SIGNING DATES FROM 20210617 TO 20210618;REEL/FRAME:061029/0842

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION