View Single Post
  #24   Spotlight this post!  
Unread 14-01-2008, 11:34
jleibs's Avatar
jleibs jleibs is offline
Computation and Neural Scientist
AKA: Jeremy Leibs
no team
 
Join Date: Jan 2008
Rookie Year: 2001
Location: San mateo
Posts: 19
jleibs is a glorious beacon of lightjleibs is a glorious beacon of lightjleibs is a glorious beacon of lightjleibs is a glorious beacon of lightjleibs is a glorious beacon of light
Send a message via AIM to jleibs
Re: Filtering out Vibration while using a KOP Accelerometer

Quote:
Originally Posted by Tom Bottiglieri View Post
Try a Kalman filter. There is source code to some optimized versions floating around on the internet. (The full filter is a bit labor intensive.) This filter was designed to read noisy signals and make estimates of true value based on it.

http://en.wikipedia.org/wiki/Kalman_filter
First of all, Kalman Filters are great

Second of all, the rest of this post will likely sound like non-sense unless you've read a couple articles in Kalman Filters. If you think you're interested in Kalman Filtering, this is a good place to start.

Now onto what I was going to say: I've never had a Kalman treat the accelerometers as direct measurements in a nav system before. There are a couple reasons for this. Keep in mind, I use a full 6DOF system where all of this is more complicated. For one, it requires running the Kalman faster than we want to (at the full 400Hz IMU rate). Additionally, doing so requires the linearization of a fairly gnarly prediction function (since the prediction function is doing an implicit double-integration).

Finally, and I think this is the most important one: if your state vector includes acceleration and you are Kalman filtering your acceleration. You need a MODEL of how you expect your acceleration to change from one time-sample to the next. It's comparing this prediction to what you actually measure that allows a Kalman to function well. You have no means of acquiring such a prediction, especially when you want to measure things like crashes and bumps (outside the scope of your controlled values). So basically, to tune your Kalman to reflect the unpredictable nature of your accelerations, the process noise will have to be high enough that very little smoothing will actually happen.

What we tend to do is leave acceleration out of our state vector. We track position, orientation, and velocity inside the Kalman. We then integrate the accels/gyros using the inertial nav equations essentially as part of the prediction phase, and use this to update our predicted position/orientation/velocity values. Then, we use the Kalman measurement update to incorporate additional sensors such as GPS/IMU and correct these terms.

Calibrating and working out bugs in this kind of system is the kind of nightmare that can take an experienced engineer months (or years) to get right. At work, the Kalman Filter we use for our nav system has a state vector with 150 elements in it. Needless to say, it is still being debugged.

But you guys are working in 3DOF and I expect the problem is likely more tractable in that case. Maybe I'll review the equations when I get a chance this afternoon.

Where a Kalman would really shine is fusing measurements from your accelerometers with measurements from your shaft encoder or other sensors.

Anyone, please feel free to contact me if you would like to discuss Kalman filtering in more details.