- Thu Mar 01, 2007 3:30 pm
#26663
I was getting frustrated with my Kalman filter so in the updated version of the project below I have added the working Kalman filter from the Autopilot project to compare it's output with mine. The new modules are in tilt.c/h.
http://home.comcast.net/~michael.p.thom ... _IMU_3.zip
The original code can be found here:
http://www.rotomotion.com/downloads/tilt.c
http://www.rotomotion.com/downloads/tilt.h
In looking at their code I couldn't figure out why their Kalman equations seemed different from mine. It turns out they are actually implementing an Extended Kalman Filter and computing a Jacobian matrix. I haven't tuned the co-variance matrices, but their code seems to work very well with the IMU. It seems very resistant to horizontal accelerations. I'll be looking into more detail about this and probably follow their lead and create an independent implementation of an Extended Kalman Filter. I should then be able to do an apples-for-apples comparison to work out the kinks in my implementation.
I agree with you regarding the need to use captured data. I may revert back to that path while I dive into this deeper.
-Mike
http://home.comcast.net/~michael.p.thom ... _IMU_3.zip
The original code can be found here:
http://www.rotomotion.com/downloads/tilt.c
http://www.rotomotion.com/downloads/tilt.h
In looking at their code I couldn't figure out why their Kalman equations seemed different from mine. It turns out they are actually implementing an Extended Kalman Filter and computing a Jacobian matrix. I haven't tuned the co-variance matrices, but their code seems to work very well with the IMU. It seems very resistant to horizontal accelerations. I'll be looking into more detail about this and probably follow their lead and create an independent implementation of an Extended Kalman Filter. I should then be able to do an apples-for-apples comparison to work out the kinks in my implementation.
I agree with you regarding the need to use captured data. I may revert back to that path while I dive into this deeper.
-Mike
Check out the OpenServo, an open source digital servo at www.openservo.com.