I've read through the excellent UAVdev paper on DCM for tracking rigid body orientation, and I'm gradually understanding it. But I have some big questions. It seems that the best reason for using DCM in place of a Kalman filter is that it's much lighter computationally. (Is that right?) So, it can be quickly computed and updated on a dsPIC processor, right? But the dsPIC has some functions that make it better at math than a standard 8-bit uC, so how can the arduino keep up when doing DCM? Is the dsPIC on the UAVdev board much better/faster at updating the DCM than the arduino?
Also if the Kalman filter has been around and used since the 60's then how is it that it can't be EASILY implemented on todays far more powerful uCs? Is it more an issue of programming complexity than of processor power?
Also, why is there a movement toward DCM over Kalman? Besides computational simplicity, is there any advantage of DCM over kalman? And vice versa?
If kalman is superior overall, and 8-bit uC's are capable of it, then it's conceivable that some gifted hobbiest could endow us with a full-blown kalman solution right? (I wish I could be that person, but I'm not).
BTW, I want to say thanks to Bill and the team that have worked on the UAVdev project and documentation. From one engineer to another, it has the mark of true professionalism and great instruction. My hat's off. Thanks, also to Chris and Jordi (and others) for sharing so much of your project, and keeping it open.