Understanding EKF delayed fusion time horizon

I am trying to understand the implementation of EKF. The one thing that’s confusing is the delayed fusion time horizon. After reading through the code, this is what I came up with. But I want to confirm if it’s in even close to being correct.

So basically, _imu_buffer_length is decided based on the maximum of each sensor’s delay. Current time is when you get a sensor data to fuse. And the delayed fusion time horizon is when you’re applying the correction to the output states.
In every Ekf::update() loop the states are predicted using _imu_sample_delayed and _output_sample_delayed, then the correction is calculated using _imu_sample_new which is applied to the _output_buffer.

Thanks!

Hi,

Sounds correct. Have you seen this documentation?

1 Like