The physical sensing devices by nature deliver errors in their readings. The inertial measurement units used for orientation estimation of a moving object are of course no exception! The error can be caused by many factors including the intrinsic imprecision of the sensor, or an external factor like temperature variation or vibration.
The orientation filters using inertial sensors either operate in the 6-axis mode utilizing a 3-axis accelerometer, and a 3-axis gyroscope, or the 9-axis mode, which adds a 3-axis magnetometer for heading correction. Gyroscopes are mostly the primary source of orientation estimation. Through integration of the 3-axis angular velocities, one can continuously track the 3D orientation. The problem is that due to the accumulation of the intrinsic error in gyro readings, the estimation tends to drift over time. Accelerometers and magnetometers can then be used to provide corrections to the gravity vector and the Earth's magnetic field vector, respectively. We know force is proportional to acceleration, i.e., F = ma. Hence, if the device is motionless, the acceleration will be equal to the gravity vector.
While each sensor reading has its own intrinsic error, external factors can generate additional temporary disturbance in sensor readings. For instance, regarding gyroscopes, quick motion, vibration, and temperature variation can shift the offset value of the sensor over time. Therefore, even if the gyros are calibrated at the factory to have a zero offset, such conditions can cause an additional drift to the initial offset. This issue is called the gyroscopes' zero-bias drift.
Also regarding magnetometers, the readings might contain the Earth's magnetic field perturbed by some additional hard or soft iron effects. These effects can be caused by many factors, such as the printed circuit board itself, or the environment, e.g., when the device is near metal objects. Finally, accelerometers might capture additional errors along with the gravity vector, as the device is moving faster, i.e., due to the presence of a higher external force.
An orientation filter should typically be enhanced with internal observers to detect and reject temporary disturbance in sensor readings. Our NeblinaTM motion tracking module has a built-in sensor fusion firmware library which performs orientation estimation using a proprietary algorithm. The filter delivers high accuracy with very low computational cost, and is robust against temporary sensor disturbance. The scientific article for this work is available here. Experimenting with the algorithms is straightforward when using our ProMotion Development kit.
We performed an experiment to evaluate the importance of using observers to detect sensor disturbance. We particularly target quick motions and high external force as a factor to pollute accelerometer and gyroscope readings. We consider two scenarios. In Scenario#1 we have used our filter, which detects and rejects temporary disturbance in sensor readings. In Scenario#2, we have utilized the well-known Madgwick's algorithm, which does not rely on disturbance observers. The below video is a good comparison of the filter performances. Two ProMotion boards have been used, where each board utilizes one filter. Both boards have been moved together quickly back and forth to generate a high temporary external force. The filter responses are visualized by the flying jets on the two tablets. It can easily be observed that the jet on the left, which utilizes the proposed filter, is more tolerant towards high external force.
Motsai designs and builds innovative embedded systems, and is the leading Canadian developer of miniature low-power, wireless devices used in wearables and human motion analysis. Please feel free to send us an email at firstname.lastname@example.org or drop us a line at +1-888 -849-6956. Don't forget to signup for blog updates below.