大神解答
一.前提
最一般的狀態估計問題,我們會根據系統是否線性,把它們分為線性/非線性系統。同時,對於噪聲,根據它們是否為高斯分布,分為高斯/非高斯噪聲系統。現實中最常見的,也是最困難的問題,是非線性-非高斯(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)