Next Article in Journal
Embedded Vision System for Thermal Face Detection Using Deep Learning
Previous Article in Journal
Multi-Physics Coupling Simulation of Surface Stress Waves for Interface Debonding Detection in Underwater Grouting Jacket Connections with PZT Patches
Previous Article in Special Issue
Piezo-VFETs: Vacuum Field Emission Transistors Controlled by Piezoelectric MEMS Sensors as an Artificial Mechanoreceptor with High Sensitivity and Low Power Consumption
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Communication

Implementation of a Low-Cost Navigation System Using Data Fusion of a Micro-Electro-Mechanical System Inertial Sensor and an Ultra Short Baseline on a Microcontroller

by
Julian Winkler
*,† and
Sabah Badri-Hoeher
Department of Computer Science and Electrical Engineering, Kiel University of Applied Sciences, Grenzstraße 5, 24149 Kiel, Germany
*
Author to whom correspondence should be addressed.
These authors contributed equally to this work.
Sensors 2025, 25(10), 3125; https://doi.org/10.3390/s25103125
Submission received: 5 November 2024 / Revised: 25 April 2025 / Accepted: 29 April 2025 / Published: 15 May 2025
(This article belongs to the Special Issue Advanced Sensors in MEMS: 2nd Edition)

Abstract

In this work, a low-cost low-power navigation solution for autonomous underwater vehicles is introduced utilizing a Micro-Electro-Mechanical System (MEMS) inertial sensor and an ultra short baseline (USBL) system. The complete signal processing is implemented on a cheap 16-bit fixed-point arithmetic microcontroller. For data fusion and calibration, an error state Kalman filter in square root form is used, which preserves stability in case of rounding errors. To further reduce the influence of rounding errors, a stochastic rounding scheme is applied. The USBL measurements are integrated using tightly coupled data fusion by deriving the observation functions separately for range, elevation, and azimuth angles. The effectiveness of the fixed point implementation with stochastic rounding is demonstrated on a simulation, and the the complete setup is tested in a field test. The results of the field test show an improved accuracy of the tightly coupled data fusion in comparison with loosely coupled data fusion. It is also shown that the applied rounding schemes can bring the fixed-point estimates to a near floating point accuracy.

1. Introduction

Autonomous Underwater Vehicles (AUVs) have revolutionized oceanographic research and exploration by enabling autonomous operations in deep, inaccessible, and hazardous underwater environments. A pivotal challenge in their deployment, however, lies in achieving precise underwater navigation. Unlike terrestrial or aerial systems, AUVs cannot reliably utilize Global Navigation Satellite Systems (GNSSs) due to rapid signal attenuation in water, restricting GNSS availability to brief surface intervals [1]. Consequently, navigation predominantly relies on inertial systems such as Fiber-Optic Gyroscopes (FOGs) in combination with dead reckoning based on Doppler Velocity Logs (DVLs). While these systems offer high accuracy, their substantial cost—particularly for high-precision FOG and DVL units—poses a significant barrier to affordability, especially for smaller AUVs, where they may constitute over 50 % of total platform expenses.
To bridge this gap, recent advancements focus on integrating low-cost Micro-Electro-Mechanical System (MEMS)-based inertial sensors with acoustic positioning through sensor fusion techniques, such as Kalman filtering [2].
In this work, we present a novel, cost-effective navigation solution for AUVs combining MEMS-based inertial measurement with acoustic positioning, optimized for real-time operation on low-power microcontrollers. By prioritizing computational efficiency without sacrificing performance, this system aims to democratize AUV access for scientific and commercial applications—from marine biodiversity mapping to underwater infrastructure inspection—where high-cost solutions remain prohibitive. The integration of modular, low-power hardware further ensures scalability across AUV classes, underscoring our goal to redefine the balance between precision, affordability, and operational versatility in underwater navigation.

2. Related Work

Underwater navigation makes extensive use of inertial navigation. Because pure inertial navigation is not applicable for more than a few minutes [3], it is normally integrated in multi-sensor data fusion [4].
Combined navigation and sensor data fusion in underwater applications is mostly done using extended Kalman filters [5,6,7]. In [8], an unscented Kalman filter is used to model the distribution of quantization noise. For three-dimensional navigation, error state Kalman filters are used in combination with quaternion calculations, as detailed in [9]. Such filters are typically implemented with 32-bit or 64-bit floating-point calculation. Before sufficient calculation power was available, Kalman filters were often implemented in square root form [10,11]. Square root Kalman filters are typically used for simple systems with a small number of optimizable states. With digital signal processors capable of performing millions of fixed-point multiplications per second, it has become viable to use square root Kalman filters for complex navigation and data fusion tasks, while embedded class processors are often much more cost and power efficient than application class processors.
In [12], a navigation solution for AUVs is proposed based on tightly coupled data fusion that combines an inertial sensor and DVL. A chi-square detection-aided dual-factor adaptive filter is used to suppress outliers. Ref. [13] proposes Inertial Navigation System (INS)/DVL data fusion using a square-root unscented information filter to ensure the symmetry and positive definiteness of the covariance matrix or information matrix and to enhance the stability of the filter. Ref. [14] proposes a virtual beam predictor based on multi-output least-squares support vector regression in order to allow for data fusion when not all DVL beams are available. In [15], an extended exponential weighted Kalman filter is combined with a long short-term memory neural network to make the DVL/INS data fusion more robust against outliers. These advanced filtering algorithms often come with high computational complexity and are therefore difficult to realize in a small, low-cost AUVs. Therefore, ref. [16] proposed a low-cost AUV navigation solution using an extended Kalman filter of only five dimensions in combination with complementary filtering.
In summary, this literature review highlights the importance of having high calculation precision. Our proposed method combines low-cost hardware with advanced implementation methods.
While data fusion between MEMS inertial sensors and USBL is well-established [16,17,18], our contribution focuses on implementing this fusion using 16-bit fixed-point arithmetic and analyzing the impact of rounding errors in this context. Our method is able to effectively reduce the influence of rounding errors introduced by 16-bit fixed point representation. The reduced calculation cost allows us to use a high-dimensional state vector without losing real-time capabilities when implemented on an inexpensive microcontroller. This can, for example, be used to perform calibration and data fusion with the same filter.

3. System Overview

The navigation solution used in this work consists of a Seatrac X150 Ultra-Short Baseline (USBL) beacon, an Advanced Navigation Spatial MEMS inertial sensor, and a Microchip dsPIC33CH512MP508 microcontroller. For laboratory tests, the MEMS sensor was replaced by a much cheaper Bosch BNO055. The microcontroller and the MEMS sensor were directly connected via an RS232 interface, and acceleration, gyroscope, and magnetic measurements were sent to the microcontroller with a sampling rate of 100 Hz. The microcontroller’s main loop also operated at 100 Hz, synchronizing itself to the MEMS sampling rate. A second RS232 interface linked the microcontroller to the AUV’s main PC to transmit the position and velocity estimates. This connection also facilitated the transfer of additional data, such as USBL pings, to the microcontroller and enabled the storage of raw MEMS measurements for post-processing. When using the BNO055 sensor, an I2C interface was employed to connect it to the microcontroller. The dsPIC33CH microcontroller family is a dual-core system, with both cores featuring DSP units. In our setup, one core was dedicated to real-time signal processing, while the other handled communication with the host PC and the MEMS sensor.

4. Data Fusion Method

A common way to describe the position and motion of a vehicle in three-dimensional space is an indirect or error state Kalman filter combining a quaternion equation and linear algebra equations, as described in detail in [9]. The proposed data fusion method uses an error state Kalman filter with a 15-dimensional state vector x including position p , velocity v , rotation vector θ , accelerometer bias a b , and gyroscope bias ω b . Each of them is three-dimensional.
x = p v θ a b ω b
The measurement input vector u m consists of the accelerometer measurement a m and the gyroscope measurement ω m .
u m = a m ω m
For the nominal state, the rotation vector θ is replaced by unit quaternion q { θ } , where q { · } is the quaternion exponential map. Quaternion multiplications are written as q = q 1 q 2 in order to be distinguished from normal matrix multiplications.
The state transition x k + 1 = f ( x k ) is defined in the Equations (3)–(5), where the index k marks the current time step and k + 1 marks the next time step of a time discrete system. Δ t is the sampling period, g is the gravity vector, and R { θ } is the exponential map of the rotation vector θ as rotation matrix.
p k + 1 = p k + v k Δ t + 1 2 R { θ k } ( a m , k a b , k ) + g Δ t 2
v k + 1 = v k + R { θ k } · ( a m , k a b , k ) + g Δ t
q { θ k + 1 } = q { θ k } q { ( ω m , k ω b , k ) · Δ t }
The state transition function can be linearized around a given working point of x and u m into a matrix F x and F u such that x k + 1 = F x , k · x k + F u , k · u m , k . Similar to [9], F x and F u can be derived as shown in Equations (6) and (7). I is the 3 × 3 identity matrix and [ · ] × is the skew operator, such that a × b = [ a ] × · b . The rotation matrix is written as R = R { θ } .
F x = f δ x x , u m = I I Δ t 0 0 0 0 I [ R ( a m a b ) ] × Δ t R Δ t 0 0 0 I 0 R Δ t 0 0 0 I 0 0 0 0 0 I
F u = f δ u m x , u m = 0 0 R Δ t 0 0 R Δ t 0 0 0 0
For data fusion and filtering, the state vector x will be estimated on each time step k as a state estimate vector x ^ k with a covariance matrix P k . The Kalman filter splits the estimation into a prediction and correction step. The prediction step is defined as shown in Equations (8) and (9), where Q is the covariance matrix of u . The prediction step gives the a priori estimate marked with index k | k 1 .
x ^ k | k 1 = F x · x ^ k 1 + F u · u k
P k | k 1 = F x · P k 1 · F x + F u · Q · F u
Given an external observation of the system state y = h ( x ) and the associated observation matrix H = h δ x x and observation covariance matrix V , the correction step can be defined as shown in Equations (10)–(12). The intermediate matrix K is the Kalman gain.
K k = P k | k 1 H H P k | k 1 H + V 1
x ^ k = x ^ k | k 1 + K k y H · x ^ k | k 1
P k = I K k H P k | k 1
The Kalman filter steps can be transferred into a square root form. In this work, the square root form of Cholesky factors is used. The Cholesky factor of a matrix M is here written as M 1 / 2 , such that M = M 1 / 2 · M / 2 . To create the square root form, all covariance matrices are replaced by their Cholesky factors. As shown in [19], the prediction step in square root form can be written as shown in Equation (13) where S = P 1 / 2 is the Cholesky factor of the covariance of the state estimate and G is an orthogonal matrix used to compress S back in its original size.
( S k | k 1 ) 0 = G ( F x · S k 1 ) ( F u · Q 1 / 2 )
The correction step is transferred into its square root form according to [19], resulting in Equation (14).
( V + H P k H ) / 2 ( V + H P k H ) / 2 K k 0 S k = G V / 2 0 S k | k 1 H S k | k 1
After extracting K and V from the result of Equation (14), the new state estimate x ^ can be obtained the same way as in Equation (11).
Each time when calculating Equations (13) and (14), an orthogonal transformation represented by G has to be found, which creates the required zeros in the bottom left part of the result matrix. This is the same process as applying a QR-decomposition, which splits a square matrix into a triangular and an orthogonal part. The orthogonal matrix can be discarded, and the triangular matrix corresponds to the left hand side of Equation (13) or (14). There are multiple methods for performing the QR-decomposition. The most common methods utilize either Givens rotations or Householder transformations. The method using Householder transformations is in general more efficient for non-sparse matrices, as it can be applied per column instead of per element. Therefore, Householder transformations are used in this work.

4.1. QR Decomposition Using the Householder Transformation

As described in [20], the Householder transformation can be performed as a series of Householder reflections, where each column vector of a matrix M is mirrored in the same hyperplane. As shown in Figure 1, the column vector is called x , the normal vector of the hyperplane is u , and the basis vector of the target direction is e 1 . To create a triangular matrix, the reflection plane must be positioned in such a way that all elements of the first column vector except the first are 0 and the column vector lies on the first basis vector e 1 . Because the amounts of the column vectors must not change during an orthogonal transformation, the first column vector x must therefore become ± | | x | | · e 1 after the transformation.
The normal vector u of the hyperplane can be found by subtracting the desired first column vector ± | | x | | · e 1 from the current first column vector x , as shown in Equation (15). The normalized normal vector v is then calculated from this, as shown in Equation (16).
u = x ± | | x | | · e 1
v = u | | u | |
The new sign for the first element of the new column vector is arbitrary, but it should be the opposite of the previous sign. This prevents the vector u from becoming very small, leading to rounding errors.
u = x + sgn ( x 1 ) · | | x | | · e 1
To mirror each column vector x on the plane with the normal vector v , x must first be projected onto v and then subtracted twice from x .
x x 2 v v x
In each step, two square root operations are required to determine the amounts of x and v . The second root operation can be saved by using u directly instead of v .
x x 2 u | | u | | u | | u | | x = x 2 u u x | | u | | 2 = x 2 u u x u u
The same process can then be applied to matrix M again, except that one column and one row are omitted each time. This is repeated until M becomes an upper triangular matrix.
x x x x x x x x x x x x x x x x Q 1 x x x x 0 x x x 0 x x x 0 x x x Q 2 x x x x 0 x x x 0 0 x x 0 0 x x Q 3 x x x x 0 x x x 0 0 x x 0 0 0 x

4.2. Fixed-Point Implementation

To implement the whole filter on a microcontroller with only fixed point arithmetic, a new data structure has been designed to hold the Cholesky factor S of the covariance of state estimate, which adds an additional per-row exponent to the matrix containing only fixed point representations of its elements. As shown in Equation (17), the matrix S is split into a diagonal exponent matrix E containing exponents with base 2 and a mantissa matrix M containing fixed point values. This way, the  E matrix can be ignored during the QR-decomposition, because it is diagonal and thus also triangular. Only the M matrix needs to be QR-decomposed. This means that the computation-intensive Householder transforms can be calculated completely in fixed point arithmetic, while the complete S matrix still has some advantages of floating point numbers.
S = E · M = 2 e 1 0 0 0 2 e 2 0 0 0 2 e 3 · m 1 , 1 m 1 , 2 m 1 , 3 m 2 , 1 m 2 , 2 m 2 , 3 m 3 , 1 m 3 , 2 m 3 , 3 = m 1 , 1 · 2 e 1 m 1 , 2 · 2 e 1 m 1 , 3 · 2 e 1 m 2 , 1 · 2 e 2 m 2 , 2 · 2 e 2 m 2 , 3 · 2 e 2 m 3 , 1 · 2 e 3 m 3 , 2 · 2 e 3 m 3 , 3 · 2 e 3

4.3. Stochastic Rounding

When using limited precision values like 16-bit signed integers for the mantissas in M , each multiplication of two of these numbers results in a 32-bit integer, which needs to be rounded to be stored in a 16-bit register again. With the typical Round to Nearest (RN) approach, this can lead to some unfavorable effects, as the rounding errors often sum up quickly over the iterations of the filter. By replacing the RN method with a Stochastic Rounding (SR) method, the behavior can be made much more predictable, as the accumulated rounding error over time can now be described with a random walk function [22], whose expected magnitude over time follows a square root function. In addition to multiplications, the Householder algorithm also requires square root and division operations whose results have to be rounded as well. The SR implementations for the different cases are shown in Algorithms 1–3. The given pseudo code uses ≫ to represent bit-wise right shift and ≪ for bit-wise left shift. PRNG 32 ( ) and PRNG 16 ( ) are 32-bit and 16-bit Pseudorandom Number Generator (PRNG) functions.
Algorithm 1 Rounding last n bits of 32-bit integer with stochastic rounding
  • function ROUND16_STOCHASTIC(x, n)
  •      mask ( 1 n ) 1
  •      p PRNG 32 ( ) & mask
  •      residual x & mask
  •      x x n
  •     if  p < residual  then
  •          x x + 1
  •     end if
  •     return x
  • end function
Algorithm 2 Integer division with stochastic rounding
  • function DIVISION_STOCHASTIC( x 1 , x 2 )
  •      x 1 x 1 + ( ( x 2 · PRNG 16 ( ) ) 16 )
  •     return  x 1 / x 2
  • end function
Algorithm 3 Integer square root with stochastic rounding
  • function SQRT_STOCHASTIC( value )
  •      result 0
  •      exp 0 x 8000
  •     while  e x p 0  do
  •          temp result | exp
  •         if ( temp · temp ) value  then
  •             result temp
  •         end if
  •          exp exp 1
  •     end while
  •                                                                 ▹ rounding last bit with stochastic rounding
  •      temp 32 ( result 16 ) + PRNG 16 ( )
  •     if  ( ( temp 32 · temp 32 ) 32 ) < value  then
  •          result result + 1
  •     end if
  •     return  result
  • end function
To illustrate the effectiveness of the stochastic rounding method, a simplified abstract system is constructed. The system consists of a three-dimensional state vector and uses an identity matrix as the state transition model. At each iteration, the filter receives a one-dimensional observation—a linear combination of the system states—with a constant standard deviation. Following each update, the predicted state uncertainty is evaluated using the filter’s covariance matrix, or the square root of the covariance matrix in the case of the fixed-point implementation. The deviation is expected to go down as the filter incorporates more observations over time.
As can be seen in Figure 2, the SR implementation result is much closer to the result from floating-point arithmetic. Because of the low precision of the 16-bit numerical representation, there is only a very limited amount of possible step sizes. It can be clearly seen that the RN implementation utilizes the nearest possible step size, but it diverges quickly from the floating-point results.
To assess the impact of rounding errors in a more realistic scenario, the following setup was simulated. The initial three-dimensional position, velocity, and orientation are assumed to be known. Then, for 5 s, only noisy inertial measurements are available. After the first 5 s, an additional noisy position measurement becomes available. The three-dimensional angular velocity measurement has a noise spectral density of 3 × 10 7 rad / s / Hz , and the acceleration measurement has a noise spectral density of 0.3 m / s 2 / Hz . The additional noisy position measurement has a noise spectral density of 1.5 m / Hz . Figure 3a shows the simulation results for floating-point arithmetic, averaged over 100 repeated simulations, with the absolute actual error plotted against the predicted error. In the first 5 s, the position estimation uncertainty increases mainly because of the acceleration measurement noise. After the position measurement becomes available, the uncertainty stabilizes at above 2 m error. Figure 3b shows the difference between the results with floating point and fixed point arithmetic. Consistent with Figure 2, the SR method provides significantly more accurate predicted uncertainty compared to RN. This difference has minimal impact on the actual error during the pure inertial phase. However, when the position measurement is available, the inaccurately predicted uncertainty affects data fusion, resulting in a slight increase in the actual error.

4.4. Tightly Coupled Data Fusion with USBL

The data fusion with USBL measurements can be implemented either using a Loosely Coupled (LC) or Tightly Coupled (TC) approach [23]. The TC method is chosen here because it allows us to have separate certainty values for the measurement of range and angle. The known beacon position in global coordinates p beacon is first transferred to the body coordinate system, as shown in Equation (18). Then, the observation vector y = r m β a z , m β e l , m including range, azimuth angle, and elevation angle can be predicted using the h ( x ) function given in Equation (19).
p B = R { θ } ( p beacon p )
h = | | p B | | atan 2 p B , y , p B , x atan 2 p B , z , | | p B , x y | |
This function is then linearized around the current state estimate to obtain the observation matrix H x given in Equation (20).
H x = h ( x ) x x = h p 0 h θ 0
Here, the derivative of the observation vector relative to the position vector is given by h p = h p B R { θ } , with the derivative of the observation relative to the beacon position in body coordinates given in Equation (21). The derivative of the observation relative to the rotation vector θ is given by h θ = h p B R { θ } [ p beacon p ] × .
r p B = p B | | p B | | β a z p B = p B , y p B , x 0 | | p B , x y | | 2 β e l p B = p B , z · p B , x | | p B , x y | | p B , z · p B , y | | p B , x y | | | | p B , x y | | | | p B | | 2 h p B = r p B β a z p B β e l p B

5. Sensor Calibration

While the sensor calibration process typically requires precise reference measurement systems, the previously described Kalman filter can also be extended to estimate the sensors’ orientation together with calibration parameters. This way, the calibration process can be performed without additional reference measurements. Therefore, the state estimate x of Equation (1) has to be extended as shown in Equation (22), where a s and ω s are the sensitivity correction factors for each axis of the accelerometer and the gyroscope, and α = α y z α z y α z x and γ = γ y z γ z y γ z x γ x y γ x y γ y x are the axis misalignment angles for the accelerometer and gyroscope.
x = p v θ a b ω b a s ω s α γ
To define the axis misalignment angles, a reference coordinate system is needed. This reference system is defined as the Accelerometer Orthogonal Frame (AOF) [24], where the measured accelerometer x-axis lies directly on the x-axis of the AOF. The y-axis of the AOF is fixed to be in the plane spanned by the x-axis and y-axis of the accelerometer measurement axes. The z-axis of the AOF is then given solely by the orthogonality of the system. Therefore, three calibration angles are needed to align the accelerometer to the AOF, and six calibration angles are needed to align the gyroscope. An accelerometer measurement vector a m can be transformed into the AOF by multiplying it matrix T a as shown in Equation (23). Similarly, the gyroscope measurement is aligned as shown in Equation (24).
a AOF = T a · a m = 1 α y z α z y 0 1 α z x 0 0 1 · a m
ω AOF = T g · ω m = 1 γ y z γ z y γ x y 1 γ z x γ x y γ y x 1 · ω m
The state transition f ( x ) previously defined in Equations (3)–(5) is extended as shown in Equations (25)–(27), where the ⊙ operator represents an elementwise multiplication between two vectors.
p k + 1 = p k + v k Δ t + 1 2 R { θ k } T a a k + g Δ t 2
v k + 1 = v k + R { θ k } T a a k + g Δ t
q { θ k + 1 } = q { θ k } q { T g ω k Δ t } a k = a s a m , k a b ω k = ω s ω m , k ω b
The new state transition is linearized around a given working point of x , as shown in Equation (28), replacing the F x previously defined in (6).
F x = f δ x x , u m = I I Δ t 0 0 0 0 0 0 0 0 I F 1 F 2 0 F 4 0 F 6 0 0 0 I 0 F 3 0 F 5 0 F 7 0 0 0 I 0 0 0 0 0 0 0 0 0 I 0 0 0 0 0 0 0 0 0 I 0 0 0 0 0 0 0 0 0 I 0 0 0 0 0 0 0 0 0 I 0 0 0 0 0 0 0 0 0 I
where submatrices F 1 to F 7 are defined as follows:
F 1 = [ R { θ } T a a ] × Δ t F 2 = R { θ } T a Δ t F 3 = R { θ } T g Δ t F 4 = R { θ } T a · Diag ( a m ) Δ t F 5 = R { θ } T g · Diag ( ω m ) Δ t F 6 = R { θ } a y a z 0 0 0 a z 0 0 0 Δ t F 7 = R { θ } ω y ω z 0 0 0 0 0 0 ω z ω x 0 0 0 0 0 0 ω x ω y Δ t
Often, integrated MEMS sensors come with integrated magnetometers. The magnetometer can be included in the calibration, as shown in [25]. Since the magnetometer measurements are not involved in the prediction step, the state transition function and transition matrix are not effected.

6. Results

For the field test, the AUV was driving close to the surface on a triangular path marked with buoys, as shown in Figure 4. The test side was located in the Kiel Fjord, and the triangle had a side length of around 30 m. The water depth at the test side was between 3 m and 8 m. The vehicle used for the test was a custom-designed AUV with a length of about 1 m and a weight of about 50 kg. The placement of the navigational sensors is shown in Figure 5. It is noted that both sensors were relative close to each other in the horizontal direction, so rotations around the vertical axes had less impact on the lever arm. The vehicle was driving in non-autonomous mode using a tethering cable, and the actual path was recorded from above the water to measure the reference position.
During the field test, the AUV was driving for about an hour while recording data from MEMS and USBL. As our method performs joined calibration and data fusion, the accuracy grows over time. For this reason, only the position accuracy during a 10 min time period at the end of the test was taken into account for the evaluation. The recorded reference position, the USBL fixes, and the estimated vehicle path with best filter configuration are shown in Figure 6 for the time period used for evaluation. The east and north positions are also plotted separately over time in Figure 7. Different configurations of the described filter are applied to the data recorded from the field test. The maximum error and the Root Mean Squared Error (RMSE) are calculated for the estimated positions over the same 10 min time period. The filter has been processed with different types of input data enabled. This includes inertial measurements of the MEMS, the USBL measurements with either TC or LC data fusion, and feedback of the thruster set points. Additionally, the implementation method can be floating-point or fixed-point with SR or RN rounding methods. The results are summarized in Table 1. It can be seen that the RMSE of the filter output is close to the RMSE of the raw USBL measurements, despite the USBL measurements being only available in a 5 s interval. In addition, the maximum error is strongly reduced from 17.62 m to 6.09 m. It can be seen that the SR method clearly reduces the precision difference between the 16-bit fixed-point and 32-bit floating-point implementations. The RMSE of the SR fixed-point implementation is only 5% higher than with the floating-point results. In contrast, the RN implementation had a 16% higher error. The comparison with a few-state Kalman filter extended with complementary filtering, as described in [16], showed a clear advantage of our proposed method. The complementary filtering setup was limited to LC USBL data fusion. As shown in Table 1, the maximum error was almost identical between the complementary filtering setup and our method with LC USBL data fusion, while our method with TC USBL data fusion had a reduced maximum error.
An advantage of the proposed method is its ability to perform the calibration jointly with the data fusion. To test the effectiveness of this approach, the estimated bias parameters of the MEMS sensor were compared between a standalone calibration in the laboratory and a joined calibration during the field test. The results are presented in Table 2. It can be seen that the estimated gyroscope bias parameters closely match between the two calibrations. The accelerometer bias parameters differ strongly, which is also reflected in the estimation uncertainty of around 5 × 10 2 m s 2 . The accelerometer calibration works much better in the laboratory test because the sensor can be freely rotated. In the field test, the sensor always has the z-axis aligned with the gravity of the earth. For the same reason, the sensitivity and orthogonality parameters are difficult to estimate in a short field test. Therefore, these parameters were fixed during the field test and not included in the comparison.
The existing methods can be broadly classified into three categories. The first relies on high-precision sensors, offering high accuracy at a high cost [2,4,12]. The second uses low-cost MEMS sensors combined with complex, high-rate, many-state data fusion algorithms, which reduce hardware costs but impose significant computational load [6]. The third category also employs low-cost sensors, but it minimizes computational demand through simplified data fusion techniques [16]. Our method belongs to the second category, with the key advantage of offloading the data fusion to a dedicated signal processing unit. This approach eliminates the computational burden on the application processor, making its full processing power available for other tasks. A comparison of the advantages and disadvantages can be seen in Table 3.

7. Conclusions

This work presents a novel implementation method to achieve near-floating-point precision on a limited 16-bit microcontroller, enabling the development of a low-cost, low-power standalone navigation system. While the microcontroller’s power consumption may be minor in the overall power management of an AUV, this approach offers the advantage of enhanced numerical stability, regardless of computational constraints. The implementation leverages a square-root form of the error state Kalman filter to establish a numerically stable inertial navigation system that allows for data fusion from external sensors. The implementation has been adapted and optimized for fixed-point calculation to be used on a 16-bit microcontroller. A stochastic rounding method has been applied to increase the precision of the fixed-point implementation. The algorithm has been adapted for TC USBL data fusion. Additional optimizable states have been added for calibration of bias, sensitivity, and orthogonality errors of the MEMS sensor.
The proposed implementation has been tested on different calibration and data fusion tasks. Data collected from a field test have been used to compare the performance of different filter configurations. It was shown that the accuracy of the fixed-point calculation could be brought close to the floating-point performance using the SR method. Also, the use of TC data fusion with USBL and the inclusion of thruster feedback led significant error reduction.

Author Contributions

Conceptualization, J.W. and S.B.-H.; experiments, J.W.; writing, J.W. and S.B.-H. All authors have read and agreed to the published version of the manuscript.

Funding

We acknowledge financial support by Land Schleswig-Holstein within the funding program Open Access Publikationsfonds.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

Data are contained within the article.

Conflicts of Interest

The authors declare no conflicts of interest.

Abbreviations

The following abbreviations are used in this manuscript:
AUVAutonomous Underwater Vehicle
INSInertial Navigation System
FOGFiber-Optic Gyroscope
DVLDoppler Velocity Log
USBLUltra-Short Baseline
MEMSMicro-Electro-Mechanical Systems
RNRound to Nearest
SRStochastic Rounding
PRNGPseudorandom Number Generator
AOFAccelerometer Orthogonal Frame
RMSERoot Mean Squared Error
TCTightly Coupled
LCLoosely Coupled
GNSSGlobal Navigation Satellite System

References

  1. Alexandris, C.; Papageorgas, P.; Piromalis, D. Positioning Systems for Unmanned Underwater Vehicles: A Comprehensive Review. Appl. Sci. 2024, 14, 9671. [Google Scholar] [CrossRef]
  2. Zhang, T.; Shi, H.; Chen, L.; Li, Y.; Tong, J. AUV positioning method based on tightly coupled SINS/LBL for underwater acoustic multipath propagation. Sensors 2016, 16, 357. [Google Scholar] [CrossRef] [PubMed]
  3. Oliver, J.W. An Introduction to Inertial Navigation; University of Cambridge, Computer Laboratory: Cambridge, UK, 2007. [Google Scholar]
  4. Panish, R.; Taylor, M. Achieving high navigation accuracy using inertial navigation systems in autonomous underwater vehicles. In Proceedings of the OCEANS, Santander, Spain, 6–9 June 2011; pp. 1–7. [Google Scholar]
  5. Loebis, D.; Sutton, R.; Chudley, J. Review of multisensor data fusion techniques and their application to autonomous underwater vehicle navigation. J. Mar. Eng. Technol. 2002, 1, 3–14. [Google Scholar] [CrossRef]
  6. Karmozdi, A.; Hashemi, M.; Salarieh, H.; Alasty, A. Implementation of translational motion dynamics for INS data fusion in DVL outage in underwater navigation. IEEE Sens. J. 2020, 21, 6652–6659. [Google Scholar] [CrossRef]
  7. Nicosevici, T.; Garcia, R.; Carreras, M.; Villanueva, M. A review of sensor fusion techniques for underwater vehicle navigation. MTS/IEEE Techno-Ocean 2004, 3, 1600–1605. [Google Scholar]
  8. Xu, J.; Li, J.; Xu, S. Analysis of quantization noise and state estimation with quantized measurements. J. Control Theory Appl. 2011, 9, 66–75. [Google Scholar] [CrossRef]
  9. Solà, J. Quaternion kinematics for the error-state Kalman filter. arXiv 2017, arXiv:1711.02508. [Google Scholar] [CrossRef]
  10. Park, P.; Kailath, T. New square-root algorithms for Kalman filtering. IEEE Trans. Autom. Control 1995, 40, 895–899. [Google Scholar] [CrossRef]
  11. Van Der Merwe, R.; Wan, E.A. The square-root unscented Kalman filter for state and parameter-estimation. In Proceedings of the International Conference on Acoustics, Speech, and Signal Processing, Salt Lake City, UT, USA, 7–11 May 2001; Volume 6, pp. 3461–3464. [Google Scholar]
  12. Liu, S.; Zhang, T.; Zhang, J.; Zhu, Y. A new coupled method of SINS/DVL integrated navigation based on improved dual adaptive factors. IEEE Trans. Instrum. Meas. 2021, 70, 1–11. [Google Scholar] [CrossRef]
  13. Guo, Y.; Wu, M.; Tang, K.; Zhang, L. Square-root unscented information filter and its application in SINS/DVL integrated navigation. Sensors 2018, 18, 2069. [Google Scholar] [CrossRef] [PubMed]
  14. Jin, K.; Chai, H.; Su, C.; Xiang, M. A performance-enhanced DVL/SINS integrated navigation system based on data-driven approach. Meas. Sci. Technol. 2023, 34, 095120. [Google Scholar] [CrossRef]
  15. Zhang, S.; Zhang, T.; Zhang, L. An underwater SINS/DVL integrated system outlier interference suppression method based on LSTM-EEWKF. IEEE Sens. J. 2023, 23, 27590–27600. [Google Scholar] [CrossRef]
  16. Liu, J.; Yu, T.; Wu, C.; Zhou, C.; Lu, D.; Zeng, Q. A low-cost and high-precision underwater integrated navigation system. J. Mar. Sci. Eng. 2024, 12, 200. [Google Scholar] [CrossRef]
  17. Rao, J.; Chen, J.; Ding, W.; Gong, Z. Navigation information fusion for an AUV in rivers. In Proceedings of the 2012 IEEE International Conference on Multisensor Fusion and Integration for Intelligent Systems (MFI), Hamburg, Germany, 13–15 September 2012; pp. 83–88. [Google Scholar]
  18. Qin, H.; Wang, X.; Wang, G.; Hu, M.; Bian, Y.; Qin, X.; Ding, R. A novel INS/USBL/DVL integrated navigation scheme against complex underwater environment. Ocean Eng. 2023, 286, 115485. [Google Scholar] [CrossRef]
  19. Simon, D. Optimal State Estimation: Kalman, H∞, and Nonlinear Approaches; Wiley: New York, NY, USA, 2006; pp. 1–526. [Google Scholar]
  20. Anderson, B.; Moore, J. Optimal Filtering; Prentice-Hall: New York, NY, USA, 1979. [Google Scholar]
  21. Commons, W. Householder Reflection for QR Decomposition. 2011. Available online: https://commons.wikimedia.org/wiki/File%3aHouseholder.svg (accessed on 18 February 2025).
  22. Mikaitis, M. Stochastic Rounding: Algorithms and Hardware Accelerator. In Proceedings of the 2021 International Joint Conference on Neural Networks (IJCNN), Shenzhen, China, 18–22 July 2021; pp. 1–6. [Google Scholar] [CrossRef]
  23. Jalal, F.; Nasir, F. Underwater Navigation, Localization and Path Planning for Autonomous Vehicles: A Review. In Proceedings of the 2021 International Bhurban Conference on Applied Sciences and Technologies (IBCAST), Islamabad, Pakistan, 12–16 January 2021; pp. 817–828. [Google Scholar] [CrossRef]
  24. Tedaldi, D.; Pretto, A.; Menegatti, E. A robust and easy to implement method for IMU calibration without external equipments. In Proceedings of the 2014 IEEE International Conference on Robotics and Automation (ICRA), Hong Kong, China, 31 May–7 June 2014; pp. 3042–3049. [Google Scholar] [CrossRef]
  25. Guo, P.; Qiu, H.; Yang, Y.; Ren, Z. The soft iron and hard iron calibration method using extended Kalman filter for attitude and heading reference system. In Proceedings of the 2008 IEEE/ION Position, Location and Navigation Symposium, Monterey, CA, USA, 5–8 May 2008; pp. 1167–1174. [Google Scholar] [CrossRef]
Figure 1. Householder reflection for QR decomposition [21].
Figure 1. Householder reflection for QR decomposition [21].
Sensors 25 03125 g001
Figure 2. Abstract simulation of covariance matrix evolution on simplified three-state Kalman filter. Comparison between floating-point implementation as ground truth (red), fixed-point stochastic rounding (green), and fixed-point deterministic rounding (blue).
Figure 2. Abstract simulation of covariance matrix evolution on simplified three-state Kalman filter. Comparison between floating-point implementation as ground truth (red), fixed-point stochastic rounding (green), and fixed-point deterministic rounding (blue).
Sensors 25 03125 g002
Figure 3. Simulation results with (a) floating point arithmetic and (b) fixed point arithmetic. The first 5 s reflect pure inertial drift, followed by a phase with an additional position measurement. The predicted standard deviation is shown in blue, and the actual deviation in black, with the RN rounding method represented by dashed lines. All results are averaged over 100 simulations.
Figure 3. Simulation results with (a) floating point arithmetic and (b) fixed point arithmetic. The first 5 s reflect pure inertial drift, followed by a phase with an additional position measurement. The predicted standard deviation is shown in blue, and the actual deviation in black, with the RN rounding method represented by dashed lines. All results are averaged over 100 simulations.
Sensors 25 03125 g003
Figure 4. Field test with an AUV at the Kiel Fjord.
Figure 4. Field test with an AUV at the Kiel Fjord.
Sensors 25 03125 g004
Figure 5. Positioning of navigational sensor on the AUV used in the field test.
Figure 5. Positioning of navigational sensor on the AUV used in the field test.
Sensors 25 03125 g005
Figure 6. Estimated position during the field test plotted northing over easting in comparison with the ground truth and USBL samples.
Figure 6. Estimated position during the field test plotted northing over easting in comparison with the ground truth and USBL samples.
Sensors 25 03125 g006
Figure 7. Estimated position during the field test plotted over time in comparison with the ground truth and USBL samples.
Figure 7. Estimated position during the field test plotted over time in comparison with the ground truth and USBL samples.
Sensors 25 03125 g007
Table 1. Results with different data fusion configurations.
Table 1. Results with different data fusion configurations.
TypeMEMSUSBLThrustRMSEMax. Error
raw 3.51  m 17.61  m
floatyesTCyes 3.18  m 6.09  m
floatyesTC 4.5  m 13.38  m
floatyesLCyes 5.28  m 8.67  m
floatyesLC 7.02  m 17.07  m
fix16 SRyesTCyes 3.36  m 6.21  m
fix16 RNyesTCyes 3.69  m 6.75  m
complementary filter [16]yesLCyes 3.62  m 8.54  m
Table 2. Comparison between standalone calibration in the laboratory and joined calibration during the field test.
Table 2. Comparison between standalone calibration in the laboratory and joined calibration during the field test.
ElementStandalone CalibrationJoined Calibration
accelerometer bias x 8.73 × 10 2   m s 2 2.95 × 10 2 m s 2 ± 6.58 × 10 2 m s 2
accelerometer bias y 3.51 × 10 2   m s 2 6.39 × 10 1 m s 2 ± 4.83 × 10 2 m s 2
accelerometer bias z 8.77 × 10 3 m s 2 9.64 × 10 2 m s 2 ± 4.41 × 10 2 m s 2
gyroscope bias x 2.50 × 10 3 rad s 2.53 × 10 3 rad s ± 8.20 × 10 6 rad s
gyroscope bias y 4.31 × 10 4 rad s 4.82 × 10 4 rad s ± 8.14 × 10 6 rad s
gyroscope bias y 1.11 × 10 3 rad s 1.21 × 10 3 rad s ± 1.48 × 10 5 rad s
Table 3. Advantages and disadvantages of different categories of underwater navigation solutions.
Table 3. Advantages and disadvantages of different categories of underwater navigation solutions.
MethodAdvantagesDisadvantages
Precise sensors
  • High accuracy
  • High cost
MEMS sensors + high rate, many states data fusion
  • Low cost
  • Limited accuracy
  • High computational load
MEMS sensors + few states, simplified data fusion
  • Low cost
  • Low computational load
  • Limited accuracy
  • Suboptimal data fusion
Our method: MEMS sensors + high rate, many-state data fusion on a dedicated signal processing unit
  • Low cost
  • No computational load on application processor
  • Limited accuracy
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Winkler, J.; Badri-Hoeher, S. Implementation of a Low-Cost Navigation System Using Data Fusion of a Micro-Electro-Mechanical System Inertial Sensor and an Ultra Short Baseline on a Microcontroller. Sensors 2025, 25, 3125. https://doi.org/10.3390/s25103125

AMA Style

Winkler J, Badri-Hoeher S. Implementation of a Low-Cost Navigation System Using Data Fusion of a Micro-Electro-Mechanical System Inertial Sensor and an Ultra Short Baseline on a Microcontroller. Sensors. 2025; 25(10):3125. https://doi.org/10.3390/s25103125

Chicago/Turabian Style

Winkler, Julian, and Sabah Badri-Hoeher. 2025. "Implementation of a Low-Cost Navigation System Using Data Fusion of a Micro-Electro-Mechanical System Inertial Sensor and an Ultra Short Baseline on a Microcontroller" Sensors 25, no. 10: 3125. https://doi.org/10.3390/s25103125

APA Style

Winkler, J., & Badri-Hoeher, S. (2025). Implementation of a Low-Cost Navigation System Using Data Fusion of a Micro-Electro-Mechanical System Inertial Sensor and an Ultra Short Baseline on a Microcontroller. Sensors, 25(10), 3125. https://doi.org/10.3390/s25103125

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