Next Article in Journal
Design for Sustainable Public Transportation: LCA-Based Tooling for Guiding Early Design Priorities
Next Article in Special Issue
AR-Based Navigation Using RGB-D Camera and Hybrid Map
Previous Article in Journal
When Circular Economy Meets Inclusive Development. Insights from Urban Recycling and Rural Water Access in Argentina
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:

Full Real-Time Positioning and Attitude System Based on GNSS-RTK Technology

J. M. Olivart i Llop
D. Moreno-Salinas
2 and
J. Sánchez
Ardusimple—EPS Works Consulting SLU, 25199 Lleida, Spain
Department of Computer Science and Automatic Control, Universidad Nacional de Educación a Distancia (UNED), 28040 Madrid, Spain
Author to whom correspondence should be addressed.
Sustainability 2020, 12(23), 9796;
Submission received: 1 September 2020 / Revised: 3 November 2020 / Accepted: 18 November 2020 / Published: 24 November 2020
(This article belongs to the Special Issue High Precision Positioning for Intelligent Transportation System)


An accurate positioning and attitude computation of vehicles, robots, or even persons is of the utmost importance and critical for the success of many operations in multiple commercial, industrial, and research areas. However, most of these positioning and attitude systems rely on inertial measurement units that must be periodically recalibrated and have a high cost. In the present work, the design of a real-time positioning and attitude system using three positioning sensors based on the GNSS-RTK technology is presented. This kind of system does not need recalibration, and it allows one to define the attitude of a solid by only computing the position of the system in the global reference system and the three angles that the relative positions of the GNSS antennas define with respect to the principal axes of the solid. The position and attitude can be computed in real time for both static and dynamic scenarios. The only limitation of the system is that the antennas need to be in open air to work at full performance and accuracy. All the design phases are covered in the prototype construction: requirement definition, hardware selection, software design, assembly, and validation. The feasibility and performance of the system were tested in both static and dynamic real scenarios.

1. Introduction

The accurate positioning and attitude computation of vehicles, robots, or even persons is of the utmost importance and critical for the success of multiple operations and missions in many commercial and research areas. The attitude and positioning info can be used to follow the state of progress of a particular mission or to relay it as a navigation aid to the navigation systems [1,2,3].
Global Positioning Systems (GPSs) are commonly used for localization in a wide number of application scenarios. The advantages of GPSs are their wide area coverage, the capability of providing navigation data seamlessly to multiple vehicles, relatively low power requirements, the miniaturization of receivers, and being environmentally friendly in the sense that their signals do not interfere significantly with the ecosystem. However, it is important to notice that there are scenarios in which GPSs are ineffective or even useless, for example, indoors, in caves, in urban scenarios with many surrounding buildings, in space, or underwater, and alternative positioning systems must be employed (see [4,5] and references therein).
Most of the attitude systems rely on inertial measurement units (IMUs) that must be periodically recalibrated and that imply a high cost to obtain an accurate position and attitude computation. This makes them unaffordable for many projects and developments; thus, there is a need for alternative systems.
Following this trend, in this work, we present an alternative positioning and attitude system to be used in open-air scenarios, where GPSs may be used at full performance and coverage. This alternative attitude system developed here is based on the GNSS-RTK technology, which has a relatively low cost.
The use of attitude systems goes back to 1930 [6], where it was used to help plane pilots navigate in low-visibility situations (instrumental flight). Historically, these systems have been widely used in the aeronautic, military, and space industries for assistance or guidance of planes, missiles, rockets, satellites, etc. However, in the last years, due to the advances in electronics and cost reduction, these systems have become very popular in other areas: mobile phones, electrical vehicles, drones, robotics, etc.
It is important to note the differences between inertial measurement units (IMUs) and attitude and heading reference systems (AHRSs). IMUs are composed of several sensors measuring physical magnitudes in different directions. The usual sensors are magnetometers, accelerometers, and gyroscopes, which can be used individually or by combining their measurements. In the industrial field, the term degree of freedom (DOF) distinguishes the number of sensors that measure physical magnitudes in each of the axes of the solid in which they are installed. Usually, IMUs are 3DOF, 6DOF, and 9DOF, and the latter is the one that is the most complete, as it includes an accelerometer, a gyroscope, and a magnetometer in each of the axes. The IMUs may provide these sensor measurements as raw data or in physical units. However, most of the IMUs need to be periodically recalibrated to guarantee the accuracy and reliability of the measurements. Moreover, in the case of IMUs that include magnetometers, the recalibration must always be done if the IMU installation is changed, regardless of the time elapsed since the last calibration.
The standalone IMU sensor measurements may be useful for some applications aimed at detecting specific events, such as a hit measured by the accelerometers, but for many other applications, these standalone measurements are not useful, such as for the rotation of a mobile phone screen depending on its orientation. The attitude computation systems fuse the information obtained from all sensors of an IMU, usually by Kalman filters (KFs), to provide a single solution given by the Euler angles [7] or by cuaternions [8]. IMUs are also used to compute the position of the target where they are installed, given an initial position, by merging the measurements of accelerometers and gyroscopes. The measurement errors due to noise, misalignment, calibrations, etc. cause the position estimate to degrade as time passes. The positioning errors may be corrected or compensated by fusing the IMU measurements with the GPS measurements and using a KF.
There exist different technologies for the construction of accelerometers, gyroscopes, and magnetometers. A short revision of these different technologies is given next:
  • Electromechanical gyroscopes and accelerometers: This technology has fallen into disuse and can only be found in old systems. Its accuracy may be very high, but due to the large number of high-precision mechanical elements, its cost and maintenance is also very high. There are many different types, but all rely on the same principle: rotation masses that create torques due to accelerations and rotations, and devices that measure these torques and relate them with angular velocities and accelerations.
  • Microelectromechanical systems (MEMSs): This is the most commonly used technology for computing the attitude due to its low cost, low energy consumption, and good performance. The main working principles of this technology are introduced in a very brief way. The main principle for accelerometers relies on a suspended mass with a spring that will be displaced in the direction of the spring due to an acceleration, creating or changing an electrical capacitance. The gyroscopes work in a similar way, with a mass placed over a piezoelectric actuator, which creates a Coriolis force when an angular velocity actuates over the device [9]. Finally, microelectromechanical (MEM) magnetometers use an inductance with a current, and if there exists a magnetic field in the perpendicular direction of the inductance, a Lorentz force is generated [10].
  • Optical gyroscopes: These systems are based on the Sagnac effect [11], and are classified into ring gyroscopes (RLGs), which use mirrors for the light circuit, and fiber optic gyroscopes (FOGs), where the light travels through a fiber optic circuit. Their main advantage is the absence of mobile parts, with a lower maintenance. RLGs have more resolution than FOGs and can detect smaller velocities.
In general, IMUs are not enough to correctly compute the attitude of a solid; it is necessary to fuse the information of the sensors (accelerometers, gyroscopes, and magnetometers) and define a dynamical model of the solid, since different systems will behave in a different way, such as a plane or a car. Any of the aforementioned sensors has the same problem, together with the high cost and limited access of high-precision devices for the general public.
In this work, we study the use of the GNSS-RTK technology to construct a high-precision positioning and attitude system, with low cost compared with high-precision sensors and systems than can be found commercially. Moreover, it is independent of the platform in which is installed, since it does not need the mathematical model of the platform dynamics. The only limitation of this device is that for very high dynamics (more than 4G), its performance may degrade due to possible deformation of some of the components, whose features may change. In addition, this device can only work at full performance on open air; for other scenarios, we must consider alternative technologies, as mentioned before.
Therefore, the main objective of the present work is the construction and validation of an AHRS and positioning system based on the GNSS-RTK technology. The position computation using GNSS-RTK technology is straightforward, so this work is focused on the AHRS. Then, the contributions are fivefold: (i) design of the system based on hardware that is commercially available, (ii) programming of the microcontroller to enable the communication with the GNSS receivers, (iii) synchronization of the three GNSS receivers in real-time, (iv) design of the algorithms for attitude and position computation, and (v) construction and validation of the prototype in real scenarios.
The paper is organized as follows. In Section 2, the GNSS-RTK technology is introduced, and the position computation and error correction for this kind of system is explained. The communication protocols used and the prototype design are detailed in Section 3. In Section 4, the experimental tests of the prototype are shown for both static and dynamic scenarios, and for different configurations of the GNSS antennas. Finally, conclusions and future work are explained in Section 5.

2. GNSS-RTK Technology

In this section, the GNSS-RTK technology is introduced. GNSS is the common name used for satellite navigation systems, which include GPS (North American system), Galileo (European system), GLONASS (Russian system), BeiDou (Chinese system), and QZSS (Japanese system).

2.1. Position Computation

Most of GNSS receivers, such as those included in mobile phones, cars, smartwatches, etc., solve the position computation by aligning pseudo-random signals (code-phase), one from the satellite and another from the receiver [2]. The time delay between the two signals is the time that the signal needs to travel from the satellite to the receiver, and knowing that it travels at the speed of light, then it is possible to compute the distance between satellite and receiver. Repeating this operation with at least four satellites [12], the receiver position can be defined in 3D (latitude, longitude, and height). The code-phase method can ideally get an accuracy of 3–5 m, which is defined by the frequency at which the bits of the pseudo-random signal are sent (approx. 1 MHz) combined with an accuracy of the electronics of around 1–2% [13].
RTK technology employs a similar concept, but instead of aligning the content of the signal, it tries to synchronize the carrier signal (ignoring its content) with a signal generated by a local oscillator in the receiver (carrier-phase). The difficulty in the carrier-phase method lies in knowing the total number of cycles between the satellite and the receiver signals (see Figure 1). To overcome these carrier-phase ambiguities, the code-phase method is firstly employed to find an approximate estimation, and then, the carrier-phase method is used for a more accurate solution. This way, the problem becomes simpler, although it does not have a simple solution [14].
Some GNSS receivers can receive signals in more than one transmit frequency band. They have the important advantage of simplifying the computation to solve the phase difference ambiguities of the carrier signal, which results in a larger position resolution speed, as shown in Figure 2.
The ambiguity resolution methods are complex; for detailed explanations and several resolution methods, the reader is referred to [15,16,17] and references therein.

2.2. GNSS Error Correction

The position computation method explained above could be enough to obtain an accuracy of centimeters. However, there exist several error sources that degrade the position estimation [12]:
  • Satellites’ clocks (±2 m): Satellites’ clocks are high-precision atomic clocks, but they have to be periodically readjusted from terrestrial control stations using more precise clocks. At the orbit height of the satellites, an error of 10 nanoseconds causes a positioning error of approximately 3 m.
  • Orbital errors (±2.5 m): The satellites’ orbits are known and periodically retransmitted by other satellites (ephemerides). However, the real orbits are not completely predictable, and their monitoring must be readjusted from terrestrial control stations.
  • Ionospheric delay (>5 m): The radio signal propagation of the satellites through the ionosphere has important delays due to solar activity, position, time, etc., which are constant within relatively large geographical areas (50 km of radius).
  • Tropospheric delay (±0.5 m): The radio signal propagation of the satellites through the troposphere has delays with similar causes to those of the ionospheric delays, and they are constant within local geographical areas.
  • Receiver noise (±0.3 m): Any delay in the signal processing or any error in the oscillator frequency causes position estimation errors.
  • Multipath propagation (±1 m): When the signal transmitted by a satellite rebounds in an object, the GNSS receiver measures a larger transmission time than the real one [18]. This delay adds an additional position estimation error.
There are several methods to reduce the impact of the above sources of errors. Each GNSS receiver model can support some of them; the following are the most usual ones:
  • Advanced multi-frequency and multi-constellation receivers improve the global accuracy and robustness, and are able to reach an accuracy of one meter in ideal conditions.
  • Satellite-based augmentation systems (SBAS) are geostationary satellites that emit corrections that are valid for specific geographical areas.
  • The RTK technique described in Section 2.1 provides the best results concerning the global precision. A base, i.e., a receiver whose position is known, may be used to mitigate parts of the errors described above. To know the position of a base with high accuracy, it may be installed over geodesic points of known position, or it can be installed over a point whose position is not initially known, but its average position is computed over a large enough time window. The corrections provided by the base are less effective as the receiver (rover) goes further from the base, since many of these corrections depend on the geographic localization. The accuracy deteriorates at a rate of 2 ppm (parts per million), which corresponds to 2 mm for each kilometer between the base and the rover (baseline). It is important to remark that the absolute position of the rover depends on the absolute position of the base. However, the relative precision of the rover with respect to the base is independent. The installation of a new base requires additional time and equipment, so it is impractical. If infrastructure and Internet connection exist, an alternative solution is to use the GNSS reference station networks. These networks provide corrections by Internet using the NTRIP protocol and allow the rover to move along all the area covered by the networks. In applications where only the relative position between base and rover is important, the absolute position computation of the base may be discarded. In addition, some GNSS receivers can work as a mobile base, which allows the rover to receive corrections from a mobile base with a relative precision of a few centimeters.
  • If the position information is not needed in real time, the post-processed kinematic (PPK) technique may be employed. It uses the same method as the RTK technique, but in this case, the receiver records the data and signals received from the satellite. The data of the base or reference stations are subsequently requested in receiver-independent exchange (RINEX) format and post-processed by software, obtaining the same accuracy as the RTK technique. The main drawback of this method is the lack of information in real time, while its main advantage is that real-time corrections are not needed.
  • The precise point positioning (PPP) technique uses a different concept. This method generates parameters for the models of the error sources so that the receiver can compensate them. Terrestrial reference stations are needed to compare their known positions with the measurements and then generate these parameters. The main advantage of modeling the error sources is that the scope of application can be global and the bandwidth needed to transmit the model parameters is much smaller than the bandwidth needed to transmit the RTCM (Radio Technical Commission for Maritime) corrections used by the RTK technique. The main drawbacks are that the receivers need more computing capacity to process the error models and the precision is lower than the one obtained with RTK. PPP services require payment, and due to the low data consumption, the information is transmitted by Internet and by satellite.
Following this trend, there are also many works for the development and modernization of the GNSS. For example, in [19], a review of the satellite navigation status is made, where the problems and challenges are treated, remarking the opportunities, trends, and important values of satellite navigation, and in [20], the current status and planned development of four global navigation satellite systems (the American GPS, Russian GLONASS, European Galileo, and Chinese BeiDou) are reviewed, describing the features of modernization and improvements on positioning, navigation, and timing. For further information about the future and modernization of the different satellite navigation systems, the reader is referred to [21,22,23,24].
It is important to remark at this point that, due to the significant impact of this technology in a wide number of areas, there are multiple research works dealing with techniques and strategies to improve the accuracy and reduce the positioning error. To name but a few, see, for example [25,26,27] and references therein. In [25], a new calculation strategy is presented for the computation of the aircraft’s resultant position using the GPS (Global Positioning System) SPP (Single Point Positioning) code method in order to improve the quality of determination of the coordinates and accuracy of GPS SPP positioning. In [26], the authors deal with the problem of combining multi-GNSS signals in a single functional model. A methodology and quality assessment of selected methods allowing for multi-GNSS observations is presented, where loose and tight integration strategies applied to the ionosphere and troposphere weighted model are characterized. In [27], precise navigation based on SBAS technology and CORS stations is studied. To estimate reliable and redundant GPS/EGNOS positions, three rovers with GPS receivers are used, and a Kalman filter is employed to compute the final solution.
Therefore, from the above, it is clear that GNSS in general, and GNSS-RTK in particular, are important technologies used in multiple applications and areas where maximum precision and reliability are needed, making it a very active research and commercial field.

3. Material and Methods

The protocols to transmit information and to communicate the different elements and devices of the prototype are introduced in this section. Afterwards, a description of the hardware selected and the software implemented is given.

3.1. Communication Protocols

The protocols used for the prototype are NMEA (National Marine Electronics Association) 0183, UBX, and RTCM version 3, which are briefly described below.

3.1.1. NMEA 0183

This protocol is a standard in the industry, and it is used for multiple applications, such as marine electronics, anemometers, IMUs, autopilots, GNSS receivers, etc. The information is sent in ASCII characters, so the messages can be read without translators. However, its size is not optimal.
Messages are protected by a checksum that is computed as an exclusive “or” of all characters (8 bits) between the initial character and the “*” that precedes the checksum. This checksum is the easiest, but it has a high percentage of undetected errors [28].
This protocol has a series of standard messages, but it also allows each developer to create their own messages simply by following the specifications.
In this work, the NMEA (National Marine Electronics Association) protocol is used to generate a unique message with the attitude and position of the solid.

3.1.2. UBX

This protocol belongs to U-Blox enterprise, but their specifications are open. Its application is limited to equipment of this manufacturer, so it is not a standard in the industry. The information is sent in binary, which optimizes the size of messages, although a translator is needed to read them.
In this work, the UBX protocol is used to read the information about the relative position of the GNSS receivers.

3.1.3. RTCM Version 3

This protocol is an international standard to publish GNSS data in real time. All high-precision GNSS receivers support this protocol.
It provides a binary message like the UBX protocol, and it is protected by a CRC-24Q checksum (cyclic redundancy verification) with a very low probability of undetected errors [29].
This protocol is mentioned because GNSS receivers use it to communicate with each other (see [30]), but it is not programmed for this prototype.

3.2. Prototype Design

The objective is the design of an attitude and positioning system for static and dynamic solids that provides the highest possible accuracy. The technique that gives a larger accuracy is RTK, and the fact that the solid may be static makes three the minimum number of receivers that must be used.
It is important to keep in mind some design requirements that describe the prototype development and the attitude and position computation:
  • The attitude information is computed as Euler angles (yaw, pitch, and roll) and as cuaternions in the NED (North, East, Down) reference system.
  • The position information is given as latitude, longitude, and ellipsoidal height in the WGS84 system.
  • The attitude is given with respect to the plane formed by the three antennas of the receivers. The antenna 3 cannot be aligned with antennas 1 and 2, and these two latter define the heading of the solid.
The attitude computation of the solid given the relative positions of the three antennas is done following standard procedures [31,32,33].

3.2.1. Hardware

For cost reasons, the RTK receiver model selected is the double-band RTK receiver simpleRTK2B and simpleRTK2Blite by Ardusimple (see Figure 3), based on the module ZED-F9P of U-Blox. The double-frequency antenna selected is the AS-ANT2B-SUR-L1L2-25SMA-00 of Ardusimple. The microcontroller selected is the STM32F746ZG of ST, mounted in the development board NUCLEO-F746ZG (see Figure 3).
The GNSS receivers and antennas, as well as the microcontroller, meet all the requirements, and both devices are compatible with standard Arduino pins, reducing the number of welding points. The development board is oversized for the requirements of this work, but it was chosen due to its low cost and because it will allow the use of other peripherals in the future without changing the components. This board also includes a debugger, making it particularly appropriate. The board manufacturer also provides free software for the peripheral configuration (STM32CubeMX) and a programming/debugging environment (STM32CubeIDE).
The system design is quite simple, since each receiver has two UART ports and the development board supports several UART ports. Figure 4 shows the system schematic and the level of components, power supply, data, and protocols.
Given the system shown in Figure 4, the relative positions between the GNSS receivers can be obtained with maximum accuracy, allowing the computation of the system attitude with the best possible accuracy. However, this configuration does not allow one to know the global position of the receivers with an accuracy of centimeters, since they are not receiving corrections from any reference station.
It is important to remark that the main objective of this work is to compute the system attitude with the maximum possible accuracy. However, if the global position must be computed with high precision, too, it can be obtained by simply providing RTCM corrections at the UART2 of the first GNSS receiver.
To ease the system validation, a small screen was installed in the prototype to show the attitude information (see Figure 5). This screen is a commercial model that includes a microprocessor and directly prints the characters that are sent from the microcontroller by the UART port. The connections are not shown, since they are not a necessary element for the prototype; they are included just for validation purposes.

3.2.2. Software

The software programmed in the microcontroller can be divided into three parts:
  • Initialization of the microcontroller peripherals: It is called just once at the beginning, and all parameters are initialized.
  • Continuous loop: The microcontroller continuously tests two things: (i) If valid information has been received from the GNSS receivers; in this case, it calls the attitude computation function. (ii) If any of the data buffers of UARTs 1 and 2 have information; in this case, the information is processed.
  • Interruptions in the data reception of UARTs (DMA).
Each one of these code groups has protections to prevent blocks, for example, to control that buffers do not exceed their capacity, avoid zero division, etc.
The configuration of the microcontroller and the GNSS receivers is described in Appendix A.

4. Results

It has already been mentioned that the system is capable of receiving RTCM corrections by the UART2 of the GNSS 1 receiver, which would allow the reported position to have errors of approximately 2 cm under ideal conditions. These corrections are not used in the system validation, as it is intended to demonstrate the quality of attitude estimations in a system that is fully autonomous and independent of external corrections.

4.1. Precision and Accuracy of Measurements in a Static Configuration

To perform the static validation, the antennas were installed in different orthogonal configurations (see Table 1 and Figure 6). The general validation method of the system would start with an orthogonal configuration of the antennas parallel to the ground, where the axis formed by antennas 1–2 points to the North and the axis formed by antennas 1–3 to the East. The first angle to be applied is the yaw, rotating all of the configuration over the horizontal plane clockwise (around the Z-axis of the NED reference system) until axis 1–2 is in the final direction. The second angle to be applied is the pitch angle, rotating the entire system around the axis 1–3 until antenna 2 is in the final position. The last angle to be applied is the roll angle, rotating the system around the axis 1–2 until antenna 3 is in the final position. In the following tests, the system was installed on a roof to keep the antennas’ positions fixed and to properly measure the real distances and angles. The results shown do not have any post-processing, only that the time series of each configuration were trimmed to 60 s (300 samples) so that the duration is the same for all tests.
It can be noticed in Figure 7 how the standard deviation decreases as the distance between antennas increases, as might be expected. Since the antennas are in an orthogonal configuration with axes of equal length, the standard deviations of pitch and roll angles are expected to be similar, as shown in Figure 7. The yaw angle has a lower standard deviation in every configuration. This behavior makes sense, since, for all configurations, the pitch angle is close to zero and the yaw angle is computed as the projection of antenna 2 on the horizontal plane, which means that the variability of the measurements of this receiver on the vertical axis does not affect the yaw measurement.
Figure 8 shows the average value of the three angles that define the attitude of the solid body (the roof) for each of the configurations. An offset was added to the roll and yaw angles to make the visualization of the three angles in a single figure easier. The roll angle offset is 14 , which corresponds to the slope of the roof. The yaw angle offset corresponds to the orientation of the roof ridge, which is 33 from the North (see Figure 9).
It can be appreciated in Figure 8 that the average value of all configurations is very similar. Two sources of non-system-associated errors that may affect these measurements must be taken into account:
  • The antennas of receivers 2 and 3 were placed manually for each configuration.
  • The roof does not form a perfect plane due to errors in the construction and bending of structural elements, as can be seen in Figure 10.
Figure 11 show the time series of the three angles for each configuration. The same scaling was used on the y-axis (except in the N configuration) to better appreciate the change in the standard deviation of the measurements.

4.2. Robustness of the Algorithm in Non-Orthogonal Configurations

The algorithm for the attitude computation given the antennas’ positions is also designed to work in non-orthogonal configurations, with only the constraint that the three antennas cannot be aligned. In order to validate the algorithm in these scenarios, the settings described in Table 2 were tested. The angles of each configuration were manually computed with the recorded positions of each receiver. Figure 12 shows one of the non-orthogonal configurations where the antenna vectors 1–2 and 1–3 form an angle of 60 .
As in the previous tests, the results do not have any post-processing, only that the time series of each configuration were trimmed to 60 s (300 samples) so that the duration is the same for each test.
Figure 13 shows how the standard deviation of the pitch and yaw angles remains constant between configurations, since the antennas of receivers 1 and 2 are always at the same position. In contrast, the standard deviation of the roll angle increases as the antenna of receiver 3 approaches that of receiver 2.
Figure 14 shows how the average value of the three angles does not depend on the position of antenna 3 beyond the errors due to the irregularity of the surface where the tests were performed.

4.3. Accuracy of Measurements in a Dynamic Configuration

To perform this test, three antennas were installed on the roof of a car, as shown in Figure 15.
The distances between the antennas of receivers 1–2 and 1–3 are 1.5 and 1.1 m, respectively. Vectors formed by receivers 1–2 and 1–3 form an angle of 90 . Data were recorded on a national road segment of about 4 km with good visibility of the sky and without obstacles that may block the signals (bridges crossing the road, road indicators, etc.).
Validating the system on a moving solid has the difficulty of having a reliable reference with which to compare the data acquired and computed. For this reason, the variability of the measurements was analyzed in a segment of the road where the car follows a straight path at constant speed.
Figure 16 compares the yaw angle computed by the attitude system with the vehicle trajectory angle, which is computed as follows:
Y a w t = i = a t a n 2 ( ( l o n i + 1 l o n i 1 ) l o n X i , ( l a t i + 1 l a t i 1 ) l a t Y i ) ,
where l a t i , l o n i are the latitude and longitude at t = i , and L a t Y i , L o n X i are the latitude and longitude differentials at t = i transformed into Euclidean distances with the following transformation [34]:
l o n X i = 111 , 412.84 cos ( l a t i ) 93.5 cos ( 3 l a t i ) + 0.118 cos ( 5 l a t i ) l a t Y i = 111 , 132.92 559.82 cos ( 2 l a t i ) + 1.175 cos ( 4 l a t i ) 0.0023 c o s ( 6 l a t i ) ) .
A good correspondence is observed between the angle of the vehicle’s trajectory and the yaw angle, even at the two roundabouts (seconds 10 and 170).
Figure 17 shows the pitch and roll angles and the height during the same time interval as in Figure 16. In most of the trajectory, the vehicle is on a light negative slope, losing about 35 m in 4 km, a fact that is observed in the pitch angle, which has a negative value, except in two small sections in which the slope of the road is positive. The vehicle roll angle always has a positive angle around 1 ; this value may be due to an error in the manual installation of the antenna, a non-symmetrical distribution of the weights in the vehicle, or the inclination of the roadway by a longitudinal drainage.
Table 3 shows the standard deviations on the three attitude angles for the sample time interval between 90 and 130 s, since it corresponds to a segment of the road with constant slope and no changes in the yaw angle.
Taking into account the distance between antennas in the vehicle and the irregularities of the path, the results show very good performance and precision. However, these results are a bit larger than those shown in Figure 7, where the system was static.

5. Conclusions

This work discussed the feasibility of using GNSS-RTK technology for the computation of the attitude of static and dynamic solid bodies. The accuracy and reliability of the measurements in the tests carried out confirm that the application of this technology is justified, presenting the following advantages:
  • No calibrations are required.
  • It is an autonomous system, which does not need external corrections.
  • Very low cost for the accuracy reported compared to other technologies. The price of the equipment used (excluding the hours of development) is around 700 EUR, and this technology is expected to reduce its costs as it becomes more popular.
  • Technology without export restrictions.
  • The accuracy of the system can be improved by increasing the distance between antennas. However, for more than 10 m of cable between antenna and receiver, it is necessary to install signal amplifiers or special cables.
  • HDOP-type variables, the number of satellites used in position calculation, or the “Fix” type can be used to validate or discard system measurements.
  • The vehicle dynamics (<4G) do not affect measurements.
Nevertheless, some certain limitations must be pointed out:
  • Low data frequency compared to other technologies. There are GNSS-RTK receivers that operate up to 100 Hz, but their price is higher.
  • The system does need to operate outdoors with good visibility of the sky.
  • It is not valid for lightweight and small-size systems because the antennas need a minimum distance.
In short, this system is very convenient to be installed on aircraft, ships, or transport systems where it is possible to take advantage of the installation of the antennas as separately as possible.
Further lines of work are:
  • Analysis and compensation of the multipath error in environments with limited sky visibility, such as urban scenarios.
  • System validation in a dynamic configuration with high-precision IMUs.
  • Validation of the system and its degradation under high dynamic conditions (>4G).

Author Contributions

All authors have contributed to the preparation of the paper, the discussion of the results, and the reviewing of the content of this article. All authors have read and agreed to the published version of the manuscript.


This article was partially supported by the Spanish Ministry of Economy and Competitiveness under contract DPI2017-84259-C2-2-R.


The materials, tools, and facilities used for the manufacturing of the prototype have been provided by Ardusimple—EPS Works Consulting SLU.

Conflicts of Interest

The authors declare no conflict of interest.

Appendix A. Configuration of the Prototype

Appendix A.1. Microcontroller Configuration

The microcontroller and its peripherals are configured with the following parameters (Table A1):
Table A1. Configuration of the microcontroller peripherals.
Table A1. Configuration of the microcontroller peripherals.
Main clockSpeed216 MHz
Baudrate230,400 bps
NVIC InterruptsRX > DMA1
Baudrate230,400 bps
NVIC InterruptsRX > DMA2
UART3Baudrate115,200 bps
Modeasynchronous (8-N-1)
Size1 byte
Size1 byte
For UART3, which sends the attitude and position estimation to the external devices, a speed of 115,200 bps was used, since it is compatible with most industrial equipment.

Appendix A.2. GNSS Receiver Configuration

GNSS receiver 1 is configured as the mobile base, with the following parameters:
  • Enabled constellations: GPS, GLONASS, Galileo, BeiDou, QZSS
  • UART1: 230,400 bps, Protocol out: UBX, 8-N-1
  • UART2: 230,400 bps, Protocol out: UBX, 8-N-1 (optional, not used by default)
  • Output frequency: 10 Hz
  • Enabled messages: RTCM-1077, RTCM-1087, RTCM-1097, RTCM-1127, RTCM-1230, RTCM-4072.0, RTCM-4072.1
GNSS receivers 2 and 3 are configured as rovers with the following parameters:
  • Enabled constellations: GPS, GLONASS, Galileo, BeiDou, QZSS
  • UART1: 230,400 bps, Protocol out: UBX, 8-N-1
  • UART2: 230,400 bps, Protocol out: UBX, 8-N-1
  • Output frequency: 10 Hz
  • Enabled messages: UBX-NAV-PVT, UBX-NAV-RELPOSNED, UBX-NAV-EOE, NMEA-GGA (only for GNSS receiver 2)
For GNSS receiver 1, which, as mentioned, works as the mobile base, the messages recommended by the manufacturer were chosen:
  • MSM: They are a standard of the RTCM protocol, and, particularly, MSM7 offers the maximum information with respect to observation and numeric resolution [35]. Messages MSM7 1077, 1087, 1097, and 1127 correspond to observations of the satellite constellations GPS, GLONASS, Galileo and BeiDou, respectively.
  • Message 1230 provides the code/phase deviations of the GLONASS constellation. In this constellation, each satellite emits a different frequency, and this makes the solving of ambiguity even more complex.
  • Messages 4072.0 and 4072.1, which are property of U-Blox, are used exclusively for the mobile base functionality, reporting detailed information about its position.
For simplifying the mathematical computation and to avoid the use of one of the microcontroller UARTSs, the message UBX-NAV-RELPOSNED was chosen, which reports the relative position between the GNSS receiver and the mobile base in the NED reference system. For obtaining the receiver’s absolute position, the message UBX-NAV-PVT was used, which reports the latitude, longitude, and ellipsoidal height. Using this message, a maximum accuracy of 1.1 cm may be obtained depending on the number of decimals used. In case more accuracy is needed, the message UBX-NAV-HPPOSLLH can be used, since it uses two additional decimals. For synchronizing the receivers, the message UBX-NAV-EOE is used, which notifies that the receiver finished sending all the messages of an epoch.
The message NMEA-GGA is enabled in receiver 2 to help in the generation of the output message PAOGI of the NMEA protocol. This message is defined by the AgOpenGPS open-source project for the output information of attitude and position in the NMEA protocol. This means that the position of the system is, in fact, the position of receiver 2. For this reason, receiver 2 is configured to generate NMEA messages with high precision (using extra decimals).


  1. King, A.D. Inertial Navigation—Forty Years of Evolution. GEC Rev. 1998, 13, 140–149. [Google Scholar]
  2. Im, S.; Hurlebaus, S.; Kang, Y. Summary Review of GPS Technology for Structural Health Monitoring. J. Struct. Eng. 2013, 139, 1653–1664. [Google Scholar] [CrossRef]
  3. Crasta, N.; Moreno-Salinas, D.; Pascoal, A.; Aranda, J. Multiple autonomous surface vehicle motion planning for cooperative520 range-based underwater target localization. Annu. Rev. Control 2018, 46, 326–342. [Google Scholar] [CrossRef]
  4. Moreno-Salinas, D.; Pascoal, A.M.; Aranda, J. Optimal sensor placement for multiple target positioning with range-only measurements in two-dimensional scenarios. Sensors 2013, 13, 10674–10710. [Google Scholar] [CrossRef] [PubMed] [Green Version]
  5. Moreno-Salinas, D.; Pascoal, A.M.; Aranda, J. Optimal sensor placement for acoustic underwater target positioning with range-only measurements. IEEE J. Ocean. Eng. 2016, 41, 620–643. [Google Scholar] [CrossRef]
  6. Ahmad, N.; Ariffin, R.; Khairi, N.M.; Kasi, V. Reviews on Various Inertial Measurement Unit. Int. J. Signal Process. Syst. 2013, 1, 256–262. [Google Scholar] [CrossRef] [Green Version]
  7. Tomaszewski, D.; Rapinski, J.; Pelc-Mieczkowska, R. Concept of AHRS Algorithm Designed for Platform Independent Imu Attitude Alignment. Rep. Geod. Geoinform. 2017, 104, 33–47. [Google Scholar] [CrossRef] [Green Version]
  8. Wang, L.; Zhang, Z.; Sun, P. Quaternion-Based Kalman Filter for AHRS Using an Adaptive-Step Gradient Descent Algorithm. Int. J. Adv. Robot. Syst. 2015, 12. [Google Scholar] [CrossRef]
  9. Brunetti, F.; Moreno, J.C.; Ruiz, A.F.; Rocon, E.; Pons, J.L. A new platform based on IEEE802.15.4 wireless inertial sensors for motion caption and assessment. In Proceedings of the 28th Annual International Conference of the IEEE Engineering in Medicine and Biology Society, New York, NY, USA, 30 August–3 September 2006; pp. 6497–6500. [Google Scholar] [CrossRef] [Green Version]
  10. Ren, D.; Wu, L.; Yan, M.; Cui, M.; You, Z.; Hu, M. Design and Analyses of a MEMS Based Resonant Magnetometer. Sensors 2009, 9, 6951–6966. [Google Scholar] [CrossRef] [Green Version]
  11. Qazizada, M.; Pivarciova, E. Mobile Robot Controlling Possibilities of Inertial Navigation System. Procedia Eng. 2016, 149, 404–413. [Google Scholar] [CrossRef] [Green Version]
  12. Novatel Inc. An Introduction to GNSS GPS, GLONASS, BeiDou, Galileo and Other Global Navigation Satellite Systems, 2nd ed.; Novatel Inc.: Calgary, AB, Canada, 2015. [Google Scholar]
  13. Trimble. GPS Tutorial. 2020. Available online: (accessed on 29 October 2020).
  14. Teunissen, P. Theory of Carrier Phase Ambiguity Resolution. Wuhan Univ. J. Nat. Sci. 2003, 8, 471–484. [Google Scholar] [CrossRef] [Green Version]
  15. Blewitt, G. Carrier Phase Ambiguity Resolution for the Global Positioning System Applied to Geodetic Baselines up to 2000 km. J. Geophys. Res. 1989, 94, 10187–10203. [Google Scholar] [CrossRef] [Green Version]
  16. Delporte, J.; Mercier, F.; Laurichesse, D.; Galy, O. GPS Carrier-Phase Time Transfer Using Single-Difference Integer Ambiguity Resolution. Int. J. Navig. Obs. 2008, 2008, 273785. [Google Scholar] [CrossRef] [Green Version]
  17. Tang, X.; Feng, X.; Ferreira, V.; Jing Zhou, A. A Procedure for Ambiguity Fixing with Dual-Frequency Phase and Code Observations. Arab. J. Sci. Eng. 2014, 39, 287–294. [Google Scholar] [CrossRef]
  18. Kumar, G.; Rao, G.; Kumar, M. GPS Signal Short-Term Propagation Characteristics Modeling in Urban Areas for Precise Navigation Applications. Positioning 2013, 4, 192–199. [Google Scholar] [CrossRef] [Green Version]
  19. Hein, G.W. Status, perspectives and trends of satellite navigation. Satell. Navig. 2020, 1, 22. [Google Scholar] [CrossRef]
  20. Zrinjski, M.; Barković, D.; Matika, K. Development and Modernization of GNSS. Geodetski List 2019, 73, 45–65. Available online: (accessed on 29 October 2020).
  21. Barnes, D. GPS Status and Modernization. Presentation at Munich Satellite Navigation Summit 2019. Available online: (accessed on 29 October 2020).
  22. Benedicto, J. Directions 2020: Galileo Moves Ahead. GPS World. 2019. Available online: (accessed on 29 October 2020).
  23. China Satellite Navigation Office. Development of the BeiDou Navigation Satellite System (Version 4.0). December 2019. Available online: (accessed on 29 October 2020).
  24. Langley, R.B. Innovation: GLONASS—Past, Present and Future. GPS World. 2017. Available online: (accessed on 29 October 2020).
  25. Krasuski, K.; Ciećko, A.; Bakuła, M.; Wierzbicki, D. New Strategy for Improving the Accuracy of Aircraft Positioning Based on GPS SPP Solution. Sensors 2020, 20, 4921. [Google Scholar] [CrossRef]
  26. Paziewski, J.; Wielgosz, P. Investigation of some selected strategies for multi-GNSS instantaneous RTK positioning. Adv. Space Res. 2017, 59, 12–23. [Google Scholar] [CrossRef]
  27. Ciećko, A.; Bakuła, M.; Grunwald, G.; Ćwiklak, J. Examination of Multi-Receiver GPS/EGNOS Positioning with Kalman Filtering and Validation Based on CORS Stations. Sensors 2020, 20, 2732. [Google Scholar] [CrossRef]
  28. Maxino, T.C.; Koopman, P.J. The Effectiveness of Checksums for Embedded Networks. IEEE Trans. Dependable Secur. Comput. 2006, 6, 59–72. [Google Scholar] [CrossRef]
  29. Middlestead, R.W. Digital Communications with Emphasis on Data Modems: Theory, Analysis, Design, Simulation, Testing, and Applications; John Wiley & Sons: Hoboken, NJ, USA, 2017. [Google Scholar]
  30. Rubinov, E.; Collier, F.; Fuller, S.; Seager, J. Review of GNSS Formats for Real-Time Positioning. 2020. Available online: (accessed on 29 October 2020).
  31. Henderson, D.M. Euler Angles, Quaternions, and Transformation Matrices; NASA, Lyndon B. Jhonson Space Center: Houston, TX, USA, 1977.
  32. Barrientos, A.; Peñín, L.F.; Balaguer, C.; Aracil, R. Fundamentos de Robótica; McGraw-Hill/Interamericana de España: Madrid, Spain, 2007. [Google Scholar]
  33. Hughes, N. Quaternion to/from Euler Angle of Arbitrary Rotation Sequence & Direction Cosine Matrix Conversion Using Geometric Methods. 2017. Available online: (accessed on 29 October 2020).
  34. Snyder, J.P. Map Projections–A Working Manual; USGS Professional Paper 1395; U.S. Government Printing Office: Washington, DC, USA, 1987. [CrossRef]
  35. Boriskin, A.; Kozlov, D.; Zyryanov, G. The RTCM multiple signal messages: A new step in GNSS data standardization. In Proceedings of the 25th International Technical Meeting of the Satellite Division of the Institute of Navigation (ION GNSS 2012), Nashville, TN, USA, 17–21 September 2012; pp. 2947–2955. [Google Scholar]
Figure 1. Phase difference ambiguity in the carrier signal (single frequency).
Figure 1. Phase difference ambiguity in the carrier signal (single frequency).
Sustainability 12 09796 g001
Figure 2. Phase difference ambiguity in the carrier signal (double frequency).
Figure 2. Phase difference ambiguity in the carrier signal (double frequency).
Sustainability 12 09796 g002
Figure 3. RTK receivers (left) and development board (right).
Figure 3. RTK receivers (left) and development board (right).
Sustainability 12 09796 g003
Figure 4. Attitude and positioning system scheme.
Figure 4. Attitude and positioning system scheme.
Sustainability 12 09796 g004
Figure 5. Attitude and positioning system prototype.
Figure 5. Attitude and positioning system prototype.
Sustainability 12 09796 g005
Figure 6. Configurations A (left) and N (right) of the antennas for the static tests.
Figure 6. Configurations A (left) and N (right) of the antennas for the static tests.
Sustainability 12 09796 g006
Figure 7. Standard deviation of the attitude error as a function of the orthogonal distance between antennas.
Figure 7. Standard deviation of the attitude error as a function of the orthogonal distance between antennas.
Sustainability 12 09796 g007
Figure 8. Average attitude angles based on the orthogonal antenna configurations.
Figure 8. Average attitude angles based on the orthogonal antenna configurations.
Sustainability 12 09796 g008
Figure 9. Satellite image of the roof where the static tests were performed. Source: Google Maps.
Figure 9. Satellite image of the roof where the static tests were performed. Source: Google Maps.
Sustainability 12 09796 g009
Figure 10. Details of the roof irregularities.
Figure 10. Details of the roof irregularities.
Sustainability 12 09796 g010
Figure 11. Time series of the computed attitude angles for configurations (AN).
Figure 11. Time series of the computed attitude angles for configurations (AN).
Sustainability 12 09796 g011aSustainability 12 09796 g011b
Figure 12. Configuration B of the non-orthogonal static tests.
Figure 12. Configuration B of the non-orthogonal static tests.
Sustainability 12 09796 g012
Figure 13. Standard deviation of the attitude error for the non-orthogonal antenna configurations.
Figure 13. Standard deviation of the attitude error for the non-orthogonal antenna configurations.
Sustainability 12 09796 g013
Figure 14. Average attitude of the non-orthogonal antenna configurations.
Figure 14. Average attitude of the non-orthogonal antenna configurations.
Sustainability 12 09796 g014
Figure 15. Antenna setup on the vehicle.
Figure 15. Antenna setup on the vehicle.
Sustainability 12 09796 g015
Figure 16. Speed and yaw angle during the dynamic testing.
Figure 16. Speed and yaw angle during the dynamic testing.
Sustainability 12 09796 g016
Figure 17. Pitch and roll angles and height during the dynamic testing.
Figure 17. Pitch and roll angles and height during the dynamic testing.
Sustainability 12 09796 g017
Table 1. Configurations of the antennas for the static tests.
Table 1. Configurations of the antennas for the static tests.
ConfigurationReceiver Antenna Distance 1–2 [m]Receiver Antenna Distance 1–3 [m]Angle 2-1 and 3-1 [deg]
Table 2. Configurations of the antennas for the static robustness tests.
Table 2. Configurations of the antennas for the static robustness tests.
ConfigurationReceiver Antenna Distance 1–2 [m]Receiver Antenna Distance 1–3 [m]Angle 2-1 and 3-1 [deg]
Table 3. Standard deviation of Euler angles in the dynamic configuration.
Table 3. Standard deviation of Euler angles in the dynamic configuration.
RMS [deg]0.2950.4590.338
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Olivart i Llop, J.M.; Moreno-Salinas, D.; Sánchez, J. Full Real-Time Positioning and Attitude System Based on GNSS-RTK Technology. Sustainability 2020, 12, 9796.

AMA Style

Olivart i Llop JM, Moreno-Salinas D, Sánchez J. Full Real-Time Positioning and Attitude System Based on GNSS-RTK Technology. Sustainability. 2020; 12(23):9796.

Chicago/Turabian Style

Olivart i Llop, J. M., D. Moreno-Salinas, and J. Sánchez. 2020. "Full Real-Time Positioning and Attitude System Based on GNSS-RTK Technology" Sustainability 12, no. 23: 9796.

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