大神解答
一.前提
最一般的状态估计问题,我们会根据系统是否线性,把它们分为线性/非线性系统。同时,对于噪声,根据它们是否为高斯分布,分为高斯/非高斯噪声系统。现实中最常见的,也是最困难的问题,是非线性-非高斯(NLNG, Nonlinear-Non Gaussian)的状态估计。下面先说最简单的情况:线性高斯系统。
线性高斯系统在线性高斯系统中,运动方程、观测方程是线性的,且两个噪声项服从零均值的高斯分布。这是最简单的情况。简单在哪里呢?主要是因为高斯分布经过线性变换之后仍为高斯分布。而对于一个高斯分布,只要计算出它的一阶和二阶矩,就可以描述它(高斯分布只有两个参数 (其中过程可以参考贝叶斯法则-最大似然估计) 现在的问题是如何求解这个最大化问题。对于高斯分布,最大化问题可以变成最小化它的负对数。当我对一个高斯分布取负对数时,它的指数项变成了一个二次项,而前面的因子则变为一个无关的常数项,可以略掉(这部分我不敲了,有疑问的同学可以问)。于是,定义以下形式的最小化函数:
写成矩阵的形式,类似最小二乘的问题: 另一方面,能否直接求解(*)式,得到 |
二.扩展卡尔曼滤波器 --- EKF自己总结(针对非线性非高斯系统)
滤波器自己的局限性:
那么,怎么克服以上的缺点呢?途径很多,主要看我们想不想维持EKF的假设。如果我们比较乖,希望维持高斯分布假设,可以这样子改:
如果不那么乖,可以说:我们不要高斯分布假设,凭什么要用高斯去近似一个长得根本不高斯的分布呢?于是问题变为,丢掉高斯假设后,怎么描述输出函数的分布就成了一个问题。一种比较暴力的方式是:用足够多的采样点,来表达输出的分布。这种蒙特卡洛的方式,也就是粒子滤波(PF)的思路。 |
三.IEKF
四.UKF无迹卡尔曼滤波
五. PF 粒子滤波
六. CKF 容积卡尔曼滤波
七. 非线性优化
非线性优化,计算的也是最大后验概率估计(MAP),但它的处理方式与滤波器不同。对于上面写的状态估计问题,可以简单地构造误差项: 然后最小化这些误差项的二次型: 这里仅用到了噪声项满足高斯分布的假设,再没有更多的了。当构建一个非线性优化问题之后,就可以从一个初始值出发,计算梯度(或二阶梯度),优化这个目标函数。常见的梯度下降策略有牛顿法、高斯-牛顿法、Levenberg-Marquardt方法。非线性优化方法现在已经成为视觉SLAM里的主流,尤其是在它的稀疏性质被人发现且利用起来之后。它与滤波器最大不同点在于, 一次可以考虑整条轨迹中的约束。它的线性化,即雅可比矩阵的计算,也是相对于整条轨迹的。相比之下,滤波器还是停留在马尔可夫的假设之下,只用上一次估计的状态计算当前的状态。可以用一个图来表达它们之间的关系: |
总结
- 卡尔曼滤波是递归的线性高斯系统最优估计。
- EKF将NLNG系统在工作点附近近似为LG进行处理。
- IEKF对工作点进行迭代。
- UKF没有线性化近似,而是把sigma point(采样点)进行非线性变换后再用高斯近似。
- PF去掉高斯假设,以粒子作为采样点来描述分布。
- 优化方式同时考虑所有帧间约束,迭代线性化求解。

)。
其中
是两个噪声项的协方差矩阵;
为转移矩阵和观测矩阵;
表示
的后验概率,用
表示它的先验概率。因为系统是线性的,噪声是高斯的,所以状态也服从高斯分布,需要计算它的均值和协方差矩阵。记第
时刻的状态服从:
估计
)的无偏最优估计。
![\[J\left( x \right) = \frac{1}{2}{\left( {z - Hx} \right)^T}{W^{ - 1}}\left( {z - Hx} \right)\]](/image/aHR0cDovL3poaWh1LmNvbS9lcXVhdGlvbj90ZXg9JTVDJTVCSiU1Q2xlZnQlMjgreCslNUNyaWdodCUyOSslM0QrJTVDZnJhYyU3QjElN0QlN0IyJTdEJTdCJTVDbGVmdCUyOCslN0J6Ky0rSHglN0QrJTVDcmlnaHQlMjklNUVUJTdEJTdCVyU1RSU3QistKzElN0QlN0QlNUNsZWZ0JTI4KyU3QnorLStIeCU3RCslNUNyaWdodCUyOSU1QyU1RA==.png)
![\[\begin{array}{l}
{{\tilde P}_k} = {A_{k - 1}}{{\hat P}_{k - 1}}A_{k - 1}^T + {Q_k}\\
{{\tilde x}_k} = {A_{k - 1}}{{\hat x}_{k - 1}} + {v_k}\\
{K_k} = {{\tilde P}_k}C_k^T{\left( {{C_k}{{\tilde P}_k}C_k^T + {R_k}} \right)^{ - 1}}\\
{{\hat P}_k} = \left( {I - {K_k}{C_k}} \right){{\tilde P}_k}\\
{{\hat x}_k} = {{\tilde x}_k} + {K_k}\left( {{y_k} - {C_k}{{\tilde x}_k}} \right)
\end{array}\]](/image/aHR0cDovL3poaWh1LmNvbS9lcXVhdGlvbj90ZXg9JTVDJTVCJTVDYmVnaW4lN0JhcnJheSU3RCU3QmwlN0QlMEElN0IlN0IlNUN0aWxkZStQJTdEX2slN0QrJTNEKyU3QkFfJTdCaystKzElN0QlN0QlN0IlN0IlNUNoYXQrUCU3RF8lN0JrKy0rMSU3RCU3REFfJTdCaystKzElN0QlNUVUKyUyQislN0JRX2slN0QlNUMlNUMlMEElN0IlN0IlNUN0aWxkZSt4JTdEX2slN0QrJTNEKyU3QkFfJTdCaystKzElN0QlN0QlN0IlN0IlNUNoYXQreCU3RF8lN0JrKy0rMSU3RCU3RCslMkIrJTdCdl9rJTdEJTVDJTVDJTBBJTdCS19rJTdEKyUzRCslN0IlN0IlNUN0aWxkZStQJTdEX2slN0RDX2slNUVUJTdCJTVDbGVmdCUyOCslN0IlN0JDX2slN0QlN0IlN0IlNUN0aWxkZStQJTdEX2slN0RDX2slNUVUKyUyQislN0JSX2slN0QlN0QrJTVDcmlnaHQlMjklNUUlN0IrLSsxJTdEJTdEJTVDJTVDJTBBJTdCJTdCJTVDaGF0K1AlN0RfayU3RCslM0QrJTVDbGVmdCUyOCslN0JJKy0rJTdCS19rJTdEJTdCQ19rJTdEJTdEKyU1Q3JpZ2h0JTI5JTdCJTdCJTVDdGlsZGUrUCU3RF9rJTdEJTVDJTVDJTBBJTdCJTdCJTVDaGF0K3glN0RfayU3RCslM0QrJTdCJTdCJTVDdGlsZGUreCU3RF9rJTdEKyUyQislN0JLX2slN0QlNUNsZWZ0JTI4KyU3QiU3QnlfayU3RCstKyU3QkNfayU3RCU3QiU3QiU1Q3RpbGRlK3glN0RfayU3RCU3RCslNUNyaWdodCUyOSUwQSU1Q2VuZCU3QmFycmF5JTdEJTVDJTVE.png)
)时,会用到后面时刻的信息(
等)。从这点来说,优化方法和卡尔曼处理信息的方式是相当不同的。
,也不是最好的。
的形式。这个结果几乎不会是输出分布的真正期望值。协方差也是同理。
然后最小化这些误差项的二次型:![\[\min J\left( x \right) = \sum\limits_{k = 1}^K {\left( {\frac{1}{2}{e_{v,k}}{{\left( x \right)}^T}W_{v,k}^{ - 1}{e_{v,k}}\left( x \right)} \right) + \sum\limits_{k = 1}^K {\left( {\frac{1}{2}{e_{y,k}}{{\left( x \right)}^T}W_{v,k}^{ - 1}{e_{v,k}}\left( x \right)} \right)} } \]](/image/aHR0cDovL3poaWh1LmNvbS9lcXVhdGlvbj90ZXg9JTVDJTVCJTVDbWluK0olNUNsZWZ0JTI4K3grJTVDcmlnaHQlMjkrJTNEKyU1Q3N1bSU1Q2xpbWl0c18lN0JrKyUzRCsxJTdEJTVFSyslN0IlNUNsZWZ0JTI4KyU3QiU1Q2ZyYWMlN0IxJTdEJTdCMiU3RCU3QmVfJTdCdiUyQ2slN0QlN0QlN0IlN0IlNUNsZWZ0JTI4K3grJTVDcmlnaHQlMjklN0QlNUVUJTdEV18lN0J2JTJDayU3RCU1RSU3QistKzElN0QlN0JlXyU3QnYlMkNrJTdEJTdEJTVDbGVmdCUyOCt4KyU1Q3JpZ2h0JTI5JTdEKyU1Q3JpZ2h0JTI5KyUyQislNUNzdW0lNUNsaW1pdHNfJTdCayslM0QrMSU3RCU1RUsrJTdCJTVDbGVmdCUyOCslN0IlNUNmcmFjJTdCMSU3RCU3QjIlN0QlN0JlXyU3QnklMkNrJTdEJTdEJTdCJTdCJTVDbGVmdCUyOCt4KyU1Q3JpZ2h0JTI5JTdEJTVFVCU3RFdfJTdCdiUyQ2slN0QlNUUlN0IrLSsxJTdEJTdCZV8lN0J2JTJDayU3RCU3RCU1Q2xlZnQlMjgreCslNUNyaWdodCUyOSU3RCslNUNyaWdodCUyOSU3RCslN0QrJTVDJTVE.png)