4

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?
cabal
  • 41
  • 2
  • 2
    The problem with acceleration is that it's impossible to determine the absolute velocity unless you start from a known initial state. – Ignacio Vazquez-Abrams Mar 19 '15 at 15:51
  • increase the sensitivity of your IMU. It's rise time seems too slow or something. – KyranF Mar 19 '15 at 15:55
  • Another problem with accelerometers is their noisy behavior, that is rendering the velocity estimation nearly impossible because of quickly accumulated error. Yo really need to consider additional sensors. – Eugene Sh. Mar 19 '15 at 16:18
  • I'd like to see the acceleration data. If you show me that and give me the actual part number of the sensor I can give you a better idea on settings for optimal collection given your scenario and possible digital filtering options. – mcmiln Mar 19 '15 at 17:19
  • Thank you for inspiring comments. @Ignacio, the swimmer before start swimming stay still in water. I am aware that it is not possible to be in stationary state in water but that is the peculiarity of this problem. – cabal Mar 21 '15 at 16:12
  • @EugeneSh. I am not sure that - in this case - it is possible to add additional sensors. My idea is to applied nonlinear and nonstationary de-trending methods to deal with this problem. What do you think on it? – cabal Mar 21 '15 at 16:24
  • @mcmiln thank you for your help. That is not problem I can send you data from IMU sensor. I prepared matlab file with strut where IMU and tethered data are put. You can get this file from here: https://dl.dropboxusercontent.com/u/49911695/data.zip If you prefere other way of getting file just let me know. My IMU sensor is Shimmer. – cabal Mar 21 '15 at 16:24
  • @cabal how did you estimate your values (blue graph) ? – M-T-A Feb 28 '17 at 19:27
  • First, I used the Madgewick filter to estimate the sensor orientation. Then, I removed the gravity from the accelerometer data and then, I integrated the acceleration to obtain the velocity. The method introduces the drift. The drift was removed by the Empirical Mode Decomposition based to remove the drift. – cabal Apr 07 '17 at 13:54

2 Answers2

2

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.

mcmiln
  • 826
  • 6
  • 15
0

I would not expect the tethered system to match the swimmer; they are not tightly coupled. Remove your IMU from the swimmer and build an out of the water test fixture with a motion/velocity profile that's known fairly precisely. Attach the IMU to the fixture to validate that it's reading the known trajectory/speed.

There's nothing wrong with integrating the accelerometer signals; integrating smooths the high frequency noise. The issue as @Ignacio said is the initial alignment of your system - the gyros. You need to initialize and maintain a local vertical reference frame to resolve your integrated accelerometer vectors.

docscience
  • 864
  • 1
  • 9
  • 17
  • I am agree that tethered system can cause some problems with calculating swimming velocity. But I needed reference signal to test my method with existing ones. Now I know that tethered system is not perfect method. But my problem is to estimate instantaneous velocity of the swimmer and this method – as reference method – is available for me. As you suggested I tested my method of velocity estimation out of the water. First test I performed for runner where reference velocity signal are acquired from sports radar (Stalker Pro) and results were good i.e. goodness of fit was high. – cabal Mar 21 '15 at 16:57
  • I agree that integration of acceleration is hard problem but there are some methods to deal with this problem. One of them is ZUPT (Zero Velocity Update). The other one is method where additional sensors such as GPSs or video cameras are used. But these methods are not applicable for estimation of swimmer’s velocity. My idea is to apply de-trending method for non-linear and non-stationary signals. It worked out of the water but field in the water. But I am not sure that my method is weak or reference signal is not perfect. What is your opinion? – cabal Mar 21 '15 at 16:58