There has been an ongoing discussion/debate about whether accelerometers are actually useful for attitude estimation on flying rotorcraft (quadrotors, in particular).  The simple, one sentence answer is "yes, they are." 


However, the accelerometer measurements are non-intuitive.  If the estimation algorithm uses the accelerometers incorrectly (which is, incidentally, the norm on hobby and even some professional aircraft) then there will be significant errors.


There is some good literature available now that describes the problem.  Martin and Salaun published  a very good paper describing quadrotor flight dynamics.  I also just finished my MS thesis, wherein I address the subject in detail.


In my thesis (the last link), Chapter 5 is what you'll want to look at.

Views: 2508


Reply to This

Replies to This Discussion

Thanks for your work and sharing it with others Caleb. BYU's paper's style is always nice to read.

Thanks Caleb for your great work and for being willing to share it with us.


FYI, Salaun's PhD thesis is also available (its mostly in English - don't be fooled by the first few pages)


- Roy

Great stuff Caleb! Thanks for sharing.

Hi Caleb,

Nice analysis.  Of course there is always more work to be done...    But it looks like a nice step in the right direction.


You appear to have an error in formula 5.15.  Fortunately it does not appear to carry forward anywhere.


I can follow the math but cannot intuitively see how the LPF filter model corrects the phase lag between the accelerometer estimated and actual angles.  Do you have an intuitive understanding of this that you can put in words?

Hi Doug,


The basic idea is that, in the absence of appreciable aerodynamic drag, any deviation in the attitude from zero will cause lateral accelerations that "cancel out" the gravity measurement on the x and y axes.  Gravity can only be measured accurately when the aircraft is no longer accelerating (i.e. when it is moving fast enough that drag prevents it from accelerating more).


The low-pass filter model simply accounts for the time it takes for the aircraft to reach that steady-state velocity.


You are right that more work remains to be done.  In fact, I would not recommend that anyone use the estimator I present in the thesis.  There are better ways of doing it.  A paper is in the works to provide an overview of possible ways to design a good estimator.



The way I see it, since the sensed accelerometer model includes a lag, the estimator effectively inverts the lag to compute the angle.


- Roy

Well, sure, I am just having trouble seeing how it phase shifts it "forward in time"....
It doesn't, really.  It filters the angle estimates, not the accelerometer data.  The accelerometer data is "filtered" by the aircraft dynamics, and the angle estimates on the estimator are filtered to match.

A necessary (but not sufficient) condition for the accelerometer to provide an accurate estimate the pitch/bank angle is for the magnitude of its output vector to be 1 g, Just examining the results holding the sensor in my hand, it seems that the gyro bias changes fairly slowly, hence we should be able to get decent estimates with infrequent accel-based updates. I know DCM exploits this to a certain degree, but I would take it further, using a very high observer gain on the accels when the (filtered) magnitude is close to 1 g, and zero gain otherwise. I haven't tried any of this on a quad yet.

Here are a few papers that use a similar idea:

The downside to your approach is that it may be difficult to experimentally identify the lag dynamics, without access to a wind tunnel or an expensive external orientation measurement system.

- Roy

Hi Roy,


Yeah, measuring the aerodynamic drag coefficient could be tricky without truth data.  I actually think it can be done with an optic flow sensor and a clever filter.  On the other hand, the drag coefficient needn't be perfectly accurate to obtain really good results, and for most small quadrotors, there is a reasonable ballpark that will produce more accuracy.


Using accelerometers directly, like you suggest, can work.  There is a tradeoff, though.  When accelerometer updates are infrequent, the filter becomes much more sensitive to non-zero gyro biases.  When accelerometer measurements are weighted more heavily, on the other hand, the filter is more sensitive to non-gravity accelerations.  Improving performance in one area necessarily reduces performance in the other.


Fully accounting for the dynamics of the aircraft, as described in my thesis, allows the above tradeoff to be circumvented almost altogether.  For a hobbyist who just wants to motor around, it probably isn't important.  But in any application where accurate truth states are required (i.e. geolocation, sensor registration, automated gimbal target tracking, etc.) the performance benefits definitely justify the increased complexity of the filter.  Moreover, if you want a full GPS/INS system, there really isn't an alternative to modeling the aircraft more accurately.


This is particularly true if it is desirable to use lower-cost MEMS sensors.  If you were using, say, FOG rate gyros, accelerometer updates would be almost unnecessary in the short term.  An uncalibrated ITG-3200 would be a totally different story.



Actually, I think it may be important to the hobbyists - many of the projects seem to be having accelerometer issues with their attitude estimation routines (just look here on DIYDrones and the Aeroquad forums).


Also, this paper looks intriguing, but I don't have access to it!

A linear fusion algorithm for attitude determination using low cost MEMS-based sensors


- Roy


A friendly quick note: Fig. 7.1 in page 148 says ATMEGA128 and shows an Analog Devices ADIS16355 IMU. I was just skimming through pages :)


Best Regards,


Reply to Discussion


© 2017   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service