Method for determining the position and orientation of a vehicle
11519730 · 2022-12-06
Assignee
Inventors
Cpc classification
G01S19/47
PHYSICS
G01R33/0035
PHYSICS
International classification
Abstract
A method for determining the position and orientation of a vehicle, this method including measuring, with a magnetometer, a raw-measurement vector; obtaining a reference vector encoding, in a terrestrial reference frame, the amplitude and the direction of the geomagnetic field, the components of the reference vector being obtained from a pre-recorded model of the geomagnetic field and not measured by the magnetometer; then only if the margin of error in an estimate of the orientation of the vehicle is below a predetermined threshold, updating the pre-recorded data from which scale and offset coefficients used for correcting the raw measurement from the magnetometer are obtained, this update being performed using the raw vector, the reference vector and the new estimate of the orientation of the vehicle.
Claims
1. A method for determining a position and an orientation of a vehicle, said method comprising: providing a location system fixed to said vehicle, said location system including a satellite geolocation unit, an inertial navigation unit including an accelerometer and a gyrometer, and a magnetometer including at least two measurement axes; measuring, with the magnetometer, a first raw-measurement vector containing a raw component for each of the at least two measurement axes, each component encoding an amplitude and a direction of an orthogonal projection of a magnetic field that passes through said magnetometer on a respective measurement axis of the at least two measurement axes, the at least two measurement axes being fixed in a triaxial moving reference frame fixed to the vehicle; correcting each raw component of the raw components of the first raw-measurement vector by multiplying the raw component by a scale coefficient and by adding an offset coefficient thereto to obtain a corrected component, the scale coefficient and the offset coefficient being obtained from pre-recorded data in a memory of the location system; initially estimating a yaw angle of the vehicle based on the corrected components of the first vector to obtain an initial estimate of the yaw angle; initializing, using the initial estimate of the yaw angle, a merge algorithm to determine, based on preceding estimates of the position and of the orientation of the vehicle and by using both measurements from the satellite geolocation unit and measurements from the inertial navigation unit taken since the preceding estimates: (1) a current estimate of the position and a current estimate of the orientation of the vehicle, and (2) a margin of error in said current estimate of the orientation of the vehicle; and repeatedly running said merge algorithm to continuously update the current estimate of the position and the current estimate of the orientation of the vehicle, wherein, after a start of the repeated running of the merge algorithm and in parallel to the repeated running of the merge algorithm, the method further comprises a calibration phase including the following operations: (1) measuring, with the magnetometer, a second raw-measurement vector; (2) obtaining a reference vector including a component for each measurement axis, each component encoding an amplitude and a direction of an orthogonal projection of a geomagnetic field that passes through the magnetometer on a respective measurement axis of a fixed triaxial terrestrial reference frame with no degree of freedom with respect to the earth, the components of the obtained reference vector being obtained from a pre-recorded model of the geomagnetic field and not measured by the magnetometer; and (3) only when the margin of error in the current estimate of the orientation of the vehicle is below a first predetermined threshold, updating the pre-recorded data from which the scale coefficient and the offset coefficient are obtained, said updating being performed using the second raw-measurement vector, the reference vector, and the current estimate of the orientation of the vehicle so as to decrease a difference between corrected components of the second raw-measurement vector and the components of the reference vector when all of the components are expressed in a common reference frame.
2. The method as claimed in claim 1, wherein the calibration phase further comprises: calculating a difference between raw components of the second raw-measurement vector and an estimate of the components that are obtained from the reference vector and from the current estimate of the orientation of the vehicle; comparing the calculated difference with a second predetermined threshold; and when the calculated difference exceeds said second threshold, operation (3) is put on hold and, once the calculated difference does not exceed said second threshold, operation (3) is performed.
3. The method as claimed in claim 2, wherein the calibration phase further comprises calculating a standard deviation of the calculated difference and comparing the calculated difference, weighted according to said calculated standard deviation, with the second predetermined threshold.
4. The method as claimed in claim 1, wherein the calibration phase further comprises: calculating a difference in orientation between an orientation of the vehicle in a preceding execution of the calibration phase and an orientation of the vehicle in a present execution of the calibration phase; comparing the calculated difference in orientation with a third predetermined threshold; and when the calculated difference in orientation does not exceed said third threshold, operation (3) is put on hold and, once the calculated difference in orientation does exceed said third threshold, operation (3) is performed.
5. The method as claimed in claim 1, wherein obtaining the reference vector further comprises calculating the components of the reference vector from: the current estimate of the position of the vehicle; and a pre-recorded model of the geomagnetic field that associates, with each possible position of the vehicle, components of the geomagnetic field at said position in the fixed triaxial terrestrial reference frame, said model incorporating local variations in the geomagnetic field.
6. The method as claimed in claim 1, wherein the calibration phase further comprises: establishing new values for the pre-recorded data from which the scale coefficient and the offset coefficient are obtained, the new values being calculated based on components of the second raw-measurement vector, the reference vector, and the current estimate of the orientation of the vehicle, and establishing the new values for the pre-recorded data also including calculation of at least one margin of error in one of the calculated new values; comparing said calculated margin of error with a fourth predetermined threshold; and when the calculated margin of error exceeds said fourth threshold, use of the calculated new values to calculate the scale coefficient and the offset coefficient is put on hold and, once the calculated margin of error does not exceed said fourth threshold: operation (3) is performed and the updated pre-recorded data are taken as equal to the calculated new values; and using the calculated new values to calculate the scale coefficient and the offset coefficient is performed.
7. The method as claimed in claim 1, wherein the calibration phase further comprises: establishing, based on the current estimate of the orientation of the vehicle, components of a rotation matrix that allows a change in reference frame from the fixed triaxial terrestrial reference frame to the triaxial moving reference frame; multiplying the reference vector by the rotation matrix to obtain a new reference vector, the components of which are expressed in the triaxial moving reference frame, said moving reference frame then forming the common reference frame.
8. The method as claimed in claim 1, wherein the calibration phase further comprises: comparing the margin of error in the current estimate of the orientation of the vehicle with the first threshold; and when the margin of error in the current estimate of the orientation of the vehicle exceeds said first threshold, operation 3 is put on hold and, once the margin of error in the current estimate of the orientation does not exceed said first threshold, operation (3) is performed.
9. A non-transitory information storage medium, readable by a microprocessor, wherein said medium comprises instructions for performing the calibration phase of calibrating the magnetometer in the method for determining the position of the vehicle and the orientation of the vehicle as claimed in claim 1, when the instructions are executed by the microprocessor.
10. A location system, configured to be fixed to a vehicle, for determining the position and orientation of said vehicle, said location system including: a satellite geolocation unit; an inertial navigation unit containing an accelerometer and a gyrometer; and a magnetometer including at least two measurement axes, said location system being configured to: measure, by the magnetometer, a first raw-measurement vector containing a raw component for each of the at least two measurement axes, each component encoding an amplitude and a direction of an orthogonal projection of a magnetic field that passes through said magnetometer on a respective measurement axis of the at least two measurement axes, the at least two measurement axes being fixed in a triaxial moving reference frame fixed to the vehicle; correct each raw component of the raw components of the first raw-measurement vector by multiplying the raw component by a scale coefficient and by adding an offset coefficient thereto to obtain a corrected component, the scale coefficient and the offset coefficient being obtained from pre-recorded data in a memory of the location system; produce an initial estimate of a yaw angle of the vehicle based on the corrected components of the first vector; initialize, using the initial estimate of the yaw angle, a merge algorithm configured to establish, based on preceding estimates of the position and of the orientation of the vehicle and by using both measurements from the geolocation unit and measurements from the inertial navigation unit taken since the preceding estimates: (1) a current estimate of the position and a current estimate of the orientation of the vehicle, and (2) margin of error in said current estimate of the orientation of the vehicle; and run said merge algorithm repeatedly to continuously update the current estimate of the position and the current estimate of the orientation of the vehicle, wherein the system comprises a calibration module configured to, after a start of the repeated running of the merge algorithm and in parallel to the repeated running of the merge algorithm, perform: (1) acquiring the measurement, by the magnetometer, of a second raw-measurement vector; (2) obtaining a reference vector including a component for each measurement axis, the component encoding an amplitude and a direction of an orthogonal projection of a geomagnetic field that passes through the magnetometer on a respective axis of a fixed triaxial terrestrial reference frame with no degree of freedom with respect to the earth, the components of the obtained reference vector being obtained from a pre-recorded model of the geomagnetic field and not measured by the magnetometer; and (3) only when the margin of error in the current estimate of the orientation of the vehicle is below a first predetermined threshold, updating the pre-recorded data from which the scale coefficient and the offset coefficient are obtained, said updating being performed using the second raw-measurement vector, the reference vector, and the current estimate of the orientation of the vehicle so as to decrease a difference between corrected components of the second raw-measurement vector and the components of the reference vector when all of the components are expressed in a common reference frame.
Description
(1) The invention will be better understood on reading the following description, provided solely by way of non-limiting example and with reference to the drawings, in which:
(2)
(3)
(4)
(5) In these figures, the same references are used to denote the same elements.
(6) In the remainder of this description, the features and functions that are well known to a person skilled in the art are not described in detail. In particular, for the general knowledge of a person skilled in the art regarding location systems for a vehicle using a satellite geolocation unit and an inertial navigation unit, reference is made back to the book by Groves cited above.
SECTION I: EMBODIMENT EXAMPLES
(7)
(8) The vehicle 2 is also provided with a system 6 for locating this vehicle. This system 6 is capable of determining the position and orientation of the vehicle 2 in a terrestrial reference frame R.sub.T. The terrestrial reference frame R.sub.T is fixed with no degree of freedom with respect to the earth. The reference frame R.sub.T includes three axes, which are typically orthogonal to one another. A moving reference frame R.sub.b is also fixed with no degree of freedom with respect to the vehicle 2. This reference frame R.sub.b includes three axes which are orthogonal to one another, denoted by x.sub.b, y.sub.b and z.sub.b, respectively. Conventionally, when the vehicle 2 moves horizontally, the axes x.sub.b and y.sub.b are in a horizontal plane and the axis z.sub.b is vertical.
(9) Here, the position of the vehicle 2 in the reference frame R.sub.T is expressed by the latitude L, the longitude λ and the altitude h of the origin of the reference frame R.sub.b.
(10) The orientation of the vehicle 2 is expressed by the yaw angle ψ, the pitch angle θ and the roll angle ϕ of the reference frame R.sub.b relative to the reference frame R.sub.T.
(11) The position and orientation determined by the system 6 are generally transmitted to a cockpit 8 in order to guide, or to assist in guiding, the vehicle 2 to a predefined destination. The cockpit 8 may be a manual and/or automatic cockpit. In the case of a manual cockpit, the determined position and orientation are transmitted to a human-machine interface to assist a human being in driving the propulsion means 4. In the case of an automatic cockpit, the determined position and orientation are automatically converted into commands for driving the propulsion means 4, then transmitted automatically to these propulsion means 4.
(12) The system 6 includes a satellite geolocation unit 10 and an inertial navigation unit 12. The unit 10 is known by the acronym GNSS (global navigation satellite system). The unit 10 is in this case a single-antenna geolocation unit and not a multi-antenna geolocation unit. The unit 10 is therefore incapable of measuring the absolute orientation of the vehicle 2 in the reference frame R.sub.T on the basis of the signals transmitted by the satellites.
(13) The unit 12 is known by the acronym INS (inertial navigation system). The unit 12 includes in particular a triaxial accelerometer 14 and a triaxial gyrometer 16. By virtue of these sensors, the unit 12 is capable of measuring the variation of the orientation of the vehicle 2. However, the unit 12 is itself also incapable of directly measuring the orientation of the vehicle 2 in the reference frame R.sub.T.
(14) To determine the position and orientation of the vehicle 2 on the basis of the measurements from the units 10 and 12, the system 6 includes a programmable electronic computer 20. This computer 20 is capable of acquiring the measurements from the units 10 and 12 and, on the basis of these measurements, of determining the position and orientation of the vehicle 2 in the reference frame R.sub.T. The computer 20 includes a microprocessor 22 and a memory 24 including the instructions and data required to implement the methods described with reference to
(15) More specifically, the memory 24 includes the instructions for a module 26. The module 26 runs in particular a merge algorithm capable of establishing, on the basis of a preceding estimate of the position and of the orientation of the vehicle 2 and new measurements from the units 10 and 12 acquired since this preceding estimate, a new estimate of the position and of the orientation of the vehicle 2. The merge algorithm also establishes, for each new estimate of the position and of the orientation of the vehicle 2, a margin of error in this estimate.
(16) Merge algorithms are well known to those skilled in the art. For example, the interested reader may again reference back to the book by Groves cited above. The merge algorithm merges the measurements from the units 10 and 12 to obtain estimates of the position and of the orientation of the vehicle 2 which are more accurate than if, for example, only the measurements from the unit 10 were used to determine the position and only the measurements from the unit 12 were used to determine the orientation of the vehicle 2. In other words, to establish each of the estimates of the position and of the orientation of the vehicle 2, the module 26 uses the measurements both from the unit 10 and from the unit 12. For example, this merge algorithm is implemented in the form of a Kalman filter.
(17) As mentioned in the introduction of the present application, it is necessary to initialize the merge algorithm with initial estimates of the position and of the orientation of the vehicle 2. These initial estimates are produced, for example, as described in the book by Groves. Here, the initial estimate of the yaw angle is obtained from the measurements from a magnetometer. To this end, the system 6 therefore additionally includes a magnetometer 30 connected to the computer 20.
(18) The magnetometer 30 is a triaxial magnetometer, i.e. it includes three non-collinear measurement axes, fixed in the reference frame R.sub.b. Here, these three measurement axes are parallel to the three axes x.sub.b, y.sub.b and z.sub.b of the reference frame R.sub.b, respectively. Each measurement of the magnetic field taken by this magnetometer 30 comprises three components, each encoding the amplitude and the direction of the orthogonal projection, on a respective measurement axis, of the magnetic field which is passing through the magnetometer 30 when the measurement is taken. The group formed by the three components measured by the magnetometer 30 is referred to hereinafter as the “raw-measurement vector” and denoted by B.sub.raw.
(19) From the moment of its manufacture or placement within the vehicle 2, the measurements from the magnetometer 30 may suffer interference. Thus, even when used for the first time, it may be that the measurements from the magnetometer 30 are quite inaccurate. To improve the accuracy of the measurements provided by the magnetometer 30, in particular when it is used for the first time, the memory 24 includes default values 32 for scale and offset coefficients used to correct the raw components of the vector B.sub.raw. Here, for example, these default values are never updated over the period of use of the magnetometer 30.
(20) The memory 24 also includes pre-recorded data used to correct the raw components of the vector B.sub.raw. Here, these pre-recorded data are current values 34 for the scale and offset coefficients. Unlike the default values 32, the current values 34 are regularly updated over the period of use of the magnetometer 30 so as to adjust them continuously to the context in which the magnetometer 30 is being used. Thus, over the period of use of the magnetometer 30, the vector B.sub.raw is preferably corrected using the current values 34 rather than using the default values 32. The vector obtained after correction of the raw components of the vector B.sub.raw is referred to as the “corrected measurement vector” and denoted by B.sub.C. The components of the vector B.sub.C are referred to as “corrected components”.
(21) To update the current values 34, the memory 24 also includes the instructions for a module 36 for calibrating the magnetometer 30.
(22) The memory 24 also includes a pre-recorded model 38 of the geomagnetic field. The model 38 associates, with each position liable to be occupied by the vehicle 2, the three components of the geomagnetic field present at this position. The group formed by the three components of the geomagnetic field is referred to hereinafter as the “reference vector” and denoted by B.sub.0. Each of the components of the vector B.sub.0 encodes the amplitude and direction of the orthogonal projection, on a respective axis of the reference frame R.sub.T, of the geomagnetic field. For example, the model 38 is the model known by the acronym IGRF (International Geomagnetic Reference Field).
(23) The use of the system 6 is broken down into successive periods of activity separated from one another by periods of inactivity. During these periods of inactivity, the system 6 is not active, i.e. it is not determining the position and orientation of the vehicle 2. Typically, during the periods of inactivity, the units 10 and 12 and the magnetometer 30 do not take any measurements and do not transmit any measurements to the computer 20. The computer 20 therefore does not perform any processing on these measurements. These periods of inactivity generally last several minutes, several hours or several days. However, during these periods of inactivity, the current values 34 of the scale and offset coefficients estimated in a preceding period of activity are retained in the memory 24. To this end, the memory 24 is a non-volatile memory.
(24) For example, during the periods of inactivity, the system 6 is switched off or on standby.
(25) Conversely, during each period of activity, the units 10 and 12 and the magnetometer 30 deliver new measurements to the computer 20, which processes them to determine the position and orientation of the vehicle 2 according to these new measurements. These periods of activity come one after the other in succession and are each separated from one another by a period of inactivity of variable length.
(26)
(27) The period 46 begins with a phase 48 of initializing the system 6. This phase 48 begins immediately after the activation of the system 6, i.e. typically just after it has been powered up. At the beginning of phase 48, in an operation 50, the computer 20 tests whether the value of an indicator I, is higher than or equal to one. The value of this indicator I, is recorded in the memory 24. If the value of the indicator I, is lower than one, in the subsequent operations, the default values 32 of the scale and offset coefficients are used to correct the vector B.sub.raw. Conversely, if the value of the indicator I.sub.CF is higher than or equal to one, in the subsequent operations, it is the current values 34 which are used to correct the vector B.sub.raw.
(28) During the first period of activity of the system 6, the value of the indicator I.sub.CF is zero.
(29) Next, the computer 20 produces an initial estimate of the orientation of the vehicle 2 and, potentially, an estimate of other parameters. As an example of other parameters, the computer 20 may estimate scale and offset coefficients for other sensors of the system 6 like for the sensors 14 and 16. Hereinafter, only one example of an embodiment for estimating the initial orientation of the vehicle 2 is described.
(30) In an operation 52, the magnetometer 30 measures the magnetic field passing through same and delivers a first vector B.sub.raw to the computer 20.
(31) Next, in an operation 54, the computer 20 corrects the vector B.sub.raw to obtain a corrected first vector B.sub.C. In this operation, each component of the vector B.sub.C is obtained by multiplying the component of the vector B.sub.raw measured for the same measurement axis by the scale coefficient associated with this measurement axis and by adding the offset coefficient associated with the same measurement axis thereto. An example of a formula for obtaining the vector B.sub.C from the vector B.sub.raw is given hereinbelow by relationship 3). The vector B.sub.C, like the vector B.sub.raw, is expressed in the reference frame R.sub.b.
(32) The values of the scale and offset coefficients used in this operation 54 are either the default values 32 or the current values 34 depending on the result of the test performed in operation 50.
(33) In an operation 56, the unit 10 measures the position of the vehicle 2 in the reference frame R.sub.T. In operation 56, to do this, the unit 10 delivers an initial estimate of the position of the vehicle 2 in the reference frame R.sub.T, for example, without using the measurements from the unit 12 and from the magnetometer 30.
(34) Next, in an operation 58, the vector B.sub.0 corresponding to the initial position measured in operation 56 is obtained by using the model 38. It should be noted that, in operation 56, it is not necessary to use the merge algorithm. Specifically, given that the geomagnetic field varies quite slowly at the surface of the earth, at this stage, approximate knowledge of the position of the vehicle 2 with, for example, a margin of error smaller than 50 km, 100 km or 1000 km, is sufficient to obtain an accurate estimate of the vector B.sub.0. Typically, the accuracy in the estimate of the initial position by the unit 10 is substantially below 50 km. For example, the accuracy is generally below 50 m or 10 m.
(35) In an operation 60, the initial estimate of the yaw angle is produced using the vector B.sub.C obtained on completion of operation 54. Specifically, the vectors B.sub.C and B.sub.0 correspond to the same magnetic field but expressed in the reference frames R.sub.b et R.sub.T, respectively. It is therefore possible to determine the yaw angle of the vehicle 2, and hence of the reference frame R.sub.b relative to the reference frame R.sub.T, from the angle formed by the vector B.sub.C with the axes of the reference frame R.sub.b.
(36) Once the initialization phase 48 has ended, a phase 70 of using the system 6 begins. In phase 70, the module 26 repeatedly estimates the position and orientation of the vehicle 2 by reiterating, for example at regular intervals, the running of the merge algorithm. This phase 70 then lasts until the end of the period 46 of activity and hence until the beginning of a next period 76 of inactivity.
(37) At the beginning of phase 70, in an operation 72, the merge algorithm is initialized. The initialization of the merge algorithm consists in particular in loading initial values for the position and orientation of the vehicle 2. These initial values are used as a starting point for this merge algorithm in order subsequently to establish, with greater accuracy, this position and this orientation of the vehicle 2. These initial values loaded in operation 72 are those obtained on completion of initialization phase 48. In particular, the yaw angle is initialized using the value obtained on completion of operation 60.
(38) Next, in an operation 74, the merge algorithm is run repeatedly by the module 26. More specifically, each time new measurements from the unit 10 and/or from the unit 12 are acquired by the computer 20, the merge algorithm is run in order to update the estimate of the position and of the orientation of the vehicle 2.
(39) More specifically, each time the merge algorithm is run, the module 26 establishes: new estimates of the position and of the orientation of the vehicle 2; and margins of error in these new estimates of the position and of the orientation.
(40) These new estimates of the position and of the orientation of the vehicle 2 and the corresponding margins of error are established on the basis of the preceding estimates of the position and of the orientation of the vehicle 2, of the preceding established margins of error and of the new measurements from the units 10 and 12. In this embodiment, in operation 74, the measurements from the magnetometer 30 are not used.
(41) The margin of error or the accuracy in the new estimate of the orientation is here given by the values of three standard deviations denoted by σ.sub.ψ, σ.sub.θ and σ.sub.φ, respectively. The standard deviations σ.sub.ψ, σ.sub.θ and σ.sub.φ correspond to the standard deviations in the estimates of the yaw angle ψ, of the pitch angle θ and of the roll angle φ, respectively.
(42) Conventionally, the beginning of the use phase is often called the “alignment phase”. Typically, the alignment phase starts with the beginning of the merge algorithm run and ends once the accuracies in the estimates of the yaw ψ, pitch θ and roll φ angles are sufficient.
(43) The repetitions of operation 74 end only when the current period 46 of activity comes to an end and the new period 76 of inactivity begins. For example, the repetition of operations 74 comes to an end when the system 6 is switched off.
(44) It is known that the most difficult part of phase 50 is that of obtaining an accurate estimate of the yaw angle of the vehicle 2. Specifically, algorithms already exist which allow an initial estimate of the roll and pitch angles, and of the other desired parameters, to be obtained quickly. Conventionally, the initial estimate of the roll and pitch angles is, for example, obtained from the accelerometer 14 measurements. In the system 6, to obtain a reliable initial estimate of the yaw angle, the following operations are performed:
(45) Parallel to phase 70, the module 36 carries out a phase 80 of calibrating the magnetometer 30. Phase 80 can begin as soon as the vector B.sub.0 has been obtained and the module 26 has established an estimate of the orientation of the vehicle 2. The purpose of phase 80 is to improve the calibration of the magnetometer 30, i.e. to improve the current values 34 of the scale and offset coefficients so that, the next time operation 54 is performed, the vector B.sub.C obtained is more accurate than if the default values 32 were used. Specifically, even after its manufacture and installation within the system 6, the magnetometer 30 is often exposed to numerous outside events which temporarily or permanently modify its operation. Thus, with time, the default values 32 become less useful and it is possible to determine new current values which allow better correction of the vector B.sub.raw and hence a more correct vector B.sub.C to be obtained.
(46) Here, the phase 80 begins with a step 81 of measuring the magnetic field by means of the magnetometer 30 and acquiring the vector B.sub.raw by means of the computer 20. Next, in the following steps, the vector B.sub.raw mentioned corresponds to the vector B.sub.raw measured and acquired in this step 81. In this step 81, the module 36 also acquires the estimate of the orientation of the vehicle 2 and the margin of error in this estimate that was established in the most recent iteration of operation 74.
(47) Phase 80 is followed by a step 82 in which various conditions are tested in order to ensure that the system 6 is indeed in a situation in which updating the current values 34 of the scale and offset coefficients will allow new current values to be obtained which, if they were immediately used in an operation 54, would allow a more accurate initial estimate of the yaw angle to be obtained: than if the default values 32 were used; and than if the current values 34 had not been updated.
(48) In this embodiment, to this end, four tests, called test 1), test 2), test 3) and test 4), respectively, are performed in step 82.
(49) Test 1) consists in verifying that the accuracy in the current estimate of the orientation of the vehicle 2 is sufficiently high. Specifically, the values of the yaw, pitch and roll angles estimated by the merge algorithm are used when updating the scale and offset coefficients. Consequently, if the accuracy in the estimates of these angles is not high enough, it may have a negative effect on the calibration of the magnetometer 30, instead of improving it. Now, it may take the merge algorithm a certain amount of time before it provides a reliable estimate of the orientation of the vehicle 2. Thus, it is important to wait for the orientation of the vehicle 2 to be estimated with sufficiently high accuracy before determining new current values 34 for the scale and offset coefficients.
(50) Here, test 1) is the following: σ.sub.ψ<S.sub.1 and σ.sub.θ<S.sub.1 and σ.sub.φ<S.sub.1, where: σ.sub.ψ, σ.sub.θ and σ.sub.φ are margins of error and, more specifically, the standard deviations most recently established by the merge algorithm for the estimates of the yaw, pitch and roll angles, respectively; and S.sub.1 is a predetermined threshold.
(51) Typically, the threshold value S.sub.1 is lower than 10° or 5°. Here, the threshold S.sub.1 is chosen to be equal to 5. If test 1) is passed, it means that the accuracies in the estimates of the yaw, pitch and roll angles are high enough.
(52) Test 2) consists in determining whether there is a source of magnetic interference temporarily located in proximity to the magnetometer 30. Such a source of interference is referred to as a “temporary magnetic disruptor” hereinafter. A magnetic disruptor modifies the magnetic field measured by the magnetometer 30 such that it does not correspond exactly to the geomagnetic field. For example, a magnetic disruptor may be a metal part or a permanent magnet. A temporary magnetic disruptor is, for example, a magnetic disruptor which moves in the reference frame R.sub.b. If the scale and offset coefficients are updated in the presence of a temporary magnetic disruptor, the updated values of these coefficients allow the measurement errors caused by this disruptor to be largely eliminated. However, if this disruptor subsequently disappears during the period of inactivity, then, on startup in the next period of activity, the initial estimate of the yaw angle will be poor. This will slow the convergence of the merge algorithm towards an accurate estimate of the position and of the orientation of the vehicle 2 considerably. Here, to overcome this problem, the updating of the current values 34 of the scale and orientation coefficients is put on hold if the presence of a temporary magnetic disruptor in proximity to the magnetometer 30 is detected.
(53) Here, test 2) is the following: |∥B.sub.raw∥−∥B.sub.0∥|<S.sub.2, where: ∥B.sub.raw∥ is the norm of the currently measured vector B.sub.raw; ∥B.sub.0∥, is the norm of the reference vector, for example obtained on completion of operation 58; S.sub.2 is a predetermined threshold; |∥B.sub.raw∥−∥B.sub.0∥| is the absolute value of the difference between the norms ∥B.sub.raw∥ and ∥B.sub.0∥.
(54) Typically, the threshold S.sub.2 is lower than 40 μT or 20 μT. Here, the threshold S.sub.2 is equal to 20 μT. If test 2) is not passed, it is determined that there is a disruptor in proximity to the magnetometer 30.
(55) Test 2) has the advantage of being independent of the accuracy in the estimate of the orientation of the vehicle 2. However, the difference between the norms is also dependent on internal imperfections in the magnetometer 30, such that the value of the threshold S.sub.2 cannot be chosen so that it is too low. Test 2) is also insensitive to magnetic interference which modifies only the direction of the magnetic field measured by the magnetometer 30 without modifying the norm thereof.
(56) Test 3) is another test which makes it possible to determine whether there is a source of magnetic interference temporarily located in proximity to the magnetometer 30. This test 3) is more sensitive to the presence of a disruptor. For this, it compares the difference between the components of the vector B.sub.raw and estimates of these components. The estimates of the components of the vector B.sub.raw are obtained from the components of the vector B.sub.0 and from the current estimate of the orientation of the vehicle 2.
(57) Here, test 3) is the following: |Y.sub.k,x/σ.sub.Y,x|<S.sub.3 and |Y.sub.k,y/σ.sub.Y,y|<S.sub.3 and |Y.sub.k,z/σ.sub.Y,z|<S.sub.3 where: Y.sub.k,x, Y.sub.k,y, Y.sub.k,z are the differences between the components of the vector B.sub.raw and the estimates of these components; σ.sub.Y,x, σ.sub.Y,y and σ.sub.Y,z are standard deviations caused by the uncertainties in the estimate of the scale and offset coefficients and the measurement errors; / is the symbol for the division operation; | . . . | is the symbol that denotes the absolute-value operation; and S.sub.3 is a predetermined threshold.
(58) An example of calculating the differences Y.sub.k,x, Y.sub.k,y, Y.sub.k,z and the standard deviations σ.sub.Y,x, σ.sub.Y,y and σ.sub.Y,z is described in detail with reference to
(59) Test 4) consists in verifying that at least the yaw angle of the vehicle 2 has been changed enough since the last update of the current values 34. Specifically, when the vehicle 2 is in a situation in which the yaw angle remains constant for quite a long interval, it is pointless, or even risky, to attempt to update the current values 34 of the scale and offset coefficients multiple times during this interval. More specifically, during this interval, it is not possible to know whether an error in the measurement from the magnetometer 30 has to be corrected by modifying the value of a scale coefficient or the value of an offset coefficient. Thus, in this particular situation, transitory interference in the measurement from the magnetometer 30 may lead to the calibration of the magnetometer 30 being made worse, rather than improved. Moreover, in any case, updating the current values 34 in this situation is pointless. Test 4) therefore allows this risk of negatively affecting the calibration to be eliminated and pointless updating of the current values 34 in such situations to be avoided.
(60) Here, test 4) is the following: ∥Angle−LastAngle∥<S.sub.4, where: “Angle” is a vector including the values of the three angles ψ, θ and φ that were most recently determined for the yaw, pitch and roll angles, respectively, of the vehicle 2; “LastAngle” is a vector including the values of the three angles ψ, θ and φ that were determined during the last update of the current values 34; ∥ . . . ∥ is the norm of the difference between the vectors “Angle” and “LastAngle”; and S.sub.4 is a predetermined threshold.
(61) The threshold value S.sub.4 is typically lower than 5° or 2°. Here, the threshold value S.sub.4 is lower than 1°. The threshold value S.sub.4 is also preferably higher than 0.5° or 1°. If test 4) is passed, it is determined that the yaw angle has not been changed enough since the last update of the current values 34.
(62) If all of the tests performed in operation 82 confirm that the situation is favorable for updating the current values 34 of the scale and offset coefficients, then the process moves on to a step 84 of establishing new current values 34 for the scale and offset coefficients.
(63) In step 84, the new current values 34 are updated by the module 36 so as to decrease the difference between the components of the vectors B.sub.C and B.sub.0 when these components are expressed in a common reference frame. To this end, the vector B.sub.0 is, for example, that obtained in operation 58. Here, the common reference frame is the reference frame R.sub.b. More specifically, to this end, the module 36 runs an estimation algorithm which establishes a new estimate of the values of the scale and offset coefficients on the basis of: the new measurement of the geomagnetic field by the magnetometer 30; the reference vector B.sub.0; the preceding estimate of the current values established for the scale and offset coefficients; and the current estimate of the orientation of the vehicle 2.
(64) An embodiment of this estimation algorithm is described in greater detail with reference to method of
(65) Once these new estimates of the current values 34 have been established, they are recorded in the memory 24 and replace the preceding current values 34.
(66) In this embodiment, on completion of step 84, in a step 86, the quality of the new estimates of the current values 34 is verified. To this end, in this step 86, the module 36 implements two tests referred to hereinafter as test 5) and test 6), respectively.
(67) Test 5) consists in ensuring that the new estimates of the values of the scale and offset coefficients are within plausible predetermined ranges of values. Here, test 5) is implemented only for the new estimates of the scale coefficients. For example, test 5) consists here in verifying that the following three conditions are met:
S.sub.5min<1/a.sub.x<S.sub.5max, condition 5.1
S.sub.5min<1/a.sub.y<S.sub.5max, condition 5.2
S.sub.5min<1/a.sub.z<S.sub.5max, condition 5.3
where: 1/a.sub.x, 1/ a.sub.y and 1/a.sub.z are new estimates of the scale coefficients for the measurement axes x.sub.b, y.sub.b and z.sub.b, respectively, of the magnetometer 30; S.sub.5min and S.sub.5max are predetermined thresholds.
(68) The calculation of the values of the coefficients a.sub.x, a.sub.y and a.sub.z is described in detail with reference to the method of
(69) In this embodiment, the threshold value S.sub.5min is generally lower than 1/s, where s is a number greater than or equal to 1.5, 2 or 3. Regarding the threshold value S.sub.5max, it is generally higher than or equal to s. Here, the thresholds S.sub.5min and S.sub.5max are equal to 0.5 and 2, respectively.
(70) In this embodiment, when condition 5.1 is not met by the coefficient 1/a.sub.x, then its value is bounded, i.e. modified so as to remain within the range [S.sub.5min; S.sub.5max]. For this, if the coefficient 1/ax is lower than S.sub.5min, the value of the coefficient a.sub.x is automatically modified such that 1/a.sub.x is equal to S.sub.5min. Conversely, if the coefficient 1/a.sub.x is higher than S.sub.5max, the value of the coefficient a.sub.x is automatically modified such that 1/a.sub.x is equal to S.sub.5max. The same bounding mechanism is implemented for the coefficients 1/a.sub.y and 1/a.sub.z.
(71) Test 6) consists in verifying that the margin of error in the estimate of one or more of the scale and offset coefficients is small enough for it to be usable in correcting the measurements from the magnetometer 30.
(72) Here, test 6) consists in verifying that the following six conditions are met:
P.sub.k(1,1)<S.sub.6s, condition 6.1
P.sub.k(2,2)<S.sub.6s, condition 6.2
P.sub.k(4,4)<S.sub.6o, condition 6.3
P.sub.k(5,5)<S.sub.6o, condition 6.4
P.sub.k(3,3)<S.sub.6s, condition 6.5
P.sub.k(6,6)<S.sub.6s, condition 6.6
where: the coefficients P.sub.k(1,1), P.sub.k(2,2) and P.sub.k(3,3) are diagonal coefficients of a covariance matrix P.sub.k which are functions of the margins of error in the estimates of the scale coefficients for the axes x.sub.b, y.sub.b and z.sub.b, respectively; the coefficients P.sub.k(4,4), P.sub.k(5,5) and P.sub.k(6,6) diagonal coefficients of the covariance matrix P.sub.k which are functions of the margins of error in the new estimates of the offset coefficients for the axes x.sub.b, y.sub.b and z.sub.b, respectively; and S.sub.6s and S.sub.6o are predetermined thresholds.
(73) The threshold value S.sub.6s is typically lower than or equal to 1, 0.5 or 0.33. Here, the threshold value S.sub.6, is equal to 0.33. The threshold value S.sub.6o is generally lower than 10 μT, 5 μT or 3 μT. For example, here, the thresholds S.sub.6s and S.sub.6o are equal to 0.33 and 3 μT.
(74) In the case of a vehicle moving essentially horizontally, the variations in the measurement along the axis z.sub.b are small. Consequently, the margin of error in the scale and offset coefficients for correcting the raw component of the magnetometer along this axis z.sub.b may decrease much more slowly than the margin of error in the scale and offset coefficients that are associated with horizontal measurement axes. Moreover, for this type of vehicle, the measurement of the magnetic field along the axis z.sub.b is not very important and has little effect on the initial estimate of the yaw angle. Consequently, substantial inaccuracy in the scale and offset coefficients associated with the axis z.sub.b is not necessarily an issue. The rest of the description is given within this particular case. Consequently, in this embodiment, if one of conditions 6.1, 6.2, 6.4 or 6.5 is not met, then the value of the indicator I.sub.CF is taken as equal to zero. Thus, if this indicator I.sub.CF remains equal to zero until the end of the current period of activity; in the next period of activity, the yaw angle will be initialized by using the default values 32.
(75) If the four conditions 6.1, 6.2, 6.4 and 6.5 are met and at least one of conditions 6.3 and 6.6 is not met, then the value of the indicator I.sub.CF is taken as equal to one.
(76) If the six conditions 6.1 to 6.6 are met, then the value of the indicator I.sub.CF is taken as equal to two.
(77) On completion of step 86, the method returns to step 81. Thus, the calibration of the magnetometer 30 is performed continuously until the end of the current period of activity. If the indicator I.sub.CF is greater than or equal to zero until the end of the current period of activity, at the start of the next period of activity, the initial estimate of the yaw angle will be obtained by using the last current values 34 recorded in the memory 24 in the preceding period of activity. The method described here therefore makes it possible to obtain, in most cases, current values 34 which allow better correction of the vector B.sub.raw and hence a more accurate initial estimate of the yaw angle. This therefore allows the convergence of the merge algorithm towards an accurate estimate of the position and of the orientation of the vehicle 2 to be speed up considerably.
(78)
(79) The following notations and relationships used in this Kalman filter are now defined.
(80) B.sub.0.sup.n is the reference vector obtained in the execution of operation 58 and the components of which are expressed in the reference frame R.sub.T.
(81) B.sub.0.sup.b is the reference vector the components of which are expressed in the reference frame R.sub.b.
(82) C.sub.n.sup.b is a rotation matrix which allows the components of a vector that are expressed in the reference frame R.sub.T to be converted into components of the same vector but expressed in the reference frame R.sub.b. This matrix C.sub.n.sup.b is a square matrix with three rows and three columns. The coefficients of the matrix C.sub.n.sup.b are established on the basis of the estimates of the angles ψ, θ and φ provided by the merge algorithm. There is then the following equation:
B.sub.0.sup.b=C.sub.n.sup.b.B.sub.0.sup.n. Relationship 1)
(83) In this relationship 1), as in the following relationships, the symbol “.” denotes the multiplication operation.
(84) The vector B.sub.raw is modeled by the following relationship:
B.sub.raw=A.B.sub.0.sup.b+Off+η, Relationship 2)
where: Off is a vector with three components Off.sub.x, Off.sub.y, Off.sub.z, the components Off.sub.x, Off.sub.y, Off.sub.z being associated with the axes x.sub.b, y.sub.b and z.sub.b, respectively; A is a square diagonal matrix with three rows and three columns, the three coefficients of the diagonal of which are a.sub.x, a.sub.y and a.sub.z, the coefficients a.sub.x, a.sub.y and a.sub.z being associated with the axes x.sub.b, y.sub.b and z.sub.b, respectively; and η denotes the noise in the measurement from the magnetometer 30.
(85) The vector B.sub.C is obtained using the following relationship:
B.sub.C=S.(B.sub.raw−Off), Relationship 3)
where S is the inverse of the matrix A defined in relationship 2).
(86) It is therefore this relationship 3) which is used in operation 54 to correct the vector B.sub.raw. The scale coefficients associated with the axes x.sub.b, y.sub.b and z.sub.b are therefore equal to 1/a.sub.x, 1/a.sub.y and 1/a.sub.z, respectively. The offset coefficients associated with the axes x.sub.b, y.sub.b and z.sub.b are equal to −Off.sub.x/a.sub.x, −Off.sub.y/a.sub.y and −Off.sub.z/a.sub.z, respectively.
(87) The state vector X.sub.k is defined by the following relationship:
X.sub.k=[a.sub.x,a.sub.y,a.sub.z,Off.sub.x,Off.sub.y,Off.sub.z].sup.T, Relationship 4)
where: the components a.sub.x, a.sub.y, a.sub.z, Off.sub.x, Off.sub.y, Off.sub.z are the same coefficients as those defined in relationship 2); the symbol “.sup.T” denotes the transposed operation; the index k is a serial number.
(88) The state prediction or propagation equation for the Kalman filter is defined by the following relationship:
X.sub.k+1|k=X.sub.k|k+ν, Relationship 5)
where: X.sub.k|k is the estimate of the state vector at time k, which estimate is obtained by taking all of the measurements up to time k into account; X.sub.k+1|k is the estimate of the state vector at time k+1, which estimate is obtained by taking only the measurements up to time k into account; ν is the noise in the process.
(89) Relationship 5) is explained by the fact that the scale and offset coefficients are assumed, in a first approximation, to be constant with time.
(90) The prediction or propagation equation for the error covariance matrix is defined by the following relationship:
P.sub.k+1|k=P.sub.k|k+Q.sub.k, Relationship 6)
where: P.sub.k|k is the estimate of the error covariance matrix at time k obtained by taking all of the measurements up to time k into account; P.sub.k+1|k is the estimate of the covariance matrix at time k+1 obtained by taking only the measurements up to time k into account; Q.sub.k is the covariance matrix for the process noise ν.
(91) The matrix Q.sub.k is defined by the following relationship:
(92)
where: σ.sub.scale.sup.2 is the variance in the process noise ν in the estimate of each scale coefficient; and σ.sub.Off.sup.2 is the variance in the process noise ν in the estimate of each offset coefficient.
(93) By way of illustration, typical values of the coefficients σ.sub.scale.sup.2 and σ.sub.Off.sup.2 are 10.sup.−8 and 10.sup.−6, respectively.
(94) Using the notations introduced above, the model of the vector B.sub.raw is defined by the following relationship:
B.sub.raw=H.sub.k.X.sub.k+η, Relationship 8)
where: η is the noise in the measurement; and H.sub.k is the matrix defined by the following relationship:
(95)
where B.sub.0,x.sup.b, B.sub.0,y.sup.b, B.sub.0,z.sup.b are the three components of the vector B.sub.0.sup.b which are expressed in the reference frame R.sub.b and obtained using relationship 1). It should be noted that the components B.sub.0,x.sup.b, B.sub.0,y.sup.b, B.sub.0,z.sup.b are functions of the estimates of the yaw, pitch and roll angles established by the merge algorithm. Thus, the matrix H.sub.k is updated on each new estimate of these yaw, pitch and roll angles that is established by the merge algorithm.
(96) The innovation Y.sub.k, i.e. the difference between the vector B.sub.raw and the estimate of this vector obtained using the vector B.sub.o, is given by the following relationship:
Y.sub.k=B.sub.raw−H.sub.k.X.sub.k|k−1. Relationship 10)
(97) The covariance S.sub.k of the innovation is given by the following relationship:
S.sub.k=H.sub.k.P.sub.k|k−1.H.sub.k.sup.T+R.sub.k, Relationship 11)
where R.sub.k is the covariance matrix for the measurement noise.
(98) The matrix S.sub.k is a diagonal matrix with three rows and three columns. The coefficients of its diagonal are denoted by σ.sub.Y,x.sup.2, σ.sub.Y,y.sup.2 and σ.sub.Y,z.sup.2 and correspond to the square of the coefficients used in test 3).
(99) The matrix R.sub.k is defined by the following relationship:
(100)
where σ.sub.MagNoise.sup.2 is the variance in the noise in the measurement from the magnetometer 30 and interference in the measured magnetic field. Typically, the value of the coefficient σ.sub.MagNoise.sup.2 is chosen to be between 1 μT and 10 μT. For example, here, this coefficient is equal to 10 μT.
(101) The Kalman gain is defined by the following relationship:
K.sub.k=P.sub.k|k−1.H.sub.k.sup.T.S.sub.k.sup.−1. Relationship 13)
(102) The estimate update equation for the state vector X.sub.k is defined by the following relationship:
X.sub.k|k=X.sub.k|k−1+K.sub.k.Y.sub.k. Relationship 14)
(103) The estimate update equation for the error covariance matrix is defined by the following relationship:
P.sub.k|k=(I−K.sub.k.H.sub.k).P.sub.k|k−1, Relationship 15)
where I is the identity matrix.
(104) The method for estimating the scale and offset coefficients begins with a step 100 of initializing the estimation algorithm. In step 100, if the value of the indicator I.sub.CF is equal to zero, the initial state vector X.sub.0 is defined by the following relationship:
X.sub.0=[a.sub.x0a.sub.y0a.sub.z0Off.sub.x0Off.sub.y0Off.sub.z0].sup.T, Relationship 16)
where: the coefficients a.sub.x0, a.sub.y0, a.sub.z0 are equal to 1/e.sub.x0, 1/ e.sub.y0 and 1/e.sub.z0, respectively, where e.sub.x0, e.sub.y0 and e.sub.z0 are the default values 32 of the scale coefficients associated with the axes x.sub.b, y.sub.b and z.sub.b, respectively; the coefficients Off.sub.x0, Off.sub.y0, Off.sub.z0 are equal to −a.sub.x0.d.sub.x, −a.sub.y0.d.sub.y and −a.sub.z0.d.sub.z, respectively,
where d.sub.x, d.sub.y and d.sub.z are the default values 32 of the offset coefficients associated with the axes x.sub.b, y.sub.b and z.sub.b, respectively.
(105) The initial error covariance matrix P.sub.0 is defined by the following relationship:
(106)
where: P.sub.0.sup.Default is equal to the matrix P.sub.0; and the coefficients σ.sub.scale0.sup.2 and σ.sub.Off0.sup.2 define the default uncertainty in the estimate of the coefficients a.sub.x, a.sub.y and a.sub.z and of the coefficients Off.sub.x, Off.sub.y and Off.sub.z, respectively. By way of illustration, the coefficients a σ.sub.scale0 and σ.sub.Off0 are equal to 0.1 and 100 μT, respectively.
(107) If, in step 100, the value of the indicator I.sub.CF is higher than or equal to one, the vector X.sub.0 and the matrix P.sub.0 are taken as equal to the last vector X.sub.k|k and to the last matrix P.sub.k|k, respectively, that were established in the preceding period of activity.
(108) Next, for each new measurement from the magnetometer 30 acquired by the computer 20, the following operations are performed.
(109) In an operation 102, the error covariance matrix P.sub.k+1|k is estimated using relationship 6).
(110) In an operation 104, the coefficients of the matrix H.sub.k are updated according to the last estimate of the orientation of the vehicle 2. More specifically, it is the rotation matrix C.sub.n.sup.b which is updated according to this last estimate of the orientation. Next, the components B.sub.0,x.sup.b, B.sub.0,y.sup.b and B.sub.0,z.sup.b are calculated by multiplying the vector B.sub.0.sup.n by the updated matrix C.sub.n.sup.b. Lastly, still in operation 104, the innovation Y.sub.k and the innovation covariance matrix S.sub.k are calculated using relationships 10) and 11), respectively.
(111) Preferably, in an operation 106, test 3) is performed immediately after calculating the new coefficients σ.sub.Y,x.sup.2, σ.sub.Y,y.sup.2 and σ.sub.Y,z.sup.2 of the matrix S.sub.k. This makes it possible to avoid pointlessly performing the next operation.
(112) Only if test 3) is passed, then, in an operation 108, the gain K.sub.k, the vector X.sub.k|k and the matrix P.sub.k|k are calculated using relationships 13), 14) and 15), respectively. On the basis of the components of the vector X.sub.k|k, the new values of the scale coefficients e.sub.x, e.sub.y and e.sub.z and the new values of the offset coefficients d.sub.x, d.sub.y and d.sub.z are updated using the relationships introduced with reference to relationship 3).
SECTION II: VARIANTS
(113) Variants of the Field B.sub.0:
(114) The initial position for obtaining the vector B.sub.0 on starting a new period of activity may be provided by a system other than the satellite geolocation unit 10. For example, if the system 6 is usually stationary during the periods of inactivity, the position of starting the new period of activity is taken as equal to the last position estimated in the preceding period of activity.
(115) In another embodiment and assuming that the location system remains stationary between two successive periods of activity, the last vector B.sub.0 used in the preceding period of use is stored. Next, at the beginning of the subsequent period of activity, it is this vector B.sub.0 stored in the preceding period of activity which is used. This makes it possible not to have to update the vector B.sub.0 on the basis of the position measured by the unit 10 while movements of the vehicle 2 in the present period of activity remains insubstantial.
(116) In one simplified embodiment, whatever the position of the vehicle 2, the norm of the vector B.sub.0 is considered to be constant. In this case, the model 38 may be simplified by storing only the data needed to determine the direction of the vector B.sub.0 according to the position, without it being necessary to determine the norm of this vector B.sub.0. Operations 56 and 58 may therefore be omitted.
(117) In the particular case in which the vehicle includes a metal or magnetic mass that is systematically stationary relative to the system 6 and which modifies the direction of the geomagnetic field which passes through the magnetometer 30, this interference in the geomagnetic field may be directly incorporated within the model 38.
(118) Variants of the Algorithm for Estimating the Scale and Offset Coefficients:
(119) Other choices are possible for the initial state vector X.sub.0 when the indicator I.sub.CF is equal to zero. For example, as a variant, the vector X.sub.0 is chosen to be equal to [1 1 1 0 0 0].sup.T.
(120) In certain cases, the value of the scale coefficient of a measurement axis of the magnetometer 30 is also non-negligibly dependent on the components of the magnetic field measured on other measurement axes. In this case, the matrix A is not a diagonal matrix and the coefficients of the matrix A which are not located on its diagonal must also be estimated. For this, the state vector X.sub.k is expanded so as to include the nine coefficients of the matrix A instead of only the three coefficients a.sub.x, a.sub.y and a.sub.z of the diagonal. The various equations of the linear Kalman filter must by adjusted accordingly.
(121) As a variant, the common reference frame in which the vector B.sub.raw is compared with the vector B.sub.0 is a reference frame other than the reference frame R.sub.b. For example, the common reference frame is the reference frame R.sub.T. In this case, the estimated orientation of the vehicle is used to construct a rotation matrix which allows the components of the vector B.sub.raw, which are expressed in the reference frame R.sub.b, to be converted into components expressed in the terrestrial reference frame R.sub.T. The algorithm for estimating the scale and offset coefficients must then be adjusted in order to account for the fact that the common reference frame is the reference frame R.sub.T and not the reference frame R.sub.B. Potentially, the common reference frame may also be a third reference frame other than the reference frames R.sub.b and R.sub.T from the moment when it is possible to construct, on the basis of the determined orientation of the vehicle 2, rotation matrices which allow the vectors B.sub.raw and B.sub.0 to be expressed in this common reference frame.
(122) Here, the scale and offset coefficients are established so as to minimize the difference between the vector B.sub.C and the vector B.sub.0.sup.b. For this, the estimation algorithm has been described in the particular case in which it is a linear Kalman filter. However, any other estimation algorithm allowing the same problem to be solved may be used. As examples of other usable estimation algorithms, the following algorithms may be mentioned: an extended Kalman filter, a particle filter, the recursive least squares (RLS) algorithm, a maximum likelihood estimator or any other deterministic estimator.
(123) If the movements of the vehicle 2 since the last execution of operation 58 are insubstantial enough to be able to assume that they will not cause any significant change in the vector B.sub.0, then, as long as this condition is met, the vector B.sub.0 is not recalculated during the execution of the calibration phase 80. Conversely, if the measured movements of the vehicle 2 are substantial enough to correspond to a significant change in the vector B.sub.0, then, in phase 80, operation 58 is performed again while this time taking the position currently estimated by the module 26 into account. Thus, the reference vector used in phase 80 is not necessarily the same as that used in phase 48.
(124) Variant of the Various Tests Described:
(125) Other embodiments of test 1) are possible. For example, if a vehicle is moving systematically horizontally, only the accuracy in the measurement of the yaw angle is tested and once this is high enough, the calibration of the magnetometer 30 is updated without taking the accuracy in the measurement of the roll and pitch angles into account. Thus, as a variant, test 1) is replaced with a test in which only the standard deviation σ.sub.ψ is compared with the threshold S.sub.1.
(126) In another variant, the standard deviations σ.sub.ψ, σ.sub.θ are σ.sub.φ are each compared with different predetermined thresholds.
(127) Test 1) may be modified to use, instead of the standard deviations σ.sub.ψ, σ.sub.θ and σ.sub.φ, the variances in the estimates of the yaw, pitch and roll angles.
(128) As a variant, a value strictly greater than zero is assigned to the indicator I.sub.CF only if all of conditions 6.1 to 6.6 are met. This variant is useful in particular for vehicles that are liable to exhibit a substantial slope with respect to the vertical on starting up the system 6. Specifically, in this case, the yaw angle is also heavily dependent on the accuracy of the measurement from the magnetometer along the measurement axis z.sub.b. For example, this variant is useful if the vehicle is a missile on a launch ramp.
(129) Step 82 may include more or fewer tests. For example, in one highly simplified embodiment, only test 1) is implemented in step 82. In another embodiment, additional tests are implemented in step 82. For example, a test for the accuracy of the estimate of the position of the vehicle 2 is implemented in order to trigger the calibration of the magnetometer 30 only if the position is known with sufficiently high accuracy. It is also possible to add a test which verifies that the norm of the vector B.sub.raw is above a predetermined threshold so as to prevent the current values 34 from being updated in the presence of an insufficiently strong geomagnetic field. Such a situation may be encountered, for example, in the presence of a disruptor which generates a field with an intensity that is substantially equal to that of the geomagnetic field but in an opposite direction.
(130) Other embodiments of test 5) are also possible. For example, test 5) is modified to verify in addition that the new estimates of the values of the offset coefficients are located within predetermined possible ranges of values. In another simplified embodiment, test 5) is omitted. In that case, the values of the scale and offset coefficients are not bounded. In another embodiment, if test 5) is not passed, instead of bounding the new estimates of the values of the scale coefficient, they are not modified but the value of the indicator I.sub.CF is taken as equal to zero.
(131) Other embodiments of test 6) are possible. For example, if a sufficiently high accuracy in the coefficients a.sub.x and a.sub.y already guarantees a sufficiently accurate estimate of the yaw angle by itself, then test 6) may be simplified. For example, test 6) no longer includes conditions 6.1 and 6.2.
(132) As a variant, step 86 of verifying the quality of the calibration is omitted. In this case, the value of the indicator I.sub.CF is systematically taken as equal to two after the execution of step 84.
(133) Other Variants:
(134) The system 6 described here may be used in other vehicles, such as a submarine. Generally speaking, the term “vehicle” used here refers to any object capable of moving and fitted with a system 6 fixed to this object for determining its position and orientation. For example, the vehicle may be a missile, a rocket, a smartphone, a portable computer or the like.
(135) The magnetometer 30 may be incorporated within the inertial navigation unit 12. It may also be a component independent of the unit 12 and attached mechanically to the unit 12 and to the satellite geolocation unit 10.
(136) The system 6 may include additional sensors in order to improve the accuracy with which the position and orientation of the vehicle are determined still further. For example, the system 6 may include: a pressure sensor so as to determine the altitude of the vehicle better; and/or an odometer, such as a pedometer, which measures the distance covered by the vehicle 2 between two successive times.
(137) Other embodiments of the magnetometer 30 are possible. For example, in the case of a vehicle 2 moving only horizontally, the magnetometer 30 may be replaced with a biaxial magnetometer, i.e. a magnetometer including only two, horizontal measurement axes. In other embodiments, the magnetometer 30 is replaced with a magnetometer including more than three non-collinear measurement axes. In this last case, some of the measurements are redundant, which may be used to increase the measurement accuracy.
(138) In step 56, the initial estimate of the position of the vehicle may be produced differently. For example, this initial estimate is produced by taking into account, in addition to or instead of the measurements from the unit 10, the measurements from other sensors on board the vehicle or the measurements from the unit 12 and/or from the magnetometer 30.
(139) In step 60, producing the initial estimate of the yaw angle on the basis of the vectors B.sub.c and B.sub.0 makes it possible to obtain a more accurate initial estimate of the yaw angle than if only the vector B.sub.c were used. However, as a variant, it is also possible to use only the vector B.sub.c to produce the initial estimate of the yaw angle. For example, the initial estimate of the yaw angle is produced using the following relationship: ψ.sub.ini=atan2(B.sub.cx, B.sub.cy), where: ψ.sub.ini is the initial estimate of the yaw angle; and B.sub.cx and B.sub.cy are the values of the magnetic field B.sub.c which are measured along the axes x.sub.b et y.sub.b, respectively, of the reference frame R.sub.b; “atan2” is the known variant of the arctangent function such as defined, for example, on Wikipedia.
(140) This relationship is applicable under the following conditions: the measurement axes of the magnetometer 30 are parallel to the axes x.sub.b, y.sub.b and z.sub.b, respectively, of the reference frame R.sub.b on board the vehicle; the axis x.sub.b runs parallel to the direction in which the vehicle moves when moving forward in a straight line; the axis y.sub.b of the magnetometer points to the left of the vehicle when it is moving forward; the axis z.sub.b is vertical and points upward.
(141) The initial estimate of the yaw angle using this relationship is quite accurate when the vehicle is located on a horizontal plane. In the case that the vehicle is not located on a horizontal place, known techniques using the measurements from the accelerometer 14 make it possible to obtain the projection of the measurements from the magnetometer 30 in the horizontal plan and then to use the relationship above. Such techniques are, for example, described in the book by Groves cited above.
(142) Numerous other different embodiments of the merge algorithm exist. For example, in one particular embodiment, the new measurements from the magnetometer 30 are also taken into account in order to establish each new estimate of the position and of the orientation of the vehicle 2. If the system 6 includes other sensors such as a pressure sensor or an odometer, then the merge algorithm is also modified to take the measurements from these other sensors into account too.
(143) As a variant, the data pre-recorded in the memory 24 between two successive periods of activity are only the values of the coefficients a.sub.x, a.sub.y, a.sub.z, Off.sub.x, Off.sub.y and Off.sub.z. In this case, in operation 54, the current values of the scale and offset coefficients are first calculated from the coefficients a.sub.x, a.sub.y, a.sub.z, Off.sub.x, Off.sub.y and Off.sub.z pre-recorded in the memory 24.
(144) The feature according to which the scale and offset coefficients of the magnetometer 30 are updated only if no magnetic disruptor is located in proximity to the magnetometer may be implemented independently of test 1). For example, in another embodiment, in step 82, test 2) or 3) is implemented and test 1) is omitted.
SECTION III: ADVANTAGES OF THE DESCRIBED EMBODIMENTS
(145) Triggering the updating of the current values 34 of the scale and offset coefficients only when the margin of error in the estimate of the orientation of the vehicle 2 is smaller than the threshold S.sub.1 makes it possible to avoid the calibration of the magnetometer 30 being negatively affected due to overly large errors in this estimate of the orientation of the vehicle 2. The reliability of magnetometer 30 calibration is therefore improved. This improvement results in the initial estimate of the yaw angle at the beginning of a subsequent period of activity being better, which then speeds up the convergence of the merge algorithm towards more accurate estimates of the position and of the orientation of the vehicle 2. Moreover, in the embodiment described, the updating of the scale and offset coefficients is straightforward to implement. In particular, it may be implemented while the vehicle 2 is moving and does not require the vehicle 2 to move or to perform predetermined movements in advance.
(146) Allowing the scale and offset coefficients to be updated only if test 3) is passed makes it possible to avoid such an update being performed in the presence of a magnetic disruptor. This contributes to increasing the reliability of magnetometer calibration on starting a subsequent period of activity.
(147) Taking the standard deviation into account in test 3) allows this test 3) to be automatically adjusted so that the threshold S.sub.3 is not exceeded in the presence of just usual noise in the measurement from the magnetometer 30. This contributes to increasing the reliability of detection of a disruptor in proximity to the magnetometer 30 and hence the reliability of magnetometer calibration.
(148) Test 4) makes it possible to avoid performing operation 84 pointlessly. Moreover, this decreases the risk of the scale and offset coefficients, which were determined in a situation in which the yaw angle does not vary, being able to diverge and negatively affect the calibration of the magnetometer 30.
(149) Calculating the vector B.sub.0 according to the estimated position of the vehicle makes it possible to account for the fact that the norm of the terrestrial geomagnetic field is not perfectly uniform at every point on the earth. This improves the accuracy of the magnetometer 30 calibration and hence the speed with which the merge algorithm converges toward a more accurate estimate of the position and of the orientation of the vehicle 2.
(150) Calculating a margin of error in the estimate of at least one of the scale and offset coefficients and putting the use of this new estimate of the scale and offset coefficients on hold for as long as this margin of error is too high makes it possible to avoid using insufficiently accurate scale and offset coefficients in order to guarantee a reliable estimate of the yaw angle.