-2

Is it possible to reconstruct the movement of an Android device in 3D space using data from accelerometer?

For example, I may draw a circle with my hand in the air, holding an Android device.
Is it theoretically possible to reconstruct this circle using accelerometer data in 3D space, relative to the ground accurately?

Here is an example of how this circle could be represented: enter image description here


Are results like in this video possible: https://www.youtube.com/watch?v=6ijArKE8vKU
Are there some sort of algorithms that can perform such tasks available online?

closed as off-topic by durron597, Ixrec, user22815, user40980, gnat Sep 4 '15 at 12:50

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – durron597, Ixrec, Community, Community
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 2
    Of course this is possible, by using a bit of physics: by knowing your acceleration and rotation (= changes in velocity and orientation), you can reconstruct your velocity (= change in position), and finally reconstruct the position, provided you know position, orientation, and velocity at the start of the measurement. This technique is commonly used in Inertial Navigation Systems. – amon Sep 3 '15 at 10:35
  • please don't cross-post: stackoverflow.com/questions/32372519/… – gnat Sep 3 '15 at 13:25
2

As amon said, this is theoretically possible with the addition of orientation/rotation sensors.

In practice, it really depends on the accurracy required. The calculations are all integrals, so they tend to accumulate errors very fast. This means, the calculated endpoint of the circle in your example will be away from your origin, even if you carefully move your phone. How much away it will be depends on

  • how fast you move
  • how fast you can measure (sample frequency)
  • how accurrate you can measure
  • how accurrate your math implementation is (rounding errors etc..)

As a master thesis, I have created an assisted inertial navigation system for use in trains, with a quite good commercial sensor. The results were quite disappointing after a short while, though.

  • 1
    I see, it's quite a hard task to make such a system that tracks motion of Android device in 3D. So, are the any libraries available online to do all the calculations with the rough accelerometer data? – Danny Babbev Sep 3 '15 at 11:33
  • I have used a commercial library from the vendor mentioned in the thesis. As far as I remember, they have a good manual about how to do the calculations. In fact, its quite easy from an algorithmic standpoint. Just integrate the changes from point to point. – Marcel Sep 3 '15 at 13:36
  • The "relative to the ground" part of the OP is bothering me. If the device is resting at effectively 0 acceleration on an elevated plane like a desk or a shelf, wouldn't picking it up from said plane start the measurement from the plane's height instead of from the ground? – npace Sep 3 '15 at 15:13

Not the answer you're looking for? Browse other questions tagged or ask your own question.