On the Kalman Filtering Formulation for RTK Joint Positioning and Attitude Quaternion Determination
Daniel Medina, Anja Heßelbarth, Rauno Büscher, Ralf Ziebold, German Aerospace Center (DLR), Germany; Jesús García, Charles III University of Madrid, Spain
As the prospective autonomous shipping and the autonomous car are called to completely revolutionize transportation systems, Global Navigation Satellite Systems (GNSS) will be playing a fundamental role in this change. Thus, GNSS technology has been under substantial development over the last years, especially with the prominent upgrowth and deployment of the new Galileo and BeiDou constellations. While position estimation is undoubtedly dominated by the usage of GNSS, attitude determination is one of the lesser known applications of GNSS. Despite code observations could be used to estimate attitude, the obtained accuracy is insufficient for many applications. This work presents an in-depth description on how to recursively estimate the joint positioning and attitude problems using Real Time Kinematic (RTK) technique.
Attitude determination is the process of estimating the orientation of a moving rigid body with respect to the environment and it can be considered as a classical problem with more than 50 years of history. The problem of finding the optimal attitude solution, given multiple vectors across two frames, was first formulated by Grace Wahba in 1965  and it was initially motivated for the determination a satellite attitude using star-trackers . In a multi-antenna GNSS system, one seeks finding the rotation which relates the baseline vectors joining each pair of antenna positions across the body and the ECEF (Earth-centered Earth-fixed) frames. Although GNSS attitude determination provides substantially higher accuracy than other systems, its implementation poses some constraints. On the one hand, at least a couple of GNSS receivers providing carrier phase are needed. On the other hand, the attitude accuracy is inversely proportional to the separation between the antennas, making this system impractical for small vehicles (such as UAVs).
The orientation can be generally represented in three principal forms: Euler angles, rotation matrix and quaternion. Euler angles describe orientation as three consecutive elemental rotations. Although they are conceptually easy to understand, they pose a singularity problem, commonly referred as “gimbal lock”, when the pitch angle approaches +/-90°. Rotation matrices represent an alternative for attitude parametrization which do not incur on any singularity. However, rotation matrices results in difficult renormalization and computational inefficiency (rotation matrices have 9 elements to describe a 3D attitude). Finally, a quaternion is a four dimensional hyper-complex number which is often used to represent the orientation of a rigid body in a 3D space. Attitude quaternion might not be intuitive (and definitely difficult to mentally picture it!) but it has been widely adopted (especially in robotics and computer graphics) given its singularity-free orientation and numerical stability . Moreover, the characteristic quaternion algebra simplifies the derivation of the Jacobian matrices associated to Kalman Filters.
In , it is presented a general formulation for GNSS attitude determination problems, showing the relation between carrier phase ambiguity resolution and solving the corresponding attitude matrix.  briefly discusses on attitude estimation over time, suggesting a possible construction for a recursive determination of attitude.  also proposes the joint estimation of positioning and attitude expressed as Euler angles, gaining additional redundant measurements (reducing the number of estimated unknowns). However, the measurement analysis consisted of a statics scenario and the attitude precision was not addressed. More recently,  reviews the attitude determination topic, providing an overview on attitude estimation and even providing an example setup for the multi-antenna system on a vehicle. Nonetheless, an in-depth discussion on how to formulate a recursive Bayesian estimation of a rigid body attitude using multiple GNSS antennas is still missing.
This work presents a formulation for the simultaneous determination of the carrier phase ambiguities, together with the positioning and the attitude quaternion problems for a GNSS multi-antenna system. The resulting system of nonlinear equations is linearized and solved recursively applying an EKF. In general, the combined estimation of position and attitude results in a higher redundancy of measurements - as compared to estimating the position of each of the antennas and then computing the attitude. Therefore, it is discussed whether having extra measurements compensates for the additional estimation complexity. The performance of the estimated position and attitude solution are assessed using real measurements acquired during a measurement campaign. For the experimentation, a vessel, equipped with three GNSS receivers in an isosceles right triangle configuration, navigates along an inland waterway in a signal-degraded scenario with severe multipath effects.
 Wahba, Grace. "A least squares estimate of satellite attitude." SIAM review 7.3 (1965): 409-409.
 Shuster, Malcolm D. "The quest for better attitudes." The Journal of the Astronautical Sciences 54.3 (2006): 657-683.
 Solà, Joan. Quaternion kinematics for the error-state Kalman filter. 2015.
 Teunissen, Peter. "A general multivariate formulation of the multi-antenna GNSS attitude determination problem." Artificial Satellites 42.2 (2007): 97-111.
 Henkel, Patrick, Michele Iafrancesco, and Andreas Sperl. "Precise point positioning with multipath estimation." Position, Location and Navigation Symposium (PLANS), 2016 IEEE/ION. IEEE, 2016.
 Petovello, Mark. “How do you use GNSS to compute the attitude of an object?”. GNSS Solutions September-October 2017.