Next Article in Journal
Application of the GPM-IMERG Products in Flash Flood Warning: A Case Study in Yunnan, China
Next Article in Special Issue
The Design a TDCP-Smoothed GNSS/Odometer Integration Scheme with Vehicular-Motion Constraint and Robust Regression
Previous Article in Journal
A Cloud Top-Height Retrieval Algorithm Using Simultaneous Observations from the Himawari-8 and FY-2E Satellites
Previous Article in Special Issue
The Performance Analysis of INS/GNSS/V-SLAM Integration Scheme Using Smartphone Sensors for Land Vehicle Navigation Applications in GNSS-Challenging Environments
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:

On the Recursive Joint Position and Attitude Determination in Multi-Antenna GNSS Platforms

Institute of Communications and Navigation, German Aerospace Center (DLR), 17235 Neustrelitz, Germany
Computer Science and Engineering Department, Universidad Carlos III de Madrid, 28911 Madrid, Spain
ISAE-SUPAERO, University of Toulouse, 31055 Toulouse, France
Geodätisches Institut, Technische Universität Dresden, 01062 Dresden, Germany
Author to whom correspondence should be addressed.
Remote Sens. 2020, 12(12), 1955;
Submission received: 19 May 2020 / Revised: 12 June 2020 / Accepted: 16 June 2020 / Published: 17 June 2020


Global Navigation Satellite Systems’ (GNSS) carrier phase observations are fundamental in the provision of precise navigation for modern applications in intelligent transport systems. Differential precise positioning requires the use of a base station nearby the vehicle location, while attitude determination requires the vehicle to be equipped with a setup of multiple GNSS antennas. In the GNSS context, positioning and attitude determination have been traditionally tackled in a separate manner, thus losing valuable correlated information, and for the latter only in batch form. The main goal of this contribution is to shed some light on the recursive joint estimation of position and attitude in multi-antenna GNSS platforms. We propose a new formulation for the joint positioning and attitude (JPA) determination using quaternion rotations. A Bayesian recursive formulation for JPA is proposed, for which we derive a Kalman filter-like solution. To support the discussion and assess the performance of the new JPA, the proposed methodology is compared to standard approaches with actual data collected from a dynamic scenario under the influence of severe multipath effects.

Graphical Abstract

1. Introduction

As contemporary applications such as driverless cars or autonomous shipping are called to revolutionize intelligent transportation systems (ITS), there is a growing need for the provision of precise and reliable navigation information. Global Navigation Satellite Systems (GNSS) play a fundamental role, becoming the main information supplier of positioning, navigation, and timing (PNT) data. While standard GNSS techniques—based on code observations— provide a decent performance for many applications, they do not comply with the far more stringent precision requirements of modern safety-critical scenarios. That is the reason why the transition to carrier phase-based techniques is required to reach precise navigation. Indeed, carrier phase observations present noise levels two orders of magnitude lower than their code counterpart. However, carrier phase observations are ambiguous, since only their fractional part is measured by the receiver [1]. The unknown number of integer cycles between satellite and receiver, so-called ambiguities, must be estimated to enable high-precision navigation. The ambiguities’ estimation process is widely known as ambiguity resolution (AR) [2,3,4,5], which in turn results in a challenging estimation procedure.
From the use of the carrier phase for precise positioning, two localization techniques are distinguished: (i) precise point positioning (PPP) ([6], Ch. 25) and (ii) real-time kinematics (RTK) ([6], Ch. 26). The former exploit GNSS precise corrections for atmospheric effects, satellite orbits, clocks, and antenna biases. This requires the connection to a global network of stations providing such corrections, which might not be available in real-time (i.e., several days are needed for final ephemeris products), then limiting its use in certain applications. In addition, PPP is also constrained by a long convergence time, ranging from five to 20 min [7]. On the other hand, RTK is a relative positioning procedure where the location of a vehicle is determined with respect to (w.r.t.) a stationary or virtual base station of known coordinates, achieving centimeter-level precision. Although limited by the need for proximal base stations and a communication channel, high-precision positioning can be obtained almost immediately, making RTK more appealing than PPP for certain real-time applications. This work focuses on the RTK model to address the positioning problem.
Another well-known application of GNSS carrier phase measurements relates to attitude determination. Attitude determination is the process of estimating the orientation of a moving rigid body w.r.t. its environment. In a multi-antenna GNSS system, one seeks to estimate the rotation, which relates the baseline vectors joining each pair of antenna positions across two frames of interest. Despite GNSS providing substantially higher precision than other attitude determination systems, its implementation poses some constraints. On the one hand, at least three non-coplanar GNSS antennas need to be installed and their relative positions accurately surveyed in the vehicle local frame. On the other hand, attitude precision is inversely proportional to the separation between antennas, making this system impractical for small vehicles (i.e., such as unmanned aerial vehicles). An overview of the formulation for GNSS-based attitude determination was introduced in [8], showing the relationship between carrier phase AR and the corresponding rotation matrix. In addition, the work in [8] discussed multi-epoch orientation solving and suggested a batch least-squares (LS) solution, which gathers GNSS observations along some period of time. This solution is however generally incompatible with real-time applications. The concept of multivariate-constrained Least-squares AMBiguity Decorrelation Adjustment (MC-LAMBDA) for GNSS carrier phase-based attitude determination was introduced in [1,9,10], becoming the most popular and effective attitude determination method.
Traditionally, the positioning and attitude determination problems are considered as two independent processes. Even when integrated as part of the same filtering solution [11,12,13,14,15], the cross-correlation between the positioning- and attitude-related observations is disregarded. However, this information results in being very useful, and it strengthens the overall observation model. Despite its importance in many engineering fields, there are few contributions discussing the topic and a lack of understanding of the concept of joint position and attitude (JPA) based on the exploitation of GNSS carrier phase observables, which in turn is the central interest of this work. There are several important missing points related to JPA, which to the best of the authors’ knowledge, have never been explored and constitute the contribution of this article:
The GNSS carrier phase-based positioning and attitude models are revisited, and the connection to the JPA problem is formalized.
Application of Lie theory principles to the GNSS-based attitude problem (and consequently, also the JPA). Thus, the attitude is parametrized with the unit-quaternion, and a recursive solution based on an error state Kalman filter (ESKF) is formulated.
The performance of the proposed recursive solution for the JPA problem is addressed on a realistic signal-degraded scenario, and the comparison w.r.t separately solving the positioning and attitude problems (i.e., the standard solution) is analyzed.
The rest of the paper is organized as follows. Section 2 presents the notation employed throughout the paper, the coordinate frames involved in the estimation process, and the state definitions of the JPA. Then, Section 3 discusses the carrier phase-based positioning and attitude models. Section 4 relates the GNSS observations models to the JPA problem, and the Kalman Filter-like recursive solution is presented. The experimentation and posterior discussion are presented in Section 5. Finally, Section 7 concludes the paper with an outlook and discussion of future work directions.

2. Notation and Definitions

2.1. Notation

Italics indicate a scalar quantity, as in c; lower case boldface indicates a column vector quantity, as in a ; upper case boldface indicates a matrix quantity, as in A . The matrix/vector transpose is indicated by a superscript ( · ) as in A . A , B and A B denote the matrix resulting from the horizontal and the vertical concatenation of A and B , respectively. I M is the identity matrix of dimension M. 1 M , N is an M × N -dimensional matrix with all components equal to one. 0 M , N is an M × N -dimensional matrix with all components equal to zero. · denotes a Euclidean norm, and b A 2 = b A 1 b is the weighted inner norm. E ( · ) and D ( · ) represent the expectation and dispersion operator respectively. vec ( · ) is the operator that stacks the columns of a matrix A into a single vector. A = diag ( · ) indicates a diagonal matrix whose entries in the diagonal are given by ( · ). The Kronecker product is denoted with ⊗. The quaternion multiplication is denoted by ∘.

2.2. Coordinate Frames

In general, a navigation system involves the determination of the position, velocity, and attitude of a moving (rigid) body. The kinematic quantities generally involve two coordinate frames: (i) the frame whose motion is described, the body or vehicle frame B , and (ii) the frame with respect to which that motion is, denoted as the global or inertial frame G . For the problem at hand, the body frame is defined such that the X-, Y-, and Z-axes are aligned with the right, forward, and up directions of the vehicle, respectively, while the global frame corresponds to the Earth-centered Earth-fixed (ECEF) frame. A pictorial example of the aforementioned frames is given in Figure 1 (left). The left subscript on a vector indicates the frame in which that vector is expressed, while the right subscript refers to a specific position (i.e., any of the onboard vehicle antennas or the base station).
In multi-antenna GNSS platforms, one generally considers the position of the master antenna as the center of the body frame and the unknown position to be determined G p G p m , while the positions of the remaining N slave antennas G p j (with j = 1 , , N ) are referred to the former with the respective baseline vectors. For instance, the position in the body frame for the jth slave antenna is as:
B p j = B p m + B b j , m
where the baseline vector B b j , m in the body frame is known a priori. Similarly, the position in the global frame for the jth antenna can be easily formulated upon the knowledge of the master position and the rotation relating the body and global frames.
G p j = G p m + R B b j , m = G p m + q B b j , m q *
where R SO ( 3 ) and q S 3 are the rotation matrix and unit-quaternion to represent the body-to-global rotation. The quaternion is written as q = [ cos ( ϕ / 2 ) , e sin ( ϕ / 2 ) ] with ϕ a rotation angle and e a unit rotation axis. The quaternion rotation follows the Hamilton convention (real part first, right handedness). Henceforth, either R B u or q B u q * are used indistinctly for expressing the body-to-global rotation of a generic vector B u . However, since rotation matrices result in difficult renormalization and computational inefficiency, its use on recursive attitude determination is often discouraged [16,17,18]. Instead, this work focuses on the unit quaternion parametrization for attitude estimation. Additional details on the quaternion group and algebra are provided in Appendix A.

2.3. State Definitions

The proposed JPA problem relates to the estimation of the vehicle kinematics: position G p , velocity G v , and attitude q , as well as the GNSS integer ambiguities a for the n + 1 tracked satellites across the onboard and base station antennas, as later defined in Section 3. The state estimate x is expressed as a discrete-time state-space model, described at a given time t as:
x JPA x = G p , G v , q , a , G p , G v R 3 , q S 3 , a Z n × ( N + 1 ) .
Optionally, the state vector could be augmented to account for the biases of an inertial sensor, whenever that navigation modality is fused along with GNSS. The state defined in (3) is often applied to describe the motion of vehicles following a constant-velocity non-turning movement [19,20], e.g., automobiles, vessels, or aeroplanes moving in a straight line. To describe a wider range of motions, (3) could be extended with the acceleration and angular rate of the vehicle, or an interacting multiple model (IMM) estimator could be applied [21,22].
Preserving the quaternion unit norm constraint is a challenging task, for which Lie theory provides useful algebraic tools whose application in navigation problems is increasingly used [23,24,25]. While the state x lives in a manifold, its perturbations δ x belong to the tangent space of the manifold. The error state Kalman filter (ESKF) allows exploiting the Lie algebra by defining the “true” (unknown) state as the group composition of the total-state x ^ and the error-state δ x as x = x ^ δ x [26,27,28]. At time t, the error state is described by:
δ x = δ p , δ v , δ θ , δ a , δ p , δ p , δ θ R 3 , δ a R n × ( N + 1 ) ,
where the rotation vector δ θ can be identified with its associated quaternion δ q as follows:
δ θ R 3 ( · ) e ϕ s 3 exp ( · ) δ q S 3 .
First, the rotation vector in the Euclidean space δ θ R 3 is related to the Lie algebra e ϕ s 3 through the isomorphism ( · ) : R 3 s 3 . Then, the Lie algebra is identified with the S 3 manifold via exponential mapping δ q = exp ( e ϕ ) = [ cos ( ϕ / 2 ) , e sin ( ϕ / 2 ) ] . Finally, the composition of the total quaternion q ^ with the error quaternion δ q is given by:
q = q ^ δ q
The reader interested in the basics of Lie theory may refer to [29,30] or to a recent selection of these principles in relation to robotics in [31].

3. GNSS Carrier Phase-Based Positioning and Attitude Observation Models

Let us consider n + 1 GNSS satellites simultaneously tracked (single frequency) at one antenna (i.e., if considering N + 1 antennas at the vehicle, the observation model remains the same for each antenna) installed on a vehicle and at a base station of known coordinates. At a particular time, the code and phase observables for the ith satellite at the jth antenna (either onboard or base) are:
ρ j i = G p i G p j + I i + T i + c d t j d t i + ε j i , Φ j i = G p i G p j I i + T i + c d t j d t i + λ N j i + ϵ j i ,
  • ρ , Φ are the code and phase observations (m),
  • G p i , G p j are the positions of the ith satellite and the jth antenna in the global frame,
  • I i is the ionospheric error (m),
  • T i is the tropospheric error (m),
  • c is the speed of light ( 299 792 458 m / s ),
  • d t i , d t j are the satellite and receiver clock offsets (s),
  • λ is the carrier phase wavelength (m),
  • N i is the unknown number of cycles (i.e., in general being a real parameter due to the unknown initial phase at both the satellite and receiver antenna),
  • ε i , ϵ i are the remaining noise/unmodeled errors for code and phase observations, respectively.
Due to the influence of imprecise ephemeris and atmospheric-related errors, high precision cannot be achieved directly exploiting the observations on (7). Instead, the double-difference combination of observations is fundamental to enable precise positioning and attitude determination, as discussed next. For the remainder of the section, superscripts refer to a particular satellite (r for the pivot and i = 1 , , n for the others), while subscripts denote a particular receiving antenna (m for master antenna, j = 1 , , N for the slave antennas, and b for the base station), as illustrated in Figure 2.

3.1. RTK Positioning Model

RTK is a differential positioning procedure, for which the unknown position of a GNSS antenna is determined w.r.t. a stationary station of known coordinates [32]. To achieve centimeter-level precision positioning, the use of observation double-differencing and integer AR (IAR) is required (details in Section 3.2). Double-difference is the combination formed between two satellites and two receivers to eliminate or minimize nuisance parameters (i.e., atmospheric propagation delays, clock offsets, relativistic effects, etc.) from the involved observables. In the positioning model, the particular double-difference (DD) code and phase measurements (i.e., for the ith satellite, w.r.t. the base b and pivot satellite r, at the master antenna m) are given by:
D D ρ b , m i , r = ρ b i ρ m i ρ b r ρ m r , D D Φ b , m i , r = Φ b i Φ m i Φ b r Φ m r ,
and the set of positioning DD observations are gathered in the vector y pos R 2 n ,
y pos y b , m = D D Φ b , m 1 , r , , D D Φ b , m n , r DD Φ b , m 1 : n , r , D D ρ b , m 1 , r , , D D ρ b , m n , r DD ρ b , m 1 : n , r
where the notation ( · ) b , m i , r refers to the DD observation conformed by the base station and master antennas, pivot, and ith satellite and ( · ) b , m 1 : n , r is the corresponding n-dimensional vector of DD observations. The resulting positioning observation model is generally expressed in its linearized form as:
y pos = G λ I n G 0 n x pos + n pos = B A H pos x pos + n pos ,
where λ is the carrier wavelength, x pos = [ G b b , m , a pos ] , a pos Z n is the vector of ambiguities, and G b b , m R 3 is the baseline vector between the master and base station positions. n pos is a zero-mean noise term with covariance Q y pos . The so-called design matrices are:
A = λ I n 0 n , B = G G , G = u 1 u r u n u r ,
where G is the geometry matrix composed by the satellite steering line-of-sight vectors w.r.t. the base antenna u i = G p i G p b G p i G p b [6]. Re-arranging some terms in (10), the positioning model can be cast as:
E y pos = A a pos + B G b b , m , D ( y pos ) = Q y pos .
Resolving the baseline G b b , m between the base station and the master antenna grants knowing the position of the master antenna as:
G p m = G p b G b b , m .
Notice that in contrast to (7), where the unknown ambiguities N m i R , because of double-differencing, we now have integer ambiguities a pos Z n . That is, to solve the estimation problem defined by the linearized Gaussian observation model (10), we have to resort to AR techniques (see Section 3.2), which applied to the previous equations, define the single-antenna RTK solution.

3.2. Integer Ambiguity Resolution for Positioning

The system of observation equations in (10) leads to an optimization problem with mixed real and integer parameter estimation. For simplicity, let us rename the variables for the positioning model in (10), i.e., y y pos , Q y Q y pos , a a pos , and b G b b , m . Thus, we want to solve:
{ a , b } = arg min b R 3 , a Z n y A a B b Q y 2 .
Due to the integer nature of a , a closed-form solution to (14) is not known. Instead, the work in [33] proposed the decomposition of the quadratic objective function (14) into the sum of three successive LS problems,
min b R 3 a Z n y A a B b Q y 2 = min b ^ R 3 a ^ R n y A a ^ B b ^ Q y 2 + min a Z n a ^ a Q a ^ 2 + min b R 3 b ^ | a b Q b ^ | a 2 ,
where the first term on the right-hand side is the so-called float solution, min y A a ^ B b ^ Q y 2 , a weighted LS (WLS) disregarding the integer constraints on a , that is a ^ is the real or float estimation of the ambiguities.
The second term, min a ^ a Q a ^ 2 , corresponds to the integer LS (ILS), for which the integer ambiguities a are found based on the estimated float ambiguities a ^ and their associated covariance Q a ^ . The framework for integer aperture (IA) estimation comprises solving the aforementioned ILS problem and the validation of the obtained solution. A profound discussion on estimators for integer estimation problems can be found in ([6], Chap. 23). Finally, the third term min b ^ | a b Q b ^ | a 2 is the fix solution. It consists of enhancing the localization estimates upon the estimated integer ambiguities, resolved upon a WLS estimate:
b = b ^ Q b ^ , a ^ Q a ^ 1 a ^ a
where Q b ^ , a ^ refers to the cross-covariance matrix between the float estimates for position and ambiguities. A relevant remark is that, whenever the estimated integer ambiguities do not match the true ones, the fixed solution will be biased. The precision of the solution improves only when the correct ambiguities are estimated.

3.3. A Comment on Multi-Antenna DD Observations and Processing

Notice that the previous standard RTK solution was formulated for a single master antenna. One could think that having multiple ( N + 1 ) antennas, i.e., N times more observations, would certainly improve the overall estimation. The trivial solution is to reformulate the model in (10) taking into account an N + 1 (i.e., master + N slave antennas) multi-antenna GNSS platform. Notice that in that case, we have N + 1 unknown baseline vectors between the base and the different antennas to be estimated alongside the n × ( N + 1 ) integer ambiguities. The multi-antenna (MA) measurement vector is then:
y pos , MA = y b , m , y b , 1 , , y b , N R 2 n × ( N + 1 ) ,
where y b , m corresponds to (9) and the DD observations formed by the base station and the slave antennas y b , j , j = 1 , , N , can be built as in (8) changing the index m by j. Thus, the corresponding linearized MA observation model is the concatenation of the single-antenna model (10) as:
y pos , MA = I N + 1 H pos x pos , MA + n pos , MA ,
where the state to be estimated is now x pos , MA = G b b , m , a b , m , G b b , 1 , a b , 1 , , G b b , N , a b , N . However, obviously, this is like considering N + 1 independent single-antenna RTK problems, because this trivial formulation does not take into account that all the antennas belong to the same rigid body, and therefore, there exists a link among antennas, which is disregarded. If we consider known baseline vectors among the different slave antennas and the master in the body frame, B b j , m (master to the jth antenna baseline), we can reformulate the previous model (18) only in terms of the master-to-base baseline, G b b , m , but this requires the platform orientation, i.e., its attitude. Therefore, to exploit multi-antenna RTK solutions correctly, we need to perform a JPA estimation, being the underlying motivation of this contribution.

3.4. GNSS Attitude Model

GNSS-based attitude determination can be realized for vehicles equipped with at least two GNSS antennas, whose positions in the local frame of the vehicle have been surveyed, i.e., the baseline among antennas in the body frame is known. Similarly to the RTK positioning introduced in Section 3.1, precise GNSS-based attitude estimation requires IAR and observation double-differencing. In this case, however, the DD combinations performed between the slaves and the master antennas (i.e., for the ith satellite, w.r.t. the jth antenna and pivot satellite r, at the master antenna m),
D D ρ j , m i , r = ρ j i ρ m i ρ j r ρ m r D D Φ j , m i , r = Φ j i Φ m i Φ j r Φ m r .
The complete set of observations is gathered in vector y att R 2 n × N , which stacks the observations formed with the combination of slave and master antennas y j , m as:
y att = vec y 1 , m , , y N , m Y ,
where y j , m = [ DD Φ j , m 1 : n , r , DD ρ j , m 1 : n , r ] . Then, the attitude model can be cast as a function of the quaternion-parametrized attitude operation:
E y att = vec A a 1 , m , , a N , m Z + B q B b 1 , m q * , , q B b N , m q * h ( q ) , D ( y att ) = Q y att
where Z Z n , N is the matrix containing the DD ambiguities, which expressed in vector form is denoted as a att = vec ( Z ) , a att Z n × N . Differently from the RTK positioning case, the GNSS attitude model presents additional challenges: (i) the double product of the quaternion for the rotation operation leads to a nonlinear equation (hence, the model being expressed as h ( q ) and not in matrix form); (ii) a nonlinear constraint to assure that the quaternion presents the unit norm (otherwise, it would not represent a proper rotation) is to be imposed. A short discussion on IAR techniques for the attitude model (21) is provided next, with the associated recursive solution being proposed in Section 4.

3.5. Integer Ambiguity Resolution for Attitude Determination

As previously discussed, the GNSS attitude model in (21) leads to a nonlinear optimization problem with mixed real and integer parameter estimation, subject to a nonlinear constraint. The optimization problem is formulated as:
{ a , q } = arg min a Z n × N , q S 3 vec Y AZ B h ( q ) Q y 2 .
Notice that, although the constraint function is not made explicit (i.e., (22) is subject to q 2 = 1 ), such a constraint is made implicit by indicating that the quaternion belongs to the three-sphere q S 3 . Similarly to the RTK positioning problem, a closed-form solution to (22) is not known, and a decomposition into three sequential LS adjustments is applied:
min a Z n × N , q S 3 vec Y AZ B h ( q ) Q y 2 = min Z ^ R n , N , q ^ S 3 vec Y A Z ^ B h ( q ^ ) Q y 2
+ min a Z n × N vec ( Z ) a Q Z 2
+ min q S 3 q ^ | a q Q q ^ | a 2 .
Similarly to the IAR for positioning in Section 3.2, the three consecutive estimates correspond to the float solution, the integer ambiguities, and the fixed solution, respectively, with slight differences residing on the resolution of (23a) and (23c). For non-recursive estimation, (23a) can be solved applying an iterative on-manifold Gauss–Newton method [34,35]. Notice that the aforementioned adjustment constitutes a local search for (23a), and thus, the initial quaternion should be carefully chosen [36]. Likewise, solution fixing (23c) also makes use of the Lie algebra, the fixed solution being updated via exponential mapping, as described in [37].
The multivariate constrained LAMBDA (MC-LAMBDA) constitutes an alternative for the procedure (23), and it can be considered as the most widespread solution to the GNSS-based attitude-only determination problem. MC-LAMBDA generally parametrizes attitude as a rotation matrix, whose nine elements are initially estimated in the float solution disregarding the orthogonality constraints (i.e., R R = I , det ( R ) = 1 ). Then, the ILS search is performed in conjunction with the evaluation of the solution fixing—which, in the MC-LAMBDA case, comprises a weighted orthogonal Procrustes problem—the estimated vector of ambiguities being the minimizer of the combined cost function [8,9,38]. Despite the popularity and proven effectiveness of MC-LAMBDA, it remains computationally demanding, and its use on recursive estimation is not as straightforward as the proposed solution based on Lie theory.

4. Kalman Filtering for the Joint Positioning and Attitude Estimation

Generally, the determination of the positioning and attitude solution is either separately carried out or as part of the same filtering solution, but disregarding the cross-correlation between the attitude and positioning models. This section introduces a recursive solution for the JPA problem, based on the ESKF described in Section 2.3, where the cross-correlation between positioning and attitude models is recognized and exploited for an enhanced performance.
Similarly to the positioning and attitude problems, JPA requires the determination of a vector composed by integer and on-manifold values. Thus, a three-step decomposition (float estimation, IAR, and fixing estimation) is applied like in Section 3.5. Remarkably, the IAR process does not incur modifications—other than the vector of ambiguities comprising both the positioning- and attitude-related ambiguities—and any admissible integer estimator can be applied, with the ILS being an optimal estimator [39,40]. With regards to the solution fixing, JPA proceeds similarly to the attitude case in Section 3.5, applying a WLS. The output of such a WLS is expressed as the error state (with minimal parametrization of the attitude), which is translated to the total state respecting the composition operation defined in Section 2.3. Thus, the major aspect to address in the recursive JPA problem regards the definition of the associated ESKF and the observation models, which are described in the remainder of the section.
The belief function for the state (3) is presumed to be Gaussian and conditioned on the choice for the initial state:
p x t , x 0 , y 0 : t = N x ^ t , P t ,
where P t is the covariance matrix. Notice that, since the error state comprises the state uncertainty, P t R 9 + n ( N + 1 ) , 9 + n ( N + 1 ) presents minimal parametrization (i.e., the attitude represented in P t regards the uncertainty in the rotation vector θ R 3 ). The time evolution of x t is dictated by the process and measurement functions, f ( · ) and h ( · ) , respectively, also known as prediction and correction models:
x t = f x t 1 + w t ,
y t = h x t + n t ,
where the process and observation noise are assumed to follow zero-mean normal distributions w t N ( 0 , Q t ) , n t N ( 0 , Q y ) , and y t is the vector of observations. The time index t is used generically: the prediction step can be performed periodically, and the correction step is triggered whenever GNSS observations are received. Thus, we use t 1 to refer to the most recent change on the state estimation (either due to a prediction or a correction step). The ESKF operates the nonlinear equations for prediction and observation on the total state x ^ , while the disturbances represented in the error state are assumed as small signals, meaning that second-order products are negligible and the Jacobians are easily derived.

4.1. Prediction Step

A typical dynamical model regards a vehicle to move according to the constant-velocity non-turning model [19]. Thus, the process function f ( · ) leads to the following linear model:
x ^ t = I 3 I 3 Δ t I 3 I 4 I n ( N + 1 ) x ^ t 1 ,
where the empty spots for the matrix in (27) correspond to zero values. Δ t corresponds to the time spanned between the time at the latest prediction or correction step and the current time. Then, the covariance predictor is:
P t = F x P t 1 F x + Q t ,
with Q t = diag σ p 2 1 3 , 1 , σ v 2 1 3 , 1 , σ θ 2 1 3 , 1 , σ a 2 1 n ( N + 1 ) , 1 the diagonal matrix gathering the process noise for the position σ p 2 , velocity σ v 2 , orientation σ θ 2 , and ambiguities σ a 2 . The process noise variances constitute the tuning parameters for the filter and shall scale with the time Δ t . The Jacobian w.r.t. the error state F x is as:
F x f δ x x ^ t = I 3 I 3 Δ t I 3 I 3 I n ( N + 1 ) .
As discussed in Section 2.3, the presented prediction model describes the movement behavior of a non-maneuvering vehicle. A more precise prediction step would integrate inertial measurements, for which the modification of the proposed ESKF can be realized straightforwardly following [28,37].

4.2. Correction Step

At this stage, the observations y pos , y att corresponding to the positioning and attitude models are integrated into the recursive JPA estimate. For the sake of convenience, when building the Jacobian matrices, the vector of observations y JPA = y R 2 n ( N + 1 ) is re-structured so that DD phase observations appear before the DD code observations such as:
y JPA = DD Φ b , m 1 : n , r y Φ , pos , DD Φ 1 , m 1 : n , r , , DD Φ N , m 1 : n , r y Φ , att , DD ρ b , m 1 : n , r y ρ , pos , DD ρ 1 , m 1 : n , r , , DD ρ N , m 1 : n , r y ρ , att ,
where we have introduced the additional notation y Φ / ρ , pos / att to refer to the set of phase and code DD observations derived from the base-master (positioning) or the slaves-master (attitude) combination.
The update on the state is done according to the classical KF equations:
K t = P t 1 H t H t P t 1 H t + Q y 1 ,
P t = I K t H t P t 1 ,
x t = x ^ t K t y h ( x t ) δ x t ,
with the measurement function h ( · ) relating the observations to the state estimate as explained in Section 3 and H t the Jacobian matrix for the measurement functions. Applying the chain rule on the group composition x = x ^ δ x , H t is defined as:
H t h δ x x ^ t = h x x ^ x δ x t x ^ t = H x ^ H δ x ,
where H x ^ is the standard Jacobian of h ( · ) w.r.t. the nominal state x ^ as:
H x ^ = I N + 1 B 0 2 n ( N + 1 ) , 3 H q ^ I N + 1 A A i , 1 y 2 y 2 h / G p h / G v h / q h / a , H q ^ = 0 2 n , 4 B J q ( B b 1 , m ) B J q ( B b N , m )
where the partial derivatives in H x ^ are indicated in a second row, A , B are as in (11), and J q ( B b j , m ) ( q B b j , m q * ) / q q ^ t is given in (A21). H δ x is the Jacobian of the true state w.r.t. the error state as:
H δ x = I 3 I 3 H δ θ I n ( N + 1 ) ( G p + δ p ) δ p ( G v + δ v ) δ v ( q δ q ) δ q ( a + δ a ) δ a , H δ θ = 1 2 q ^ t L 0 0 0 1 0 0 0 1 0 0 0 1 ,
with q ^ t L defined in (A9) and the partial derivatives indicated below the matrix.
Proper stochastic modeling is key to assure the performance of the proposed JPA problem. Thus, the observations’ covariance matrix Q y is defined as follows:
Q y Q Φ Q ρ = Q Φ , pos Q Φ , pos , att Q Φ , att , pos Q Φ , att Q ρ , pos Q ρ , pos , att Q ρ , att , pos Q ρ , att ,
where the subscripts used in (37) follow the notation introduced in (30). Thus, Q Φ , Q ρ R n ( N + 1 ) , n ( N + 1 ) are the covariance matrices for the complete set of DD carrier and code observations. The former matrices Q Φ , Q ρ are then conformed by the set of carrier/code DD for positioning Q Φ , pos , Q ρ , pos R n , n and for attitude Q Φ , att , Q ρ , att R n × N , n × N . Matrices Q Φ , pos , att , Q ρ , pos , att R n , n × N denote the cross-correlation between the code/phase observations for positioning and attitude. Notice that conventional processing estimation schemes, which separately estimate the positioning and attitude problems, disregard the cross-correlation between the two problems (i.e., Q Φ , pos , att , Q ρ , pos , att = 0 ). However, this cross-correlation does exist, since the DD observations for positioning and attitude have in common the pivot satellite noise perceived at the master antenna. Notice that code and phase observations are generally assumed to be uncorrelated.
Stochastic modeling for the proposed JPA set of observations can realized straightforwardly as:
Q y = D JPA D W Φ 1 D D JPA D W ρ 1 D ,
where D JPA R N + 1 , N + 1 is the differencing matrix, which introduces the base/slaves–master noise correlation, and D R n + 1 , n the differencing matrix to relate the pivot to the remaining satellites:
D JPA = I N + 1 + 1 N + 1 , N + 1 , D = 1 n , 1 I n .
Finally, W Φ 1 , W ρ 1 R n + 1 are the diagonal matrices composed by the variance of the original n + 1 code and phase observations, respectively:
W Φ 1 = diag σ Φ r 2 , σ Φ 1 2 , , σ Φ n 2 , W ρ 1 = diag σ ρ r 2 , σ ρ 1 2 , , σ ρ n 2 .
where each σ Φ / ρ r / 1 : n indicates the standard deviation of the phase and code observations for the n satellites and the pivot r one. Characterization of the noise present in GNSS observables is generally realized applying satellite elevation- or carrier-to-noise density ratio C/N 0 -based models [41,42]. Recently, stochastic modeling w.r.t. the GNSS baseband signal resolution (i.e., bandwidth, modulation, autocorrelation function) has been proposed [43,44]. When the receiver characteristics and the C/N 0 model are unknown, the following elevation-based model is advised:
σ Φ i 2 = a 2 + b / sin ( e l i ) 2 , σ ρ i 2 = a 2 · f 2 + f 2 · b / sin ( e l i ) 2 ,
where e l i indicates the elevation of the ith satellite, a = 2 mm, b = 2 mm, and f = 100 [11]. Additionally, when considering medium baseline lengths, —i.e., when the distance to the base station exceeds 20 km—, an additional noise term is added to the positioning covariance matrices Q Φ , pos and Q ρ , pos to account for the atmospheric differences between the base and vehicle antennas [45,46].
To emphasize the importance of the JPA model to exploit the observations’ cross-correlation fully, Figure 3 presents a pictorial example. Such an example considers four observations (with variances shown in the color bar) to be tracked by the base station, the master, and N = 2 slave antennas. The code DD covariance matrix Q ρ is shown in Figure 3 (left) for the separate estimation of positioning and attitude and in Figure 3 (right) for the JPA problem. One can observe that separately estimating the positioning and the attitude problems does not exploit the cross-correlation between both models, given by the noise for the pivot satellite at the master antenna.

5. Experimental Setup

The performance characterization of the proposed ESKF-based JPA problem was addressed for the navigation of a vessel navigation in an inland waterway channel, which is an interesting ITS application. The measurement campaign was conducted in Koblenz (Germany) on 16 May 2017 (DOY 136, UTC 09:00-14:00), the tracked vehicle the being MSBingen, a multi-purpose research vessel of the German Waterways authorities. The equipment setup listed three navXperience® 3G+C GNSS antennas connected to three separate dual frequency Javad® Delta receivers, a fiber optic gyroscope (FOG) IMU iMAR® IMU FCAI [47], and an active reflector under the master antenna. Figure 4 (left) shows the MS Bingen and the location of the GNSS antennas and the reflector, while the top right indicates the configuration of the antennas and the IMU in the body frame, and the bottom right depicts the number of GPS satellites tracked, as well as the position dilution of precision (PDOP) along the five-hour long campaign.
The trajectory followed and the location of the base station and the total station are illustrated in Figure 5, with the distance between the base and the vessel constituting a short baseline ranging between 900 m and 2.5 km. The vessel navigated from the port on the right side of Figure 5 up river and then returned back to the point of departure. Moreover, the vessel performed several turns around the three consecutive bridges nearby the total station, as shown in Figure 6. The multiple bridges were present along the navigation, especially in the surroundings of the total station position. These structures shaded the reception of satellite signals and induced multipath/non-line-of-sight (NLOS), and the navigation solution could be easily affected, leading to multiple cycle slips/loss of track to occur in the proximity of the bridges.
The reference trajectory of the vessel was obtained based on optical technology [48], using a total station on land and an active reflector mounted under the master GNSS antenna for automatic target tracking. This technology assured a positioning accuracy around one centimeter and whose error pattern was independent of GNSS, while its availability was assured even during the maneuvers realized around the bridges. The integration of the angular rates measured by the high-quality IMU was used as the benchmark solution for the attitude estimates.
The ESKF-based JPA solution was as presented in Section 4, while the positioning- and attitude-only estimates were derived from the recursive formulation of the models in Section 3. The navigation solution used GPS observations for the L1 and L2 frequencies, with a cut-off elevation of 15 and a sampling rate of 1 Hz. Stochastic modeling of the observation was realized using the elevation-based model in (41). The IAR process used the ILS method based on search-and-shrink [3], and the navigation solution was only considered valid when the ratio-test for ambiguity resolution was passed [49,50]. Despite using the ratio-test, failure cases—i.e., when an ILS solution is considered valid, but the ambiguities are incorrectly estimated—could occur. In this experiment, the failure rates for both JPA and separately estimation of positioning and attitude were comparable and rather low (≤1% during the period of bridge passing). Thus, the fix ratio—i.e., the percentage of epochs for which the ratio-test is passed—was considered to evaluate the availability of the precise navigation estimates.

6. Results and Discussion

First, the performance characterization of the proposed JPA was compared against positioning and attitude determination solutions obtained in a separate manner (i.e., two Kalman filters were processed in parallel, one integrating the positioning observations and the other in charge of the attitude model). Notice that the inertial information was not integrated in any of the aforementioned filters, since the focus of the contribution was to address the gain of JPA against conventional GNSS attitude and positioning models.
The comparison between JPA and the positioning- and attitude-only models is reported in Table 1, in terms of the fix ratio over the course of the measurement campaign. The first column depicts the number of satellites n + 1 and the corresponding percentage of time for which that number was tracked. The following columns correspond to the fix ratio of the assessed positioning and attitude methods: the second column is for the proposed JPA, the third for the positioning-only, the fourth for the attitude-only, and the last column the union of the positioning and attitude (i.e., the simultaneous occurrence of having a fixed solution for the positioning- and attitude-only solution of the third and fourth columns). The first thing to notice is that, generally, the fixing ratio grew with the number of satellites, and the chances of having a fixed solution for five or less satellites was very uncommon. Some conclusions could be drawn from the comparison of JPA against separately estimating positioning and attitude:
The attitude model was “stronger” than the positioning one despite the nonlinearities in the observation function. There were two reasons to ground the positioning-attitude difference in performance: on the one hand, small residuals due to the atmospheric propagation delays between the vehicle and the base station might be present despite the short baseline; on the other hand, the data redundancy was higher in the attitude than in the positioning model (i.e., n ( N + 1 ) code observations guided the float estimate of the four-dimensional unknown quaternion, while n code measurements supported the search of the three-dimensional unknown position).
In average, JPA performed better than the union of separately estimating the position and attitude problems. Thus, the former provided a fixed solution for 74.60 % of the time, while the latter was limited to 57.11 % of time—which was a difference in precise navigation availability of over 45 min. Such increased performance was likely due to exploiting the cross-correlation between the positioning- and attitude-related observations, as discussed in Section 4.
The standalone attitude problem presented a higher fix ratio compared to the JPA, as it was unaffected by the residual atmospheric propagation delays present in the positioning problem. Thus, a practical application might be interested in executing in parallel the attitude-only and the JPA filters, leading to high availability positioning and attitude estimates and a mechanism to monitor the integrity of the algorithms if discrepancies between the estimates occurred.
Next, the positioning performance was analyzed. Besides the higher availability for the JPA against positioning-only estimates, the fixed solutions were very much equivalent up to the mm-regime. As depicted in Figure 6, a GNSS-independent localization ground truth was available, obtained using optical (laser-based) technology. For that, a total station was located on the small island in the center of the river, and automatic tracking of the active reflector located below the master antenna was performed. This area was most interesting, since the three bridges induced multipath biases and the track of satellites was often lost. As expected, the chance for having a fixed navigation solution under the bridges resulted in being null, although the navigation fix was rapidly recovered. The standard deviation for the fixed position solution was very close to a centimeter, although a few wrong fixes (with horizontal errors of up to 15 cm) occurred as well. To counteract or minimize the likelihood of wrong fixes to occur, the use of a second constellation, the integration of IMU observations, or the application of GNSS-robust techniques would be of great benefit [51,52].
Finally, the JPA-based attitude determination performance was examined. As with the positioning case, the fixed attitude solutions were equivalent between attitude-only and JPA estimates. Figure 7 depicts the estimated orientation using the Euler angles—pitch, roll, and heading—defined here as the rotation from the body to the global frames. The highest degree of similarity was achieved on the heading estimation, while the pitch and especially the roll were characterized with higher levels of noise. The better heading performance could be explained in relation to the GNSS satellite geometry—offering a higher accuracy on the horizontal plane—and the antenna configuration onboard the vehicle, as the two front antennas were coplanar with the local horizontal plane of the vehicle. It was noticeable that the IMU allowed to track subtle motions, such as the pitch variations due to the small waves in the river, and in general, the fusion of IMU and GNSS is recommended. Although the standard deviation for the heading estimates were below the degree, the roll presented some errors of up to 10, likely due to a wrong fix, since the period of time analyzed (12:00–13:00 UTC) corresponded to the time in which the vessel maneuvered around the bridges.

7. Conclusions and Future Work

This article provided a discussion of GNSS carrier phase-based positioning and attitude determination. Generally, these two estimation problems are solved individually, with some estimation machinery behind each of them, or as part of the same navigation solution, but disregarding the cross-correlation existing between the observations. The joint positioning and attitude (JPA) problem was introduced, with special emphasis on the recursive solution to the estimation problem. Thus, applying the principles of Lie theory and the well-known error state Kalman filter (ESKF), a complete recursive solution for the JPA problem was presented. Besides the simplicity of the solution, the ESKF presented as assets: (i) minimal state parametrization, avoiding possible numerical instabilities on the estimated covariance matrix; (ii) straightforward use of the three-step decomposition of the mixed integer and real parameter estimation, where computationally intensive methods for the fix solution were avoided. The proposed ESKF and JPA were motivated by the expression of the GNSS attitude model in terms of the unit quaternion rotation, which was also presented here. Unlike traditional models based on the estimate of inter-antenna baselines or rotation matrices, the model presented respected the nonlinear constraints of the rotation throughout the three consecutive least-squares solutions. Moreover, the tight search for the integer candidates in conjunction with the weighted orthogonal Procrustes problem as in the acclaimed MC-LAMBDA was bypassed.
The experimentation of this work included real data collected for an ITS application, for which a vessel navigated for several hours around an inland waterway scenario. The results indicated a clear gain in precise navigation availability for the proposed recursive JPA, when compared to filtering solutions applied in parallel for the positioning and attitude cases. However, evidence showed that, since the GNSS attitude model was clearly stronger than the positioning one (at least when three or more GNSS antennas conformed the vehicle setup), the best strategy for a real application would probably be the parallel execution of an attitude-only and JPA filtering solutions. Thus, the availability of precise attitude and positioning estimates would be maximized.
Prospective lines of research on the JPA problem relate to the theoretical characterization of possible estimators. For any estimation problem, it is fundamental to obtain the minimum achievable performance, i.e., the derivation of the associated Cramér–Rao bound (CRB). This is especially challenging for JPA, since the model constitutes a mixture of real and integer unknown parameters. Moreover, such CRB should be invariant, since the performance shall not depend on the attitude parametrization employed. Hence, the ultimate performance (i.e., efficiency) of the proposed Lie algebra-based recursive JPA solution remains an open issue until such a CRB is derived.

Author Contributions

D.M. designed the concept for the paper and realized the software development. D.M., A.H., R.Z. performed the measurement campaign and data analysis. J.V.-V., R.Z. and J.G. supervised the scientific concept. D.M. and J.V.-V. prepared the original draft. All authors investigated on the obtained results and reviewed the paper. All authors have read and agreed to the published version of the manuscript.


This research was partially supported by the DGA/AID project 2019.65.0068.00.470.75.01. and the German Federal Ministry of Economic Affairs and Economy (BMWi) under the projects LAESSI (03SX402D) and SCIPPPER (03SX470E).


We thank the German Federal Waterways and Shipping Administration for the provision and preparation of the vessel MS Bingen, as well as all the skippers for sailing the measurements trials. We thank also SAPOS for providing the correction data of the reference stations.

Conflicts of Interest

The authors declare no conflicts of interest. The funders had no role in the design of the study; in the collection, analyses, or interpretation of data; in the writing of the manuscript; nor in the decision to publish the results.

Appendix A. The Rotation Group and the Quaternion

Attitude determination is the process of finding the relative orientation between two orthogonal frames. In R 3 , the rotation group SO 3 denotes the group of rotations under the operation of composition [30]. Rotations are linear operations preserving the vector length and the relative vector orientation. Thus, the rotation group SO 3 can be defined as:
SO 3 : = { r : R 3 R 3 / v , w R 3 , r v = v , r v × r w = r v × w } .
The rotation operation can be represented in multiple forms, although the most well known correspond to the Euler angles, rotation matrix, and quaternion. The quaternion is a four-dimensional hyper-complex number, often used to represent the orientation of a rigid body in a 3D space under the unit-norm constraint. The quaternion is defined as:
q q w q u = cos θ / 2 e sin θ / 2 ,
with q w and q u the real and complex parts, e a unit rotation axis, and θ a rotation angle. The unit quaternion can also be expressed with the exponential mapping of the rotation vector θ R 3 , such that:
q { θ } exp θ = cos θ 2 / 2 θ θ 2 sin θ 2 / 2 .
A quaternion only describes a proper rotation under the unit-norm constraint of its components:
q 2 q w 2 + q u 2 = 1 .
Quaternions obeying this constraint can be said to belong to the unit-quaternion group, described by the three-sphere S 3 . The transformation quaternion to rotation matrix R is given by the following homogeneous quadratic function:
R { q } = q w 2 q u q u I 3 + 2 q u q u + 2 q w [ q u × ] ,
where I 3 R 3 is the identity matrix and the skew operator [ v × ] defines the cross-product matrix:
[ v × ] = 0 v z v y v z 0 v x v y v z 0 ,
which is a skew-symmetric matrix, i.e., [ v × ] = [ v × ] , equivalent to the matrix form of the cross product [ v × ] w = v × w .
The quaternion product (quaternion product is generally denoted as ⊗, which this work reserves for the Kronecker product instead.) ∘ is non-commutative, associative, and distributive over the sum:
p q = p w q w p u q u p w q u + q w p u + p u × q u ,
The composition of quaternions is bilinear and can be expressed as two matrix products:
q 1 q 2 = [ q 1 ] L q 2 q 1 q 2 = [ q 2 ] R q 1 ,
with [ q ] L and [ q ] R the left and right quaternion product matrices, respectively. These product matrices are given by:
[ q ] L = q 0 I 4 + 0 q u q u [ q u × ] , [ q ] R = q 0 I 4 + 0 q u q u [ q u × ] .
The rotation operator over a vector r ( v ) using quaternion parametrization is expressed as:
r ( v ) = R { q } v = q v q * ,
where q * is the inverse quaternion operation:
q * = q w q u .

Jacobian with Respect to the Quaternion

This subsection derives the Jacobian matrix J q ( v ) for the rotation of the vector v with respect to the quaternion q , defined as:
J q ( v ) q v q * q .
Extending the quaternion multiplication and using (A7),
q v q * = q w q u 0 v q w q u
= q u v q w v + q u × v q w q u ,
from here, we will pay attention solely to the imaginary part:
q v q * = q u v q u + q w q w v + q u × v + q w v + q u × v × q u = q u v q u + q w 2 v + q w q u × v q w v × q u + q u × v × q u .
Considering the vectorial product properties:
a × b = b × a
a × b × c = a T c b a T b c
we can group q w q u × v q w v × q u = 2 q w v × q u . Substituting the vectorial product for the skew operator [ · × ] , to facilitate the matrix formulation, and applying Equation (A17), we can reformulate the quaternion operator as:
q v q * = q w 2 v 2 q w [ v × ] q u + 2 q u v q u q u q u v .
From here, deriving the partial derivatives of the quaternion results in being uncomplicated:
q v q * q w = 2 q w v 2 [ v × ] q u
q v q * q u = 2 q w [ v × ] + 2 q u v I 3 + q u v 2 v q u ,
obtaining finally:
J q ( v ) = 2 q w v [ v × ] q u q w [ v × ] + q u T v I 3 + q u v v q u R 3 , 4 .


  1. Giorgi, G.; Teunissen, P. GNSS Carrier phase-based attitude determination. In Recent Advances in Aircraft Technology; InTech: London, UK, 2012; pp. 193–220. [Google Scholar]
  2. Teunissen, P.J. Least-squares estimation of the integer GPS ambiguities. Invited lecture, section IV theory and methodology. In Proceedings of the IAG General Meeting, Beijing, China, 6–13 August 1993. [Google Scholar]
  3. De Jonge, P.; Tiberius, C. The LAMBDA Method for Integer Ambiguity Estimation: Implementation Aspects; Delft University of Technology: Delft, The Netherlands, 1996. [Google Scholar]
  4. Joosten, P.; Tiberius, C. Lambda: Faqs. GPS Solut. 2002, 6, 109–114. [Google Scholar] [CrossRef]
  5. Wang, K.; El-Mowafy, A.; Rizos, C.; Wang, J. Integrity Monitoring for Horizontal RTK Positioning: New Weighting Model and Overbounding CDF in Open-Sky and Suburban Scenarios. Remote Sens. 2020, 12, 1173. [Google Scholar] [CrossRef] [Green Version]
  6. Teunissen, P.J.G.; Montenbruck, O. (Eds.) Handbook of Global Navigation Satellite Systems; Springer: Cham, Switzerland, 2017. [Google Scholar]
  7. Wang, L.; Li, Z.; Ge, M.; Neitzel, F.; Wang, Z.; Yuan, H. Validation and assessment of multi-gnss real-time precise point positioning in simulated kinematic mode using igs real-time service. Remote Sens. 2018, 10, 337. [Google Scholar] [CrossRef] [Green Version]
  8. Teunissen, P. A general multivariate formulation of the multi-antenna GNSS attitude determination problem. Artif. Satell. 2007, 42, 97–111. [Google Scholar] [CrossRef] [Green Version]
  9. Giorgi, G. GNSS Carrier Phase-Based Attitude Determination: Estimation and Applications. Ph.D. Thesis, TU Delft, Delft, The Netherlands, 2011. [Google Scholar]
  10. Giorgi, G.; Teunissen, P.J.; Verhagen, S.; Buist, P.J. Testing a new multivariate GNSS carrier phase attitude determination method for remote sensing platforms. Adv. Space Res. 2010, 46, 118–129. [Google Scholar] [CrossRef] [Green Version]
  11. Eling, C.; Klingbeil, L.; Kuhlmann, H. Real-time single-frequency GPS/MEMS-IMU attitude determination of lightweight UAVs. Sensors 2015, 15, 26212–26235. [Google Scholar] [CrossRef] [Green Version]
  12. Henkel, P.; Iafrancesco, M.; Sperl, A. Precise point positioning with multipath estimation. In Proceedings of the 2016 IEEE/ION Position, Location and Navigation Symposium (PLANS), Savannah, GA, USA, 11–14 April 2016; pp. 144–149. [Google Scholar]
  13. Falco, G.; Pini, M.; Marucco, G. Loose and Tight GNSS/INS Integrations: Comparison of Performance Assessed in Real Urban Scenarios. Sensors 2017, 17, 255. [Google Scholar] [CrossRef]
  14. Medina, D.; Heßelbarth, A.; Büscher, R.; Ziebold, R.; García, J. On the Kalman filtering formulation for RTK joint positioning and attitude quaternion determination. In Proceedings of the 2018 IEEE/ION Position, Location and Navigation Symposium (PLANS), Monterey, CA, USA, 23–26 April 2018; pp. 597–604. [Google Scholar]
  15. Fan, P.; Li, W.; Cui, X.; Lu, M. Precise and Robust RTK-GNSS Positioning in Urban Environments with Dual-Antenna Configuration. Sensors 2019, 19, 3586. [Google Scholar] [CrossRef] [Green Version]
  16. Markley, F.L. Attitude Error Representations for Kalman Filtering. J. Guid. Control Dyn. 2003, 26, 311–317. [Google Scholar] [CrossRef]
  17. Crassidis, J.L.; Markley, F.L.; Cheng, Y. Survey of Nonlinear Attitude Estimation Methods. J. Guid. Control Dyn. 2007, 30, 12–28. [Google Scholar] [CrossRef]
  18. Lorenz, M.; Taetz, B.; Kok, M.; Bleser, G. On attitude representations for optimization-based Bayesian smoothing. In Proceedings of the 2019 22th International Conference on Information Fusion (FUSION, Ottawa, ON, Canada, 2–5 July 2019; pp. 1–8. [Google Scholar]
  19. Bar-Shalom, Y.; Li, X.R.; Kirubarajan, T. Estimation with Applications to Tracking and Navigation; John Wiley & Sons, Inc.: Hoboken, NJ, USA, 2001. [Google Scholar] [CrossRef]
  20. Glass, J.D.; Blair, W.; Bar-Shalom, Y. IMM estimators with unbiased mixing for tracking targets performing coordinated turns. In Proceedings of the 2013 IEEE Aerospace Conference, BigSky, MT, USA, 3–10 March 2013; pp. 1–10. [Google Scholar]
  21. Blom, H.A.; Bar-Shalom, Y. The interacting multiple model algorithm for systems with Markovian switching coefficients. IEEE Trans. Autom. Control 1988, 33, 780–783. [Google Scholar] [CrossRef]
  22. Toledo–Moreo, R.; Zamora–Izquierdo, M.A.; Ubeda-Minarro, B.; Gómez-Skarmeta, A.F. High-Integrity IMM–EKF–Based Road Vehicle Navigation With Low-Cost GPS/SBAS/INS. IEEE Trans. Intell. Transp. Syst. 2007, 8, 491–511. [Google Scholar]
  23. Leutenegger, S.; Lynen, S.; Bosse, M.; Siegwart, R.; Furgale, P. Keyframe-based visual–inertial odometry using nonlinear optimization. Int. J. Robot. Res. 2014, 34, 314–334. [Google Scholar] [CrossRef] [Green Version]
  24. Forster, C.; Carlone, L.; Dellaert, F.; Scaramuzza, D. On-Manifold Preintegration for Real-Time Visual–Inertial Odometry. IEEE Trans. Robot. 2016, 33, 1–21. [Google Scholar] [CrossRef] [Green Version]
  25. Barrau, A.; Bonnabel, S. Intrinsic filtering on Lie groups with applications to attitude estimation. IEEE Trans. Autom. Control 2014, 60, 436–449. [Google Scholar] [CrossRef]
  26. Mourikis, A.I.; Roumeliotis, S.I. A multi-state constraint Kalman filter for vision-aided inertial navigation. In Proceedings of the 2007 IEEE International Conference on Robotics and Automation, Roma, Italy, 10–14 April 2007; pp. 3565–3572. [Google Scholar]
  27. Trawny, N.; Roumeliotis, S.I. Indirect Kalman filter for 3D attitude estimation. Univ. Minnesota Dept. Comp. Sci. Eng. Tech. Rep 2005, 2, 2005. [Google Scholar]
  28. Solà, J. Quaternion kinematics for the error-state Kalman filter. arXiv 2017, arXiv:1711.02508. [Google Scholar]
  29. Onishchik, A.L.; Vinberg, E.; Minachin, V. Lie Groups and Lie Algebras; Springer: Berlin/Heidelberg, Germany, 1993. [Google Scholar]
  30. Stillwell, J. Naive Lie Theory; Springer Science & Business Media: Berlin/Heidelberg, Germany, 2008. [Google Scholar]
  31. Sola, J.; Deray, J.; Atchuthan, D. A micro Lie theory for state estimation in robotics. arXiv 2018, arXiv:1812.01537. [Google Scholar]
  32. Langley, R.B. RTK GPS. GPS World 1998, 9, 70–76. [Google Scholar]
  33. Teunissen, P.J. The least-squares ambiguity decorrelation adjustment: A method for fast GPS integer ambiguity estimation. J. Geod. 1995, 70, 65–82. [Google Scholar] [CrossRef]
  34. Absil, P.A.; Mahony, R.; Sepulchre, R. Optimization Algorithms on Matrix Manifolds; Princeton University Press: Princeton, NJ, USA, 2009. [Google Scholar]
  35. Lass, C.; Arias Medina, D.; Herrera Pinzón, I.D.; Ziebold, R. Methods of robust snapshot positioning in Multi-Antenna systems for inland water applications. In Proceedings of the European Navigation Conference 2016, Helsinki, Finland, 30 May–2 June 2016. [Google Scholar]
  36. Nocedal, J.; Wright, S. Numerical Optimization; Springer Science & Business Media: Berlin/Heidelberg, Germany, 2006. [Google Scholar]
  37. Medina, D.; Centrone, V.; Ziebold, R.; García, J. Attitude Determination via GNSS Carrier Phase and Inertial Aiding. In Proceedings of the 32nd International Technical Meeting of the Satellite Division of The Institute of Navigation (ION GNSS+ 2019), Miami, FL, USA, 23–28 September 2009; Institute of Navigation: Manassas, VA, USA, 2019. [Google Scholar] [CrossRef] [Green Version]
  38. Teunissen, P.J.; Giorgi, G.; Buist, P.J. Testing of a new single-frequency GNSS carrier phase attitude determination method: Land, ship and aircraft experiments. GPS Solut. 2011, 15, 15–28. [Google Scholar] [CrossRef] [Green Version]
  39. Teunissen, P.J. An optimality property of the integer least-squares estimator. J. Geod. 1999, 73, 587–593. [Google Scholar] [CrossRef]
  40. Medina, D.; Vilà-Valls, J.; Chaumette, E.; Vincent, F.; Closas, P. Cramér-Rao Bound for a Mixture of Real- and Integer-valued Parameter Vectors and its Application to the Linear Regression Model. Signal Process. 2020. submitted. [Google Scholar]
  41. Kuusniemi, H.; Wieser, A.; Lachapelle, G.; Takala, J. User-level reliability monitoring in urban personal satellite-navigation. IEEE Trans. Aerosp. Electron. Syst. 2007, 43, 1305–1318. [Google Scholar] [CrossRef]
  42. Medina, D.; Gibson, K.; Ziebold, R.; Closas, P. Determination of pseudorange error models and multipath characterization under signal-degraded scenarios. In Proceedings of the 31st International Technical Meeting of the Satellite Division of The Institute of Navigation (ION GNSS+ 2018), Miami, FL, USA, 24–28 September 2018; pp. 24–28. [Google Scholar]
  43. Das, P.; Ortega, L.; Vilà-Valls, J.; Vincent, F.; Chaumette, E.; Davain, L. Performance Limits of GNSS Code-Based Precise Positioning: GPS, Galileo & Meta-Signals. Sensors 2020, 20, 2196. [Google Scholar]
  44. Medina, D.; Ortega, L.; Vilà-Valls, J.; Vilà-Valls, J.; Closas, P.; Vincent, F.; Chaumette, E. A New Compact CRB for Delay, Doppler and Phase Estimation—Application to GNSS SPP & RTK Performance Characterization. IET Radar Sonar Navig. 2020. [Google Scholar] [CrossRef]
  45. Odijk, D. Weighting ionospheric corrections to improve fast GPS positioning over medium distances. In Proceedings of the ION GPS, Salt Lake City, UT, USA, 19–22 September 2000; pp. 1113–1123. [Google Scholar]
  46. Brack, A. Partial ambiguity resolution for reliable GNSS positioning—A useful tool? In Proceedings of the Aerospace Conference, Big Sky, MT, USA, 5–12 March 2016; pp. 1–7. [Google Scholar]
  47. iMar Navigation GmbH. iMar IMU FCAI-E Datasheet. Available online: (accessed on 11 June 2020).
  48. Trimble. Trimble S5 Total Station Datasheet. Available online: (accessed on 11 June 2020).
  49. Verhagen, S. Integer ambiguity validation: An open problem? GPS Solut. 2004, 8, 36–43. [Google Scholar] [CrossRef]
  50. Verhagen, S.; Teunissen, P.J. The ratio test for future GNSS ambiguity resolution. GPS Solut. 2013, 17, 535–548. [Google Scholar] [CrossRef]
  51. Medina, D.; Li, H.; Vilà-Valls, J.; Closas, P. Robust Statistics for GNSS Positioning under Harsh Conditions: A Useful Tool? Sensors 2019, 19, 5402. [Google Scholar] [CrossRef] [Green Version]
  52. Li, H.; Medina, D.; Vilà-Valls, J.; Closas, P. Robust Kalman Filter for RTK Positioning Under Signal-Degraded Scenarios. In Proceedings of the 32nd International Technical Meeting of the Satellite Division of the Institute of Navigation (ION GNSS+ 2019), Miami, FL, USA, 23–28 September 2009; pp. 16–20. [Google Scholar]
Figure 1. On the left, depiction of the global and body coordinate frames involved in the navigation problem. On the right, the configuration of the GNSS master and N slave antennas on the vehicle.
Figure 1. On the left, depiction of the global and body coordinate frames involved in the navigation problem. On the right, the configuration of the GNSS master and N slave antennas on the vehicle.
Remotesensing 12 01955 g001
Figure 2. Depiction of the satellites, base station, and the vehicle equipped with a master and slave antennas involved in the GNSS positioning and attitude models. For the sake of simplicity, the Nth slave antenna has been omitted in this figure.
Figure 2. Depiction of the satellites, base station, and the vehicle equipped with a master and slave antennas involved in the GNSS positioning and attitude models. For the sake of simplicity, the Nth slave antenna has been omitted in this figure.
Remotesensing 12 01955 g002
Figure 3. Pictorial example for double-difference (DD) code observation covariance matrix Q ρ . On the left, the case for separately solving the positioning and attitude problems. On the right, the joint positioning and attitude (JPA) problem is depicted with positioning and attitude cross-correlation taken into account.
Figure 3. Pictorial example for double-difference (DD) code observation covariance matrix Q ρ . On the left, the case for separately solving the positioning and attitude problems. On the right, the joint positioning and attitude (JPA) problem is depicted with positioning and attitude cross-correlation taken into account.
Remotesensing 12 01955 g003
Figure 4. On the left, the MSBingen vessel whose navigation solution is estimated. On the top right, the configuration of the antennas in the body/vehicle coordinate frame. On the bottom right, the number of tracked GPS satellites and associated position dilution of precision (PDOP).
Figure 4. On the left, the MSBingen vessel whose navigation solution is estimated. On the top right, the configuration of the antennas in the body/vehicle coordinate frame. On the bottom right, the number of tracked GPS satellites and associated position dilution of precision (PDOP).
Remotesensing 12 01955 g004
Figure 5. Trajectory followed by the tracked vessel, whose departure and arrival points coincide with the port on the right-hand side. The location of the total station (for optical tracking the vessel) and the base station are marked with a round and a square indicator, respectively.
Figure 5. Trajectory followed by the tracked vessel, whose departure and arrival points coincide with the port on the right-hand side. The location of the total station (for optical tracking the vessel) and the base station are marked with a round and a square indicator, respectively.
Remotesensing 12 01955 g005
Figure 6. Positioning performance for the JPA method during bridge passing. The black line is the reference trajectory estimated using laser tracking, and the dots correspond to the estimated solution (only fixed estimates) with the horizontal accuracy as indicated on the color bar.
Figure 6. Positioning performance for the JPA method during bridge passing. The black line is the reference trajectory estimated using laser tracking, and the dots correspond to the estimated solution (only fixed estimates) with the horizontal accuracy as indicated on the color bar.
Remotesensing 12 01955 g006
Figure 7. Attitude estimates over time for an hour of the studied experimentation. The attitude performance of the JPA (in black crosses) is shown against the reference fiber optic gyroscope (FOG) IMU-based estimate (in grey).
Figure 7. Attitude estimates over time for an hour of the studied experimentation. The attitude performance of the JPA (in black crosses) is shown against the reference fiber optic gyroscope (FOG) IMU-based estimate (in grey).
Remotesensing 12 01955 g007
Table 1. Percentage of fixed solutions (%) depending on the number of locked satellites.
Table 1. Percentage of fixed solutions (%) depending on the number of locked satellites.
Number of Satellites/Time (%)Fix Ratio (%)
JPAPositioningAttitudePos ∩ Attitude
9/ 28.68 85.9482.3083.2573.10
8/ 27.10 83.9354.0778.5049.07
7/ 35.32 68.1260.2281.5853.49
6/ 06.51 47.7865.2766.8960.24
≤5/ 2.38 01.1702.3302.5601.40

Share and Cite

MDPI and ACS Style

Medina, D.; Vilà-Valls, J.; Hesselbarth, A.; Ziebold, R.; García, J. On the Recursive Joint Position and Attitude Determination in Multi-Antenna GNSS Platforms. Remote Sens. 2020, 12, 1955.

AMA Style

Medina D, Vilà-Valls J, Hesselbarth A, Ziebold R, García J. On the Recursive Joint Position and Attitude Determination in Multi-Antenna GNSS Platforms. Remote Sensing. 2020; 12(12):1955.

Chicago/Turabian Style

Medina, Daniel, Jordi Vilà-Valls, Anja Hesselbarth, Ralf Ziebold, and Jesús García. 2020. "On the Recursive Joint Position and Attitude Determination in Multi-Antenna GNSS Platforms" Remote Sensing 12, no. 12: 1955.

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop