Unscented Kalman Filter: improved innovation calculation

The current implementation is what is usually called the “additive” form, which is appropriate when your process model contains additive process noise, i.e.

x_{k+1} = f(x_k) + u_k,

where u_k is Gaussian process noise. The augmented (non-additive) form that you mention above is for the more general non-linear case

x_{k+1} = f(x_k, u_k).

In general, you can also include the measurement noise in your augmented state (Julier and Uhlmann, 2004), so that you have 2(2L + M) + 1 sigma points, where M is the dimension of the measurement.

There’s definitely no harm in having a non-additive version of the UKF in Hipparchus! I’ll need to think about it a bit more, but it won’t just be a case of having an “additive” flag when instantiating the filter … there are differences in the interface to the process and measurement models, so we would (might?) need a non-additive version of UnscentedProcess.

I’m not sure about the benefits, especially for orbit determination. As you say, the advantage would be where the covariances (of the state and/or the measurement noise) are large, in similar cases to where the UKF provides an improvement over the EKF. There is a paper by Wu et. al., 2005 that shows an improvement, but their example is a bimodal econometrics model, so it’s unclear to me whether the majority of the benefit was from better estimation accuracy or just better resolving of the mode.

There are a bunch of different options for improving the performance of the estimators, but I don’t know which ones would provide the best bang-for-buck for orbit determination. I think there’d be some benefit in having the ability to define process noise in continuous time, e.g. Sarkka’s continuous-discrete UKF. So we could specify process noise just for the drag coefficient (for example) and have that integrated along with the mean/covariance, which would accumulate the uncertainty in drag into the orbital parameters in a pricipled way. But that would be a serious implementation challenge. And I also like the idea of implementing an iterated version of the EKF/UKF, like the iterated posterior linearisation filter, which would, again, improve performance with large uncertainties.