Optimization-based GNSS positioning using integrated cycle slip detection
An adaptive stochastic estimator with FGO framework addresses cycle slips and multipath effects in GNSS systems by maintaining data continuity and improving accuracy through iterative state prediction and optimized measurement processing, enhancing real-time tracking reliability.
Patent Information
- Application Number
- JP2025182431
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2025-02-14
- Filing Date
- 2025-10-29
- Publication Date
- 2026-08-26
AI Technical Summary
Existing GNSS positioning systems face challenges in maintaining accurate and reliable tracking of satellite receivers due to irregularities such as cycle slips and multipath effects, which are not effectively addressed by current methods, leading to inconsistent state estimation and increased computational complexity.
An adaptive stochastic estimator is employed to iteratively predict and update the receiver state using a receiver state estimation model affected by process noise, adapting to irregularities in GNSS measurement data without discarding them, and utilizing a factor graph optimization (FGO) framework to process batches of data for improved accuracy and computational efficiency.
The method maintains data continuity and accuracy by adaptively handling irregularities, providing more reliable and efficient GNSS state estimation, even in real-time scenarios, by dynamically adjusting noise parameters and optimizing measurement selection.
Smart Images

Figure 2026137038000001_ABST
Abstract
Description
[Technical Field]
[0001] This disclosure generally relates to positioning systems such as the Global Positioning System (GPS) or the Quasi-Zenith Satellite System (QZSS), and more specifically to the problem of estimating the state of satellite receivers in real time using batches of data information that arrive sequentially over time. [Background technology]
[0002] A Global Navigation Satellite System (GNSS) is a satellite system that can be used to determine the geographical position of a geostationary or mobile receiver relative to the Earth. Examples of GNSS include GPS, Galileo, GLONASS, QZSS, and Beidou. Various global navigation satellite (GNS) correction systems are known to receive GNSS signal data from GNSS satellites, process this GNSS data, calculate GNSS correction values from the GNSS data, and provide these correction values to the receiver, with the aim of achieving faster and more accurate calculation of the geographical position of a mobile receiver.
[0003] Various position estimation methods are known that perform position calculations based on repeated measurements of so-called pseudo-distance and carrier phase observables using ground-based GNSS receivers. The "pseudo-distance" or "code" observable represents the difference between the transmission time of a GNSS satellite signal and the local reception time of that satellite signal, and includes the geometric distance covered by the satellite's radio signal. Another source of information for determining the apparent distance between the satellite and the receiver is provided by measuring the phase matching between the carrier of the received GNSS satellite signal and a copy of this signal generated inside the receiver. The corresponding observable is known as the "carrier phase" and represents the integral of the Doppler frequency due to the relative motion of the transmitting satellite and the receiver.
[0004] All pseudodistance measurements include unavoidable error factors such as receiver and transmitter clock errors, additional delays due to the non-zero refractive index of the atmosphere, instrument delays, multipath effects, and detector noise. All carrier phase measurements further include an unknown integer signal period, i.e., an integer wavelength, the elapsed time of which these signal periods lock into this signal alignment. Typically, observable quantities are measured (i.e., sampled) by the receiver at discrete, continuous time intervals. The time index at which the observable quantity is measured is called an "epoch." Known positioning methods generally involve dynamic numerical estimation and correction schemes for distance and error components based on measurements of the observable quantity sampled over consecutive epochs.
[0005] If the GNSS signal is continuously tracked and no lock loss occurs, the integer ambiguity resolved at the start of the tracking phase can be maintained throughout the entire GNSS positioning period. However, in some cases, the GNSS satellite signal may be attenuated occasionally (e.g., due to buildings in an "urban canyon" environment) or momentarily interrupted (e.g., when the receiver passes under a bridge or through a tunnel). In such cases, the integer ambiguity value obtained from signal processing in the delay-locked loop (DLL) is lost and needs to be recalculated. This process can take several seconds to several minutes. In fact, if one or more measurements of either pseudodistance or carrier phase have significant multipath errors or unmodeled systematic biases, current commercial positioning systems may struggle to resolve ambiguity. As the receiver separation distance (i.e., the distance between the reference receiver and the mobile receiver being positioned) increases, distance-dependent biases (such as orbital errors and ionospheric and tropospheric influences) become larger, making reliable ambiguity resolution (or reinitialization) an even more challenging task. Furthermore, lock loss may occur in the DLL due to discontinuities in the continuous phase lock to the receiver signal (known as cycle slip). For example, cycle slip can be caused by power loss, receiver software failure, or satellite oscillator malfunction. In addition, cycle slip can be caused by changes in ionospheric conditions.
[0006] GNSS extension generally refers to techniques used to improve the accuracy of positional information provided by Global Navigation Satellite Systems (GNSS), which are networks of satellites used for positioning. For example, some methods use measurement difference techniques based on differences in signals from various satellites, differences between receivers, differences between epochs, and combinations thereof. Single and double differences between satellites and between receivers reduce error sources, but they do not completely eliminate these errors.
[0007] Depending on the application, multiple frequency bands may be used. GPS constellations include carrier frequencies of 1575.42 MHz (L1 band), 1227.6 MHz (L2 band), and 1176 MHz (L5 band). Similar to differential calculations, the influence of ionospheric modeling errors on position estimation can be further reduced by combining observations from multiple frequency bands using underlying radio physics to form ionospheric-free combinations.
[0008] Despite these modeling approaches, there is a need to improve the accuracy of GNSS positioning beyond what is achievable with conventional methods. To address this positioning problem, some approaches cast the positioning problem to a batch setting. In this setting, data is received sequentially or in batches, and estimates for any given time can be calculated not only from current measurements but also from past measurements within the stored batch of data. This differs from filtering approaches such as Kalman filters, where the current estimate is based on past and current data and is calculated in real time per epoch by incorporating the latest measurements. The advantage of batch solutions is that they improve performance at a higher computational cost compared to filtering solutions. Such batch solutions are often handled in factor-graph optimization (FGO) frameworks, but smoothing solutions such as the Fraser-Potter (FP) framework or the Rauch-Tung-Striebel (RTS) framework also exist in Kalman smoothing settings.
[0009] Batch processing is the problem of estimating an unknown state trajectory, considered over multiple time steps, using past, present, and potentially future measurements. This is possible in post-processing scenarios, where batches of measurements are taken and used as input to an algorithm. A smoother is an algorithm that implements a solution to this problem, typically based on Bayesian methods. For example, many types of Kalman smoothers use estimation models that include an estimation model affected by process noise and a measurement model affected by measurement noise.
[0010] In real-time settings, batch processing considers past and current measurements to obtain an estimate of the state at the current time. However, these algorithms rely on a clearly defined estimation model, and errors in the estimation model or its parameters lead to performance degradation. Smoothers assume that at least a subset of the estimation model parameters are known beforehand, but this is not always the case. Therefore, a method is needed to safely adapt the estimation model while simultaneously estimating the receiver state (bias, position, velocity, etc.).
[0011] Another problem with batch processing is computational. In fact, as batches of data accumulate and the number of measurements increases, scaling the estimation problem becomes enormous, and batches of data must be limited to a maximum length depending on the available computational resources.
[0012] Therefore, GNSS batch processing is necessary to adapt model parameters while reducing the computational load of real-time GNSS estimation. [Overview of the project]
[0013] Tracking the state of a GNSS receiver often relies on real-time processing of individual measurements, with each new signal being used to update the receiver's position or orbit. While this approach can be effective, real-world signals can be affected by interference such as cycle slip or multipath effects, often introducing irregularities into the data provided to the receiver and reducing estimation accuracy. These irregularities can cause unexpected abrupt changes in the data, making smooth predictions of the receiver's state difficult. In such cases, the estimator struggles to adjust to the changing data quality, potentially leading to inconsistencies in the receiver's state over time.
[0014] To improve the reliability of state estimation, a batch-based approach processes a set of measurements collected over a time sequence. By handling measurements in groups rather than one at a time, the system can more accurately detect patterns in the data and identify irregularities. For example, unexpected discrepancies due to cycle slips or reflections (so-called multipath) can be recognized and handled more effectively. This method allows for dynamic adjustment of process noise parameters, enabling the system to respond to these irregularities without completely ignoring the affected data. As a result, the receiver state can be tracked in a smoother and more adaptable manner.
[0015] The advantage of batch tracking is that it helps maintain data continuity. This continuity is crucial for estimating a smooth receiver trajectory over time. Removing irregular data points (i.e., "cleaning up") before processing can unintentionally disrupt this flow. Gaps or missing information can break the trajectory, making it difficult to consistently track the receiver's movement. While removing problematic data may seem like a solution, it can result in the loss of valuable context that helps the system understand changes in the receiver's state.
[0016] By retaining all measurements within a batch, the system can adaptively account for irregularities while maintaining the natural flow of data. Instead of discarding affected signals, the system mitigates their impact by adjusting noise parameters. This approach allows the estimator to utilize all available information while ensuring that the receiver's trajectory remains smooth and reliable. In this way, the system balances addressing measurement challenges with maintaining data continuity, resulting in more accurate and reliable tracking results.
[0017] To this end, in some embodiments, we disclose an adaptive stochastic estimator configured to iteratively predict the state of a GNSS receiver using a receiver state estimation model affected by process noise, and to update the receiver state using a measurement model that processes GNSS measurement data affected by measurement noise. In addition to, or as an alternative to, data cleaning, the adaptive stochastic estimator is configured to change the process noise in response to the detection of irregularities in the GNSS measurement data. Such an adaptive stochastic estimator is advantageous not only for real-time GNSS state estimation but also for batch processing of GNSS measurement data.
[0018] For example, factor graph optimization (FGO) is a method that can be usefully applied to positioning using GNSS measurement data. FGO is a factor graph-based optimization framework that efficiently solves large-scale estimation problems by modeling the relationships between variables through "factors". However, to obtain accurate results, the FGO method must rely on high-quality measurements and data. Problems such as cycle slip or multipath errors can degrade data quality and impair the accuracy of optimization. The objective of some embodiments is to mitigate these drawbacks while maintaining the advantages of the FGO method.
[0019] Some embodiments are based on the recognition that batch estimators such as FGO can generate more accurate predictions of state variables than filters because FGO can include past and present measurements simultaneously and more accurately describe the spatial distribution of the variable in question. For this purpose, the objective of some embodiments is to track the state of a GNSS receiver using techniques implemented with FGO.
[0020] Some embodiments are based on the recognition that FGO methods typically require batches of data without cycle slips or multipaths. However, such datasets often require costly and heuristic preprocessing steps to determine whether the measurements at a given timestamp are clean. As a result, in some embodiments, an adaptive prior distribution of integer ambiguities is incorporated so that FGO can adaptively determine the importance of each measurement in the optimization.
[0021] In some embodiments, it is recognized that jointly determining the state of the receiver with integer ambiguities in FGO is a highly complex mixed-integer optimization problem that is difficult (or impossible) to solve in real time. However, by decomposing the problem, it becomes computationally tractable. Therefore, in some embodiments, the mixed-integer optimization problem is solved with a two-stage optimization procedure.
[0022] Other embodiments are based on the understanding that even with a two-stage optimization procedure, the batch length must be limited due to the computational load. Therefore, the aim of some embodiments is to disclose a method for reducing the complexity of the estimation procedure used for ambiguity resolution.
[0023] Measurements of different satellite combinations can be represented as a measurement matrix. Each element of the matrix is a single-difference or double-difference measurement of at least one unique satellite and / or receiver pair. By grouping different satellites and / or receivers into different pairs, the dimensionality of the measurement matrix can be increased. Each measurement retains information that can be used for position estimation. For this purpose, the entire measurement matrix can be used for position estimation. However, there are situations where the computational complexity of the position estimation filter significantly increases due to the dimensionality of the measurement matrix caused by the availability of line-of-sight (LOS) satellites for the GNSS receiver being tracked.
[0024] Some embodiments are based on the recognition that only a portion of all available measurements from a measurement matrix can be used in a state estimator. Typically, at least four LOS satellite measurements are required for accurate position estimation. Since the measurement matrix includes measurements representing satellite pairs, at least two elements of the measurement matrix are required for position estimation. For this purpose, any two elements of the matrix can be selected. Such a selection may be random or according to some selection principle. An example of such a principle is to randomly select a single satellite and collect a predetermined number of difference measurements between the selected satellite and other LOS satellites. However, such an approach may not be optimal from the perspective of information quality.
[0025] Some embodiments are based on the recognition that different elements of the measurement matrix may have different information values for a position estimation filter. As an illustrative example, a pair of satellite positions on the same LOS for a GNSS receiver has lower information value than a pair of satellites located on different LOSs. This is because they provide the same geometric information of the receiver.
[0026] Therefore, different measurements within the measurement matrix hold different amounts of information regarding the position of the GNSS receiver. Some embodiments are based on the recognition that a predetermined number of measurements having the maximum total information regarding the position can be selected. The number of measurements to be selected is predetermined from a computational perspective, but since the measurements are selected from the available measurements based on the information value perspective, the selected combination improves the accuracy of position estimation without sacrificing performance.
[0027] For example, in some embodiments, the Fisher information matrix is utilized to construct an optimization program that projects the acquired measurements into a low-dimensional subspace to find projected measurements that minimize the degradation of filter performance with respect to the mean squared error (MSE) of the estimated value. By using the projected measurements, the computational speed is significantly improved while maintaining the performance of the original filter.
[0028] Another embodiment is based on the understanding, from an algorithmic standpoint, that a combination of satellites does not necessarily have to include a complete satellite. For example, consider the case of having four satellites. In this case, it may be better to use one-quarter of the measurements from the first satellite and three-quarters of the measurements from the fourth satellite rather than combining the measurements from a complete satellite. In other words, the combination of satellite measurements that make up the measurement is a non-integer combination of satellites. Intuitively, this is because Fisher information captures the uncertainty of the system, and although the probability of a complete satellite combination is highest, there is uncertainty in the accuracy of such a combination, so from an MSE perspective, it is safer to choose a non-integer combination. [Brief explanation of the drawing]
[0029] [Figure 1A] This figure shows the geometries of Global Satellite Navigation Systems (GNSS) according to several embodiments. [Figure 1B] This figure illustrates a scenario involving an intersection, where a base station is included in GNSS positioning to accurately reconstruct the trajectory of a vehicle within the intersection. [Figure 1C] This figure shows scenarios related to environmental monitoring. [Figure 1D] This is a schematic diagram showing the Kalman filter (KF) used in GNSS estimation methods. [Figure 1E] This is a schematic diagram illustrating the flow of information in FGO. [Figure 1F] This diagram illustrates a scenario in which multipath occurs in GNSS measurements due to reflections within a building. [Figure 1G] This is a block diagram showing a method for probabilistically tracking the state of a Global Navigation Satellite System (GNSS) receiver employing the principle of the embodiment. [Figure 2A] This is a block diagram showing a system for tracking the status of a GNSS receiver. [Figure 2B]A block diagram of a receiver used in several embodiments. [Figure 3A] This diagram shows how the most advanced version of FGO for GNSS will be implemented. [Figure 3B] This figure shows FGO as used in several embodiments. [Figure 3C] This figure shows a method for synthesizing a measurement model in one embodiment of the present disclosure. [Figure 3D] This figure shows a variable-base mixed integer estimation model. [Figure 3E] This figure shows in detail one embodiment of cycle slip detection. [Figure 3F] This figure shows the probability density function of integer jump noise. [Figure 4A] This figure shows that measurements from different satellite combinations can be represented as a matrix. [Figure 4B] This schematic diagram illustrates the recognition of different embodiments in which different measurements constituting the measurement matrix may hold different amounts of information. [Figure 4C] This figure shows the measurement matrix used for estimation. [Figure 4D] This figure shows the results of an optimization procedure that minimizes the loss of information from a subset of measurement values to a set of measurement values, according to one embodiment. [Figure 5A] This flowchart shows a method for selecting a subset of measurement values according to one embodiment. [Figure 5B] This figure shows an example of a method for determining a reduced FIM according to one embodiment. [Figure 5C] This flowchart shows a method for finding a projection operator that generates a subset of measurements, according to several embodiments. [Figure 5D] This flowchart shows a method for optimizing the CRB to find the optimal projection operator. [Figure 5E] This is a schematic diagram showing fractional measurement representations according to several embodiments. [Figure 6A]This flowchart shows one iteration of an FGO-based positioning method using measurement reduction. [Figure 6B] This flowchart shows one iteration of the FGO-based positioning method using measurement reduction. [Figure 7A] This block diagram shows a system for the joint tracking and / or control of receivers. [Figure 8A] This is a schematic diagram showing a vehicle that is directly or indirectly controlled according to several embodiments. [Figure 8B] This is a schematic diagram illustrating the interaction between a controller that receives control commands from a system and a vehicle controller, according to several embodiments. [Modes for carrying out the invention]
[0030] Figure 1A shows the geometry of a Global Navigation Satellite System (GNSS) according to several embodiments. Receivers 130a and 131a receive radio signals, along with other signals indicating the quality of radio communication, to be processed within the GNSS receiver to generate pseudodistance, carrier phase, and Doppler measurements. These measurements relate to the geometric distance at 140a and its time derivative with respect to a set of biases. In some embodiments, the measurements obtained by receivers 130a and 131a are combined with measurements obtained at a known base station 120a to attenuate error sources. Such a set of pseudodistance, carrier phase, and Doppler measurements is received for each satellite seen by the receiver in each epoch and processed locally within the receiver. In Figure 1A, the set of visible satellites is shown as 110a–114a, but in some embodiments, a larger number of satellites are utilized from many different constellations, including but not limited to GPS, Galileo, GLONASS, QZSS, and the Beidou constellation. In some embodiments, one or more carrier frequency bands are used per satellite.
[0031] In various embodiments, the GNSS receivers 120a, 130a, and 131a may differ. For example, in the embodiment shown in Figure 1A, receiver 120a is a base station receiver whose location is known and which can be installed on the ground. In contrast, receivers 130a and 131a may be either mobile receivers assumed to be in motion, or stationary receivers, in either case their location is unknown. For example, receivers 130a and 131a may be mounted on a mobile phone, automobile, or tablet. In all embodiments described, there are multiple GNSS receivers receiving code signals and carrier phase signals, and the number of receivers is large. In some embodiments, the base station 120a is in motion, and in other embodiments, the location of the base station is unknown.
[0032] Figure 1B illustrates a scenario involving an intersection, in which base station 120b is integrated into GNSS positioning to accurately reconstruct the trajectory of a vehicle within the intersection. In some embodiments, the base station is part of a roadside unit (RSU) that can be optionally used for intersection control. In this example, multiple GNSS receivers are mounted on a vehicle 110b in a four-way intersection, base station 120b is located nearby, and the vehicle's position is estimated in the area near intersection 140b. The proximity of the receivers and the use of the same base station 120b and the same satellite set 150b result in correlations between the measurements, leading to correlation state estimates and interference. Therefore, if a multipath is detected in one satellite signal from vehicle 111b, and then soon after is approximately the same position as 111b, it may increase the likelihood of a similar interference occurring in vehicle 112b. This is because multipaths are partly geometric phenomena and depend on the relative positions of the receivers and satellites, and on any obstructing buildings or trees that appear between the receivers and satellites.
[0033] Figure 1C shows a scenario related to environmental monitoring in which the location of a collection of surface buoys 110c, 111c, and 112c is estimated. The buoys are equipped with antennas 141c above the water level 142c, and in some embodiments, the buoys are attached to the seabed 144c using mooring chains 143c. In this example, there is a base station 120c that communicates with a satellite 150c using radio communication 130c.
[0034] In some embodiments, these buoys 110c, 111c, and 112c are installed in reservoirs and lakes, while in other embodiments, these buoys 110c, 111c, and 112c are installed in the ocean. In the former case, the buoys monitor water level changes over long periods, and rapid changes due to rain or irrigation mean that the dynamic characteristics of the buoys may differ over time. In the case of monitoring onshore reservoirs, reflections from trees and water can cause multipath interference over long periods. In the case of ocean monitoring, unpredictable reflections from waves can cause multipath effects even when there is a clear line of sight between the antenna and the satellite.
[0035]
number
[0036]
number
[0037] In contrast to Kalman filters, batch estimators such as Factor Graph Optimization (FGO) use batches of data and sets of factors in their optimization framework. Batch estimators like FGO use a factor graph representation to optimize all available measurements at once to estimate the most likely values for variables in a system.
[0038] For example, FGO uses a bipartite factor graph. This graph contains two types of nodes: variable nodes (representing unknown quantities to be estimated, such as position) and factor nodes (representing constraints or measurements associated with these variables). In a batch setting, FGO collects all data points or measurements and then solves for the variables that minimize the overall error in the graph. This can be done using nonlinear optimization techniques such as the Gauss-Newton method or the Levenberg-Marquardt method, and is computationally intensive but highly accurate because it utilizes all information at once. Thus, unlike online (incremental) estimators that simply process data sequentially, FGO aims to find a globally consistent solution by handling all measurements together. This results in higher accuracy because it considers all available constraints, and enables more robust handling of complex loop-closure problems.
[0039]
number
[0040]
number
[0041] This is a weighted combination of a pseudo-distance factor, a carrier phase factor, a motion model factor, and an ambiguity factor, the details of which are described in other embodiments of this disclosure.
[0042] Some relationships in estimation models, such as geometric distances, are recognized as nonlinear functions of the receiver's state (position, velocity, bias). In this case, the measurement model is nonlinear. In some embodiments, the gradient of the nonlinearity is used to find the optimal solution.
[0043] In some embodiments, the state estimator uses single difference (SD) and / or double difference (DD) of the carrier phase to estimate the state of the receiver (including the receiver's position). When a carrier signal transmitted from a satellite is received by two receivers, the difference between the first carrier phase and the second carrier phase is called the single difference (SD) of the carrier phase. Alternatively, the SD is defined as the difference between the signals from two satellites reaching the receiver, in which case the first satellite is called the reference satellite. For example, the difference between the signal from satellite 110a and the signal from satellite 111a is one SD signal, with satellite 110a being the reference satellite. Using the pair of receivers 120a and 130a shown in Figure 1A, the difference between the SDs of the carrier phases obtained from radio signals from two satellites is called the double difference (DD) of the carrier phase. When this carrier phase difference is converted to wavelength, for example, in the case of an L1 GPS (and / or GNSS) signal, λ1 is approximately 0.1905 m, and it is separated into a fractional part and an integer part. The fractional part can be measured by the positioning device, but the positioning device cannot directly measure the integer part. Therefore, the integer part is called integer bias or integer ambiguity.
[0044] In other embodiments, it is recognized that measurements from different frequency bands can be combined to remove specific biases from the estimation problem. One example is an ionosphere-free (IF) multi-band (MB) combination, where non-differential, single-differential, or double-differential measurements are taken as a linear combination across at least two different frequency bands, each using a fractional part proportional to the ratio of the squares of the carrier frequencies. When done appropriately, it is recognized that ionospheric delay is removed from the estimation problem.
[0045] Generally, GNSS can use multiple constellations simultaneously to determine the state of a receiver. For example, GPS, Galileo, GLONASS, and QZSS can be used at the same time. Satellite systems typically transmit information in up to three different frequency bands, with each satellite transmitting code measurements and carrier phase measurements for each frequency band. These measurements can be combined as either single-difference or double-difference. Single-difference takes the difference between a reference satellite and other satellites, while double-difference also includes the difference between the target receiver and a reference receiver whose static position is known.
[0046] Figure 1F illustrates a scenario in which reflections within a building cause multipath interference in GNSS measurements, leading to modeling errors that degrade the receiver's position estimation. In this example, receiver 103f is communicating with two satellites 101f and 102f, recording measurements of pseudo-distance 111f and carrier phase 112f. The measurement probabilities for these signals 111f and 112f are shown, with the pseudo-distance measurement probability associated with the greater variance of signal 111f, while the carrier phase measurement probability is understood to have multiple modes separated by multiple carrier wavelengths associated with GNSS communication. For example, in a GPS constellation, the carrier wavelength in the L1 band is approximately 19.05 cm. This example includes three buildings 104f, 105f, and 106f, and the signal from satellite 102f is reflected by building 104f. Therefore, the receiver predicts that the measurements correspond to line-of-sight distances 107f and 108f, but due to reflections, the actual distance 109f from satellite 102f is much longer. This modeling error causes significant positioning errors when calculating location based on GNSS measurement information. The purpose of this disclosure is to detect when such modeling errors exist.
[0047] Figure 1G is a block diagram showing a method for probabilistically tracking the state of a Global Navigation Satellite System (GNSS) receiver employing the principle of the embodiment. This method can be performed by a tracking system operably connected to the GNSS receiver 105g. The tracking system comprises a processor and a memory containing instructions that, when executed by the processor, cause the system to perform the steps of the embodiment.
[0048] In this embodiment, GNSS positioning data 115g, including carrier phase and code signals, transmitted from multiple satellites is received (110g), and the GNSS positioning data processing 115g is performed (120g) to detect irregularities (125g).
[0049] In this embodiment, an adaptive stochastic estimator is used to track the state of the receiver (130g), and the tracked state of the receiver is output (140g). The adaptive stochastic estimator iteratively predicts the state of the receiver using a receiver state estimation model that is affected by process noise, and updates the state of the receiver using a measurement model that processes GNSS measurement data that is affected by measurement noise. The adaptive stochastic estimator is configured to change the process noise in response to the detection of irregularities in the GNSS measurement data (150g). In this way, the continuity of the measurement data is preserved, in contrast to the data cleaning approach described later.
[0050]
number
[0051] Figure 2A is a block diagram showing a system 200a for tracking the state of a GNSS receiver according to several embodiments. The estimation system 200a includes an input interface 210a that accepts motion data indicating changes in the state of the receiver and measured values of satellite signals (i.e., carrier signal, code signal, Doppler signal) calculated from radio transmissions from a set of GNSS satellites. Each carrier signal includes a carrier phase ambiguity as an unknown integer multiple of the propagation wavelength of the carrier signal traveling between the satellite and the receiver. Here, the measured value of each satellite signal includes a single difference between the satellite signal transmitted by one satellite and the signal of another satellite, and includes the relative position of the satellite signal to the satellite's position, which is affected by the integer multiple ambiguity of the satellite's carrier signal and noise, such that all possible measured values for each satellite signal constitute a set of measured values. System 200a can be implemented inside multiple devices such as mobile terminals, automobiles, aircraft, and trains, where the receiver 240a is located. Furthermore or alternatively, system 200a can be communicably connected to a device, i.e., the receiver 240a is not physically present inside the system.
[0052] The system further includes a memory 280a that stores a motion model 281a that correlates the receiver's past states with the receiver's current states estimated by a first and second estimator. This motion model is affected by process noise. The system further includes a measurement model 282a that correlates measurements of the carrier signal, code signal, and Doppler signal received by receiver 240a with the receiver's current state using the carrier phase ambiguity of the carrier signal. The measurement model correlates a subset of satellite signal measurements with the receiver's current state at different time steps. The maximum size of the subset of measurements is variable and depends on the number of visible satellites at a given time step and the selected slide window of the FGO. The measurement model is a probabilistic model affected by measurement noise. Due to the random noise and errors inherent in the satellite transmitter and receiver 240a, the motion model and measurement model are probabilistic, and multiple values of the carrier phase ambiguity at any given epoch may be consistent with these models, each having different probabilities. Memory 280a may also store a set of integer value combinations 284a, as described in other embodiments.
[0053] System 200a may include additional sensors 220a that can assist in supporting the positioning system. For example, sensors 220a may include an inertial measurement unit (IMU), a camera, a wheel encoder if mounted on a wheeled vehicle, one or more laser rangefinders, a radar sensor, and a barometer. For example, when connected to a car, the IMU and wheel encoder can be used in the vehicle's motion model to improve the accuracy of the positioning system to a level that would otherwise be unattainable.
[0054] System 200a includes a processor 230a for tracking the state of the receiver using a set of instructions stored in memory 285a that constitute the FGO. Furthermore, the processor 230a is configured to select a subset of measurements from a set of measurements (231a) using a measurement reduction method described in other embodiments of the present disclosure. The processor 230a is also configured to execute an FGO 232a that determines the state of the receiver 240a by jointly using the motion model 281a and the measurement model 282a. The FGO obtains a joint estimate of the state of the receiver 240a and the ambiguity for the motion model 281a and the measurement model 282a, which can be executed simultaneously and / or sequentially by the processor 230a.
[0055] The IMU may include a 3-axis accelerometer, a 3-axis gyroscope, and / or a magnetometer. The IMU can provide velocity, attitude, and / or other position-related information to the processor 230a. In some embodiments, the IMU can output measurement information in synchronization with the acquisition of each image frame from the camera. In some embodiments, the output of the IMU is partially used by the processor 230a to fuse sensor measurements and / or to further process the fused measurements.
[0056] System 200a may include a transmitter 260a capable of transmitting one or more signals. For example, transmitter 260a may transmit the state of receiver 240a to other estimation methods for use in fusion with other sensors to improve accuracy. Receiver 240a and transmitter 260a may receive and transmit over one or more types of wireless communication networks. Receiver 240a and transmitter 260a may enable communication with wireless networks based on various technologies, including, but not limited to, femtocells, Wi-Fi® networks or Wireless Local Area Networks (WLANs) which may be based on the IEEE 802.11 family of standards, Wireless Personal Area Networks (WPANs) such as Bluetooth®, Near Field Communication (NFC), networks based on the IEEE 802.15x family of standards, and / or Wireless Wide Area Networks (WWANs) such as LTE and WiMAX®. System 200a may further include one or more ports for communication over a wired network, such as a controller area network (CAN) bus.
[0057] Memory 280a can store data provided by sensor 220a, including carrier phase measurements, code measurements, Doppler measurements, SNR, CN, and other signals related to GNSS signal processing such as satellite altitude (286a). For example, in some implementations, memory 280a stores the geometry 284a of the physical structure to which the receiver is mounted, and the geometric relationship between the satellite and receiver 283a. In general, memory 280a can represent any data storage mechanism. Memory 280a may include, for example, primary memory and / or secondary memory. Primary memory may include, for example, random access memory and read-only memory. Although shown separately from processor 230a in Figure 2A, all or part of the primary memory may be located within processor 230a, in the same location as processor 230a, and / or coupled to processor 230a.
[0058] Different components within system 200a can be operably coupled to one another via connectors 250a. Connectors 250a may include buses, lines, fibers, links, or a combination thereof.
[0059] The processor 230a can be implemented using a combination of hardware, firmware, and software. The processor 230a may represent one or more circuits configurable to perform at least part of a computational procedure or process related to sensor fusion and / or a method for further processing fused measurements. The processor 230a retrieves instructions and / or data from memory 280a. The processor 230a can be implemented using one or more application-specific integrated circuits (ASICs), central processing units (CPUs) and / or graphics processing units (GPUs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), controllers, microcontrollers, microprocessors, embedded processor cores, electronic devices, other electronic units designed to perform the functions described herein, or a combination thereof.
[0060] Figure 2B is a block diagram of a receiver used in several embodiments. In these embodiments, measurements for detecting the presence of multipath 207b are computed natively within the receiver as part of the position estimation process. After antenna 201b and before acquisition 203b, the received signal consists of the sum of signals emitted by each satellite. Amplifier 202b is designed to enhance the signal for further processing. Acquisition 203b initiates the tracking process by providing estimates of the phase and frequency of each received satellite signal. The tracking unit is responsible for estimating and providing measured values of the phase and frequency of each satellite signal over time for carrier 206b and code tracking 204b. Code tracking 204b is used for data message determination and processing 205b. Carrier tracking 206b is used for multipath determination 207b.
[0061] Some GNSS receivers can have multiple antennas for a single receiver, and combinations of multiple antennas with the same number of receivers are also possible. In one embodiment, multiple antennas are used, with the same number of receivers as the number of antennas. Because the antennas are spatially separated, the receivers can detect differences between observed carrier frequencies on the same satellite signal.
[0062] Figure 3A illustrates how a state-of-the-art FGO for GNSS is implemented. A batch of measurement data 310a, consisting of individual measurement values 311a, is processed by a two-stage FGO 320a,321a using a fixed process noise model. Here, the first FGO 320a optimizes the real-valued receiver state and the real-valued ambiguity. Next, the ambiguity is fixed using integer least squares (ILS) 321a, for example, the well-known lambda method or a variant thereof. Finally, the second FGO 331a is executed based on the measurement model with the fixed ambiguity to generate an updated state trajectory 332a and output the most recently calculated solution (330a). However, measurement values deemed inappropriate before running the FGO are removed (301a).
[0063] One embodiment of the present disclosure, also shown in Figure 3A, is distinctly different from the conventional approach in which model parameters are selected and an optimal model is chosen. Here again, a batch 310a of measurement data consisting of individual measurements 311a is used, but without preprocessing. Instead, the measurements are reduced (362a) to generate a batch 363a of reduced-dimensional measurements. The measurements 363a are obtained by other embodiments of the present disclosure. Using the batch 363a of reduced measurements, one embodiment determines whether a cycle slip has occurred in the measurement data (340a). Based on the determined cycle slip 341a, the present disclosure applies process noise to the random walk of an integer ambiguity process (350a).
[0064] For example, some embodiments are based on the recognition that ambiguity has jumping behavior due to the presence of accidental cycle slips.
[0065] In one embodiment, using the adapted process noise 369a of ambiguity evolution, a first FGO 370a is performed to obtain the relaxed state and ambiguity trajectory 371a. Subsequently, the ambiguity 352a is fixed by ILS 351a, and a second FGO 382a solves the state trajectory 383a using the fixed ambiguity, outputting the most recently calculated solution (390a).
[0066] In some embodiments, various implementations of FGO are employed, formulating the maximum posterior probability estimation problem as a nonlinear graph optimization. Each node in the graph represents a system state, and the edges of the graph are called factors, encoding information about the system's measured values and constraints. By optimally solving the nonlinear optimization, it is possible to obtain a posterior estimate of the state trajectory that maximizes the posterior probability of the system state given a batch of measured values in the graph and the constraints. In various embodiments, an FGO is employed in a sliding window that moves over the time axis as new measured values are collected.
[0067] Figure 3B shows FGOs used in several embodiments. In some embodiments, in addition to carrier phase and pseudodistance factors 309b, 319b, 329b from multiple satellites, measurements from other sensors such as Doppler, accelerometer, gyroscope, and camera are taken as factors 311b, 321b, 331b. Sensor measurements are collected over a batch slide window of length T, and the receiver state and real-valued ambiguities 310b, 320b, 330b are determined using an optimization solver 315b (first FGO) to obtain the state trajectory and real-valued ambiguity 316b over the batch window. Next, in some embodiments, integer ambiguity is obtained using the float solution of the receiver state and ambiguity 316b (355b). Many different methods can be used for integer fixing, and essentially integer least squares solutions can be obtained using known tools such as the lambda method and M-lambda method. Next, a second FGO375b is performed using sensor measurements over a batch slide window of length T, with a fixed integer ambiguity and a float solution 326b of the receiver state. The receiver states 370b, 380b, and 390b are determined using an optimization solver given a fixed ambiguity from the float solution 326b of the receiver state, and the estimated state 396b is obtained.
[0068] Figure 3C shows a measurement model synthesis method in one embodiment of the present disclosure. Synthesis is initiated by acquiring batches of satellite measurements (310c) from one or more satellite receivers 311c. As described in relation to Figure 1A, these measurements may include signals indicating pseudodistance, carrier phase, and / or Doppler measurements from multiple GNSS constellations in multiple frequency bands. Also, as described in relation to Figure 2A, the measurements may include other sensor information.
[0069] Based on the measurement data, the satellite signal is flagged as healthy or unhealthy (320c) depending on factors such as carrier noise density ratio, elevation angle, open air geometry, or a more sophisticated estimation algorithm. Based on satellite availability, the state space and measurement space are defined. In some embodiments, the size of the state space and measurement space is determined according to a selected differential scheme using a set of healthy and visible satellites over the entire time step or epoch within a measurement batch. As shown in relation to Figure 1A, this measurement scheme may include combinations of undifferentiated, SD, DD, and ionospheric-free GNSS observables.
[0070] It is recognized that the choice of measurement scheme affects both the definition of the state space and the definition of the measurement space. Furthermore, it is recognized that the number of states in the estimation model may change over time when the satellite transitions from a healthy state to an unhealthy state, or vice versa. In such events, the estimation model may adapt process noise for unobservable states in the local information and adjust the measurement model accordingly. If the functional relationship of the estimation model is obtained in 340c, the model is parameterized based on the set of model parameters 351c (350c).
[0071] This estimation model may have fixed parameter dependencies, but it may also be defined in a variable-base form. For example, the variance of process noise associated with integer ambiguity bias may be unknown, but it may be known to take one of two values defined by the model parameters. The estimation model before cycle slip detection is called the variable-base model 352c. The goal of adaptive process noise determination is not only to find the optimal parameters, but also to fix the basis and parameter dependencies in the estimation model.
[0072]
number
[0073]
number
[0074] The final component drives an integer random walk. This stochastic process will be explained further in the section on cycle slip detection, which will be discussed later.
[0075] Map B associates process noise q with real-valued state 304d. R , and map B which associates integer jump noise s with integer state 305d Z This also contains many zero elements. In this example and many other examples such as those shown in Figures 1B and 1C, it is recognized that accurately determining the process noise covariance across the real states 306d, particularly the process noise associated with the motion model 311d, is important for estimation performance.
[0076] Figure 3E details one embodiment of the cycle slip detection algorithm 340a used to determine parameter dependencies in the estimation model. Similar to model synthesis, in one embodiment, measurements 310e are obtained from the satellite receiver 311e, which, in the spirit of Figure 2A, can provide additional sensory information than a simple GNSS signal. The measurement data 312e is then used in combination with estimates 322e, which are calculated in parallel with or before cycle slip detection, to determine whether there are significant measurement prediction errors that may be attributable to one or more of the ambiguity dimensions. For each time step in a batch, a set of such measurement errors 321e is calculated, and then a predefined threshold 330e is used to determine whether a cycle slip occurred from one time step to the next. If it does, the index variable 331e for a given ambiguity at a given time is set high.
[0077] In one embodiment, each ambiguity dimension has two different noise levels 340e, the exact magnitude of which is considered part of the variable model parameters in some embodiments of this disclosure. Thus, the index variable 331 is used to fix the basis of the process noise of the estimation model and to determine parameter dependencies without precisely determining what parameters describe the high and low noise levels. In other embodiments, the index variable may include binary or more states and describe the probability that a cycle slip occurred. Next, the index variable is described in relation to the time evolution of integer biases.
[0078] Figure 3F shows the probability density function of integer jump noise s used to model the time evolution of integer ambiguity in one embodiment of the present disclosure, and subsequently to drive an integer random walk used in the first FGO. This noise gives rise to a dynamic system 303f in which the integer bias sporadically jumps to different integers before remaining at a constant integer for a long time. In relation to such an integer random walk process, if the estimation model is relaxed to allow the integer ambiguity estimate to exist in real numbers, it is natural to approximate the discrete probability density function with two continuous Gaussian distributions 302f,303f. In one embodiment, if cycle slips are likely to occur, the relaxed estimate amplifies or reduces the process noise of a given ambiguity dimension using two different noise levels. Such high or low states are parameter dependent, fixed by the cycle slip algorithm.
[0079]
number
[0080]
number
[0081]
number
[0082] In some embodiments, cycle slip detection is performed based on an estimated value of the receiver state in the previous iteration, i.e., in the previous time step. Measurements of different combinations of satellites can be represented as a matrix shown in FIG. 4A (referred to herein as the measurement matrix). Each element of the measurement matrix is the SD measurement or DD measurement of at least one unique pair of satellites. Different satellites can be grouped in different pairs to increase the dimensionality of the measurement matrix. Each measurement y ij holds information available for position estimation. For this purpose, it becomes possible to use the entire measurement matrix for position estimation. For example, using satellite 101 as the reference receiver, the SD measurements y 12 , y 13 , y 14 and y 15 can be formed. Similarly, using satellite 102 as the reference satellite, the corresponding SDs are y 21 , y 23 , y 24 and y 25 . Generally, for M satellites and N frequencies, (M - 1)NM / 2 combinations are possible.
[0083] In some embodiments, it is recognized that using all the measurements of the measurement matrix can be computationally unrealistic for receivers with limited computational power. In other words, depending on the situation, due to the dimensionality of the measurement matrix resulting from the availability of LOS satellites for the GNSS receiver being tracked, the computational complexity of the position estimation filter increases unacceptably. For example, when there are multiple integer ambiguities that result in good state estimation, it may be advantageous to run multiple state estimators. As an illustration, assume that there are M = 10 unique pairs of code and carrier phase measurements with 5 possible ambiguities that result in good state estimation. This requires Ns = 5 M (approximately 10 7 ) state estimators to be run in parallel. Therefore, the computational load may be excessive for low-cost receivers.
[0084] Some embodiments are based on the recognition that different elements of the measurement matrix may have different informational value for the position estimation filter. For example, G NS For an S-receiver, a pair of satellite positions on the same Line of Sight (LOS) is less informative than a pair of satellites located on different LOSs. This is because they provide the same geometric information to the receiver.
[0085] Figure 4B is a schematic diagram illustrating the recognition that different measurements constituting the measurement matrix may hold different amounts of information. The figure shows receiver 410b and seven satellites 420b–490b. Assume that four satellites are used in the estimator. Satellites 420b, 430b, 440b, and 450b are collinear from receiver 410b. Although they provide different distance measurements, they are from the same elevation angle, meaning they are equally sensitive to measurement noise, i.e., noise in the receiver's position measurement. However, satellites 470b, 480b, and 490b have different elevation angles, meaning that the impact of measurement noise on the uncertainty of the receiver's position is different. Therefore, different satellites provide different information regarding the receiver's position.
[0086] For example, in GNSS, the reference satellite used for SD is the satellite with the highest elevation angle. This is because this satellite is less susceptible to interference from multipath. Referring to Figure 4C, when the satellite has the highest elevation angle, this corresponds to the measured value y 12 ,y 13 ,y 14 and y 15This means that the set of measurements 410c are estimates selected from the measurement matrix 400c for use in the estimation. However, some embodiments are based on the understanding that there are several factors (e.g., the satellite's physical position and environmental interference) that determine which satellite to use as the reference satellite. Referring again to Figure 4B, satellite 490b has the highest elevation angle of all the satellites. Therefore, it is natural to form the SD as the difference between 490b and the other satellites and select four SD measurements to use in the state estimator. However, instead, it may be advantageous to form the SD measurements using different satellites as reference satellites, as this will result in greater geometric diversity between satellites.
[0087] Some embodiments are based on the understanding that a predetermined number of measurements can be selected that maximize the total amount of positional information. The number of measurements to be selected is predetermined from a computational standpoint, but the measurements are selected from available measurements based on the amount of information, so the selected combination yields the maximum accuracy of state estimation while adhering to the computational constraints of the receiver hardware. For example, instead of selecting measurement 410c, some embodiments select a subset of measurements 120f that minimizes the information loss for the set of measurements. This information is, for example, the cost function of the measurements used for position estimation of the GNSS receiver. Thus, the information loss is the difference between the cost function with all measurements in the measurement matrix 400c as input and the cost function with a subset of measurements (e.g., subset 410c or 420c) as input measurements.
[0088] The receiver's position is part of its state, which is unknown and estimated by a state estimator. The state estimator inherently introduces small errors in positional information. Therefore, some embodiments are based on the understanding that knowing only the receiver's rough position is sufficient for determining the measurement information.
[0089] Figure 4D shows the results of an optimization procedure to minimize the information loss of a subset of measurements for a set of measurements according to one embodiment. The complete measurement matrix 410d consists of 10 unique measurements. In this example, based on the maximum number of measurements set to 3, information loss minimization (420d) selects measurements 431d, 432d, and 433d as the best measurements for use.
[0090] In one embodiment, it is understood that Fisher information can be used to probabilistically quantify the information of a measurement. Fisher information is a method for measuring the amount of information that an observable random variable holds about unknown parameters of the distribution that models that variable.
[0091] In some embodiments, an optimization program is constructed that uses a Fisher information matrix (FIM) to project acquired measurements onto a low-dimensional subspace and find projected measurements that minimize the degradation of the estimator performance with respect to the mean squared error (MSE) of the estimate. By using projected measurements, a significant improvement in computation speed is achieved while maintaining the performance of the original estimator.
[0092]
number
[0093]
number
[0094]
number
[0095]
number
[0096] Figure 5A is a flowchart showing a method 362a for selecting a subset of measurements according to one embodiment, which is performed by a processor. First, the method obtains a coarse position 511a of a receiver corresponding to at least one code signal (510a). For example, in one implementation, the coarse position is obtained by optimizing the fit between the coarse position and the code signal, for example by solving a least-squares problem. The method obtains a FIM 521a (520a) by inserting the coarse position into the measurement model using the coarse position 511a and the measurement model 519a. The method then obtains a projection operator 531a that reduces the FIM to a reduced FIM (i.e., the FIM of a subset of measurements having the size of a subset of measurements) by minimizing the information loss of the reduced FIM over the FIM of the complete set of measurements (530a). Finally, the method generates a subset of measurements by applying the projection operator to the complete measurement matrix (540a).
[0097]
number
[0098] Some embodiments are based on the understanding that minimizing the CRB is a non-convex optimization problem requiring a numerical method. In one embodiment, the projection operator that optimizes the CRB is implemented iteratively until the termination condition is met.
[0099]
number
[0100] The method is based on the understanding that while the position is uncertain, this uncertainty is far smaller compared to the distance between the receiver and the satellite. For example, estimating the receiver position using code measurements can result in estimation errors on the order of several meters. However, the distance between the receiver and the satellite can be thousands of kilometers. In one embodiment, this is used to determine the rough position using, for example, code measurements, and then calculate the CRB as a function of the input measurements.
[0101]
number
[0102]
number
[0103] One embodiment is based on the understanding that the rank condition must be satisfied in order to find the derivative. In another embodiment, it is understood that the rank condition is always satisfied if at least three SD satellite signals or DD satellite signals are available. In one embodiment, this rank constraint is imposed by adding a rank constraint to the optimization problem.
[0104]
number
[0105]
number
[0106] The method outputs the projection operator if the convergence criterion is met (540d), and if not, it uses the updated projection operator to find the partial function (510d).
[0107] In some embodiments, while linearization approximates the CRB, it is recognized that the effect of linearization is negligible due to the large distance between the satellite and the receiver. In other words, if the error is within a few meters, the use of coarse positioning has little effect on the linearization error.
[0108] One embodiment is based on the understanding, from an algorithmic standpoint, that a combination of satellites does not need to include a complete satellite. For example, consider a case where there are five satellites and four are selected. In this case, it may be better to use one-quarter of the measurements from the first satellite and three-quarters of the measurements from the fourth satellite rather than combining the measurements from a complete satellite. In other words, the combination of satellite measurements that forms the measurement is a non-integer combination of satellites. Intuitively, this is because FIM captures uncertainty in the system, and although a complete satellite combination has the highest probability, there is some uncertainty in the accuracy of such a combination, so from an MSE standpoint, it is safer to choose a non-integer combination.
[0109]
number
[0110]
number
[0111] In some embodiments, it is recognized that performing measurement reduction simultaneously on both code and carrier phase measurements can lead to estimation problems. This is because removing measurements removes information from the estimation problem, resulting in problems with the observability of certain states, for example, making it impossible to simultaneously estimate parts of ambiguity and / or position, and causing measurement drift. However, in some embodiments, these problems are resolved by various implementations.
[0112] Figure 6A is a flowchart of one iteration of an FGO-based positioning method using measurement reduction. It is understood that adaptive process noise for ambiguity can be incorporated into this method, but this is not required. The method first performs measurement reduction only on the code measurement to reduce the size of the code measurement, but not the size of the carrier phase measurement. Such one-sided reduction is performed to reduce computational complexity to some extent without significantly impairing performance. First, the method receives the code measurement (605a) and reduces its dimension using, for example, the embodiment described above (610a). The method then performs a first FGO using the dimensionally reduced code measurement and carrier phase measurement 615a (620a) to generate the float receiver state and ambiguity (635a). The method then fixes the ambiguity (630a). Using a fixed (645a) integer ambiguity and receiver state, the method then performs a measurement reduction of the carrier phase measurement using the fixed ambiguity inserted into the measurement model (640a). The method then performs a second FGO using the reduced carrier phase measurement 655a and the reduced code measurement 625a (650a) to generate a receiver estimate (665a).
[0113] Figure 6B is a flowchart showing a single iteration of an alternative method for FGO-based positioning using measurement reduction. It is understood that this method may incorporate adaptive process noise for ambiguity, but this is not required. The method reduces the size of the code and carrier phase measurements by performing measurement reduction independently on the code and carrier phase. Such reduction is performed to further reduce computational complexity without compromising the observability of the problem under consideration. The method first receives the code measurement 605a and the carrier phase measurement 606b and reduces their dimensions independently, for example, using the embodiments described above (610b and 611b). The method then performs a first FGO using the reduced-dimensional code measurement 625b and the reduced-dimensional carrier phase measurement 626b (620b) to generate the float receiver state and ambiguity (635b). The method then fixes the ambiguity (630b). The method then performs a second FGO using a fixed (655b) integer ambiguity and the receiver state (650a) to generate a receiver estimate (665b).
[0114] Figure 7A is a block diagram showing a system 700A for co-tracking and / or control of a receiver, such as a vehicle or underwater buoy, according to several embodiments. The system 700A may have several different interfaces for connecting to other machines or devices. A network interface controller (NIC) 750 includes a receiver, which is adapted to receive GNSS and other sensor data from the receiver, connecting the system 700A to a network 790 via a bus 706.
[0115] In some implementations, the system is configured to track only the state of one or more receivers. In some embodiments where the receivers are mounted on moving vehicles, the system is further configured to control the motion of the vehicles individually or as a platoon. For this purpose, in some embodiments, the system 700A is configured to receive traffic conditions for a mixed group of autonomous vehicles traveling in the same direction, where the mixed group includes a controlled vehicle intending to join the platoon formation and at least one uncontrolled vehicle, and the traffic conditions indicate the state of each vehicle in the group and the controlled vehicle. For example, in one embodiment, the traffic conditions include the current inter-vehicle distance, current speed, and current acceleration of the mixed autonomous vehicles. In some embodiments, the mixed autonomous vehicles include all uncontrolled vehicles within a predetermined distance from the controlled vehicles traveling on both sides of the platoon.
[0116] NIC750 further includes a transmitter adapted to transmit control commands to a control vehicle via network 790. For this purpose, system 700A includes an output interface (e.g., control interface 770) configured to submit control commands 775 to a control vehicle in a mixed autonomous vehicle swarm via network 790. In this way, system 700A can be located on a remote server that is communicating wirelessly with the mixed autonomous vehicles directly or indirectly.
[0117] System 700A may also include other types of input / output interfaces. For example, System 700A may include a human-machine interface 710. The human-machine interface 710 can connect the controller 750 to a keyboard 711 and a pointing device 712, the pointing device 712 may include a mouse, trackball, touchpad, joystick, pointing stick, stylus, or touchscreen.
[0118] System 700A comprises a processor 720 configured to execute stored instructions and a memory 740 that stores instructions executable by the processor. The processor 720 can be a single-core processor, a multi-core processor, a computing cluster, or any other configuration of any number. The memory 740 may include random access memory (RAM), read-only memory (ROM), flash memory, or other suitable memory machine. The processor 720 can be connected to one or more input / output devices via a bus 706.
[0119] The processor 720 is operationally connected to a storage device 730 that stores instructions and processing data used by those instructions. The storage device 730 may form part of memory 740 or be operationally connected to memory 740. For example, the memory may be configured to store a probabilistic estimation model 731, an FGO algorithm and associated data 733, and optionally a control generator 732.
[0120] The processor 720 is configured to request control commands for the controlled vehicles, which also indirectly control the uncontrolled vehicles. For this purpose, the processor is configured to run a control generator 732 to request control commands based on the state of the vehicles. In some embodiments, the control generator 732 uses a deep reinforcement learning (DRL) controller trained to generate control commands from the augmented state of individual vehicles and / or vehicle platoons.
[0121] Figure 8A is a schematic diagram showing a directly or indirectly controlled vehicle 801 according to several embodiments. In this specification, the vehicle 801 can be any type of wheeled vehicle, such as a passenger car, bus, or rover. The vehicle 801 can also be an autonomous or semi-autonomous vehicle. For example, in some embodiments, the motion of the vehicle 801 is controlled. Examples of motion include the lateral motion of the vehicle 801, controlled by the vehicle's steering system 803. In one embodiment, the steering system 703 is controlled by a controller 802 communicating with system 700A. Alternatively, the steering system 803 may be controlled by the driver of the vehicle 801.
[0122] The vehicle may include an engine 807 that can be controlled by a controller 802 or by other components of the vehicle 801. The vehicle may further include one or more sensors 804 for sensing the surrounding environment. Examples of sensors 804 include a rangefinder, radar, lidar, and camera. The vehicle 801 may further include one or more sensors 805 for sensing its current momentum and internal state. Examples of sensors 805 include a GNSS signal, accelerometer, inertial measuring device, gyroscope, axial rotation sensor, torque sensor, deflection sensor, pressure sensor, and flow sensor. These sensors provide information to the controller 802. The vehicle may include a transceiver 806 that enables the communication functions of the controller 802 via a wired communication channel or a wireless communication channel.
[0123] Figure 8B is a schematic diagram illustrating the interaction between a controller 802 that receives control commands from system 700A and a controller 800 of vehicle 801, according to several embodiments. For example, in some embodiments, the controller 800 of vehicle 801 is a steering controller 810 and a brake / throttle controller 820 that control the turning and acceleration of vehicle 801. In this case, controller 802 outputs control inputs to controllers 810 and 820 to control the state of the vehicle. The controller may also include higher-level controllers, such as a lane-keeping assist controller 830 that further processes the control inputs of the predictive controller 802. In any case, controller 800 maps the output of the predictive controller 802 to control the motion of the vehicle by controlling at least one actuator of the vehicle, such as the vehicle's steering wheel and / or brakes. The state of the vehicle machine may include position, attitude, and longitudinal / lateral velocity. Control inputs may include lateral / longitudinal acceleration, steering angle, and engine / brake torque. State constraints for this system may include lane-keeping constraints and obstacle avoidance constraints. Control input constraints may include steering angle constraints and acceleration constraints. Acquired data may include position, attitude, velocity profile, acceleration, torque, and / or steering angle.
[0124] The embodiments of the present disclosure described above can be implemented in any of many ways. For example, these embodiments may be implemented using hardware, software, or a combination thereof. If implemented in software, the software code can be executed on any suitable processor or set of processors, whether located in one computer or distributed across multiple computers. Such a processor may be implemented as an integrated circuit in which one or more processors reside within an integrated circuit component. However, the processor may be implemented using circuitry of any suitable format.
[0125] The various methods or processes outlined herein may be encoded as software executable on one or more processors employing any one of a variety of operating systems or platforms. Furthermore, such software may be written using any of several suitable programming languages and / or programming or scripting tools, and may be compiled as executable machine language code or intermediate code that runs on a framework or virtual machine. Typically, the functions of program modules may be combined or distributed as desired in various embodiments.
[0126] This disclosure may be embodied as an example method. The operations performed as part of this method may be ordered in any suitable manner. Thus, embodiments may be configured such that the operations are performed in an order different from the example order, which may include performing multiple operations simultaneously, although they are shown as a series of operations in the example embodiments.
[0127] While this disclosure has been described as an example of a preferred embodiment, it will be understood that various other adaptations and modifications are possible within the spirit and scope of this disclosure. Therefore, the object of the appended claims is to encompass all such variations and modifications that fall within the true spirit and scope of this disclosure.
Claims
1. A system for probabilistically tracking the state of a receiver of a global navigational satellite system (GNSS), comprising a processor and a memory storing instructions, wherein when an instruction is executed by the processor, the system... Receiving GNSS measurement data, including carrier phase and code signals, transmitted from multiple satellites, The GNSS measurement data is processed to detect irregularities, The system is configured to track the state of the receiver using an adaptive probability estimator, the adaptive probability estimator iteratively predicts the state of the receiver using a receiver state estimation model affected by process noise, updates the state of the receiver using a measurement model that processes the GNSS measurement data affected by measurement noise, the adaptive probability estimator is configured to change the process noise in response to the detection of irregularities in the GNSS measurement data, and the instruction further to the system, A system that causes the receiver to output the tracked state of the receiver.
2. In order to detect irregularities, the processor, Detection of cycle slip by analyzing the discrepancy between the predicted and actual measured values of the GNSS measurement data, and The system according to claim 1, configured to perform one of the following: identifying the effects of multipath based on abnormal signal reflection or noise patterns, or a combination thereof.
3. The aforementioned processor, The processor is configured to accept batches of measurements indicating the motion of the receiver, the batch of measurements comprising the GNSS measurement data collected over a sequence of time instances within a period, and the processor further, For an index of signal irregularity that includes one or a combination of cycle slip and multipath effects, the measurement data is monitored, Based on the detected indicator, the adaptive probability estimator is configured to dynamically adjust the process noise parameter in the state estimation model, with higher process noise values applied to the state variable of the GNSS receiver affected by the detected irregularity, and lower process noise values maintained when no irregularity is detected, and the processor further, The system according to claim 1, configured to maintain the continuity of measurements in the batch of measurements by storing at least a number of measurements from the batch of measurements for each of the time instances in the period, and by estimating and outputting the trajectory of the GNSS receiver tracked in the batch of measurements using different parameters of the process noise.
4. The system according to claim 3, wherein the batch of measurement values includes one or a combination thereof of readings from an internal measurement unit (IMU), atmospheric pressure measurements, and distance measurement data measurements.
5. The adaptive probability estimator performs a two-stage tracking including a first stage and a second stage. During the first step, the adaptive probability estimator estimates the trajectory of the GNSS receiver using the real-valued ambiguity of the GNSS measurement data, optimizes the state trajectory with respect to the real-valued ambiguity of the objective function, and minimizes the error between combinations of code factors, motion constraint factors, and ambiguity constraint factors. The system according to claim 3, wherein during the first step, the adaptive probability estimator fixes the real-valued ambiguity to the nearest integer value and estimates the trajectory of the GNSS receiver using the integer ambiguity of the GNSS measurement data.
6. The adaptive stochastic estimator is configured to process batches of measurements with a first factor graph optimization (FGO) to estimate the receiver state trajectory over the period, the state trajectory describing the measurements in batches of measurements according to the state model having the changing process noise, the first FGO optimizing the real-valued receiver state and the real-valued ambiguity of the objective function to minimize errors between combinations of code factors, carrier factors, motion constraint factors and ambiguity constraint factors, and the adaptive stochastic estimator further, The aforementioned ambiguity is fixed to an integer value, The system according to claim 3, configured to process a second FGO based on the measured value and the fixed integer ambiguity to estimate the state trajectory of the GNSS receiver.
7. The system according to claim 6, wherein the first FGO incorporates an adaptive prior distribution of integer ambiguity such that the adaptive stochastic estimator determines the importance of each measurement in the optimization process based on an index of irregularity.
8. The system according to claim 6, wherein the first FGO uses a Fisher information matrix to identify a subset of measurements that maximizes the total information about the state of the GNSS receiver, and requires fewer processing calculations compared to the entire set of measurements.
9. The system according to claim 6, wherein the system dynamically selects a predetermined number of measurements from a measurement matrix based on their information values, and the information values are obtained as a function of the relative line-of-sight geometry of the satellite with respect to the GNSS receiver.
10. The system according to claim 9, wherein the selected measurement includes one of single-difference and double-difference measurements of satellite signals, or a combination thereof, in order to ensure maximum spatial diversity.
11. The adaptive probability estimator reduces the computational load of the first FGO, the second FGO, or both, by projecting the measured values onto a low-dimensional subspace using a Fisher information matrix, according to claim 6.
12. The system according to claim 6, wherein the second FGO refines the estimated trajectory by correcting residual errors arising from the fixed integer ambiguity using a statistical smoothing method.
13. The system according to claim 3, wherein the adaptive probability estimator dynamically adjusts the batch length based on computing power, signal quality, and irregularities detected in the GNSS measurement data.
14. The system according to claim 9, wherein the selection of the measurement values is performed using a non-integer combination of satellite measurement values, and the mean squared error (MSE) of the orbital estimate is minimized by combining the weighting ratios of signals from different satellites.
15. A method for tracking the state of a receiver of a global navigational satellite system (GNSS) using two-stage factor graph optimization (FGO), Receiving batches of GNSS measurement data, including carrier phase signals and coded signals collected over a sequence of time instances, from multiple satellites, By analyzing the discrepancy between the predicted signal and the measured signal in the GNSS data, signal irregularities including one or more of the effects of cycle slip and multipath are detected. The method further comprises performing a first FGO to estimate the trajectory of the receiver's state and real-valued ambiguity, wherein the first FGO optimizes an objective function that minimizes errors associated with the carrier phase factor, code factor, motion model factor, and ambiguity factor, and the method further Solving integer ambiguity by fixing the aforementioned real-valued ambiguity to its nearest integer value, A method comprising: performing a second FGO using the fixed integer ambiguity to refine the trajectory of the receiver's state.
16. The method according to claim 15, further comprising dynamically adjusting the process noise parameters of the state evolution model in the first FGO based on the detected signal irregularity, wherein higher process noise is applied to state variables affected by the signal irregularity, and lower process noise is applied to variables having clean measurements.
17. Detecting signal irregularities is The difference between the predicted carrier phase signal and the measured carrier phase signal is calculated to identify the cycle slip, The method according to claim 15, comprising analyzing noise patterns or signal reflections to identify the effects of multipath and selectively adjusting the contribution of affected measurements to the optimization process.
18. The method according to claim 15, further comprising selecting a subset of measurements from a measurement matrix consisting of single-difference or double-difference signals from a pair of satellites, wherein the subset is selected based on maximizing a Fisher information matrix (FIM) to preserve the maximum information value while reducing computational complexity.
19. The method according to claim 15, further comprising projecting the measured values onto a lower-dimensional subspace using a Fisher information matrix and an optimization procedure, wherein the Cramer-Rao bound (CRB) is minimized by the optimization procedure such that information loss between the two-step estimation processes is minimized and the computational load is reduced.
20. The receiver is located in the vehicle, and the method further, The method according to claim 15, comprising adjusting the batch length of GNSS measurement data used in the two-stage factor graph optimization based on computing power and signal quality, wherein the batch length is reduced in response to increased computing load or degraded signal conditions to ensure real-time processing performance.