The present application claims priority to European Patent Application No. 23210075.0, filed Nov. 15, 2023, the entire contents of which are incorporated herein by reference for all purposes.
The invention relates to methods, systems, and computer programs for estimating a position and generating at least one protection level (PL) associated with the estimated position. The fields of application of the methods, systems, and computer programs include, but are not limited to, navigation, highly automated driving, autonomous driving, mapmaking, land surveying, civil engineering, construction, agriculture, disaster prevention and relief, and scientific research.
Navigation satellite systems (NSS) include both global navigation satellite systems (GNSS) and regional navigation satellite systems (RNSS), such as the Global Positioning System (GPS) (United States), GLONASS (Russia), Galileo (Europe), BDS (China), QZSS (Japan), and the Indian Regional Navigational Satellite System (IRNSS, also referred to as NAVIC) (systems in use or in development). An NSS typically uses a plurality of satellites orbiting the Earth. The plurality of satellites forms a constellation of satellites. An NSS receiver detects a code modulated on an electromagnetic signal broadcast by a satellite. The code is also called a ranging code. Code detection includes comparing the bit sequence modulated on the broadcasted signal with a receiver-side version of the code to be detected. Based on the detection of the time of arrival of the code for each of a series of the satellites, the NSS receiver estimates its position. Positioning includes, but is not limited to, geolocation, i.e. the positioning on the surface of the Earth.
An overview of GPS, GLONASS, and Galileo is provided for example in sections 9, 10, and 11 of reference [1](a list of references is provided at the end of the present description, after a list of abbreviations and acronyms).
Positioning using NSS signal codes provides a limited accuracy, notably due to the distortion the code is subject to upon transmission through the atmosphere. For instance, the GPS includes the transmission of a coarse/acquisition (C/A) code at about 1575 MHz, the so-called L1 frequency. This code is freely available to the public, whereas the Precise (P) code is reserved for military applications. The accuracy of code-based positioning using the GPS C/A code is approximately 15 meters, when taking into account both the electronic uncertainty associated with the detection of the C/A code (electronic detection of the time of arrival of the pseudorandom code) and other errors including those caused by ionospheric and tropospheric effects, ephemeris errors, satellite clock errors, and multipath propagation.
The carrier signals transmitted by the NSS satellites can also be tracked to provide an alternative, or complementary means of determining the range, or change in range between the receiver and satellite. Carrier phase measurements from multiple NSS satellites facilitate estimation of the position of the NSS receiver.
The approach based on carrier phase measurements has the potential to provide much greater position precision, i.e. down to centimetre-level or even millimetre-level precision, compared to the code-based approach. The reason may be intuitively understood as follows. The code, such as the GPS C/A code on the L1 band, has an effective chip length that is much longer than one cycle of the carrier on which the code is modulated. Code and carrier phase measurements have precisions that are roughly the same fraction of the respective chip length or wavelength. The position resolution may therefore be viewed as greater for carrier phase detection than for code detection.
However, in the process of estimating the position based on carrier phase measurements, the carrier phases are ambiguous by an unknown number of cycles. The fractional phase of a received signal can be determined but the additional number of cycles required to determine the satellite's range cannot be directly determined in an unambiguous manner. This is the so-called “integer ambiguity problem”, “integer ambiguity resolution problem”, or “phase ambiguity resolution problem”, which may be solved to yield the so-called fixed-ambiguity solution (sometimes referred to simply as the fixed solution).
GNSS observation equations for code observations and for carrier phase observations are for instance provided in ref. [1], section 5. An introduction to the GNSS integer ambiguity resolution problem, and its conventional solutions, is provided in ref. [1], section 7.2. The person skilled in the art will recognize that the same or similar principles apply to RNSS.
The main GNSS observables are therefore the carrier phase and code (pseudorange), the former being generally much more precise than the latter, but ambiguous. These observables enable a user to obtain the geometric distance from the receiver to the satellite. With known satellite position and satellite clock error, the receiver position and receiver clock error can be estimated.
As mentioned above, the GPS includes the transmission of a C/A code at about 1575 MHz, the so-called L1 frequency. More precisely, each GPS satellite transmits continuously using two radio frequencies in the L-band, referred to as L1 and L2, at respective frequencies of 1575.42 MHz and 1227.60 MHz. With the ongoing modernization of the GPS, signals on a third L5 frequency are becoming available. Among the two signals transmitted on L1, one is for civil users and the other is for users authorized by the United States Department of Defense (DoD). Signals are also transmitted on L2, for civil users and DoD-authorized users. Each GPS signal at the L1 and L2 frequencies is modulated with a pseudo-random noise (PRN) code, and optionally with satellite navigation data. When GNSS satellites broadcast signals that do not contain navigation data, these signals are sometimes termed “pilot” signals, or “data-free” signals. In relation to GPS, two different PRN codes are transmitted by each satellite: a C/A code and a P code which is encrypted for DoD-authorized users to become a Y code. Each C/A code is a unique sequence of 1023 bits, which is repeated each millisecond. Other NSS systems also have satellites transmitting multiple signals on multiple carrier frequencies.
For some applications relying on the above-discussed techniques, the provision of integrity information may be desirable to indicate a level of trust that can be placed in the correctness of values of parameters estimated using these techniques. Integrity information may assist applications in deciding whether estimated parameters, such as an estimated position, can be trusted and are thus safe to use, or, on the contrary, cannot be trusted and may be unsafe to use.
Ref [2] relates to a technique for high-accuracy and high-integrity GPS relative navigation applications. The approach relaxes the integrity requirements for obtaining a correct fixed solution by introducing so-called almost fixed solutions (candidate sets of integer ambiguities), “where only a few (typically just one) of the integer ambiguities are fixed incorrectly at a time by a small amount (±1 cycle, etc.)” (p. 571, right-hand col., last paragraph). These almost fixed solutions form a so-called Enlarged Pull-In Region (EPIR), i.e. a region centered around the fixed solution. The probability of the almost-fixed solutions plus that of the correct fixed solution together have to meet the stringent integrity requirements. The precision of the almost fixed solution precision sits in-between the precision of the correctly-fixed solution and that of the float solution.
Ref [3] relates to a method for calculating the integrity risk for carrier phase navigation algorithms. Specifically, the impact of incorrect fixes (incorrect integer ambiguity candidates) in the position domain is evaluated and tight upper bounds on the resulting navigation integrity risk are defined. A mechanism to implement this method with a partially fixed solution in a navigation system is also described. Namely, a set of integer ambiguity combinations is identified by a bootstrap rounding method to sequentially fix ambiguities. Ref. [4] discloses a similar technique.
Ref [5] relates to generating protection level(s) (PL) for an application relying on NSS observations to produce an estimate of parameters, wherein a float solution is computed using NSS signals observed by a NSS receiver (ref. [5], paragraph [0034] and paragraph [0183], step 1), a best integer ambiguity combination that minimizes an error norm is identified based on the float solution (ref. [5], paragraph [0035] and paragraph [0183], step 4), and additional integer ambiguity combinations are identified, which have the smallest error norms that, together with the error norm of the best integer ambiguity combination, jointly satisfy the integrity risk (ref. [5], paragraph [0037] and paragraph [0183], step 7). A measure of spread of the best and additional integer ambiguity combinations is then computed and the PL(s) is then generated from the measure of spread (ref. [5], paragraph [0040] and paragraph [0183], step 10). Regarding the context in which some embodiments of the method of ref. [5] have been developed, see also ref. [5], paragraphs [0077] to [0082].
There is a constant need for improving the implementation of positioning or similar systems making use of NSS observables, and, in particular, for being able to reliably meet the integrity requirements of these systems, especially, but not only, in the context of safety-critical applications such as highly-automated driving and autonomous driving. This need may also arise when challenging environments, such as those with bridges or tunnels, are involved.
The present invention aims at addressing the above-mentioned need. The invention includes methods, systems, computer programs, computer program products, and storage mediums as defined in the independent claims. Particular embodiments are defined in the dependent claims.
In one embodiment, a method is carried out by a NSS receiver and/or a processing entity capable of receiving data from the NSS receiver, for estimating a position and generating at least one protection level (PL) associated with the estimated position. A PL is a statistical error bound ensuring that the estimated position only exceeds the PL with a probability, hereinafter referred to as “integrity risk”. The method comprises the following steps and/or operations. An estimation process, hereinafter referred to as “integrity estimator”, is operated. The integrity estimator uses state variables and computes values of its state variables at least based on: (i) data, hereinafter referred to as “time-propagated, IMU-based data”, derived from data from an inertial measurement unit (IMU) suitable for estimating a change in position of the NSS receiver, and (ii) timely NSS observations made by the NSS receiver. The integrity estimator uses, among other state variables, a plurality of state variables, hereinafter referred to as “position error history state variable set”, representing estimated errors in a position of the NSS receiver at a plurality of epochs preceding an estimation epoch. Further, an estimated position, hereinafter referred to as “time-propagated, NSS-based estimated position”, of the NSS receiver, and at least one PL, hereinafter referred to as “time-propagated protection level set”, associated with the time-propagated, NSS-based estimated position, are generated for the estimation epoch, at least based on: (a) the position error history state variable set; (b) an estimated position, hereinafter referred to as the “IMU-based estimated position”, of the NSS receiver computed based on data from the IMU; (c) a delayed estimated position that is applicable to an epoch preceding the estimation epoch and that has been computed based on NSS observations made by the NSS receiver; and (d) at least one delayed PL, hereinafter referred to as “delayed protection level set”, associated with the delayed estimated position.
The method creates the ability to improve availability and/or robustness of PLs by using, notably, the time-propagated, IMU-based data. The method may, in particular, allow bridging what would otherwise lead to a gap in PL availability during NSS signal tracking interruptions.
In one embodiment, a system comprises a NSS receiver and/or a processing entity capable of receiving data from the NSS receiver, the system being for estimating a position and generating at least one PL associated with the estimated position, and the system being configured for carrying out the above-described method. In one embodiment, a vehicle comprises such a system.
In some embodiments, computer programs, computer program products and storage media for storing such computer programs are provided. Such computer programs comprise computer-executable instructions configured for carrying out, when executed on a computer such as one embedded in, or otherwise part of, a NSS receiver or in another apparatus or device, or when executed on a set of computers such as a set of computers embedded in, or otherwise part of, a set of apparatuses or devices, the above-described method.
Embodiments of the present invention shall now be described in conjunction with the appended drawings in which:
The present invention shall now be described in conjunction with specific embodiments. These serve to provide the skilled person with a better understanding but are not intended to in any way restrict the scope of the invention, which is defined by the appended claims. In particular, the embodiments described throughout the description can be combined to form further embodiments to the extent that they are not mutually exclusive.
Throughout the following description, the abbreviation “GNSS” is sometimes used. The invention is, however, not limited to global navigation satellite systems (GNSS) but also applies to regional navigation satellite systems (RNSS). Thus, it is to be understood that each occurrence of “GNSS” in the following can be replaced with “RNSS” to form additional embodiments.
In the art, the term “observables” is often used to refer to structures of an NSS signal from which observations or measurements can be made (PRN-code, carrier phase) (see e.g. ref. [7]: “The word observable is used throughout GPS literature to indicate the signals whose measurement yields the range or distance between the satellite and the receiver.”). However, in common usage, and in the present document, the term “observable” (also referred to as “NSS observable”) is also interchangeably used to refer to the observation itself, such that, for example, “carrier phase observable” has the same meaning as “carrier phase observation”. Further, when the present document describes that an NSS signal is observed, this means that at least an observation (measurement) of at least an observable of the NSS signal is made.
When the term “real-time” is used in the present document, it means that there is an action (e.g., data is processed or transmitted, results are computed) as soon as the required information for that action is available. Thus, certain latency exists, which depends on various aspects depending on the involved component(s) of the system.
When the verb “broadcast” (and “broadcasting”, etc.) is used, this also covers embodiments where the transmission is a form of multicasting.
NSS receiver 10 comprises at least one antenna, i.e. it may comprise a single antenna or a plurality of antennas. If NSS receiver 10 comprises one antenna configured to receive signals at one frequency, there may be a single electrical antenna phase centre (APC). If NSS receiver 10 comprises one antenna configured to receive signals at a plurality of frequencies (i.e., different frequencies broadcasted by NSS satellites, whether from one NSS or from a plurality of NSS), there may be one APC per frequency, i.e. in total a plurality of APCs. Likewise, there are a plurality of APCs if NSS receiver 10 comprises a plurality of antennas. The methods are mainly described in the present document for a single APC—and corresponding NSS signals and measurements—associated with a single frequency. However, the methods, using antenna phase correction tables if required as practiced in the art, may also be applied for a plurality of APCs—and corresponding NSS signals and measurements—associated with different frequencies in parallel.
The method aims at estimating a position, such as a position of NSS receiver 10, which may for example be a rover receiver (also called “rover system” or simply “rover”) or a position of an APC of NSS receiver 10. The method may eventually lead to estimating a position of NSS receiver 10 or a position of an APC of NSS receiver 10. In one embodiment, the position is a position relative to a reference point or initial point, whose absolute position need not necessarily be precisely known, and the method may aim at estimating a trajectory relative to the reference point or initial point.
The method also aims at generating one or more protection levels associated with the estimated position, for an application that relies on NSS observations to produce the estimated position (which is also referred to simply as the “estimate”). As explained in ref. [5], paragraph [0032], a protection level (PL) is a statistical error bound ensuring that the estimate only exceeds the PL with a probability, here referred to as the “integrity risk”. The integrity risk is a number set according to the integrity requirement(s) of the application. The PL may be regarded as the uncertainty of the estimate. In one embodiment, the integrity risk is a number set with respect to a time interval to which the integrity risk applies. That is, in this embodiment, the PL is a statistical error bound ensuring that the estimate only exceeds, within said time interval, the PL with a probability being the integrity risk. In that respect, see also ref. [5], paragraphs [0089] to [0093], including its
In one embodiment, the integrity risk is a number equal to or smaller than 10-3. In another embodiment, the integrity risk is a number comprised in a range between 10-5 and 10-9. In yet another embodiment, the integrity risk is a number comprised in a range between 10-7 and 10-9. In other embodiments, the integrity risk may be even smaller, especially for safety-of-life applications.
The application relying on NSS observations to produce an estimated position may for example be a highly automated driving or autonomous driving application relying on NSS observations to produce an estimate of the position, velocity, or acceleration of a vehicle.
In step s10, an estimation process, here referred to as “integrity estimator” 40, is operated. Integrity estimator 40 uses state variables and computes values of its state variables at least based on (i) data, here referred to as “time-propagated, IMU-based data”, derived from data from an inertial measurement unit (IMU) 20 suitable for estimating a change in position of NSS receiver 10, and on (ii) timely NSS observations made by NSS receiver 10.
As schematically illustrated in
The timely NSS observations come, directly or indirectly, from NSS receiver 10. The NSS observations coming from NSS receiver 10 are said to be timely observations in comparison with the delayed information (which will be described further below) also coming from NSS receiver 10. The term “timely” means, in one embodiment, that the NSS observations are transmitted to integrity estimator 40 as soon as the NSS observations are available at NSS receiver 10. In one embodiment, the timely NSS observations are time-differenced carrier phase NSS observations, also referred to as “delta-phase observations”. The processing of time-differenced carrier phase observations, also referred to as “delta phase” processing, is known in the art for precise position propagation to the current epoch. The basic delta phase processing principles are for example explained in ref. [20], pp. 11-13, paragraphs [0035] to [0047]. In other words, in that embodiment, the timely NSS observations do not represent an absolute position whereas the time-propagated, IMU-based data from inertial navigator 30 may comprise a predicted absolute position.
Optionally, integrity estimator 40 may use additional data to compute the values of its state variables, such as data from a broadcasted correction stream (see e.g. ref. [8] and [9]).
Integrity estimator 40 is or comprises an algorithm, procedure, or process, or a piece of software, firmware, and/or hardware configured for implementing such an algorithm, procedure, or process, in which a set of state variables (or “state vector”) is maintained over time, i.e. the values of the state variables are estimated based on measurements made over time. The measurements may comprise data representing observed NSS signals and data from other sensor(s). Integrity estimator 40 involves or comprises, in one embodiment, a Kalman filter and/or a robust estimator. The invention is, however, not limited to the use of Kalman filter(s) and/or robust estimator(s). Other estimation processes, filters, or filter techniques may be used.
Integrity estimator 40 may for example operate together with inertial navigator 30 as an aided INS (AINS), as described in below section D, titled “Aided INS”, or in ref. [10], paragraphs [0086] to [0093]. Integrity estimator 40 may also be integrated with inertial navigator 30 as described in ref. [6], Section 14.1 (i.e., pp. 420-433). In particular, one approach may be to use a so-called error-state Kalman filter (see for example ref. [6], Section 14.1.7), in which “the integrated navigation solution comprises the navigation solution of a reference navigation system, corrected using measurements from the other constituent navigation systems”, wherein the reference navigation system is “an INS or other dead-reckoning system” (ref. [6], p. 432).
Some of integrity estimator's 40 state variables may represent, for example, the position of one or more points of, or associated with, NSS receiver 10 (such as the position of an APC of NSS receiver 10), any state relating to inertial navigator 30, an offset in the position of one or more points of, or associated with, NSS receiver 10 relative to another position (the offset per se being therefore a relative position), an offset in the position of one or more points of, or associated with, NSS receiver 10 relative to another epoch, the rate of change of the position, the rate of change of the offset in the position, a bias related to NSS receiver 10, a bias related to any of the NSS satellites, a bias related to any of the satellite systems, a bias related to any of the NSS signals, the rate of change of any of the said biases, or any combination of the above.
Furthermore, and more specifically, integrity estimator 40 uses, among other state variables, a plurality of state variables 410, here referred to as “position error history state variable set” 410, representing estimated errors in a position of NSS receiver 10 (i.e., estimated errors in the time-propagated, IMU-based position of NSS receiver 10 as predicted by inertial navigator 30 and provided to integrity estimator 40) at a plurality of epochs preceding an estimation epoch. Three values corresponding to a three-dimensional position may be associated with each epoch in position error history state variable set 410. Namely, a single history state may be defined in a so-called Earth or ECEF frame so that each history state may have three components (X, Y, Z).
The estimation epoch of integrity estimator 40 may be the current epoch when carrying out the method in real-time, or the estimation epoch may be an arbitrary reference epoch as the method may also be carried out in a post-processing manner. The time increment between two successive epochs associated with estimated errors in position error history state variable set 410, i.e. the time increment between two position error history states, may depend on the rate at which delayed NSS-based PLs are generated (typically smaller than or equal to 1 Hz). That is, in one embodiment, a position error history state is aligned with the new delayed NSS-based PL so that the new delayed NSS-based PL can be propagated to the current epoch (see also
The IMU-based data rate is the same as the integrity estimator's 40 rate. However, the IMU-based data rate can be different from the raw IMU data rate (typically larger than or equal to 20 Hz) used by inertial navigator 30 to generate IMU-based data. In principle, everything can be run at a higher rate but this is generally at the expense of an increased processing load.
In one embodiment, the method may involve the following sampling rates: (1) IMU data rate: raw IMU data sampling rate (typically larger than or equal to 20 Hz); (2) IMU-based data rate: rate at which time-propagated, IMU-based data is provided to integrity estimator 40 (the IMU-based data rate needs to be larger than or equal to the integrity estimator rate); (3) NSS data rate: raw NSS data (or timely NSS observations) sampling rate (typically 1 Hz but can be higher); (4) integrity estimator rate: rate at which integrity estimator 40 is updated, including time and measurement update steps, where the time update rate should be the same as the IMU-based data rate (see above point (2)) and the measurement update rate should the same as the NSS data rate (see above point (3)); (5) delayed NSS position and delayed PL rate: rate at which NSS precise (but delayed) positions and PLs are generated (typically smaller than or equal to 0.5 Hz); and (6) position error history states sampling rate: should match the delayed NSS position and delayed PL rate (see above point (5)). Since the delayed NSS position and delayed PL rate (5) may be unknown, the position error history states sampling rate and time span may be adapted based on the expected rate (5) and latency (see also
In step s20, position-and-PL-time-propagator 50 generates, for the estimation epoch, an estimated position, here referred to as “time-propagated, NSS-based estimated position”, of NSS receiver 10, and at least one PL, here referred to as “time-propagated protection level set”, associated with the time-propagated, NSS-based estimated position. The term “for the estimation epoch” means here that the time-propagated, NSS-based estimated position and the time-propagated protection level set apply to the estimation epoch. The time-propagated protection level set may comprise two PL values corresponding to a three-dimensional position, i.e. a horizontal PL and a vertical PL. Position-and-PL-time-propagator 50 may be or may comprise, in some embodiments, a piece of software, firmware, and/or hardware configured for generating the time-propagated, NSS-based estimated position and the time-propagated protection level set. Specifically, position-and-PL-time-propagator 50 generates s20 the time-propagated, NSS-based estimated position and the time-propagated protection level set at least based on: (a) position error history state variable set 410; (b) an estimated position, here referred to as the “IMU-based estimated position”, of NSS receiver 10 computed based on data from IMU 20; (c) a delayed estimated position that is applicable to an epoch preceding the estimation epoch and that has been computed based on NSS observations made by NSS receiver 10; and (d) at least one delayed PL, here referred to as “delayed protection level set”, associated with the delayed estimated position.
Position error history state variable set 410 may be transmitted from integrity estimator 40 to position-and-PL-time-propagator 50, as schematically illustrated in
Position error history state variable set 410 may be transmitted directly (as illustrated in
Likewise, the IMU-based estimated position may be transmitted from inertial navigator 30 to position-and-PL-time-propagator 50, as schematically illustrated in
Furthermore, the delayed estimated position and the delayed protection level set are both transmitted from NSS receiver 10 to position-and-PL-time-propagator 50, where they are time-propagated (i.e., propagated in time) to the estimation epoch, i.e. either time-propagated to the current epoch if the method is performed in real-time or time-propagated to a reference epoch if the method is performed in a post-processing manner. The time-propagation is a main aim of generating step s20. In one embodiment, the delayed protection level set comprises a horizontal component (e.g., one value PLxy) and a vertical component (e.g., one value PLz), both corresponding to the same epoch. In one embodiment, the delayed protection level set comprises three components e.g., (i) PLnorth, PLeast, PLdown, or (ii) PLx, PLy, PLz, or (iii) an along-track component, a cross-track component, and an up-component (which may be advantageous for automotive applications).
The method schematically illustrated by
In embodiments in which position-and-PL-time-propagator 50 uses corrected changes in position over time to propagate the delayed positions in time (as explained for example with reference to
In one embodiment, the method is performed at least partially as part of a data post-processing process. In other words, the invention is not limited to a real-time operation. Rather, it may be applied for processing pre-collected data to determine a position, trajectory, or other information, in post-processing. For example, the observations may be retrieved from a set of data which was previously collected and stored; the processing may be conducted for example in an office computer long after the data collection and thus not in real-time.
In one embodiment (which may be referred to as “reverse-time, post-processing embodiment”), the method is performed at least partially in a post-processing manner (as explained in the preceding paragraph), and the epochs are processed in reverse time. This reflects the possibility of running the method in reverse time. That is, for post-processing applications, the data, i.e. the NSS observables, etc., can effectively be run backwards, and all of what is described in the present document can still be applied.
In one embodiment, the method is performed in both forward and reverse time post-processing. This may be advantageous in that, in a forward processing run, it takes time to resolve integer carrier phase ambiguities immediately following some tracking interruption, such as that caused by an overpass. These data segments can often be populated with integer resolved solutions when processing in reverse time.
In one embodiment, the method described with reference to
In one embodiment, NSS receiver 10 observes NSS signals, including the timely NSS observations, and NSS receiver 10 then transmits data representing the observed NSS signals, including the timely NSS observations, or information derived therefrom, to another processing entity or set of processing entities in charge of carrying out steps s10 and s20, which then receives data including the timely NSS observations. In one embodiment, inertial navigator 30 generates the time-propagated IMU-based data and the IMU-based estimated position and transmits those to another processing entity or set of processing entities in charge of carrying out steps s10 and s20. In another embodiment, the method described with reference to
The transmission, from NSS receiver 10, of data including the timely NSS observations to integrity estimator 40, the transmission, from inertial navigator 30, of the time-propagated IMU-based data and the IMU-based estimated position to integrity estimator 40, the transmission of other information to integrity estimator 40, to position-and-PL-time-propagator 50, and/or from integrity estimator 40 to position-and-PL-time-propagator 50, and any other transmission of information as part of the method may for example be carried out in the form of data packets, such as IP packets, through, for example, any one of, or a combination of, a local area network (LAN), the Internet, a cellular network, and a suitable satellite link. The person skilled in the art would, however, appreciate that other forms of wired or wireless transmission may be used, such as, and without being limited to, wireless transmissions based on Bluetooth, Wi-Fi, or Li-Fi. In one embodiment, the timely NSS observations, the time-propagated IMU-based data, and the IMU-based estimated position are transmitted in real-time, i.e. as soon as available (in line with the above-mentioned definition of the term “real-time”). The data may be encoded and/or encrypted prior to transmission. Upon reception, the IMU-based estimated position may be buffered (as will be explained below) or, alternatively, the IMU-based estimated position may be buffered by inertial navigator 30 prior to transmission.
First, a corrected change in position over time, here referred to as “corrected delta position”, and at least one corrected change in PL over time, here referred to as “corrected delta protection level set”, may be generated based on position error history state variable set 410 from integrity estimator 40, and on the IMU-based estimated position from buffer 70. This first operation may for example be performed by an element which is here referred to “corrected-delta-position-(value-and-PL)-generator” 80, as schematically illustrated in
In one embodiment, a corrected delta position is computed as follows. As explained above, position error history state variable set 410 comprises estimates of the errors in an APC position predicted by inertial navigator 30. The position change from epoch k1 to k2, i.e. the corrected delta position, may for example be computed as follows:
In one embodiment, the corrected delta protection level set is computed based on the standard deviation or variance of the corrected delta position considering the integrity risk, so that the delta position covariance matrix is scaled. This may for example be implemented in accordance with, or using, equations (3) and (4) as described in section B.1 below. In other words, in this embodiment, the standard deviation or variance of delta positions (i.e., the differences between the position errors in integrity estimator 40) is computed and scaled depending on the integrity risk, and the scale delta position standard deviation or variance is used to propagate the delayed PLs.
Second, the time-propagated, NSS-based estimated position and the time-propagated protection level set may be generated based on the corrected delta position and the corrected delta protection level set from corrected-delta-position-(value-and-PL)-generator 80, and on the delayed estimated position and the delayed protection level set from NSS receiver 10. In particular, the corrected delta position and the corrected delta protection level set are used to propagate, in time, the delayed estimated position and the delayed protection level set. This second operation may for example be performed by position-and-PL-time-propagator 50, as schematically illustrated in
In one embodiment, the method further comprises, each time a delayed estimated position and associated delayed protection level set become available (i.e., available for processing at position-and-PL-time-propagator 50), or at least at some instances when a delayed estimated position and associated delayed protection level set become available (i.e., available for processing at position-and-PL-time-propagator 50), locking, in position error history state variable set 410 (maintained by integrity estimator 40), the state variable or state variables corresponding to the epoch to which the delayed estimated position and associated delayed protection level set relate. Locking, in position error history state variable set 410, a state variable means that the state variable remains in position error history state variable set 410 until a condition, here referred to as “unlocking condition”, is met, in which case the state variable is unlocked. Locking a state variable in position error history state variable set 410 does not mean that the value of the state variable must remain constant. The value of the locked state variable may, and typically will, change over time as measurements are inputted to integrity estimator 40.
In one embodiment, the unlocking condition is met when a new delayed estimated position and associated delayed protection level set become available (i.e., available for processing at position-and-PL-time-propagator 50). In this case, the state variable(s) that was locked is unlocked, and the state variable or state variables corresponding to the epoch to which the new delayed estimated position and associated delayed protection level set relate is locked in position error history state variable set 410.
In one embodiment, at each estimation epoch, the state variable of position error history state variable set 410 that, among the state variables that are not locked, corresponds to the oldest epoch is removed from position error history state variable set 410. An example of implementation of this process is schematically illustrated by
At the next estimation epoch, as schematically illustrated by
At the next estimation epoch, as schematically illustrated by
A new delayed estimated position and associated delayed protection level set then become available. They correspond to epoch t(5), as illustrated by the wording “new delayed precise position and PL” and the accompanying arrow in
At the next estimation epoch, as schematically illustrated by
At the next estimation epoch, as schematically illustrated by
The embodiment illustrated by
In one embodiment, position error history state variable set 410 has a maximum size. In other words, the buffer, i.e. the memory, storing position error history state variable set 410 may have a maximum size. The maximum size may correspond to an expected latency of the precise position, i.e. the NSS-based position. The expected latency of the NSS-based position may for example be equal to any one of 3, 5, 10, 20, and 30 seconds, so that the position error history state variable set's 410 maximum size may also correspond to any one of these values (considering a given sampling rate). The maximum size may also be adapted to cover the expected latency of the NSS-based position at one point in time, if the expected latency changes over time as estimated for example based on the arrival time of the delayed NSS-based position and considering the estimated sampling rate (see also
In some embodiments, a locking occurrence (i.e. locking, in position error history state variable set 410, the state variable or state variables corresponding to the epoch to which the delayed estimated position and associated delayed protection level set relate) takes place only in some instances when a new delayed estimated position and associated delayed protection level set become available. For example, as schematically illustrated in
The acceptance or rejection of a new delayed protection level set is performed by respectively accepting all PLs of the delayed protection level set together or rejecting all PLs of the delayed protection level set together. However, the acceptance criterion may be based on one PL component (e.g. the horizontal PL or the vertical PL) or a combination of PL components. This will be described now in more detail.
In one embodiment, a new delayed protection level set is determined to be smaller than a corresponding propagated delayed protection level set if a horizontal component of the new delayed protection level set is smaller than a horizontal component of the corresponding propagated delayed protection level set.
In another embodiment, a new delayed protection level set is determined to be smaller than a corresponding propagated delayed protection level set if a vertical component of the new delayed protection level set is smaller than a vertical component of the corresponding propagated delayed protection level set.
In yet another embodiment, a new delayed protection level set is determined to be smaller than a corresponding propagated delayed protection level set if a combination of a horizontal component and vertical component of the new delayed protection level set is smaller than a corresponding combination of a horizontal component and vertical component of the corresponding propagated delayed protection level set.
Let's now provide an example in a possible implementation. Let's say that the current epoch is k5 and the delayed PL in use relates to epoch k2. The time-propagated PL at the current epoch (if the method is performed in real-time; otherwise, this can be a reference epoch) may be determined as the sum of the delayed PL at epoch k2 and the delta position PL (calculated, for example, in corrected-delta-position-(value-and-PL)-generator 80) from epoch k2 to epoch k5. Then, at epoch k6, a new delayed PL relating to epoch k4 is received. In order to decide whether this new delayed PL should replace the old one, the new delayed PL is compared against the PL computed (e.g., by corrected-delta-position-(value-and-PL)-generator 80) when the current time was epoch k4 (i.e., the sum of delayed PL at epoch k2 and delta position PL from epoch k2 to epoch k4). The new delayed PL is accepted if its value is smaller than the propagated PL at epoch k4. In that case, the PL at the current epoch k6 will be equal to the sum of the delayed PL at epoch k4 and the delta position PL from epoch k4 to epoch k6.
In one embodiment, the method further comprises operating a process, here referred to as “inertial navigator” 30. Inertial navigator 30 receives acceleration and angular velocity measurements from IMU 20, and propagates, in time (and typically at a high rate, such as for example 200 Hz), position, velocity and attitude data based on the acceleration and angular velocity measurements. In other words, the IMU data drives inertial navigator 30, meaning that inertial navigator 30 uses IMU data to propagate in time position, velocity (e.g., at the IMU center of navigation), and attitude. These quantities will generally drift over time as IMU errors accumulate (due to the integration of the IMU data). Other measurements such as the timely NSS observations and the optional data from additional sensor(s) (as described below with reference to
In one embodiment, as schematically illustrated by
In one embodiment, as schematically illustrated by
In one embodiment, as also schematically illustrated by
In the two-estimator method schematically illustrated in
In one embodiment, the method may be so that integrity estimator 40 does not directly receive information from navigation estimator 90. In such a case, navigation estimator 90 may be only or primarily used for computing corrections for inertial navigator 30. Alternatively, integrity estimator 40 may directly receive information (e.g., error states) from navigation estimator 90.
In one embodiment, as schematically illustrated by
In one embodiment, as also schematically illustrated by
The use of data from further sensor(s) 100 is advantageous in terms of availability of the position solution and of the PLs. For example, if a vehicle operating the method enters a tunnel, the timely NSS observations may no longer be available but the data from further sensor(s) 100 would still be available to contribute to the computation of the delta positions used for the propagation in time of delayed PLs.
As an alternative or in addition to the multi-sensor data from the further sensor(s) 100, the knowledge about motion constraints may also help during GNSS signal interruptions. For example, the rear axle lateral and vertical velocities of front-wheel steered vehicles are zero so that this information may be used in integrity estimator 40 (as a measurement update) to constrain the vehicle motion and therefore to also constrain the delta position variance so that the propagated PLs do not increase very fast. Constraining the delta positions improves their accuracy. If PLs are propagated with unconstrained delta positions, the PLs are propagated with larger delta position variances and thus may get closer to the alert limit faster.
In one embodiment, the method may be so that navigation estimator 90 and integrity estimator 40 use different input measurements, since navigation estimator 90 and integrity estimator 40 may be, at least to a certain extent, independent from each other. That is, navigation estimator 90 may compute values of its state variables further based on data from a first set of further sensor(s) 100 and integrity estimator 40 may compute values of its state variables further based on data from a second set of further sensor(s) 100, the first set being different or partially different from the second set. For example, each estimator may receive data from two different receivers and/or antennas. As another example, if data from a specific further sensor 100 is not considered to be entirely reliable, the data therefrom may be used in navigation estimator 90 but not in integrity estimator 40 so as to protect integrity estimator 40 from potential failures of further sensor 100.
In one embodiment, the method further comprises projecting the generated time-propagated protection level set to another point, which is a point of a platform rigidly attached to NSS receiver 10. This operation may for example be performed by an element labelled as “projection to user point” 110 in
In particular, knowledge about the NSS receiver's 10 attitude (which may form part of the time-propagated, IMU-based data from inertial navigator 30) allows projecting the time-propagated PLs from an APC of NSS receiver 10 to any point in a platform rigidly attached to NSS receiver 10. The projection may for example be implemented as described in section B.2 below.
In one embodiment, the method further comprises transferring the generated time-propagated protection level set to a position output of inertial navigator 30, i.e. a position output for which there is not necessarily any available PL. An advantage of doing so may be explained as follows: The inertial navigator 30's position may be corrected with corrections from navigation estimator 90. As mentioned before, navigator estimator 90 is configured for performance so that its corrections are more precise than the integrity estimator's 40 corrections. Therefore, the inertial navigator's 30 positions with corrections from navigator estimation 90 are more precise than the positions derived in integrity estimator 40 but less robust. Integrity estimator 40 can be more conservative when applying measurements, e.g., by doing delta-phase with longer anchors and by inflating measurement sigmas.
This transfer operation may for example be performed by an element which is here referred to “PL transfer” 120, as schematically illustrated by
The transfer may for example be implemented as described in section B.4 below.
Before discussing further embodiments of the invention, let us now further briefly explain, in section A below, the context and some underlying considerations in which some embodiments of the invention have been developed, for a better understanding thereof.
A. Introduction to the Context and Some Underlying Considerations in which Some Embodiments of the Invention have been Developed
Traditional RAIM methods for determining GNSS PLs are well established for aviation applications (see also ref. [5], paragraphs [0083] to [0088]) but are typically not suitable for harsh environments due to their underlying assumptions (e.g., only a single fault per epoch, or high redundancy of measurements) (see also ref. [5], paragraphs [0094] and [0095]). Advances in autonomous applications have increased the demand for high GNSS position integrity. Ref. [5] relates to a technique for estimating GNSS PLs from the distribution of the ambiguity integer candidates, as discussed in the above “Background” section. The technique disclosed in ref. [5] has proved reliable while maximizing availability by keeping PLs low. However, the addition of an INS (and other multi-sensor data) is useful to bridge GNSS PL gaps during signal tracking interruptions. An INS also has the added benefit of making attitude available which allows PLs to be projected from an APC to any point in the NSS receiver's platform.
The main challenge when computing PLs for GNSS/INS integrated systems is to handle their low pass-filter nature. That is, a position offset may persist for a long time in the GNSS/INS integrated output position due to the correlations that build up between filter states.
With this in mind and given that GNSS PLs produced for example by the method of ref. [5] are subject to latency, the inventors have found that time-propagating to the current epoch the latent GNSS position PLs with multi-sensor is simpler than computing PLs directly from a conventional GNSS/INS tightly coupled system (i.e., with code and phase measurements) and still improves position availability. Treating GNSS and multi-sensor PL computation (almost) separately generally improves robustness since GNSS data are predominantly affected by high frequency noise which means that GNSS positions are less likely to build up long-term drifts.
In view of the considerations laid out in above section A, let us now describe further embodiments of the invention, together with considerations regarding how these embodiments may be implemented, for example, by software, hardware, firmware, or a combination of any of software, hardware, and firmware.
A two multi-sensor estimator architecture for PL computation according to an embodiment of the invention is schematically illustrated in
As in conventional GNSS/INS integrated systems, IMU data is used by an inertial navigator 30 to propagate position, velocity and attitude at a high rate. With this propagated information, time and measurement update models are generated at a lower rate (typically 1 Hz) and sent to both navigation estimator (“Nav Estimator”) 90 and integrity module 60, which comprises integrity estimator 40 (not illustrated in
After all filter operations are finalized, inertial navigator state corrections are generated from the navigation estimator error states and transmitted to inertial navigator 30. To complete the integration loop, inertial navigator 30 sends the applied corrections back to the estimators which are then used for state control resets. Even though integrity estimator 40 does not provide any corrections, time and measurement models are generated from information provided by inertial navigator 30. This means that every time the inertial navigator navigation state gets corrected, this needs to be accounted for by shifting the integrity estimator states with applied corrections (in this case sent by navigation estimator 90). This expressed in
At every estimation epoch, error states (the above-discussed position error history state variable set 410) from integrity estimator 40 are used together with buffered inertial navigator information to compute delta positions to propagate the delayed GNSS PLs to the current epoch. The propagated PLs may then be projected to a user point and transferred to the high-rate output navigation solution.
B.1 Delayed Precise Position PL Propagation with Multi-Sensor Delta Positions
In the embodiment illustrated by
Further, every time a new delayed precise position becomes available, the correspondent APC position error history state is locked (i.e., it cannot be excluded even if it is the oldest state) and used to compute multi-sensor delta positions (see
Furthermore, the PLs from a new delayed precise position are always tested against their propagated counterparts, meaning that a new position is rejected if its PL is larger than the a priori PL computed with an older delayed precise position. This allows keeping PLs low in more challenging environments for GNSS signal tracking (e.g., highway overpasses).
The delta position from a history state to the current epoch at the APC may be computed as follows:
where:
where HINS(k) is the design matrix that projects the INS position errors from IMU to APC, and HAPC(k) is the design matrix that couples the previous history state correspondent to the delayed precise position into Δr(k)g. Note that the values of a and b depend on which history state is locked.
The delta position covariance matrix PΔr(k-m, k) may be calculated from the integrity estimator a posteriori covariance matrix P(k) using HΔr(k) from equation (2):
Assuming Gaussian distributed errors, the delta position PL can be retrieved by scaling √{square root over (PΔr(k-m,k))} with the standard normal distribution critical value for the required integrity risk (c):
The propagated HPL(k) and VPL(k) at the APC may then be computed as:
As shown in section B.1, PLs are valid at the APC but can be projected to any point in the platform because INS attitude is available. The delta position covariance between two points only depends on attitude errors and the length of the lever arm. This can be realized when looking at the geometric difference between the position of two points a and b in an arbitrary frame y:
where i is a third point in the platform, Cxy is the rotation matrix from arbitrary frame x to y, and labx is the lever arm between points a and b resolved in the x-frame. Perturbing equation (6) (note: the term “perturbing” comes from “perturbation analysis” which is used to find approximate solutions of nonlinear equations) and assuming small-angle errors gives the following linear error equation:
where:
From equation (4), the PL of the distance between points a and b can be written as:
The HPL and VPL at the user-point is determined by combining equations (7) and (9):
where HPLΔr
B.3 Delta Phase (i.e., Time-Differenced Carrier Phase) Updates with Longer Anchors
In one embodiment, a component of the integrity estimation process is the measurement update with delta phase observations which allows keeping the INS aligned. As previously mentioned, the strategy employed in some embodiments of the invention is to guarantee that the delta position probability distribution stays Gaussian. Therefore, the delta phase observations used in integrity module 60 may have longer delta-phase intervals (typically larger than 5 seconds) to better detect and remove outliers due to phase drifts (the term “delta-phase interval” is as defined in ref. [22], p. 9 lines 23-24). Even though the delta-phase intervals used are longer, the delta phase measurement update rate is fixed at 1 Hz in order to keep delta position drifts low. This would not be possible if the measurement update rate matched the delta-phase interval mainly for low cost IMUs where errors build up quickly when no measurements are available.
The delta phase measurement model is constructed using the available previous position history states. This means that the delta-phase interval will vary depending on the sampling rate of the precise position (see
In one embodiment, the user-point PL computed in integrity module 60 is transferred from the propagated position to the position output by inertial navigator 30. As described above, inertial navigator 30 may be corrected with navigation estimator's 90 states which are different from the states in integrity estimator 40 (see for example
The final PL computation at the user-point is:
where:
An inertial navigation system (INS) is a navigation instrument that computes its navigation solution by propagating Newton's equations of motion using as inputs measured specific forces or incremental velocities from a triad of accelerometers and measured angular rates or incremental angles from a triad of gyros. A terrestrial INS is designed to navigate on the earth where it is subjected to gravity and earth rate. A celestial INS is designed to navigate in space where it is subjected to smaller gravitational forces from multiple celestial bodies. The present disclosure is concerned only with a terrestrial INS. The qualifier “terrestrial” is hereafter implied but not cited explicitly.
An INS can navigate with a specified accuracy after an initialization of the inertial navigator mechanization during which it determines its initial position, initial velocity and initial attitude or initial orientation. The term “alignment” is used to describe this initialization and any ongoing corrections of the inertial navigator mechanization. A free-inertial INS performs an initial alignment and then propagates its navigation solution with no further corrections. See ref. [11] for an overview of an INS. See ref. [12], [14], [15] for descriptions of inertial navigator equations and algorithms.
An aided INS (AINS) undergoes ongoing corrections to its inertial navigator mechanization to constrain the growth in inertial navigation errors. The AINS uses an error estimator to estimate INS errors and some means of INS error control to correct the INS errors. A so-called “closed-loop AINS” uses the estimated INS errors from the error estimator to correct the inertial navigator mechanization integrators. This causes the INS alignment to be continuously corrected, and as such is a method for achieving mobile alignment.
The aiding sensors 5 (in
The error estimator 4 (in
Ref. [13] provides a relatively comprehensive treatment of Kalman filtering. It also contains the AINS as an example application. Ref. [14] provides a detailed analysis of different INS error models that may be used in an AINS Kalman filter.
The error controller 3 (in
The technology of aided inertial navigation originated in the late 1960s and found application within military navigation systems. Since then, much research has been conducted and much literature has been generated on the subject. An example of a book on the subject is ref. [11]. The equivalent of
Integrity estimator operating unit 1010 is configured for operating an estimation process, here referred to as “integrity estimator” 40, as described above. Namely, integrity estimator 40 uses state variables and computes values of its state variables at least based on: (i) data, here referred to as “time-propagated, IMU-based data”, derived from data from an IMU 20 suitable for estimating a change in position of NSS receiver 10, and (ii) timely NSS observations made by NSS receiver 10. Integrity estimator 40 uses, among other state variables, a plurality of state variables 410, here referred to as “position error history state variable set” 410, representing estimated errors in a position of NSS receiver 10 at a plurality of epochs preceding an estimation epoch.
Furthermore, time-propagated, NSS-based estimated position and time-propagated protection level set generating unit 1020 is configured for generating, for the estimation epoch, an estimated position, here referred to as “time-propagated, NSS-based estimated position”, of NSS receiver 10 and at least one protection level, here referred to as “time-propagated protection level set”, associated with the time-propagated, NSS-based estimated position, at least based on: (a) position error history state variable set 410; (b) an estimated position, here referred to as the “IMU-based estimated position”, of NSS receiver 10 computed based on data from IMU 20; (c) a delayed estimated position that is applicable to an epoch preceding the estimation epoch and that has been computed based on NSS observations made by NSS receiver 10; and (d) at least one delayed protection level, here referred to as “delayed protection level set”, associated with the delayed estimated position.
In one embodiment, a vehicle comprises a system 1000 as described above. The vehicle may for example be an autonomous vehicle such as a self-driving vehicle, a driverless vehicle, a robotic vehicle, a highly automated vehicle, a partially automated vehicle, an aircraft, or an unmanned aerial vehicle. Alternatively or additionally, the vehicle may for example be at least one of (the list of possibilities is not meant to be exhaustive): a motor vehicle, a car, a truck, a bus, a train, a motorcycle, a tractor, an agricultural equipment, an agricultural tractor, a combine harvester, a crop sprayer, a forestry equipment, a construction equipment, a grader, and a train. Exemplary applications may include machine guidance, construction work, operation of unmanned aerial vehicles (UAV), also known as drones, and operation of unmanned surface vehicles/vessels (USV).
Any of the above-described methods and their embodiments may be implemented, at least partially, by means of a computer program or a set of computer programs. The computer program(s) may be loaded on an apparatus, such as for example an NSS receiver (running on a rover station, on a moving reference station, or within a vehicle) or a server (which may comprise one or a plurality of computers). Therefore, the invention also relates, in some embodiments and/or aspects, to a computer program or set of computer programs, which, when carried out on an apparatus as described above, such as for example an NSS receiver (running on a rover station, on a moving reference station, or within a vehicle) or a server, carries out any one of the above-described methods and their embodiments.
The invention also relates, in some embodiments, to a computer-readable medium or a computer-program product including the above-mentioned computer program. The computer-readable medium or computer-program product may for instance be a magnetic tape, an optical memory disk, a magnetic disk, a magneto-optical disk, an SSD, a CD-ROM, a DVD, a CD, a flash memory unit, or the like, wherein the computer program is permanently or temporarily stored. In some embodiments, a computer-readable medium (or to a computer-program product) has computer-executable instructions for carrying out any one of the methods of the invention.
In one embodiment, a computer program as claimed may be delivered to the field as a computer program product, for example through a firmware or software update to be installed on receivers already in the field. This applies to each of the above-described methods and apparatuses.
As mentioned above, a NSS receiver comprises one or more antennas configured to receive NSS signals at the frequencies broadcasted by the NSS satellites, and a NSS receiver may further comprise processor units, one or a plurality of accurate clocks (such as crystal oscillators), one or a plurality of central processing units (CPU), one or a plurality of memory units (RAM, ROM, flash memory, or the like), and a display for displaying position information to a user.
Where the terms “integrity estimator operating unit”, “time-propagated, NSS-based estimated position and time-propagated protection level set generating unit”, and the like are used herein as units (or sub-units) of an apparatus (such as an NSS receiver), no restriction is made regarding how distributed the constituent parts of a unit (or sub-unit) may be. That is, the constituent parts of a unit (or sub-unit) may be distributed in different software, firmware, or hardware components or devices for bringing about the intended function. Further, the units may be gathered together for performing their functions by means of a combined, single unit (or sub-unit).
For example, in one embodiment, navigation estimator 90, integrity estimator 40, and position-and-PL-time-propagator 50 are implemented using a single piece of software, a single piece of hardware, and/or as a single piece of firmware. In another embodiment, NSS receiver 10, navigation estimator 90, integrity estimator 40, and position-and-PL-time-propagator 50 are implemented using a single piece of software, a single piece of hardware, and/or as a single piece of firmware.
The above-mentioned units and sub-units may be implemented using hardware, software, firmware, any combination of hardware, software, and firmware, pre-programmed ASICs (application-specific integrated circuits), etc. A unit may include a central processing unit (CPU), a storage unit, input/output (I/O) units, network connection devices, etc.
Although the present invention has been described on the basis of detailed examples, the detailed examples only serve to provide the skilled person with a better understanding and are not intended to limit the scope of the invention. The scope of the invention is defined by the appended claims.
| Number | Date | Country | Kind |
|---|---|---|---|
| 23210075.0 | Nov 2023 | EP | regional |