Robotics: Estimation and Learning.WEEK 2

W E E K 2 {\Large WEEK \qquad 2} WEEK2
K a l m a n 滤 波 在 最 后 \color{#F00}{Kalman滤波在最后} Kalman

2.1 系统和测量建模

\qquad 离散线性动态运动系统:
x t + 1 = A x t + B u t z t = C x t ( 1 ) x_{t+1}=Ax_{t}+Bu_{t}\qquad z_{t}=Cx_{t}\qquad(1) xt+1=Axt+Butzt=Cxt(1)其中A是状态转移矩阵, u t u_{t} ut表示不依赖状态 x t x_{t} xt的外部输入,C表示连接测量变量和状态的测量矩阵。
\qquad 基于基于状态动态模型的状态估计值条件概率:
p ( x t + 1 ∣ x t ) ( 忽 略 u t ) ( 2 ) p(x_{t+1}|x_{t})\qquad(忽略u_{t})(2) p(xt+1xt)ut(2) \qquad 带噪声的测量值的条件概率:
p ( z t ∣ x t ) ( 3 ) p(z_{t}|x_{t})\qquad(3) p(ztxt)(3) \qquad 应用线性动态模型:
p ( x t + 1 ∣ x t ) = A p ( x t ) ( 4 ) p ( z t ∣ x t ) = C p ( x t ) ( 5 ) p(x_{t+1}|x_{t})=Ap(x_{t})\qquad(4)\\ p(z_{t}|x_{t})=Cp(x_{t})\qquad(5) p(xt+1xt)=Ap(xt)(4)p(ztxt)=Cp(xt)(5) \qquad 给运动和观测加入噪声
p ( x t + 1 ∣ x t ) = A p ( x t ) + v m ( 6 ) p ( z t ∣ x t ) = C p ( x t ) + v o ( 7 ) p(x_{t+1}|x_{t})=Ap(x_{t})+v_{m}\qquad(6)\\ p(z_{t}|x_{t})=Cp(x_{t})+v_{o}\qquad(7) p(xt+1xt)=Ap(xt)+vm(6)p(ztxt)=Cp(xt)+vo(7) \qquad 引入状态 x t x_{t} xt的高斯模型
p ( x t + 1 ∣ x t ) = A N ( x t , P t ) + N ( 0 , ∑ m ) ( 8 ) p ( z t ∣ x t ) = C N ( x t , P t ) + N ( 0 , ∑ o ) ( 9 ) p(x_{t+1}|x_{t})=A\mathcal{N}(x_{t},P_{t})+\mathcal{N}(0,\begin{matrix}\sum_{m}\end{matrix})\qquad(8)\\ p(z_{t}|x_{t})=C\mathcal{N}(x_{t},P_{t})+\mathcal{N}(0,\begin{matrix}\sum_{o}\end{matrix})\qquad(9) p(xt+1xt)=AN(xt,Pt)+N(0,m)(8)p(ztxt)=CN(xt,Pt)+N(0,o)(9) \qquad 应用高斯分布的线性变换
p ( x t + 1 ∣ x t ) = N ( A x t , A P t A T ) + N ( 0 , ∑ m ) ( 10 ) p ( z t ∣ x t ) = N ( C x t , C P t C T ) + N ( 0 , ∑ o ) ( 11 ) p(x_{t+1}|x_{t})=\mathcal{N}(Ax_{t},AP_{t}A^{T})+\mathcal{N}(0,\begin{matrix}\sum_{m}\end{matrix})\qquad(10)\\ p(z_{t}|x_{t})=\mathcal{N}(Cx_{t},CP_{t}C^{T})+\mathcal{N}(0,\begin{matrix}\sum_{o}\end{matrix})\qquad(11) p(xt+1xt)=N(Axt,APtAT)+N(0,m)(10)p(ztxt)=N(Cxt,CPtCT)+N(0,o)(11) \qquad 应用高斯分布求和公式
p ( x t + 1 ∣ x t ) = N ( A x t , A P t A T + ∑ m ) ( 12 ) p ( z t ∣ x t ) = N ( C x t , C P t C T + ∑ o ) ( 13 ) p(x_{t+1}|x_{t})=\mathcal{N}(Ax_{t},AP_{t}A^{T}+\begin{matrix}\sum_{m}\end{matrix})\qquad(12)\\ p(z_{t}|x_{t})=\mathcal{N}(Cx_{t},CP_{t}C^{T}+\begin{matrix}\sum_{o}\end{matrix})\qquad(13) p(xt+1xt)=N(Axt,APtAT+m)(12)p(ztxt)=N(Cxt,CPtCT+o)(13)

以下摘自《概率机器人》

2.2 贝叶斯滤波

2.2.1 关于Z=z的贝叶斯准则

p ( x ∣ y , z ) = p ( y ∣ x , z ) p ( x ∣ z ) p ( y ∣ z ) ( 14 ) p(x|y,z)=\frac{p(y|x,z)p(x|z)}{p(y|z)}\qquad(14) p(xy,z)=p(yz)p(yx,z)p(xz)(14) \qquad 以其他变量z为条件的相互独立的随机变量条件联合概率定律:
p ( x , y ∣ z ) = p ( x ∣ z ) p ( y ∣ z ) ( 15 ) p(x,y|z)=p(x|z)p(y|z)\qquad(15) p(x,yz)=p(xz)p(yz)(15)这种关系被称为条件独立,等价于:
p ( x ∣ z ) = p ( x ∣ z , y ) ( 16 ) p ( y ∣ z ) = p ( y ∣ z , x ) ( 17 ) p(x|z)=p(x|z,y)\qquad(16)\\ p(y|z)=p(y|z,x)\qquad(17) p(xz)=p(xz,y)(16)p(yz)=p(yz,x)(17)

2.2.2 状态的完整性

\qquad 假设一个状态 x t x_{t} xt 可以最好地预测未来,则称其为完整的(complete) 。换句话说, 完整性包括过去状态测量及控制的信息,但不包含其他可以更加精确地预测未来的其他附加信息 。很重要的是,要注意对完整性的定义并不是要求未来是一个关于状态的确定(deterministic) 函数。未来可以是随机的,但是没有先于 x t x_{t} xt的状态变化可以影响未来状态的随机变化,除非这种依赖通过状态 x t x_{t} xt起作用。满足这些条件的暂态过程通常称为马尔可夫链(Markov chain)
\qquad 状态完整性的概念主要是理论上的重要性。实际上,对任何一个实际的机器人系统不可能指定一个完整的状态。一个完整的状态不仅包括对未来有影响的环境的所有方面,而且也包括机器人本身、计算机内存的内容以及周围人造成的信息垃圾等。其中有些是很难获得的。现实的实现是挑选所有状态变量的小子集。这样的状态叫作不完整状态(incomplete state) 。

2.2.3 概率生成法则

\qquad 状态和测量的演变由概率法则支配。表征状态演变的概率法则可以由 p ( x t ∣ x 0 : t − 1 , z 1 : t − 1 , u 1 : t ) p(x_{t}|x_{0:t-1},z_{1:t-1},u_{1:t}) p(xtx0:t1,z1:t1,u1:t)概率分布给出(假定机器人先执行一个控制动作 u 1 u_{1} u1,然后得到一个测量 z 1 z_{1} z1 x 0 : t − 1 x_{0:t-1} x0:t1表示从时间0到t-1所获得状态的集合)。
\qquad 如果状态 x t x_{t} xt是完整的,那么它是之前时刻发生的所有状态的充分总结。状态 x t − 1 x_{t-1} xt1是直到t-1时刻的控制和测量的一个充分统计量,即 u 1 : t − 1 u_{1:t-1} u1:t1 z 1 : t − 1 z_{1:t-1} z1:t1。上述变量中,只有控制 u t u_{t} ut关心是否知道状态 x t − 1 x_{t-1} xt1(From all the variables in the expression above, only the control u t u_{t} ut matters if we know the state x t − 1 x_{t-1} xt1.)即只有变量 u t u_{t} ut作用在 x t − 1 x_{t-1} xt1之后。由此: p ( x t ∣ x 0 : t − 1 , z 1 : t − 1 , u 1 : t ) = p ( x t ∣ x t − 1 , u t ) ( 18 ) p(x_{t}|x_{0:t-1},z_{1:t-1},u_{1:t})=p(x_{t}|x_{t-1},u_{t})\qquad(18) p(xtx0:t1,z1:t1,u1:t)=p(xtxt1,ut)(18) \qquad 上式为状态转移概率,由这个等式表达的特性就是条件独立(表明如果知道第三组变量(条件变量)的值,该变量就是独立于其他变量的)。
\qquad 如果状态 x t x_{t} xt是完整的,有如下条件独立:
p ( z t ∣ x 0 : t , z 1 : t − 1 , u 1 : t ) = p ( z t ∣ x t ) ( 19 ) p(z_{t}|x_{0:t},z_{1:t-1},u_{1:t})=p(z_{t}|x_{t})\qquad(19) p(ztx0:t,z1:t1,u1:t)=p(ztxt)(19) \qquad 上式为测量概率,用状态 x t x_{t} xt足以预测(有潜在的噪声的)测量 z t z_{t} zt如果 x t x_{t} xt是完整的,则任何其他变量的信息,如过去的测量、控制、或过去的状态都是与之无关的
在这里插入图片描述 图 1 表 征 控 制 、 状 态 和 测 量 演 变 的 动 态 贝 叶 斯 网 络 图1\quad表征控制、状态和测量演变的动态贝叶斯网络 1

2.2.4 置信分布

\qquad 置信度反映了机器人有关环境状态的内部信息。状态(位姿)不能直接测量,机器人必须从数据中推测出其状态。概率机器人中通过条件概率分布表达置信度。对于真实的状态,置信度分布为每一个可能的假设分配一个概率(或者概率密度值)。置信度分布是以可获得数据为条件的关于状态变量的后验概率。使用 b e l ( x t ) bel(x_{t}) bel(xt)表示状态变量 x t x_{t} xt的置信度,后验概率为:
b e l ( x t ) = p ( x t ∣ z 1 : t , u 1 : t ) ( 20 ) bel(x_{t})=p(x_{t}|z_{1:t},u_{1:t})\qquad(20) bel(xt)=p(xtz1:t,u1:t)(20) \qquad 该后验分布是时刻t下状态 x t x_{t} xt的概率分布,以所有过去测量 z 1 : t z_{1:t} z1:t和所有过去控制 u 1 : t u_{1:t} u1:t为条件。刚执行完控制 u t u_{t} ut之后,综合 z t z_{t} zt之前计算后验为:
b e l ‾ ( x t ) = p ( x t ∣ z 1 : t − 1 , u 1 : t ) ( 21 ) \overline{bel}(x_{t})=p(x_{t}|z_{1:t-1},u_{1:t})\qquad(21) bel(xt)=p(xtz1:t1,u1:t)(21) \qquad 在概率滤波框架下,式(21)概率常被称为预测,基于以前状态的后验,在综合时刻t的测量之前,预测时刻t的状态。由 b e l ‾ ( x t ) \overline{bel}(x_{t}) bel(xt)计算 b e l ( x t ) bel(x_{t}) bel(xt)称为修正或测量更新

2.2.5 贝叶斯算法

\qquad 该算法依据测量和控制数据计算置信度分布bel(),伪代码如下所示:
1: \qquad Algorithm Bayes_filter (bel(x_{t-1}),u_{t},z_{t})
2: \qquad \quad for all   x t \ x_{t}  xt do
3: \qquad \quad \quad b e l ‾ \overline{bel} bel(x_{t})= ∫ \int p(x_{t}|u_{t},x_{t-1}) bel(x_{t-1}) dx_{t-1}
4: \qquad \quad \quad bel(x_{t})= η \eta η p(z_{t}|x_{t}) b e l ‾ \overline{bel} bel(x_{t})
5: \qquad \quad endfor
6: \qquad \quad return bel(x_{t})
\qquad 第3行中,通过 u t u_{t} ut和置信度 b e l ( x t − 1 ) {bel}(x_{t-1}) bel(xt1)预测状态 x t x_{t} xt得置信度 b e l ‾ ( x t ) \overline{bel}(x_{t}) bel(xt)
\qquad 第4行中,通过观测的测量值 z t z_{t} zt的概率乘以置信度 b e l ‾ ( x t ) \overline{bel}(x_{t}) bel(xt)和归一化常数 η \eta η (由全概率公式之和为1算出) 计算 b e l ( x t ) bel(x_{t}) bel(xt)

以下总结自《最优状态估计》【美】Dan Simon 著

2.3 Kalman滤波

在这里插入图片描述 图 2 K a l m a n 滤 波 状 态 随 时 间 变 化 过 程 图2\quad Kalman滤波状态随时间变化过程 2Kalman \qquad 每一步Kalman滤波过程(由k-1时刻到k时刻)可以分为两个步骤:
\qquad\quad 1. 依据状态时间系统方程,实现由k-1时刻状态估计值的后验( x ^ k − 1 + \hat{x}_{k-1}^{+} x^k1+)到k时刻状态估计值的先验( x ^ k − \hat{x}_{k}^{-} x^k)的估计
\qquad\quad 2. 利用在k时刻获得对状态带有噪声的测量值( y k y_{k} yk),依据线性递推方程求解当估计误差的方差和最小的Kalman增益( K k K_{k} Kk),再带入到递推方程得到k时刻状态后验( x ^ k + \hat{x}_{k}^{+} x^k+)。

2.3.1 离散时间系统

\qquad 给出离散时间系统方程:
x k = F k − 1 x k − 1 + G k − 1 u k − 1 + w k − 1 ( 22 ) x_{k}=F_{k-1}x_{k-1}+G_{k-1}u_{k-1}+w_{k-1}\qquad (22) xk=Fk1xk1+Gk1uk1+wk1(22) \qquad 其中 u k u_{k} uk是已知的输入, w k w_{k} wk是零均值的高斯白噪声,协方差为 Q k Q_{k} Qk x k x_{k} xk为在k时刻的状态, F k − 1 F_{k-1} Fk1为由k-1时刻的状态到k时刻的状态转移矩阵, G k − 1 G_{k-1} Gk1为k-1时刻输入到状态的转移矩阵
\qquad 状态 x t x_{t} xt的均值随时间的变化方程:
x ‾ k = E ( x k ) = F k − 1 x ‾ k − 1 + G k − 1 u k − 1 ( 23 ) \overline{x}_{k}=E(x_{k})=F_{k-1}\overline{x}_{k-1}+G_{k-1}u_{k-1}\qquad(23) xk=E(xk)=Fk1xk1+Gk1uk1(23) \qquad 状态 x t x_{t} xt的方差随时间的变化方程:
( x k − x ‾ k ) ( x k − x ‾ k ) T (x_{k}-\overline{x}_{k})(x_{k}-\overline{x}_{k})^{T} (xkxk)(xkxk)T
= ( F k − 1 x k − 1 + G k − 1 u k − 1 + w k − 1 − x ‾ k ) ( F k − 1 x k − 1 + G k − 1 u k − 1 + w k − 1 − x ‾ k ) T =(F_{k-1}x_{k-1}+G_{k-1}u_{k-1}+w_{k-1}-\overline{x}_{k})(F_{k-1}x_{k-1}+G_{k-1}u_{k-1}+w_{k-1}-\overline{x}_{k})^{T} =(Fk1xk1+Gk1uk1+wk1xk)(Fk1xk1+Gk1uk1+wk1xk)T
= [ F k − 1 ( x k − 1 − x ‾ k − 1 ) + w k − 1 ] [ F k − 1 ( x k − 1 − x ‾ k − 1 ) + w k − 1 ] T =[F_{k-1}(x_{k-1}-\overline{x}_{k-1})+w_{k-1}][F_{k-1}(x_{k-1}-\overline{x}_{k-1})+w_{k-1}]^{T} =[Fk1(xk1xk1)+wk1][Fk1(xk1xk1)+wk1]T
= F k − 1 ( x k − 1 − x ‾ k − 1 ) ( x k − 1 − x ‾ k − 1 ) T F k − 1 T + w k − 1 w k − 1 T + F k − 1 ( x k − 1 − x ‾ k − 1 ) w k − 1 T + w k − 1 ( x k − 1 − x ‾ k − 1 ) T F k − 1 T ( 24 ) =F_{k-1}(x_{k-1}-\overline{x}_{k-1})(x_{k-1}-\overline{x}_{k-1})^{T}F_{k-1}^{T}+w_{k-1}w_{k-1}^{T}+F_{k-1}(x_{k-1}-\overline{x}_{k-1})w_{k-1}^{T}+w_{k-1}(x_{k-1}-\overline{x}_{k-1})^{T}F_{k-1}^{T}\qquad(24) =Fk1(xk1xk1)(xk1xk1)TFk1T+wk1wk1T+Fk1(xk1xk1)wk1T+wk1(xk1xk1)TFk1T(24)
\qquad 取上式方程期望即为 x k x_{k} xk的协方差,由 ( x k − x ‾ k ) (x_{k}-\overline{x}_{k}) (xkxk) w k − 1 w_{k-1} wk1互不相关且 E ( w k − 1 ) = 0 E(w_{k-1})=0 E(wk1)=0则上式化简为:
P k = E [ ( x k − x ‾ k ) ( x k − x ‾ k ) T ] = F k − 1 P k − 1 F k − 1 T + Q k − 1 ( 25 ) P_{k}=E[(x_{k}-\overline{x}_{k})(x_{k}-\overline{x}_{k})^{T}]=F_{k-1}P_{k-1}F_{k-1}^{T}+Q_{k-1}\qquad(25) Pk=E[(xkxk)(xkxk)T]=Fk1Pk1Fk1T+Qk1(25) \qquad 上式称为离散时间Lyapunov方程或Stein方程。由上式可得Kalman滤波先验估计:
x ^ k − = F k − 1 x ^ k − 1 + + G k − 1 u k − 1 ( 状 态 先 验 估 计 ) ( 26 ) \hat{x}_{k}^{-}=F_{k-1}\hat{x}_{k-1}^{+}+G_{k-1}u_{k-1}\quad(状态先验估计)\qquad(26) x^k=Fk1x^k1++Gk1uk1()(26) P k − = F k − 1 P k − 1 + F k − 1 T + Q k − 1 ( 协 方 差 先 验 估 计 ) ( 27 ) P_{k}^{-}=F_{k-1}P_{k-1}^{+}F_{k-1}^{T}+Q_{k-1}\quad(协方差先验估计)\qquad(27) Pk=Fk1Pk1+Fk1T+Qk1()(27)

2.3.2 递推最小二乘估计

\qquad 利用最小二乘估计计算递推式中最优Kalman增益 K k K_{k} Kk。线性的递推估计值为: y k = H k x k + v k ( 28 ) y_{k}=H_{k}x_{k}+v_{k}\qquad(28) yk=Hkxk+vk(28) x ^ k = x ^ k − 1 + K k ( y k − H k x ^ k − 1 ) ( 29 ) \hat{x}_{k}=\hat{x}_{k-1}+K_{k}(y_{k}-H_{k}\hat{x}_{k-1})\qquad(29) x^k=x^k1+Kk(ykHkx^k1)(29)式中 H k H_{k} Hk为测量矩阵, v k v_{k} vk为均值为0,方差为 R k R_{k} Rk的测量噪声(高斯白噪声)。 K k K_{k} Kk为增益矩阵, ( y k − H k x ^ k − 1 ) (y_{k}-H_{k}\hat{x}_{k-1}) (ykHkx^k1)为修正项。 K k K_{k} Kk选择的最优标准使k时刻的估计误差的方差和最小,其方差和 J k J_{k} Jk如下所示:
J k = E [ ( x 1 , k − x ^ 1 , k ) 2 ] + … + E [ ( x n , k − x ^ n , k ) 2 ] J_{k}=E[(x_{1,k}-\hat{x}_{1,k})^{2}]+\ldots+E[(x_{n,k}-\hat{x}_{n,k})^{2}] Jk=E[(x1,kx^1,k)2]++E[(xn,kx^n,k)2]
= E ( ε x 1 , k 2 + … + ε x n , k 2 ) = E ( ε x , k T ε x , k ) =E(\varepsilon_{x1,k}^{2}+\ldots+\varepsilon_{xn,k}^{2})=E(\varepsilon_{x,k}^{T}\varepsilon_{x,k}) =E(εx1,k2++εxn,k2)=E(εx,kTεx,k)
= E [ T r ( ε x , k ε x , k T ) ] =E[Tr(\varepsilon_{x,k}^{}\varepsilon_{x,k}^{T})] =E[Tr(εx,kεx,kT)]
= T r P k ( 30 ) =TrP_{k}\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad(30) =TrPk(30)
由:
E ( ε x , k ) = E ( x − x ^ k ) = E [ x − x ^ k − 1 − K k ( y k − H k x ^ k − 1 ) ] E(\varepsilon_{x,k})=E(x_{}-\hat{x}_{k})=E[x_{}-\hat{x}_{k-1}-K_{k}(y_{k}-H_{k}\hat{x}_{k-1})] E(εx,k)=E(xx^k)=E[xx^k1Kk(ykHkx^k1)]
= E [ x − x ^ k − 1 − K k ( H k x + v k − H k x ^ k − 1 ) ] =E[x_{}-\hat{x}_{k-1}-K_{k}(H_{k}x_{}+v_{k}-H_{k}\hat{x}_{k-1})] =E[xx^k1Kk(Hkx+vkHkx^k1)]
= E [ ε x , k − 1 − K k H k ε x , k − 1 − K k v k ] =E[\varepsilon_{x,k-1}-K_{k}H_{k}\varepsilon_{x,k-1}-K_{k}v_{k}]\qquad =E[εx,k1KkHkεx,k1Kkvk]
= ( I − K k H k ) E ( ε x , k − 1 ) − K k E ( v k ) ( 31 ) =(I-K_{k}H_{k})E(\varepsilon_{x,k-1})-K_{k}E(v_{k})\qquad\qquad(31) =(IKkHk)E(εx,k1)KkE(vk)(31)

式中 P k P_{k} Pk是估计误差的协方差矩阵
ε x , k = [ ε x 1 , k , ε x 2 , k ⋯ ε x n , k ] T ( 32 ) \varepsilon_{x,k}=[\varepsilon_{x1,k},\varepsilon_{x2,k}\cdots\varepsilon_{xn,k}]^{T}\qquad(32) εx,k=[εx1,k,εx2,kεxn,k]T(32) P k = [ E ( ε x 1 , k 2 ) E ( ε x 1 , k ε x 2 , k ) ⋯ E ( ε x 1 , k ε x n , k ) ⋮ ⋱ ⋮ E ( ε x n , k ) E ( ε x 1 , k ) E ( ε x n , k ε x 2 , k ) ⋯ E ( ε x n , k 2 ) ] ( 33 ) P_{k}=\begin{bmatrix} E(\varepsilon_{x1,k}^{2}) &E(\varepsilon_{x1,k}\varepsilon_{x2,k}) & \cdots & E(\varepsilon_{x1,k}\varepsilon_{xn,k}) \\ \vdots & \ddots & \vdots \\ E(\varepsilon_{xn,k}) E(\varepsilon_{x1,k}) &E(\varepsilon_{xn,k}\varepsilon_{x2,k})& \cdots & E(\varepsilon_{xn,k}^{2}) \end{bmatrix}\qquad(33) Pk=E(εx1,k2)E(εxn,k)E(εx1,k)E(εx1,kεx2,k)E(εxn,kεx2,k)E(εx1,kεxn,k)E(εxn,k2)(33)化简 P k P_{k} Pk可得:
P k = E ( ε x , k ε x , k T ) P_{k}=E(\varepsilon_{x,k}\varepsilon_{x,k}^{T}) Pk=E(εx,kεx,kT)
= E { [ ( I − K k H k ) ε x , k − 1 − K k v k ] [ ( I − K k H k ) ε x , k − 1 − K k v k ] T } =E\{[(I-K_{k}H_{k})\varepsilon_{x,k-1}-K_{k}v_{k}][(I-K_{k}H_{k})\varepsilon_{x,k-1}-K_{k}v_{k}]^{T}\} =E{[(IKkHk)εx,k1Kkvk][(IKkHk)εx,k1Kkvk]T}
= ( I − K k H k ) E ( ε x , k − 1 ε x , k − 1 T ) ( I − K k H k ) T − K k E ( v k ε x , k − 1 T ) ( I − K k H k ) T − ( I − K k H k ) E ( v k T ε x , k − 1 ) K k T + K k E ( v k v k T ) K k T ( 34 ) =(I-K_{k}H_{k})E(\varepsilon_{x,k-1}\varepsilon_{x,k-1}^{T})(I-K_{k}H_{k})^{T}-K_{k}E(v_{k}\varepsilon_{x,k-1}^{T})(I-K_{k}H_{k})^{T}-(I-K_{k}H_{k})^{}E(v_{k}^{T}\varepsilon_{x,k-1}^{})K_{k}^{T}+K_{k}E(v_{k}v_{k}^{T})K_{k}^{T}\qquad(34) =(IKkHk)E(εx,k1εx,k1T)(IKkHk)TKkE(vkεx,k1T)(IKkHk)T(IKkHk)E(vkTεx,k1)KkT+KkE(vkvkT)KkT(34)
\qquad ε x , k − 1 \varepsilon_{x,k-1} εx,k1(k-1时刻的估计误差)与 v k v_{k} vk(k时刻的测量噪声)相互独立又 E ( v k ) E(v_{k}) E(vk)=0,因此:
E ( v k T ε x , k − 1 ) = E ( v k ) E ( ε x , k − 1 ) = 0 ( 35 ) E(v_{k}^{T}\varepsilon_{x,k-1}^{})=E(v_{k})E(\varepsilon_{x,k-1})=0\qquad(35) E(vkTεx,k1)=E(vk)E(εx,k1)=0(35) P k = ( I − K k H k ) P k − 1 ( I − K k H k ) T + K k R k K k T = ( I − K k H k ) P k − 1 ( 36 ) \qquad\qquad P_{k}=(I-K_{k}H_{k})P_{k-1}(I-K_{k}H_{k})^{T}+K_{k}R_{k}K_{k}^{T}=(I-K_{k}H_{k})P_{k-1}\qquad(36) Pk=(IKkHk)Pk1(IKkHk)T+KkRkKkT=(IKkHk)Pk1(36) \qquad J k J_{k} Jk求导得: ∂ J k ∂ K k = ( I − K k H k ) P k − 1 ( − H k T ) + K k R k = 0 ( 37 ) \frac{\partial J_{k}}{\partial K_{k}}=(I-K_{k}H_{k})P_{k-1}(-H_{k}^{T})+K_{k}R_{k}=0\qquad(37) KkJk=(IKkHk)Pk1(HkT)+KkRk=0(37) \qquad 求的: K k = P k − 1 H k T ( H k P k − 1 H k T + R k ) − 1 ( 38 ) K_{k}=P_{k-1}H_{k}^{T}(H_{k}P_{k-1}H_{k}^{T}+R_{k})^{-1}\qquad(38) Kk=Pk1HkT(HkPk1HkT+Rk)1(38)由以上可得Kalman滤波测量更新: K k = P k − H k T ( H k P k − H k T + R k ) − 1 ( 39 ) K_{k}=P_{k}^{-}H_{k}^{T}(H_{k}P_{k}^{-}H_{k}^{T}+R_{k})^{-1}\qquad(39) Kk=PkHkT(HkPkHkT+Rk)1(39) x ^ k + = x ^ k − + K k ( y k − H k x ^ k − ) ( 后 验 分 布 ) ( 40 ) \hat{x}_{k}^{+}=\hat{x}_{k}^{-}+K_{k}(y_{k}-H_{k}\hat{x}_{k}^{-})\quad(后验分布)\qquad(40) x^k+=x^k+Kk(ykHkx^k)()(40) P k + = ( I − K k H k ) P k − ( 41 ) P_{k}^{+}=(I-K_{k}H_{k})P_{k}^{-}\qquad(41) Pk+=(IKkHk)Pk(41) \qquad 递推方程中递推的时间间隔是由k时刻到k-1时刻表示,而应用在更新方程中是在同一个时刻,只是先验和后验的差距(是否获得在k时刻的测量值)
\qquad 先验是指以k-1时刻和之前的测量值估计 x k x_{k} xk的状态值,计算方法为以k-1时刻和之前的测量值为条件计算 x k x_{k} xk的期望值。后验则是在先验的基础上增加k时刻的测量值 y k y_{k} yk
\qquad 有以上两步,得Kalman系统方程:
x ^ k − = F k − 1 x ^ k − 1 + + G k − 1 u k − 1 ( 状 态 先 验 估 计 ) ( 42 ) \hat{x}_{k}^{-}=F_{k-1}\hat{x}_{k-1}^{+}+G_{k-1}u_{k-1}\quad(状态先验估计)\qquad(42) x^k=Fk1x^k1++Gk1uk1()(42) P k − = F k − 1 P k − 1 + F k − 1 T + Q k − 1 ( 协 方 差 先 验 估 计 ) ( 43 ) P_{k}^{-}=F_{k-1}P_{k-1}^{+}F_{k-1}^{T}+Q_{k-1}\quad(协方差先验估计)\qquad(43) Pk=Fk1Pk1+Fk1T+Qk1()(43) K k = P k − H k T ( H k P k − H k T + R k ) − 1 ( 44 ) K_{k}=P_{k}^{-}H_{k}^{T}(H_{k}P_{k}^{-}H_{k}^{T}+R_{k})^{-1}\qquad(44) Kk=PkHkT(HkPkHkT+Rk)1(44) x ^ k + = x ^ k − + K k ( y k − H k x ^ k − ) ( 后 验 分 布 ) ( 45 ) \hat{x}_{k}^{+}=\hat{x}_{k}^{-}+K_{k}(y_{k}-H_{k}\hat{x}_{k}^{-})\quad(后验分布)\qquad(45) x^k+=x^k+Kk(ykHkx^k)()(45) P k + = ( I − K k H k ) P k − ( 46 ) P_{k}^{+}=(I-K_{k}H_{k})P_{k}^{-}\qquad(46) Pk+=(IKkHk)Pk(46) \qquad Kalman滤波器初始化如下:
x ^ 0 + = E ( x 0 ) = x ‾ 0 ( 47 ) \hat{x}_{0}^{+}=E(x_{0})=\overline{x}_{0}\qquad(47) x^0+=E(x0)=x0(47) P 0 + = E [ ( x 0 − x ^ 0 + ) ( x 0 − x ^ 0 + ) T ] ( 48 ) P^{+}_{0}=E[(x_{0}-\hat{x}^{+}_{0})(x_{0}-\hat{x}^{+}_{0})^{T}]\qquad(48) P0+=E[(x0x^0+)(x0x^0+)T](48) \qquad 由式(47)可以实现推导过程中运算多项式中状态期望和状态估计值的联系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值