卡爾曼濾波器在車輛跟蹤預(yù)測的應(yīng)用(上)

狀態(tài)預(yù)測

卡爾曼濾波首先考慮的問題是目標(biāo)狀態(tài),這也叫系統(tǒng)狀態(tài)。以小車在高速公路上行駛為例,小車的狀態(tài)可以用位置和速度來表示。用數(shù)學(xué)符號表示即x_{t} =\left[ \begin{matrix}   p_{t}\\   v_{t}\\     \end{matrix}  \right] ,其中p_{t}表示位置,v_{t}表示速度。

小車在行駛,既可以做勻速直線運動,也可以做加速運動。假定u表示小車的加速度,那么小車進(jìn)行勻速運動時,u=0。t時刻,小車的位移和速度可以分別表示為:

p_{t}= p_{t-1}+v_{t-1}\times \Delta t+\frac{\Delta t^2}{2 } \times u_{t}

v_{t}= v_{t-1}+\Delta t\times u_{t}

因為當(dāng)前時刻的位置和速度分別是上一時刻的線性組合,因此可以用矩陣的形式來描述上述兩個公式, 即:\left[ \begin{matrix} p_{t}\\ v_{t}\\ \end{matrix} \right] =\left[ \begin{matrix} 1&\Delta t\\ 0&1\\ \end{matrix} \right] \left[ \begin{matrix} p_{t-1}\\ v_{t-1}\\ \end{matrix} \right] +\left[ \begin{matrix} \frac{\Delta t^2 }{2} \\ \Delta t\\ \end{matrix} \right] u_{t}

F_{t} =\left[ \begin{matrix} 1&\Delta t\\ 0&1\\ \end{matrix} \right] ,B_{t} =\left[ \begin{matrix} \frac{\Delta t^2 }{2} \\ \Delta t\\ \end{matrix} \right],那么上面公式就轉(zhuǎn)換為:

\hat x_{t}^-= F_{t}\hat x_{t}^-+B_{t}u_{t}

劃重點,此公式也就是卡爾曼濾波器的第一個公式,叫狀態(tài)預(yù)測公式。F_{t} 就是系統(tǒng)狀態(tài)轉(zhuǎn)移矩陣,表示上一個時刻狀態(tài)怎么變換到下一個時刻的狀態(tài),B_{t}是控制矩陣,表示控制量u是怎么作用于當(dāng)前狀態(tài)。\hat x_{t}^- 就是我們的預(yù)測值。細(xì)心的可以發(fā)現(xiàn),這里的x帶有帽子,沒有寫錯,這說明了這里的x是系統(tǒng)狀態(tài)的估計值,這個值是通過上一個時刻的狀態(tài)(卡爾曼濾波修正后的狀態(tài)值)計算估計出來的。既然x是估計值,那么就存在噪聲,我們用協(xié)方差矩陣表示當(dāng)前估計值和真實值相比,帶來多大的不確定性,那么就有卡爾曼濾波的第二個公式,也就是不確定性在各個時刻的傳遞公式:

P_{t}^- =FP_{t-1}F^{T} +Q

P表示協(xié)方差矩陣,F是狀態(tài)轉(zhuǎn)移矩陣,考慮在估計下一時刻的狀態(tài)x,本身存在的噪聲,這個噪聲用Q來表示。這樣下一時刻的協(xié)方差矩陣P的估計值,就得到了。綜上,卡爾曼濾波器的狀態(tài)預(yù)測兩個公式就說明清楚了。

觀測矩陣


  小車在行駛,那么這個觀察矩陣是什么東西。這個跟實際的需求有關(guān),可以是位置,可以是速度,也可以是速度和位置等。在這個例子中以小車的位置為觀察量,用數(shù)學(xué)符號z_{t}表示。因為預(yù)測值x_{t}和觀測值z_{t}之間是線性關(guān)系(卡爾曼濾波器處理線性問題),那么轉(zhuǎn)換關(guān)系就可以用矩陣H表示,H叫觀測矩陣。需要考慮的是估計值x_{t} 和觀測值z_{t}的維度不總是相同,那么觀測矩陣H是根據(jù)實際情況構(gòu)造的。

  小車行駛例子,估計值x_{t}.shape = (2,1),z_{t}.shape=(1,1),那么H.shape =(1,2),H=\left[ \begin{matrix}  1&0 \end{matrix}  \right] ,據(jù)此,得到卡爾曼濾波的第三公式:

z_{t}=Hx_{t}+v。

v表示測量噪聲,因為測量值不是100%準(zhǔn)確,即實際的測量值跟你測出來的測量值還是存在誤差,那么用R表示這個誤差,專業(yè)術(shù)語就是觀測噪聲的協(xié)方差矩陣。小車?yán)佑^測值z_{t}是一個標(biāo)量,那么R就只代表方差了。

狀態(tài)更新

  有了小車狀態(tài)的估計值和測量值,就可以用卡爾曼濾波器來修正測量值了。

?????? \hat x_{t}=\hat x_{t}^-+K_{t}(z_t-H\hat x_{t}^-)

???? K_t =P_t^{-}H^T{(HP_t^{-}H^{T}+R)}^{-1}

???? 其中(z_t-H\hat x_{t}^-)是測量值和估計值之間的殘差,K_{t}是卡爾曼系數(shù),用來衡量預(yù)測狀態(tài)協(xié)方差P和觀測狀態(tài)協(xié)方差R的大小進(jìn)而相信預(yù)測模型多一點還是觀察模型多一點。相信預(yù)測模型多一點,則殘差的權(quán)重小一點,反之,殘差的權(quán)重大一點。

噪聲協(xié)方差矩陣更新:

 卡爾曼濾波器的最后一個公式就是對最佳估計值的噪聲分布的更新了:

 P_{t}= (1-K_{t}H)P_{t}^-

以上,卡爾曼濾波器的所有的公式和參數(shù)就解釋完啦,下集將會給出自己的實戰(zhàn)例子。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容