I wish to calculate position of a small remote controlled car (relative to starting position). The car moves on a flat surface for example: a room floor. 
Now, I am using an accelerometer and a gyroscope. To be precise this board --> <http://www.sparkfun.com/products/9623>

As a first step I just took the accelerometer data in x and y axes (since car moves on a surface) and double integrated the data to get position. The formulae I used were:

```
vel_new = vel_old + ( acc_old + ( (acc_new - acc_old ) / 2.0 ) ) * SAMPLING_TIME;
pos_new = pos_old + ( vel_old + ( (vel_new - vel_old ) / 2.0 ) ) * SAMPLING_TIME;
vel_old = vel_new;
pos_old = pos_new;
acc_new = measured value from accelerometer

```

The above formulae are based on this document: <http://perso-etis.ensea.fr/~pierandr/cours/M1_SIC/AN3397.pdf>

However this is giving horrible error.

After reading other similar questions on this forum, I found out that I need to subtract the component of Gravity from above acceleration values (everytime from acc\_new) by using gyroscope somehow. This idea is very well explained in Google Tech Talks video [Sensor Fusion on Android Devices: A Revolution in Motion Processing](http://www.youtube.com/watch?v=C7JQ7Rpwn2k) at time 23:49.

Now my problem is how to subtract that gravity component? 
I get angular velocity from gyroscope. How do I convert it into acceleration so that I can subtract it from the output of accelerometer?