1. Why
既然扩展卡尔曼滤波可以解决非线性问题,为什么还要提出无迹卡尔曼滤波呢?
性能:在扩展卡尔曼滤波中,我们只使用了一个点展开来线性化,这就导致了这种估计方法的效果不佳
更好的方法:用许多点来近似
Trade-Off: 如果使用所有的点来近似,那就又会要求太多的计算资源,因此我们只用少量的计算资源获取大大提高的精度
2. How
选择Sigma Points:用少数几个点来表示整个分布,用的点越多,近似就越精确
高斯分布在经过一个非线性变换之后就不再是高斯分布了,所以在这里引入一个Unscented Transform来完成这个变换任务
- 计算一个Sigma Point的集合
通常来说,如果系统是N维的,那么Sigma Point的个数选择$2N+1$
$$
\begin{aligned}
X ^{[0]} &=\mu \
X ^{[i]} &=\mu+(\sqrt{(n+\lambda) \Sigma}){i} \text { for } i=1, \ldots, n \
X ^{[i]} &=\mu-(\sqrt{(n+\lambda) \Sigma}){i-n} \quad \text { for } i=n+1, \ldots, 2 n
\end{aligned}
$$
其中$\Sigma$是协方差矩阵,$\lambda$是一个扩张系数(一般选择$3-n$),$X$是Sigma Point矩阵,每一行都是Sigma Point的集合。