Closed jtec closed 3 years ago
We tried to define the noise system parameter in continuous time and then, as we have measurements at discrete time, we multiply the noise by the time interval between one sample and the next one to consider the "average" noise in this time interval. This way, we can use this approach later on when estimating the delay, so we can obtain the noise at the delayed time by multiplying it by the estimation of the delay. We do not understand why it is necessary to take into account the number of samples if we are estimating the state vector at each sample.
Ok great. Just make sure that process noise parameter (sigma***) units correspond to continuous time too, so e.g. m/s for the position state.
There is still the accelerometer bias driving noise parameter missing, since sigmaAcc appears to be the measurement noise (driving the INS velocity error), and sigmaAccBias the initial bias covariance.
Process noise parameters added for acc bias and delay states.
The sigmaAcc parameter is used both as accelerometer measurement noise and accelerometer bias driving noise.
A note on covariance propagation: Line 21 of standardEKF: since the process noise parameters are given for the discrete system (units in config.yaml), I believe Q actually needs to be multiplied with the number of samples that make up the prediction horizon (see section 8.1.1 in [Simon, 2006] Optimal State Estimation - Kalman, H Infinity, and Nonlinear Approaches.pdf (on teams))
If we define the process noise for the continuous time system and then discretize, units would be dx/dt, e.g. m/ms for the position state, and we would in fact multiply with the prediction horizon in units of time, as is done in Line 21.
So it depends on the definition of the process noise as defined for the continuous time system or for a selected sampling time.