Oscillatory-Motion-Tracking-With-x-IMU

A demonstration for tracking cyclic motion using an x-IMU as shown in this video. During cyclic motion, the mean velocity and position are zero over a short period of time. For example, this might represent the motion of a buoy bobbing up and down in the ocean or the chewing motion of a jaw.

In the video, the x-IMU was used to log test data via USB which was then processed using MALAB. Only the gyroscope and accelerometer measurements was used. The sensor data was first processed through an AHRS algorithm to calculate the orientation of the x-IMU relative to the Earth so that the corresponding direction of gravity could be subtracted from the accelerometer measurements. The resultant measurement of acceleration was then integrated to yield a velocity and the velocity high-pass filtered to remove any drift. This was then integrated again to yield a position which was also high-pass filtered to remove drift. The resultant position tracking seen in the video is able to track the cyclic motion of the x-IMU but slowly 'pulls' the x-IMU back to the origin when it is stationary.

The repository includes the original source code and example data used to create the video.