• 数学小抄: 概率角度推导Kalman Filter


    复习

    参考: [机器人学中的状态估计]
    联合概率密度指数部分:

    ( [ x y ] − [ μ x μ y ] ) ⊤ [ Σ x x Σ x y Σ y x Σ y y ] − 1 ( [ x y ] − [ μ x μ y ] ) = ( [ x y ] − [ μ x μ y ] ) ⊤ [ 1 0 − Σ y y − 1 Σ y x 1 ] [ ( Σ x x − Σ x y Σ y y − 1 Σ y x ) − 1 0 0 Σ y y − 1 ] × [ 1 − Σ x y Σ y y − 1 0 1 ] ( [ x y ] − [ μ x μ y ] ) = ( x − μ x − Σ x y Σ y y − 1 ( y − μ y ) ) ⊤ ( Σ x x − Σ x y Σ y y − 1 Σ y x ) − 1 × ( x − μ x − Σ x y Σ y y − 1 ( y − μ y ) ) + ( y − μ y ) ⊤ Σ y y − 1 ( y − μ y ) ([xy][μxμy])[ΣxxΣxyΣyxΣyy]1([xy][μxμy])=([xy][μxμy])[10Σ1yyΣyx1][(ΣxxΣxyΣ1yyΣyx)100Σ1yy]×[1ΣxyΣ1yy01]([xy][μxμy])=(xμxΣxyΣ1yy(yμy))(ΣxxΣxyΣ1yyΣyx)1×(xμxΣxyΣ1yy(yμy))+(yμy)Σ1yy(yμy)

    ([xy][μxμy])[ΣxxΣyxΣxyΣyy]1([xy][μxμy])=([xy][μxμy])[1Σ1yyΣyx01][(ΣxxΣxyΣ1yyΣyx)100Σ1yy]×[10ΣxyΣ1yy1]([xy][μxμy])=(xμxΣxyΣ1yy(yμy))(ΣxxΣxyΣ1yyΣyx)1×(xμxΣxyΣ1yy(yμy))+(yμy)Σ1yy(yμy)
    ([xy][μxμy])[ΣxxΣyxΣxyΣyy]1([xy][μxμy])=([xy][μxμy])[1Σyy1Σyx01][(ΣxxΣxyΣyy1Σyx)100Σyy1]×[10ΣxyΣyy11]([xy][μxμy])=(xμxΣxyΣyy1(yμy))(ΣxxΣxyΣyy1Σyx)1×(xμxΣxyΣyy1(yμy))+(yμy)Σyy1(yμy)

    p ( x , y ) = p ( x ∣ y ) p ( y ) p ( x ∣ y ) = N ( μ x + Σ x y Σ y y − 1 ( y − μ y ) , Σ x x − Σ x y Σ y y − 1 Σ y x ) p ( y ) = N ( μ y , Σ y y ) p(x,y)=p(x|y)p(y)p(x|y)=N(μx+ΣxyΣ1yy(yμy),ΣxxΣxyΣ1yyΣyx)p(y)=N(μy,Σyy)

    p(x,y)p(x|y)p(y)=p(x|y)p(y)=N(μx+ΣxyΣ1yy(yμy),ΣxxΣxyΣ1yyΣyx)=N(μy,Σyy)
    p(x,y)p(xy)p(y)=p(xy)p(y)=N(μx+ΣxyΣyy1(yμy),ΣxxΣxyΣyy1Σyx)=N(μy,Σyy)
    高斯分布为指数形式, 指数的乘积为等于幂次项的相加

    ( ⋅ ^ ) (\hat{\cdot}) (^)表示后验, ( ⋅ ˇ ) (\check{\cdot}) (ˇ)表示先验, 无上标表示真值

    k-1时刻的高斯后验为:
    p ( x k − 1 ∣ x ˇ 0 , v 1 : k − 1 , y 0 : k − 1 ) = N ( x ^ k − 1 , P ^ k − 1 ) p(x_{k-1}|\check{x}_0,v_{1:k-1},y_{0:k-1})=\mathcal{N}(\hat{x}_{k-1},\hat{P}_{k-1}) p(xk1xˇ0,v1:k1,y0:k1)=N(x^k1,P^k1)
    考虑最近时刻的输入 v k v_k vk, 计算k时刻的高斯先验:
    p ( x k ∣ x ˇ 0 , v 1 : k , y 0 : k − 1 ) = N ( x ˇ k , P ˇ k ) p(x_k|\check{x}_0,v_{1:k},y_{0:k-1})=\mathcal{N}(\check{x}_k,\check{P}_k) p(xkxˇ0,v1:k,y0:k1)=N(xˇk,Pˇk)

    其中
    P ˇ k = A k − 1 P ^ k − 1 A k − 1 ⊤ + Q k x ˇ k = A k − 1 x ^ k − 1 + v k ˇPk=Ak1ˆPk1Ak1+Qkˇxk=Ak1ˆxk1+vk

    Pˇkxˇk=Ak1P^k1Ak1+Qk=Ak1x^k1+vk
    Pˇkxˇk=Ak1P^k1Ak1+Qk=Ak1x^k1+vk

    x ˇ k = E [ x k ] = E [ A k − 1 x k − 1 + v k + w k ] = A k − 1 E [ x k − 1 ] + v k + E [ w k ] = A k − 1 x ^ k − 1 + v k ˇxk=E[xk]=E[Ak1xk1+vk+wk]=Ak1E[xk1]+vk+E[wk]=Ak1ˆxk1+vk

    xˇk=E[xk]=E[Ak1xk1+vk+wk]=Ak1E[xk1]+vk+E[wk]=Ak1x^k1+vk

    对于协方差有:
    P ˇ k = E [ ( x k − E [ x k ] ) ( x k − E [ x k ] ) ⊤ ] = E [ ( A k − 1 x k − 1 + v k + w k − A k − 1 x ^ k − 1 − v k ) ( A k − 1 x k − 1 + v k + w k − A k − 1 x ^ k − 1 − v k ) ⊤ ] = A k − 1 E [ ( x k − 1 − x ^ k − 1 ) ( x k − 1 − x ^ k − 1 ) ⊤ ] A k − 1 ⊤ + E [ w k w k ⊤ ] = A k − 1 P ^ k − 1 A k − 1 ⊤ + Q k ˇPk=E[(xkE[xk])(xkE[xk])]=E[(Ak1xk1+vk+wkAk1ˆxk1vk)(Ak1xk1+vk+wkAk1ˆxk1vk)]=Ak1E[(xk1ˆxk1)(xk1ˆxk1)]Ak1+E[wkwk]=Ak1ˆPk1Ak1+Qk

    Pˇk=E[(xkE[xk])(xkE[xk])]=E[(Ak1xk1+vk+wkAk1x^k1vk)(Ak1xk1+vk+wkAk1x^k1vk)]=Ak1E[(xk1x^k1)(xk1x^k1)]Ak1+E[wkwk]=Ak1P^k1Ak1+Qk

    对于更新部分(状态与最近一次测量(即k时刻)):
    p ( x k , y k ∣ x ˇ 0 , v 1 : k , y 0 : k − 1 ) = N ( [ μ x μ y ] , [ Σ x x Σ x y Σ y x Σ y y ] ) = N ( [ x ˇ k C k x ˇ k ] , [ P ˇ k P ˇ k C k ⊤ C k P ˇ k C k P ˇ k C k ⊤ + R k ] ) p(xk,yk|ˇx0,v1:k,y0:k1)=N([μxμy],[ΣxxΣxyΣyxΣyy])=N([ˇxkCkˇxk],[ˇPkˇPkCkCkˇPkCkˇPkCk+Rk])

    p(xk,ykxˇ0,v1:k,y0:k1)=N([μxμy],[ΣxxΣyxΣxyΣyy])=N([xˇkCkxˇk],[PˇkCkPˇkPˇkCkCkPˇkCk+Rk])

    结合高维高斯分布的性质
    p ( x k ∣ x ˇ k , v 1 : k , y 0 : k ) = N ( μ x + Σ x y Σ y y − 1 ( y k − μ y ) , Σ x x − Σ x y Σ y y − 1 Σ y x ) p(x_k|\check{x}_k,v_{1:k},y_{0:k})=\mathcal{N}(\mu_x+\Sigma_{xy}\Sigma^{-1}_{yy}(y_k-\mu_y),\Sigma_{xx}-\Sigma_{xy}\Sigma^{-1}_{yy}\Sigma_{yx}) p(xkxˇk,v1:k,y0:k)=N(μx+ΣxyΣyy1(ykμy),ΣxxΣxyΣyy1Σyx)

    x ^ k \hat{x}_k x^k作为均值, P ^ k \hat{P}_k P^k作为协方差:
    K k = P ˇ k C k ⊤ ( C k P ˇ k C k ⊤ + R k ) − 1 P ^ k = ( 1 − K k C k ) P ˇ k x ^ k = x ˇ k + K k ( y k − C k x ˇ k ) Kk=ˇPkCk(CkˇPkCk+Rk)1ˆPk=(1KkCk)ˇPkˆxk=ˇxk+Kk(ykCkˇxk)

    KkP^kx^k=PˇkCk(CkPˇkCk+Rk)1=(1KkCk)Pˇk=xˇk+Kk(ykCkxˇk)

  • 相关阅读:
    Spring AOP 分享
    猿创征文|Linux 管道命令Cut、sort、wc、uniq、tee、tr【一】
    ssm教务信息管理系统的设计与实现毕业设计-附源码161124
    早安心语微语早读,好好善待自己,珍惜今天,期待明天
    日常小记-20221123
    机器学习——朴素贝叶斯
    SpringBoot+vue+elementui实现前后端分离的化妆品销售商城网站
    Spring笔记
    泛型基础使用
    XGBOOST案例
  • 原文地址:https://blog.csdn.net/nkc555/article/details/127696648