METHOD FOR LOCATING A NAVIGATION UNIT
20240183933 ยท 2024-06-06
Assignee
Inventors
Cpc classification
G01S19/393
PHYSICS
G01S5/145
PHYSICS
G01S5/0294
PHYSICS
G01S19/426
PHYSICS
G01S5/30
PHYSICS
International classification
Abstract
A method includes establishing, for a given time, measurement biases allowing an error affecting raw measurements of pseudoranges separating a navigation unit from at least three beacons to be decreased, and estimating an external position of the navigation unit at the given time based on: beacon positions, corrected pseudorange measurements computed for the given time using established measurement biases, and a preceding external position of the navigation unit estimated for a time preceding the given time. The measurement biases are established without taking into account the external position of the navigation unit.
Claims
1. A method for locating a navigation unit in an environment containing beacons transmitting messages, the method comprising execution of the following steps for each time t.sub.k of a temporal sequence of times {t.sub.0; . . . , t.sub.?1; t.sub.k; . . . }; (a) receiving messages transmitted by at least three beacons, (b) extracting raw measurements of pseudoranges separating the navigation unit from each of the at least three beacons based on times of receipt of the messages as measured by the navigation unit and on a speed of propagation of the messages through space, (c) estimating an internal position of the navigation unit at the time t.sub.k based on the raw measurements extracted for the time t.sub.k,i on a preceding internal position of the navigation unit estimated at the time t.sub.k?1 and on positions of the beacons, (d) for a plurality of beacons, establishing a measurement bias for the time t.sub.k that, when subtracted from the raw measurement extracted based on the time of receipt of the message transmitted by th beacon, allows an error affecting i the raw measurement to be decreased, the measurement bias being established based on a difference between: (1) computed pseudorange separating the beacon from the navigation unit, the computed pseudorange being computed based on a position of the beacon and on an internal position of the navigation unit estimated for the time t.sub.k, and (2) a measured pseudorange separating the beacon from the navigation unit, the measured pseudorange being computed based on the raw pseudorange measurement extracted for the beacon for the time t.sub.k and without taking into account the internal position of the navigation unit, (e) for each beacon for which a measurement bias was established for the time t.sub.k, computing a corrected measurement of the pseudorange at the time t.sub.k by adding the measurement bias established for the beacon to a raw measurement of the pseudorange for the beacon extracted at the time t.sub.k, and (f) estimating an external position of the navigation unit at the time t.sub.k based on: (i) positions of the beacons for which a corrected measurement of the pseudorange at the time t.sub.k was computed, (ii) corrected pseudorange measurements computed for the time t.sub.k, and (iii) the preceding external position of the navigation unit estimated for the preceding time t.sub.k?1, wherein steps (b), (c) and (d) are performed without taking into account the external position of the navigation unit.
2. The method according to claim 1, wherein: the method comprises, after step (b) and before step (c), selecting, depending on the external position of the navigation unit at the preceding time t.sub.k?1 a limited number of raw measurements extracted from all the raw measurements extracted in step (b) for the time t.sub.k, and in steps (c) and (d), only the raw measurements thus selected are used, and the raw measurements not selected are ignored.
3. The method according to claim 1, wherein each measurement bias for the time t.sub.k is also established by minimizing a difference between the measurement bias for the time t.sub.k and the measurement bias established for the preceding time t.sub.k.
4. The method according to claim 1, wherein each beacon is a satellite in orbit around the Earth.
5. The method according to claim 4, wherein after step (b) and before step (c), the method comprises a step of pre-correcting the extracted raw measurements, the pre-correcting step comprising, for each beacon having transmitted a message based on which a pseudorange is extracted: establishing an error caused by propagation of the message of the beacon through the ionosphere or the troposphere, a predetermined model parametrized by the internal position of the navigation unit estimated for the preceding time t.sub.k?1 being used, and subtracting the established error from the extracted raw measurement to obtain a pre-corrected raw measurement, and in steps (c) and (d), using the pre-corrected raw measurements.
6. A non-transitory data storage medium that is readable by a microprocessor, comprising instructions that are executable by the microprocessor, wherein the medium comprises non-transitory instructions for executing a locating method according to claim 1, when the instructions are executed by the microprocessor.
7. A navigation unit configured to move through an environment containing beacons transmitting messages, the navigation unit comprising: a microprocessor configured to execute the following steps for each time t.sub.k of a temporal sequence of times {t.sub.0; . . . ; t.sub.k?1; t.sub.k; . . . }; (a) receiving messages transmitted by at least three beacons, (b) extracting raw measurements of pseudoranges separating the navigation unit from each of the at least three beacons based on times of receipt of the messages as measured by the navigation unit and on a speed of propagation of the messages through space, (c) estimating an internal position of the navigation unit at the time t.sub.k based on the raw measurements extracted for the time t.sub.k, on a preceding internal position of the navigation unit estimated at the time t.sub.k?1 and on positions of the beacons, (d) for a plurality of beacons, establishing a measurement bias for the time t.sub.k that, when subtracted from the raw measurement extracted based on the time of receipt of the message transmitted by the beacon, allows an error affecting the raw measurement to be decreased, the measurement bias being established based on a difference between: (1) a computed pseudorange separating the beacon from the navigation unit, the computed pseudorange being computed based on a position of the beacon and on an internal position of the navigation unit estimated for the time t.sub.k, and (2) a measured pseudorange separating the beacon from the navigation unit, the measured pseudorange being computed based on the raw pseudorange measurement extracted for the beacon for the time t.sub.k and without taking into account the internal position of the navigation unit, (e) for each beacon for which a measurement bias was established for the time t.sub.k, computing a corrected measurement of the pseudorange at the time t.sub.k by adding the measurement bias established for the beacon to a raw measurement of the pseudorange for t beacon extracted at the time t.sub.k, (f) estimating an external position of the navigation unit at the time t.sub.k based on: (i) positions of the beacons for which a corrected measurement of the pseudorange at the time t.sub.k was computed, (ii) corrected pseudorange measurements computed for the time t.sub.k, (iii) the preceding external position of the navigation unit estimated for the preceding time t.sub.k?1; wherein steps (b), (c), and (d) are performed without taking into account the external position of the navigation unit.
Description
[0017] The invention will be better understood on reading the following description, which is given solely by way of non-limiting example, with reference to the drawings, in which:
[0018]
[0019]
[0020]
[0021]
[0022]
[0023] In these figures, the same references have been used to designate elements that are the same.
[0024] In the remainder of this description, features and functions well known to those skilled in the art are not described in detail.
[0025] In this description, detailed examples of embodiments are first described in Section I with reference to the figures. Next, in the following section, Section II, variants of these embodiments are introduced. Lastly, the advantages of the various embodiments are presented in Section III.
Section I: Examples of Embodiments
[0026] Below, a detailed embodiment of the invention is described in the particular context of location of a vehicle on the Earth's surface. In this particular context, the beacons transmitting messages based on which the vehicle may be located are satellites in orbit around the Earth.
[0027]
[0028] The vehicle 2 is equipped with a geolocation system 6 for locating this vehicle. This system 6 is able to determine the position, orientation and velocity of the vehicle 2 in a terrestrial frame of reference R.sub.T. Here, the terrestrial frame of reference R.sub.T is fixed without any degree of freedom to the Earth. The frame of reference R.sub.T comprises three axes, which are typically orthogonal to one another. A moving frame of reference R.sub.b is also fixed with no degree of freedom to the vehicle 2. This frame of reference R.sub.b comprises three axes that are orthogonal to one another, denoted x.sub.b, y.sub.b and z.sub.b, respectively.
[0029] Here, the position of the vehicle 2 in the frame of reference R.sub.T is expressed by the latitude L, the longitude A and the altitude h of the origin of the frame of reference R.sub.b.
[0030] The orientation of the vehicle 2 is expressed by the yaw angle ?, the pitch angle ? and the roll angle ? of the frame of reference R.sub.b with respect to the frame of reference R.sub.T.
[0031] The position, orientation and velocity determined by the system 6 are delivered to an output 7.
[0032] Typically, the vehicle 2 comprises a control unit 8 for guiding or assisting in guiding the vehicle 2 to a predefined destination. The unit 8 is connected to the output 7. The control unit 8 may be manual and/or automatic. In the case of a manual control unit, the determined position, orientation and velocity are transmitted to a human-machine interface with a view to assisting a human being in controlling the propulsion means 4. In the case of an automatic control unit, the determined position, orientation and velocity are automatically converted into commands for controlling the propulsion means 4, then automatically transmitted to these propulsion means 4.
[0033] The system 6 comprises a navigation unit 10 and an inertial measurement unit 12.
[0034] The navigation unit 10 is capable of determining its position in the frame of reference R.sub.T based on messages transmitted by the satellites. For example, here, the satellites are satellites of the GPS constellation (GPS standing for Global Positioning System). In this context, the unit 10 is known as a GNSS unit (GNSS being the acronym of global navigation satellite system) and corresponds to the user segment of this GNSS. Based on the satellite signals that it receives, the unit 10 generates signals representative of the position and velocity of the vehicle in the frame of reference R.sub.T.
[0035] The unit 12 is known as an IMU (acronym of inertial measurement unit). The unit 12 notably comprises a triaxial accelerometer 14 and a triaxial gyrometer 16. By virtue of these sensors, the unit 12 is capable of measuring the variation in the orientation of the vehicle 2.
[0036] To determine the position, orientation and velocity of the vehicle 2 based on the measurements of the units 10 and 12, the system 6 comprises a programmable electronic computer 20. This computer 20 is able to acquire the measurements of the units 10 and 12 and, based on these measurements, to determine the position, orientation and velocity of the vehicle 2 in the frame of reference R.sub.T. The computer 20 comprises a microprocessor 22 and a memory 24.
[0037] The memory 24 notably comprises the instructions of a software module 26 able to determine the position, orientation and velocity of the vehicle 2 based on the measurements of the units 10 and 12 when it is executed by the microprocessor 22. The module 26 notably implements a fusion algorithm that establishes, based on a preceding estimation of the position, orientation and velocity of the vehicle 2 and on new measurements of the units 10 and 12 acquired since this preceding estimation, a new estimation of the position, orientation and velocity of the vehicle 2. The fusion algorithm also establishes margins of error in each new estimation.
[0038] Such fusion algorithms are well known to those skilled in the art. For example, a presentation of the prior art on the matter may be found in the following thesis: S. Godha Performance Evaluation of Low Cost MEMS-Based IMU Integrated With GPS for Land Vehicle Navigation Application, PhD report, 2006. Below, this thesis is designated by the expression Godha2006. Typically, this fusion algorithm implements one or more Kalman filters. Here, the module 26 employs a closed-loop integration scheme or closed-loop approach.
[0039]
[0044] The baseband processor 34 acquires the signals processed by the RF front end 32, demodulates them and extracts from the demodulated signals the following data: [0045] raw measurements Mb relative to these signals, and [0046] messages Mn transmitted by the satellites.
[0047] The messages transmitted by the satellites are known as GNSS messages.
[0048] Typically, the raw measurements Mb contain, for each satellite that transmitted a GNSS signal received by the unit 10, at least one raw measurement Mb.sub.k,i of the pseudorange separating the unit 10 from this satellite. For example, this raw pseudorange measurement Mb.sub.k,i is here computed using the following relationship: Mb.sub.k,i=(tr.sub.k,i?te.sub.k,i)?c, where: [0049] the index i is a satellite identifier, [0050] the index k is an identifier of a time t.sub.k defined below, [0051] Mb.sub.k,i is the raw measurement of the pseudorange between the unit 10 and the satellite identified by the index i, [0052] tr.sub.k,i is the time of receipt of the message as measured by the baseband processor 34, [0053] te.sub.k,i is the time of transmission of the message by satellite i, this time te.sub.k,i here being contained in the message transmitted by the satellite, [0054] c is the speed of light, and [0055] x is the symbol representing the operation of multiplication.
[0056] The raw measurements may potentially contain other measurements for each satellite, such as: [0057] a Doppler or frequency-shift measurement, [0058] a measurement of the phase of the carrier wave of the transmitted GNSS signal, and [0059] the time of receipt of the transmitted GNSS signal.
[0060] These other measurements may be used to estimate, in addition to the position of the unit 10, other physical quantities such as the velocity or clock error of the unit 10. Below, when physical quantities other than the position of the unit 10 are estimated, these other physical quantities are considered to have been estimated in a conventional manner. Thus, below, only processing of the raw pseudorange measurements is described in detail.
[0061] The messages Mn contain, for each satellite that transmitted a GNSS signal received by the unit 10: ephemerides or parameters allowing the positions and velocities of the satellite to be estimated. The messages Mn also potentially contain, for each satellite, other data such as: [0062] parameters of corrections of satellite clock errors, [0063] elements characterizing the state of the satellite and the state of its measurement, [0064] parameters of a model for estimating propagation times through the ionosphere and the troposphere.
[0065] The navigation processor 36 typically comprises a microprocessor 38 and a memory 40. The memory 40 contains the instructions of a locating software package 42 which locates the unit 10 based on the signals transmitted by the satellites when it is executed by the microprocessor 38. In this embodiment, locating the unit 10 means computing the position, velocity and clock error of the unit 10, i.e. computing a PVT (position, velocity, time) for the unit 10.
[0066] More precisely, the software package 42 updates the PVT of the unit 10 at each time t.sub.k of a temporal sequence of times {t.sub.0; . . . ; t.sub.k?1; t.sub.k; . . . }. For example, this temporal sequence is a periodic sequence of times t.sub.k and the period between two successive times t.sub.k is equal to the sampling period of the GNSS signals. Below, the PVT delivered by the unit 10 to the computer 20 at time t.sub.k is denoted PVT.sub.k. In this text, the index k is also used to identify the new measurements, the new messages and the new physical quantities used to estimate PVT.sub.k. Thus, the new raw measurements Mb and the new messages Mn obtained from the GNSS signal of a satellite and used to estimate PVT.sub.k are denoted Mb.sub.k,i and Mn.sub.k,i, respectively, where the index i is an identifier of this satellite. To estimate PVT.sub.k,i the measurements Mb.sub.k,i and the messages Mn.sub.k,i of at least three, and in this embodiment at least four, satellites are used. In practice, the number of satellites from which GNSS messages are received by the unit 10 is often higher than five or eight. Thus, the index i is here an integer that varies from 1 to more than 4, 5 or 8.
[0067]
[0068] Many methods are known for estimating PVTs.sub.k,i based on the measurements Mb.sub.k,i and messages Mn.sub.k,i. For example, to start with, the transmission times of the GNSS signals are estimated based on: [0069] measurement of the times of receipt tr.sub.k of these GNSS signals by the unit 10, and [0070] measurement of the pseudoranges between the satellites and the antenna 30.
[0071] Subsequently, the positions, velocities and clock errors of the satellites are estimated by executing an algorithm that uses parameters delivered in the messages Mn.sub.k,i. For example, this algorithm is one of those provided in the following articles: [0072] Global navigation satellite system Glonass ICD Navigational radiosignal in bands L1, L2, Edition 5.1, Russian Institute of Space Device Engineering, 2008, pages 41-49; [0073] Navstar GPS Space Segment/Navigation User Interfaces, IS-GPS-200, Revision D, ARINC, March 2006, pages 83-98.
[0074] Next, the software package 42 implements: [0075] a process 52 that establishes measurement biases c2.sub.k,i that are practically independent of the preceding PVT, i.e. PVT.sub.k?1, and [0076] a process 54 that estimates PVT.sub.k while using the measurement biases c2.sub.k,i to correct the raw measurements Mb.sub.k,i and thus improve the precision of PVT.sub.k.
[0077] A measurement bias is a value that, when it is subtracted from a raw measurement, allows the error affecting this raw measurement to be decreased.
[0078] The process 52 receives as input the measurements Mb.sub.k,i, the data contained in the messages Mn.sub.k,i and the PVTs.sub.k,i estimated by the module 50. This process 52 delivers as output the biases c2.sub.k,i established. This process 52 contains three modules that are executed one after another: a module 56 for correcting and selecting measurements, a module 58 for estimating an internal position P1.sub.k and a module 60 for estimating biases c2.sub.k,i.
[0079] The process 54 of estimating PVT.sub.k has as input data: the PVTs.sub.k,i, the messages Mn.sub.k,i, the raw measurements Mb.sub.k,i and the biases c2.sub.k,i established by process 52. This process 54 is divided into two modules, which are executed one after the other: a module 62 for correcting and selecting the measurements Mb.sub.k,i, which delivers pre-corrected measurements Mc2.sub.k,i, and a module 64 for estimating an external PVT denoted PVT2.sub.k. The external PVT is delivered to the computer 20. Thus, PVT2.sub.k and PVT.sub.k are the same. Process 54 also comprises a subtractor 66 that subtracts the biases c2.sub.k,i from the pre-corrected measurements Mc2.sub.k,i delivered by module 62.
[0080] Examples of embodiment of the various modules of the software package 42 and the operation of the unit 10 will now be described with reference to the method of
[0081] For each time t.sub.k for which a new PVT.sub.k must be delivered to the computer 20, the unit 10 executes the following steps.
[0082] In a step 100, the RF front end 32 receives new GNSS signals transmitted by at least three satellites. These GNSS signals are qualified new in the sense that they are received after the GNSS signals used to estimate the preceding PVT, PVT.sub.k?1.
[0083] Typically, in step 100, the RF front end 32 receives the GNSS signals transmitted by more than four, and conventionally more than eight, satellites.
[0084] In a step 102, the baseband processor 34 extracts, for each of the satellites, from the received new GNSS signals, the raw measurements Mb.sub.k,i and the transmitted messages Mn.sub.k,i i.
[0085] Next, in a step 104, module 50 estimates new PVTs, which are denoted PVTs.sub.k,i, based on the measurements Mb.sub.k,i and on the received messages Mn.sub.k,i.
[0086] In a step 110, module 56 pre-corrects the measurements Mb.sub.k,i to obtain pre-corrected measurements Mc1.sub.k,i. Here, the pre-corrected measurements Mc1.sub.k,i are obtained based on the measurements Mb.sub.k,i, on the data contained in the messages Mn.sub.k,i, on the PVTs.sub.k,i estimated by module 50 and on the preceding internal position P1.sub.k?1.
[0087] Typically, the pre-corrected measurements Mc1.sub.k,i are obtained using the following relationship:
Mc1.sub.k,i=Mb.sub.k,i?c1.sub.k,i [0088] where c1.sub.k,i is the correction estimated in this step.
[0089] The correction c1.sub.k,i is established using a predetermined model m1 of the perturbations introduced by the fact that the GNSS signals pass through the ionosphere and the troposphere. Here, this model m1 is parametrized by the PVTs.sub.k,i and the position P1.sub.k?1. For example, here the model m1 is the model defined in the following article: Collins, J. P., Assessment and Development of a Tropospheric Delay Model for Aircraft Users of the Global Positioning System, Technical Report No. 203, University of New Brunswick, 1999, pages 96-97. In this case, the correction c1.sub.k,i is computed using the following relationship, relationship (2):
[0097] Orthometric height h is estimated based on the position P1.sub.k?1 and a geodetic system.
[0098] In a step 112, module 56 selects pre-corrected measurements Mc1.sub.k,i, these being the only ones to be used in the rest of process 52. The aim of this selection is to eliminate measurements Mc1.sub.k,i considered to be excessively erroneous, in order to prevent them from being taken into account in the estimation of the position P1.sub.k. This allows precision to be improved. One detailed example of embodiment of this step 112 is described below with reference to
[0099] In a step 114, module 58 estimates the position P1.sub.k based on the pre-corrected measurements Mc1.sub.k,i selected in step 112, on the PVTs.sub.k,i estimated in step 104 and on the preceding position P1.sub.k?1.
[0100] Here, module 58 estimates the position P1.sub.k by minimizing the following cost function f.sub.1:
[0109] The value of each weight w.sub.i is predetermined depending, for example, on the elevation of satellite i, on the signal-to-noise ratio measured for satellite i, and on the rate at which the distance between the unit 10 and this satellite is varying. In one simplified variant, the weights w.sub.i are constant and, for example, all equal to one.
[0110] The values of the coordinates of the vector X that minimize the cost function f.sub.1 are estimated using a Gauss-Newton algorithm for example, or any other optimization algorithm such as, inter alia, Levenberg-Marquardt or gradient-descent algorithms, which are generally iterative algorithms. The initial values of the coordinates of the vector X are for example set equal to zero. Here, the search for values of the coordinates of the vector X that minimize the function f.sub.1 is stopped: [0111] after a predetermined number of iterations, for example comprised between two and twenty, or [0112] when the update of the vector X becomes small, i.e. when the norm of the difference between the vector X obtained at the end of the current iteration and the vector X obtained at the end of the preceding iteration drops below a predetermined threshold. This predetermined threshold is, for example, comprised between 10.sup.?4 and 10.sup.?10.
[0113] In a step 116, module 60 establishes the values of the biases c2.sub.k,i based on the pre-corrected measurements Mc1.sub.k,i, on the PVTs.sub.k,i and on the position P1.sub.k. Here, the measurement biases c2.sub.k,i are estimated by minimizing a cost function, denoted f.sub.2, dependent on the measurement biases c2.sub.k?1,i established for the preceding time t.sub.k?1.
[0114] For example, the cost function f.sub.2 is defined by the following relationship:
f.sub.2(X,Mc1.sub.k,iP1.sub.k,c1.sub.k?1,i)=?r(Mc1.sub.k,P1.sub.k)?X?.sub.R.sub.
[0118] The function r(Mc1.sub.k,i P1.sub.k) is a vector of measurement residues between Mc1.sub.k and the measurements estimated depending on P1.sub.k. The i-th component r.sub.i of the vector of residues is defined by the following relationship:
[0119] In this text, the symbol ?A?.sub.R.sub.
?A?.sub.R.sub.
[0121] The matrix R.sub.c is the covariance matrix of the residues of the vector r(Mc1.sub.k,i P1.sub.k) For example, here, the matrix R.sub.c is diagonal and its elements are all equal to 25 m.sup.2.
[0122] The matrix P.sub.c,k is the covariance matrix of the biases c2.sub.k,i. It is updated for each time t.sub.k according to the following relationship:
P.sub.c,k=(R.sub.c,k?1.sup.?1+R.sub.c.sup.?1).sup.?1
[0123] Once the biases c2.sub.k,i have been established, execution of process 52 terminates and execution of process 54 begins.
[0124] In a step 118, module 62 pre-corrects the measurements Mb.sub.k,i to obtain second pre-corrected measurements Mc2.sub.k,i. Here, the pre-corrected measurements Mc2.sub.k,i are obtained based on the measurements Mb.sub.k,i, on the data contained in the messages Mn.sub.k,i, on the PVTs.sub.k,i estimated by module 50 and on the preceding external PVT2, PVT2.sub.k?1. Here, step 118 is identical to step 110 except that the position P2.sub.k?1 contained in PVT2.sub.k?1 is used instead of the position P1.sub.k?1.
[0125] Once steps 114 and 118 have terminated, in a step 120, corrected measurements Mc3.sub.k,i are computed using the following relationship:
Mc3.sub.k,i=Mc2.sub.k,i?c2.sub.k,i
[0126] Next, in a step 122, module 64 estimates PVT2.sub.k based on the PVTs of the satellites, i.e. on the PVTs.sub.k,i, on the corrected measurements Mc3.sub.k,i and on the preceding PVT2, i.e. on PVT2.sub.k?1. In this example of embodiment, PVT2.sub.k is estimated by minimizing the following cost function f.sub.3:
f.sub.3(X,Mc3.sub.k,i,PVTs.sub.k,i,PVTs.sub.k?1,i)=?Mc3.sub.k?h(X)?.sub.R.sub.
h.sub.i(X)=?{square root over ((x?xs.sub.k,i).sup.2+(y?ys.sub.k,i).sup.2+(z?zs.sub.k,i).sup.2)}+x.sub.t [0134] Mc3.sub.k is the vector the i-th component of which is Mc3.sub.k,i, [0135] PVT2.sub.k?1 is the vector PVT2.sub.k estimated for time t.sub.k?1, [0136] R.sub.Mc3 is the covariance matrix of the measurements Mc3.sub.k,i, it is diagonal and each diagonal element is, here, set to 25 m.sup.2 [0137] f is the function defined by the following relationship:
P.sub.PVT2=FP.sub.PVT2,k?1F.sup.T+Q [0143] where: [0144] P.sub.PVT2,k?1 is the covariance matrix of the preceding PVT2, PVT2.sub.k?1, and [0145] Q is a positive symmetric matrix the values of which are given by the following relationship:
[0146] For example, the cost function f.sub.3 is minimized using the Gauss-Newton method.
[0147] In a step 124, module 64 updates the estimate P.sub.PVT2 of the covariance matrix of PVT2.sub.k using the following relationship:
P.sub.PVT2,k(P.sub.PVT2.sup.?1+H.sup.TR.sub.Mc3.sup.?1H).sup.?1 [0148] where: [0149] H is the Jacobian matrix of the function h(X) defined above in step 122, and [0150] P.sub.PVT2 is the estimate of the covariance matrix computed in step 122.
[0151] For the initial time t.sub.0, PVT2.sub.?1 is defined as being the null vector and the covariance matrix P.sub.PVT2,?1 is the diagonal matrix defined by the following relationship:
[0152] One example of embodiment of step 112 of selecting measurements will now be described in detail with reference to the method of
[0153] In an operation 130, module 56 computes a score s1.sub.0, for each satellite using the following relationship:
[0157] Typically, the measurement cn0.sub.i(k?j) is carried out in step 102 by the baseband processor 34.
[0158] Next, in an operation 132, module 56 selects the M best measurements in the sense of the score s1.sub.0,i. For example, M is equal to eight.
[0159] Lastly, a process of detecting and excluding faults based on a sub-set testing approach is used to select the best sub-set of measurements among the M best measurements. To limit computations, the maximum number of faults sought is limited to Mex=2.
[0160] More precisely, the best sub-set is selected as follows.
[0161] In an operation 134, module 56 generates all the possible sub-sets E.sub.p of M-Mex measurements among the M best measurements, where the index p is a sub-set identifier.
[0162] Next, for each generated sub-set EP, module 56 executes the following operations, operations 136 to 140.
[0163] In operation 136, module 56 computes the position P1.sub.k,p based on the measurements of the sub-set EP by minimizing the following cost function f.sub.1:
[0165] In an operation 138, module 56 computes the following metrics for each sub-set E.sub.p: a residue r.sub.p, a geometric dilution GDOP.sub.p and a maximum sensitivity of the position error with respect to the residue r.sub.p, which is denoted SlopeMaxp.
[0166] The residue r.sub.p is equal to the norm of the vector r(Mc1.sub.k,p, P1.sub.k,p), where: [0167] Mc1.sub.k,p are the measurements contained in the sub-set E.sub.p, and [0168] r( . . . ) is the same function as defined in step 116.
[0169] The geometric dilution is better known as the geometric dilution of precision. Here it is computed taking into account the position of each of the satellites from which the measurements Mc1.sub.k,i of the sub-set E.sub.p and the position P1.sub.k,p were obtained.
[0170] The parameter SlopeMax.sub.p is computed as defined on pages 105 to 136 of the following document: Salos Andres, C. D, Integrity monitoring applied to the reception of GNSS signals in urban environments, PhD Thesis, Institut National Polytechnique de Toulouse, 2012.
[0171] In an operation 140, module 56 computes, for each set E.sub.p, a score s1.sub.1,p using the following relationship:
s1.sub.1,p=?.sub.1?r.sub.p?.sup.2+?.sub.2GDOP.sub.p+?.sub.3SlopeMax, [0172] where ?.sub.1, ?.sub.2 and ?.sub.3 are predetermined weighting coefficients.
[0173] In an operation 142, module 56 selects the sub-set E.sub.p that has the lowest score s1.sub.1,p. The selected sub-set is denoted E.sub.pmin.
[0174] In an operation 144, module 56 validates the best sub-set E.sub.pmin, by comparing the metrics r.sub.pmin, GDOP.sub.pmin and SlopeMax.sub.pmin computed for the sub-set E.sub.pmin to predetermined thresholds, Thr0, ThGDOP and ThSlopeMax, respectively. If each of the metrics r.sub.pmin, GDOP.sub.pmin and SlopeMax.sub.pmin is lower than its respective threshold, then the sub-set E.sub.pmin is validated. In the contrary case, fault detection is said to be impossible, and no measurement is validated. When no measurement is validated, the biases c2.sub.k,i are considered unchanged and set equal to the biases c2.sub.k?1,i.
[0175] Only if the best sub-set E.sub.pmin has been validated, in an operation 146, module 56 computes the consistency of the remaining measurements with respect to the selected sub-set E.sub.pmin. The remaining measurements are those not belonging to the sub-set E.sub.pmin. Consistency is tested by comparing, to a predetermined threshold Thr1, each residue of the remaining measurements. The residue of each remaining measurement is computed using the following relationship:
r.sub.i=Mc1.sub.k,i?h(P1.sub.k,pmin) [0176] where: [0177] the function h( ) is the same function as implemented in step 122, and [0178] the indices i here correspond only to the indices i of the remaining measurements.
[0179] A remaining measurement is consistent with the measurements of the sub-set E.sub.pmin if the residue r.sub.i computed for this remaining measurement is less than a predetermined threshold Thr1. Next, all the remaining measurements that are consistent with the measurements of the sub-set E.sub.pmin are added to the sub-set E.sub.pmin and therefore used in the rest of process 52. In contrast, inconsistent remaining measurements are not used in the rest of process 52.
Section II: Variants
Variants of the Navigation Unit:
[0180] The navigation unit 10 has been described in the particular case of use within a locating system comprising, in addition, the inertial measurement unit 12. However, the unit 10 may be used in any locating system and, in particular, in locating systems not comprising any inertial measurement unit or comprising, in addition or instead, other sensors such as an odometer.
[0181] The beacons may be satellites of one or more constellations such as GPS (acronym of Global Positioning System), Glonass, Galileo and Beidou.
[0182] What has been described in the particular case where the beacons are satellites may be applied to any locating system and, in particular, to locating systems where the beacons are not satellites. For example, what has been described here may also be implemented in the case where the beacons are fixed beacons on Earth transmitting messages. For example, such fixed beacons may be installed in a shopping centre to locate pedestrians or be installed in proximity to an aerial lift to locate the position of a cable car. These fixed beacons are for example ultra-wide band (UWB) beacons. The term ultra-wideband beacon or UWB beacon here designates a transceiver that uses a wide frequency band to send and receive the messages. A wide frequency band is a frequency band the width of which is larger than 0.2f.sub.c, where f.sub.c is the central frequency of this frequency band. Typically, a wide frequency band has a width larger than 250 MHz or even larger than 400 MHz.
[0183] Instead of emitting electromagnetic waves to transmit the messages, the beacons may emit ultrasound. In this case, the speed of propagation of the messages through space is equal to the speed of sound and not to the speed of light.
Variants of the Locating Method:
[0184] To measure a pseudorange, it is not necessary for the messages transmitted by the beacons to contain the time of transmission of this message. For example, this is not necessary if the clocks of the beacons and of the navigation unit are temporally synchronized with one another. In this case, for example, the beacons transmit the messages at times te.sub.k known to the navigation unit and hence these times te.sub.k do not need to be contained in the transmitted messages. According to another variant, the times te.sub.k,i of transmission are computed by the navigation unit, for example based on a time of transmission of a message by the navigation unit and on the time of receipt of the response to this message transmitted by the beacon.
[0185] Step 110 of pre-correcting the raw measurement may be carried out differently. In particular, there are other models of the perturbations introduced by the ionosphere or troposphere that are usable instead of the STANAG model. In particular, the model used may also be parametrized by data contained in the messages Mn.sub.k,i. In the case where the beacons are not satellites, another model of the perturbations introduced by the exterior environment through which the navigation unit is moving may be used. In one simplified embodiment, step 110 of pre-correcting the raw measurements is omitted. Specifically, in certain contexts, such as in the case where the beacons are fixed to the surface of the Earth, such pre-correction may be needless.
[0186] Step 112 of selecting corrected measurements may be carried out differently. For example, one of the fault detection and exclusion methods described in the following articles may be used instead of the method described in Section I: [0187] H. Kuusniemi, G. Lachapelle: GNSS Signal Reliability Testing in Urban and Indoor Environments, Proceedings of the 2004 National Technical Meeting of The Institute of Navigation, San Diego, CA, pp. 210-224, 2004; [0188] N. Zhu: GNSS Propagation Channel Modeling in Constrained Environments: Contribution to the Improvements of the Geolocation Service Quality, PhD thesis, University of Lille FR, 2018.
[0189] In another variant of step 112, instead of using PVT2.sub.k?1 to make the selection, PVT1.sub.k?1 is used. Other methods for selecting the best sub-set of measurements from the M best measurements in the sense of the score s1.sub.0,i may be used. Scores other than the scores s1.sub.0,i and s1.sub.1,p may also be used to select the best measurements.
[0190] In one simplified embodiment, the selecting step 112 is omitted.
[0191] Other embodiments of step 114 of estimating the position P1.sub.k,i are possible. For example, as a variant, it is an internal PVT, PVT1.sub.k,i, that is estimated and not only the internal position P1.sub.k,i. The internal velocity V1.sub.k,i may be estimated based on Doppler measurements extracted by the baseband processor 34. In the latter case, the various variants described below of step 122 of estimating PVT2.sub.k,i are applicable to step 114.
[0192] As a variant, in step 116, the data contained in the messages Mn.sub.k,i may also be taken into account to establish the values of the biases c2.sub.k,i. Other cost functions are usable instead of the cost function f.sub.2 to establish the biases c2.sub.k,i. For example, in one simplified embodiment, the biases c2.sub.k,i are established by minimizing the following cost function f.sub.2,1:
f.sub.2,1(X,Mc1.sub.k,i,P1.sub.k)=?r(Mc1.sub.k,P1.sub.k)?X?.sub.R.sub.
[0194] There are yet other methods of estimating the biases c2.sub.k,i. For example, process 52 is replaced by N processes 52.sup.(p) that run in parallel to one another, where the exponent (p) is an identifier of the process. The exponent (p) is an integer comprised between 1 and N. Each process 52.sup.(p) delivers as output respective biases denoted c2.sub.k,i.sup.(p). Here, the measurement biases c2.sub.k,i.sup.(p) are established by each process 52(p) by executing steps 110, 112, 114 and 116 described above but with different parameters from those used by the other processes 52.sup.(p). In this example, the function f.sub.2 is parametrized by the matrices R.sub.c and P.sub.c,k?1 and each process 52.sup.(p) corresponds to specific values of the coefficients of these matrices R.sub.c and P.sub.c,k?1. For example, process 52.sup.(1) uses matrices R.sub.c.sup.(1) and P.sub.c,k?1.sup.(1) that are identical to the matrices R.sub.c and P.sub.c,k?1 used in the case of the method of
[0195] Next, the best set of biases c2.sub.k,i.sup.(p) is selected from the N set of biases c2.sub.k,i.sup.(p) established by the processes 52.sup.(p). Each bias c2.sub.k,i is then set equal to the bias c2.sub.k,i.sup.(p) of the best set of biases c2.sub.k,i.sup.(p). For example, the criterion used to select the best set of biases c2.sub.k,i.sup.(p) is the norm of the innovation denoted nino.sup.(p) and each bias c2.sub.k,i is equal to the bias c2.sub.k,i.sup.(p) of the set of biases c2.sub.k,i.sup.(p) that possesses the lowest value nino.sup.(p). For example, the norm nino.sup.(p) of the set of biases c2.sub.k,i.sup.(p) is defined by the following relationship:
nino.sup.(p)=?Mc2.sub.k?c2.sub.k.sup.(p)?h(f(PVT2.sup.k?1))? [0196] where: [0197] Mc2.sub.k is the vector the coefficients of which are the corrected measurements Mc2.sub.k,i [0198] c2.sub.k.sup.(p) is the vector the coefficients of which are the biases c2.sub.k,i.sup.(p), [0199] PVT2.sub.k?1 is the vector PVT2.sub.k estimated for time t.sub.k?1, [0200] the functions h( ) and f( ) are the same as those used in the function f.sub.3 described above.
[0201] After step 116 of establishing the biases c2.sub.k,i and before step 120 of correcting the measurements Mb.sub.k,i with the biases c2.sub.k,i, the method may comprise other steps. For example, the method comprises a step of testing the update of the measurement biases c2.sub.k,i. This testing step makes it possible to detect whether the update of the biases c2.sub.k,i complies with a confidence indicator such as the expected standard deviation. For example, the test carried out is the test defined by the following relationship for each of the indices i of the set Ipmin:
|r.sub.i(Mc1.sub.k,i,P1.sub.k)?c2.sub.k?1|<??{square root over ((R.sub.c+P.sub.c).sub.ii)} [0202] where: [0203] r.sub.i(Mc1.sub.k,i P1) is the same function as defined above in step 116, and [0204] the notation (M).sub.ii designates the i-th diagonal element of the matrix M, [0205] R.sub.c and P.sub.c are the same matrices as defined in step 116, [0206] ? is a predetermined coefficient set by the user.
[0207] If, for each of the indices i of the set I.sub.pmin, the above test is passed, then the update is accepted. In the contrary case, the update is deleted and the values of the biases c2.sub.k,i are not changed, i.e. they are set equal to the values of the biases c2.sub.k?1,i.
[0208] Other confidence indicators may be established in respect of the precision of the established biases c2.sub.k,i. For example, in the case where the biases c2.sub.k,i are established by a Kalman filter, the estimated covariance associated with each bias c2.sub.k,i is such an indicator of precision.
[0209] After step 116 of establishing the biases c2.sub.k,i and before step 120 of correcting the measurements Mb.sub.k,i with the biases c2.sub.k,i, the method may also comprise a step of filtering the biases c2.sub.k,i, for example using a moving average or a Kalman filter, in order to make their estimation more precise. It is then the filtered biases that are used to obtain the corrected measurements Mc3.sub.k,i.
[0210] Step 118 may be executed before one of steps 110, 112 and 114.
[0211] As a variant, in step 118, the pre-corrected measurements Mc2.sub.k,i are simply set equal to the pre-corrected measurements Mc1.sub.k,i. As a variant, step 118 is omitted.
[0212] Between steps 118 and 120, as a variant, the module 62 selects pre-corrected measurements Mc2.sub.k,i, these then being the only ones to be used in the rest of process 54. For example, the module 62 carries out this selecting step in the same way as step 112 or its variants.
[0213] Many variants of step 122 of estimating PVT2.sub.k,i are possible. For example, PVT2.sub.k,i may also be estimated taking into account the data contained in the messages Mn.sub.k,i.
[0214] The described computation of PVT2.sub.k uses, among other input data, a matrix R.sub.Mc3 defining the precision of each of the measurements. This matrix R.sub.Mc3 need not remain constant. For example, it is adjusted depending on the bias correction applied in step 118 and on the confidence accorded to this correction, in order to better reflect the uncertainty in each measurement at the end of this correction.
[0215] Many other algorithms may be used to determine a position, a PVT or indeed a PT based on the input data. For example, Kalman filters, particle filters or artificial-intelligence algorithms may also be used. In addition, as illustrated in the embodiment of Section I, a position, a PVT or indeed a PT may also be computed based on a sub-set of the available input signals. In other words, certain signals may be deliberately excluded from the computation if it is determined that they are associated with an excessively erroneous measurement. Many algorithms for selecting satellite signals are known in the art.
[0216] In one simplified embodiment, the unit 10 delivers only its position. Its velocity and its clock error are not computed or are not delivered to the computer 20. When the clock error is not computed, the minimum number of satellites required to determine the position of the unit 10 is equal to three. In addition, in this case, the raw measurements may be only pseudorange measurements. Other measurements, such as of the Doppler effect, are omitted.
Section III: Advantages of the Described Embodiments
[0217] Since the biases are established taking into account the internal position of the navigation unit, the biases are more precise that those computed without taking into account the position of the navigation unit. In addition, since the biases are established without taking into account the external position of the navigation unit, the stability and robustness of the locating method are improved. Specifically, an error in the establishment of the biases may propagate to the estimation of the external position. In contrast, the error in the estimation of the external position cannot propagate to the establishment of bias. Thus, the stability and robustness of the locating method are enhanced without however deteriorating precision.
[0218] Selecting, using the external position at the preceding time t.sub.k?1, beacons the messages of which are then processed to establish the measurement biases, allows the reliability and precision of this selection to be improved because the external position is more precise than the internal position. This therefore allows the measurement biases to be established more precisely and therefore a more precise external position to be obtained at time t.sub.k. In addition, this does not compromise the robustness of the locating method because the external position only influences selection of the processed messages. In particular, the external position does not influence the content of these messages, their times of receipt and does not influence the processing operations executed to establish the measurement biases.
[0219] Minimizing the difference between the measurement biases for times t.sub.k and t.sub.k?1 increases the precision of the location.
[0220] Use of the parametrized model to estimate the error caused by propagation of the messages of the beacons through the ionosphere or troposphere allows the precision of the location to be enhanced.