I'm looking for help on a project where I will be placing sensor data in 3D space using augmented reality. Most solutions I have found for finding position with an IMU involve the magnetometer, but for my implementation that will not work because I am measuring magnetic fields so the magnetometer value will definitely not be pointing towards any poles. How would I be able to calculate position?

Relevant info:

  • I am using four IMUs, so I could possibly filter noise by averaging their values.

  • I will only be measuring for a short time (15-20seconds).

  • The magnet being measured will be stationary, so it could possibly be used as some sort of reference point?

Any help is appreciated! Thanks in advance!

  • $\begingroup$ Do you know the initial position and orientation? And, are the sensors attached to something that is moving? I don't quite understand the setup. $\endgroup$
    – Ralff
    May 22, 2020 at 0:45

2 Answers 2


The short answer is that it's possible, but tricky.

To estimate position you integrate accelerometer readings over time to get linear velocity estimates, and then integrate the velocities to get position estimates.

The downside of this double integration is that either initial readings must be very accurate, or sophisticated smoothing / filtering algorithms must be used to compensate for errors.

Moreover, since IMU measurements are not relative to a global reference point but only to the previous system state, there is no way to avoid the unbounded (however slowly) accumulation of estimate errors over time, except by resorting to different sensors.

I recommend you refer to this article for a more complete treatment:

Kok, Manon, Jeroen D. Hol, and Thomas B. Schön. "Using inertial sensors for position and orientation estimation." arXiv preprint arXiv:1704.06053 (2017).


We developed this for pipeline inspections and used this to map a pipeline. We found magnetism not to be very reliable and did it without. It works, but you have accumulative errors that can be significant. In our case you will try to find reference points and make corrections for these accordingly. And with a pipeline you always have 2 reference points anyways. The beginning and the end.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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