I'm playing with gyroscopes (ITG-3200) and looking for adequate filters.

The problem is, it seems everyone want at least 6DOF, 9DOF, 89DOF ... I just need 3DOF and only have a 3 axis gyroscope.
I cannot find information on an adequate filter for gyros only that doesn't make use of accelerometers or magnetometers ...

I've tried kalman filtering (3 independant axis ... so reduced to a digital low pass filter), extended kalman filtering (cannot extract suitable equations for the model ... Euler seems the good way of doing it, but then enters quaternions and angles. I'd like an Euler equations based only on w and dw/dt, am I missing something ?), interlaced kalman filters (if inertial is the same of the 3 axis, then it is reduced to a simple kalman filter ...).

Another weird thing ... Kalman is supposed to be an adaptative filter, and from the equations I found (on many places ...) the gain calculation depends on R and Q (covariances matrix) which are supposed fixed, and doesn't depends on, say, the difference found between estimate and measurement. Then in fact independantly of the measurements, the gain K lean toward a fixed value (the positive solution of a 2nd order polynomial equation, depending on R and Q) ... and then the Kalman filter is a kind of low pass digital filter with a fixed gain (x(n+1) = (1-K)*x(n)+K*z(n), x being the estimate and z the measurement).

Either I'm missing something huge, either the kalman filter is not so "magical" to me.

I have pretty good mathematical and statistical background, but I'm not a filtering expert at all. I need help on this one.


Views: 2818

Reply to This

Replies to This Discussion

Hi Thomas,

I am by no means an expert on Kalman filtering, but I stumbled over the same issue you mention in your last paragraph: with fixed R and Q, the filter does indeed converge to a fixed gain. I believe the idea is that the covariances of the filter are supposed to be adjusted by some mechanism that is external to the Kalman filter. For example, if you know by some other means that temporary vibrations may render your gyro readings noisy, you would dial up the covariances for the time this condition persists.

On your first question: it is my understanding that the main idea behind Kalman filtering is to combine inputs from several sensors that direcly or indirectly measure a certain quantity in an optimal way (for example the tilt of something can be measured directly via an accelerometer or by integrating a rate gyro). Your three gyros measure three independent quantities, so there is nothing to combine for the Kalman filter here... Sounds to me like you only need a low pass filter to filter out some noise from your gyros.


Hello Marko,


It seems my conclusions make sense, hurra ;)


The only Kalman Filter I've seen working only on gyros is the IKF ... but it's based on the assumption the inertial moments around each axis is different (or it's a simple kalman filter => low pass filter ...).


I was assuming that the gyros would be correlated in some sort ... in fact they are, but in a way we can't use I think : dw/dt is somehow proportional to the torque applied to the system. One part of this torque comes from the system itself (actuators) hence move along with the system, but the other part of the torque comes from outside of the system, hence being fixed in the "world" (and moving with predictable trajectory via the kalman filter).


But this would mean being able to separate the two components of the torque to isolate the "external torque", which means estimating the "self torque" that the system apply on itself (pretty much known if by the system output - servo or ESC command).


Hum ... a bit complicated, no ? (I must stop reading these things of system equations, it's going to make me crazy !).


Now ... real solutions :

- Simply put a fixed gain digital low pass filter (simple, pretty much no CPU cost).

- Evolve this filter by some sort of automatic gain adjustment (maybe inversely proportional to the measured signal variance ?)

- Look at some other filtering methods (FIR ?) ...




As Marko said, the Kalman gain will converge to a constant if the process and measurement noises (Q and R, respectively) are constant.


What is the output you want from your gyroscopes? Body angles?



Ok it seems confirmed, with a "simple" model and Kalman filter, you end up with a fixed gain IIR filter ... ;)


I'm trying to build an adaptive FIR (already thought about the algorithm, still need to test it, but it should be amusing).




Reply to Discussion


© 2018   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service