Chapter four The UKF: do not differentiate, sample
Julier and Uhlmann began from an observation that sounds almost too simple: it is easier to approximate a probability distribution than to approximate an arbitrary nonlinear function. So do not linearise the function at all. Instead choose a small, deliberate set of points that carry the mean and covariance exactly, push each one through the real nonlinear function, and fit a Gaussian to wherever they land.
This is the unscented transform, and the UKF is what you get when you use it in place of the Jacobians in Chapter III.
4.1 · Choosing the sigma points
For an \(n\)-dimensional state you need \(2n+1\) points. One sits at the mean; the rest are placed symmetrically along the principal axes of the covariance, at a distance set by a scaling parameter:
where \(\lambda = \alpha^2(n+\kappa) - n\) controls the spread. Typical settings are \(\alpha \approx 10^{-3}\), \(\kappa = 0\), and \(\beta = 2\) which is optimal when the true distribution really is Gaussian. Each point carries two weights, one for reconstructing the mean and one for the covariance:
4.2 · Propagate and recombine
Push every point through the true function — no derivatives anywhere — then take the weighted mean and weighted scatter of the results:
The measurement step is identical in spirit. Push the sigma points through \(h\), get \(\hat{z}^-\) and the innovation covariance \(P_{zz}\), and additionally form the cross-covariance between state and measurement:
Compare (4.5) with the EKF's \(K = P^-H^\top S^{-1}\). They are the same formula: \(P^-H^\top\) is the linear estimate of the cross-covariance. The UKF simply computes it by sampling instead of by differentiating.
The catch is that the UKF is still a filter. It still assumes the posterior is Gaussian, it still processes measurements once and forgets them, and it still cannot go back and revise a state it committed to ten seconds ago. For that you need to abandon filtering altogether.