Finally, the article I wrote is out in the May 2010 issue of Circuit Cellar Magazine. Unfortunately I have yet to get my hands on it. From http://www.circuitcellar.com/magazine/; it's $2 to buy or go to Barnes and Noble and get yourself a copy of the magazine.
The FreeSpace IMU: A Quaternion-Based Algorithm for Attitude Estimation by TJ Bordelon
An unmanned robotic vehicle requires a working inertial measurement unit (IMU), which outputs an estimation of the attitude, or orientation, of a vehicle in 3-D space. For attitude estimation, you need MEMS sensors (e.g., gyros, accelerometers, and magnetometers) and a sufficient algorithm to “fuse” them together. This article covers a simple quaternion-based algorithm for an IMU project. p. 14
Comments
http://www.scribd.com/doc/32505258/Circuit-Cellular
Article on Pages 16-23
I typed up a n additional comments and was wondering if it is correct:
// Aircraft coordinate system:
// X axis is forward, Y is to the right, Z is down.
// imu_north[0]=magnetic field on xaxis normalized to +/-1.0 Should be maximum when pointing north
// imu_north[1]=magnetic field on yaxis normalized to +/-1.0 Should be maximum when pointing west.
// imu_north[2]=magnetic field on zaxis normalized to +/-1.0 Should be maximum when vehicle vertical
// is pointing north at angle from level defined by local vertical component of magnetic field.
//imu_north is scaled to unit vector.
//
// imu_down[0]=X axis acceleration this value is positive when vehicle is pointing straight down.
// imu_down[1]=Y axis acceleration value is positive when right wing is pointing down.
// imu_down[2]=Z axis acceleration value is positive when vehicle level and upright..
//imu_down is scaled to be unit vector.
//
// rates[0]=Rotation around X axis positive when rolling to right, scaled to Rad/sec
// rates[1]=Rotation around Y axis positive when pitching nose up, scaled to Rad/sec
// rates[2]=Rotation around Z axis positive when yawing to the to right, scaled to Rad/sec
Basically it's a very simple, easy to visualize, and easy to code IMU algorithm.
The stuff I'm used to seeing is "DCM" which is a big rotation matrix (expensive) and some crazy hard to visualize math. Maybe some of it simplifies to the same thing, but most of the existing papers frustrated me.
(PS-- I don't get money from this, just trying to point out that it's available.)
Tj can we get a text post of your article or if not some background info about why you wrote it and what it is about, then members can decide if they want to buy it.
Thanks
Ron
Yeah, it's in a pay magazine, but $2. I don't see any of that, but it's a unique algorithm and very simple. Worth it I'd say. I spent many years perfecting it. I believe it superior to DCM in simplicity-- you can easily wrap your head around it.