I'm building my own inertial navigation system --- one that isn't super complex, doesn't involve fancy filters, yet will provide plenty of accuracy. It's all about purposeful building... designing and building for what it WILL do, not what it MIGHT or could possibly be able to do.
With that said, I'm using the Razor - 6DOF Ultra-Thin IMU from SparkFun. So far so good! I've got a basic program written on my Arduino, which includes a complementary filter. I've been very impressed with it so far. Prior to beginning, I had done a lot of researching and video watching to see how others were going about such projects. There's some very talented people out there! Many of them reside here, on DIYDrones (and I'm sure you all know who you are!). There were a few avenues I considered going down in terms of filtering methods..... A Kalman filter of course is very nice, but not having a complete understanding of how it works, let alone any idea how it would be programmed, kept me looking. I love the DCM 'algorithm' Bill and Paul have developed. From my physics and calculus background I've got a great understanding of vectors and such. I still may go down that route. I had found several code examples of the DCM, but I couldn't get them to work quite right. And besides, part of this whole project, for me, is coming up with an even more simplistic, yet effective method. I don't need aerobatic capability. Just normal flyinig abilities. No need to get fancy.
I've also been developing some simple, yet useful and fun software for display the output data. My "Attitude Indicator" program is just that, a simple attitude indicator, which can read serial data from my Arduino (or any other source for that matter), in terms of Euler angles, and accurately display them.
I'd like to continue to expand this program into a complete Primary Display unit.
It's freely downloadable from my site, listed below. I encourage others to play with it and let me know what needs fixing/improving.
Next step for my INS is to incorporate a GPS, which I'm awaiting delivery of. I've chosen to go with a MT3329 based device. This particular unit is produced by 4D Systems and comes with a simple (I like simple) break-out board:
I'm documenting this entire project on my site, which I also have the attitude indicator program.