I am using UKF to estimate states of a small robotic vehicle. But It is results are diverging and I've been trying to tune the parameter but so far I am failing.
A set of 2n + 1 sigma points is derived from the augmented state and covariance where n is the dimension of the state. alpha and kappa control the spread of the sigma points and beta is related to the distribution of x. Normal values are alpha = 10^-3, kappa = 0, and beta = 2 if the distribution of x is Gaussian, in which case beta is optimal (source: Wikipedia).
Hi Jose. Thanks for your answer. But I do have knowledge of that general setup. I am looking for more detailed/deeper guid line. Because I currently have my program set up in that form but ends up diverging at the end.
One more thing I am aware of is that the algorithm depends the most on kappa(extra fine tune parameter) and system noise std. Which is I tweak them some how I'll have a system that doesn't diverge. But I've been doing that but still no luck.
Instead of handling the hurdles in the beginning stage, use the fundamental approach proposed by Julier and Uhlmann. The objective of UKF is to transform the second moments of posterior through a set of Sigma points. These sigma points will be chosen Symmetrically around the center (mean) of posterior density.
The best choice of choosing the weights can be by assigning 1 to kappa.
@Hessam: I am using the basic UKF implemetation. The one used on the following link (http://www.mathworks.com/matlabcentral/fileexchange/18217-learning-the-unscented-kalman-filter). Thanks.
Incidentally I recently investigated exactly this question and found surprising answers. Abstract:
Among nonlinear, Bayesian filters the Unscented Kalman Filter (UKF) promises to be computationally more efficient than a particle filter and more accurate than an Extended Kalman Filter. It, therefore, is a good candidate for many practical filtering applications in which the uncertainty of the filter estimates needs to be tracked, too. The approximation employed by the UKF is usually formalised with 3 free parameters, but, apart from very general hints about their purpose, users are left in the dark about the practical effects they have. I here go through the theory behind the UKF to review its parameters in more detail. I show that the UKF effectively has only 2 parameters. I then investigate the accuracy of the UKF with different parameter settings and show that the typically suggested parameter values lead to bad approximations compared to other parameter settings, when model functions are strongly nonlinear within the range covered by the current state distribution. I further show that, for the tested model, the accuracy of the UKF approximation deterioates in higher dimensions such that random sampling becomes computationally more efficient and more accurate in high dimensions (D>10). I conclude with a new suggestion for default UKF parameter values and discuss possible causes of my findings in comparison to sampling.
For full information see the link to the article on github.
Thank you Sebastian for your excellent answer and for the link. I can just add that I am using UKF to estimate parameters in building thermal models with large thermal inertia and from my experience when the thermal inertia of the building increases alpha also needs to increase to ensure a stable solution. In other words when the system response to a varying parameter is slow, larger alpha is required. Usually I work with alpha close to 1.
@Krzysztof : can you please elaborate your answer from a perspective of your problem. (leading to how you made your conclusion. Its a bit unclear right now.)