Skip to main content

Kalman Filter - best wayOptimal Way to handle "derived" measurementsHandle "Derived" Measurements?

Tweeted twitter.com/#!/StackSignals/status/246670293203038208
Post Migrated Here from stackoverflow.com (revisions)
Source Link

Kalman Filter - best way to handle "derived" measurements?

Ie, if you have as state variables position (p) and velocity (v), and I make low-frequency measurements of p, this also indirectly gives me information about v (since it's the derivative of p). What is the best way to to handle such a relationship?

A) At the update step, should I only say I've measured p, and rely on the filtering process, and my accumulated state-covariance matrix (P), to correct v?

B) Should I create an "extra" prediction step, either after or before my update step for the measurement of p, that uses my measured p and (relatively large) delta-time to make a high-variance prediction of v?

C) In my update/measurement step, should I say I've made a measurement of both p and v, and then somehow encode information about their interdependence into the measurement co-variance matrix (R)?


For a little more background, here's the specific situation in which I've run into the problem:

I'm working with a system where I want to estimate the position (p) of an object, and I make frequent measurements of acceleration (a) and infrequent, high-noise measurements of p.

I'm currently working with a codebase that does this with an Extended Kalman Filter, where it keeps as state variables p and v. It runs a "prediction" step after every acceleration measurement, in which it uses the measured a and delta-time to integrate and predict new p and v. It then runs an "update"/"measurement" step for every (infrequent) p measurement.

The problem is this - I get occasional high-error measurements of a, which result in highly-erroneous v. Obviously, further measurements of a will never correct this, but measurements of p should get rid of this. And, in fact, this does seem to happen... but VERY slowly.

I was thinking that this may be partially because the only way p affects v in this system is through the covariance matrix P - ie, method A) from above - which seems fairly indirect. I was wondering if there would be a better way to incorporate our knowledge of this relationship between p and v into the model, so that measurements of p would correct v faster.

Thanks!