40 Year Sensorf
40 Year Sensorf
PII: S1566-2535(20)30399-7
DOI: https://doi.org/10.1016/j.inffus.2020.10.018
Reference: INFFUS 1316
Please cite this article as: Milad Nazarahari , Hossein Rouhani , 40 Years of Sensor Fusion for Orien-
tation Tracking via Magnetic and Inertial Measurement Units: Methods, Lessons Learned, and Future
Challenges, Information Fusion (2020), doi: https://doi.org/10.1016/j.inffus.2020.10.018
This is a PDF file of an article that has undergone enhancements after acceptance, such as the addition
of a cover page and metadata, and formatting for readability, but it is not yet the definitive version of
record. This version will undergo additional copyediting, typesetting and review before it is published
in its final form, but we are providing this version to give early visibility of the article. Please note that,
during the production process, errors may be discovered which could affect the content, and all legal
disclaimers that apply to the journal pertain.
Provided lessons learned from survey and future research challenges in the field
1
40 Years of Sensor Fusion for Orientation Tracking via
Magnetic and Inertial Measurement Units: Methods, Lessons
Learned, and Future Challenges
a
Department of Mechanical Engineering, University of Alberta, Donadeo Innovation Centre for
Engineering, Edmonton, Alberta, T6G 1H9, Canada ([email protected],
[email protected]).
Corresponding Author:
Hossein Rouhani, Ph.D., P.Eng.
Department of Mechanical Engineering, University of Alberta
10-368 Donadeo Innovation Centre for Engineering
9211-116 Street NW, Edmonton, AB T6G 1H9, Canada
Tel.: 001-780-492-8344
Email: [email protected]
Abstract
Technological developments over the past two decades have resulted in the development of more
accurate and lightweight low-cost magnetic and inertial measurement units (MIMUs). These
2
developments have allowed the extensive application of MIMUs in various fields, specifically
measurements from a tri-axial gyroscope, accelerometer, and/or magnetometer inside the MIMU
are characterized by uncertainties. Numerous studies have been conducted to address these
uncertainties and develop sensor fusion algorithms (SFAs) to estimate the 3D orientation
accurately and robustly. This paper contributes to these efforts by providing a survey of the state-
of-the-art SFAs for orientation estimation. We surveyed +250 publications, categorized the SFAs
with various structures, identified the modifications proposed to improve their performance, and
discussed the strengths and weaknesses of these approaches. We found that, while early SFAs
were mostly a vector observation algorithm or an extended Kalman filter, to improve the
computational efficiency, more recent works have developed SFAs with a complementary filter
or complementary Kalman filter structure. At the same time, to improve the performance of the
SFAs, several research teams have proposed various modifications to the basic structure of these
filters, such as adaptive gain tuning or imperfect measurement rejection. We also provided an
outlook on the lessons learned as well as the main challenges related to SFAs and discussed the
practical steps toward developing an effective SFA. We have identified the need for
benchmarking studies as the main challenge at the moment. This paper is among the first surveys
which provide such breadth of coverage across different SFAs for tracking orientation with
MIMUs.
Keywords: Sensor fusion algorithm; Attitude and heading reference system; Linear/extended
Kalman filter; Complementary Filter; Adaptive gain tuning; Magnetic and Inertial Measurement
Unit.
3
Nomenclature
1 Introduction
gyroscope, and magnetometer, are used to track the displacement and orientation of a rigid body
in real-time. Because of their lightweight, small size, and long battery life [1,2], MIMUs have
4
been used extensively as an ideal tool in aerospace, unmanned vehicle navigation, robotics, and
human motion tracking. However, in almost all applications, whether the 3D joint angle
a dead-reckoning system [4], the MIMU orientation must be first calculated using a sensor fusion
algorithm (SFA), also known as attitude and heading reference system (AHRS).
Raw MIMU data can be used to estimate orientation under specific conditions. In
particular, the MIMU’s accelerometer measures the gravitational acceleration and can be used to
compute the attitude. Also, in a magnetically neutral environment, the magnetometer measures
the geomagnetic field, which can be used to estimate the yaw angle. Furthermore, the gyroscope
measures the angular velocity (rate of change of orientation), which can be used to calculate the
However, using the accelerometer, gyroscope, and magnetometer alone may yield poor
estimations in terms of accuracy or robustness due to various sources of error [5]. For example,
accelerometers are not suitable for orientation estimation during dynamic tasks as they measure
acceleration. Also, the geomagnetic field could be distorted by the presence of ferrous materials,
inaccurate. Moreover, because the cumulative error of the SDI increases unbounded over time,
MEMS gyroscopes are not suitable for orientation estimation during long-duration tasks. Thus,
various SFAs have been proposed in the literature to achieve an accurate and reliable estimation.
Rigid body orientation can be expressed via one of the following parametrizations: (i) Euler
angles, i.e., roll and pitch (also known as the attitude) and yaw (also known as the heading); (ii)
5
quaternions; or (iii) direction cosine matrix (DCM) [6,7]. Euler angles can be used when an
intuitive physical meaning of the estimated orientation is needed. For example, in controlling an
unmanned vehicle [8], measuring human joint angles, or tracking in an augmented reality device
[9]. However, under certain configurations, there are singularities associated with this
parametrization that make Euler angles unsuitable for most control or tracking applications.
quaternion group, i.e., homeomorphic to rotation group SO(3), with S3 as its domain [12].
Therefore, to reduce its degrees of freedom from four to three, consistent with the dimension of
the SO(3), a constrained quaternion estimation is required, such as enforcing the unit norm
constraint after estimation. See more on constrained estimation in [12,13]. A similar hard
Previous surveys have reviewed the literature related to MIMUs with a focus on applications
with the aim of the present paper, in this section, we review the previous surveys of SFAs for
MIMU orientation estimation only. Table I summarizes the surveys with a focus on the
experimental comparison. Table I identifies the filter with the best performance in each survey
and provides the details of the SFAs tested, parameter tuning strategies, and experimental
validations.
6
Cavallo et al. [24] compared the estimation accuracy of three SFAs, their proposed
Extended Kalman Filter (EKF) and SFAs in [25,26], using a MIMU mounted on KUKA Youbot
robot while the accelerometer and magnetometer were calibrated using a 3D-ellipsoid fitting
method [27]. The robot measured the reference (true) orientation during slow (18 deg/s) and fast
(45 deg/s) trajectory tracking motions. Filippeschi et al. [10] performed an experimental study to
compare five SFAs [28–32] for wrist position tracking. They used orientation and length of the
trunk, upper arm and forearm were used to estimate the wrist position. However, the accuracy of
the SFAs was not directly comparable for the following reasons: (i) one method required visual
reference for position tracking; (ii) methods were different in terms of constraints of the
kinematic chain; and (iii) parameters of the methods were not selected systematically.
Young [33] compared the EKF proposed in [29] with different Complementary Filters
(CFs) presented in [34–36]. After calibrating sensors for offset and scale errors, the accuracy of
the SFAs was evaluated during gentle random motions and over treadmill walking at a normal
pace. They concluded that in general, CFs with lower computational complexity could
outperform KFs for human motion tracking, as CFs have no assumption about the process
dynamics. Also, they showed that because of the lower computational complexity and minimal
loss of accuracy, the use of non-optimal vector observation (VO) algorithms, such as TRi-axial
Attitude Determination (TRIAD), is preferred compared to optimal ones, such as the QUaternion
ESTimator (QUEST). More recently, Sabitini [37] provided a general survey of SFAs, including
algorithms based on VOs and KFs, with great emphasis on practical aspects such as SFA gain
selection.
Fan et al. [38] performed a systematic review of standard strategies for reducing the effect
of magnetic disturbance on the accuracy and robustness of SFAs. They also compared the
7
accuracy of five SFAs, [25,39–41], and concluded that a “good” filter must have the following
three features: (i) gyroscope drift compensation; (ii) decoupling attitude from yaw estimation;
and (iii) an adaptive strategy to reject magnetic distortions. Similarly, Ligorio and Sabatini [39]
reviewed the main magnetic disturbance compensation strategies used in KFs and showed that
model-based approaches (estimating the magnetic disturbance at each iteration using a stochastic
Bergamini et al. [42] used routine manual tasks such as teeth/hair brushing and walking
along a ∞-shaped pathway to compare the accuracy of SDI with the CF proposed by Madgwick
et al. [25] and the KF proposed by Sabatini [37]. This study showed that the tested CF and KF
were significantly more accurate than SDI for yaw estimation and that the two SFAs achieved
similar accuracy. Using the optimal SFAs gains, Caruso et al. [43] analyzed the performance of
four SFAs ([25,37,44], and Xesne proprietary KF) and concluded that the performance of SFAs
depends on the experimental conditions, such as the rate of rotations during experiments. Michel
et al. [45] compared the accuracy and robustness of six SFAs ([25,26,46–49]) using smartphone
data during a variety of daily routine activities. They showed that the overall performance of the
nonlinear CF proposed by Martin and Salaun [49] was best, but SFAs with a simpler structure
and lower computational complexity, such as [25] and [26], could be highly beneficial for saving
the battery life of the smartphone. See [50] for a more detailed study on the energy
However, the mentioned works only surveyed a limited number of SFAs, i.e., in total, 30
filters were tested in the abovementioned works, and only 4 of them were used in more than two
studies. Therefore, in this paper, we reviewed a wide range of SFAs for orientation tracking with
MIMUs, including VOs, CFs, Linear KFs (LKFs), EKFs, and Complementary KFs (CKFs). We
8
did not, however, review fusing strategies such as the Unscented KF, Cubature KF, and Particle
filter, or the use of other technologies for orientation tracking, whether alone or together with
MIMUs. In summary, this review sought to answer the following question: how can MIMU
signals be fused for orientation tracking? To answer this question, we provided a survey on state-
of-the-art strategies, including SFAs based on VO, CF, and LKF/EKF/CKF families.
2 Literature survey
In this section, we present the MIMU model commonly used in developing SFAs [51,52].
Gyroscope readout, 𝑦𝐺 , can be modelled as the summation of the true angular velocity, 𝜔, the
where 𝐾𝐺 is the scale factor matrix, and (1b) models 𝑏𝐺 as a first-order Markov process driven
the external non-gravitational acceleration, 𝒶, the gravitational acceleration, 𝑔, the bias 𝑏𝐴 , and a
where 𝐾𝐴 is the scale factor matrix, and (1b) models 𝒶 as a first-order low-pass filtered (0 ≤
𝑐𝒶 < 1 is the cut-off frequency of the filter) white Gaussian noise process. The bias term 𝑏𝐴 was
tracking as part of the KF state vector [54,55]. Finally, the magnetometer readout, 𝑦𝑀 , can be
9
modelled as the summation of the true geomagnetic field, 𝑚, magnetic distortion, 𝒹, and a white
where 𝐾𝑀 is the scale factor matrix, and (3b) models 𝒹 as a first-order low-pass filtered (0 ≤
𝑐𝒹 < 1 is the cut-off frequency of the filter) white Gaussian noise process.
While SDI is not an SFA on its own, we dedicate a separate section to it as it is the core of
almost all CFs and KFs. The numerical SDI of gyroscope readout, 𝑦𝐺 , can be used to update the
shown in (4b), exp(∙) is the matrix exponential operator, which can be estimated using the
Taylor series or Padé approximation, 𝑇𝑠 is the sampling period of the MIMU, and 𝑞(0) is the
known initial orientation. Lee and Choi [57] showed that when using the Taylor series to
calculate exp(∙), the approximation order highly depends on (i) the sampling rate of the MIMU
and (ii) the magnitude of the 𝑦𝐺 . Equation (4a) can also be extended to account for the relative
angular velocity of (i) the Earth’s frame w.r.t. the inertial frame and (ii) the navigation frame
10
Nevertheless, SDI has two disadvantages: (i) the initial orientation must be known; and (ii)
the gyroscope bias, 𝑏𝐺 , results in an increasing cumulative error in the estimated orientation due
to the numerical integration (see [59] for comparison of the drifts obtained from the SDI and a
KF). To address the former, 𝑦𝐴 and 𝑦𝑀 , along with a VO algorithm (described in Section 2.3),
can be used to calculate 𝑞(0). To address the latter, various SFAs have been developed to use 𝑦𝐴
and/or 𝑦𝑀 to correct the SDI drift over time. Also, using SFAs, 𝑏𝐺 can be estimated at each time
instant based on a stochastic model, as in (1b), to correct the 𝑦𝐺 before the SDI. However, one
must note that 𝑏𝐺 is a function of environmental conditions, such as ambient temperature, and
extra caution must be exercised when environmental conditions change drastically during data
acquisition [60].
VO algorithms, commonly used in spacecraft AHRSs, provide an estimate of the rigid body
absolute orientation w.r.t. to a reference frame. To this end, two or more vectors measured in the
local rigid body frame, as well as their counterpart in the desired reference frame, are required.
In this setting, almost all VO algorithms are based on minimizing the cost function
1
𝒥(𝐴) = ∑𝑖 𝑎𝑖 |𝑏𝑖 − 𝐴𝑟𝑖 |2 , known as the Wahba’s problem [61], where 𝐴 is the DCM
2
representing the rigid body orientation (to be estimated), 𝑏𝑖 is a unit vector measured in local
rigid body frame, 𝑟𝑖 is the corresponding unit vector in the reference frame, and 𝑎𝑖 is the weight
associated with each VO. Markley and Mortari [62] provided an overview of the most popular
algorithms for solving the Wahba’s problem and compared their accuracy and speed.
For orientation tracking with MIMUs, VOs (𝑏𝑖 ) are the normalized 𝑦𝐴 and 𝑦𝑀 , and their
𝐺
reference counterparts (𝑟𝑖 ) are the gravitational acceleration, 𝑔, and the Earth’s geomagnetic
11
field vector, 𝐺𝑚, respectively, where 𝐺 represents the Earth’s reference frame. In this setting, the
TRIAD, QUEST [64] can accommodate more than two VOs by selecting proper weights 𝑎𝑖 for
sensors with different accuracies. However, in QUEST, magnetic disturbance can affect the
Along with TRIAD, the Factored Quaternion Algorithm (FQA) [36] was designed to
decouple 𝑦𝐴 and 𝑦𝑀 and cancel the effect of magnetic disturbance on attitude calculation.
TRIAD and FQA produce similar solutions to the Wahba’s problem, with the exception that the
former produces a DCM and the latter produces a quaternion [36]. Other variants of VO
algorithms include: Davenport 𝑞-method [65]; fast optimal attitude matrix [66]; singular value
decomposition-based method [67]; filter QUEST [68]; recursive QUEST [69]; fast linear
quaternion attitude estimator [70]; recursive linear continuous quaternion attitude estimator [71];
quaternion-based iterated least-square [72]; and algebraic quaternion algorithm [73,74]. The
main advantage of the VO algorithms is that they can estimate the absolute orientation. However,
as the VOs (𝑦𝐴 and 𝑦𝑀 ) could be corrupted by 𝒶 and 𝒹, these algorithms are not suitable for
12
2.4.1. Foundations
For an accurate estimate of orientation, the accelerometer and magnetometer should be used
during static conditions (low-frequency), while the gyroscope should be used during dynamic
remove the high-frequency estimations obtained by the accelerometer and magnetometer and a
high-pass filter ℋ(𝑠) to remove the low-frequency estimations obtained by the gyroscope, as
shown in Fig. 1(a). Commonly, the two filters’ structures have been selected such that ℒ(𝑠) =
𝒞(𝑠)
and ℒ(𝑠) + ℋ(𝑠) = 1, where 𝒞(𝑠) is a transfer function.
𝒞(𝑠)+𝑠
The simplest choice for ℒ(𝑠) and ℋ(𝑠) is a first-order low-pass and high-pass filter,
respectively, with a cut-off frequency of 𝑘𝑃 . To achieve this, we can set 𝒞(𝑠) = 𝑘𝑃 in ℒ(𝑠),
which results in the basic CF structure shown in Fig. 1(b) with solid lines in the time domain. Fig
1(c) shows the frequency response of the basic CF for three different values of 𝑘𝑃 . The optimal
value of 𝑘𝑃 depends on the dynamics of motion. This is, for relatively slow motions, a larger 𝑘𝑃
is preferred while for high dynamics, a smaller 𝑘𝑃 should be chosen [75]. As shown in Fig. 1(c),
the slope of the frequency response plot of the low- and high-pass filters is not steep, and thus,
the filter output contains components of both filters. To address this issue, and to achieve steeper
slopes with frequency responses in Fig. 1(d), we can add an integrator with gain 𝑘𝐼 to the basic
𝑘
CF structure, i.e., 𝒞(𝑠) = 𝑘𝑃 + 𝑠𝐼, as shown with the dashed line in Fig. 1(b).
As the SDI was used in almost all CFs developed for MIMU orientation tracking, this section is
focused on various approaches for (i) estimating the orientation via accelerometer and
magnetometer and (ii) low and high-pass filters’ structure. See Table II for a comparison of CFs
13
in the literature. Bachmann et al. [76] used the Gauss-Newton Algorithm (GNA) to modify the
SDI output based on a corrective term that minimized the error between the measured 𝑦𝐴 and 𝑦𝑀
and the projection of the 𝐺𝑔 and 𝐺𝑚 in MIMU’s sensor frame, SF, as in (6),
𝑆𝐹
where 𝐺𝑞̂ is the orientation of the MIMU sensor frame w.r.t. the Earth’s reference frame, ∗ and
⊗ are the quaternion conjugate and multiplication operations, respectively. Close variants of the
same approach have been used in other works, including fast quaternion-based orientation
[81]; adaptive quaternion-based CF [82]; generalized linear quaternion-based CF [83]; and others
[84–90].
The CF structure shown in Fig. 1(b) has been extensively revisited in the literature
[26,75,91–95]. For instance, Calusdian et al. [75] used the proportional gain 𝑘𝑃 to correct the
SDI output using the weighted error between the estimated orientations by CF at the previous
time instant and the FQA. In CF proposed by Lai et al. [91], first, attitude was estimated using
𝑦𝐴 as in (7),
𝑟𝑜𝑙𝑙𝑎𝑐𝑐 = tan−1 (𝑦𝐴,𝑦 ⁄𝑦𝐴,𝑧 ) , 𝑝𝑖𝑡𝑐ℎ𝑎𝑐𝑐 = tan−1 (𝑦𝐴,𝑥 ⁄√𝑦𝐴,𝑦 2 + 𝑦𝐴,𝑧 2 ) (7)
then, the proportional-integral CF in Fig. 1(b) was employed to correct the SDI output. Similarly,
Liu and Zhu [111] proposed a CF based on the proportional-integral and multi-sample rotation
vector concepts to eliminate the cumulative and noncommutativity errors of SDI in high
dynamics.
Mahony et al. [26] formulated the CF as a deterministic observer posed on the special
orthogonal group SO(3). The proposed explicit CF does not require an algebraic reconstruction
14
of the attitude, as in VO algorithms, and due to its low computational complexity, is ideal for
embedded hardware platforms. Also, the explicit CF can work with only one VO (𝑦𝐴 or 𝑦𝑀 ).
Similarly, Khosravian and Namvar [96] presented a nonlinear observer with asymptotic
convergence based on a single VO (𝑦𝐴 or 𝑦𝑀 ). In general, a single VO can be used along with a
thresholding scheme as in [88,93] (also known as vector selection [51,77]), or with fuzzy logic
[97,98], to reject imperfect measurements, such as rejecting 𝑦𝐴 during high dynamic tasks or 𝑦𝑀
The stability properties of the explicit CF proposed in [26] were proven when the
reference vectors are (i) stationary or (ii) time-varying but the 𝑦𝐺 is bias-free. Later, Grip et al.
[99] proposed an improved explicit CF for cases when the reference vectors are time-varying and
𝑦𝐺 is corrupted by bias. Also, Jensen [100] proposed a generalized version of the explicit CF by
replacing the constant scalar gains by time-varying matrix gains. Because the gain tuning
procedure for the explicit CF was based on trial-and-error, to provide a Kalman-like gain tuning
capability for the filter, De Silva et al. [101] proposed the right-invariant formulation for the
explicit CF with an intuitive gain tuning procedure based on the system’s noise parameters.
Martin and Salaun [49] and Hua et al. [102] developed nonlinear observers by decoupling
the yaw angle estimation from attitude estimation to minimize the effect of 𝒹 on attitude. Fan et
al. [103] and Wu et al. [104] proposed quaternion-based two-step CFs (step 1: estimate attitude
by fusing 𝑦𝐺 and 𝑦𝐴 , step 2: estimate yaw using 𝑦𝑀 ). This allowed them to make attitude
estimations immune to 𝒹 and enable the filter to use two separate gains to minimize the effect of
𝒶 and 𝒹 in steps 1 and 2, respectively. Valenti et al. [73] introduced a VO algorithm for solving
with attitude estimation immune to 𝒹. Marantos et al. [105] developed a CF based on a new
15
analytical solution for Wahba’s problem complemented with a gyroscope propagation and an
adaptive gain regulation scheme to provide smooth orientation tracking in high dynamics. Yang
et al. [106] formulated a linearly discrete dynamic model to relate the attitude to 𝑦𝐴 and then
developed a computationally efficient adaptive gain CF to combine the estimated attitude with
SDI output.
Chang et al. [107] first developed a smooth sliding-mode observer for attitude estimation
using 𝑦𝐴 , and then improved the observer estimations by including measurement noise and biases
[108]. El Hadri and Benallegue [109] proposed a nonlinear sliding-mode CF to achieve robust
orientation tracking and 𝑏𝐺 estimation under parametric uncertainties and modelling errors.
Vasconcelos et al. [110] introduced a CF using Euler angle parametrization (stable for non-
singular configurations) and 𝑏𝐺 compensation and tuned the filter gains in the frequency domain
to account for unmodeled disturbances found in the experimental setup. By estimating a virtual
angular velocity for the rigid body using 𝑦𝐴 and 𝑦𝑀 , Tayebi et al. [111] developed a quaternion-
based CF to track the orientation as well as an asymptotic estimate of 𝑏𝐺 . Sheng and Zhang [112]
calculation of 𝑏𝐺 based on the error between estimated orientation by SDI and a VO algorithm.
In the nonlinear CF introduced by Wu et al. [113], the error between 𝑦𝐴 and the projection of 𝐺𝑔
in MIMU sensor frame was used to estimate the 𝑏𝐺 and correct the angular velocity before SDI.
However, this method does not provide an estimate of 𝑏𝐺 when the MIMU is motionless or 𝑦𝐴 is
parallel to 𝐺𝑔.
16
2.4.3. Modified Complementary Filters
Because the performance of a CF highly depends on its gains, Alves Neto et al. [114] proposed a
CF using Euler angle parametrization and adaptive gains with values proportional to exp(-| 𝐺𝑔 -
||𝑦𝐴 |||). Kottath et al. [115] presented the application of an ensemble of linear CFs with different
gains to minimize the effect of gain value on the estimated orientation. In the proposed
ensemble, the weighting factor associated with each CF was adaptively calculated based on the
difference between the CF’s and the ensemble’s estimates. To adaptively compute the CF gains
based on the error between the orientation obtained from 𝑦𝐴 and 𝑦𝑀 and CF output, Poddar and
Narkhede [116] developed a non-linear CF aided with a Particle Swarm Optimization (PSO) gain
tuning scheme. It should be noted that the application of an adaptive gain tuning scheme or
thresholding method for rejecting 𝒶 and 𝒹 cannot guarantee an accurate and robust estimation.
For example, if gain tuning is used for an extended period of time to cancel the estimation errors
from 𝑦𝐴 during high dynamics, drift in attitude estimations will eventually occur because of 𝑏𝐺 .
2.5.1. Foundations
Suppose that we describe the orientation tracking problem using linear or nonlinear discrete-time
𝓍𝑘+1 = ℱ𝑘 𝓍𝑘 + ℬ𝑘 𝓊𝑘 + 𝓌𝑘
(8a)
𝓏𝑘+1 = ℋ𝑘+1 𝓍𝑘+1 + 𝓋𝑘+1
𝓍𝑘+1 = 𝒻𝑘 (𝓍𝑘 , 𝓊𝑘 , 𝓌𝑘 )
(8b)
𝓏𝑘+1 = 𝒽𝑘+1 (𝓍𝑘+1 , 𝓋𝑘+1 )
where 𝓍, 𝓊, and 𝓏 are states of the system (commonly the MIMU orientation), input to the
17
𝓋 are white Gaussian noise processes associated with system and measurement models with
covariances 𝒬 and ℛ, respectively; ℱ and 𝒻(∙) are the state transition matrix and equation,
respectively (also known as state propagation); and ℋ and 𝒽(∙) are the measurement prediction
matrix and equation, respectively. Now, suppose that we show the estimation error, i.e., the error
between the true state and the estimated state, of the linear system in (8a) by 𝓍̃ and our aim is to
find the estimator that minimizes the weighted 2-norm of the expected value of 𝓍̃, i.e.,
If 𝓌𝑘 and 𝓋𝑘 are uncorrelated zero-mean white processes, KF is the best linear solution.
For other cases, such as correlated/coloured noise or nonlinear system in (8b), the KF can
In other words, the aim of using a KF is to estimate the state vector, 𝓍, based on our knowledge
of the system model and the availability of the noisy input, 𝓊, and measurements, 𝓏. To this end,
we can use LKF and EKF, as shown in Fig. 2(a) and (b), to estimate the orientation using the
For orientation tracking applications, the rigid body orientation is commonly considered to
be the state vector. Also, (i) the SDI is used to model the time-update equation, i.e., ℱ or 𝒻(∙);
and (ii) the difference between the measured and estimated acceleration and geomagnetic field is
used to model the measurement-update equation, i.e., ℋ or 𝒽(∙). More complex KFs have been
introduced by including 𝒶, 𝑏𝐺 , and/or 𝒹 in the state vector (see Table III for a comparison of
18
2.5.2. Linear Kalman Filters (LKF)
Barshan and Durrant-Whyte [118] used 𝑦𝐺 to build an LKF for estimating the yaw angle of a
planar mobile robot. By inspection, they found an exponential model for 𝑏𝐺 during the warm-up
period and showed that the inclusion of this model reduced the estimation error by a factor of 5.
Qi and Moore [8] proposed an LKF for GPS/MIMU data fusion, where the GPS readouts were
taken as the LKF measurements, and MIMU readouts were taken as the additional information
required for state propagation. Yun et al. [119] and Yean et al. [120] introduced LKFs where
SDI was used to build the time-update equation and the error between 𝑦𝐴 /𝑦𝑀 and the projection
of 𝐺𝑔/ 𝐺𝑚 in MIMU sensor frame, as in (6), along with GNA and GDA were used to construct
the measurement-update equation. Whole and Gebhard [121] extended this approach by
switching between calculating the gradient of 𝑦𝐴 and 𝑦𝑀 under homogenous magnetic condition
Lee and Park [122] used the optimal two-observation quaternion estimation method
proposed in [123] along with a vector selection technique to estimate the orientation from 𝑦𝐴 and
𝑦𝑀 under quasi-static motions in magnetically homogeneous conditions and correct the predicted
orientation by SDI in an LKF structure. Seo et al. [124] proposed the application of the FQA to
calculate the orientation using 𝑦𝐴 and 𝑦𝑀 and correct the SDI output in a standard LKF. They
also suggested a correction scheme using quaternion linear interpolation to combine the LKF and
FQA outputs during static conditions which would eliminate the effect of 𝑏𝐺 . Similarly, Valenti
et al. [74], Guo et al. [125], Feng et al. [40], and Wu et al. [71] developed new algebraic
standard LKF. Some of these algebraic quaternion estimators made the attitude estimation
19
immune to magnetic disturbance while providing higher computational efficiency compared to
FQA.
Kim and Golnaraghi [126] proposed a magnetometer-free LKF in which the angular
velocity used in SDI and its bias were modelled as first-order Markov processes and included in
the state vector. Also, the measurement-update equation was constructed using the error between
𝐺
(i) 𝑦𝐺 and the estimated angular velocity, 𝜔
̂, plus bias and (ii) 𝑦𝐴 and the projection of 𝑔 in
MIMU sensor frame. Also, Ligorio and Sabatini [127] developed a magnetometer-free LKF to
𝐺
estimate the attitude from the estimated gravitational acceleration, 𝑔̂. However, these
magnetometer-free LKFs limit the tracking to attitude only. Thus, other works [128–130]
proposed two separate LKFs, or dual filtering, for estimating gravitational acceleration and
geomagnetic field, to compute the 3D orientation while eliminating the errors in yaw estimation
from those of attitude estimation. For instance, Zhu and Zhou [28] and Zhu et al. [131] used an
𝐺 𝐺
LKF to estimate the gravitational acceleration, 𝑔̂, and geomagnetic filed, 𝑚
̂ , by propagating
the state vector using 𝑦𝐺 in time-update step and then comparing the state vector with 𝑦𝐴 and 𝑦𝑀
during measurement-update. Batista et al. [132,133] extended the previous LKF structure by
including 𝑏𝐺 in the state vector and correcting the 𝑦𝐺 accordingly during the time-update step.
Jurman et al. [134] constructed an adaptive LKF with Euler angles in its state vector. In
this LKF, the state vector was propagated in time using SDI and the Euler angles calculated from
𝑦𝐴 (using (7) for attitude) and 𝑦𝑀 (using tan−1 (𝑦𝑀,𝑦 ⁄𝑦𝑀,𝑥 ) for yaw) were used as the
measurements. Sun et al. [135] included 𝒶 with a first-order Markov process model in the state
vector of their proposed LKF and used the modified acceleration ( 𝐺𝑔 + estimated 𝒶) in (6) to
𝒶, Makni et al. [136,137] proposed an adaptive LKF where the part of ℛ associated with the
20
accelerometer was estimated adaptively in real-time based on the LKFs accelerometer residual.
Also, the proposed LKF was structured with energy consumption considerations in mind such
that the gyroscope was turned-off and re-activated alternately while the 𝒬 was adaptively tuned
to compensate for the errors. Also, Rehbinder and Hu [138] proposed an SFA by switching
between two LKFs similar to the high gain observer previously proposed by the same authors in
[139], i.e., one for tracking under low accelerations and one for high accelerations.
Lefferts et al. [140] investigated the effect of constructing an EKF with different variations of
quaternions as the state vector and concluded that including all elements of the quaternions and
𝑏𝐺 could lead to singularity in calculating 𝒬. Koifman and Merhav [141] proposed the
application of an EKF for real-time attitude estimation using 𝑦𝐺 and 𝑦𝑀 , investigated the effect
of piecewise constant modelling of 𝑏𝐺 on estimation error, and then devised a method for
updating the corresponding elements of the covariance matrix when required. Vaganay and
Aldon [142] proposed an EKF in which the state vector included roll and pitch angles as well as
their drift rates, while the SDI was performed out of EKF and as a part of the measurement-
update.
Marins et al. [143] and Yun and Bachmann [29,144] investigated two approaches for
EKF design using different measurement vectors: (i) using MIMU readouts as the measurement;
and (ii) using the orientation (in quaternion) obtained by applying GNA or QUEST to 𝑦𝐴 and 𝑦𝑀 .
They showed that in the former, the measurement-update equations were highly nonlinear
functions of the state vector while in the latter, linear equations could be used to relate
measurements to the state vector, which made the EKF suitable for real-time applications due to
lower computational complexity. Also, Mazza et al. [145] introduced a similar magnetometer-
21
free EKF but included 𝑏𝐺 in the state vector. Sabatini [51] and Zhang et al. [146] included the
accelerometer and magnetometer bias terms in the state vector of their proposed EKF and used
𝐺 𝐺
their estimated values to correct the projection of 𝑔 and 𝑚 in MIMU sensor frame during
Also, Sabatini [147] developed a similar EKF by substituting the bias terms in the
previous EKF by 𝑏𝐺 and 𝒹. Later, Sabatini [148] extended this work by introducing a variable-
state-dimension EKF. This EKF switched between an EKF where a first-order Markov process
was used to model 𝒹 and a higher-order EKF where a second-order Markov process modelled
the time-rate of change of the magnetic field. This approach could make the propagation of state
vector and calculation of the predicted measurements more realistic, particularly for long-
duration tracking under magnetic disturbances. Following the same concept, Xu et al. [149] used
measurement model between three modes (high 𝑦𝐺 , high 𝑦𝐴 , moderate 𝑦𝐴 ) to achieve robust
While it is common to use the KF structure to estimate the primary states directly, some works
proposed CKF structure, also known as the error-state KF [150,151], to estimate the errors in the
primary states [6,152]. By defining the state vector as an error process, the a priori estimate of
the state vector is always zero, and thus, the state transition, ℱ or 𝒻(∙), is zero, which simplifies
the standard KF formulation. For instance, Foxlin [153], Setoodeh et al. [154], and Gebre-
egziabher et al. [155] proposed CKFs by estimating the errors in gyroscope bias and Euler angles
to correct 𝑦𝐺 and the SDI output before and after the SDI, respectively. Gebre-egziabher et al.
[155] also used the quaternion errors to develop a similar CKF and showed that the quaternion
22
parametrization has advantages such as more efficient gain tuning process and computations as
compared to Euler angle parametrization. To achieve more robust estimates for indoor
orientation tracking, Zhang and Reindl [156] added a magnetic disturbance rejection step to the
Roumeliotis et al. [150] introduced a smoothing filter, comprised of two CKFs, where the
first CKF propagated the attitude estimate forward and then updated it via the absolute
orientation obtained from the accelerometer and sun sensor, while the second CKF propagated
the most recent estimate back in time to lower the uncertainty of the estimation. To estimate the
errors in the attitude of a mobile robot moving on uneven terrains using 𝑦𝐴 and the SDI, Fuke
and Krotkov [157] proposed the application of a CKF. Luinge and Veltink [54] developed an
offset by deriving the relationship between 𝑦𝐴 and the state vector as well as calculating the
angular velocity based on the direction of the 𝑦𝐴 at each two successive time instants. Luinge and
Veltink [59] also used both accelerometer and gyroscope to estimate the orientation error and
gyroscope bias using the CKF structure. Later, the magnetometer was included in the CKF to
prevent drift in the yaw angle, even under magnetic disturbances [52].
Hall et al. [158] proposed a CKF where 𝑦𝐺 was used to propagate the error in orientation
while 𝑦𝐴 and GPS were used to perform the measurement-update. However, as the accelerometer
and GPS had different sampling rates and reference frames, the proposed CKF took advantage of
the incremental update concept [159], where the measurement-update could be performed
independently for each sensor. Kang et al. [160] developed a CKF to fuse a gyroscope and a
vision system where a fading factor, tuned using fuzzy logic, has been applied to the Kalman
gain, 𝒦, to tune the tracking performance of the filter in response to the quality of the vision
23
system data. Kannan [161] proposed a linear CKF where the compensation of the drift in the
estimated orientation was performed via the time-update equation (using the orientation obtained
by TRAID from 𝑦𝐴 and 𝑦𝐺 ) instead of the measurement-update equation. This approach resulted
in a substantial improvement of the response and settling times of the proposed CKF.
Ren and Kazanzides [162,163] proposed a two-layer filtering scheme such that two LKFs in the
𝐺 𝐺
first layer were designed to estimate 𝑔̂ and 𝑚
̂ from 𝑦𝐴 and 𝑦𝑀 , respectively, and an EKF in
the second layer was used to correct the predicted orientation by SDI using the orientation
calculated by VOs from the first layer. Music et al. [164] introduced a two-layer filter where in
the first layer, a standard EKF estimated orientation using SDI and direct Euler angle calculation
from 𝑦𝐴 and 𝑦𝑀 , while the estimated orientation in the second layer (calculated using a Particle
Filter) was used to present extra information to EKF and improve the overall performance.
Sabatelli et al. [165] developed a two-layer filter where the first and second layers used 𝑦𝐴 and
𝑦𝑀 , respectively, to correct the propagated orientation by the SDI. Also, Dang and Nguyen [166]
proposed a two-layer filter where in the first layer, an EKF estimated the third column of DCM
(associated with attitude) and 𝒶 while in the second layer, an EKF with similar structure
estimated the first column of DCM (associated with yaw angle) and 𝒹. Such structures have the
benefit of eliminating the effect of magnetic disturbance from the attitude estimations.
KF performance highly relies on an accurate definition of the system and measurement models,
as well as noise covariance matrices (commonly, 𝒬 and ℛ are defined before the estimation starts
and remain fixed during the tracking process). However, in reality, 𝒬 and ℛ could change over
24
time due to the time-varying nature of the errors, such as orientation tracking during slow (quasi-
static) and fast motions. Therefore, adaptive KFs have been proposed to respond to the changes
For example, in the covariance scaling technique, 𝒬 or ℛ are scaled by the factor 𝒮𝑘 > 1 to
put more weight on the a priori state vector 𝓍 − , or measurements, respectively [168]. 𝒮𝑘 can be
tuned using the magnitude of 𝑦𝐴 , 𝑦𝐺 , and/or 𝑦𝑀 at some predefined levels [51,145], or the
magnitude of the predicted residuals [168]. For example, Suh [55] and Suh et al. [169]
customized the application of the covariance scaling technique for a CKF and EKF, respectively,
such that instead of applying a small 𝒮𝑘 to all elements of 𝒬 or ℛ to guard against 𝒶 (and rely
more on 𝑦𝐺 ), first, the direction of the 𝒶 was estimated, and small weights were supplied only for
the affected axes. Sun et al. [170] included an adaptive scheme in their standard CKF to weight
ℛ based on the error between magnitude and direction of 𝑦𝐴 (𝑦𝑀 ) with its reference value
recorded during static (magnetically undisturbed) condition. Later, this method was extended by
Johnson and Sathyan [171] to include 𝑏𝐺 estimation. Tong et al. [172] proposed the application
of a hidden Markov Model recognizer to identify the measurement disturbances and adjust ℛ of
their proposed CKF adaptively. Also, Jamil et al. [173] used an Artificial Neural Network to
In the innovation-based adaptive estimation technique, the innovation sequence, that is, the
difference between the real measurement and its predicted value by the KF, is used in an
algorithm known as the covariance matching to tune the value of 𝒬, ℛ, or 𝒦 such that the actual
value of the innovation sequence covariance matrix matches its theoretical value [174,175].
Finally, in the multiple-model adaptive estimation technique, a bank of KFs (each using a
different 𝒬 or ℛ) runs in parallel to calculate the a posteriori state estimate 𝓍 + based on the
25
weighted combination of the predicted state by each KF (KF weights could be obtained based on
the probability density function of the innovation sequence covariance matrix) [176].
3 Discussion
Over the past forty years, researchers have developed various SFAs for orientation tracking with
MIMUs. KFs and CFs were used to compensate for the limitations associated with the SDI or
VO algorithms. In both KF and CF approaches, the SDI of 𝑦𝐺 was used to propagate the
orientation in time, and then, the propagated orientation was corrected with the orientation
However, technical differences were observed amongst these SFAs, even amongst those in the
same family. Therefore, we conducted a survey study to (i) review and categorize publications in
this field to help researchers acquire an inclusive understanding of the technical developments;
(ii) aggregate the lessons learned from the previous works to help researchers developing novel
SFAs; and (iii) summarize the main challenges that are needed to be addressed in future. The
first task was done in Section 2 of the current survey, while the second and third tasks were
Numerous works proved the efficiency of SFAs in compensating the limitations associated with
the SDI or VO algorithms for orientation tracking with MIMUs. In this section, we listed the
lessons learned during the literature survey. The general flowchart of an SFA in Fig. 3 includes
features that could improve the accuracy and robustness of the orientation estimation.
26
3.1.1. Gyroscope and strap-down integration (SDI)
SDI of 𝑦𝐺 is the core of almost all CFs and KFs. Therefore, the accuracy of the propagated
orientation in time via SDI is vital to the accuracy and robustness of any SFA, especially when
aiding sensors’ recordings, i.e., 𝑦𝐴 and 𝑦𝑀 , are not reliable, such as tracking under high dynamics
or magnetically disturbed environments. To improve the accuracy of SDI, the followings must be
considered.
(ii) Correct the gyroscope’s static bias and scale factor (block 1 in Fig. 3). For the static bias,
before any data acquisition, the MIMU must be turned on and put at rest for a while
[42]). This will ensure that the gyroscope has reached ambient temperature, and the
estimated static bias will not change significantly due to temperature change. Then, 𝑦𝐺
must be measured when the MIMU is at rest to obtain an estimate of the static bias.
Finally, the estimated static bias must be removed from 𝑦𝐺 recorded during data
acquisition.
(iii) Use stochastic models [52,147] or heuristics [41] to estimate the time-varying 𝑏𝐺 in real-
time (block 2 in Fig. 3). A first-order Markov process, as in (1b), can be used for this
the accuracy and robustness of the orientation tracking, even for short trials where 𝑏𝐺 does
(iv) Use an accurate estimation of exp(∙) for the SDI in (4a) (block 3 in Fig. 3). For example,
using a first-order Taylor series showed inaccurate results under low sampling frequencies
[57].
27
3.1.2. Accelerometer and magnetometer
During long-duration trials, the use of accelerometer and magnetometer are crucial to an SFA, as
they can correct the cumulative error of the SDI. Thus, consider the following for these aiding
sensors.
(i) Evaluate the calibration of these sensors (blocks 4 in Fig. 3). Various procedures have been
and magnetometers [178]. These procedures use ad hoc tests to estimate the scale factors 𝐾𝐴
and 𝐾𝑀 (in (2a) and (3a)), as well as the bias terms of these sensors, which can be later used
to correct 𝑦𝐴 and 𝑦𝑀 .
(ii) Use online stochastic models, e.g., first-order Markov processes as in (2b) and (3b), to
estimate 𝒶 and 𝒹, respectively, and correct 𝑦𝐴 and 𝑦𝑀 (blocks 5 in Fig. 3). This correction is
[51,52,127].
Magnetic disturbance can significantly affect the yaw angle estimation, which in turn may affect
the attitude estimation. Thus, consider the following when formulating an SFA.
(i) Decouple the attitude estimation from 𝑦𝑀 or yaw angle (block 6 in Fig. 3). For example, use
[79,104,130,179,180].
(ii) Use vector selection to detect and reject imperfect measurements (block 7 in Fig. 3). When
the geomagnetic field is disturbed, the field strength and dip angle change significantly.
strength and/or dip angle. In such cases, the propagated orientation by SDI can be declared
28
as the estimated orientation without any correction, see [38] for more details. A similar
Gain tuning plays a significant role in the performance of any SFA; if gains are selected
improperly, the SFA could even diverge. Therefore, consider the following regarding SFA gains.
(i) Use an online gain turning strategy to adaptively put more weight on the most reliable
source of information (block 8 in Fig. 3). For instance, to reduce the effect of correction via
the magnetometer and rely more on the gyroscope, when the magnetic disturbance is
detected using a vector selection, the CF gain or KF measurement covariance matrix should
be adjusted accordingly.
(ii) Decouple the gains associated with gyroscope, accelerometer, and magnetometer (blocks 9
in Fig. 3). Generally, developing a KF with a different gain for each sensor is easy.
However, in most well-recognized CFs, such as [25,26], the same gain is used to weight
accelerometer and magnetometer. In such cases, both sensors will be declared reliable or
unreliable at the same time, while one can be more reliable than the other one.
(iii) Select the filter gains rigorously. Although filter gains found by trial-and-error might result
in acceptable estimations under certain working conditions, the filter performance will not
be guaranteed for other situations. Therefore, filter gains must be evaluated under various
Violation of the assumptions that were used to formulate a filter can degrade its performance.
29
(i) When execution time is not a consideration, use unscented KF instead of EKF. As EKF uses
linearization to propagate the mean and covariance of the state vector, its performance can
(ii) Use robust filtering techniques when adaptive gain tuning is not possible. For example, the
𝐻∞ filter formulates an estimation strategy that bounds the worst-case estimation error by
adaptively weighting the state error covariance matrix [117]. Also, the 𝐻∞ filter assumes
that the process and measurement noises are energy bounded signals, and drops the
Various VO/CF/KF formulations with major or minor differences have been developed for
orientation tracking with MIMUs. Thus, one could argue that technical contribution to this field
is not the primary research challenge at the moment. Instead, we suggest that test platforms [181]
and benchmarking studies are required to identify the most effective SFAs, as well as techniques
that could improve the accuracy and robustness of SFAs. The reason is that each publication
assessed the performance of its proposed SFA using limited test scenarios in terms of motion
duration, pattern, and intensity. Also, other contributing factors, such as the manufacturing
quality of the MIMU or optimal SFA gains, were not considered in assessments. As a result,
contradictory results on the performance of SFAs have been reported in various studies.
Therefore, developing benchmarks where SFAs can be assessed against each other under
similar testing conditions remains the main challenge in the field of orientation tracking with
(i) Various test scenarios are recorded. Short- and long-duration trials are required to evaluate
the effect of 𝑏𝐺 . Static, medium and high dynamic (with static periods in the middle) trials
30
are required to evaluate convergence and tracking ability of the SFAs. Extreme testing
scenarios, such as MIMU impact, are required to reveal the robustness of an SFA.
(ii) The true orientation is recorded synchronously with MIMUs using a reference system such
as the camera motion-capture system. This information is not only useful for performance
(iii) Data of multiple MIMUs, preferably with different manufacturing qualities, are recorded.
Such trials can demonstrate the effectiveness of the SFA correction strategy using the aiding
sensors, specifically for long-duration trials where SDI faces a significant drift.
Using a benchmark with these features, optimal gains for each SFA and MIMU should be
obtained using a portion of the data and by comparing the estimated and reference orientations.
Finding the most effective techniques for improving the performance of the existing
SFAs is the second research challenge. Using a benchmark, the following should be evaluated.
(i) Various adaptive gain tuning strategies must be assessed. While some strategies, such as the
covariance scaling technique, can only be applied to KFs, vector selection for gain turning
(ii) Various stochastic and heuristic models for estimating the unmeasurable time-varying terms
in the MIMU model must be investigated. For example, applying the first- vs second-order
(iii) Uncommon modelling techniques, such as two-layer filters or variable state KF, must be
further evaluated.
31
4 Conclusions
Due to the number of publications in the field, a comprehensive survey of all publications related
to SFAs for orientation tracking with MIMUs is virtually impossible. Nevertheless, in this paper,
the three main strategies, including VO, CF, and KF, were surveyed and categorized, and
references to more than 250 publications are provided. Specifically, for CFs and KFs, details of
the filter structure, compensation strategies for correcting the raw MIMU signals, and gain
tuning strategies are tabulated. Therefore, the current survey can be regarded as a source for
Moreover, we aggregated the lessons learned from the previous works to help researchers
develop effective SFAs. In summary, as shown in Fig. 3, an SFA should include the following
elements: (i) offline calibration of gyroscope, accelerometer, and magnetometer; (ii) online
(iii) proper implementation of the SDI as well as an algorithm for orientation estimation via the
corrected accelerometer and magnetometer readouts; (iv) vector selection technique for
imperfect measurement rejection; and (v) adaptive gain tuning for intelligent selection of SFA
gains in real-time. Finally, the accuracy and reliability of the newly developed SFAs must be
evaluated against others using a publicly available data set. This could help researchers identify
the strengths and weaknesses of each SFA in practice as well as gaps to be addressed.
Declaration of interest
None.
32
Funding sources
This work was financially supported by Vanier Canada Graduate Scholarship, Alberta Innovates
Graphical abstract
33
References
[1] J. Nilsson, I. Skog, Inertial Sensor Arrays – A Literature Review, 2016 Eur. Navig. Conf. (2016) 1–10.
[2] N. Ahmad, R. Ariffin, R. Ghazilla, N.M. Khairi, Reviews on Various Inertial Measurement Unit (IMU) Sensor Applications, Int. J.
Signal Process. Syst. 1 (2013) 256–262.
[3] M. Cornacchia, K. Ozcan, Y. Zheng, S. Velipasalar, Survey on Activity Detection and Classification Using Wearable Sensors, IEEE
Sens. J. 17 (2017) 386–403.
[4] R. Harle, A survey of indoor inertial positioning systems for pedestrians, IEEE Commun. Surv. Tutorials. 15 (2013) 1281–1293.
[5] R. Bhardwaj, N. Kumar, V. Kumar, Errors in micro-electro-mechanical systems inertial measurement and a review on present practices
of error modelling, Trans. Inst. Meas. Control. 40 (2018) 2843–2854.
[6] N. Trawny, S.I. Roumeliotis, Indirect Kalman Filter for 3D Attitude Estimation, 2005.
[7] N.H.Q. Phuong, H.-J. Kang, Y.-S. Suh, Y.-S. Ro, A DCM Based Orientation Estimation Algorithm with an Inertial Measurement Unit
and a Magnetic Compass, J. Univers. Comput. Sci. 15 (2009) 859–876.
[8] H. Qi, J.B. Moore, Direct Kalman filtering approach for GPS/INS integration, IEEE Trans. Aerosp. Electron. Syst. 38 (2002) 687–693.
[9] G. Schall, D. Wagner, G. Reitmayr, E. Taichmann, M. Wieser, D. Schmalstieg, B. Hofmann-Wellenhof, Global pose estimation using
multi-sensor fusion for outdoor augmented reality, in: 2009 8th IEEE Int. Symp. Mix. Augment. Real., 2009: pp. 153–162.
[10] A. Filippeschi, N. Schmitz, M. Miezal, G. Bleser, E. Ruffaldi, D. Stricker, Survey of Motion Tracking Methods Based on Inertial
Sensors: A Focus on Upper Limb Human Motion, Sensors. 17 (2017).
[11] D. Choukroun, H. Weiss, I.Y. Bar-Itzhack, Y. Oshman, Direction Cosine Matrix Estimation from Vector Observations using a Matrix
Kalman Filter, IEEE Trans. Aerosp. Electron. Syst. 46 (2010) 61–79.
[12] M.D. Shuster, Constraint in Attitude Estimation Part I: Constrained Estimation, J. Astronaut. Sci. 51 (2003) 51–74.
[13] I.Y. Bar-Itzhack, J. Deutschmann, F.L. Markley, Quaternion normalization in additive EKF for spacecraft attitude determination, in:
Navig. Control Conf., 1991.
[14] J. Hu, K. Sun, A Robust Orientation Estimation Algorithm Using MARG Sensors, IEEE Trans. Instrum. Meas. 64 (2015) 815–822.
[15] H. Hyyti, A. Visala, A DCM Based Attitude Estimation Algorithm for Low-Cost MEMS IMUs, Int. J. Navig. Obs. Hindawi. (2015).
[16] S. Patel, H. Park, P. Bonato, L. Chan, M. Rodgers, A review of wearable sensors and systems with application in rehabilitation, J.
Neuroeng. Rehabil. 9 (2012) 1–17.
[17] R. Gravina, P. \Alinia, H. Ghasemzadeh, G. Fortino, Multi-sensor fusion in body sensor networks: State-of-the-art and research
challenges, Inf. Fusion. 35 (2017) 68–80.
[18] M. Iosa, P. Picerno, S. Paolucci, G. Morone, Wearable inertial sensors for human movement analysis, Expert Rev. Med. Devices. 13
(2016) 641–659.
[19] G. Vannozzi, E. Bergamini, S. Fantozzi, G. Vannozzi, Trends Supporting the In-Field Use of Wearable Inertial Sensors for Sport
Performance Evaluation: A Systematic Review, Sensors. 18 (2018).
[20] X. Guo, N. Ansari, F. Hu, Y. Shao, N.R. Elikplim, L. Li, A Survey on Fusion-based Indoor Positioning, IEEE Commun. Surv.
Tutorials. 22 (2020) 566–594.
[21] A.M. Hasan, K. Samsudin, A.R. Ramli, R.S. Azmir, A Review of Navigation Systems (Integration and Algorithms), Aust. J. Basic
Appl. Sci. (2009) 943–959.
[22] Z. Yang, C. Wu, Z. Zhou, X. Zhang, X. Wang, Y. Liu, Mobility increases localizability: A survey on wireless indoor localization using
inertial sensors, ACM Comput. Surv. 47 (2015) 1–34.
[23] J.L. Crassidis, F.L. Markley, Y. Cheng, A Survey of Nonlinear Attitude Estimation Methods, J. Guid. Control. Dyn. 30 (2007).
[24] A. Cavallo, A. Cirillo, P. Cirillo, G. De Maria, P. Falco, C. Natale, S. Pirozzi, Experimental comparison of sensor fusion algorithms for
attitude estimation, IFAC, 2014.
[25] S.O.H. Madgwick, A.J.L. Harrison, R. Vaidyanathan, Estimation of IMU and MARG orientation using a gradient descent algorithm, in:
2011 IEEE Int. Conf. Rehabil. Robot., Zurich, 2011: pp. 1–7.
[26] R. Mahony, T. Hamel, J.-M. Pflimlin, Non-linear Complementary Filters on the Special Orthogonal Group, IEEE Trans. Automat.
Contr. 53 (2008) 1203–1218.
[27] M. Gietzelt, K.H. Wolf, M. Marschollek, R. Haux, Performance comparison of accelerometer calibration algorithms based on 3D-
ellipsoid fitting methods, Comput. Methods Programs Biomed. 111 (2013) 62–71.
[28] R. Zhu, Z. Zhou, A real-time articulated human motion tracking using tri-axis inertial/magnetic sensors package, IEEE Trans. Neural
Syst. Rehabil. 12 (2004) 295–302.
[29] X. Yun, E.R. Bachmann, Design, implementation and experimental results of a quaternion-based Kalman filter for human body motion
tracking, IEEE Trans. Robot. 22 (2006) 1216–1227.
[30] A.D. Young, Use of body model constraints to improve accuracy of inertial motion capture, 2010 Int. Conf. Body Sens. Networks, BSN
2010. (2010) 180–186.
[31] G. Bleser, G. Hendeby, M. Miezal, Using egocentric vision to achieve robust inertial body tracking under magnetic disturbances, in:
Proc. 2011 10th IEEE Int. Symp. Mix. Augment. Real., 2011: pp. 103–109.
[32] L. Peppoloni, A. Filippeschi, E. Ruffaldi, C.A. Avizzano, A novel 7 degrees of freedom model for upper limb kinematic reconstruction
based on wearable sensors, in: Proc. 2013 IEEE 11th Int. Symp. Intell. Syst. Informatics, 2013: pp. 105–110.
34
[33] A.D. Young, Comparison of orientation filter algorithms for realtime wireless inertial posture tracking, Proc. - 2009 6th Int. Work.
Wearable Implant. Body Sens. Networks, BSN 2009. (2009) 59–64.
[34] M.D. Shuster, S.D. Oh, Three-axis attitude determination from vector observations, J. Guid. Control. Dyn. 4 (1981) 70–77.
[35] G. Lerner, Spacecraft Attitude Determination and Control, in: Spacecr. Attitude Determ. Control, Kluwer Academic, 1978: pp. 420–
428.
[36] X. Yun, E. Bachmann, R. McGhee, A simplified quaternion based algorithm for orientation estimation from Earth gravity and magnetic
field measurements, IEEE Trans. Instrum. Meas. 57 (2008) 638–650.
[37] A.M. Sabatini, Estimating three-dimensional orientation of human body parts by inertial/magnetic sensing, Sensors. 11 (2011) 1489–
1525.
[38] B. Fan, Q. Li, T. Liu, How magnetic disturbance influences the attitude and heading in magnetic and inertial sensor-based orientation
estimation, Sensors (Switzerland). 18 (2018).
[39] G. Ligorio, A.M. Sabatini, Dealing with magnetic disturbances in human motion capture: A survey of techniques, Micromachines. 7
(2016).
[40] K. Feng, J. Li, X. Zhang, C. Shen, Y. Bi, T. Zheng, J. Liu, A new quaternion-based kalman filter for real-time attitude estimation using
the two-step geometrically-intuitive correction algorithm, Sensors. 17 (2017).
[41] S. Madgwick, AHRS Algorithms and Calibration Solutions to Facilitate New Applications Using Low-Cost MEMS, University of
Bristol, 2014.
[42] E. Bergamini, G. Ligorio, A. Summa, G. Vannozzi, A. Cappozzo, A.M. Sabatini, Estimating Orientation Using Magnetic and Inertial
Sensors and Different Sensor Fusion Approaches: Accuracy Assessment in Manual and Locomotion Tasks, Sensors. (2014) 18625–
18649.
[43] M. Caruso, A.M. Sabatini, M. Knaflitz, M. Gazzoni, U. Della Croce, A. Cereatti, Accuracy of the Orientation Estimate Obtained Using
Four Sensor Fusion Filters Applied to Recordings of Magneto-Inertial Sensors Moving at Three Rotation Rates, in: 2019 41st Annu.
Int. Conf. IEEE Eng. Med. Biol. Soc., 2019.
[44] Open Source Sensor Fusion, (n.d.). https://github.com/memsindustrygroup/Open-Source-Sensor-Fusion/tree/master/docs.
[45] T. Michel, H. Fourati, P. Genev, N. Laya, A Comparative Analysis of Attitude Estimation for Pedestrian Navigation with Smartphones,
in: Nternational Conf. Indoor Position. Indoor Navig., 2015.
[46] V. Renaudin, C. Combettes, Magnetic, Acceleration Fields and Gyroscope Quaternion (MAGYQ)-Based Attitude Estimation with
Smartphone Sensors for Indoor Pedestrian Navigation, Sensors. 14 (2014) 22864–22890.
[47] D. Choukroun, I.Y. Bar-Itzhack, Y. Oshman, Novel quaternion Kalman filter, EEE Trans. Aerosp. Electron. Syst. 14 (2004) 20008–
20024.
[48] H. Fourati, Heterogeneous Data Fusion Algorithm for Pedestrian Navigation via Foot-Mounted Inertial Measurement Unit and
Complementary Filter, IEEE Trans. Instrum. Meas. 64 (2015) 221–229.
[49] P. Martin, E. Salaun, Design and implementation of a low-cost observer-based attitude and heading reference system, Control Eng.
Pract. 18 (2010) 712–722.
[50] M. Carratu, S. Dello Iacono, M. Long Hoang, A. Pietrosanto, Energy characterization of attitude algorithms, in: IEEE Int. Conf. Ind.
Informatics, 2019: pp. 1585–1590.
[51] Angelo M. Sabatini, Quaternion-based extended Kalman filter for determining orientation by inertial and magnetic sensing, IEEE
Trans. Biomed. Eng. 53 (2006) 1346–1356.
[52] D. Roetenberg, H.J. Luinge, C.T.M. Baten, P.H. Veltink, Compensation of magnetic disturbances improves inertial and magnetic
sensing of human body segment orientation, IEEE Trans. Neural Syst. Rehabil. Eng. 13 (2005) 395–405.
[53] F. Ferraris, U. Grimaldi, M. Parvis, Procedure for effortless in-field calibration of three-axis rate gyros and accelerometers, Sensors
Mater. 7 (1995) 311–330.
[54] H.J. Luinge, P.H. Veltink, Inclination Measurement of Human Movement Using a 3-D Accelerometer with Autocalibration, IEEE
Trans. Neural Syst. Rehabil. Eng. 12 (2004) 112–121.
[55] Y.S. Suh, Orientation Estimation Using a Quaternion-Based Indirect Kalman Filter With Adaptive Estimation of External Acceleration,
IEEE Trans. Instrum. Meas. 59 (2010) 3296–3305.
[56] J.C.K. Chou, Quaternion Kinematic and Dynamic Differential Equations, IEEE Trans. Robot. Autom. 8 (1992) 53–64.
[57] J.K. Lee, M.J. Choi, Effect of strapdown integration order and sampling rate on IMU-Based attitude estimation accuracy, Sensors
(Switzerland). 18 (2018).
[58] Y. Hao, Z. Xiong, W. Gao, L. Li, Study of strapdown inertial navigation integration algorithms, in: Proc. 2004 Int. Conf. Intell.
Mechatronics Autom., 2004: pp. 751–754. https://doi.org/10.1109/icima.2004.1384296.
[59] H.J. Luinge, P.H. Veltink, Measuring orientation of human body segments using miniature gyroscopes and accelerometers, Med. Biol.
Eng. Comput. 43 (2005) 273–282.
[60] I. Pasciuto, G. Ligorio, E. Bergamini, G. Vannozzi, A.M. Sabatini, A. Cappozzo, How angular velocity features and different
gyroscope noise types interact and determine orientation estimation accuracy, Sensors (Switzerland). 15 (2015) 23983–24001.
[61] G. Wahba, A Least Squares Estimate of Spacecraft Attitude, SIAM Rev. 7 (1965) 409.
[62] F.L. Markley, D. Mortari, How to estimate attitude from vector observations, (1999).
[63] I.Y. Bar-Itzhack, R.R. Harman, Optimized TRIAD Algorithm for Attitude Determination, J. Guid. Control. Dyn. 20 (1997) 208–211.
[64] M.D. Shuster, S.D. Oh, Three-axis attitude determination from vector observations, J. Guid. Control. Dyn. 4 (1981) 70–77.
[65] P.B. Davenport, A vector approach to the algebra of rotations with applications, NASA, Tech. Rep. (1968).
35
[66] F.L. Markley, Attitude determination from vector observations: A fast optimal matrix algorithm, J. Astronaut. Sci. 41 (1993) 261–280.
[67] F.L. Markley, Attitude determination using vector observations and the singular value decomposition, J. Astronaut. Sci. 36 (1988) 245–
258.
[68] M.D. Shuster, Filter QUEST or REQUEST, J. Guid. Control. Dyn. 32 (2009) 643–645.
[69] I. Y. Bar-Itzhack, REQUEST—A recursive QUEST algorithm for sequential attitude determination, J. Guid. Control. Dyn. 19 (1996)
1034–1038.
[70] J. Wu, Z. Zhou, B. Gao, R. Li, Y. Cheng, H. Fourati, Fast Linear Quaternion Attitude Estimator Using Vector Observations, IEEE
Trans. Autom. Sci. Eng. 15 (2018) 307–319.
[71] J. Wu, Z. Zhou, H. Fourati, M. Liu, Recursive linear continuous quaternion attitude estimator from vector observations, IET Radar,
Sonar Navig. 12 (2018) 1196–1207.
[72] D. Gebre-Egziabher, G.H. Elkaim, J. Powell, B.W. Parkinson, A gyro-free quaternion-based attitude determination system suitable for
implementation using low cost sensors, in: 2000 IEEE Position Locat. Navig. Symp., San Diego, CA, USA, 2000: pp. 185–192.
[73] R.G. Valenti, I. Dryanovski, J. Xiao, Keeping a good attitude: A quaternion-based orientation filter for IMUs and MARGs, Sensors. 15
(2015) 19302–19330.
[74] R.G. Valenti, I. Dryanovski, J. Xiao, A linear Kalman filter for MARG orientation estimation using the algebraic quaternion algorithm,
IEEE Trans. Instrum. Meas. 65 (2016) 467–481.
[75] J. Calusdian, X. Yun, E. Bachmann, Adaptive-gain complementary filter of inertial and magnetic data for orientation estimation, Proc. -
IEEE Int. Conf. Robot. Autom. (2011) 1916–1922.
[76] E.R. Bachmann, I. Duman, U.Y. Usta, R.B. McGhee, X.P. Yun, M.J. Zyda, Orientation tracking for humans and robots using inertial
sensors, in: Proc. 1999 IEEE Int. Symp. Comput. Intell. Robot. Autom. CIRA’99 (Cat. No.99EX375), 1999: pp. 187–194.
[77] J.K. Lee, E.J. Park, A fast quaternion-based orientation optimizer via virtual rotation for human motion tracking, IEEE Trans. Biomed.
Eng. 56 (2009) 1574–1582.
[78] H. Fourati, N. Manamanni, L. Afilal, Y. Handrich, A Nonlinear Filtering Approach for the Attitude and Dynamic Body Acceleration
Estimation Based on Inertial and Magnetic Sensors: Bio-Logging Application, IEEE Sens. J. 11 (2011) 233–244.
[79] H. Fourati, N. Manamanni, L. Afilal, Y. Handrich, Complementary observer for body segments motion capturing by inertial and
magnetic sensors, IEEE/ASME Trans. Mechatronics. 19 (2014) 149–157.
[80] Y. Tian, H.X. Wei, J.D. Tan, An adaptive-gain Complementary Filter for real-time human motion tracking with MARG sensors in free-
living environments, IEEE Trans. Neural Syst. Rehabil. Eng. 21 (2013) 254–264.
[81] M.B. Del Rosario, N.H. Lovell, S.J. Redmond, Quaternion-Based Complementary Filter for Attitude Determination of a Smartphone,
IEEE Sens. J. 16 (2016) 6008–6017.
[82] B. Fan, Q. Li, C. Wang, T. Liu, An adaptive orientation estimation method for magnetic and inertial sensors in the presence of magnetic
disturbances, Sensors (Switzerland). 17 (2017).
[83] J. Wu, Z. Zhou, H. Fourati, R. Li, M. Liu, Generalized Linear Quaternion Complementary Filter for Attitude Estimation From
Multisensor Observations: An Optimization Approach, IEEE Trans. Autom. Sci. Eng. 16 (2019) 1330–1343.
[84] S. Ghasemi-Moghadam, M.R. Homaeinezhad, Attitude determination by combining arrays of MEMS accelerometers, gyros, and
magnetometers via quaternion-based complementary filter, Int. J. Numer. Model. Electron. Networks, Devices Fields. 31 (2018) 1–24.
[85] C. Yi, J. Ma, H. Guo, J. Han, H. Gao, F. Jiang, C. Yang, Estimating three-dimensional body orientation based on an improved
complementary filter for human motion tracking, Sensors. 18 (2018) 1–19.
[86] Y. Guan, X. Song, Sensor Fusion of Gyroscope and Accelerometer for Low-Cost Attitude Determination System, in: Proc. 2018
Chinese Autom. Congr. CAC 2018, IEEE, 2018: pp. 1068–1072.
[87] R. Zhu, Z. Zhou, A small low-cost hybrid orientation system and its error analysis, IEEE Sens. J. 9 (2009) 223–230.
[88] P. Daponte, L. De Vito, S. Rapuano, M. Riccio, F. Picariello, Compensating magnetic disturbances on MARG units by means of a low
complexity data fusion algorithm, in: Proc. 2015 IEEE Int. Symp. Med. Meas. Appl. MeMeA 2015, IEEE, 2015: pp. 157–162.
[89] J. Cockcroft, J.H. Muller, C. Scheffer, A complementary filter for tracking bicycle crank angles using inertial sensors, kinematic
constraints, and vertical acceleration updates, IEEE Sens. J. 15 (2015) 4218–4225.
[90] M. Kok, T.B. Schön, A Fast and Robust Algorithm for Orientation Estimation Using Inertial Sensors, IEEE Signal Process. Lett. 26
(2019) 1673–1677.
[91] Y.C. Lai, S.S. Jan, F. Bin Hsiao, Development of a low-cost attitude and heading reference system using a three-axis rotating platform,
Sensors. 10 (2010) 2472–2491.
[92] R. Chang, X. Mu, X. Shen, Attitude estimation with complementary filter, Appl. Mech. Mater. 44–47 (2011) 3781–3784.
[93] T.S. Yoo, S.K. Hong, H.M. Yoon, S. Park, Gain-scheduled complementary filter design for a MEMS based attitude and heading
reference system, Sensors. 11 (2011) 3816–3830.
[94] M. Euston, P. Coote, R. Mahony, J. Kim, T. Hamel, A complementary filter for attitude estimation of a fixed-wing UAV, in:
Proceeding 2008 IEEE Int. Conf. Intell. Robot. Syst., 2008: pp. 340–345.
[95] X. Wen, C. Liu, Z. Huang, S. Su, X. Guo, Z. Zuo, H. Qu, A first-order differential data processing method for accuracy improvement of
complementary filtering in micro-UAV attitude estimation, Sensors (Switzerland). 19 (2019).
[96] A. Khosravian, M. Namvar, Rigid body attitude control using a single vector measurement and gyro, IEEE Trans. Automat. Contr. 57
(2012) 1273–1279.
[97] Y. Wang, E. Chang-Siu, M. Brown, M. Tomizuka, M.I. Almajed, B.N. Alsuwaidan, Three dimensional attitude estimation via the triad
algorithm and a time-varying complementary filter, in: 5th Annu. Dyn. Syst. Control Conf. Jt. with JSME 2012 11th Motion Vib.
36
Conf., 2012: pp. 157–165.
[98] R.B. Widodo, H. Edayoshi, C. Wada, Complementary filter for orientation estimation: Adaptive gain based on dynamic acceleration
and its change, in: 2014 Jt. 7th Int. Conf. Soft Comput. Intell. Syst. SCIS 2014 15th Int. Symp. Adv. Intell. Syst. ISIS 2014, IEEE,
2014: pp. 906–909.
[99] H.F. Grip, T.I. Fossen, T.A. Johansen, A. Saberi, Attitude estimation based on time-varying reference vectors with biased gyro and
vector measurements, IEEE Trans. Automat. Contr. 44 (2011) 8497–8502.
[100] K.J. Jensen, Generalized nonlinear complementary attitude filter, J. Guid. Control. Dyn. 34 (2011) 1588–1592.
[101] O. De Silva, G.K.I. Mann, R.G. Gosine, The Right Invariant Nonlinear Complementary Filter for Low Cost Attitude and Heading
Estimation of Platforms, J. Dyn. Syst. Meas. Control. Trans. ASME. 140 (2018).
[102] M.D. Hua, G. Ducard, T. Hamel, R. Mahony, K. Rudin, Implementation of a nonlinear attitude estimator for aerial robotic vehicles,
IEEE Trans. Control Syst. Technol. 22 (2014) 201–213.
[103] B. Fan, Q. Li, T. Liu, Improving the accuracy of wearable sensor orientation using a two-step complementary filter with state machine-
based adaptive strategy, Meas. Sci. Technol. 29 (2018).
[104] J. Wu, Z. Zhou, J. Chen, H. Fourati, R. Li, Fast Complementary Filter for Attitude Estimation Using Low-Cost MARG Sensors, IEEE
Sens. J. 16 (2016) 6997–7007.
[105] P. Marantos, Y. Koveos, K.J. Kyriakopoulos, UAV State Estimation Using Adaptive Complementary Filters, IEEE Trans. Control Syst.
Technol. 24 (2016) 1214–1226.
[106] Q.Q. Yang, L.L. Sun, L. Yang, A Fast Adaptive-Gain Complementary Filter Algorithm for Attitude Estimation of an Unmanned Aerial
Vehicle, J. Navig. 71 (2018) 1478–1491.
[107] J. Chang, J. Cieslak, A. Zolghadri, J. Dávila, J. Zhou, Design of sliding mode observers for quadrotor pitch/roll angle estimation via
IMU measurements, in: 2015 Work. Res. Educ. Dev. Unmanned Aer. Syst. RED-UAS 2015, 2016: pp. 393–400.
[108] J. Chang, J. Cieslak, J. Dávila, J. Zhou, A. Zolghadri, Z. Guo, A Two-Step Approach for an Enhanced Quadrotor Attitude Estimation
via IMU Data, IEEE Trans. Control Syst. Technol. 26 (2018) 1140–1148.
[109] A. El Hadri, A. Benallegue, Sliding mode observer to estimate both the attitude and the gyro-bias by using low-cost sensors, in: 2009
IEEE/RSJ Int. Conf. Intell. Robot. Syst., 2009.
[110] J.F. Vasconcelos, B. Cardeira, C. Silvestre, P. Oliveira, P. Batista, Discrete-Time Complementary Filters for Attitude and Position
Estimation: Design, Analysis and Experimental Validation, IEEE Trans. Control Syst. Technol. 19 (2011) 181–198.
https://doi.org/10.1016/j.ifacol.2019.11.274.
[111] A. Tayebi, S. McGilvray, A. Roberts, M. Moallem, Attitude estimation and stabilization of a rigid body using low-cost sensors, in:
Proc. IEEE Conf. Decis. Control, 2007: pp. 6424–6429.
[112] H. Sheng, T. Zhang, MEMS-based low-cost strap-down AHRS research, Meas. J. Int. Meas. Confed. 59 (2015) 63–72.
[113] Z. Wu, Z. Sun, W. Zhang, Q. Chen, A Novel Approach for Attitude Estimation Based on MEMS Inertial Sensors Using Nonlinear
Complementary Filters, IEEE Sens. J. 16 (2016) 3856–3864.
[114] A.A. Neto, D.G. Macharet, V.C. da Silva Campos, M.F.M. Campos, Adaptive complementary filtering algorithm for mobile robot
localization, J. Brazilian Comput. Soc. 15 (2009) 19–31.
[115] R. Kottath, P. Narkhede, V. Kumar, V. Karar, S. Poddar, Multiple Model Adaptive Complementary Filter for Attitude Estimation,
Aerosp. Sci. Technol. 69 (2017) 574–581.
[116] S. Poddar, P. Narkhede, V. Kumar, A. Kumar, PSO Aided Adaptive Complementary Filter for Attitude Estimation, J. Intell. Robot.
Syst. Theory Appl. 87 (2017) 531–543.
[117] Dan Simon, Optimal State Estimation, Kalman, H-infinity, and Nonlinear Approaches, John Wiley & Sons, Inc., 2006.
[118] B. Barshan, H.F. Durrant-whyte, Evaluation of a Solid-state Gyroscope for Robotics Applications, IEEE Trans. Instrum. Meas. 44
(1995) 61–67.
[119] X. Yun, M. Lizarraga, E.R. Bachmann, R.B. McGhee, An Improved Quaternion-Based Kalman Filter for Real-Time Tracking of Rigid
Body Orientation, in: Proc. 2003 IEEWRSJ Inll. Conf. Intell. Robot. Syst., 2003: pp. 1074–1079.
[120] S. Yean, B.S. Lee, C.K. Yeo, C.H. Vun, H.L. Oh, Smartphone Orientation Estimation Algorithm Combining Kalman Filter With
Gradient Descent, IEEE J. Biomed. Heal. Informatics. 22 (2018) 1421–1433.
[121] L. Wöhle, M. Gebhard, A Robust Quaternion based Kalman Filter Using a Gradient Descent Algorithm for Orientation Measurement,
in: Proc. 2018 IEEE Int. Instrum. Meas. Technol. Conf., 2018.
[122] J.K. Lee, E.J. Park, Minimum-Order Kalman Filter With Vector Selector for Accurate Estimation of Human Body Orientation, IEEE
Trans. Robot. 25 (2009) 1196–1201.
[123] F.L. Markley, Fast quaternion attitude estimation from two vector measurements, J. Guid. Control. Dyn. 25 (2002) 411–414.
[124] E. Seo, C. Park, D. Kim, J. Song, Quaternion-Based Orientation Estimation with Static Error Reduction, in: Proc. 2011 IEEE Int. Conf.
Mechatronics Autom., IEEE, 2011: pp. 1624–1629.
[125] S. Guo, J. Wu, Z. Wang, J. Qian, Novel MARG-sensor orientation estimation algorithm using Fast Kalman Filter, J. Sensors. (2017) 1–
12.
[126] A. Kim, M.F. Golnaraghi, A quaternion-based orientation estimation algorithm using an inertial measurement unit, in: Rec. - IEEE
PLANS, Position Locat. Navig. Symp., 2004: pp. 268–272.
[127] G. Ligorio, A.M. Sabatini, A novel kalman filter for human motion tracking with an inertial-based dynamic inclinometer, IEEE Trans.
Biomed. Eng. 62 (2015) 2033–2043.
[128] J.K. Lee, A Parallel Attitude-Heading Kalman Filter Without State-Augmentation of Model-Based Disturbance Components, IEEE
37
Trans. Instrum. Meas. 68 (2019) 2668–2670.
[129] G. Ligorio, A.M. Sabatini, A Linear Kalman Filtering-based Approach for 3D Orientation Estimation from Magnetic/Inertial Sensors,
in: Proc. 2015 IEEE Int. Conf. Multisens. Fusion Integr. Intell. Syst., IEEE, 2015: pp. 77–82.
[130] J.K. Lee, M.J. Choi, A Sequential Orientation Kalman Filter for AHRS Limiting Effects of Magnetic Disturbance to Heading
Estimation, J. Electr. Eng. Technol. 12 (2017) 1921–1928.
[131] R. Zhu, D. Sun, Z. Zhou, D. Wang, A linear fusion algorithm for attitude determination using low cost MEMS-based sensors,
Measurement. 40 (2007) 322–328.
[132] P. Batista, C. Silvestre, P. Oliveira, Sensor-based Complementary Globally Asymptotically Stable Filters for Attitude Estimation, in: Jt.
48th IEEE Conf. Decis. Control 28th Chinese Control Conf., 2009: pp. 7563–7568.
[133] P. Batista, C. Silvestre, P. Oliveira, S. Member, Sensor-Based Globally Asymptotically Stable Filters for Attitude Estimation: Analysis,
Design, and Performance Evaluation, IEEE Trans. Automat. Contr. 57 (2012) 2095–2100.
[134] D. Jurman, M. Jankovec, R. Kamnik, M. Topic, Calibration and data fusion solution for the miniature attitude and heading reference
system, Sensors Actuators A. 138 (2007) 411–420.
[135] S. Sun, X. Meng, L. Ji, Z. Huang, J. Wu, Adaptive Kalman Filter for Orientation Estimation in Micro-sensor Motion Capture, in:
Proceeding 14th Int. Conf. Inf. Fusion, 2011.
[136] A. Makni, H. Fourati, A.Y. Kibangou, Adaptive Kalman Filter for MEMS-IMU based Attitude Estimation under External Acceleration
and Parsimonious use of Gyroscopes, in: Proc. 2014 Eur. Control Conf., EUCA, 2014: pp. 1379–1384.
[137] A. Makni, H. Fourati, A.Y. Kibangou, A. Makni, H. Fourati, A.Y. Kibangou, E.A. Attitude, A. Makni, H. Fourati, A.Y. Kibangou,
Energy-aware Adaptive Attitude Estimation Under External Acceleration for Pedestrian Navigation, IEEE Trans. Instrum. Meas. 21
(2016) 1366–1375.
[138] H. Rehbinder, X. Hu, Drift-free attitude estimation for accelerated rigid bodies, Automatica. 40 (2004) 653–659.
[139] H. Rehbinder, X. Hu, Nonlinear pitch and roll estimation for walking robots, in: Proc. IEEE Int. Conf. Robot. Autom., 2000: pp. 2617–
2622.
[140] E.J. Lefferts, F.L. Markley, M.D. Shuster, Kalman filtering for spacecraft attitude estimation, J. Guid. Control. Dyn. 4 (1982) 417–429.
[141] M. Koifman, S.J. Merhav, Autonomously aided strapdown attitude reference system, J. Guid. Control. Dyn. 14 (1991) 1164–1172.
[142] J. Vaganay, M.J. Aldon, Attitude estimation for a vehicle using inertial sensors, Control Eng. Pract. 2 (1994) 281–287.
[143] J.L. Marins, X. Yun, E.R. Bachmann, R.B. Mcghee, M.J. Zyda, An Extended Kalman Filter for Quaternion-Based Orientation
Estimation Using, in: Proceeding 2001 IEEE/RSJ Int. Conf. Intell. Robot. Syst., 2001: pp. 2003–2011.
[144] X. Yun, C. Aparicio, E.R. Bachmann, R.B. McGhee, Implementation and Experimental Results of a Quaternion-Based Kalman Filter
for Human Body Motion Tracking, in: Proc. 2005 IEEE Int. Conf. Robot. Autom., 2005: pp. 317–322.
[145] C. Mazzà, M. Donati, J. McCamley, P. Picerno, A. Cappozzo, An optimized Kalman filter for the estimate of trunk orientation from
inertial sensors data during treadmill walking, Gait Posture. 35 (2012) 138–142.
[146] S. Zhang, K. Xiao, Q. Zhang, H. Zhang, Y. Liu, Improved Extended Kalman Fusion Method For Upper Limb Motion Estimation With
Inertial Sensors, in: Proc. Fourth Int. Conf. Intell. Control Inf. Process., 2013: pp. 587–593.
[147] A.M. Sabatini, Kalman-filter-based orientation determination using inertial/magnetic sensors: Observability analysis and performance
evaluation, Sensors. 11 (2011) 9182–9206.
[148] A.M. Sabatini, Variable-state-dimension Kalman-based filter for orientation determination using inertial and magnetic sensors, Sensors.
12 (2012) 8491–8506.
[149] Y. Xu, J. Guo, Y. Guan, EKF based Multiple-Mode Attitude Estimator for Quadrotor Using Inertial Measurement Unit, in: Proc. 36th
Chinese Control Conf., 2017: pp. 6191–6198.
[150] S.I. Roumeliotis, G.S. Sukhatme, G.A. Bekey, Smoother based 3D attitude estimation for mobile robot localization, Proc. IEEE Int.
Conf. Robot. Autom. 3 (1999) 1979–1986.
[151] M. Ahmadi, A. Khayatian, P. Karimaghaee, Orientation Estimation by Error-State Extended Kalman Filter in Quaternion Vector Space,
in: SICE Annu. Conf. 2007, 2007: pp. 60–67.
[152] R.G. Brown, P.Y.C. Hwang, Introduction to Random Signals and Applied Kalman Filtering, 2nd Editio, John Wiley & Sons, Inc., New
York, 1992.
[153] E. Foxlin, Inertial head-tracker sensor fusion by a complementary separate-bias Kalman filter, in: Proc. IEEE 1996 Virtual Real. Annu.
Int. Symp., 1996: pp. 185–194.
[154] P. Setoodeh, A. Khayatian, E. Farjah, Attitude Estimation By Separate-Bias Kalman Filter-Based Data Fusion, J. Navig. 57 (2004)
261–273.
[155] D. Gebre-egziabher, R.C. Hayward, J.D. Powell, Design of Multi-Sensor Attitude Determination Systems, IEEE Trans. Aerosp.
Electron. Syst. 40 (2004) 627–649.
[156] R. Zhang, L.M. Reindl, Pedestrian Motion based Inertial Sensor Fusion by a Modified Complementary Separate-bias Kalman Filter, in:
Proc. 2011 IEEE Sensors Appl. Symp., IEEE, 2011.
[157] Y. Fuke, E. Krotkov, Dead Reckoning for a Lunar Rover on Uneven Terrain, in: Proc. 1996 IEEE Inertnational Conf. Robot. Autom.,
1996: pp. 411–416.
[158] J.K. Hall, N.B. Knoebel, T.W. McLain, Quaternion Attitude Estimation for Miniature Air Vehicles Using a Multiplicative Extended
Kalman Filter, in: 2008 IEEE/ION Position, Locat. Navig. Symp., 2008: pp. 1230–1237.
[159] G.F. Welch, SCAAT: Incremental Tracking with Incomplete Information, University of North Carolina at Chapel Hill, 1996.
[160] C.H. Kang, C.G. Park, J.W. Song, An Adaptive Complementary Kalman Filter Using Fuzzy Logic for a Hybrid Head Tracker System,
38
IEEE Trans. Instrum. Meas. 65 (2016) 2163–2173.
[161] R. Kannan, Orientation Estimation Based on LKF Using Differential State Equation, IEEE Sens. J. 15 (2015) 6156–6163.
[162] H. Ren, P. Kazanzides, Investigation of Attitude Tracking Using an Integrated Inertial and Magnetic Navigation System for Hand-Held
Surgical Instruments, IEEE Trans. Mechatronics. 17 (2012) 210–217.
[163] H. Ren, P. Kazanzides, Hybrid Attitude Estimation for Laparoscopic Surgical Tools: A Preliminary Study, in: 31st Annu. Int. Conf.
IEEE EMBS, 2009: pp. 5583–5586.
[164] J. Musić, M. Cecić, V. Zanchi, Real-Time Body Orientation Estimation Based on Two-Layer Stochastic Filter Architecture,
Automatika. 51 (2010) 264–274.
[165] S. Sabatelli, M. Galgani, L. Fanucci, A. Rocchi, A Double-Stage Kalman Filter for Orientation Tracking With an Integrated Processor
in 9-D IMU, IEEE Trans. Instrum. Meas. 62 (2013) 590–598.
[166] A. Dang, V. Nguyen, DCM-based orientation estimation using cascade of two adaptive extended Kalman filters, in: Proceeding 2013
Int. Conf. Control. Autom. Inf. Sci., IEEE, 2013: pp. 152–157.
[167] C. Hide, T. Moore, M. Smith, Adaptive Kalman Filtering for Low-cost INS/GPS, J. Navig. 56 (2003) 143–152.
[168] C. Hu, Y. Chen, W. Chen, Adaptive Kalman filtering for DGPS positioning, in: Int. Symp. Kinematic Syst. Geod. Geomatics Navig.,
2001.
[169] Y.-S. Shu, S.-K. Park, H.-J. Kank, Y.-S. Ro, Attitude Estimation Adaptively Compensating External Acceleration, JSME Int. J. Ser. C
Mech. Syst. Mach. Elem. Manuf. 49 (2006) 172–179.
[170] S. Sun, X. Meng, L. Ji, J. Wu, W.-C. Wong, Adaptive Sensor Data Fusion in Motion Capture, in: Proc. 13th Int. Conf. Inf. Fusion,
IEEE, 2010.
[171] M.E. Johnson, T. Sathyan, Improved Orientation Estimation in Complex Environments Using Low-Cost Inertial Sensors, in: 14th Int.
Conf. Inf. Fusion, IEEE, 2011.
[172] X. Tong, Z. Li, G. Han, N. Liu, Y. Su, J. Ning, F. Yang, Adaptive EKF Based on HMM Recognizer for Attitude Estimation Using
MEMS MARG Sensors, IEEE Sens. J. 18 (2018) 3299–3310.
[173] F. Jamil, N. Iqbal, S. Ahmad, D.H. Kim, Toward accurate position estimation using learning to prediction algorithm in indoor
navigation, Sensors (Switzerland). 20 (2020) 1–27.
[174] R. Mehra, Approaches to adaptive filtering, IEEE Trans. Automat. Contr. 17 (1972) 693–698.
[175] F. Jiancheng, Y. Sheng, Study on Innovation Adaptive EKF for In-Flight Alignment of Airborne POS, IEEE Trans. Instrum. Meas. 60
(2011) 1378–1388.
[176] P.D. Hanlon, P.S. Maybeck, Multiple-model adaptive estimation using a residual correlation Kalman filter bank, IEEE Trans. Aerosp.
Electron. Syst. 36 (2000) 393–406.
[177] J. Li, K. Shu, H. Zhang, An efficient method for tri-axis magnetometer calibration, in: IEEE SmartWorld, Ubiquitous Intell. Comput.
Adv. Trust. Comput. Scalable Comput. Commun. Internet People Smart City Innov. SmartWorld/UIC/ATC/SCALCOM/IOP/SCI 2019,
IEEE, 2019: pp. 654–660.
[178] D. Gebre-Egziabher, G. Elkaim, J. Powell, B. Parkinson, A non-linear, two-step estimation algorithm for calibrating solid-state
strapdown magnetometers., in: 8th Int. Conf. Integr. Navig. Syst., 2001: pp. 290–297.
[179] G. Shi, X. Li, Z. Jiang, An improved yaw estimation algorithm for land vehicles using MARG sensors, Sensors. 18 (2018).
[180] S. Zhang, S. Yu, C. Liu, X. Yuan, S. Liu, A Dual-Linear Kalman Filter for Real-Time Orientation Determination System Using Low-
Cost MEMS Sensors, Sensors. 16 (2016).
[181] M. Carratù, S. Dello Iacono, M. Ferro, V. Paciello, A. Pietrosanto, Test Platform for Data Fusion Application in Indoor Positioning, in:
Sensors Microsystems, AISEM 2019, Lect. Notes Electr. Eng., Springer International Publishing, 2020: pp. 329–333.
[182] R. Bischoff, U. Huggenberger, E. Prassler, KUKA youBot - A mobile manipulator for research and education, Proc. - IEEE Int. Conf.
Robot. Autom. (2011) 1–4.
[183] F. Alam, Z. Zhaihe, H. Jiajia, A Comparative Analysis of Orientation Estimation Filters using MEMS based IMU, in: 2nd Int. Conf.
Res. Sci. Eng. Technol., 2014.
[184] T. Hamel, R. Mahony, Attitude estimation on SO(3) based on direct inertial measurements, in: Proc. 2006 IEEE Int. Conf. Robot.
Autom. ICRA 2006, 2006.
[185] S.A. Ludwig, K.D. Burnham, Comparison of Euler Estimate using Extended Kalman Filter, Madgwick and Mahony on Quadcopter
Flight Data, in: 2018 Int. Conf. Unmanned Aircr. Syst., 2018: pp. 1236–1241.
[186] G.H. Lee, M. Achtelik, F. Fraundorfer, M. Pollefeys, R. Siegwart, A benchmarking tool for MAV visual pose estimation, in: 2010 11th
Int. Conf. Control Autom. Robot. Vis., 2010.
[187] X. Li, Y. Wang, Evaluation of AHRS algorithms for Foot-Mounted Inertial-based Indoor Navigation Systems, GeoScape. 11 (2019)
48–63.
[188] M. Angermann, P. Robertson, T. Kemptner, M. Khider, A high precision reference data set for pedestrian navigation using foot-
mounted inertial sensors, in: Int. Conf. Indoor Position. Indoor Navig., 2010: pp. 1–6.
[189] J. Tosi, F. Taffoni, A. Hussain, D. Campolo, D. Formica, Methodology for the Evaluation of Magneto-Inertial Orientation Filters in
SO(3), in: 2019 II Work. Metrol. Ind. 4.0 IoT, 2019: pp. 323–328.
[190] D. Campolo, L. Schenato, L. Pi, X. Deng, E. Guglielmelli, Attitude estimation of a biologically inspired robotic housefly via
multimodal sensor fusion, Adv. Robot. 23 (2009) 955–977.
[191] H. Chen, M.C. Schall, N.B. Fethke, Measuring upper arm elevation using an inertial measurement unit: An exploration of sensor fusion
algorithms and gyroscope models, Appl. Ergon. 89 (2020) 103187.
39
[192] H. Chen, M.C. Schall, N. Fethke, Accuracy of angular displacements and velocities from inertial-based inclinometers, Appl. Ergon. 67
(2018) 151–161.
[193] J. Thienel, R.M. Sanner, A Coupled Nonlinear Spacecraft Attitude Controller and Observer With an Unknown Constant Gyro Bias and
Gyro Noise, IEEE Trans. Automat. Contr. 48 (2003) 2011–2015.
[194] K. Masuya, T. Sugihara, M. Yamamoto, Design of complementary filter for high-fidelity attitude estimation based on sensor dynamics
compensation with decoupled properties, Proc. IEEE Int. Conf. Robot. Autom. (2012) 606–611.
[195] L. Benziane, A. Benallegue, A.E. Hadri, A globally asymptotic attitude estimation using complementary filtering, in: 2012 IEEE Int.
Conf. Robot. Biomimetics, ROBIO 2012, IEEE, 2012: pp. 878–883.
[196] M. Cheguini, F. Ruiz, Real-time attitude estimation based on Gradient Descent algorithm, in: 2012 IEEE 4th Colomb. Work. Circuits
Syst., IEEE, Barranquilla, Colombia, 2012.
[197] M.S. Karunarathne, S.W. Ekanayake, P.N. Pathirana, An adaptive complementary filter for inertial sensor based data fusion to track
upper body motion, 7th Int. Conf. Inf. Autom. Sustain. ICIAfS 2014. (2014).
[198] V. Kubelka, M. Reinstein, Complementary filtering approach to orientation estimation using inertial sensors only, in: Proc. IEEE Int.
Conf. Robot. Autom., IEEE, 2012: pp. 599–605.
[199] M. Blachuta, R. Grygiel, R. Czyba, G. Szafranski, Attitude and heading reference system based on 3D complementary filter, in: 19th
Int. Conf. Methods Model. Autom. Robot. MMAR 2014, IEEE, 2014: pp. 851–856.
[200] R.S. McGinnis, S.M. Cain, S.P. Davidson, R.V. Vitali, S.G. McLean, N.C. Perkins, Validation of Complementary Filter Based IMU
Data Fusion for Tracking Torso Angle and Rifle Orientation, in: Int. Mech. Eng. Congr. Expo. 2014, 2014.
[201] X. Li, C. He, Y. Wang, Z. Li, Generalized complementary filter for attitude estimation based on vector observations and cross products,
in: 2015 IEEE Int. Conf. Inf. Autom., IEEE, 2015: pp. 1733–1737.
[202] S.Q. Liu, R. Zhu, A Complementary Filter Based on Multi-Sample Rotation Vector for Attitude Estimation, IEEE Sens. J. 18 (2018)
6686–6692.
[203] S. Wilson, H. Eberle, Y. Hayashi, S.O.H. Madgwick, A. Mcgregor, X. Jing, R. Vaidyanathan, Formulation of a new gradient descent
MARG orientation algorithm: Case study on robot teleoperation, Mech. Syst. Signal Process. 130 (2019) 183–200.
[204] L. Wöhle, M. Gebhard, SteadEye-Head—Improving MARG-Sensor Based Head Orientation Measurements Through Eye Tracking
Data, Sensors. (2020).
[205] M.L. Hoang, A. Pietrosanto, S. Dello Iacono, V. Paciello, Pre-processing technique for compass-less madgwick in heading estimation
for industry 4.0, in: IEEE Int. Instrum. Meas. Technol. Conf., 2020.
[206] J.A. Barraza Madrigal, J. Cantillo Negrete, R. Muñoz Guerrero, L.A. Contreras Rodríguez, H. Sossa, 3D Motion Tracking of the
Shoulder Joint with Respect to the Thorax Using MARG Sensors and Data Fusion Algorithm, Biocybern. Biomed. Eng. 40 (2020)
1205–1224.
[207] J. Justa, V. Šmídl, A. Hamáček, Fast AHRS filter for accelerometer, magnetometer, and gyroscope combination with separated sensor
corrections, Sensors (Switzerland). 20 (2020).
[208] Z. Peng, L. Guan, X. Xu, J. Zeng, Y. Gao, J. Yang, Real-Time Attitude Estimation for High-Speed UAV in High-Frequency
Environmental Dithering Based on AMCF, in: China Satell. Navig. Conf. 2020, 2020: pp. 89–98.
[209] S.O.H. Madgwick, S. Wilson, R. Turk, J. Burridge, C. Kapatos, R. Vaidyanathan, An Extended Complementary Filter for Full-Body
MARG Orientation Estimation, IEEE/ASME Trans. Mechatronics. 25 (2020) 2054–2064.
[210] M. Haid, J. Breitenbach, Low cost inertial orientation tracking with Kalman filter, Appl. Math. Comput. 153 (2004) 567–575.
[211] J. Bijker, W. Steyn, Control Engineering Practice Kalman filter configurations for a low-cost loosely integrated inertial navigation
system on an airship, Control Eng. Pract. 16 (2008) 1509–1518.
[212] P. Tome, O. Yalak, Improvement of Orientation Estimation in Pedestrian Navigation by Compensation of Magnetic Disturbances,
Navigation. 55 (2008) 179–190.
[213] G. Cooper, I. Sheret, L. Mcmillian, K. Siliverdis, N. Sha, D. Hodgins, L. Kenney, D. Howard, Inertial sensor-based knee
flexion/extension angle estimation, J. Biomech. 42 (2009) 2678–2685.
[214] C.M.N. Brigante, N. Abbate, A. Basile, A.C. Faulisi, S. Sessa, Towards Miniaturization of a MEMS-Based Wearable Motion Capture
System, IEEE Trans. Ind. Electron. 58 (2011) 3234–3241.
[215] A.R. Jiménez, F. Seco, J.C. Prieto, J. Guevara, Indoor Pedestrian Navigation using an INS/EKF framework for Yaw Drift Reduction
and a foot-mounted IMU, in: Proc. 7th Work. Positioning, Navig. Commun., 2010.
[216] J. Borestein, L. Ojeda, S. Kwanmuang, Heuristic reduction of gyro drift in IMU-based personnel tracking system, in: Procedding SPIE
Defense, Secur. Sens. Conf., Orlando, Florida, USA, 2009.
[217] S. Sabatelli, F. Sechi, L. Fanucci, A. Rocchi, A sensor fusion algorithm for an integrated angular position estimation with inertial
measurement units, in: Proceeding 2011 Des. Autom. Test Eur., 2011.
[218] S. Han, J. Wang, A Novel Method to Integrate IMU and Magnetometers in Attitude and Heading Reference Systems, J. Navig. 64
(2011) 727–738.
[219] R. Munguia, A. Grau, Attitude and Heading System based on EKF Total State Configuration, in: Proceeding 2011 IEEE Int. Symp. Ind.
Electron., IEEE, 2011: pp. 2147–2152.
[220] E. Edwan, J. Zhang, J. Zhou, O. Loffeld, Reduced DCM Based Attitude Estimation Using Low-cost IMU and Magnetometer Triad, in:
Proc. 2011 8th Work. Positioning, Navig. Commun., IEEE, 2011.
[221] M.H. Afzal, V. Renaudin, G. Lachapelle, Use of Earth’s Magnetic Field for Mitigating Gyroscope Errors Regardless of Magnetic
Perturbation, Sensors. 11 (2011) 11390–11414.
40
[222] J.K. Lee, E.J. Park, S.N. Robinovitch, Estimation of attitude and external acceleration using inertial sensor measurement during various
dynamic conditions, IEEE Trans. Instrum. Meas. 61 (2012) 2262–2273.
[223] M. Carminati, G. Ferrari, R. Grassetti, M. Sampietro, Real-Time Data Fusion and MEMS Sensors Fault Detection in an Aircraft
Emergency Attitude Unit Based on Kalman Filtering, IEEE Sens. J. 12 (2012) 2984–2992.
[224] Z. Zhang, X. Meng, J. Wu, Quaternion-Based Kalman Filter With Vector Selection for Accurate Orientation Tracking, IEEE Trans.
Instrum. Meas. 61 (2012) 2817–2824.
[225] W. Li, J. Wang, Effective Adaptive Kalman Filter for MEMS-IMU/Magnetometers Integrated Attitude and Heading Reference
Systems, J. Navig. 66 (2013) 99–113.
[226] Q. Zhang, X. Niu, H. Zhang, C. Shi, Algorithm Improvement of the Low-End GNSS/INS Systems for Land Vehicles Navigation,
Hindawi Publ. Corp. Math. Probl. Eng. (2013).
[227] M. Jin, J. Zhao, J. Jin, G. Yu, W. Li, The adaptive Kalman filter based on fuzzy logic for inertial motion capture system, Measurement.
49 (2014) 196–204.
[228] R. Munguía, A. Grau, A Practical Method for Implementing an Attitude and Heading Reference System, Int. J. Adv. Robot. Syst. 11
(2014).
[229] S. Zihajehzadeh, D. Loh, M. Lee, R. Hoskinson, E.J. Park, A Cascaded Two-Step Kalman Filter for Estimation of Human Body
Segment Orientation Using MEMS-IMU, in: Proc. 36th Annu. Int. Conf. IEEE Eng. Med. Biol. Soc., IEEE, 2014: pp. 6270–6273.
[230] C. Miao, Q. Zhang, J. Fang, Design of orientation estimation system by inertial and magnetic sensors, Proc. Inst. Mech. Eng. Part G J.
Aerosp. Eng. 228 (2014) 1105–1113.
[231] Y. Wang, A. Hussain, M. Soltani, A MEMS-based Adaptive AHRS for Marine Satellite Tracking Antenna, IFAC-PapersOnLine. 48
(2015) 121–126.
[232] L. Wang, Z. Zhang, P. Sun, Quaternion-based Kalman Filter for AHRS Using an Adaptive-step Gradient Descent Algorithm, Int. J.
Adv. Robot. Syst. 12 (2015).
[233] Z. Deng, G. Wang, Y. Hu, D. Wu, Heading Estimation for Indoor Pedestrian Navigation Using a Smartphone in the Pocket, Sensors. 15
(2015) 21518–21536.
[234] P. Neto, N. Mendes, A.P. Moreira, Kalman filter-based yaw angle estimation by fusing inertial and magnetic sensing: a case study
using low cost sensors, Sens. Rev. 35 (2015) 244–250.
[235] L.R. Lustosa, S. Pizziol, F. Defay, J.-M. Moschetta, An Error Model of a Complementary Filter for use in Bayesian Estimation - The
CF-EKF Filter, IFAC-PapersOnLine. 49 (2016) 444–449.
[236] R.B. Widodo, C. Wada, Attitude Estimation Using Kalman Filtering: External Acceleration Compensation Considerations, J. Sensors,
Hindawi. (2016).
[237] C.W. Kang, H.J. Kim, C.G. Park, A Human Motion Tracking Algorithm Using Adaptive EKF Based on Markov Chain, IEEE Sens. J.
16 (2016) 8953–8962.
[238] L. Chang, F. Zha, F. Qin, Indirect Kalman Filtering Based Attitude Estimation for Low-Cost Attitude and Heading Reference Systems,
IEEE/ASME Trans. Mechatronics. 22 (2017) 1850–1858.
[239] T. Zhang, Y. Liao, Attitude measure system based on extended Kalman filter for multi-rotors, Comput. Electron. Agric. 134 (2017) 19–
26.
[240] P. Bernal-Polo, H. Martinez-Barbera, Orientation Estimation by Means of Extended Kalman Filter, Quaternions, and Charts, J. Phys.
Agents. 8 (2017) 11–24.
[241] Y. Wang, M. Soltani, D.M.A. Hussain, An Attitude Heading and Reference System for Marine Satellite Tracking Antenna, IEEE Trans.
Ind. Electron. 64 (2017) 3095–3104.
[242] S. Šlajpah, R. Kamnik, M. Munih, Compensation for Magnetic Disturbances in Motion Estimation to Provide Feedback to Wearable
Robotic Systems, IEEE Trans. Neural Syst. Rehabil. Eng. 25 (2017) 2398–2406.
[243] M.B. Del Rosario, H. Khamis, P. Ngo, N.H. Lovell, S.J. Redmond, Computationally Efficient Adaptive Error-State Kalman Filter for
Attitude Estimation, IEEE Sens. J. 18 (2018) 9332–9342.
[244] P.J. Glavine, O. De Silva, G. Mann, R. Gosine, P. Philip, S. John, N.L. Ab, GPS Integrated Inertial Navigation System Using
Interactive Multiple Model Extended Kalman Filtering, in: Proc. 2018 Moratuwa Eng. Res. Conf., IEEE, 2018: pp. 414–419.
[245] Q. Yuan, E. Asadi, Q. Lu, G. Yang, I. Chen, Uncertainty-Based IMU Orientation Tracking Algorithm for Dynamic Motions,
IEEE/ASME Trans. Mechatronics. 24 (2019) 872–882.
[246] H. Ahmed, I. Ullah, U. Khan, M.B. Qureshi, S. Manzoor, N. Muhammad, M.U.S. Khan, R. Nawaz, Adaptive filtering on gps-aided
mems-imu for optimal estimation of ground vehicle trajectory, Sensors (Switzerland). 19 (2019) 1–18.
[247] A.P. Sage, G.W. Husa, Adaptive filtering with unknown prior statistics, IEEE Trans. Autom. Control. 7 (1969) 760–769.
[248] Q. Ge, T. Shao, C. Wen, R. Sun, Analysis on strong tracking filtering for linear dynamic systems, Math. Probl. Eng. 2015 (2015).
[249] H.T. Butt, M. Pancholi, M. Musahl, P. Murthy, M.A. Sanchez, D. Stricker, Inertial Motion Capture Using Adaptive Sensor Fusion and
Joint Angle Drift Correction, in: 22nd Int. Conf. Inf. Fusion, 2019.
[250] Q. Fan, H. Zhang, P. Pan, X. Zhuang, J. Jia, P. Zhang, Z. Zhao, G. Zhu, Y. Tang, Improved pedestrian dead reckoning based on a
robust adaptive Kalman filter for indoor inertial location system, Sensors (Switzerland). 19 (2019).
[251] Á. Odry, I. Kecskes, P. Sarcevic, Z. Vizvari, A. Toth, P. Odry, A Novel Fuzzy-Adaptive Extended Kalman Filter for Real-Time
Attitude Estimation of Mobile Robots, Sensors. (2020).
[252] K. Wen, K. Yu, Y. Li, S. Zhang, W. Zhang, A New Quaternion Kalman Filter Based Foot-Mounted IMU and UWB Tightly-Coupled
Method for Indoor Pedestrian Navigation, IEEE Trans. Veh. Technol. 69 (2020) 4340–4352.
41
[253] M.A. Javed, M. Tahir, K. Ali, Cascaded Kalman Filtering-Based Attitude and Gyro Bias Estimation With Efficient Compensation of
External Accelerations, IEEE Access. 8 (2020) 50022–50035.
[254] M. Ji, J. Liu, X. Xu, Y. Guo, Z. Lu, Improved Pedestrian Positioning with Inertial Sensor Based on Adaptive Gradient Descent and
Double-Constrained Extended Kalman Filter, Complexity, Hindawi. (2020).
[255] F. Farhangian, R. Landry Jr., Accuracy Improvement of Attitude Determination Systems Using EKF-Based Error Prediction Filter and
PI Controller, Sensors (Switzerland). 20 (2020) 4055.
[256] H. Du, W. Wang, C. Xu, R. Xiao, C. Sun, Real-time onboard 3D state estimation of an unmanned aerial vehicle in multi-environments
using multi-sensor data fusion, Sensors (Switzerland). 20 (2020).
[257] S. Park, J. Park, C.G. Park, Adaptive Attitude Estimation for Low-Cost MEMS IMU Using Ellipsoidal Method, IEEE Trans. Instrum.
Meas. 69 (2020) 7082–7091.
42
Tables
Table 1 Review of the previous literature surveys of the sensor fusion algorithms, including the tested algorithms, the gain
selection procedure, the used reference system for validation, the type experiments, and the algorithm(s) concluded to have the
best performance. Abbreviations used in the table are described in the table footnotes.
Sensor Fusion Filter
Study Reference Experiments (duration in seconds) Selected Filter
Algorithms Parameters
[24] PEKF, [25,26] EC Robot [182] Slow & fast motions of robotic arm (≤45s) PEKF
[10] [28–32] EC MCS Elbow, forearm & shoulder functional tasks (≤15s) Acc.: [28] Corr.: [31]
[33] [29,34–36] EC MCS Random motions (≤20), Treadmill walking (≤30s) [36]
[37] PEKF, KF EC MCS Random head motions (≤35s) PEKF
Static and dynamic tests in magnetically clean &
[38] [25,39–41] EC MCS [41]
disturbed environments (≤60s)
[42] SDI, [25,37] EC MCS Daily routine tasks (≤60s), Walking (≤180s) [37]
[183] [25,184] EC None Single axis rotations (≤250s) [184]
[39] [122,129] EC MCS Daily routine tasks (≤60s), Walking (≤180s) [129]
[43] [25,37,44], XKF OP MCS Slow, medium & fast random rotations (≤70s) Slow/medium: XKF, Fast: [37]
[185] [25,26,143] OP MCS Quadcopter motion adopted from [186] [26]
[45] [25,26,46–49] EC MCS Smartphone data during various activities (≤180s) [49]
[187] [25,26] EC MCS Various walking tests, adopted from [188] [25]
[189] [25,26,80,190] OP Synthetic - [25,26]
[191] [192], modified [127] EC MCS Material handling task (≤60s) Modified [127]
- Sensor Fusion Algorithms: PEKF: Proposed Extended Kalman Filter by the study; XKF: Xesne proprietary Kalman Filter; SDI: Strap-down integration.
- Filter Parameters: EC: Selecting the sensor fusion algorithm’s gain(s) by trial-and-error; OP: Selecting the sensor fusion algorithm’s gain(s) by a rigorous search.
- Reference: MCS: Gold-standard camera motion-capture system. Synthetic: used synthetic MIMU data.
- Selected Filter: Acc: Selected based on accuracy; Corr: Selected based on correlation.
43
Table 2 Review of the state-of-the-art sensor fusion algorithms with a Complimentary Filter (CF) structure, including linear CF (LCK) and
nonlinear CF (NCF). Abbreviations used in the table are described in the table footnotes.
Parametriz 𝒃𝑮 , 𝓪, 𝓭
Study Year Application Method Notes (gain tuning or thresholding, etc.)
ation compensation
[76] 1999 HMT GNA+CF Q - -
[193] 2003 STC NCF Q 𝑏𝐺 -
[184] 2006 AVTC NCF DCM 𝑏𝐺 -
[111] 2007 - NCF Q 𝑏𝐺 -
[26] 2008 RATC NCF DCM 𝑏𝐺 -
[94] 2008 AVTC NCF Q 𝑏𝐺 -
[114] 2009 MRTC LCK EA - 𝑘𝑝 ∝ exp(−| 𝐺 𝑔 − ‖𝑦𝐴 ‖|)
[109] 2009 - Sliding mode observer EA 𝑏𝐺 -
[77] 2009 HMT GNA+CF Q - 𝒶 & 𝒹 rejection with thresholding
[87] 2009 - Azimuth-level detector CF Q & DCM - -
[49] 2010 AVTC NCF Q 𝑏𝐺 -
[91] 2010 - NCF EA - -
[25] 2011 HMT GDA+CF Q - -
[75] 2011 - FQA+CF Q - -
[78] 2011 Bio-logging LMA+CF Q - -
[110] 2011 SVTC LCK EA - -
[100] 2011 - NCF DCM 𝑏𝐺 Time-varying gains
[92] 2011 MRTC NCF EA 𝑏𝐺 -
[93] 2011 SVTC NCF EA 𝑏𝐺 CF gain ∝ | 𝐺 𝑔 − ‖𝑦𝐴 ‖|
[96] 2012 STC NCF DCM - -
[99] 2012 AVTC NCF DCM 𝑏𝐺 & 𝑏𝐴 -
[194] 2012 - LCK DCM - Using inverse sensor models to widen the frequency range
[195] 2012 - TRIAD+LCK DCM 𝑏𝐺 -
[196] 2012 HMT GDA+CF Q 𝑏𝐺 -
[197] 2012 HMT LCK DCM - CF gain ∝ duration of the experiment
44
[198] 2012 MRTC NCF Q - -
[97] 2015 - TRIAD+NCK DCM - Adaptive gain tuning using fuzzy logic
[80] 2013 HMT GDA+CF Q 𝑏𝐺 𝒶 & 𝒹 rejection with thresholding
[79] 2014 HMT Two-layer LMA+CF Q - -
[41] 2011 HMT GDA+CF Q 𝑏𝐺 -
[199] 2014 AVTC PI controller+CF EA - -
[102] 2014 AVTC NCF DCM 𝑏𝐺 -
[98] 2014 HMT LCK EA - Adaptive gain tuning using fuzzy logic
[200] 2014 HMT LCK DCM 𝑏𝐺 -
Bicycle crank NCF + vertical
[89] 2015 Q - -
angle tracking acceleration update
𝑏𝐺 estimation by
[112] 2015 AVTC LCK DCM neural network -
PID controller
Smooth 2nd order sliding
[107] 2015 AVTC EA - -
mode observer
[88] 2015 HMT GDA+CF Q - 𝒹 rejection with thresholding
[73] 2015 AVTC AQA+CF Q - 𝒶 rejection using LERP or SLERP + adaptive gain tuning
[201] 2015 AVTC NCF DCM - -
HMT with
[81] 2016 Geometrically-intuitive CF Q - -
smartphone
[104] 2016 - Two-layer LCK Q - 𝒹 rejection with thresholding
[105] 2016 AVTC Nonlinear SVD+CF DCM - -
[113] 2016 RATC NCF DCM 𝑏𝐺 -
[82] 2017 - GDA+CF Q - 𝒹 rejection with thresholding
Combining output of multiple fixed-gain CFs with
[115] 2017 AVTC LCK EA 𝑏𝐺
MMAE
[116] 2017 AVTC NCF EA - Adaptive gain turning via PSO
[84] 2018 - GDA+CF Q - 𝒹 rejection with thresholding
[103] 2018 HMT LCK Q - 𝒶 & 𝒹 rejection with finite state machine
[85] 2018 RATC FQA+CF Q - Adaptive gain turning via GDA
45
Smooth 2nd order sliding
[108] 2018 AVTC EA 𝑏𝐺 -
mode observer
[101] 2018 AVTC Right invariant NCF Q & DCM 𝑏𝐺 CF gain ∝ system noise parameters
[106] 2018 AVTC LCK Q - CF gain ∝ ‖𝑦𝐺 ‖
[202] 2018 - MSRVA+CF Q 𝑏𝐺 -
[86] 2018 - GDA+CF Q - -
[83] 2019 AVTC GDA+CF Q - 𝒶 & 𝒹 rejection with thresholding
[90] 2019 - GDA+CF DCM 𝑏𝐺 -
Robot
[203] 2019 GDA+CF Q 𝑏𝐺 -
teleoperation
Identified reliable 𝑦𝐺 based on interquartile range of 𝑦𝐺
[95] 2019 AVTC NCF EA 𝑏𝐺
previous samples
[204] 2020 HMT GDA+CF Q - 𝒹 rejection
[205] 2020 HMT GDA+CF Q - 𝑦𝐺 rejection during “no motion” state
[206] 2020 HMT Two-layer LCK Q - -
[207] 2020 - LCF Q - -
[208] 2020 AVTC NCF Q - 𝒶 compensation by thresholding
[209] 2020 HMT Extended CF Q 𝑏𝐺 𝒹 rejection with thresholding
- Application: STC: Spacecraft (satellite) tracking/control; HMT: Human motion tracking; MRTC: Mobile robot tracking/control; RATC: Robotic arm tracking/control; AVTC: Aerial
vehicle tracking/control; SVTC: Surface vehicle tracking/control.
- Method: GNA: Gauss-Newton algorithm; GDA: Gradient descent algorithm; LMA: Levenberg-Marquardt algorithm; FQA: Factored quaternion algorithm; AQA: algebraic quaternion
algorithm; LERP: Linear intERPolation; SLERP: Spherical Linear intERPolation; SVD: Singular value decomposition; PSO: Particle Swarm Optimization; MSRVA: Multi-sample
rotation vector algorithm; MMAE: Multiple-model adaptive estimation.
- Parametrization: Q: Quaternion parametrization of orientation; EA: Euler angle parametrization of orientation; DCM: Direction cosine matrix parametrization of orientation.
- Compensation: 𝑏𝐺 : Gyroscope bias; 𝑏𝐴 : Accelerometer bias; 𝒶: external non-gravitational acceleration; 𝒹: magnetic disturbance.
46
Table 3 Review of the state-of-the-art sensor fusion algorithms with a Kalman Filter (KF) structure, including linear KF (LKF), extended KF
(EKF), and Complimentary KF (CKF). Abbreviations used in the table are described in the table footnotes.
Study Year Application Method State vector components Measurement-update Notes (gain tuning or thresholding, etc.)
[140] 1982 STC EKF [Q, 𝑏𝐺 ] [Line-of-sight attitude sensor] -
[Velocity, 𝜔, EA, altitude, [𝑦𝐺 , 𝑦𝑀 , airspeed sensor, barometric
[141] 1991 SVTC EKF -
wind gust velocity] altimeter]
[142] 1994 MRTC EKF [Attitude] [𝑦𝐴 , gyrometric attitude] -
[118] 1995 MRTC LKF [Yaw] [𝑦𝐺 ] -
𝒬 ∝ max(𝑦𝐺 )
[153] 1996 HMT CKF [ℯEA, ℯ𝑏𝐺 ] [𝑦𝐺 , 𝑦𝑀 ]
ℛ ∝ slosh in fluid acc.
[157] 1996 MRTC CKF [ℯAttitude] [𝑦𝐴 ] -
[150] 1999 MRTC CKF [ℯEA, ℯ𝑏𝐺 ] [𝑦𝐴 , sun sensor] -
[143] 2001 - EKF [Q, 𝜔
̂] [𝑦𝐺 , 𝑦𝐴 , 𝑦𝑀 ] -
[143] 2001 - GNA+EKF [Q, 𝜔
̂] [𝑞̂, 𝑦𝐺 ], 𝑞̂ from GNA(𝑦𝐴 ,𝑦𝑀 ) -
[GPS position, GPS
[Position, velocity, clock] errors
[8] 2002 SVTC LKF receiver’s clock range bias, -
from the algebraic GPS equations
𝑏𝐺 , 𝑏𝐴 ]
[119] 2003 - GNA+LKF [Q, 𝜔
̂] [𝑞̂, 𝑦𝐺 ], 𝑞̂ from GNA(𝑦𝐴 ,𝑦𝑀 ) -
[126] 2004 - LKF [Q, 𝜔
̂, 𝑏𝐺 ] [𝑦𝐺 , 𝑦𝐴 ] -
[28] 2004 HMT LKF [𝑔̂, 𝑚
̂] [𝑦𝐴 , 𝑦𝑀 ] -
Walking robot Ensemble of
[138] 2004 [DCM(3)] [𝑦𝐴 ] Switching between LKFs by |𝑦𝐴 |
motion tracking two LKFs
[47] 2004 - LKF [Q, 𝑏𝐺 ] [𝑦𝐴 ] or [𝑦𝑀 ] Adaptive 𝒬
[54] 2004 HMT CKF [ℯ𝑔̂, ℯ𝑏𝐴 ] [𝑦𝐴 ] -
[210] 2004 - LKF [1D angle, 𝜔] [1D-𝑦𝐺 ] -
[154] 2004 - CKF [ℯEA, ℯ𝑏𝐺 ] [EA from 𝑦𝐴 & 𝑦𝑀 ] -
[155] 2004 SVTC CKF [ℯEA, ℯ𝑏𝐺 ] OR [ℯQ, ℯ𝑏𝐺 ] [EA from 𝑦𝐴 & 𝑦𝑀 ] Switching 𝒬 & ℛ between two levels
[59] 2005 HMT CKF [ℯHelical angle/axis, ℯ𝑏𝐺 ] [Attitude from 𝑦𝐴 & 𝑦𝐺 ] -
[6] 2005 - CKF [ℯQ, ℯ𝑏𝐺 ] [Sun sensor] -
[ℯHelical angle/axis, ℯ𝑏𝐺 , [Attitude from 𝑦𝐴 & 𝑦𝐺 , magnetic
[52] 2005 HMT CKF -
ℯ𝒹] vector from 𝑦𝑀 & 𝑦𝐺 ]
47
[51] 2006 HMT EKF [Q, 𝑏𝐴 , 𝑏𝑀 ] [𝑦𝐴 , 𝑦𝑀 ] Switching ℛ between two levels
[29] 2006 HMT QUEST+EKF [Q, 𝜔
̂] [𝑞̂, 𝑦𝐺 ], 𝑞̂ from QUEST(𝑦𝐴 ,𝑦𝑀 ) -
[169] 2006 - EKF [Attitude, 𝜔
̂] [𝑦𝐴,𝑥 , 𝑦𝐴,𝑦 , 𝑦𝐺 ] Adaptive acc. measurement equation
[131] 2007 - LKF [𝑔̂, 𝑚
̂] [𝑦𝐴 , 𝑦𝑀 ] Abandoning past estimations by forget factor
[134] 2007 - LKF EA [EA from 𝑦𝐴 & 𝑦𝑀 ] Switching ℛ between two levels
[151] 2007 - CKF [ℯQ, ℯ𝑏𝐺 ] [𝑦𝐴 , 𝑦𝑀 ] -
[158] 2008 AVTC CKF [ℯQ] [ℯ𝑞̂ from 𝑦𝐴 & GPS] Tuning ℛ based on ‖𝑦𝐴 − 𝐺 𝑔‖
[211] 2008 SVTC CKF [ℯQ, ℯ𝑏𝐺 ] [𝑦𝐴 , 𝑦𝑀 ] -
𝒶 & 𝒹 rejection using vector selection + tuning 𝒬
[212] 2008 HMT EKF [ℯEA, 𝑏𝐺 , 𝑏𝐴 , 𝒹] [𝑦𝐴 , 𝑦𝑀 ]
&ℛ
Surgical tool
[163] 2009 EKF [Q, 𝑏𝐺 ] [𝑦𝐴 , 𝑦𝑀 ] -
motion tracking
[122] 2009 HMT LKF [Q] [𝑞̂ from 𝑦𝐴 & 𝑦𝑀 using [123]] 𝒶 & 𝒹 rejection using vector selection
Augmented
[9] 2009 - [EA, 𝜔 ̂̇ , 𝑏𝐺 ]
̂, 𝜔 [𝑞̂, 𝑦𝐺 ], 𝑞̂ from 𝑦𝐴 & 𝑦𝑀 -
Reality
[Velocity, 𝑦̂𝐴 , 𝜔
̂, 𝑏𝐺 ,
[213] 2009 HMT EKF [𝑦𝐺 , 𝑦𝐴 ] -
Attitude]
[132] 2009 - LKF [𝑔̂, 𝑚
̂, 𝑏𝐺 ] [𝑦𝐴 , 𝑦𝑀 ] -
Tuning ℛ using residual in acc. measurement-
[55] 2010 - CKF [ℯQ, 𝑏𝐺 , 𝑏𝐴 ] [𝑦𝐴 , 𝑦𝑀 ]
update
EKF+Particle
[164] 2010 HMT [EA, 𝑏𝐺 ] [EA from 𝑦𝐴 & 𝑦𝑀 ] -
Filter
[170] 2010 HMT CKF [ℯQ] [𝑦𝐴 , 𝑦𝑀 ] Tuning ℛ based on ‖𝑦𝐴 − 𝐺 𝑔‖ & ‖𝑦𝑀 − 𝐺 𝑚‖
𝒦 tuning by innovation-based adaptive
[175] 2011 - CKF [ℯEA, ℯvelocity, ℯ𝑏𝐺 , ℯ𝑏𝐴 ] Velocity from GPS
estimation technique
[124] 2011 - LKF [Q] [𝑞̂ from FQA(𝑦𝐴 ,𝑦𝑀 )] -
[135] 2011 HMT LKF [Q, 𝒶] [𝑦𝑀 , 𝑦𝐴 , ‖𝑦𝐴 ‖] Switching 𝒬 between two levels
[214] 2011 HMT EKF [Q, 𝑏𝐺 ] [𝑦𝐴 , 𝑦𝑀 ] -
[ℯEA, ℯposition, ℯvelocity, [Yaw from 𝑦𝑀 , ℯ𝑏𝐺 , Velocity from
[215] 2011 HMT CKF Heuristic heading reduction [216]
ℯ𝑏𝐺 , 𝑏𝐴 ] ZUPT]
[147] 2011 HMT EKF [Q, 𝑏𝐺 , 𝒹] [𝑦𝐴 , 𝑦𝑀 ] -
48
[217] 2011 - EKF [Q] [𝑦𝐴 ] -
[218] 2011 - CKF [ℯQ, ℯ𝑏𝐺 , ℯ𝐾𝐺 ] [ℯEA from 𝑦𝐴 & 𝑦𝑀 ] -
[219] 2011 - EKF [Q, 𝑏𝐺 ] [𝑦𝐴 , 𝑦𝑀 ] Tuning ℛ based on ‖𝑦𝐴 − 𝐺 𝑔‖
[220] 2011 - EKF [DCM(1), DCM(3), 𝑏𝐺 ] [𝑦𝐴 , 𝑦𝑀 ] -
[221] 2011 HMT CKF [ℯEA, ℯ𝑏𝐺 ] [𝑦𝑀 ] Quasi-static geomagnetic field detection
Surgical tool Two LKFs + LKF1: [𝑔̂], LKF2: [𝑚
̂], LKF1: [𝑦𝐴 ], LKF2: [𝑦𝑀 ], EKF: [𝑞̂
[162] 2012 -
motion tracking EKF EKF: [Q, 𝑏𝐺 ] from 𝑦𝐴 & 𝑦𝑀 ]
[133] 2012 - LKF [𝑔̂, 𝑚
̂, 𝑏𝐺 ] [𝑦𝐴 , 𝑦𝑀 ] -
[145] 2012 HMT EKF [Q, 𝑏𝐺 ] [𝑞̂ from 𝑦𝐴 & 𝑦𝑀 ] Switching ℛ a piecewise linear function
[222] 2012 HMT/ SVTC LKF [𝑔̂] [𝑦𝐴 ] -
[223] 2012 AVTC EKF [DCM(3), 𝜔
̂, 𝑏𝐺 ] [𝑦𝐴 , 𝑦𝐺 ] Switching ℛ between two levels
[224] 2012 HMT LKF [Q] [𝑞̂ from 𝑦𝐴 & 𝑦𝑀 ] 𝒶 & 𝒹 rejection using vector selection
Variable state EKF1: [Q, 𝑏𝐺 , 𝒹]
[148] 2012 - [𝑦𝐴 , 𝑦𝐺 ] -
EKF EKF2: [Q, 𝑏𝐺 , 𝒹, 𝒹̇]
[225] 2013 - CKF [ℯEA, ℯ𝑏𝐺 , 𝐾𝐺 ] [ℯEA from 𝑦𝐴 & 𝑦𝑀 ] Switching ℛ between three levels
EKF 1: [DCM(3), 𝒶]
[166] 2013 - EKF EKF1: [𝑦𝐴 ], EKF2: [𝑦𝑀 ] Resetting 𝒶 and 𝒹 by thresholding
EKF 2: [DCM(1), 𝒹]
[ℯposition, ℯvelocity, ℯEA,
[226] 2013 SVTC CKF [Position, velocity] from GNSS -
𝑏𝐺 , 𝑏𝐴 ]
[146] 2013 HMT EKF [Q, 𝑏𝐴 , 𝑏𝑀 ] [𝑦𝐴 , 𝑦𝑀 ] Switching ℛ between two levels
[165] 2013 - EKF [Q] [𝑦𝐴 , 𝑦𝑀 ] -
[136] 2014 - LKF [Q] [𝑦𝐴 , 𝑦𝑀 ] Tuning ℛ based on acc. residuals
Two-layer Innovation-based adaptive estimation tuning of ℛ
[227] 2014 HMT EKF1: [𝑔̂], EKF2: [Yaw] EKF1: [𝑦𝐴 ], EKF2: [𝑦𝑀 ]
LKF using fuzzy logic
HMT with
[46] 2014 EKF [Q, 𝑏𝐺 , 𝒶] [𝑦𝐴 , 𝑦𝑀 ] -
smartphones
[228] 2014 AVTC EKF [Q, 𝜔
̂, 𝑏𝐺 ] [𝑞̂ from 𝑦𝐴 & 𝑦𝑀 ] -
Two-layer EKF1: [DCM(3)], EKF2:
[229] 2014 HMT EKF1: [𝑦𝐴 ], EKF2: [𝑦𝑀 ] Switching ℛ between two levels
LKF [DCM(1)]
[230] 2014 AVTC CKF [ℯEA, ℯ𝑏𝐺 , ℯ𝒶, ℯ𝒹] [𝑦𝐴 , 𝑦𝑀 ] 𝒫𝐴 ∝ 𝐸𝑟𝑟𝑜𝑟(𝒶), 𝒫𝑀 ∝ 𝐸𝑟𝑟𝑜𝑟(𝒹)
[231] 2015 Marine Satellite LKF [Q] [𝑦𝐴 , 𝑦𝑀 ] 𝒬 = 𝛼𝒬0 , ℛ = (1 − 𝛼)ℛ0
49
Tracking
Antenna
[127] 2015 HMT LKF [𝑔̂, 𝒶] [𝑦𝐴 ] -
[129] 2015 HMT LKF+LKF LKF1: [𝑔̂, 𝒶], LKF2: [𝑚
̂, 𝒹] LKF1: [𝑦𝐴 ], LKF2: [𝑦𝑀 ] -
[232] 2015 AVTC GDA+LKF [Q] [𝑦𝐴 ] GDA step size ∝ 𝑦𝐺 𝑇𝑠
[233] 2015 HMT EKF [Q] [𝑦𝐴 ] Switching ℛ between three levels
[234] 2015 HMT LKF [ℯYaw, ℯ𝐾𝐺 , 𝑏𝐺 ] [Yaw from 𝑦𝑀 ] -
[161] 2015 HMT LKF [ℯEA, ℯ𝑏𝐺 ] - -
Constrained-
[14] 2015 - ̂, DCM, 𝒶, 𝒹]
[𝜔 [𝑦𝐺 , 𝑦𝐴 , 𝑦𝑀 ] -
LKF
Constrained-
[15] 2015 - [DCM(3), 𝑏𝐺,𝑘 ] [𝑦𝐴 ] Tuning ℛ based on ‖𝑦𝐴 ‖
EKF
[137] 2016 - LKF [Q] [𝑦𝐴 , 𝑦𝑀 ] Tuning ℛ based on accelerometer residuals
[ℯposition, ℯvelocity, ℯEA,
[235] 2016 AVTC CF-EKF [Position, velocity] from GNSS -
ℯ𝑏𝐺 , ℯ𝑏𝐴 , ℯ𝒹]
[74] 2016 - LKF [Q] [Position, velocity] from GNSS -
Two-layer
[180] 2016 HMT/ SVTC EKF 1: [𝑔̂], EKF 2: [𝑚
̂] EKF1: [𝑦𝐴 ], EKF2: [𝑦𝑀 ] Switching ℛ between three levels
LKF
[160] 2016 HMT CKF [ℯEA, ℯ𝑏𝐺 ] [EA from vision system] Adaptive fading factor by fuzzy logic
[236] 2016 HMT LKF [EA, 𝑏𝐺 ] [Attitude from 𝑦𝐴 ] ℛ = ℛ𝑛𝑜𝑚𝑖𝑛𝑎𝑙 + ‖𝒶‖2
[237] 2016 HMT CKF [ℯEA, ℯ𝑏𝐺 ] [𝑦𝐴 , 𝑦𝑀 ] Tuning ℛ using Hidden Markov Model
[149] 2017 AVTC EKF [Q] [𝑦𝐴 ] -
[238] 2017 SVTC CKF [EA, 𝑏𝐺 ] [𝑦𝐴 , velocity from GPS] -
[239] 2017 AVTC EKF [Q, 𝑏𝐺 ] [𝑦𝐴 , 𝑦𝑀 ] -
[125] 2017 AVTC LKF [Q] [𝑞̂ from 𝑦𝐴 & 𝑦𝑀 ] -
[40] 2017 SVTC LKF [Q] [𝑞̂ from 𝑦𝐴 & 𝑦𝑀 ] 𝒹 rejection using vector selection
Two-layer
[130] 2017 - LKF1: [𝑔̂], LKF2: [𝑚
̂] LKF1: [𝑦𝐴 ], LKF2: [𝑦𝑀 ] ℛ1 ∝ ‖𝒶‖2 , ℛ2 ∝ ‖𝒹‖2
LKF
[240] 2017 - EKF [Q, 𝜔
̂] [𝑦𝐴 , 𝑦𝐺 ] -
Marine satellite
[241] 2017 tracking CKF [ℯQ, ℯ𝑏𝐺 ] [𝑦𝐴 , 𝑦𝑀 ] -
antennas
50
Wearable
[242] 2017 EKF ̂, 𝜔̇ , Q, Q̇, Q̈, 𝒹, 𝒹̇]
[𝜔 [𝑦𝐺 , 𝑦𝐴 , 𝑦𝑀 ] -
robotic systems
HMT with
[120] 2018 GDA+LKF [Q] [𝑞̂], 𝑞̂ from GDA(𝑦𝐴 ,𝑦𝑀 ) -
smartphones
[172] 2018 - CKF [ℯEA, ℯ𝑏𝐺 ] [𝑦𝐴 , 𝑦𝐺 ] Tuning ℛ using Hidden Markov Model
[71] 2018 - LKF [Q] [𝑞̂ from 𝑦𝐴 & 𝑦𝑀 ] -
ℛ = ℛ𝑛𝑜𝑚𝑖𝑛𝑎𝑙 + 𝛼𝑘
[121] 2018 - GDA+LKF [Q] [𝑞̂], 𝑞̂ from GDA(𝑦𝐴 ,𝑦𝑀 )
𝒹 rejection using vector selection
Two-layer CKF1: [ℯAttitude], CKF2: CKF1: [ℯ𝑞̂ from 𝑦𝐴 ], CKF2: [ℯ𝑞̂
[243] 2018 HMT Tuning ℛ by variances of errors
CKF [ℯYaw] from 𝑦𝑀 ]
[Position, velocity, Q, 𝑏𝐺 ,
[244] 2018 SVTC EKF [Position from GPS, 𝑞̂ from 𝑦𝐴 ] -
𝑏𝐴 ]
2
ℛ𝐴 ∝ exp(‖𝑦𝐴 − 𝐺 𝑔‖ )
[179] 2018 SVTC Two-step LKF [Q, 𝑏𝐺 ] Step1: [𝑦𝐴 , 𝑦𝐺,𝑧 ], Step2: [𝑦𝑀 ] 2
𝐺
ℛ𝑀 ∝ exp(‖𝑦𝑀 − 𝑚‖ )
[128] 2019 - LKF+LKF LKF1: [𝑔̂], LKF2: [𝑚
̂] LKF1: [𝑦𝐴 ], LKF2: [𝑦𝑀 ] -
[245] 2019 HMT CKF [ℯEA, 𝑏𝐺 , 𝒹] [𝑦𝐴 , 𝑦𝑀 ]
Combined Sage-Husa [247] and Strong Tracking
[246] 2019 SVTC CKF [ℯEA, ℯvelocity, ℯposition] [Velocity, Position] from GPS
[248] KFs
𝒬 ∝ 𝑐𝑜𝑠𝑛𝑡 + max(‖𝜔‖ − 𝑡ℎ𝑟, 0)
[249] 2019 HMT EKF [Q] [𝑦𝐴 , 𝑦𝑀 ] ℛ𝐴 ∝ 𝑐𝑜𝑠𝑛𝑡 + max(|‖𝑦𝐴 ‖ − ‖ 𝐺 𝑔‖| − 𝑡ℎ𝑟, 0)
ℛ𝑀 ∝ 𝑐𝑜𝑠𝑛𝑡 + max(|‖𝑦𝑀 ‖ − ‖ 𝐺 𝑚‖| − 𝑡ℎ𝑟, 0)
[250] 2020 HMT EKF [EA] [EA] obtained by NCF Innovation-based adaptive estimation tuning of ℛ
[251] 2020 MRTC EKF [Q, 𝑏𝐺 ] [𝑞̂], 𝑞̂ from TRIAD(𝑦𝐴 ,𝑦𝑀 ) Tuning ℛ by fuzzy logic
[252] 2020 HMT LKF [Q] [𝑦𝐴 ] -
LKF1: [DCM(3)], LKF2: 2
[253] 2020 HMT Cascade LKF
[𝑏𝐺 ]
LKF1: [𝑦𝐴 ], LKF2: [𝑦𝐴 ] ℛ𝐴 ∝ ‖𝒶‖2 + ‖𝑦𝐴 − 𝐺 𝑔‖
[254] 2020 HMT GDA+EKF [Q, 𝑏𝐺 ] [𝑞̂], 𝑞̂ from GDA(𝑦𝐴 ,𝑦𝑀 ) GDA step size ∝ ‖𝑦𝐺 ‖, 𝑒𝑟𝑟𝑜𝑟(𝑦𝐴 , 𝑦𝑀 )
Post-EKF error reduction by proportional-integral
[255] 2020 SVTC EKF [Q] [𝑦𝐴 , 𝑦𝑀 ]
controller
[Position, velocity, Q, 𝑏𝐺 ,
[256] 2020 AVTC EKF [Position, velocity, 𝑦𝐴 ] -
𝑏𝐴 , LiDAR bias]
51
[257] 2020 RATC CKF [ℯEA, ℯ𝑏𝐺 ] [𝑦𝐴 , 𝑦𝑀 ] Adaptive tuning of ℛ using ellipsoidal method
- Application: STC: Spacecraft (satellite) tracking/control; HMT: Human motion tracking; MRTC: Mobile robot tracking/control; RATC: Robotic arm tracking/control; AVTC: Aerial vehicle
tracking/control; SVTC: Surface vehicle tracking/control; GNSS: Global Navigation Satellite System.
- Method: GNA: Gauss-Newton algorithm; GDA: Gradient descent algorithm; FQA: Factored quaternion algorithm, QUEST: QUaternion ESTimator; TRIAD: TRi-axial Attitude
Determination; ZUPT: Zero-Velocity-Update strategy.
- State vector components: Q: Quaternion parametrization of orientation; EA: Euler angle parametrization of orientation; DCM: Direction cosine matrix parametrization of orientation.
- Measurement-update: 𝑏𝐺 : Gyroscope bias; 𝑏𝐴 : Accelerometer bias; 𝑏𝑀 : Magnetometer bias; 𝒶: external non-gravitational acceleration; 𝒹: magnetic disturbance; 𝑞̂: Orientation used in
measurement-update of KF; 𝜔 ̂: Estimated angular velocity; 𝑔̂: Estimated gravitational acceleration; 𝑚
̂ : Estimated geomagnetic field.
- Notes: 𝒬: System model covariance matrix; ℛ: Measurement model covariance matrix; 𝒫: State error covariance matrix; 𝒦: Kalman filter gain.
52
Figures
Fig. 1 Flowchart and frequency response of a Complimentary Filter (CF). (a) The general
structure of a CF; (b) Flowchart of the CF with low-pass filter transfer function defined as
𝒞(𝑠) 𝑘
ℒ(𝑠) = 𝒞(𝑠)+𝑠 where 𝒞(𝑠) = 𝑘𝑃 + 𝑠𝐼 , and 𝑘𝑃 and 𝑘𝐼 are the proportional and integral gains,
respectively; (c) Frequency response of the proportional CF, (d) Frequency response of the
proportional-integral CF.
Fig. 2 Flowchart of a general (a) Linear Kalman Filter and (b) Extended Kalman Filter. 𝓍 is the
state vector, 𝓏 is the measurement vector. 𝒫 is the state error covariance matrix. ℱ and 𝒻(∙) are
the state transition matrix and equation, respectively. ℋ and 𝒽(∙) are the measurement prediction
matrix and equation, respectively. 𝒬 and ℛ are the system and measurement model covariance
Fig. 3 Flowchart of a general sensor fusion algorithm (SFA) containing offline calibration of
sensors, vector selection for imperfect measurement rejection, and adaptive gain tuning.
53
Fig. 1
54
Fig. 2
55
Fig. 3
56