0

I need to find velocity of a device(Samsung Galaxy s3). I've now read quite a lot of stackoverflow questions concerning it, but still confused as for what I should use. My observations so far:

1) Somebody did this to find velocity from accelerometer sensor's data. But in my case the device's movement will not have constant slope or straight trajectory.

2) Integration will give much drift.

3) Kalman filtering can be used but it's hard to implement and CPU consuming

4) Complementary filter can be used, but as far as I understand this only makes sense if accelerometer is being used with gyro to find angle. In my case I need to find velocity

5) Use GPS's getSpeed(). But I'm guessing it's only useful to detect large speed values, such as moving car, therefore isn't sensitive enough for my purpose.

Please suggest me somewhere to start from.

P.S. If you need to know what do I need speed of device for is I need to increase/decrease rendering rate according to the device's movement speed.

Nazerke
  • 2,098
  • 7
  • 37
  • 57
  • possible duplicate of [How to measure the speed of car by phone with accelerometer and gyroscope?](http://stackoverflow.com/questions/13285677/how-to-measure-the-speed-of-car-by-phone-with-accelerometer-and-gyroscope) – Ali Mar 27 '13 at 10:17
  • See also [Tracking a car using Accelerometer and Gyroscope when GPS signal is low](http://stackoverflow.com/q/13023966/341970) – Ali Mar 27 '13 at 10:17
  • thank you Ali, but the links suggest using GPS and my concern was - using GPS isn't sensitive enough for finding change of speed of the device's movement. Cause majority of the cases GPS is used to find speed is related with cars which move with relatively straight path. In my case I'll be moving device in random trajectories and for short time. So before getting into it, I just wanted to make sure if GPS is good for me or not or may be people know better approach. – Nazerke Mar 27 '13 at 14:00
  • 1
    Yes, I got that, the GPS is **not** good for such tasks you write but the accelerometers aren't either. Sorry for the bad news. – Ali Mar 27 '13 at 14:16
  • whats is your exact use case? – nayab Mar 27 '13 at 16:06
  • I'm using it to determine rendering speed, i.e. frame rate of my Opengl ES application. In the beginning frame rate is 30fps, and device is not moving i.e. v=0. but when I start moving device, I need to find it's velocity and use it to change frame rate. Something like: setFrameRate(30*new_velocity); When I slow down the movement of device, rendering should slow down as well, when I stop moving, the frame rate should again become 30 fps – Nazerke Mar 27 '13 at 16:14

0 Answers0