I'm working on Android navigation app which uses complex of sensors to determine position changes. In some cases device cannot achieve GPS signal for a while (tunnel or multilevel parking) and I want to compensate these gaps using INS approach.
Yes I know that there're another approaches like cell-id or data got from device's carrier, but currently I'm focused on sensors.
Well, INS approach can be divided into two big tasks:
1. attitude determination (gyro or accelerometer + magnetometer or some combination)
2. velocity and distance calculation. Here I double integrate linear accelerometer values.
Now I try to resolve the second task.
I prepared all calculation and made contrastive analysis of data got from linear accelerometer on different Android devices: Sensation, Motorola Xoom and Nexus S. I put all devices on a platform and moved the platform on 8 meeters with an acceleration on Y axis.
After that I built graphics and they really confused me - all 3 graphics has the same amplitude but peak values are different.
For example at the same moment I have 0.2 m/s^2 on Xoom and 1.2 m/s^2 on Sensation.
Hence after calculation I had a big difference in distance.
Official documentation doesn't explain it. I surfed the web but didn't find any answer about that issue.
So my question is: did someone faced to it? Or maybe you know an advice which will help me to solve it?
In addition, android Sensor class has few parameters. I found that Sensation and Xoom has different RESOLUITON values - Sensor.getResolution().
Sensation - 1.0
Xoom - 0.009576807
I'm stack with it, so any help will be really good! Thanks in advance.
You cannot solve your second task with MEMS sensors.
You would need a fibre optic gyroscope or a ring laser gyroscope to solve your second task.
Although I talk about calculating position in the above linked answer, the same holds for velocity.