Gyroscopes give information about angular velocity; accelerometers give static and dynamic acceleration (one is opposite of the other in sign).
In order to work out angular position along x, y and z axis, none of the two systems is reliable enough to obtain precise data. Gyros suffer from drift (they don't go back to zero value after the angular rotation has stopped), plus 10 bit precision typical of many hobby microcontrollers (including Arduino) makes it really hard to obtain precise data.
On the other hand, accelerometers might give out misleading data under dynamic conditions, since it just measures inertial forces basically, which are in the opposite direction of the movement itself.
What DCM does to sort this all out, is to make a weighed average of the values coming from both sets of sensors, in order to minimize error and on top of that uses gps direction data to get rid of the drift, that for some particular reason which I didn't understand yet, it's more pronounced on yaw axis, more than the others.
Having said this, I can't figure out how a simple (and cheapish) device like a commercial heli gyro HK401 (12 dollars..), which uses no accelerometers, no gps data to correct drift, etc can "know" with reasonable precision its angular POSITION, thus integrating velocity with fair precision, when operating in Heading Lock mode.
As it stands, using arduino or any microcontroller with those gyros, it looks too easy to me to send a "fake" control pwm signal in the central range (1500) to simulate the radio controller output (in other words, just to keep it alive), and use the gyro output to work out when the platform is perfectly level.
3 gyros in head lock mode, one each axis, with the socalled AVCS (Angular Vector Control System) know exactly when they are zero offset from the initial position when they were powered.
Where's the trick?
Replies
Since I know zip about heli gyros... what kind of drift do they suffer over a few minutes? Also, do they work only for a horizontal attude hover? Or do they work at other attitudes? Lastly, what kind of gyros are used and how much do they cost versus hobby robotics/uav/ugv gyros?