1. Field of the Disclosure
This invention relates to a method and system for integrating data from different sensors and estimating the position, velocity and orientation of a vehicle. It is particularly suited to being applied to Unmanned Aerial Vehicles (UAV) incorporating low-cost sensors for:
The invention is comprised within the fields of sensor fusion, attitude determination and inertial navigation.
2. Description of Related Art
There are several methods for estimating the position, velocity and orientation of a vehicle:
1. Inertial Navigation System or INS: Integrates the angular accelerations and velocities provided by an Inertial Measurement Unit (IMU) to calculate the position, velocity and orientation of the vehicle. Since this integration is neutrally stable, errors accumulate and the obtained solutions quickly diverge unless very high quality sensors are used, increasing system cost and weight.
The solution is to stabilize the integration by means of closed loop feedback with measurements from other sensors that do not diverge over time. Airspeed measurements and the measurements provided by GPS and magnetometers are used for this purpose. Several methods are used to integrate all or part of these measurements:
1.1. Linear Kalman Filter: It is the simplest filter with the lowest computational cost and therefore very interesting for low-cost applications. The drawback is that it is applicable only to linear or linearized dynamical systems. Therefore it can only be used in certain cases.
1.2. Complementary Kalman Filter: INS algorithms are used to integrate the measurements of an IMU that may be a low-cost IMU. The INS inputs are corrected with the outputs of a linear Kalman filter consisting of an INS and measurement error model and fed by the error between the position and velocity estimated by the INS and the measurements by the remaining sensors. The drawback is that linearization leading to the error model means that the global convergence is not assured and spurious updates could lead to system divergence; furthermore, like all Kalman filters its design implies knowledge of statistics of both the measurement noise and process noise and that these noises are white, Gaussian and non-correlated noises, which in the case of low-cost sensors occurs rather infrequently. Its computational cost ranges between moderate to high, depending on the size of the state vectors and measurements.
1.3. Extended Kalman Filter: This is probably the most widely used filter as it is more precise than the standard Kalman filter. It can estimate the vehicle dynamics which is generally not linear because it allows non-linear terms both in the model and in the measurements. It has a higher risk of divergence than the standard Kalman because the covariance equations are based on the linearized system and not on the real non-linear system. Its asymptotic local stability has been proven, but its global stability cannot be assured. In addition to sharing with the remaining Kalman filters the need to know the noise and measurement statistics, its computational cost is high.
2. Static or Single Frame Method: Unlike the previous filtering methods, a static estimation is carried out consisting of obtaining the orientation from a set of unit vector measurements in both body axes and reference axes. Almost all logarithms (Davenport's, QUEST, FOAM, . . .) are based on resolving the Wahba problem which consists of finding an orthogonal matrix with a +1 determinant minimizing a cost function made up of the weighted sum of error squares between the unit vectors in body axes and the result of transforming the vectors into reference axes by the matrix that is sought. It is usually applied in space systems in which the unit vectors are obtained by pointing at the sun and other stars.
There are some examples of the application to a dynamic estimation but it is based on its integration in a linear or complementary Kalman filter with the previously discussed drawbacks.
The invention relates to a system according to claim 1 and to a method according to claim 7. Preferred embodiments of the system and method are defined in the dependent claims.
Given the shortcomings of the prior art, which can be summarized as:
To attain the aforementioned objectives it is necessary to solve the problem of stabilizing the integration of kinematic equations in a global manner without being computationally costly. To do so, rather than using statistical estimation methods such as in the Kalman filter this invention approaches the problem as a non-linear control problem and solves it by making use of the Lyapunov stability theory, finding a control law that provides the corrections uω which have to be applied to the angular velocity to stabilize the integration of the kinematic equations in an asymptotic global manner.
The approach of the non-linear control problem and its solution has been developed as follows:
a. Approach: {right arrow over (g)}b,{right arrow over (e)}b are two constant unit vectors expressed in vehicle-fixed axes (body axes) and {right arrow over (g)}t, {right arrow over (e)}t are the same vectors expressed in local axes (Earth's axes).
If B is the direction cosine matrix, then:
{right arrow over (g)}b=B{right arrow over (g)}t
{right arrow over (e)}b=B{right arrow over (e)}t
By integrating kinematic equations with the measured angular velocity, b, a direction cosine matrix {circumflex over (B)} would be obtained, which would be known to be erroneous due to sensor imprecision. Therefore, a correction uω will be applied to the measured angular velocity. Referring to {circumflex over (ω)}b=
b+uω as the corrected angular velocity and by integrating it, the direction cosine matrix {circumflex over (B)} will be obtained. Estimated vectors ĝb,êb can be obtained from this direction cosine matrix:
ĝb={circumflex over (B)}{right arrow over (g)}t
ĝb={circumflex over (B)}{right arrow over (e)}t
Now it is necessary to determine the correction uω to cancel out the error
{tilde over (g)}b={right arrow over (g)}b−ĝb {tilde over (e)}b={right arrow over (e)}b−êb [1.1]
This is a non-linear control problem that is going to be solved using an extension of the Lyapunov function concept referred to as Lyapunov Control Function (Clf) [ref. 1] in the following steps:
the derivative of which according to the solution of [1.5] is:
Taking into account the vector product properties:
Calling {right arrow over (Γ)}={right arrow over (g)}b×ĝb+{right arrow over (e)}b×êb and substituting in [1.8], the following is obtained:
Suppose that measurements b,
b contain additive errors. The real vector will be the one measured plus the measurement errors:
{right arrow over (g)}=+{tilde over (g)}{right arrow over (e)}=
+{tilde over (e)} [1.11]
By substituting in the definition of {right arrow over (Γ)}, the following is considered:
As only the measured value of {right arrow over (Γ)} will be known, only {circumflex over (Γ)} can be used in the control laws and equation [1.10] is modified to be:
so it can no longer be assured that system [1.5] with uω=σ{right arrow over (Γ)} is globally uniformly asymptotically stable (GUAS) for the equilibrium point z=0. However, it will be demonstrated that it is ISS (Input-to-State Stable) [ref. 2], [ref. 3] and [ref. 1], i.e. the following property is satisfied:
where β is a class KL function and γ is a class K function [ref. 1].
By using Young's inequality, the following is considered:
and substituting in [1.13]:
proving that
provided that
As J(z) and Γ2(z) are positive-definite and are not radially bounded and J(z) is smooth, there are class Kω γ1,γ2,γ3 functions such as:
γ1(|z|)≦J(z)≦γ2(|z|) γ3(|z|)≦Γ2(z) [1.17]
Therefore,
Which means that if:
then:
which in turn means that
If on the other hand then
Therefore, taking into account [1.19] and [1.20], it is shown that z(t) is globally bounded:
and converges to the residual set:
Furthermore, by Theorem C.2 [ref. 1] (formulated in [ref. 2]), system [1.5] with Control Law uω=σ{right arrow over (Γ)} of is ISS with respect to the errors of the sensors {tilde over (Γ)}.
Therefore, this invention relates to a system for estimating the position, velocity and orientation of a vehicle, such as an unmanned aircraft, including:
means for determining the components of two noncollinear constant unit vectors b,
b according to vehicle body axes;
means for determining the components of said noncollinear constant unit vectors {right arrow over (g)}t,{right arrow over (e)}t according to the Earth's axes; and
means for determining the three components of the angular velocity {circumflex over (ω)}b of the vehicle in body axes.
The sensor fusion system of the invention further includes:
means for correcting the angular velocity b with a correction uω and obtaining a corrected angular velocity {circumflex over (ω)}b=
b+uω;
a module for integrating the kinematic equations of the vehicle receiving the corrected angular velocity b as input and providing the transformation matrix {circumflex over (B)} for transforming Earth's axes into vehicle body axes and the orientation of the vehicle in the form of Euler angles {circumflex over (φ)};
a synthesis module of the components in body axes of the two noncollinear constant unit vectors to provide an estimation of said noncollinear vectors in body axes ĝb,êb , where said estimation is calculated as follows:
{right arrow over (g)}bB{right arrow over (g)}t {right arrow over (e)}b=B{right arrow over (e)}t
a control module implementing a control law to calculate said correction uω, where said control law is:
uω=σ(b×ĝb+
b×êb) [1]
where σ is a positive scalar, such that by applying this correction uω to the measured angular velocity b and using the resulting angular velocity {circumflex over (ω)}b=
b+uω, as input to the module for integrating the kinematic equations, the latter are stable in the ISS sense and the error in the estimation of the direction cosine matrix {circumflex over (B)} and of the Euler angles {circumflex over (φ)} is bounded.
Said noncollinear unit vectors {right arrow over (g)},{right arrow over (e)} are preferably local gravity {right arrow over (g)} and projection of the magnetic field on the plane perpendicular to gravity {right arrow over (e)}.
The means for determining the components of the two noncollinear constant unit vectors b,
b according to vehicle body axes preferably include:
an inertial measurement unit (IMU) including a group of at least three gyroscopes and at least three accelerometers located along the vehicle body axes;
a magnetometer with the ability to measure the Earth's magnetic field according to the vehicle body axes;
static and differential pressure sensors;
two vanes to measure the angles of attack and sideslip;
an angular velocity acquisition and processing module configured to obtain the angular velocity b (t) measured by the gyroscopes and delaying it to obtain
b(t−τ);
a data acquisition and processing module configured to acquire the specific force b (t) measured by the accelerometers, the static pressure
s(t), the differential pressure
d(t), the angle of attack
(t), the angle of sideslip
(t), and the value of the Earth's magnetic field
b(t) measured in the magnetometer, delay them and process them to calculate the true airspeed
(t−τ), the air velocity in body axes
bb (t−τ) as follows:
to calculate the numerical derivative of the air velocity in body axes b(t−τ), to calculate the local gravity in body axes
b as follows:
b(t−τ)=
b(t−τ)+
b(t−τ)×
b(t−τ)−
b(t−τ)
and to calculate the projection of the Earth's magnetic field on the horizontal plane perpendicular to local gravity {right arrow over (e)}(t−τ) as follows:
The means for knowing the components of the two noncollinear constant unit vectors {right arrow over (g)}t,{right arrow over (e)}t, according to the Earth's axes can include:
a GPS (Global Positioning System) receiver, and the data provided by the GPS are acquired, processed and used in said data acquisition and processing module (17) to calculate the components of the two noncollinear constant unit vectors {right arrow over (g)}t,{right arrow over (e)}t according to the Earth's axes.
The system can preferably include a Savitzky-Golay filter in which b, numerical derivative of
b, is calculated.
According to an additional aspect of this invention, a sensor fusion system is provided for estimating position and velocity of a vehicle, particularly an unmanned aircraft, preferably further including:
means of acquiring data from a group of sensors located in the vehicle, such as a GPS (Global Positioning System) receiver and a static pressure sensor which provide position and velocity in Earth-fixed axes t,
t;
in the event that the means for knowing the components of the previously mentioned constant unit vectors according to the vehicle body axes did not include data acquisition means of a group of three accelerometers located along the vehicle body axes, the latter will be included to provide the specific force b in body axes;
a navigation module where the vehicle navigation equations are integrated from the specific force b and the direction cosine matrix B to obtain calculated position and velocity in local axes and are corrected in a Kalman filter, which can be static, to obtain estimated position and velocity in local axes.
In the case of an unmanned aircraft all these requirements of means for knowing different parameters or for sensor data acquisition can be met with the sensors usually provided in this type of aircrafts, as will be seen in the coming sections, and therefore the amount of sensors needed is not a drawback of this invention, but quite the opposite, it is an advantage insofar as it extracts maximum information from the sensors that it has.
Another object of this invention is to provide a sensor fusion method for estimating the position, velocity and orientation of a vehicle comprising:
calculating the components of two noncollinear constant unit vectors b,
b according to vehicle body axes from measurements of sensors located in the vehicle according to the body axes of the latter;
calculating the components of said noncollinear constant unit vectors {right arrow over (g)}t,{right arrow over (e)}t, according to the Earth's axes from measurements of sensors located in the vehicle which provide position in local axes;
measuring the three components of angular velocity b of the vehicle in body axes;
correcting the angular velocity b with a correction uω and obtaining a corrected angular velocity {circumflex over (ω)}b=
b+uω;
integrating the kinematic equations of the vehicle, according to the corrected angular velocity {circumflex over (ω)}b, and providing the transformation matrix {circumflex over (B)} for transforming the Earth's axes into vehicle body axes and the orientation of the vehicle in the form of Euler angles {circumflex over (φ)};
calculating an estimation of the components in body axes of the two noncollinear constant unit vectors ĝb,êb, where said estimation is calculated as follows:
ĝb={circumflex over (B)}{right arrow over (g)}t
êb={circumflex over (B)}{right arrow over (e)}t
obtaining the correction uω by means of the control law:
uω=σ(b×ĝb+
b×êb) [1]
where σ a positive scalar, such that upon applying this correction uω to the measured angular velocity b and using the resulting angular velocity {circumflex over (ω)}b=
b+uω as input to the module for integrating the kinematic equations, the latter are stable in the ISS sense and the error in the estimation of the direction cosine matrix {circumflex over (B)} and of the Euler angles {circumflex over (φ)} is bounded.
Literature:
A series of drawings which aid in better understanding the invention and which are expressly related to an embodiment of said invention, presented as a non-limiting example thereof, are very briefly described below.
As an example of the best way to carry out the invention to practice, the embodiment of a sensor fusion unit is shown for a flight control system of a short-mid range, low speed unmanned aerial vehicle (UAV) without this ruling out the possibility of there being other implementations.
an Inertial Measurement Unit (IMU) 21, including a group of three gyroscopes 211 and three accelerometers 212 located along the vehicle body axes (in this case it is a low-cost solid state IMU, for example Crossbow IMU400);
a magnetometer 22 capable of measuring the Earth's magnetic field according to the three vehicle body axes;
a Pitot tube 23 including static pressure 231 and differential pressure 232 sensors;
two vanes 24 provided with potentiometers to measure the angles of attack 241 and sideslip 242;
a GPS (Global Positioning System) receiver 25 with a single antenna.
The best contemplated embodiment of the system of the invention is a microprocessor-based system made up of PC-104 cards. As is shown in
In this embodiment the directions of local gravity {right arrow over (g)} and of the projection of the Earth's magnetic field on the horizontal plane perpendicular to local gravity {right arrow over (e)}, considered constants, are used as noncollinear constant unit vectors. Both in body axes and in the Earth's axes, the components of these vectors are calculated from previously mentioned sensor measurements in the sensor data acquisition and processing module 17.
So to calculate b, the specific force
b(t) measured by the accelerometers 212 is acquired in module 17 and delayed a time τ, corresponding to five sampling periods in the FIFO 170 to obtain
b(t−τ) and supply it to module 178. Similarly, the angular velocity
b(t) measured by the gyroscopes 211 is acquired in the angular velocity acquisition and processing module 11 and is delayed in the FIFO 111 to obtain
b(t−τ) which is supplied to module 178. The static pressure
s measured in sensor 231 and the differential pressure
d measured in sensor 232 are acquired in module 17 and processed in the altitude and speed calculation module 171 to obtain
the true airspeed (TAS) and the altitude h by a process that is known for a person skilled in the art. As this process requires knowing the outside ambient temperature T0, such temperature is initially provided before the flight, for example in an initialization file. The true airspeed
is supplied to module 176 together with the angle of attack
acquired from sensor 241, and the angle of sideslip
acquired from sensor 242, and the air velocity vector in body axes
b(t) is calculated in said module 176 as follows:
This velocity is delayed a time τ to obtain b(t−τ) which is supplied to module 178. The velocity
b(t) is numerically derived by using a Savitzky-Golay filter 179 [ref. 6] of degree four with a window of 11 samples, the derivative for the sample being calculated with index 5, i.e. the derivative is delayed τ, five sampling periods. This derivative
b(t−τ) is supplied to module 178 where the components of the local gravity vector
b(t−τ) in body axes are finally calculated as follows:
b(t−τ)=
b(t−τ)+
b(t−τ)×
b)(t−τ)−
b(t−τ)
which correspond to the translational equations of the movement of the vehicle with the hypothesis of “flat Earth”, constant gravity, accelerometer located in the vehicle's center of gravity and constant wind speed. In view of these equations, the reason for delaying the different variables is justified. Obtaining the numerical derivative of velocity, which is a variable that contains noise, is not an easy task; one of the best solutions is the Savitzky-Golay filter, but it is a non-causal filter so the moment in which the derivative is calculated must be delayed.
To calculate b, the value of the Earth's magnetic field
b(t) measured in the magnetometer 22 is first acquired in module 17 and is delayed a time τ in the FIFO 174 to obtain
b(t−τ) and supply it to module 175. The following calculation is performed in this module 175, which has also been provided with
b(t−τ):
The calculation of the components of the unit vectors in Earth's axes in the direction of local gravity and the projection of the Earth's magnetic field on the horizontal plane perpendicular to local gravity {right arrow over (g)}t,{right arrow over (e)}t is done in module 173. An International Geomagnetic Reference Field (IGRF) [ref. 4] model is implemented in this module 173 which provides the components of the Earth's magnetic field in Earth's axes {right arrow over (m)}t given the position of the vehicle t. A local gravity model provides {right arrow over (g)}t in the same manner from the position of the vehicle
t. To obtain this position, the measurements of the GPS 25 are obtained in module 17, processed in module 172 to convert them from the GPS reference system to Earth's axes and the position
t thus obtained is supplied to module 173.
The three gyroscopes 211 located along the aircraft body axes measure the three components of the angular velocity b in these axes. It is acquired in an angular velocity acquisition and processing module 11, where a FIFO 111 is delayed a time τ corresponding to five sampling periods. Module 11 supplies the current angular velocity
b(t) to the kinematic equation solution module 13 and the delayed angular velocity
b(t−τ) to module 12, where the correction uω(t−τ) calculated in control module 14 is added to it to obtain a corrected angular velocity {circumflex over (ω)}b(t−τ)=
b(t−τ)+uω(t−τ), which is also supplied to module 13.
The quaternion qT=[q0q1q2q3] is used in the kinematic equation solution module 13 as an attitude representation means. The quaternion is initially calculated in module 134 from the initial Euler angles φ0T=[φθψ] supplied externally as shown below:
The kinematic equations of the movement of the vehicle expressed according to the quaternion are:
which shall be represented in abbreviated form as: {dot over (q)}(t)=ψ(ωb(t))q(t). These equations will be integrated in two steps:
in a first step, the corrected angular velocity {circumflex over (ω)} will be used in the differential equations [2.2] and will be integrated in module 137 using, for example, the McKern method [ref. 5], from the initial time until t−τ because only {circumflex over (ω)}b(t−τ), not {circumflex over (ω)}b(t), is available in each instant t. {circumflex over (q)}(t−τ) is thus obtained and as was demonstrated when developing the control law, it is known that the error {tilde over (q)}(t−τ)=q(t−τ) is bounded. The second step of the integration is done in module 132 where the derivative of the quaternion, calculated in module 131 using the angular velocity b(t) , is integrated from instant t−τ until t, and using as an initial value in t−τ the quaternion estimated in module 137: {circumflex over (q)}(t−τ) . Given that this second step of the integration is carried out during a very short time τ, corresponding to five samples, the error committed by using
b(t) rather than {circumflex over (ω)}b(t) is negligible and the obtained result is {circumflex over (q)}(t), which is distributed to module 138 where the transformation matrix {circumflex over (B)}(t) for transforming the Earth's axes into body axes is calculated as shown below:
using the quaternion {circumflex over (q)}(t). {circumflex over (B)}(t−τ) is calculated in the same way in module 138 using {circumflex over (q)}(t−τ) provided by module 137.
Once {circumflex over (B)}(t−τ) provided by module 137 and {right arrow over (e)}t(t−τ),{right arrow over (g)}t(t−τ) provided by 17 are known, êb(t−τ),ĝb(t−τ) is synthesized in module 15 as shown below:
êb(t−τ)={circumflex over (B)}(t−τ){right arrow over (e)}t
ĝb(t−τ)={circumflex over (B)}(t−τ){right arrow over (g)}t
and the previous correction uω(t−τ) is calculated in module 14 by means of the control law:
uω(t−τ)=σ(b(t−τ)×ĝb(t−τ)+
b(t−τ)×êb(t−τ))
where σ is a positive constant scalar gain which has been selected in this case at a value of 0.1.
As is shown in b(t) and gravity {right arrow over (g)}t provided by module 17 and B(t) provided by module 13:
t={circumflex over (B)}T
b+gt
and each component of t is supplied as a control signal to each of the filters. Assume that
t contains exponentially correlated noise that can be described as:
at=t+r
{dot over (r)}=−γr+εr
where εr is white noise with zero mean and γ is diagonal. Therefore, the basic state vector consisting of pt,Vt position and velocity increases with r, corresponding to the previous shaping filter to take into account the correlation in acceleration.
It is considered that the velocity of the mass of air with respect to the Earth consists of one constant Vw, the wind velocity , and a correlated noise wg representing atmospheric turbulence and which can be represented by:
where εs is white noise with zero mean and the constants λ,μ are determined from the spectral density specified in [Mil. Spec. 1797].
To identify the wind velocity in the Earth's axes, the previously mentioned shaping filter will be incorporated adding three more components to the state vector of each of the filters: Vw,s0, s1. Finally the state vector is:
The state equations are:
{dot over (p)}t=Vt
{dot over (V)}t=t+r
{dot over (r)}=−γr+εr
{dot over (s)}0=s1
{dot over (s)}1=λ0s0=λ1s1+ε3
{dot over (V)}w=0
In addition to the GPS measurements t,
t, the air velocity in the Earth's axes will be incorporated:
t={circumflex over (B)}T
b
which is calculated in module 165.
The measurement of the barometric height will also be incorporated but only in the filter corresponding to channel z:
h−h0=−pt2+ηh
The measurement equations are:t=Vt−Vw−μ0s0−μ1s1+ηv
t=Vt+ηV
t=pt+ηp
h−h0=−pt2+ηh
where η is white noise with zero mean.
The Kalman filters are:
{dot over (x)}i=Aixi+Bti+Ki[yi−Cixi]
i=0,1,2
where:
and the gains Ki are obtained by solving the corresponding algebraic Riccati equation given the covariance matrixes of the process Qi and measurement Ri noise:
AiPi+PiAiT+Qi−PiCiTRi−1CiPi=0
i=0,1,2
Number | Date | Country | Kind |
---|---|---|---|
200400474 | Feb 2004 | ES | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/ES2005/000088 | 2/25/2005 | WO | 00 | 5/4/2007 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2005/083358 | 9/9/2005 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
5321631 | Germanetti | Jun 1994 | A |
5774832 | Vanderwerf | Jun 1998 | A |
6496779 | Hwang | Dec 2002 | B1 |
20020116125 | Lin | Aug 2002 | A1 |
Number | Date | Country | |
---|---|---|---|
20070213889 A1 | Sep 2007 | US |