Keywords

1 Introduction

There have been multiple studies on human hand motion tracking for the development of the human-computer interfaces. Each system employs different types of sensing units to detect the hand orientation and finger configurations based on the applications. The systems for hand-shape and gesture recognition [7, 9] utilize a number of accelerometers to determine the hand orientation from the acceleration measurements. Some technologies [4, 6] use magnetic sensors to determine the movement of the thumb and fingers by sensing the change in magnetic field.

We have proposed and developed [16, 17] an IMU-instrumented glove to determine the orientation of the human hand as an alternative approach for human-computer interaction. The IMU-instrumented glove utilizes inertial measurement unit (IMUs), which consist of accelerometer, magnetometer and gyroscope within a single module.

The gyroscope is an inertial measurement device, which generates its output signal as a measurement of angular velocity. Then, the orientation can simply be determined by mathematical integration with respect to time. Nevertheless, the Microelectromechanical Systems (MEMS) gyroscope may produce a non-zero erroneous output signal even when the sensor is not in motion. This type of error is called “bias offset error”, which is a common error in MEMS inertial sensors that severely disrupts the orientation tracking and causes a major problem called “drift” in several applications [3, 18].

One of the common ways to improve orientation tracking and eliminate gyroscope drift in MEMS inertial measurement units is Kalman-based orientation filtering [13, 19]. Kalman-based orientation filtering is capable of determining the orientation estimates based on the measurements, state variable model, statistical modeling of noise, and other uncertainties. Kalman filtering has been used in numerous applications, especially in navigation systems for aircraft and autonomous vehicles [8, 12]. However, several studies [2, 10] utilize sensor fusion approaches to determine the orientation estimates by combining the measurements from gyroscopes, accelerometers and magnetometers. Since, modern MEMS IMUs contain gyroscopes, accelerometers and magnetometers in a single module, IMUs then become a valid option in terms of cost, dimension and integrability to be used for determining orientation in human-computer interaction applications.

This paper outlines the statistical analysis of the effect of novel and traditional orientation estimates on the orientation errors in the form of Euler Angles (Phi, Theta and Psi) from an IMU in a glove. The orientation correction algorithm using the gravity and magnetic North vectors was performed in real-time while the hand movement was being performed. The traditional orientation estimates were obtained from the on-board Kalman-based orientation filtering of the IMU.

2 Methodology and Materials

2.1 IMU-Instrumented Glove

For this evaluation, the “3-Space embedded” inertial measurement unit from Yost Labs, as shown in Fig. 1(a) is used. The Yost Labs 3-Space sensor is a commercial-grade Attitude and Heading Reference System (AHRS), consisting of tri-axial accelerometer, gyroscope and magnetometer. The module integrates on-board Kalman-based orientation filtering and can be connected to the host computer via a USB cable. The Yost Labs 3-Space sensor was attached on a glove, at the back of the hand (as shown in Fig. 1(b)), in order to measure the angular velocity and acceleration of the hand motion. In addition, the module can determine the direction of the magnetic field with respect to the sensor’s body frame. These three quantities are used to calculate the orientation estimates using the proposed algorithm.

Fig. 1.
figure 1

(a) Yost Labs 3-SpaceTM sensor compared with a quarter (b) IMU-instrumented glove.

Fig. 2.
figure 2

Block diagram of the orientation correction algorithm using the gravity vector and the magnetic North vector correction (GMV).

2.2 Orientation Correction Using the Gravity and Magnetic North Vectors

For this evaluation, we compared the performance of human hand orientation estimation obtained from the traditional method (Kalman-based orientation filtering) with our proposed orientation estimation method, which utilizes the sensor fusion approach. The approach initially involves the dead-reckoning process, which is the calculation of a current orientation based upon previously-determined angle and measured angular velocity from the MEMS gyroscope in the Yost Labs 3-Space sensor. The proposed orientation estimation method also includes the correction of the orientation estimates, utilizing the measurements of acceleration due gravity from the accelerometer and the direction of magnetic North from the magnetometer, both integrated in the same sensor module.

A novel orientation correction algorithm was previously proposed and implemented [15,16,17] to improve the orientation estimation. Each step of the orientation correction algorithm using the gravity and magnetic North vectors, labeled by a number in Fig. 2, is described as follows:

(1) Prediction of the Bias Offset Error. A gyroscope should generate zero angular velocity output when the sensor module is not in motion. However, a commercial-grade MEMS gyroscope can generate an erroneous output signal that deviates from zero, called “the bias offset error”, which yields an unacceptable orientation error, called “drift”. The bias offset error in a MEMS gyroscope changes randomly through time and consists of both deterministic and stochastic components [1]. Therefore, the bias offset error should be determined and updated whenever the IMU is in a static period. The bias offset error of the gyroscope reading (\(\hat{b}\)) is determined by averaging five consecutive gyroscope samples, in which their magnitudes are smaller than the pre-defined thresholds.

By subtracting the bias offset error (\(\hat{b}\)) from the raw gyroscope reading (\(\mathbf {\omega }_0\)), the unbiased angular velocity (\(\mathbf {\omega }_B\)) is obtained as described in Eq. 1. The unbiased angular velocity is then used to calculate the dead-reckoning orientation estimates in the next step.

$$\begin{aligned} \mathbf {\omega }_B = \mathbf {\omega }_0 - \hat{b} \end{aligned}$$
(1)

(2) Estimation of a Quaternion Orientation. For the purpose of orientation correction and to avoid the gimbal lock problem, quaternion notation will be used to describe the orientation in this work. A quaternion is a 4-dimensional quantity, consisting of one real part and three imaginary parts. It is a common representation for the rotation of an object in computer graphics [11].

The unbiased angular velocity (\(\mathbf {\omega }_B\)) obtained from the previous step is converted into a quaternion domain as the quaternion rate (\(\dot{q}\)), as shown in Eq. 2, where \(\hat{q}_0\) is the quaternion estimation from the previous iteration of the algorithm. At the beginning, \(\hat{q}_0\) is initialized as [0, 0, 0, 1] to indicate zero-degree rotation for all three axes.

$$\begin{aligned} \dot{q} = \frac{1}{2}\hat{q}_0\otimes \mathbf {\omega }_B \end{aligned}$$
(2)
$$\begin{aligned} q_G = exp((\varDelta t)\dot{q}\otimes \hat{q}_0^*)\otimes \hat{q}_0 \end{aligned}$$
(3)

Equation 3 implements the dead-reckoning process, in which the quaternion \(q_G\) represents the estimated orientation (current orientation) calculated from the quaternion rate \(\dot{q}\) (known angular velocity in quaternion domain) and the quaternion estimation from the previous iteration \(\hat{q}_0\) (previously-determined orientation). Here \(\varDelta t\) is the sampling interval of the data received from the IMU. This estimated quaternion (\(q_G\)) can be used to describe the approximate orientation of the IMU. However, the removal of the bias offset error from gyroscope reading can be over- or under-compensated. Consequently, a small amount of drift is still present and it is corrected by using the gravity and magnetic North vectors in the next step.

(3) Quaternion Correction. The acceleration due to gravity of the Earth always has its direction pointing towards the Earth’s center. The estimated orientation \(q_G\) in Eq. 3 obtained from the previous step, which can approximately describe the orientation of the IMU with respect to the Earth frame, can also be used to transform the gravity vector in the Earth frame into the gravity vector referenced in the IMU’s body frame, namely the calculated gravity vector (\(\mathbf {a}(q_G)\)), by using Eq. 4. In this equation, \(\mathbf {A}_{int}\) is the initial measured gravity vector in the Earth frame. Since the calculated gravity vector (\(\mathbf {a}(q_G)\)) is referenced in the IMU’s body frame, it can be used to compare with the measured gravity vector (\(\mathbf {a}_0\)) from the accelerometer, which ideally measures only the acceleration due to gravity (in the IMU’s body frame) when the IMU is in a static period.

$$\begin{aligned} {\mathbf {a}(q_G)} = {{q_G}^{*} \otimes {\mathbf {A}_{int}} \otimes {q_G}} \end{aligned}$$
(4)

The angular difference between the calculated gravity vector (\(\mathbf {a}(q_G)\)) and the measured gravity vector (\(\mathbf {a}_0\)) represents the error of orientation estimation, which can be determined in the form of a quaternion denoted by \(\varDelta q_A\), as shown in Eq. 5, where \(\mathbf {q}_{Av} = \mathbf {a}_0 \times \mathbf {a}(q_G)\), and \(q_{Aw} = {\left\| \mathbf {a}_0 \right\| } {\left\| \mathbf {a}(q_G) \right\| } + \mathbf {a}_0 \cdot \mathbf {a}(q_G)\). Equation 6 describes the correction of the orientation estimates \(q_G\) by \(\varDelta q_A\) since the product of 2 quaternions implies compounding of their rotations. The estimated quaternion \(\hat{q}_{GA}\) yields the orientation estimates fully corrected by the gravity vector.

$$\begin{aligned} \varDelta q_A = \mathbb {H}(\mathbf {q}_{Av},q_{Aw}) \end{aligned}$$
(5)
$$\begin{aligned} \hat{q}_{GA} = q_G \otimes \varDelta q_A \end{aligned}$$
(6)

The correction of the orientation estimate based on the magnetic North vector follows a similar principle. The direction of the Earth’s magnetic field is pointing from the geographic south pole to the geographic north pole and is constant at a particular point on the Earth surface. The estimated orientation \(q_G\) in Eq. 3 obtained from the dead-reckoning process, which can approximately describe the orientation of the IMU with respect to the Earth frame, can also be used to transform the magnetic North vector in the Earth frame into into the magnetic North vector referenced in the IMU’s body frame. This yields the calculated magnetic North vector (\(\mathbf {m}(q_G)\)), using Eq. 7, where \(\mathbf {M}_{int}\) is the initial measured magnetic North vector in the Earth frame. Since the calculated magnetic North vector (\(\mathbf {m}(q_G)\)) is referenced in the IMU’s body frame, it can be used to compare with the measured magnetic North vector (\(\mathbf {m}_0\)) from the magnetometer readings.

$$\begin{aligned} {\mathbf {m}(q_G)} = {{q_G}^{*} \otimes {\mathbf {M}_{int}} \otimes {q_G}} \end{aligned}$$
(7)

The angular difference between the calculated magnetic North vector (\(\mathbf {m}(q_G)\)) and the measured magnetic North vector (\(\mathbf {m}_0\)) can also represent the error of orientation estimation, which can be determined in the form of a quaternion denoted by \(\varDelta q_M\), as shown in Eq. 8, where \(\mathbf {q}_{Mv} = \mathbf {m}_0 \times \mathbf {m}(q_G)\), and \(q_{Mw} = {\left\| \mathbf {m}_0 \right\| } {\left\| \mathbf {m}(q_G) \right\| } + \mathbf {m}_0 \cdot \mathbf {m}(q_G)\). Equation 9 describes the correction of the orientation estimates \(q_G\) by \(\varDelta q_M\). The estimated quaternion \(\hat{q}_{GM}\) yields the orientation estimates fully corrected by the magnetic North vector.

$$\begin{aligned} \varDelta q_M = \mathbb {H}(\mathbf {q}_{Mv},q_{Mw}) \end{aligned}$$
(8)
$$\begin{aligned} \hat{q}_{GM} = q_G \otimes \varDelta q_M \end{aligned}$$
(9)

(4) Adaptive Quaternion Interpolation. The last step of the orientation correction algorithm is to calculate the final quaternion estimate from the orientation estimates fully corrected by the gravity vector (\(\hat{q}_{GA}\)) and the orientation estimates fully corrected by the magnetic North vector (\(\hat{q}_{GM}\)), based on the current conditions of the IMU. When the IMU is in rapid motion, the measurement from accelerometer includes an acceleration due to linear motion. Therefore, the accelerometer cannot be used as a reference for orientation correction. In contrast, the magnetometer measurement is not affected by the rapid movement of the hand (but it could be affected by local distortions of the magnetic field). To calculate the final orientation estimates (\(\hat{q}_{OUT}\)), Spherical Linear Interpolation (SLERP) [5] is adapted as an approach to determine the interpolated quaternion between two quaternions by using an adaptive weight (\(\alpha \)), as shown in Eq. 10.

$$\begin{aligned} \hat{q}_{OUT} = \frac{\hat{q}_{GM}sin((1-\alpha )\varOmega ) + \hat{q}_{GA}sin(\alpha \varOmega )}{sin(\varOmega )} \end{aligned}$$
(10)
$$\begin{aligned} \varOmega = cos^{-1}(\hat{q}_{GM} \cdot \hat{q}_{GA}) \end{aligned}$$
(11)

The adaptive weight \(\alpha \), ranging from 0 to 1, is a measure of the “stillness” of the IMU and can be used to linearly interpolate the two quaternions. When the IMU is in a static period, the value of \(\alpha = 1\), making the final estimated quaternion orientation (\(\hat{q}_{OUT}\)) match the orientation estimates using only the gravity vector correction (\(\hat{q}_{GA}\)). When the sensor is in rapid motion, the value of \(\alpha \) drops towards zero. Thus, the final estimated quaternion orientation (\(\hat{q}_{OUT}\)) is the interpolated quaternion, which tends towards the orientation estimates using only the magnetic North vector correction (\(\hat{q}_{GM}\)). The final estimated quaternion orientation (\(\hat{q}_{OUT}\)) is then used in the dead-reckoning process for the next iteration of the algorithm.

3 Implementation

3.1 Evaluation Protocol

Thirty human subjects were recruited to participate in the evaluation experiment. Each of the subjects wore the IMU-instrumented glove on his/her left hand and sat on a chair, facing towards a computer screen. A rectangular frame with guiding position and orientation markers was placed in between the subject and the computer screen. The testing environment was set up as shown in Fig. 3. Each subject was asked to perform specific hand movements as instructed on the computer screen. This instructed hand movement guide was created within a virtual 3D environment using Unity. The virtual 3D environment consists of a 3D left-hand model and the model of rectangular frame which is identical to the physical frame placed in between the subject and the computer screen. The model of the rectangular frame in the 3D environment helped the test subjects to easily understand and perform the requested hand movements correctly. The hand movement guide was displayed as an animation of the 3D hand model movement, visualizing a sequence of 10 pre-defined movements of the 3D hand (as shown in Fig. 4). The subjects were asked to replicate the orientation of each virtual hand pose shown on the screen while wearing the IMU-instrumented glove. The angular velocity, acceleration and the direction of magnetic field from an inertial measurement unit (IMU) attached at the back of the hand, were recorded. The proposed orientation correction algorithm, described in Sect. 2, was implemented to calculate the estimated orientation. The orientation estimates obtained with the orientation correction algorithm using the gravity and magnetic North vectors (GMV) were compared to quaternion outputs from the Kalman-based orientation filtering, streamed directly from the Yost Labs 3-Space sensor module (KF).

Fig. 3.
figure 3

The testing environment set up to evaluate orientation correction algorithms for IMU-instrumented glove

Fig. 4.
figure 4

The sequence of the 3D hand model movement (poses 1 to 10).

3.2 Experiment Procedure

Each subject was asked to wear the IMU-instrumented glove on his/her left hand and orient the hand to match the hand orientation in Pose 1 of Fig. 4. Then, The experimenter recorded the initial orientation of the hand by clicking the button “Mark this orientation”. After that, the experimenter clicked on the button “Show hand movement” in order to display the animation of the 3D hand movement, stopping at the next hand pose that the subject had to achieve. The subject then moved his/her hand to match the orientation as requested on the screen. The experimenter clicked on the button “Mark this orientation” to record the current orientation of the subject’s hand. The procedure was repeated until all 10 poses of the hand movement had been performed by the subject. At the end of the session, the subject removed the IMU-instrumented glove and answered some questions regarding gender, age, and his/her dominant hand.

4 Results and Discussion

Thirty test subjects participated in the experiment to evaluate the performance of the orientation correction algorithms. Among the thirty subjects, there were 20 male and 10 female healthy participants. Only one participant was left-handed. Each test subject was asked to wear the IMU-instrumented glove and move his/her hand to match the 10 pre-defined poses of the hand movement. The orientation correction algorithm using the gravity and magnetic North vectors (GMV) was implemented to determine the orientation estimates of the hand, while the corrected orientation using Kalman-based orientation filtering (KF) was being streamed directly from the Yost Labs 3-Space sensor module. For the orientation output from both orientation correction algorithms (GMV and KF), the orientation errors in the form of Euler angles (Phi, Theta and Psi) were calculated based on the assumption that the test subjects were able to exactly match the instructed hand poses, which were considered as “ground truth”. The orientation errors were used to evaluate the performance of the orientation correction algorithms.

Table 1. Marginal means and standard deviations of the orientation errors for each algorithm

A total of 600 data points of the orientation errors for each of the three Euler angles (30 test subjects \(\times \) 10 hand poses \(\times \) 2 algorithms) were recorded and analyzed using SPSS. The experiment was designated to predominantly test for the effects of the two different orientation correction algorithms on the mean of orientation errors. In addition, the effect of the 10 hand poses on the mean of orientation errors was also investigated. Table 1 shows the marginal means and the standard deviations of the orientation errors for each of the two algorithms, computed by averaging across the 10 hand poses. The means of the orientation errors for the orientation correction algorithm using the gravity and magnetic North vectors (GMV) are slightly different from those of the correction using Kalman-based orientation filtering (KF), in all three Euler angles. The marginal means and the standard deviations of the orientation errors for each of the 10 hand poses averaging across the two algorithms, are also calculated and shown in Table 2. The means of the orientation errors are noticeably different across all poses in all three Euler angles. To test for the significance of the effects of the two factors (type of algorithm and hand poses) on three dependent variables (Euler angles: Phi, Theta and Psi), two-way multivariate analysis of variance (two-way MANOVA) is suggested [14] as an appropriate statistical test model. The null hypotheses for two-way MANOVA are described below.

  1. 1.

    There is no difference in the means of orientation errors between the two algorithms.

  2. 2.

    There is no difference in the means of orientation errors for all hand poses.

  3. 3.

    There is no interaction between the two factors (type of algorithm and hand poses).

Table 2. Marginal means and standard deviations of the orientation errors for each hand pose
Table 3. Result of two-way multivariate analysis of variance (two-way MANOVA) test for the effects of orientation correction algorithms and hand poses on the mean of the orientation errors

The orientation error data was tested using the General Linear Model (multivariate) in SPSS with .05 level of significance. The result of two-way multivariate analysis of variance (two-way MANOVA) for the effects of orientation correction algorithms and hand poses on the mean of the orientation errors is shown in Table 3. It is found that there is no statistically significant difference in the means of the orientation errors: Phi (\(F(1,580)=.080; p=.777\)), Theta (\(F(1,580)=2.556; p=.110\)) and Psi (\(F(1,580)=.049; p=.825\)) between the orientation correction algorithm using the gravity and magnetic North vectors (GMV) and the correction using Kalman-based orientation filtering (KF). The estimated marginal means plots of the orientation errors for the two algorithms across 10 different hand poses in Figs. 5, 7 and 9 also show that the means of the orientation errors for both algorithms are very similar across the 10 hand poses in all three Euler angles. This result indicates that the proposed orientation correction algorithm (GMV) is capable of estimating the orientation of the human as well as the traditional Kalman-based orientation filtering (KF). However, for some hand poses, both algorithms produced large orientation errors. Large orientation errors are present in Poses 6, 9 and 10 of the estimated marginal means plot for Phi (Fig. 5); Poses 2 and 4 of the estimated marginal means plot for Theta (Fig. 7); and Poses 8 and 9 of the estimated marginal means plot for Psi (Fig. 9). Since both algorithms produced large orientation errors in these poses, it raises the question whether the errors are possibly caused by the effect of the hand poses.

Fig. 5.
figure 5

Estimated marginal means of the orientation errors (Phi) for each algorithm.

Fig. 6.
figure 6

Estimated marginal means of the orientation errors (Phi) for each hand pose.

Fig. 7.
figure 7

Estimated marginal means of the orientation errors (Theta) for each algorithm.

Fig. 8.
figure 8

Estimated marginal means of the orientation errors (Theta) for each hand pose.

Fig. 9.
figure 9

Estimated marginal means of the orientation errors (Psi) for each algorithm.

Fig. 10.
figure 10

Estimated marginal means of the orientation errors (Psi) for each hand pose.

The test for the effect of hand poses on the orientation errors in Table 3 shows p-values smaller than .05 (p=.000 for all three Euler angles), indicating that different hand poses have a statistically significant effect on the orientation errors: Phi (\(F(9,580)=129.555; p=.000\)), Theta(\(F(9,580)=85.109; p=.000\)) and Psi (\(F(9,580)=134.474; p=.000\)). The result provides a strong indication that hand poses affect the orientation errors for all three Euler angles. This can be interpreted that both algorithms could possibly produced less orientation errors. The marginal means plots of the orientation errors in Phi for 10 different hand poses across the two algorithms in Fig. 6 shows three plots (Poses 6, 8 and 9) with large orientation errors corresponding to the large errors observed in Fig. 5.

The marginal means plots of the orientation errors in Theta for 10 different hand poses across the two algorithms in Fig. 8 also shows two plots (Poses 2 and 4) with large orientation errors that correspond to the large errors observed in Fig. 7. Similarly, the marginal means plots of the orientation errors in Psi for 10 different hand poses across the two algorithms in Fig. 10 has two plots (Poses 8 and 9) with large orientation errors corresponding to the large errors observed in Fig. 9. The test for the interaction between the type of algorithm and hand poses (row Algorithm*Pose) in Table 3 shows that there is no statistically significant interaction effect on the orientation errors: Phi (\(F(9,580)=.684; p=.724\)), Theta(\(F(9,580)=.383; p=.943\)) and Psi (\(F(9,580)=.064; p=1.000\)). This means that the effect of algorithms is consistent across the different hand poses. Equivalently, the effect of the different hand poses on the orientation errors is consistent for both algorithms.

We speculate that large orientation errors recorded for some specific poses could be possibly caused by using the orientation of the instructed hand poses as the ground truth to calculate the orientation errors. Perhaps the algorithms estimated the actual orientation of the hand which might have been different from the orientation of the instructed hand poses. It is possible that these large errors could have been caused by the difficulties of the test subjects in trying to match the instructed hand orientations, particularly for poses that are unnatural and difficult to achieve. In the sequence of the hand movements (Fig. 4), the test subjects were asked to rotate their hands into 45-degree orientation for poses 8 and 9, and had to align their hands in parallel with the plane of the guiding frame for poses 4 and 6. In these difficult poses, the orientation errors can become large in one or more Euler angles. In the future, we will seek to test the glove with a position-measurement system that might have higher, controlled accuracy (e.g., laser-based) to use its measurements as the effective “ground truth” for each hand pose. THis might remove the uncertainty we faced in this experiment about the cause of larger errors yielded (by both orientation estimation methods) for some specific poses.

5 Conclusion

Thirty human subjects participated in the evaluation of novel and traditional orientation correction algorithms for an IMU-instrumented glove. Each subject was asked to move his/her hand to match the instructed hand poses. The orientation correction algorithm using the gravity and magnetic North vectors was implemented to determine the orientation estimates. The orientation errors in the form of Euler angles (Phi, Theta and Psi) were calculated as the departures from the orientation of the instructed hand poses. The orientation errors are compared with those of the correction using Kalman-based orientation filtering. The statistical analyses show that there is no statistically significant difference in the means of the orientation errors in Phi, Theta and Psi between the orientation correction algorithm using the gravity and magnetic North vectors and the correction using Kalman-based orientation filtering. The test for the effect of hand poses on the orientation errors indicates that different hand poses have a statistically significant effect on the orientation errors in Phi, Theta, and Psi. There is no statistically significant interaction effect on the orientation errors, implying that the effect of the two algorithms is consistent across the different hand poses. Even though the orientation errors for the novel and traditional orientation correction algorithms are not significantly different, the proposed orientation correction algorithm has one key advantage over the correction using Kalman-based orientation filtering: The proposed orientation correction algorithm handles acceleration measurements and magnetometer measurements separately during the execution of the algorithm. This allows the control parameters that define the weight for both measurements to be changed dynamically, which gives flexibility in defining the final orientation estimate according to different operational circumstances.