Skip to content
Felipe Musse edited this page May 2, 2015 · 17 revisions

Inertial Measurement Unit

Tricot Malin features a inertial measurement unit (IMU) in each arm in order to detect the wearer's gestures and movements. The chosen component for the project is a breakout board sold by Sparkfun featuring the LSM9DS0 integrated circuit made by ST, which is a 9 degrees of freedom (DoF) IMU in a single chip.

LSM9DS0 Breakout Board

LSM9DS0 IMU breakout board

Other Links

MPU-6050

While the IMUs which would be integrated in the final product hadn't arrived, a breakout board made by OpenJumper containing the MPU-6050 IMU was used to study how an IMU works and to think about how is it possible to detect a person's movements from the data it provides.

MPU-6050 IMU breakout board

Gyroscopes

IMU Data Fusion

The objective is using the data provided by an IMU to measure the angular position of an object. Theoretically, we could use either the gyroscopes or the accelerometers of the IMU individually to determinate it, but we will see that different problems introduced by each type of sensor will make it necessary to combine them to obtain a proper result.

Gyroscope

A gyroscope (gyro) measures angular velocity, that is, the rate of change of the angular position over time.

angular_velocity

Assuming that the initial position is known (in this case, zero), we could find the angular position through integration (the third part of the equation is the digital approximation of the integral, with Ts being the sampling period):

angular_position

This method works well in the short-term, but brings a problem over a long duration. Ideally, when measuring the gyro's output when it is still, we would read zero; however, we will always have a slight non-zero error, called bias drift. Due to the integration of this error, the estimate of the angle will drift away from its true value (the small rate will keep adding to the angle until it is far away from the actual angle).

Accelerometer

An accelerometer measures linear acceleration, including the acceleration of gravity. Since we know the magnitude of gravity, we could theoretically use trigonometry to calculate the object's angle when it is still, since the only acceleration measured by the accelerometer would be the one caused by gravity. Nonetheless, every small force working on the object (noise) would disturb our measurement completely. The accelerometer cannot distinguish a real acceleration from gravity, which makes it bad for short-term angle estimate; however, it is reliable in the long-term, as its average will be very close the gravity vector.

Links