AHRS Algorithm

Dear Dong,

in INS mode with GPS lost, do you have any information about error rate in the elapsing time and distance? for smooth paths and paths with a maze?

I have an AHRS280ZA-200, I have a problem with it, when I rotate it in any direction very fast, it will freeze for a while ( 1-2 seconds ) it seems it is because of 200d/s gyros used in it, so the algorithm used in it needs to restart itself or something like that. I want to know is openIMU300ZI the same ?

Best regards,
Amin

You can get the state covariance matrix P to get an estimate of the state error w.r.t time.

OpenIMU300 has a gyro range of 400dps. If over range, the algorithm will restart.

Dear dong,
is innovation (measurement error) vk = zk - hk a 9x1 vector in INS mode that include position , velocity , attitude (lat , long, alt , vn, ve, vd, roll , pitch , heading) ,and calculate from gps and ins ? if is it true? so, H (observation matrix) in EKF update is a matrix 9x16, am I right?
I need to some information for simulating in Matlab and programming in my Micro.

predict.jpg
Best regards
Amin

Innovation can be a 9x1 vector. However, heading can be unavailable if GNSS speed is low. In this case innovation is 8x1.
Besides, to lower computational consumption, sequential update is implemented. In this case H is 3x16.

Thank you for the reply, when H is a 3x16 , gain ( K ) will be 16x3 , R is 3x3 , inv (R) is 3x3 and measurement error must be 3x1 , because we can't multiplication matrix 16x3 in 8x1, forasmuch measurement error must be a 3x1 vector , because for calculate X ( state update ) we need to a vector 16x1 ,am I right? If is it true ,please tell me how to define measurement error ( Vk ) ? I can't understand this part.

Best Regards
Amin

The keyword here is "sequential update". That is, to reduce computation, measurements are applied sequentially. You can do position update first, then velocity update, and then attitude update. In this case, you have a measurement of 3x1 instead of 9x1.
Of course, you can well use the 9x1 measurement to do a full update.
Please refer to the code to see how sequential update is implemented.

There is some theory about sequential update: http://mocha-java.uccs.edu/ECE5550/ECE5550-Notes05.pdf

Thank you very much , this is so intelligently method, I'll dive to codes, I had a problem with ( inv ) higher order matrix, but we have a inv 3x3 now , and this is so easy . dear dong , pardon me for this question but I like to know, does this method need to calculate kalman gain ( k ) once or seperate for position, velocity and attitude , if so ? we need to separate tuning gain (k) for position, velocity and attitude?

Best regards
Amin

Kalman gain should be calculated separately for position, velocity and attitude.

Thank you very much.

if i have got kalman filtered imu data , and some gps position, is there a simple INS algorithm @Dong-xiaoguang
i want to calculate the position when GPS is not available?

This post is deleted!

Hello, does AHRS/VG dynamic attitude app also using 16 state EKF ? or need to less state ?

Best Regards
Amin

@Dong-xiaoguang said in AHRS Algorithm:

Kalman gain should be calculated separately for position, velocity and attitude.

Dear Dong,
the method you mention is for INS , what about for AHRS?
are position and velocity required for AHRS too or are those for INS specifically?

Best Regards
Amin

-1

Position and velocity are not required by the AHRS app. By saying AHRS app, we usually mean only attitude is calculated and the heading angle is stabilized by the magnetic heading.

Log in to reply