2.1. Theoretical Background
Consider a multi-antenna GNSS setup in which
GNSS antennas are rigidly mounted on a navigation platform, forming
non-collinear baselines. We assume that distances between the antennas do not exceed 50 m, so all atmospheric errors affecting GNSS measurements can be effectively mitigated by double differencing [
10].
The mathematical single-epoch model for double differences of code and carrier phase measurements can be expressed in the following matrix form:
where
i is the index enumerating the baselines, and
Here, the column vectors
and
represent the double differences of code and carrier phase GNSS measurements for the
i-th baseline, respectively. The scalar
denotes the number of double-differenced code or carrier phase measurements available from the
i-th baseline. The matrices
and
are known design matrices, whose rows contain the differences of unit line-of-sight vectors from antennas to satellites. To calculate the design matrices, the code GNSS solution is commonly utilized. The matrix
R is the sought orthogonal matrix with unit determinant. It describes an attitude of the body reference frame with respect to some navigation reference frame. Column vector
contains the coordinates of the
i-th baseline in the body reference frame. We assume that the baseline coordinates in the body reference frame are precisely known a priori. Column vector
contains unknown integer ambiguities of carrier phase double differences. Random vectors
and
represent random errors of code and carrier phase measurements, respectively, with their a priori known covariance matrices:
where
is the mathematical expectation. Hereinafter,
denotes zero matrices of an appropriate size. We believe that errors of code and carrier phase measurements are uncorrelated with each other:
We may take into account the common antenna measurements being contained in double differences for all baselines as follows:
Let
be the number of code (or carrier phase) measurements; thus, there are
M code and
M carrier-phase measurements, i.e.,
in total. Combining the given code and carrier phase measurements at a single epoch, we define the following column vectors:
Hereinafter, we use ; as the notation for vertical matrix concatenation.
From expressions (
3)–(
5) for the covariance matrices, we define the covariance matrix for measurement errors
as follows:
The problem of a GNSS-based attitude determination is reduced to a non-linear non-convex optimization problem with orthogonal constraints on the attitude matrix
R and integer constraints on the phase ambiguities
a:
where
. The matrices
B and
A are the known design matrices:
where
I is the identity matrix of a given size, and ⊗ is the Kronecker product. The problem (
11) is known as the optimization problem for the orthonormality-constrained attitude model.
2.2. Proposed a Priori Variance Model for Measurement Noise
Since the solution of the GNSS-based attitude determination problem (
11) depends on the covariance (
10), it is necessary to specify an exact a priori model used for our raw measurements. It is well known that propagation through the atmosphere introduces errors into GNSS measurements, so that, in general, for satellites with lower elevation over the horizon, the errors are larger. Although many models had been suggested in the past [
11,
12,
13,
14,
15,
16,
17], from our experience of processing many different experimental datasets, we believe that using either model produces similar estimation results, and only ignoring the dependency entirely yields considerable degradation. In particular, Panetier, Bosser, and Khenchaf in [
17] provide a proper comparison of different models.
This may change over time, but currently, we are using a model that is not listed in the above references but has a very straightforward physical interpretation, rather than being purely heuristic. We assume that a priori standard deviation of carrier phase measurement error for a particular radio signal is proportional to the distance traveled through the atmosphere. For satellite
s, its measurement a priori standard deviation
takes the form given in (
13), following from the geometry shown in
Figure 1 (assuming spherical shape of the Earth and relatively thin atmosphere):
Here,
denotes the elevation angle, defined as the angle between the horizon and the line-of-sight vector to the given satellite;
corresponds to a satellite at zenith (with
°);
d represents the distance traveled by the signal through the actively interacting atmospheric layers. Their nominal total thickness is denoted by
, which we assume to be much smaller than the Earth’s radius
, so that
holds. The Formula (
14) for
d solves a quadratic equation produced by the law of cosines applied to the triangle OKC with
in
Figure 1.
Having fitted the Formula (
13) to in situ carrier phase measurements back in 2009, we obtained reasonable values of
which we use to this day. The value of
obtained from the fit in (
15) conveniently happens to match the upper bound of the highest electron number density region in the ionosphere, being roughly at
altitude according to conventional nomenclature (Introduction [
18]). Please note that for different combinations of GNSS antennas and receivers,
may vary from approximately
to
cycles, but the dimensionless weighting factor depending on the elevation angle retains its form.
2.3. Proposed Attitude Tracking Method
The proposed method of attitude tracking using carrier phase measurements is based on the idea of simplification of the problem (
11). However, rather than loosening or adding new constraints, we will follow the ideology of reducing the original problem under some frequently satisfied conditions to a simpler problem, the numerical solution of which is simpler and well understood.
Let the attitude at a fixed epoch be approximately estimated. If
R is a true sought attitude matrix, then for its approximate estimate
, the following approximation holds:
where
is the Euler vector corresponding to a small rotation angle, written in the navigation frame, and
is the cross-product matrix defined as follows:
The relation given in (
16) is a linear approximation of Rodrigues’ rotation formula. The approximate estimate of the true attitude matrix,
, can be obtained either from non-GNSS sensor measurements, such as those provided by inertial measurement units (IMUs), magnetometers, sun sensors, or star trackers, or through GNSS-based algorithms for instantaneous attitude determination. Methods for obtaining
are discussed in more detail later in this section.
Substituting (
16) into the second equation of (
1), we obtain the following expressions:
Let us define the phase double-differenced measurements
corrected for known a priori attitude, and the design matrix
:
then, (
18) may be written in the matrix form:
The system (
20) contains
unknowns and
M equations, but, instead of involving
M code measurements
, we augment the phase-based model with three equations for a priori attitude error
as follows:
where
is the random error of attitude increment measurements
with zero mean and a diagonal covariance matrix with a priori known standard deviations
. Equation (
21) is justified, as it relies on the assumption that
is small, as in (
16).
Combining (
20) and (
21), we obtain the system:
Introducing the matrices as follows:
we obtain the mixed integer least squares (ILS) problem:
Although the integer least-squares problem is NP-hard in general, there exist algorithms that often achieve polynomial expected complexity in practical scenarios [
19]. Owing to the possibility of orthogonal decomposition of the objective function, the ILS problem can be solved in three steps [
20].
First, a so-called
float solution and its error covariance are obtained by ignoring the integer constraints for the phase ambiguities and applying the least squares. Second, the float solution serves as an initial estimate for ambiguity resolution in the integer domain. Among widely used approaches for this step, there is the LAMBDA method [
10,
21,
22] and its optimized variant, MLAMBDA [
23,
24]. These methods employ optimized search procedures and leverage decorrelating ambiguity transformations that flatten the spectrum of conditional variances of ambiguities and thereby accelerate the search for the numerical solution. Finally, the resolved integer ambiguities are used to estimate the sought mixed ILS solution.
Let us discuss the motivation for incorporating measurements of attitude error
instead of double-differenced code measurements
, as in problem (
11). The principal advantage of this approach is the computational effort being reduced in resolving the ILS problem.
First, the proposed problem (
24) contains
equations as opposed to the problem (
11), where the number of equations is
. We note that the design matrix of (
22) is square and has full rank; therefore, a unique float solution always exists. It is straightforward to verify that
is the float solution of (
24). Hence, the float solution is trivial, and no additional computations are required to obtain it, in contrast to methods that use code measurements
in the problem formulation.
Second, it is known that the accuracy of the float solution in problem (
11) is driven by the precision of the code measurements [
6]. Therefore, if an approximate attitude is known with accuracy surpassing that achievable from typical double-differenced code measurements, then solving the proposed problem (
24) yields a more precise float solution. Consequently, this enables us to use more computationally efficient ILS resolution via a more effective search process, such as the LAMBDA method.
Indeed, the last statement can be illustrated by the following rough estimate. Assuming
°,
, and typical double-differenced code measurements accuracy
, we observe that
. Hence, the proposed problem (
24) produces a float solution approximately an order of magnitude more accurate in the case of short baselines and an approximately known attitude.
The proposed problem (
24) yields a more accurate attitude solution than the problems based on the unconstrained or affine-constrained attitude models because it follows directly from the orthonormality-constrained attitude model. Meanwhile, the proposed linear problem does not require computationally intensive numerical methods such as MC-LAMBDA, which deals with non-linear constraints and a non-convex search space, making it prohibitively time-consuming for some real-time applications. In [
7], the authors demonstrate that the average computation time of MC-LAMBDA in a real experiment may be almost two orders of magnitude greater than that required to resolve the ILS problem via LAMBDA. However, a fair comparison of the computation times of MC-LAMBDA and LAMBDA is not possible, as these methods are applied to different problem formulations and yield solutions with different accuracies. In
Section 3.4.4, we present a similar comparison of the computation speeds of the proposed method based on (
24) and the MC-LAMBDA method, using real data.
The key difference between our method based on the problem (
24) and the MC-LAMBDA method is that the solution of (
24) enforces the orthogonality constraints on the attitude matrix up to first-order terms in
throughout all stages of the calculation, including both the float estimate and the IAR stage. In contrast, the MC-LAMBDA method discards the orthonormality constraints at the float estimation step. Additionally, problem (
24) involves the minimal possible number of unknown attitude parameters, with
.
The principal limitation of the proposed formulation lies in its requirement for an initial approximation of the attitude, naturally raising the question: how can the approximate attitude matrix be obtained in practice?
Two primary categories of methods for resolving the initial attitude estimation problem exist. The first encompasses approaches that incorporate auxiliary information beyond carrier phase measurements, whether additional GNSS-based data or external sensor data.
For instance, in spacecraft applications, high-accuracy star sensors can be employed to determine attitude [
25], or attitude estimates within a few degrees can be achieved using signal-to-noise ratio (SNR) measurements from GNSS antennas [
26], or a magnetometer-only algorithm based on Kalman filtering can provide ≈1.5° accuracy in attitude [
27].
The specific choice of sensors is determined by the design objectives and application requirements of the navigation system. A widely adopted sensor combination employs an IMU with GNSS data [
28,
29,
30,
31]. It should be noted that the unknown parameter of angular increment,
, represents an attitude error in the Kalman filter for IMU/GNSS integration, where
denotes an attitude matrix obtained from an aided solution.
The second category comprises single-epoch GNSS-based attitude determination algorithms. It may be the MC-LAMBDA method, the C-WLS method, or low-complexity algorithms which disregard the constraint
while still operating within the framework of mixed ILS theory; see, for example, [
4,
5,
8]. By employing these methods to obtain an approximate attitude matrix, the proposed problem can be adapted for an instantaneous attitude determination algorithm.
Another approach is to solve the proposed problem while taking attitude history into account. Namely, we propose the following Algorithm 1.
| Algorithm 1: The proposed algorithm of attitude tracking |
|
Here denotes an estimate of a quantity, the index k enumerates GNSS epochs, and is the sought attitude matrix at the k-th epoch. Parameter can be interpreted as an attitude change between two consecutive GNSS epochs.
The first initialization step of the algorithm can be performed using other GNSS-based algorithms of instantaneous attitude determination or external measurements as discussed earlier.
The second step is essentially a straightforward prediction step, in which the attitude from the previous epoch is adopted as the attitude estimate for the current epoch. The overall accuracy and scope of applicability of the proposed algorithm depend on the precision of the prediction step. Naturally, the algorithm is expected to perform well in static conditions or for high-rate GNSS observations. In
Section 3.4, we demonstrate that the proposed approach also delivers robust performance under low-dynamic angular motion in a real experiment.
It is important to note that such a simple prediction method is appropriate for many high-rate GNSS applications. In fact, the key assumption (
16) holds when the GNSS sampling rate exceeds, for example, 20 Hz and the angular rate remains below approximately 120°/s. For reference, this angular rate threshold exceeds the upper bound of typical angular velocities encountered in most passenger aircraft.
Finally, it is important to note that the concept of linearization underlying the proposed algorithm is well established. For example, ref. [
32] investigated the Linearized Constrained LAMBDA (LC-LAMBDA) method, which relies on linearizing the baseline attitude model subject to a nonlinear baseline length constraint.In the present work, we build upon ideas from the field of integrated navigation, as detailed in [
33,
34,
35].