Journal of Sensors
Volume 2016 (2016), Article ID 4343797, 15 pages
http://dx.doi.org/10.1155/2016/4343797

Research Article

Human Motion Capture Algorithm Based on Inertial Sensors

Pengzhan Chen, Ye Kuang, and Jie Li

School of Electrical and Automation Engineering, East China Jiaotong University, Nanchang, Jiangxi 330013, China

Received 24 May 2016; Revised 13 September 2016; Accepted 27 October 2016

Academic Editor: Nicola Donato

Copyright © 2016 Pengzhan Chen et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Abstract.

On the basis of inertial navigation, we conducted a comprehensive analysis of the human body kinematics principle. From the direction of two characteristic parameters, namely, displacement and movement angle, we calculated the attitude of a node during the human motion capture process by combining complementary and Kalman filters. Then, we evaluated the performance of the proposed attitude strategy by selecting different platforms as the validation object. Results show that the proposed strategy for the real-time tracking of the human motion process has higher accuracy than the traditional strategy.

1. Introduction

Motion capture is a multidisciplinary application field that features the interaction of recently developed technology for different areas, such as electronics, communication, control, computer graphics, human ergonomics, and navigation. Moreover, motion capture is currently a research hotspot in the field of human–computer interaction and has thus undergone extensive development in film and television production [1], robot control [2], interactive games [3], sports training [4], medical rehabilitation [5], and other fields.

Traditional motion capture techniques are mostly extended on the basis of optical properties and are used to drive a virtual character model to achieve refactoring movement after being filmed and processed in a professional studio by multiple high-resolution cameras. The common optical systems are Vicon [6] and BTS [7]. Such systems can generally provide high accuracy, but their price is relatively high for public use. Hence, these systems are commonly used in scientific research institutes, large laboratories, and other organizations. With the development of miniature sensing and navigation technologies, motion capture technology based on motion sensors has become possible. At present, the use of motion capture systems, which consist of multiple sensor nodes attached to different parts of the body, has increased gradually, thereby combining data acquisition, processing, and communication [8–11]. Compared with optical systems, motion capture systems feature simple equipment, low cost, and strong fault tolerance.

The human body is a multi-rigid-body structure composed of multiple bones. The movement process of the human body is mainly determined through the position of the joints that connect bones. Such process mainly reflects the mutual movement between bone changes and the relative displacement of space. Human motion capture based on motion sensing obtains accurate data of two characteristic parameters, namely, joint movement angle and displacement as the center, with the sensor node collecting real-time original motion data. Angle and displacement parameters are calculated by using a related algorithm to achieve data mapping with the motion model, as well as the real-time tracking of human body movement. The principle of the model is similar to the navigation in an inertial navigation system, a key part of which is the attitude solution.

( 1) Problem Formulation. The problem of improving accuracy of the real-time tracking of the human motion process has been discussed in a host of papers [12–16]. The methods proposed in these articles have addressed the problem to some extent but cause others problems as well, such as increasing the computational complexity. Obviously, accuracy and real-time performance are taking more and more significant roles in motion capture systems. So, captured motion data should be simplified to meet the corresponding requirements. In the film and video game production, the displacement information and rotation information are widely used to represent human actions. Therefore, in these paper, the parameters which can restore the original action well have been chosen, namely, displacement and angle. Then, the new filter technique combining complementary and Kalman filters has been introduced in motion data processing. Verified by experiment, the new strategy has been proved to be more robust and effective.

( 2) Present Study. Several scholars have conducted related research on the attitude algorithm strategy for human body motion capture. Yun et al. [12] proposed a Kalman filter algorithm based on a quaternion, which uses acceleration and the low frequency part of the magnetic field strength to estimate the direction under low speed cases and the angular velocity to measure attitude under high speed cases. Roetenberg [13, 14] proposed a type of compensation Kalman filter algorithm by combining compensation and error models to compensate for the estimated effect of magnetic field change. However, the algorithm model is complex and does not consider the acceleration interference condition under high-speed motion. Chou [15] and other researchers used the QUEST algorithm, which estimates attitude on the basis of the quaternion obtained through acceleration and magnetic vectors and further integrates angular velocity. This type of treatment solves the observation of the linearized equation. However, the computational complexity of the QUEST algorithm is high. The author later adopted the factor quaternion algorithm (FQA) to replace the QUEST algorithm [16] and reduce the computational complexity. However, the aforementioned methods have not completely addressed the removal of magnetic field and acceleration interference.

Considering the complexity of existing algorithms and interference conditions, this study proposes a complementary Kalman filtering algorithm model. By fusing the original data from the sensor, extracting the relatively accurate characteristic parameters, namely, displacement and angle, and selecting different platforms, the accuracy of the attitude algorithm and its real-time performance can be evaluated effectively.

2. Methods

Human body movement in a three-dimensional space is mainly characterized by the angle of the relative movement between the body and the space of the change of displacement. Motion capture is the process of capturing the angle and displacement of human body movement during actual movement to determine the reoccurrence of movement. In this study, the process of calculating movement characteristic parameters is shown in Figure 1.

Figure 1: Process for calculating parameters.

According to the principle of human anatomy, the human body can probably be divided into the following parts: pelvis and thigh, leg, foot, spine, head, arms, elbows, and hands. The structure of the hand is different from that of the other parts, and we thus distinguish it from the other parts. Each body part is connected by joints. We take the pelvis as the reference node, set the corresponding sensors to every part, collect human movement information, use the related algorithms, and calculate the human body characteristic parameters to track human body movement. The layout of the sensors on the body and hand is shown in Figures 2(a) and 2(b), respectively. Transformation involves three types of coordinate systems, namely, the global coordinate system (GCS), the body coordinate system (BCS), and the sensor coordinate system (SCS). In this study, we define the GCS as the -axis referring to the front, the -axis referring to the right, the -axis referring to the top, and the entire right hand coordinate system. In the BCS, each body part corresponds to the coordinate system. The SCS is defined as the coordinate system of the sensor. We assume that the BCS is the SCS after calibration to facilitate analysis.

(a)

(b)

Figure 2: (a) Main body structure. (b) Main hand structure.

2.1. Sensing Signal Modeling

This article selects the sensor model MPU9250 (integrated three-axis accelerometer, three-axis gyroscope, and three-axis magnetometer). According to [17], we can model the sensor signal as follows.

For the three-axis gyroscope, is the angular velocity, is the gyro drift, and is the white noise interference. Then, the signal measured by the gyroscope can be expressed as follows:

For the three-axis accelerometer, is the acceleration, is the gravitational acceleration, is the accelerometer offset, and is the white noise interference. Then, the signal measured by the accelerometer can be expressed as follows:

For the three-axis magnetometer, is the magnetic field, is the geomagnetic disturbance, and is the white noise interference. Then, the signal measured by the geomagnetometer can be expressed as follows:

The gyroscope and accelerometer offset changes can be represented by the Gaussian white noise and the covariance matrix of the first-order Markov model as follows:

Figures 3, 4, and 5 show the initial accelerometer, gyroscope, and magnetometer dynamic measurements, respectively.

Figure 3: Initial dynamic measurement values of the accelerometer.

Figure 4: Initial dynamic measurement values of the gyroscope.

Figure 5: Initial dynamic measurement values of the magnetometer.

2.2. Displacement Solution Strategy

We use the quaternion to represent the orientation relationship of movement to avoid the occurrence of a singular value in the process of movement. On the basis of [18] and the signal model of the gyroscope, the position relation of each limb in the GCS at time can be expressed as follows:

where , is the sampling interval time, , and is the quaternion used to locate the direction at time . is a 4 × 4 skew symmetric matrix expressed as follows:

where is the crossover operator. Prediction speed and displacement can be achieved through the integration of acceleration, that is,

where

where is the gravitational vector under the BCS and is the direction cosine matrix described by the forecast quaternion . Figure 6 shows the displacement motion curve calculated at this time.

where and is the crossover operator of . Although the relative displacement parameters can be computed, calculating a large amount of data with high accuracy is difficult because of the acceleration sensor drift and noise interference, as shown in the curve in Figure 6. Moreover, the integral process continues to result in errors. As such, the displacements at this point are inaccurate and feature a large data drift. In this case, such displacements require filtering. We use the complementary Kalman filter fusion process on the displacement parameters. The solution strategy is shown in Figure 7.

Figure 6: Displacement after integration of acceleration when resting.

Figure 7: Displacement solution strategy.

We establish the state error and measurement models as follows:

where is the process noise of the covariance matrix and is the state transition matrix. Taking a section of the human body as an example, the state error vector can be represented by the previously presented formula, is the measurement error, is the measurement noise of the covariance matrix , and is the measurement matrix.

The real motion quaternion can be represented by the predicted value and error value as follows:

After processing according to the literature [19, 20], we can obtain a real-time update of the direction positioning error, velocity error, and displacement error value.

where , , is a 3 × 3 unit matrix, and is the crossover operator of the accelerometer for acceleration after the removal of the offset.

According to [17], the acceleration and magnetic vectors can be normalized, and the input of the measured values of the complementary Kalman filter can be calculated. According to [18, 21], direction, speed, and displacement at time can be corrected. The correction equations can be expressed as follows:

where , , and are the real value, predicted value, and error value of the direction positioning error, respectively, at time . , , and are the actual displacement, prediction displacement, and error of displacement at time , respectively. Finally, by updating the Kalman filter, the final updated equations of displacement can be obtained as follows:

where is the displacement under the global coordinates after using the Kalman filter, is the Kalman gain, is the forecasting displacement vector, is the process noise, is the measurement matrix, and is the measurement noise, from which the ultimate displacement can be obtained.

2.3. Angle Solving Strategy

The traditional attitude algorithm strategy was developed on the basis of inertial navigation and initially involved the use of a gyroscope to obtain the integrated solutions of attitude angles. However, given the influence of integral drift and the large deviation of calculated attitude angles, the traditional attitude algorithm strategy cannot be easily used in the practical process. Hence, we combine gyroscope and accelerometer measurements to calculate gesture. However, the calculation of the navigation angle produces a relatively large drift because of the influence of the geographical field. Figures 8 and 9 show the calculation results obtained with a three-axis gyroscope and a gyroscope combined with an accelerometer.

Figure 8: Attitude angle solved by using a gyroscope.

Figure 9: Attitude angle solved by using a gyroscope combined with an accelerometer.

We put forward the use of an accelerometer, a magnetometer, and a gyroscope to calculate attitude angle data. Fusing the data of gyro feedback when calculating the angle of node movement to improve the stability of posture is necessary because the dynamic response of the posture calculated with the accelerometer and magnetometer is relatively poor and is sensitive to noise vibration.

The fusion process begins with the FQA [20] to conduct a combined calculation of the data pretreated with the accelerometer and magnetometer and to obtain the initial attitude angle. We convert the Euler angle to quaternions , , , and and use them as a set of reference quantities to avoid a singular value. Then, we introduce the complementary filter to conduct the fusion calculation on posture and to obtain a stable attitude quaternion. The calculated attitude information is accurate. However, a small amplitude oscillation is still observed in the stationary process. Then, by using the transformation formula of the quaternion and Euler angle, the Euler angle of movement can be obtained. The mutual transformation between a quaternion and a Euler angle can be shown in (15). The motion curve quaternion transferring into the Euler angle is shown in Figure 10.

(a)

(b)

(c)

Figure 10: (a) The -axis angle oscillation after using the complementary filter. (b) The -axis angle oscillation after using the complementary filter. (c) The -axis angle oscillation after using the complementary filter.

We use the Kalman filter to filter the attitude quaternion and consequently improve the disturbance resistance and anti-interference performance of the proposed strategy. The decoding strategy is shown in Figure 11.

Figure 11: Angle solution strategy.

In the decoding process, we define the attitude quaternion from the GCS to the human body as and set the quaternion error as follows:

where . The quaternion complementary filter algorithm can be represented by the following formulas:

where , , is the triaxial gyro output, and is the drift calculated with the gyroscope. When , , the quaternion attitude angle at the moment can be calculated by using the complementary filter and can be further corrected by using the Kalman filter through the model and the measurement noise matrices and . The matrix forms of and are expressed as follows:

In the experimental process, , , and . The optimal attitude angle recurrence formula at time can be expressed as follows:

where is the state transition matrix, is the Kalman gain, the measurement matrix, and is the initial value. By using the Kalman filter, the optimal estimates of the angle can be obtained. Figure 12 shows a set of quaternions of the movement angle calculated with this algorithm. Through the quaternion and Euler angle transformation, the Euler angle can be obtained by using the Kalman filter. The attitude angle, compared with the complementary filter, has smaller shocks, as shown in Figure 13.

Figure 12: Quaternion of the movement angle.

(a)

(b)

(c)

Figure 13: (a) Attitude contract of the -axis after using the Kalman and complementary filters. (b) Attitude contract of the -axis after using the Kalman and complementary filters. (c) Attitude contract of the -axis after using the Kalman and complementary filters.

3. Results

We evaluate the performance of the algorithm by conducting the following experiments.

(1) First, in evaluating displacement, we take the foot node as the reference, select the traditional optical capture system to capture the displacement of the foot node as a reference value, and compare the measured displacement calculated with the designed algorithm and the acceleration of the quadratic integral with the displacement captured by the optical capture system. The optical capture system is shown in Figure 14. The detailed contrast displacement curve of the human body in walking motion is shown in Figure 15. The error curve is shown in Figure 16. Table 1 describes in detail the algorithm compared with the error results after the second integral process.

Table 1: Comparison of the displacement errors of the proposed algorithm and the quadratic integral.

Time (s)
Axis
0
5
10
15
20
25

Displacement error of proposed method (m)
-axis
0
0.01
0.021
−0.02
−0.02
0.03

-axis
0
0
−0.05
0
0.01
−0.02

-axis
0
0.01
0.02
0.03
0.06
0.01

Displacement error of double integration (m)
-axis
0
0.02
0.03
1.35
3.21
3.83

-axis
0
0.24
0.49
0.87
1.11
1.28

-axis
0
−0.17
−0.27
−0.38
−0.41
−0.47

Figure 14: Optical capture system attached to the legs of a subject.

(a)

(b)

(c)

Figure 15: (a) Comparison results of the -axis displacement. (b) Comparison results of the -axis displacement. (c) Comparison results of the -axis displacement.

(a)

(b)

(c)

Figure 16: (a) The -axis displacement error. (b) The -axis displacement error. (c) The -axis displacement error.

(2) When evaluating the characteristic angle, the algorithm we finally adopt uses the quaternion to represent such angle. However, the quaternion visual is weak and cannot be verified. As such, the transformation relation of the quaternion and Euler angle transforms the characteristic angle into the Euler angle. We then take the multiple spindle motor debugging platform equipped in the laboratory as the object. The multiple spindle motor debugging platform is shown in Figure 17. The angle of the axial rotation of the sensor is presented by the motor rotation angle and serves as a reference. We compare the characteristic and reference quantities measured by the algorithm with the characteristic quantity measured by the commonly used complementary filter. Figures 18(a), 18(b), and 18(c) show the comparison results of the calculated angles. Figures 19(a), 19(b), and 19(c) show the error curves. Table 2 describes in detail the differences between the calculation angle obtained by using the proposed algorithm and that obtained with the complementary filter.

Table 2: Comparison of the calculated angle errors obtained with proposed algorithm and the complementary filter.

Sampling point
Axis
0
200
400
600
800
1,000

Angle error of proposed method (°)
Yaw
0
0.11
0.89
−0.09
−0.01
0

Pitch
0.01
0.51
0.49
2.11
−0.03
−0.01

Roll
0
−0.41
−0.43
−0.39
−0.04
0.01

Angle error of complementary filter (°)
Yaw
0.09
0.15
−0.27
−1.11
−0.09
0.01

Pitch
0
−0.14
0.78
0.42
−0.47
−0.04

Roll
0.12
−0.86
−0.83
−1.02
−0.79
−0.21

Figure 17: Multi-axle motor debugging platform.

(a)

(b)

(c)

Figure 18: (a) Comparison results of yaw angle. (b) Comparison results of pitch angle. (c) Comparison results of roll angle.

(a)

(b)

(c)

Figure 19: (a) Yaw error. (b) Pitch error. (c) Roll error.

As indicated in the validation results, the error of displacement is maintained within 0.05 m in this study. The calculated motion angle error is within 1°. The accuracy of the proposed algorithm under dynamic conditions is higher than that of the traditional complementary filter algorithm, which has several reference values.

(3) In addition to evaluating the accuracy of the algorithm, real-time performance is also an important indicator that should be considered. On the basis of the node call time of the project, a timing clock is designed to calculate the attitude updating cycle. During the experimental process, six experiments are conducted to extract data for an average of 500 times for the attitude updating cycle test. Then, the experimental results are compared with the results of the attitude algorithm cycle of the traditional complementary filter algorithm. The experimental comparison results are shown in Table 3.

Table 3: Comparison of the attitude updating cycle.

Experiment times
1
2
3
4
5
6

Proposed method (ms)
11.11
11.10
11.11
11.10
11.10
11.11

Complementary filter (ms)
10.90
10.90
10.91
10.89
10.90
10.89

Considering the influence of the Kalman filter, we can deduce that the time response of the algorithm is slightly lagging compared with that of the complementary filter. The refresh rate of the proposed algorithm is calculated to be approximately 11 ms. Although such value is higher than that of the complementary filter, the refresh rate can basically satisfy the real-time system requirement, and the effect on the entire system is not significant.

Through a comprehensive analysis of the calculating errors and real-time algorithm and by considering the weight of the calculated precision and update cycle, we can conclude that the designed human movement algorithm can basically meet important requirements.

Finally, a new type of related motion capture device is designed in this study to evaluate the practicability of the algorithm. The device is mainly composed of a sensor and gathering nodes attached to different parts of the body. The sensor node is a combination of the MPU9250 and STM32F103 modules, which are connected through the SPI interface. The sensor nodes are shown in Figure 20. The gathering node is a combination of the STM32F103 and EMW3162WIFI modules, as shown in Figure 21. The gathering and sensor nodes communicate through the CAN bus. Feature data are collected by the gathering node and sent to the PC-3D motion tracking interface through the WIFI module. By considering the data-driven characteristic parameters, the movement model can track real human body movement. The software interface of the motion capture system is shown in Figure 22. The system structure is shown in Figure 23.

Figure 20: Sensor node module.

Figure 21: Gathering node module.

(a)

(b)

Figure 22: (a) Body motion capture interface. (b) Hand motion capture interface.

Figure 23: Structure of motion capture system.

Figures 24(a) and 24(b) show the track effect of the motion capture system. By comparing the driving effect of the model with the calculated characteristic parameters and real human body movement process, we find that the proposed algorithm can be used to track real human body movement and features a certain reference significance.

(a)

(b)

Figure 24: (a) Body movement tracking effect. (b) Hand movement tracking effect.

From the above experiments, the proposed method has been proven to have high accuracy in both displacement and characteristic angle and have good real-time performance. Of course, it is slightly inferior to the traditional optical systems in [6, 7], but its price is relatively lower and can meet the needs of the public. In [22], the author proposed an adaptive complementary filter for identifying human upper arm movements by replacing the coefficients which can be dynamically bound with a linear relationship to variables to minimize error of angle estimation. It demonstrated root mean squared error of for upper body limb orientation estimation when compared to gold standard VICON optical motion capture system. However, it will cost pretty much time to deal with data from accelerometer and gyroscope, as shown in Table 4. In our method, angle and displacement parameters are calculated by using a related algorithm, so it will save a lot of time without sacrificing accuracy and the algorithm can be simplified by combining complementary filter with Kalman filter, as shown in Table 5 and Figure 25.

Table 4: Comparison of the attitude updating cycle.

Experiment times
1
2
3
4
5
6

Proposed method (ms)
11.11
11.10
11.11
11.10
11.10
11.11

Adaptive complementary filter (ms)
12.12
12.11
12.11
11.90
11.90
12.10

Table 5: Comparison of the calculated angle errors obtained with proposed algorithm and the adaptive complementary filter.

Sampling point
Axis
0
200
400
600
800
1,000

Angle error of proposed method (°)
Yaw
0
0.11
0.89
−0.09
−0.01
0

Pitch
0.01
0.51
0.49
2.11
−0.03
−0.01

Roll
0
−0.41
−0.43
−0.39
−0.04
0.01

Angle error of adaptive complementary filter (°)
Yaw
0.04
0.13
0.52
−0.65
−0.09
0

Pitch
0.02
0.32
0.60
1.11
−0.21
−0.12

Roll
0.03
−0.56
−0.65
−0.89
−0.42
−0.13

Figure 25: Elbow angles were calculated with proposed method and adaptive complementary filter compared with optical motion capture system.

4. Discussion and Conclusion

A calculation method for determining the characteristic parameters in the human body movement process was designed in this study on the basis of the distributed motion sensor motion capture platform. Compared with the traditional decoding strategy, this method is implemented from the perspective of attitude data error and real-time algorithm. Then, different platforms were selected as the experimental object, and the effectiveness of the proposed algorithm was tested. Finally, a motion capture test on the characteristic parameters extracted with the proposed algorithm is conducted to verify the performance of the proposed algorithm in terms of the effect of motion tracking. The proposed algorithm still has several deficiencies. For instance, in the case of magnetic fields, the data can suffer from a large deviation, and the motion capture model needs further optimization, for example, to generate bone and skin models. Generally, the proposed design has a certain innovation and application value and can thus serve as a new reference for the future research and design of motion capture systems.

Competing Interests

The authors declare that they have no competing interests.

Acknowledgments

This research is supported by National Natural Science Foundation of China (61663011) and Postdoctoral fund of Jiangxi Province (2015KY19).

References

W. Tan, W. Li, Y. Zheng, and X. Zhou, “A physical game based on wireless sensor networks,” International Journal of Distributed Sensor Networks, vol. 5, no. 1, p. 68, 2009.

H. Wei and J. Zhao, “Real-time control of 7R manipulator based on motion capture,” Journal of Mechanical Engineering, vol. 23, no. 49, pp. 68–73, 2013.

Z. Wang, S. Qiu, Z. Cao, and M. Jiang, “Quantitative assessment of dual gait analysis based on inertial sensors with body sensor network,” Sensor Review, vol. 33, no. 1, pp. 48–56, 2013.

E. S. Wallace, J. E. Hubbel, and M. J. Rogers, “Driver shaft length influences on posture and swing tempo in skilled golfers,” The Engineering of Sport, vol. 1, no. 5, pp. 216–223, 2004.

Z. Wang, C. Zhao, and S. Qiu, “A system of human vital signs monitoring and activity recognition based on body sensor network,” Sensor Review, vol. 34, no. 1, pp. 42–50, 2014.

M. Senesh and A. Wolf, “Motion estimation using point cluster method and Kalman filter,” Journal of Biomechanical Engineering, vol. 131, no. 5, Article ID 051008, pp. 1–7, 2009.

H.-O. Karnath, J. Rüter, A. Mandler, and M. Himmelbach, “The anatomy of object recognition—visual form agnosia caused by medial occipitotemporal stroke,” Journal of Neuroscience, vol. 29, no. 18, pp. 5854–5862, 2009.

E. R. Bachmann, Inertial and Magnetic Tracking of Limb Segment Orientation for Inserting Humans into Synthetic Environments, Naval Postgraduate School, Monterey, Calif, USA, 2000.

D. Roetenberg, H. J. Luinge, C. T. M. Baten, and P. H. Veltink, “Compensation of magnetic disturbances improves inertial and magnetic sensing of human body segment orientation,” IEEE Transactions on Neural Systems and Rehabilitation Engineering, vol. 13, no. 3, pp. 395–405, 2005.

D. Roetenberg, Inertial and Magnetic Sensing of Human Motion, University of Twente, Enschede, Netherlands, 2006.

X. Yun and E. R. Bachmann, “Design, implementation, and experimental results of a quaternion-based Kalman filter for human body motion tracking,” IEEE Transactions on Robotics, vol. 22, no. 6, pp. 1216–1227, 2006.

X. Yun, E. R. Bachmann, and R. B. McGhee, “A simplified quaternion-based algorithm for orientation estimation from earth gravity and magnetic field measurements,” IEEE Transactions on Instrumentation and Measurement, vol. 57, no. 3, pp. 638–650, 2008.

D. Roetenberg, P. J. Slycke, and P. H. Veltink, “Ambulatory position and orientation tracking fusing magnetic and inertial sensing,” IEEE Transactions on Biomedical Engineering, vol. 54, no. 5, pp. 883–890, 2007.

J. B. Kuipers, Quaternions and Rotation Sequences, Princeton University Press, Princeton, NJ, USA, 1999.

J. C. K. Chou, “Quaternion kinematic and dynamic differential equations,” IEEE Transactions on Robotics and Automation, vol. 8, no. 1, pp. 53–64, 1992.

J. Solà, “Quaternion kinematics for the error-state KF,” Tech. Rep., Laboratoire d'Analyseet d'Architecture des Systèmes-Centre National de la Recherché Scientifique (LAAS-CNRS), Toulouse, France, 2012.

D. Choukroun, I. Y. Bar-Itzhack, and Y. Oshman, “Novel quaternion Kalman filter,” IEEE Transactions on Aerospace and Electronic Systems, vol. 42, no. 1, pp. 174–190, 2006.

S. Sun, X. Meng, L. Ji, J. Wu, and W.-C. Wong, “Adaptive sensor data fusion in motion capture,” in Proceedings of the 13th Conference on Information Fusion (Fusion '10), pp. 1–8, Edinburgh, UK, July 2010.

G. Welch and G. Bishop, “An introduction to the Kalman filter,” CMPSCITech.Rep. TR95-041, University of North Carolina at Chapel Hill, Chapel Hill, NC, USA, 2002.

Y. Li, A. Dempster, B. Li, J. Wang, and C. Rizos, “A low-cost attitude heading reference system by combination of GPS and magnetometers and MEMS inertial sensors for mobile applications,” Journal of Global Positioning Systems, vol. 5, no. 1-2, pp. 88–95, 2006.

G. Welch and G. Bishop, “An introduction to the Kalman filter,” Tech. Rep. 95-041, University of North Carolina, Chapel Hill, NC, USA, CMPSCI, 2002.

M. S. Karunarathne, S. W. Ekanayake, and P. N. Pathirana, “An adaptive complementary filter for inertial sensor based data fusion to track upper body motion,” in Proceedings of the 7th International Conference on Information and Automation for Sustainability (ICIAfS '14), pp. 1–5, IEEE, December 2014.