^{*}

This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (

In this paper, a smoothing algorithm for compensating inertial sensor saturation is proposed. The sensor saturation happens when a sensor measures a value that is larger than its dynamic range. This can lead to a considerable accumulated error. To compensate the lost information in saturated sensor data, we propose a smoothing algorithm in which the saturation compensation is formulated as an optimization problem. Based on a standard smoothing algorithm with zero velocity intervals, two saturation estimation methods were proposed. Simulation and experiments prove that the proposed methods are effective in compensating the sensor saturation.

In motion tracking, there are many ways to estimate the trajectory of a moving object. Moving objects can be tracked accurately by using visual devices such as camera systems [

To avoid the mentioned disadvantages, inertial measurement units (IMU) can be used instead as wearable devices. IMUs are widely used due to their small size and low cost. With the development of the technology, IMUs are now becoming more accurate. In [

However, IMUs still have their own limitations such as susceptibility to noise and limited dynamic range. The accuracy of inertial sensor-based estimation can be improved by using zero velocity updates as in [

The paper is organized in five main sections and a conclusion. Section 2 points out the problem formulation. In Section 3, a standard smoothing algorithm with zero velocity intervals is described in detail. Sections 4 and 5 propose some methods for sensor saturation estimation. Some experiments to verify the proposed methods are given in Section 6. The last section concludes the paper.

We consider a moving object case where an IMU is attached on the object. There are two coordinate systems in this paper: the navigation coordinate frame and the body coordinate frame. The

Our goal is to estimate attitude (expressed using the quaternion), position and velocity of the object from the sensor data. Let _{0} _{1} _{2} _{3}]∈^{4} be a quaternion representing the rotation relationship between the navigation coordinate frame and the body coordinate frame. Let ^{3×3} be the rotation matrix corresponding to the quaternion ^{3} and ^{3} be the position and velocity of the object, respectively. We have the following basic equations [_{n}^{3} and _{b}^{3} are the acceleration made by forces other than gravitational field in the navigation coordinate frame and body coordinate frame, respectively. The symbol Ω is defined by:
_{b}_{x} ω_{y} ω_{z}^{T}

The inertial measurement unit used in this paper consists of three axis gyroscopes and accelerometers. Let _{g}^{3} be the gyroscope output and _{a}^{3} be the accelerometer output. They satisfy the following relationship [_{g}_{a}^{T}

In summary, our goal is to estimate the quaternion, velocity and position of a moving object using the accelerometer and gyroscope data where there could be sensor saturation. Since a smoother is used instead of a filter, we note that the proposed method is offline analysis of attitude and position.

In this section, a standard smoothing algorithm is formulated in the quadratic optimization problem. A general method of formulating the smoothing problem in the optimization problem is given in [

We assume that the motion is a short movement consisting of a moving interval and two not moving intervals (see _{1}_{2}_{1} < _{2} < _{g,k}

Using the gyroscope output _{g}

The initial values of position _{0} and velocity _{0} are assumed to be zero due to the fact that the object is not moving at the not moving period and the origin of the navigation coordinate frame coincides with the starting point of the object. The initial quaternion _{0} is obtained from the accelerometer data using the following (note that _{b}

The heading in _{0} is not determined and can be chosen arbitrarily. Since the noise terms are included in _{g}_{a}_{e}_{e}_{e}^{4} is represented by _{e}_{e}_{1} _{e}_{2} _{e}_{3}]^{T}^{3}. Assuming _{e}_{e}_{1} _{2} _{3}]^{T}^{3}) is defined by:

For the error in _{e}_{e}

The estimation error in

This _{e}_{g}

Since the sensor sampling period is _{d,k}

Since no external sensors other than the inertial sensor are used, there is no physical measurement during the motion. However, the fact that the velocity is zero during the not moving period can be used as a virtual measurement. In motion analysis, it is assumed that the object is not moving when the gyroscope and the variation of the accelerometer are smaller than threshold values for some specified time. Thus there will be a chance that a moving interval is detected as a zero velocity interval. To reflect this fact, a small noise _{v,k}

The noise _{v,k}_{k}_{k}_{k}_{3} 0_{3} _{3}].

We introduce a set _{m}_{m}

A smoother problem to estimate x_{k} can be formulated as the following optimization problem [

Find _{k}_{k}_{k+}_{1}=_{d,k}x_{k}_{k}_{0} and the initial covariance error _{0} are given. The method to choose these initial values will be discussed Section 5. The _{0} and _{0},…,_{k+}_{1} conditioned on _{0},_{1,…},_{k}

By inserting the constraint _{k+}_{1}=_{d,k}x_{k}_{k}_{k}

Let the optimization variable _{1}∈^{9(}^{N}^{+1)×9(}^{N}^{+1)},_{2}∈^{1×9(}^{N}^{+1)},_{3}∈

Let the minimum solution to the problem. _{g,k}_{a,k}_{0}, _{0}, _{0} and _{0}

In

The sensor saturation occurs when the measured values are over the sensors' dynamic ranges (_{g}_{a}

Each sensor has its own range of measurement. When the measured values are larger than the measurement limit, the saturation happens. Even if the saturation happens in a short time, it could lead to a large accumulated error since the lost information is in a large magnitude data area. The data loss due to the saturation has a considerable influence to the result, especially when the integration is used in data processing.

The saturation can be avoided by using large dynamic range sensors. Usually, large measuring range (with the same sensor resolution) sensors tend to be expensive. Instead of using an expensive large range sensor, we can use a low cost one with smaller measuring limit along with applying a saturation compensation algorithm.

The saturation can happen in gyroscopes and accelerometers in three axes. Symbols _{g,x,k}_{g,y,k}_{g,z,k}_{g,k}^{3}. Similarly, _{a,x,k}_{a,y,k}_{a,z,k}_{a,k}^{3}. We use the fact that the value of the sensor output is smaller than the saturation value outside the saturation interval. In the saturation interval, we assume that the sensor output is equal to the saturation value. Let _{g,sat}_{g,x}

Similarly, we can define _{g,y}, _{g,z}, _{a,sat} (saturation value of an accelerometer), _{a,x}, _{a,y} and _{a,z}. Denote _{g}_{x}_{k}_{g}_{y}_{k}_{g}_{z}_{k}_{a}_{x}_{k}_{a}_{y}_{k}_{a}_{z}_{k}_{g,k}_{a,k}

Let _{g,x,k}_{g,y,k}_{g,z,k}_{a,x,k}_{a,y,k}_{a,z,k}_{g,x}_{a,y}_{g,y}_{g,z}_{a,x}_{a,z}

Now the standard smoother algorithm in Section 3 is modified using _{g,k}_{a,k}

Consider the following function (from

Assuming _{0}, _{0}, _{0},_{0},_{g,k}_{a,k}

In the first method, the following optimization problem is solved:

In _{b}_{b}^{2} for walking case [_{b}_{g,sat}_{a,sat}^{T}_{g}_{a}_{g}_{a}_{g,sat}_{a,sat}

In this method, the saturated sensor data region is approximated by a triangle (see _{k}_{−2}, _{k}_{−1},_{k}_{1} starting from _{k}_{h}_{h+1}_{h+2}_{2}. _{1} and _{2} are the reconstruction part of sensor saturation. The intersection point of _{1}_{2} (at the time _{m}_{m}_{1} is created based on (_{k}_{m}_{m}_{2} is created based on (_{h}_{m}_{m}_{m}_{1},_{2} which contain compensation values. The intersection point is defined as following:

The other compensation value is defined by:

Using this method, sets of sensor's compensation values _{I}_{I}_{1} and _{2} lines using

With the same idea, a quadratic approximation can be used to generate the lost information (see _{k}_{k}_{h}_{h}_{m}_{m}_{k}_{k}

Section 4 introduced two methods to compensate sensor saturation in a standard movement situation which contains two zero velocity intervals at the beginning and ending of a moving interval. In this section, we apply the Section 4 methods to multiple zero velocity interval movements. A movement with multiple zero velocity intervals is displayed in

We divide the movement into segments based on zero velocity intervals so that between two zero velocity intervals there is data from one moving period (see

In this section, one simulation result and two experimental results are given to verify the proposed algorithm. First, a simulation is done to verify the proposed method. The sensor is assumed to be located at the end of a bar, which is rotated along the body _{g,y,sat}

In this simulation, _{g,y,k}_{b}

In

In

In order to verify the robustness of the proposed algorithms to the saturation, a simulation is done by checking the position norm errors while _{g,y,sat}_{g,y,sat}_{g,y,sat}_{b}_{b}_{b}_{b}_{b}

Sections 4.1 and 4.2 showed that the accuracy of the method 2 only depends on the saturation value while the accuracy of the method 1 is affected by the saturation value and the. _{b}

As mentioned above, how to choose _{b}_{b}_{b}_{b}_{b}

In the first experiment, an object, which is attached with an IMU on the top, moved in a straight line of 0.95 m so that the _{a,x}_{a,x,k}

The estimated position errors are given in

Another experiment has been done to verify the compensation feasibility of the proposed algorithm. In this experiment, an IMU is attached at the tip of a digitizer (see _{g,z,k}

In the last experiment, we verify the compensation smoother application in multiple zero velocity intervals movement (in Section 5). In this experiment, an IMU is attached on a human foot. The volunteer was asked to walk along a straight corridor. A pen is also attached on the volunteer's shoe to mark the steps' positions on the floor. The obtained data from IMU is used to estimate the trajectory of the foot. A comparison of proposed and forward-backward smoothers trajectories is given in

This paper has proposed some approaches to compensate for sensor saturation. Saturation is a common problem with IMU sensors in tracking a moving object. The lost data in the saturated parts could be important due to the accumulated errors. In the paper, the authors used a standard smoothing algorithm with zero velocity intervals to compensate sensor saturation. The considered motion includes a moving interval between two zero velocity intervals. Two methods were proposed. The first method directly estimates the saturation compensation while the second one uses a geometric form to estimate the saturation. The proposed smoothing algorithm can be applied in some motions which contain many moving intervals separated by zero velocity intervals. In this case, the motion is divided into segments based on zero-velocity intervals so that between two zero velocity intervals there is one moving interval. The saturation estimation algorithm is applied in each segment from the first to the last one. To verify the feasibility of the two methods, some experiments have been done. The experiments showed that the proposed smoothing algorithm can compensate the sensor saturation and provides a smaller error than a conventional smoother (forward-backward filter). In practical applications, the sensor saturation compensation methods proposed in this paper can be used to improve the accuracy of small dynamic range sensors instead of using a large dynamic range one which usually tends to be more expensive.

This work was supported by 2013 Research Funds of Hyundai Heavy Industries for University of Ulsan.

The authors declare no conflict of interest.

Standard inertial navigation algorithm with zero velocity correction.

Sensor Saturation.

Proposed saturation compensated smoothing algorithm.

Estimation of

A movement with multiple zero velocity intervals.

Simulation gyroscope _{g,y}_{g,y,sat}

True and estimated trajectories. (

_{g,y}

The effect of saturation value (in gyroscope data) on the method 1 smoother accuracy.

The effect of saturation value (in gyroscope data) on the method 2 smoother accuracy.

The effect of _{b}

_{a,x,k}

Trajectories of 0.95 m straight movement experiment (method 1 result).

Curve movement experiment setup.

Trajectories of a curve movement experiment (method 1).

True and estimated trajectories of a walking person.

Last position accuracy of different smoothers.

Forward-backward smoother | 0.0458 | 0.1544 |

Proposed smoother (method 1) | 0.0032 | 0.0009 |

Proposed smoother (method 2: triangle approximation) | 0.0045 | 0.0019 |

Proposed smoother (method 2: quadratic approximation) | 0.0036 | 0.0014 |

The error of 0.95 m straight movement experiment.

Forward-backward smoother | 0.1096 |

Proposed smoother (method 1) | 0.0379 |

Proposed smoother (method 2: triangle approximation) | 0.0416 |

Proposed smoother (method 2: quadratic approximation) | 0.0524 |

The start-stop point distance error of curve movement experiment (in mm).

Forward-backward smoother | 50.4 |

Proposed smoother (method 1) | 7.9 |

Proposed smoother (method 2: triangle approximation) | 11.8 |

Proposed smoother (method 2: quadratic approximation) | 10.3 |