Introduction

In many industrial applications, such as construction engineering or agriculture, vehicles are applied for faster and more reliable task fulfillment. To enable supported or even automated steering of these vehicles, its attitude has to be known. Since global navigation satellite system (GNSS) attitudes are unaffected by drifts and do not require any alignment, GNSS are well suited for attitude determination. However, the availability, reliability, and accuracy of GNSS-attitudes depend on the antenna environment. Therefore, inertial sensors are often used to support the GNSS results during high dynamic applications. In recent years, micro-electro-mechanical system (MEMS) inertial sensors have been applied increasingly, due to their cost-effectiveness. For example, Li et al. (2012) presented an attitude determination system consisting of one single GNSS-antenna and MEMS inertial sensors. They have shown that the integration of MEMS inertial sensors leads to improvements in the attitude determination.

Nevertheless, a single-antenna approach has several drawbacks. It only enables attitude determination if the vehicle is moving and it leads to an average attitude between two epochs. Furthermore, it is based on assumptions such as that the moving direction is not affected by external influences like crosswind or flow of water. Accordingly, a multi-antenna system should be used as measurement setup for the realization of an accurate and reliable attitude determination system. If a multi-antenna system is used, the challenge lies in the ambiguity resolution.

In the last decades, a lot of research was done in resolving the ambiguities of double-differenced carrier phases. A distinction of the developed procedures can be made between (i) ambiguity resolution techniques in the measurement domain and (ii) search-based techniques (Kim and Langley 2000). First, techniques in the measurement domain are based on observations that are used to directly determine the ambiguities. For example, the usage of one very short baseline (shorter than the wavelength of a GNSS signal) in a multi-antenna system enables the calculation of the ambiguities (Eling et al. 2010). Motion-based methods, as Cohen (1996) or Crassidis et al. (1999) describe, also belong to class (i). Since the motion-based approaches depend on motions of the vehicle or changes in the receiver-satellite-geometry, they are not applicable for instantaneous ambiguity resolution.

By comparison, search-based techniques do not rely on motion and can be used instantaneously in principle (Teunissen 2010). They may be distinguished in (a) search techniques in the ambiguity domain and (b) search techniques in the coordinate domain. Search techniques in the ambiguity domain are often based on the LAMBDA method. Teunissen (2010) and Teunissen et al. (2011) advanced this procedure for attitude determination (C-LAMBDA). Other search techniques in the ambiguity domain make use of the LSAST method (Wang 2003).

A well-known search technique in the coordinate domain is the ambiguity function method (AFM) (Counselman and Gourevitch 1981; Remondi 1990; Mader 1990). The key benefit of this procedure is that it is instantaneous and resistant to cycle slips. In GNSS-challenged environments and dynamic applications, these properties are of special importance. The reason is that urban obstacles, like bridges or street canyons, as well as vegetation lead to frequent losses of lock of the ambiguities.

The greatest difficulty of instantaneous ambiguity resolution approaches is to reach computational efficiency in the search process. This efficiency depends primarily on the size of the search volume. For instance, if the baseline length is 2 m and the baseline elevation angle ranges from −30 to +30 deg, the search space includes about 60,000 candidates (Wang et al. 2007). Therefore, optimization is necessary to enable attitude determination in real time.

In many approaches, inertial navigation systems (INS) are used to increase the accuracy and the reliability of GNSS-attitudes (Hwang et al. 2005). Additionally, inertial sensors are also well suited to optimize the ambiguity search (Lee et al. 2004). For example, Campo-Cossio et al. (2009) applied MEMS inertial sensors to improve the ambiguity resolution, which is performed by a procedure developed by Hodgart and Purivigraipong (2000). This search technique is intended to be used in Low Earth Orbit satellites where errors in phase measurements are small and high dynamics are not present (Campo-Cossio et al. 2009).

We aim for developing an attitude determination system for GNSS-challenged environments with the following characteristics:

  • high accuracy, reliability, and availability

  • instantaneous ambiguity resolution

  • high computational efficiency.

Therefore, we use the following components:

  • MEMS-aided ambiguity resolution with the AFM

  • extended Kalman filter (EKF)/shaping filter (SF)

  • baseline constraints.

Our system consists of three GNSS antennas and one MEMS-INS. The GNSS antennas form two short baselines. The first baseline points into driving direction and is used to determine the yaw and the pitch angles of the vehicle. The second baseline is right-angled to the first and enables the determination of the roll angle (see the Results section for details). In the following sections, we first describe the ambiguity resolution algorithm with the AFM, which is the key to the GNSS-attitude determination. Afterwards, we outline the GNSS/MEMS integration via an EKF and we also prove the applicability of a SF. Finally, we present results of dynamic experiments during GNSS-friendly and GNSS-challenged environments, in order to show that the system performs well in every field of application.

GNSS-attitude determination with the AFM

To determine the GNSS-yaw, GNSS-pitch, and GNSS-roll angles, the ambiguities have to be resolved for both GNSS baselines. In our system, we use the AFM for the ambiguity resolution. In principle, the AFM is an instantaneous search technique based on a trigonometric cost function, which is called the ambiguity resolution function (ARF). For attitude determination, the lengths of the two GNSS baselines are fixed. Accordingly, the ARF is only dependent on the azimuth (az) and the elevation (el) of the current baseline (Caporali et al. 2003):

$$ {\text{ARF}}\left( {{\text{az}},{\text{el}}} \right) = \sum\limits_{f = 1}^{p} {\sum\limits_{j = 1}^{n - 1} {\cos 2\pi \left[ {\nabla \Updelta \phi_{\text{obs}}^{kj} - \nabla \Updelta \phi_{\text{calc}}^{kj} \left( {{\text{az}},{\text{el}}} \right)} \right]} } $$
(1)

In the ambiguity resolution approach, all possible azimuths and elevations of a predefined search volume represent ambiguity candidates. By use of these azimuths, elevations and the known baseline length, all observed double differences Δ∇ϕobs for the satellites k and j can also be calculated (Δ∇ϕcalc). If the current set of candidates is correct, the differences between the observed fractional and the calculated double differences are the ambiguities. Since the ambiguities are integers, the results of the cosines would all be equal to 1. Consequently, considering n − 1 observed double differences on p frequencies, and the correct candidate, the result of the ARF would ideally be equal to (n − 1)⋅p where n is the number of the visible satellites. Although the baselines of the attitude determination system are short (<5 m), systematic effects do exist due to multipath and receiver noise. Therefore, the value (n − 1)⋅p will never be reached exactly, but the maximum of the ARF ideally leads to the correct ambiguities.

The link between the ambiguities and the real attitudes is given by the baseline vector b = [b x , b y , b z ]. With the ambiguities fixed by the AFM, b can be estimated in a least-squares adjustment:

$${\varvec {\nabla \Updelta \phi}}_{\rm obs} + \lambda \cdot {\varvec N} = {\user2{Ab}} + {\varvec \varepsilon}\quad {\user2{A}} \in R^{n-1,3} , {\user2{b}} \in R^{3,1},\,{\varvec {\nabla \Updelta \phi}} \in R^{n-1,1}$$
(2)

where λ is the wavelength, N is the ambiguity vector, A is the geometry matrix containing the receiver-satellite unit line-of-sight vectors, and ε is the noise. For attitude determination, the baseline vector has to be transformed into a local-level frame:

$$ \left[ {\begin{array}{*{20}c} {b_{N} } \\ {b_{E} } \\ {b_{U} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} { - \sin \Upphi \cos \Uplambda } & { - \sin \Upphi \sin \Uplambda } & {\cos \Upphi } \\ { - \sin \Uplambda } & {\cos \Uplambda } & 0 \\ {\cos \Upphi \cos \Uplambda } & {\cos \Upphi \sin \Uplambda } & {\sin \Upphi } \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {b_{x} } \\ {b_{y} } \\ {b_{z} } \\ \end{array} } \right] $$
(3)

where b N , b E and b U are the North-, East- and Up-component of the baseline vector in the local-level frame and Φ and Λ are the latitude and longitude of one of the antennas, determined by GNSS code observations. Finally, the azimuths and elevations of the baselines are the following:

$$ {\text{az}} = \arctan \frac{{b_{E} }}{{b_{N} }}\quad {\text{el}} = \arctan \frac{{b_{U} }}{{\sqrt {b_{N}^{2} + b_{E}^{2} } }} $$
(4)

The ideal outcome of an ARF contains one candidate that stands out from the rest so that there is only one obvious absolute maximum, as presented in the left chart of Fig. 1. In this case, the result is easy to interpret. However, the ARF is a nonlinear multi-peak function, and in GNSS-challenged environments, several maxima points of similar magnitude often occur (see Fig. 1, right). Accordingly, the number of candidates in the search space should be reduced. The reason for this is not only the computational efficiency, but also the reliability, since many false candidates are omitted, if the search space is limited (colored area). Therefore, we use MEMS inertial sensors to determine approximate attitudes to reduce the size of the search space. According to the accuracy of the approximate attitudes the reduced search space consists of 100–1,000 candidates. This is considerably less than a full search (60,000 candidates).

Fig. 1
figure 1

Results of the ARF for full searches (az ∈ [0,360]; el ∈ [0,180]). Left: ideal outcome with one candidate that stands out from the rest. Right: non-ideal outcome with many maxima of similar magnitude. The colored area is a reduced search space

Despite the search space reduction, several candidates of similar magnitudes may still exist in the ARF. Consequently, in addition to the outcome of the AFM, more criterions are required to identify the optimal solution. Therefore, all solutions producing an ARF value of 90 % or more of the maximum are added to a short list. Afterwards, the candidates of the short list are selected for further analysis (Corbett and Cross 1995). The residuals, the variances of the least-squares adjustment and deviations between the known and the estimated baseline length are candidates for an evaluation process to find the correct ambiguities.

A correct ambiguity resolution does not ensure a correct attitude determination. Especially in GNSS-challenged environments, the least-squares adjustment sometimes becomes rather uncertain. The reason for this is an ill-conditioning of the normal equation. Minimal changes in the observations might than lead to large changes in the solutions. The tendency of an equation to such a behavior can be expressed by the condition number κ, which is depicted by the quotient of the largest eigenvalue e max and the smallest eigenvalue e min of the coefficient matrix (Höpcke 1980):

$$ \kappa = \frac{{e_{\max } }}{{e_{\min } }} $$
(5)

To stabilize an ill-conditioned coefficient matrix, information has to be included that improves the identification of correct and false results. For this purpose, a baseline constraint ||b|| = l is well suited, where l is the known baseline length and \( \left| {\left| b \right|} \right| = \sqrt {b_{x}^{2} + b_{y}^{2} + b_{z}^{2} } \). Consequently, the baseline length is not only used to find the correct ambiguity candidates, but also to improve the conditioning of the least-squares adjustment.

GNSS/MEMS integration

Summarizing the previous sections, there are two main reasons for the GNSS/MEMS integration. First, the MEMS inertial sensors are well suited to improve the ambiguity resolution. Second, they increase the accuracy, reliability, and availability of the attitudes, since GNSS observations are sensitive to multipath and may be interrupted by various obstacles. Several different MEMS inertial sensors are qualified for GNSS/MEMS integration, such as:

Accelerometers

MEMS accelerometers can be used to reduce the search space for the roll ϕ and the pitch θ of a vehicle if the Coriolis acceleration due to the earth’s rotation is negligible and the vehicle is stationary or moving with constant speed (Lai and Jan 2011):

$$ \theta = \arcsin \left( {\frac{{a_{x} }}{g}} \right)\quad \phi = \arctan \left( {\frac{{a_{y} }}{{a_{z} }}} \right) $$
(6)

In these equations, the symbol g is the length of the gravity vector and a x , a y , and a z are the measured accelerations in the body frame.

Gyroscopes

The output of MEMS gyroscopes are inertial angular rates ω x, ω y, and ω z in the body coordinate frame. Once the sensor is aligned in the navigation frame, the angular rates enable an update of the vehicles attitude. Based on an Euler angle representation, the update follows the equations (Titterton and Weston 2004):

$$ \dot{\psi} = \left( {\omega_{y} \sin \phi + \omega_{z} \cos \phi } \right)/\cos \theta $$
(7.1)
$$ \dot{\theta } = \omega_{y} \cos \phi - \omega_{z} \sin \phi $$
(7.2)
$$ \dot{\phi } = \left( {\omega_{y} \sin \phi + \omega_{z} \cos \phi } \right)\tan \theta + \omega_{x} $$
(7.3)

As mentioned above, the symbols ϕ and θ denote the roll and pitch, and ψ is the yaw angle.

Since we would like to develop an attitude determination system for high dynamics, the gyroscopes are better suited to aid the GNSS-attitudes during motion than the accelerometers. Nevertheless, the accelerometers are qualified to limit the ambiguity search space in case of a first-time initialization, which is mostly performed during static mode. The fusion of the GNSS-attitudes and the angular rates is performed by use of an EKF.

Extended Kalman filter algorithm

An EKF combines information about vehicle motion with noisy measurements to estimate the state of a system with uncertain dynamics. The crucial point is the correctness of the motion model, which is the basis for the prediction step in the EKF. In case of a poor motion model, the filter is not suited to follow high dynamic motion. To avoid this, we directly use the angular rates to predict the attitudes from epoch k to k + 1:

$$ {\bar{\mathbf{x}}}_{k + 1} = f_{k + 1,k} ({\hat{\mathbf{x}}}_{k} ,{\varvec{\omega}}_{k + 1} ) $$
(8)

where \( {\bar{\mathbf{x}}}_{k + 1} \) is the vector containing the predicted state of epoch k + 1, \( {\hat{\mathbf{x}}}_{k} \) is the estimated state of epoch k and \( {\varvec{\omega}}_{k + 1} \) consists of the angular rates, measured at epoch k + 1. The objective function \( f_{k + 1,k} \) represents the mathematical model for the prediction of the state vector x from epoch k to k + 1. It is based on (7.1)–(7.3). Generally, this prediction should also be used to reduce the size of the search volume and to bridge GNSS gaps. However, due to sensor noise, inaccuracies in the sensor calibration and temperature effects, the variances of the navigation state increase during the integration of the angular rates. Since GNSS provide long-term stable measurements, the GNSS/MEMS integration in an EKF enables an on-the-fly calibration of the gyroscopes. Consequently, the state vector x should be augmented to consider the time-dependent biases Δω x , Δω y , and Δω z of the MEMS gyroscopes:

$${\user2{x}} = [\psi \;\theta \;\phi \;\Updelta \omega _{x} \;\Updelta \omega _{y} \;\Updelta \omega _{z} ]{^T}$$
(9)

In the full prediction step, the attitudes are updated by (7.1)–(7.3), whereas the measured angular rates are corrected by the estimated biases from the prior epoch:

$$ \left[ {\begin{array}{*{20}c} {\bar{\psi }_{k + 1} } \\ {\bar{\theta }_{k + 1} } \\ {\bar{\phi }_{k + 1} } \\ {\Updelta \bar{\omega }_{x,k + 1} } \\ {\Updelta \bar{\omega }_{y,k + 1} } \\ {\Updelta \bar{\omega }_{z,k + 1} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {\hat{\psi }_{k} + \left( {\left( {\omega_{y,k + 1} + \Updelta \hat{\omega }_{y,k} } \right) \cdot \sin \hat{\phi }_{k} + \left( {\omega_{z,k + 1} + \Updelta \hat{\omega }_{z,k} } \right) \cdot \cos \hat{\phi }_{k} } \right) \cdot 1/\cos \hat{\theta }_{k} } \\ {\hat{\theta }_{k} + \left( {\omega_{y,k + 1} + \Updelta \hat{\omega }_{y,k} } \right) \cdot \cos \hat{\phi }_{k} - \left( {\omega_{z,k + 1} + \Updelta \hat{\omega }_{z,k} } \right) \cdot \sin \hat{\phi }_{k} } \\ {\hat{\phi }_{k} + \left( {\left( {\omega_{y,k + 1} + \Updelta \hat{\omega }_{y,k} } \right) \cdot \sin \hat{\phi }_{k} + \left( {\omega_{z,k + 1} + \Updelta \hat{\omega }_{z,k} } \right) \cdot \cos \hat{\phi }_{k} } \right) \cdot \tan \hat{\theta }_{k} + \left( {\omega_{x,k + 1} + \Updelta \hat{\omega }_{x,k} } \right)} \\ {\Updelta \hat{\omega }_{x,k} } \\ {\Updelta \hat{\omega }_{y,k} } \\ {\Updelta \hat{\omega }_{z,k} } \\ \end{array} } \right] $$
(10)

The discrete system

$$ {\user2{x}}( {k + 1} ) = {\user2{F}} ( k) \cdot {\user2{x}} ( k) + {\user2{B}} ( k) \cdot {\user2{u}} ( k) $$
(11)

contains the transition matrix F(k), the input matrix B(k), the state vector x(k), and the input parameters u(k) (Titterton and Weston 2004). The F-matrix in turn consists of the derivatives of (10) with respect to x, and the B-matrix includes the derivatives of (10) with respect to the input vector u = [ω x ω y ω z ]T.

The measurement equation consists of the relation between x and the measured GNSS-derived Euler angles y = [ψG θ G ϕ G]T , given by the design matrix H and a white noise ε:

$$ \user2{y}\left( {k + 1} \right) = \user2{H}\left( {{k} + {\rm 1}} \right) \cdot {\user2{x}}\left( {{ k} + 1} \right) + {\boldsymbol{\varepsilon} }\left( {{k} + {\rm 1}} \right) $$
(12)

with its components

$$ \left[ {\psi_{k + 1}^{G} \,\,\theta_{k + 1}^{G} \,\,\phi_{k + 1}^{G} } \right]^{T} = \left[ {{\bf I}_{3x3} \,\,\user2{0}_{3x3} } \right] \cdot \left[ {\psi_{k + 1} \,\,\theta_{k + 1} \,\,\phi_{k + 1} \,\,\Updelta \omega_{x,\,k + 1} \,\,\Updelta \omega_{y,\,k + 1} \,\,\Updelta \omega_{z,\,k + 1} } \right]^{\,T} + {\boldsymbol{\varepsilon }} $$
(13)

where the index G stands for GNSS and I is an identity matrix.

Shaping filter implementation

It is well known that Kalman filtering requires white noise (Wojcik 1993). Due to multipath and signal propagation, GNSS observations are time correlated. Consequently, the assumption of white measurement noise cannot be justified. To eliminate this deficiency, the state vector can be augmented by a shaping filter (SF), with the aim to describe the long-term measurement correlations. The correlating deviations follow a Gauß-Markov process with the correlation function

$$ C\left( t \right) = {\text{e}}^{{ - \alpha \left| {\Updelta t} \right|}} = {\text{e}}^{{ - \frac{{\left| {\Updelta t} \right|}}{\tau }}} $$
(14)

where Δt is the sampling rate and α is the reciprocal value to the correlation time τ. For SF-implementation, the parameter α has to be estimated first (Li and Kuhlmann 2008). Afterwards, the state vector can be augmented by the SF using the mathematical model shown in (14).

Before presenting results of the attitude determination system during kinematic experiments, we present an example for a static time series to demonstrate the improvements that result from the SF-implementation. Since in static applications no dynamics are present, the MEMS gyroscopes are not required and the motion model of one of the Euler angles x E follows a random walk process:

$$ \user2{x}\left( {k + 1} \right) = \user2{F}\left( k \right) \cdot \user2{x}\left( k \right) + \user2{S}\left( k \right) \cdot \user2{w}\left( k \right) $$
(15)
$$ \left[ {\begin{array}{*{20}c} {x_{E} (k + 1)} \\ {x_{\text{SF}} (k + 1)} \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} 1 & 0 \\ 0 & {{\text{e}}^{ - \alpha \Updelta t} } \\ \end{array} } \right] \cdot \left[ {\begin{array}{*{20}c} {x_{E} (k)} \\ {x_{\text{SF}} (k)} \\ \end{array} } \right] + \left[ {\begin{array}{*{20}c} 1 & 0 \\ 0 & {{\text{e}}^{ - \alpha \Updelta t} } \\ \end{array} } \right] \cdot \left[ {\begin{array}{*{20}c} {w_{E} (k)} \\ {w_{\text{SF}} (k)} \\ \end{array} } \right] $$
(16)

The state vector is augmented by the SF-state x SF. The transition matrix F and the system noise coupling S are identical. The vector w contains the system noise.

Results for the filtering of the yaw angle during a static experiment with a 2.5-m baseline are presented in Fig. 2. It can be seen that the implementation of an EKF merely leads to a reduction of the white noise of the GNSS-attitude. In addition, the SF leads to a significant reduction in the systematic effects. Consequently, the standard deviation of the mean value decreases from 0.073 to 0.024 deg.

Fig. 2
figure 2

Comparison of an unfiltered GNSS-yaw with an EKF-yaw and an EKF+SF-yaw

In static mode, the SF improves the accuracy of the attitudes considerably. In case of kinematic applications, this is different. The reason for this will be explained in the following paragraph.

By augmenting the state vector with an SF-state, the filter assumes colored noise in the GNSS-attitudes. Therefore, the shaping filter increases the influence of the prediction step. In case of kinematic applications, the prediction step is performed by the gyroscopes (10). The performance of MEMS gyros is affected by angular random walk effects. In our attitude system, we use the XSens MTi as MEMS. In Table 1, the specifications of the low-cost inertial sensors are presented. The angular random walk is specified with 3 deg/√h. By means of field experiments, this effect, in combination with the Euler angle propagation, led to deviations from the nominal value of maximum 1.7 deg for the yaw angle within 10 min. This is slightly larger than mentioned in the specifications (3/√1/6 = 1.2 deg).

Table 1 Specifications of the XSens MTi and the Imar iNAV-FJI-LSURV-001

Since the SF increases the influence of the prediction step, it also increases the influence of the random walk. Therefore, the SF showed poor results in combination with the MEMS inertial sensors during kinematic mode. In addition, during kinematic applications, the attitudes change very rapidly. We cannot exclude that the spectral region of the systematic errors in the GNSS signals coincide with the motion of the vehicle. Accordingly, the SF can be the cause for incorrectly smoothing the attitudes. Therefore, we only use the SF for static mode (GNSS-velocity ≈ 0 km/h).

Results

The GNSS/MEMS attitude determination system was tested during static and kinematic applications. In this section, we present the results of two kinematic tests with different conditions. One experiment was performed in a GNSS-friendly agriculture environment and one was performed in a GNSS-challenged urban area environment.

The measurement setup of the attitude determination system is presented in Fig. 3. Two GNSS baselines and the XSens MTi (MEMS) were mounted on the roof of the vehicle. The first baseline (yaw/pitch baseline) had a length of 2.5 m and was aligned in driving direction. The second baseline (roll baseline) was 1.3 m long and right-angled to the first one. For both experiments, we used L1 and L2 Global Positioning System (GPS) carrier phases sampled with 10 Hz.

Fig. 3
figure 3

Flow diagram of the attitude determination system (left) and measurement setup for kinematic experiments (right)

Furthermore, a high-end INS (iNAV-FJI, Imar), containing fiber-optical gyroscopes, was mounted in the car trunk. In the assessment of the results, this Imar-INS has been used as an attitude reference because of its high level of bias stability (<0.003–0.01 deg/h) and the low influence of the random walk (0.001 deg/√h) (see Table 1). For observation times less than 1 h, the Imar-INS provides attitudes with an accuracy of <0.01 deg. On the basis of different tests, we found that the noise of the Imar-INS attitudes is significantly lower than the noise of the GNSS-attitudes (<5–15 times).

Test 1: agriculture application

The first experiment should give an impression of how well the attitude determination system performs. Therefore, it was conducted in GNSS-friendly environments, on fields with only a few trees or urban obstacles. It was dedicated to simulate an agriculture application including long straight path segments with driving speeds of 10–20 km/h.

In Fig. 4, differences of the GNSS-attitudes relative to the reference solution (Imar-INS) and differences of the EKF-attitudes relative to the reference solution are shown. To isolate outliers from the rest of the results, boundary values are drawn in the figures. These 3σ boundaries symbolize levels of significance depending on standard deviations determined by means of static tests. Accordingly, the boundary values are 3⋅0.05 deg for the yaw, 3⋅0.1 deg for the pitch, and 3⋅0.16 deg for the roll angle. All results outside these boundaries are treated as outliers.

Fig. 4
figure 4

Results of the agriculture experiment: differences of the GNSS-attitudes and the EKF-attitudes to the reference solution (Imar-INS). The dashed lines symbolize levels of significance to isolate outliers

It can be seen that the result of the roll is noisier than the outcome of the yaw and the pitch. This is not surprising, since the accuracy of a GNSS-attitude depends on the baseline length and the yaw/pitch baseline is considerably longer than the roll baseline. Moreover, the yaw angle is the most accurate attitude. The reason is that the roll and the pitch are also based on the noisier Up-components of the baselines (4).

To emphasize the benefit of the EKF, standard deviations of the differences to the reference solution are presented in Table 2. For example, the standard deviation of the roll angle could be reduced from 0.169 to 0.13 deg, which corresponds to a 25 % reduction.

Table 2 Results of the agriculture experiment

Since there were no long-term signal interruptions during the agriculture experiment, the reduced search space was always very small. Therefore, the ambiguity search could have been omitted, in principal. In this case, the AFM would only be utilized to be resistant to cycle slips. Nevertheless, to prove the reliability of the AFM after long-term GNSS gaps, we enlarged the search space deliberately to 10 deg (approx. 250 candidates) in every epoch. Therefore, the algorithm became slightly slower. However, the computation time was still considerably less than 50 ms (standard notebook, 2.1 GHz) for all epochs, which allows for a real-time computation with a sampling rate of 20 Hz. The ambiguity resolution success rates for the agriculture experiment are listed in Table 2. Accordingly, for the 14,656 observation epochs of the agriculture experiment, the ambiguity resolution success rates (AR-SR) were above 99.97 %, for both baselines.

Test 2: urban area application

Since the results obtained in GNSS-friendly environments are very good, the second experiment should show that the attitude determination system also performs well in GNSS-challenged environments. The experiment was conducted in urban areas of Bonn. During the drive of about 20 min with speeds of 30–80 km/h particularly avenues and densely built-up areas were chosen to produce GNSS observations under poor GNSS measurement conditions. In Fig. 5, the number of visible satellites is shown for all epochs during this experiment. It can be seen that the GNSS signals were often interrupted.

Fig. 5
figure 5

Number of visible satellites during the urban area experiment

The results of the urban area experiment are presented in Fig. 6. In this figure, the differences of the yaw, pitch, and roll angles relative to the reference solution (Imar-INS) are shown. In addition, the 3σ boundaries used in the prior analysis are also applied to outline the level of significance of the deviations. Due to the GNSS-challenged environment, many more GNSS outliers are visible than in the GNSS-friendly environment.

Fig. 6
figure 6

Results of the urban area experiment: differences of the GNSS-attitudes and the EKF-attitudes to the reference solution (Imar-INS). The dashed lines symbolize levels of significance to isolate outliers

For assessing the results, the standard deviations of the differences to the reference solution for all GNSS and all EKF values are shown in Table 3. Generally, the GNSS/MEMS combination shall serve the purpose of minimizing the influence of GNSS outliers. Considering the first two rows of the table, the extent of the minimization is not as desired. This is because of the dead reckoning (gyro integration) during long-term GNSS gaps. Especially in the roll and the pitch angles, heavy divergences to the reference (larger than 2 deg) occurred in the urban area experiment, due to sensor random walk effects of the MEMS gyroscopes.

Table 3 Results of the urban area experiment

Apart from that, as long as GNSS was available or the GNSS outage was brief, the combination with the MEMS inertial sensors led to significant improvements of the performance (rows 3 and 5 of Table 3). For instance, the number of outliers could be reduced from 26.03 to 6.48 % for the yaw angle.

The success rates (SR) of the ambiguity resolution during the urban area experiment are presented in Fig. 7. Especially, the reliability of the ambiguity resolution at times of four tracked satellites shall be highlighted in this figure, since the ambiguity resolution was also successful in these cases, producing rates above 99 %.

Fig. 7
figure 7

Percentage of the total number of epochs with the corresponding number of satellites tracked, together with the ambiguity resolution success rate (SR) for both baselines (left: yaw/pitch, right: roll)

Finally, in Fig. 8, the improvements of the condition number due to the implementation of baseline constraints are shown. Accordingly, the constraints reduced the condition number of the normal equations in many epochs of the urban area experiment, with the result that ill-posed problems became more reliable. Consequently, the rates of outliers and the standard deviations could be reduced significantly (see Table 3).

Fig. 8
figure 8

Improvements of the condition number due to the implementation of constraints

Conclusions

The attitude determination system presented here has been developed to perform well in GNSS-friendly and GNSS-challenged environments. To improve the reliability, accuracy, and availability of the GNSS-attitudes, MEMS inertial sensors have been added to the system. Results of different experiments have shown that the GNSS/MEMS integration offers several benefits. On the basis of a search space reduction, the reliability of the instantaneous ambiguity resolution is enhanced (success rates >99 %). The computational efficiency increases (runtime per epoch <50 ms). The accuracy of the GNSS-attitudes is improved by means of GNSS/MEMS integration in an EKF (0.03–0.1 deg for the yaw). Finally, adding the MEMS inertial sensors also leads to a permanent availability of the attitudes. Consequently, we found that the attitude determination system fulfills the task and leads to accurate and reliable results in GNSS-friendly and GNSS-challenged environments.

Nevertheless, the MEMS inertial sensors are considerably affected by random walk. The presented results have shown that during dead reckoning, the random walk leads to large deviations from the reference solution. In addition, the random walk is also the reason why the SF is ineffective for kinematic applications. Consequently, in further research, the performance of better MEMS inertial sensors should be tested.