Hi all.
I'm building a custom AHRS/IMU, and I'm trying implement Bills et al's DCM, without much success.
The parts I'm using and other details on the project can be found here: http://hackoholics.blogspot.com/
At the moment I've not implemented any drift corrections to the gyros, only R[] update and normalisations. I was expecting to get roll/pitch/yaw angles roughly in the ball park when I move the gyro around, but all I get is fluctuations around 0 up to +/- 2-3 degrees, and fluctuating sign changes.
This is the pseudo code for what I do do far:
- gyro-updates are received an scaled to degrees (w*dt)
- Rup update matrix is constructed
- Matrix multiplication to get new R matrix. R(t+1) = R(t)*Rup
- Normalising of R matrix
- Calculate and display Roll/Pitch/Heave angles.
I don't completely understand rotation matrices, DCM or Euler angles. I've read and reread Bills DCMDraft, wikipedia, Mahoney's papers (a little heavy), and other sources. I'm sorry for my ignorance, but I really need some help with this one. I have basic knowledge of algebra, calcules, and linear algebra/matrix maths.
Is there anyone here who can shed some light on the matter? Had similar problems? Kindly Guide me through this?
Replies
Hurray, I sussed it. It was a stupid error, once I converted w*dt into rad, and the result from rad to degree, it worked.
I've also implemented the corrections now, had some issues with the axis, but that's all sorted now.
A big help was also reading the paper from this site: http://www.starlino.com/dcm_tutorial.html