概率机器人无迹卡尔曼滤波
在卡尔曼滤波和扩展卡尔曼滤波中。我们都是使用的一阶矩和二阶矩来表示状态的置信度。无迹卡尔曼滤波是采用的另一种 线性方法 来表示状态的置信度——加权统计线性回归。
无迹变换
个人理解,其实无迹卡尔曼滤波的目的是运用统计学的方法来表示。

利用概率机器人里面的图来说明,假设一维高斯分布的均值为 $\mu$ 和 $\sigma$ ,取 $\sigma$ 点来表示高斯分布。这些 $\sigma$ 点位千均值处及对称分布于主轴的协方差处(每维2个)。然后再经过函数 $g$ 进行变换。
对于具有均值 $\mu$ 和方差 $\Sigma$ 的 $n$ 维高斯分布,结果 $2n + 1$ 个 $\sigma$ 点 $\chi^{[i]}$ 根据如下规则进行选择:
$$
\begin{align}
\chi^{[0]} &= \mu \\
\chi^{[i]} &= \mu + {(\sqrt{(n + \lambda) \Sigma})}_i & i&=1,...,n \\
\chi^{[i]} &= \mu + {(\sqrt{(n - \lambda) \Sigma})}_i & i&=n+1,...,2n \\
\lambda &= \alpha^2(n+\kappa)-n
\end{align}
$$
上式中 $\alpha$ 和 $\kappa$ 是确定 $\sigma$ 点分布在均值多远范围内的比例参数。
获得 $\chi$ 点后,通过函数 $g$ 可以获得对应的 $y$ 值。然后通过 $y$ 值,可以获取后验概率的均值矩阵和协方差矩阵。
$y$ 的获取可以通过下列的式子获得:
$$
\begin{align}
y^{[i]} &= g(\chi^{[i]})
\end{align}
$$
由获得的 $y^{[i]}$ 通过下面的式子,可以获得后验概率的均值矩阵和协方差矩阵。
$$
\begin{align}
\mu^{'} &= \sum_{i=0}^{2n} w_m^{[i]} y^{[i]}\\
\Sigma^{'} &= \sum_{i=0}^{2n} w_c^{[i]} (y^{[i]} - \mu^{'})(y^{[i]} - \mu^{'})^T
\end{align}
$$
其中,参数 $w_m^{[i]}$ 和 $w_c^{[i]}$ 的计算按照下面的式子计算:
$$
\begin{align}
w_m^{[0]} &= \frac{\lambda}{n+\lambda}\\
w_c^{[0]} &= \frac{\lambda}{n+\lambda} + (1- \alpha^2 + \beta)\\
w_m^{[i]} &= w_c^{[i]} = \frac{1}{2(n+\lambda)} & i = 1,...,2n
\end{align}
$$
选择参数 $\beta$ 对高斯表示的附加的分布信息进行编码。如果分布式精确的高斯分布,则 $\beta = 2$ 是最佳选择。
无迹卡尔曼滤波算法
$$
\begin{align}
\chi_{t-1} &= (\mu_{t-1},\mu_{t-1}+\gamma\sqrt{\Sigma_{t-1}},\mu_{t-1}-\gamma \sqrt{\Sigma_{t-1}})\\
\chi_t^{ * } &= g(u_t, \chi_{t-1})\\
\overline{\mu}t &= \sum^{2n}w_m^{[i]}\overline{\chi}t^{ * } \\
\overline{\Sigma_t} &= \sum^{2n} w_c^{[i]}(\overline{\chi}t^{ [i]}-\overline{\mu}_t)(\overline{\chi}_t^{ [i]}-\overline{\mu}_t)^T+R_t\\
\overline{\chi} &= (\overline{\mu}{t-1},\overline{\mu}+\gamma\sqrt{\Sigma_{t-1}},\overline{\mu}{t-1}-\gamma\sqrt{\Sigma})\\
\overline{Z}t &= h(\overline{\chi}_t)\\
\hat{z}_t &= \sum^{2n} w_m^{[i]} \bar{Z_t^{[i]}}\\
S_t &= \sum_{i=0}^{2n} w_c^{[i]}(\bar{Z}t^{[i]} - \hat{z}_t)(\bar{Z}_t^{[i]} - \hat{z}_t)^T + Q_t\\
\bar{\Sigma}_t^{x,z} &= \sum^{2n} w_c^{[i]} (\bar{Z}_t^{[i]} - \hat{z}_t)(\bar{Z}_t^{[i]} - \hat{z}_t)^T\\
K_t &= \bar{\sum_t^{x,z}}S_t^{-1}\\
\mu_t &= \bar{\mu_t} + K_t(z_t - \hat{z}_t)\\
\Sigma_t &= \hat{\Sigma}_t - K_tS_tK_t^T
\end{align}
$$
概率机器人在这里只是说明了简单的算法,并没有对无迹卡尔曼滤波进行相关的数学推导。参考资料可以查找van der Merve(2004)的文献中找到相关的资料。
参考文献
[1]Julier S J.The scaled unscented transformation.In:Proceeding of the American Control Conference. Washington D. C., USA: IEEE, 2002. 4555-4559.
[2]概率机器人。