Indoor Positioning System based on Gyroscope and Accelerometer

AndroidLocationPositionAccelerometerGyroscope

Android Problem Overview


I am developing an Android App to track indoor position. My phone is an Google Nexus S using two sensors, the first being an Accelerometer and the second being a Gyroscope.

My idea is that from a starting reference point (a known GPS position), using the 2 sensors (accelerometer for motion and Gyro for directions) track the phone when moving. And display on a map when the user is going.

But the problem is that i have no idea how to combine both of these sensors to give me an actual position?

I have read some article on internet that talk about "kalman filter" and after some more research i found out that that filter is very very complex /too much for me) especially to code it in java for Android (cpu killer)

Does someone has some experience that he can share with me about indoor positioning system using Gyro and accelerometer?

Android Solutions


Solution 1 - Android

Gyros and accelerometers are not enough.

You get position by integrating the linear acceleration twice but the error is horrible. It is useless in practice.

Here is an explanation by (Google Tech Talk) at 23:20. I highly recommend this video.

As for indoor positioning, I have found these useful:

I have no idea how these methods would perform in real-life applications or how to turn them into a nice Android app.

A similar question is Calculating distance within a building.

Solution 2 - Android

I think this is a great post answering your question. This kalman filter combine data from accelerometers and gyros. Hope it helps.

Solution 3 - Android

For some other interesting reading on emerging indoor positioning technologies, check out this blog post from Qubulus. There are several startups and research projects trying to find a good replacement for GPS indoors. Attempts range from Dead Reckoning, to QR Codes, to light pulses, to radio fingerprinting. It looks like any viable solution will combine multiple technologies (similar to how most smartphones rely on A-GPS, where the satellite signal is assisted by cell tower multilateration).

Best of luck with your application!

Solution 4 - Android

I think it is too late for answer this question, but now, there is a good solution called iBeacon technology.

You can scan iBeacon devices by your smartphone, and you can get the rssi from iBeacon. So, you can calculate your position by those rssi.

Solution 5 - Android

To track indoor position starting from some reference point, only gyro and accelerometer is not enough. With accelerometer you can calculate speed, with gyro you can get direction of the mobile device, but to calculate indoor position you also need to have direction of movement, so for this case you need to use magnetic sensor. Such approach is called Dead Reckoning method and it's quite complex to combine all 3 sensors to get appropriate indoor position. Kalman filters allow you to smooth your measurement and filter some noise, but it's not the method to calculate indoor position. If you want to get indoor position you can try iBeacon approach and Trilateration method, there are some libraries (like this one) that already has this functionality, so you can try to investigate this method from such libs.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAlexisView Question on Stackoverflow
Solution 1 - AndroidAliView Answer on Stackoverflow
Solution 2 - AndroidAllen JeeView Answer on Stackoverflow
Solution 3 - AndroidnicksuchView Answer on Stackoverflow
Solution 4 - AndroidStanley KoView Answer on Stackoverflow
Solution 5 - AndroidDr.LeanView Answer on Stackoverflow