The present invention relates to a satellite navigation systems, and, more particularly, to determination orientation of the rigid body using multiple navigation antennas fixed on it.
Assume that we have multiple antennas fixed on the rigid non-deformable non-elastic body. The problem to be solved is determination of the orientation of the body relative to the certain reference frame fixed on Earth. More precisely, of interest is determination of the angular orientation of the body frame connected to the body with respect to the local horizon frame connected to the Earth as shown in the
1) Three Euler angles, Heading, Pitch, Roll;
2) Orthogonal matrix;
3) Quaternion vector
All three approaches are, basically, equivalent. Connection between Euler angles and orthogonal matrix rotating from the local horizon to the body frame is described by the following equation, where ψ,θ,ϕ stands for heading, pitch, and roll angles respectively and Q stands for orthogonal matrix
Definition of angles and their positive direction are shown in
Exemplary location of antennas on the body is shown in
Antennas can be considered as vertices of the graph. Connecting each vertex with every other vertex we obtain the full connected non-oriented graph shown in the
Let us choose one of possible spanning tree in the graph. The choice of the spanning tree will be discussed further below. Generally speaking, each spanning tree provides certain precision of the attitude calculations. The idea behind the optimization of the spanning tree choice is getting the “best geometry” in terms of attitude precision quality. Different examples of the spanning tree are shown in
Each edge of the spanning tree is denoted by (k,l), with k and l being vertices or, in other words, indices representing, for brevity, antennas Ak and Al respectively. Since the graph is non-oriented, the order of indices does not matter. However, keeping in mind carrier phase differential (CPD) processing of GNSS measurements, the indices order implies the way the across-receiver differences (described below) are formed. Namely, (k,l) means that a certain observable measured by the antenna Al is subtracted from the measurement measured by the antenna Ak. Below is short description of the GNSS observables used for attitude determination.
Assume that the receiver connected to each antenna, or a multi-antenna receiver connected to plurality of antennas, is capable of receiving multiple GNSS signals of multiple GNSS satellites, including (but not limited to) the following set:
The number of such signals can exceed several dozen. The following fundamental set of observables is used:
where the following notations are used (see [1, Chapter 6, 7]):
Thus, the antenna position is measured by the pseudorange and carrier phase observables for the plurality of satellites. Error components, including biases and noise, affecting the observable equations (2) and (3), prevent a direct solution for the receiver antenna position.
Carrier phase measurements are much more precise, compared to the pseudorange measurements, since the carrier phase noise has standard deviation in the centimeter or even millimeter range, while the standard deviation of the pseudorange measurements is usually of the meter or decimeter range. On the other hand, the carrier phase measurement is affected by the carrier phase ambiguity, which is an unknown integer valued quantity.
Thus, elimination of measurement errors is necessary for precise positioning. To achieve a high precision in position determination or relative across-antenna baseline determination, different methods of error mitigation are applied. For example, tropospheric errors can be precisely modeled and compensated in observables of equations (2) and (3). Ionospheric errors can be estimated along with other unknowns or eliminated by differencing. Noise is easily filtered.
Errors common to two antennas, like clock and hardware biases of the satellite, can be compensated in a difference between two receivers. Also, if two antennas are located sufficiently close to each other, then the ionospheric delay error can be assumed common to two antennas. In the GNSS processing theory the term “sufficiently close” means a kilometers range, therefore for attitude determination application when antennas are located on the same rigid body flying, floating, or running over Earth, the ionospheric error can be assumed common to all N antennas. The same goes for the “ephemerides” error.
The processing mode involving calculation of the across-receiver difference (also called the “first difference”) is referred to as differential GNSS processing or DGNSS. The DGNSS processing is performed in real time and includes not only pseudoranges but also carrier phase observables, and is referred to as real time kinematic (RTK) or CPD processing. The CPD processing of difference between antenna k and antenna l allows for precise positioning of the antenna k relative to the antenna l. Relative position or the baseline vector starting at the antenna l and ending at the antenna k will be denoted by d xkl(t). The symbol (t) implies an explicit dependence of a certain quantity on time. The ionospheric error and ephemerides error are assumed to be eliminated by across-receiver differences.
For two stations k and l the across-receiver differences of pseudorange and carrier phase measurements can be written as
The linearization is then used for precise calculation of the baseline vectors d xkl(t) connecting antennas. The measurements related to the antenna k will be linearized at the approximate position of the antenna l. Approximate position is usually provided by standard standalone (or single antenna) positioning algorithm that uses only pseudorange (2) determined for the antenna Al. The standalone position is usually accurate up to several meters due to uncompensated ionospheric and ephemeris error.
The general form of the linearized navigation model has the following form (see [1, Chapt. 7])
bP(t)=Ad x(t)+eξ(t)+dP (6)
bφ(t)=Λ−1Ad x(t)+Λ−1eξ(t)+n+dφ (7)
The carrier phase ambiguity is across-receiver differenced.
Let M be a total number of satellite signals, including different satellite systems, different satellites, different frequency bands. In the following description, all vectors are represented by columns, and the superscript symbol T denotes the matrix transpose. RM is the M-dimensional Euclidean space. Given a linearization point x0,l(t) ∈ R3 of the antenna Al, notations used in equations (6) and (7) are as follows:
Λ is the M-dimensional diagonal matrix with wavelengths λbs=c/fbs in the main diagonal. Each wavelength corresponds to the specific signal (s,b)
Consideration of pseudorange hardware biases leads to a necessity to consider the plurality of signals the receiver is able to track. In the case of a multi-frequency and multi-system receiver supporting the following bands:
L1, L2 and L5 bands for GPS,
L1 and L2 GLONASS,
L1, E5a, E5b and E6 Galileo,
L1, L2, L5 and E6 QZSS,
L1 an, L5 SBAS,
B1, B2, and B3 Beidou,
the signals (L1 GPS, L1 Galileo, L1 SBAS, L1 QZSS), (L2 GPS, L2 QZSS), (L5 GPS, E5a Galileo, L5 SBAS, L5 QZSS), (E6 Galileo, E6 QZSS), respectively, can share the same hardware channel and therefore will be affected by the same hardware bias, as noted in [1, Chapter 7]. Note that the biases vector dP and the clock shift variable ξ(t) appear as a sum in equation (6). This means that one of the biases, say dL
η1=dL
This representation can be referred to as establishing a bias datum.
In one possible embodiment, the linearized equations (6) can now be expressed in the form
bP(t)=Ad x(t)+eξ(t)+Wηη (9)
The bias vector η has the appropriate dimension mη. Note again that in this exemplary embodiment we follow notations introduced in [1], which is incorporated herein by reference in its entirety.
The bias vector η is three-dimensional (mη=3) for dual-band and dual-system GPS/GLONASS receivers, as only biases η1, η2, η3 are presented among all possible biases listed in (8). In the case of the multi-band, multi-system receiver, the dimension of the vector η can be large. It is one-dimensional in the case of dual-band GPS-only receivers or single band GPS/GLONASS receivers.
The Wη is referred to as bias allocation matrix and has dimensions M×mη. It allocates a single bias, or none, to a certain signal. No bias is allocated to the signal corresponding to the GPS, Galileo, SBAS, or QZSS systems and b=L1 because we combined the bias dL
Consider, for example, a dual-band GPS/GLONASS receiver. Suppose it tracks six GPS satellites and six GLONASS satellites. The total number of dual-band signals is 24. Let the signals be ordered in the following way: six GPS L1, six GPS L2, six GLONASS L1, and six GLONASS L2 signals. The biases allocation matrix presented in the linearized single difference pseudorange equation (9) takes the following form:
Further, the real-valued carrier phase ambiguities (also called “float ambiguities”) are combined with biases dφ, while pseudorange biases are considered as a real valued constant unknown parameter. Thus, after combination of carrier phase ambiguities with carrier phase biases, the equation (7) takes the form
bφ(t)=Λ−1Ad x(t)+Λ−1eξ(t)+n (11)
Note that the noise component is omitted in equations (9), (11) for the sake of brevity.
Combined processing of the linearized observables equations (9) and (11) collected for several successive time instances t (called epochs) allows for filtering out noise and accurate determination of the integer-valued ambiguity vectors n*. Once it is fixed as the integer vector, it is taken to the left side in (11) forming precise unbiased carrier phase measurements b*φ(t)=bφ(t)−n. Rewriting now carrier phase equations to explicitly denote dependence on the pair (k,l) of antennas gives
b*φ,kl(t)=Λ−1Ad xkl(t)+Λ−1eξkl(t) (12)
With the spanning tree determined above and consisting of (N−1) edges (vectors) d xkl one can solve the equation (12) with respect to d xkl in the sense of least squares. Let define the matrix J=Λ−1A and vector E=Λ−1e. The least squares fit problem takes the form
where the symbol ∥ ∥w stands for the weighted Euclidean norm, W is the weighting matrix, reflecting quality of measurements. The problem (13) can further be equivalently rewritten as
The symbol (t) will be omitted for brevity. Taking the internal minimum in (14) one can rewrite it as
where
The problem (15) has solution
d xkl=(
or, for the case of identity weighting matrix
d xkl=(
The 3×(N−1) matrix composed of all d xkl will be denoted by X.
Now attitude calculations can be performed. The same vectors of the spanning tree expressed in the body frame are denoted by d xkl0. They can be accurately determined by measurements tools like laser rulers or others. They can be also determined though GNSS RTK processing when the body is oriented in such a way that the Nose axis points to the North and to plane spanned on Right and Nose axes that coincides with the local horizon which approximately can be considered as “flat” orientation on the ground. The 3×(N−1) matrix composed of all d xkl0 will be denoted by X0. The orientation matrix Q of the body frame relative to ECEF can be determined as the best fit of the relation
X=QX0 (18)
Using notation
for the square of the Frobenius norm of the m×n matrix and tr(⋅) standing for trace of the matrix, we can write ∥R∥F2=tr(RT R)=tr(RRT). Then the best fit for (18) in terms of the Frobenius norm can be written as
or, equivalently, as it is shown in [1]
which can be efficiently solved via SVD (singular value decomposition) as shown in [1]. The matrix X0XT is SVD-factorized as X0XT=VΣU and finally Q=UTVT where U and V are 3×3 orthogonal matrices, Σ is a diagonal matrix of singular values.
In this standard approach all base line vectors d xkl are determined separately, vector by vector solving the problem (15) for each edge (k,l) of the spanning tree and having the answer (16) or (17). Then all vectors are combined in the 3×(N−1) matrix X.
When processing all vectors independently, one can't use the following advantages, that can be used for combined processing:
A) known lengths of vectors
B) known angles between vectors (known inner products between them)
C) better redundancy of the carrier phase measurements when looking for anomalous measurements.
The proposed approach combines processing all vectors simultaneously so that advantages A), B), C) can be used. As follows from detailed description of invention, simultaneous processing of all measurements with the baselines geometry taken into account leads to numerically hard problem for which SVD approach cannot be used. Therefore, there is a need for new numerically tractable algorithm that can find attitude efficiently.
Accordingly, the present invention is directed to numerically efficient calculation of the attitude determination problem using Semi-Definite Programming (SDP) relaxation applied to the calculations by converting the problem to a convex optimization form, for which efficient numerical algorithms are available.
In one aspect, there is provided a method for determining attitude of an object having multiple GNSS antennas, the method including receiving GNSS signals from at least five satellites, wherein at least two of the five belong to a different satellite constellation (e.g., Galileo) than the other satellites (e.g., GPS); processing each of the GNSS signals to generate pseudorange code and carrier phase measurements; resolving carrier phase ambiguities for all the received GNSS signals; generating unbiased carrier phase measurements based on the resolving; determining the attitude, including heading, pitch, and roll angles ψ,θ,ϕ, respectively, by solving a quadratically constrained quadratic minimization problem through finding a minimum of a linear function subject to a linear matrix inequality constraint; and outputting the attitude.
Additional features and advantages of the invention will be set forth in the description that follows, and in part will be apparent from the description, or may be learned by practice of the invention. The advantages of the invention will be realized and attained by the structure particularly pointed out in the written description and claims hereof as well as the appended drawings.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed.
The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and together with the description serve to explain the principles of the invention.
In the drawings:
Reference will now be made in detail to the embodiments of the present invention.
With the spanning tree determined above and consisting of (N−1) edges (unknown vectors) d xkl, let us combine all vectors b*φ,kl(t) to the M×(N−1) matrix B (the notation (t) is omitted for brevity). All (N−1) vectors can be similarly combined into the 3×(N−1) matrix (unknown) X, all values ξkl(t) can be combined into the 1×(N−1) row Ξ. Let also define the matrix J=Λ−1A and vector E=Λ−1e. Then collection of (N−1) equations (12) can be rewritten as the matrix equation where all dimensions match according to definitions determined in this paragraph:
B=JX+EΞ (21)
Substitution of the relationship X=QX0 into the equation (21) and applying the least squares method leads to the following formulation:
over all matrices subject to QTQ=I and real valued Ξ, where I stands for the identity matrix of the appropriate dimension.
The minimization problem (22) can now be rewritten as
Taking the internal minimum in (23) and using the trace notation for the Frobenius norm, (23) can be rewritten as
where
Usually optimal processing assumes weighting of measurements. The maximum likelihood method uses an inverse variance-covariance matrix for weighting: W=C−1. Knowledge of the variance-covariance matrix is assumed because we know the physical nature of errors. Therefore, the problem of equation (24) takes the form
with appropriate weighting matrix dimension.
Using properties of the matrix trace, (24) can be rewritten as
The problem with solving expression (26) subject to minimization, is that it is a nonlinear programming problem, since it assumes a minimization of the scalar nonlinear function (the expression in the square brackets) of 9 variables (entries of the matrix Q) over 6 nonlinear quadratic constraints (diagonal and upper diagonal entries of the matrix QTQ). Generally, these problems are hard to solve reliably and in a predictable time. In many practical applications (such as a small aircraft performing surveying), expression (26) has to be solved many times per second (sometimes several hundred times per second). This is computationally impractical.
Summing up, in the general case, the expression (26) is hard to solve because of quadratic dependence of the cost function on the matrix Q and the quadratic constraints.
The problem (26) is formulated after the optimal spanning tree has been selected among all possible spanning trees in the full antenna graph. The natural way to optimize selection is to look for such a tree that provides minimum value of the condition number of the matrix X0X0T. The smaller the condition number, the better the entire problem (26) is numerically conditioned. Large values mean ill-conditioning. Small values mean well-conditioning.
The problem (26) can be simplified if we chose another, not optimal weighting matrix in such a way that
which is similar to (20) and can be efficiently solved via SVD as shown above. Therefore, the methods proposed in [1] (and commonly used conventionally) can be derived from (26) with an artificial and non-optimal choice of the weighting matrix. Phrased another way—in the conventional approach of [1], a computationally efficient solution of (27) for matrix Q uses a non-optimal matrix W. The desired solution is therefore a solution of (26), rather than a solution of (27). To do this, the SDP relaxation approach is used, to make the solution of (26) tractable.
Non-convexity of the optimization problem (26) makes it very inefficient for computationally efficient solution. To make the problem numerically tractable we use semi-definite programming (an SDP approach to relax non-convex constraints) and the cost function replacing them by their convex analogs.
The convex problem allows for a numerical solution with polynomial computational complexity (see [4]). The SDP relaxation applied to the problem of solving equation (26) for attitude determination using GNSS signals and the algorithm for solution of the attitude determination problem is therefore a novel step of the present invention.
After the matrix Q is determined, it allows for calculation of orientation of the body frame with respect to ECEF. To translate it to the orientation of the body frame relative to the local horizon it must be multiplied by appropriate rotation matrix, rotating the reference frame from ECEF to the local horizon, see for example [3]. After that the three attitude/orientation angles ψ,θ,ϕ (which are the quantities that are ultimately of interest in this exercise) can be determined according to (1).
The expression subject to minimization in (26) can be equivalently transformed using concept of inner product of matrices. Let R1 and R2 be square matrices of the same size. Define the inner product of them as
R1,R2=trR1R2 (28)
so that R,R=∥R∥F2. Let us denote
and keeping in mind the relation X=QX0 to denote
where Y=XXT.
Then the problem (26) is equivalent to the following problem
G,Z→min (31)
subject to constraints
Conditions (32) and (34) are non-convex. Substituting for them less constraining semi-definite inequality constraints
Y−QX0X0TQT0 (35)
and
QTQ−I0 (36)
means semidefinite relaxation. Here the symbol means positive semi-definiteness of matrices. Condition (35) is equivalent (due to the so called “Schur Lemma”, see [4]) to the condition
Z0. (37)
Condition (36) is equivalent to
Note that the cost function subject to minimization in (31) is linearly dependent on 9 entries of the matrix Q due to the equation (33). Left sides of matrix inequalities (37) and (38) are also linearly dependent on entries of Q. These inequalities are known as linear matrix inequalities (LMI) and establish convex constraints on Q. Thus, the attitude determination problem is reduced to the convex optimization problem for which there are very efficient numerical algorithms, see [4].
Possible algorithms include:
These and other similar algorithms are known in the art, and many of them are readily available in Linux.
Numerical experiments performed by the inventor shows that in practice relaxed and initial problems in many examples give the same result. Therefore, in practice, relaxation does not necessarily lead to a need to improve the result applying additional orthogonalization of the matrix
If the number of antennas is 3 then N−1=2 and number of columns in the matrix X0 is 2. In this case (and only in this case) the number of columns must be increased by adding third column as an outer product (vector product) of first two columns
d x30=d x10×d x20 (39)
The choice of the spanning tree in the full graphs (
The structure of the multi-antenna navigation receiver is shown in
Having thus described the different embodiments of a system and method, it should be apparent to those skilled in the art that certain advantages of the described method and apparatus have been achieved. It should also be appreciated that various modifications, adaptations, and alternative embodiments thereof may be made within the scope and spirit of the present invention. The invention is further defined by the following claims.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/RU2018/000239 | 4/18/2018 | WO | 00 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2019/203677 | 10/24/2019 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
5914685 | Kozlov et al. | Jun 1999 | A |
20090184869 | Talbot et al. | Jul 2009 | A1 |
20120139784 | Ashjaee et al. | Jun 2012 | A1 |
20170219717 | Nallampatti Ekambaram | Aug 2017 | A1 |
Number | Date | Country |
---|---|---|
2017066915 | Apr 2017 | WO |
Entry |
---|
Y. Kim et al., Quadratically Constrained Attitude Control via Semidefinite Programming, IEEE Transactions on Automatic Control, vol. 49(5), p. 731-735, May 2004 (Year: 2004). |
S. Ahmed et al., A Semidefinite Relaxation-Based Algorithm for Robust Attitude Estimation, IEEE Transactions on Signal Processing, vol. 60(8), p. 3942-3952, Aug. 2012 (Year: 2012). |
Search Report in PCT/RU2018/000239, dated Jan. 17, 2019. |
Number | Date | Country | |
---|---|---|---|
20210011174 A1 | Jan 2021 | US |