AHRS System and Inertial Navigation System

Hello everyone,

I’m researcher and in this moment work with Inertial Navigation Systems. I considering a beginner in this area, but I want to start with an interesting prototype for measuring acceleration, velocity and position (Attitude system).

On the other hand, I have a minIMU V3 that comes with acelerometer, gyroscope and magnetometer, and try to using it for the purpose that I want.

Also, in the resources area, I found this topic: MinIMU-9 + Arduino AHRS, that comes with interesting things about the gyroscope and how to calculate de correct angles. (Question: I want an interesting book or tutorial about how to calculate the angles, the theory and practice about this).

My goal it’s to design an Inertial navigation system and try to obtain the 3D position, like this diagram:

Comments and questions:

  • In theory, the accelerations vectors are integrated twice to obtain position, but the error increments and is not a good way for doing it. If I do it, its necessary to high-pass filtering the signal and obtain a good value without DC component?. How to improve it?.

  • I only have values of Gyroscope and Accelerometer. Is it neccesary to use the magnetometer for good results?.

  • It’s necessary to use de DCM matrix for change the coordinate system and how to apply it?.

  • I checked the code from MinIMU-9 + Arduino AHRS in the resources area from minIMU V3, but I want to know the theory behind this. If some knows, tell me about it.

  • Finally, what book or thesis do you recommend for study this area ? (Inertial Navigation System),

Kind regards, thanks in advance and waiting for your response.


I deleted your posts in other threads, since they were very similar, and this is a new topic. Please do not post the same thing in multiple threads like that.

Since you are new to this kind of thing, as a start I recommend reading CH Robotic’s Content Library, which provides an overview of some of the fundamental topics needed to understand orientation sensors. Many of your questions can be answered in the articles hosted there. In particular, “Using Accelerometers to Estimate Velocity and Position” directly addresses your question about integrating acceleration twice to get position. (It is not that good with sensors in the same class as our MinIMU.)


Hello Jonathan,

Thanks for your kind response.

I’m going to reading the article that you recommended.


No, most systems these days use a Kalman filter, which is quite a bit more difficult to implement. One such open source AHRS is the Arduino compatible RTIMUlib. You can read about my experience implementing it with a Pololu IMU here: State of the art AHRS for $25

In comparing the Ardurino version of RTIMU, I’m missing the .cpp Kalman filter code that’s in the Liunux version.

Hello, scjerry.

For questions about RTIMU, it is probably more straightforward to ask its creator directly.