Account for latency in Kalman Filter

Hi all, my first post, I will try to be brief but the problem is a little convoluted.
I am designing a multi-sensor kalman filter that can 1) dynamically adapt the error covariance matrices, and 2) Deal with latent data

To deal with the latency problem, I would like to include prior sensor data (say, over the last 10 time steps) in my state vector. Is this legal?

I am concerned because, lets say I have predicted state k-5, and at the current time step I receive an actual measurement of the state k-5. Then what?
I can't go to a correction step, because I let's also say I don't have a measurement of state k-2 (just a prediction). Then the state vector can't ever be corrected? Or am I totally off base?

Finally, the more obvious choice would be to use a conventional state vector, and keep track of older measurements in a buffer of sorts. For old data, I would backtrack and re-calculate each state until the current one. The problem with that is that my state covariance matrix P has changed too, and it seems extremely inefficient to store all this data for the last 10 time steps.

So basically I am stuck, and I really appreciate any help whatsoever.
Cheers

Hi all, my first post, I will try to be brief but the problem is a little convoluted.
I am designing a multi-sensor kalman filter that can 1) dynamically adapt the error covariance matrices, and 2) Deal with latent data

To deal with the latency problem, I would like to include prior sensor data (say, over the last 10 time steps) in my state vector. Is this legal?

I am concerned because, lets say I have predicted state k-5, and at the current time step I receive an actual measurement of the state k-5. Then what?
I can't go to a correction step, because I let's also say I don't have a measurement of state k-2 (just a prediction). Then the state vector can't ever be corrected? Or am I totally off base?

Finally, the more obvious choice would be to use a conventional state vector, and keep track of older measurements in a buffer of sorts. For old data, I would backtrack and re-calculate each state until the current one. The problem with that is that my state covariance matrix P has changed too, and it seems extremely inefficient to store all this data for the last 10 time steps.

So basically I am stuck, and I really appreciate any help whatsoever.
Cheers

Phil

If you have no plant/system noise this is trivial, you just back predict from the current estimeste to an estimate at the time of the measurement you have recieved, do an update step and then extrapolate back to where you were before.

If you do have plant noise you cant do this.

It would be best to keep a buffer of the state estimates, covariances and measurements, then when you get an out of sequence measurement use the latest estimate prior to the time stamp on the new but latent data, process it and then reprocess all the subsequent data.

If you have no plant/system noise this is trivial, you just back predict from the current estimeste to an estimate at the time of the measurement you have recieved, do an update step and then extrapolate back to where you were before.

If you do have plant noise you cant do this.

It would be best to keep a buffer of the state estimates, covariances and measurements, then when you get an out of sequence measurement use the latest estimate prior to the time stamp on the new but latent data, process it and then reprocess all the subsequent data.

CB

That is what I had expected I would need to do, but hoped there might be a faster way.
My application is for landing an autonomous helicopter on a moving (translating and rotating) platform so I am obviously worried about any added filter latency.
But I agree, this seems like the most logical solution. Thanks for the help