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 '20 at 0:45

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).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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