Electronic – Estimation of swimmer’s velocity from IMU sensor

sensorvelocity

I am dealing with the problem of estimation the swimmer's velocity. In the same time data from IMU sensor and tethered system are acquired. Data from tethered system are reference data. From IMU sensor acceleration, angular velocity and strength magnetic field data were acquired. IMU sensor was placed on lower back.

Example data from tethered system for the one trial:

enter image description here

The best velocity from IMU that I estimate was:

enter image description here

and for the comparison purpose:

enter image description here

My questions are:

  1. As it can be seen, the curves are not overlap exactly. Is it possible to improve the results for IMU sensor?
  2. Do you have any idea how to pre-process data from IMU?
  3. How improve data from tethered system?

Best Answer

So, first off, after looking at the accel data you sent over it is crucial to consider what the data may represent. It would seem that given the timescale, your device is picking up a very repetitive movement. You can tell based on the repeating high peaks. Now one question is how is this being worn. What I am guessing is that as the swimmer comes up and down or turns left and right, they experience this motion. This motion will manifest with different frequencies based on where it is mounted and thus the coupling to the body. This coupling determines data accuracy, and general tethering of all systems. Since this is not a rigid body, you will experience time delays and force dissipation. On skin, clothes, hair, etc, these give you different filter frequencies.

If you wear this as a belt lets say, you will want to filter out frequencies corresponding to it dragging across your skin and the fabric moving back and forth. This oscillating motion would likely show up as more shifting acceleration than you would see from a general swimmer. You will benefit from a moving average filter. In addition, the large repetitive spikes are probably from smacking on the surface of the water as a quick guess. Perform a median filter on the accel data to rid it of these motions which do not show user speed. Then get the velocity, which will be much cleaner.

These things will not improve the system, but rather knowing how the system manifests in data is more valuable. You can predict why the system is not tethered based on the mounting and filter the data of high frequency noise. Any further improvements could be done in miniaturization or more mechanical filtering with the casing. Feel free to respond with more specifics on the system if you would like more info. Hope this helps.

Related Topic