measure velocity

Hi guys!

For my final project at school I make a goggle which shows the swimmer's speed in real time.
I bought accelerometer sensor mpu 6050 from sparkfun and I have managed to extract the raw values and culculate the acceleration on 3 axis in m/s^2.

V=V0 + at
So, by the book I can extract my velocity but when I tried to, I noticed it is not even close to be as it should be. The sensor itself is very unstabilized. I read some articales but didn't find a simple anwer or method. Does anyone knows what can I do to get the velocity? maybe another method to measure velocity like GPS or something?

Regards
Tal

Hi Tal,

Put a large touchplate at each end of the pool. Measure the time between when the swimmer touches one and the other.

Accelerometers and GPS will not be accurate enough for this project.

The only other technique I can think of is for the swimmer to wear something around their waist or tow something along that contains something like the "log impeller" of a yacht which can measure the speed of the water flow. I don't know how well this would work for something as slow and turbulent as the water around a swimmer.

First of all thank u for fast replie.
I thought about what u suggest. I can put distance sensor for that and it will show when the swimmer reaches to the end of the pool but the target here is to culculate the velocity in real time at the moment and not at the end. Any other idea? :slight_smile:

When I was a swimmer, my best stroke was backstroke. This made it hard to judge where the end of the pool was to time my turn. I used the lights suspended over the pool, counting them down to know when I had reached the end. Could some light intensity sensor measure the patterns of the increasing and decreasing light levels as the swimmer passes each light, and estimate the speed from that? It won't be simple!

I don't think it is possible with my equipment:) wny other options? maybe with the acc sensor?

Accelerometers measure acceleration and can't be used to measure velocity.

For something like a swimmer, your only option is to measure distance traveled per time period.

jremington:
Accelerometers measure acceleration and can't be used to measure velocity.

You can find the velocity by integration.

You can use an op-amp configured as an integrator, but the results are poor due to the deficiencies found in real op-amps.
By performing a second integration you can measure distance.

Also swimmers only accelerate for a short while. They soon reach their maximum velocity - acceleration will then be zero.

You can find the velocity by integration.

Only if you know the initial velocity, and can cancel the measured acceleration due to gravity.

The latter is essentially impossible with consumer grade accelerometers/IMUs, as anyone who has tried quickly learns.

jremington:
Only if you know the initial velocity, and can cancel the measured acceleration due to gravity.

The latter is essentially impossible with consumer grade accelerometers/IMUs, as anyone who has tried quickly learns.

Yes, that is correct.

I was assuming that the swimmer started at zero initial velocity.

The OP implied that he had a three axis accelerometer, so it would be possible to measure horizontal acceleration in the direction of travel.

The measurement would become complicated when the swimmer went from being upright on dry land to being horizontal in the water as the axes get flipped around. Also the largest acceleration may be during this period if the swimmer dives into the pool.

so it would be possible to measure horizontal acceleration in the direction of travel.

Theoretically, yes. Practically, no.

See this analysis of the problems.

JohnLincoln:
Yes, that is correct.

I was assuming that the swimmer started at zero initial velocity.

The OP implied that he had a three axis accelerometer, so it would be possible to measure horizontal acceleration in the direction of travel.

The measurement would become complicated when the swimmer went from being upright on dry land to being horizontal in the water as the axes get flipped around. Also the largest acceleration may be during this period if the swimmer dives into the pool.

Hi:)
Beacuse of the fact that this project is not a google's project, I can define that the swimmer starts in the water when his head is straight with the swim diraction but my main issue here is the noise this sensor creates. I realy consider to change to a pressure sensor and put them on the end of the pull

Just gave it another thought... If I can find a way to know when the swimmer reached to the end of the pull I can measure the time and culculate the velocity but, how can I know when the swimmer reached to the end? Well, I need to see pulse on the ecc sensor but, there is pulse every time the swimmer move his head to breathe. I see the pulse because gravity changes axis. If I would find a way to ignore it, that's it.

For training purposes it may work to attach a propeller based speedometer to the swimmer's body, though the very disturbed flow around the body will probably mess up your data big time.

Sonar may be another option, from one end of the lane the swimmer is in, measure the distance (I think it'll work best for swimming towards the sensor as the head doesn't move so much), and that combined with time gives you the speed. Then transmit that wirelessly to the goggles.