IP Library Granted Patent US 12710553
Granted Patent B2
US 12710553 · App. 18/415,513 · Granted Aug 18, 2026

System and method for fusing sensor and satellite measurements for positioning determination

Inventors: Christian Reimer (San Francisco, CA); Ivan Smolyakov (San Francisco, CA); Joseph Angelo (San Francisco, CA); Sebastien Carcanague (San Francisco, CA)
Assignee: Swift Navigation, Inc.
G01S19/47G01S19/28G01S19/33G01S19/396G01S19/41G01S19/43
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12710553
App. No.
18/415,513
Granted
Aug 18, 2026
Kind
B2
Abstract

A method can include receiving a set of satellite signals, refining the set of satellite signals to generate a refined set of satellite signals, determining a satellite solution for each satellite associated with a satellite signal in the refined set of satellite signals, applying an a-priori correction to the satellite signals, determining a set of time differenced satellite signals between the satellite signals from a current epoch and a previous epoch; and determining the positioning solution of the rover using a fusion engine that processes the differenced satellite signals and inertial measurement unit (IMU) data.

Claims (57)

1 . A system for determining a positioning solution of a body comprising:

an inertial measurement magnetometer unit (IMMU) comprising at least one of an accelerometer, a gyroscope, or a magnetometer;

an antenna configured to receive satellite signals corresponding to one or more satellite frequencies associated with one or more satellite constellations; and

a processor comprising a fusion engine configured to determine whether to operate in a time difference of carrier phase (TDCP) mode or a measured doppler mode, wherein in the TDCP mode, the processor is configured to:

select a subset of the satellite signals to generate a TDCP subset of the satellite signals based on a quality of satellites associated with the satellite signals;

select a reference satellite from satellites associated with the TDCP subset of satellite signals;

apply an a-priori correction to the satellites signals associated with the TDCP subset of satellite signals to generate corrected satellite signals;

determine single differenced carrier phase information from the corrected satellite signals by differencing the corrected satellite signal associated with the reference satellite and each of the corrected satellite signals associated with the remaining satellites associated with the subset of satellite signals; and

determine a set of time differenced satellite signals between the differenced satellite signals from a current epoch and a previous epoch; and

determine the positioning solution of the body based on IMMU data measured by the IMMU and the set of time differenced satellite signals;

wherein in the measured doppler mode, the processor is configured to:

select a second subset of the satellite signals based on a quality associated with the satellite signals;

select a second reference satellite from satellites associated with the second subset of satellite signals;

apply an a-priori correction to each satellite signal associated with the second subset of satellite signals to generate corrected satellite signals;

determine differenced satellite signals by computing a difference between each corrected satellite signal and the corrected satellite signal associated with the second reference satellite;

determine a set of doppler shifts from the differenced satellite signals for a current epoch; and

determine the positioning solution of the body based on the IMMU data and the set of doppler shifts;

wherein the fusion engine operates in the measured doppler mode when integer ambiguities are not available for the satellite signals of the subset of satellite signals.

2 . The system of claim 1 , wherein the fusion engine is configured to determine whether to operate in the TDCP mode or the measured doppler mode based on at least one of determining whether a number of unique satellites in a set of unique satellites in-view is greater than a threshold, or determining whether a measured doppler filter update has been performed within a threshold time.

3 . The system of claim 2 , wherein the fusion engine is configured to operate in the measured doppler mode when the number of unique satellites is at most the threshold and the TDCP mode when the number of unique satellites is greater than the threshold.

4 . The system of claim 1 , wherein in the measured doppler mode, the processor is configured to determine satellite signals for which no valid TDCP was formed, wherein the second subset of satellite signals comprises the satellite signals for which no valid TDCP was formed.

5 . The system of claim 4 , wherein determining satellite observations for which no valid TDCP was formed comprises:

identifying satellite observations for which a TDCP-based innovation or a normalized innovation exceeds a threshold; and

classifying the satellite observations as outliers.

6 . The system of claim 5 , wherein classifying the satellite observations as outliers further comprises:

classifying an outlier as a cycle slip when the innovation is within a threshold of an integer multiple of a carrier wavelength; and

classifying an outlier as a half-cycle error when the innovation is within a threshold of a half-integer multiple of the carrier wavelength.

7 . The system of claim 1 , wherein the quality associated with the satellite signals comprises at least one of carrier-to-noise-density ratio, elevation angle, lock time, signal frequency, constellation identifier, or integrity information associated with the satellite signals.

8 . The system of claim 1 , wherein selecting the reference satellite comprises selecting a satellite having a highest quality according to a reference-selection criterion comprising at least one of: highest carrier-to-noise-density ratio, highest elevation angle, longest lock time, or best integrity information.

9 . The system of claim 1 , wherein the processor is further configured to generate integrity information based on at least one of TDCP measurements or measured doppler measurements, and wherein the integrity information comprises at least one of: a protection-level value associated with the positioning solution or an alert signal indicating that the positioning solution does not satisfy an integrity requirement.

10 . The system of claim 1 , wherein the processor is further configured to detect that the reference satellite is an outlier, and responsive to detecting that the reference satellite is an outlier, replace the reference satellite with a different satellite and recompute at least one of the differenced satellite signals or the time-differenced satellite signals.

11 . The system of claim 1 , wherein the fusion engine comprises a Kalman filter for processing the IMMU data and at least one of the set of time differenced satellite signals or the set of doppler shifts, and wherein the fusion engine is configured to accommodate double-differenced carrier-phase information using the Kalman filter by performing at least one of: (i) augmenting a state vector of the Kalman filter using stochastic cloning at a reference epoch, or (ii) modifying a measurement sensitivity matrix by multiplying with a time interval since a reference epoch and projecting onto a line-of-sight vector of a satellite.

12 . A method for determining a positioning solution of a body, comprising:

receiving satellite signals corresponding to one or more satellite frequencies associated with one or more satellite constellations;

measuring sensor data using at least one of an accelerometer, a gyroscope, or a magnetometer;

determining whether to operate in a time difference of carrier phase (TDCP) mode or a measured doppler mode;

wherein, in the TDCP mode, the method further comprises:

selecting a subset of the satellite signals to generate a TDCP subset of the satellite signals based on a quality associated with satellites corresponding to the satellite signals;

selecting a TDCP reference satellite from satellites corresponding to the TDCP subset of the satellite signals;

applying an a-priori correction to satellite signals associated with the TDCP subset of the satellite signals to generate corrected satellite signals;

determining single differenced carrier-phase information from the corrected satellite signals by differencing the corrected satellite signals associated with the TDCP reference satellite and each of the corrected satellite signals associated with remaining satellites associated with the subset of the satellite signals;

determining a set of time-differenced satellite signals between the differenced satellite signals from a current epoch and a previous epoch; and

determining the positioning solution of the body based on sensor data measured by the sensor and the set of time differenced satellite signals;

wherein the method operates in the measured doppler mode when integer ambiguities are not available for carrier-phase information associated with the satellite signals, operating in the measured doppler mode comprising:

selecting a second subset of the satellite signals based on a quality associated with the satellite signals;

selecting a second reference satellite from satellites associated with the second subset of the satellite signals;

applying an a-priori correction to each satellite signal associated with the second subset of the satellite signals to generate corrected measured satellite signals;

determining differenced satellite signals by computing a difference between each corrected satellite signal and the corrected satellite signal associated with the second reference satellite;

determining a set of doppler shifts from the corrected measured doppler signals for a current epoch; and

determining the positioning solution of the body based on the sensor data and the set of doppler shifts.

13 . The method of claim 12 , wherein determining whether to operate in the TDCP mode or the measured doppler mode comprises at least one of:

determining whether a set of unique satellites in-view is greater than a threshold; or

determining whether a measured doppler filter update has been performed within a threshold time.

14 . The method of claim 13 , wherein the method operates in the measured doppler mode when the number of unique satellites is at most the threshold and the TDCP mode when the number of unique satellites is greater than the threshold.

15 . The method of claim 12 , further comprising, in the measured doppler mode, determining satellite observations for which no valid TDCP was formed.

16 . The method of claim 15 , wherein determining satellite observations for which no valid TDCP was formed comprises identifying satellite observations for which a TDCP-based innovation or a normalized innovation exceeds a threshold and classifying the satellite observations as outliers.

17 . The method of claim 16 , wherein classifying the satellite observations as outliers further comprises classifying an outlier as a cycle slip when the innovation is within a threshold of an integer multiple of a carrier wavelength and classifying an outlier as a half-cycle error when the innovation is within a threshold of a half-integer multiple of the carrier wavelength.