Tracking a car using Accelerometer and Gyroscope when GPS signal is low

accelerometergpsgyroscopeposition;

We are planning to write a software that would track a Car's GPS position, GPS signal strength, Accelerometer (X, Y, Z) and Gyroscope(X, Y, Z) for every 5 seconds or so. And send the data up to a server for post processing. The server would determine what are roads that are covered car. So this is not a real time processing. It can happen in the backend (over the night as batch process)

When the GPS signal goes down, say for 30 seconds. The post processing should guess the lat and lon using the other sensor data recorded in the same time. So I am looking for a solution to find the speed or distance covered using Accelerometer and Gyroscope sensors.

The client could be anything an Android device or a Windows ce device. The post processing server just have to solve the data that is sent in a CSV or any some other format.

I found some articles and white papers about Inertial navigation system and other algorithms. And tried to implement some of them. Or is there any other better formula like the one I found below.

vel_new = vel_old + ( acc_old + ( (acc_new - acc_old ) / 2.0 ) ) * SAMPLING_TIME;

EDIT:
In addition to all the sensor data, I also have all the roads of the particular city map that I am interested in in my database stored as sqlgeography. So with the approximate position I could get, I would try to find the closest road they could have been, or turned.

Best Answer

This a classic question: It won't work. That answer is about the position but it won't work even for the speed.

You would be better off with a heuristic that uses the last and the first measured velocity from the GPS and interpolates between them, enforcing position constraints deducible from a map.