机器人学中的状态估计-02

K3 - LG系统下Batch/Smoother

Posted by Yvan on November 9, 2020

Estimation Machinery

分成了 线性高斯系统(LG) 和 非线性非高斯(NLNG) 系统 分别在K3 K4分析。

这一页主要涉及LG系统下,通过MAP和贝叶斯推断,以及Cholesky smoother和RTS smoother 详细求解运动方程及观测方程的过程。

K3 Linear-Gaussian Estimation - 1

3.1 Batch Discrete-Time Estimation

3.1.1 Setup

for linear, time-varying models: we need

a motion model and a observation model:

So k3model2

分成 batch linear-Gussain techniques (smoothers)和 recursive state estimators (filters) 分别在3.1.2 MAP + 3.1.3 Bayesian 和 3.3 Kalman Filter

即求解: $\hat{x}$ (posterior) 后验的协方差和均值.


3.1.3 Bayesian inference

Base on the Bayesian Rule with joint & condition:

k3bayes1 - 副本

we calculate the prior and the observation to get the joint.

change x and y:

k3bayes2 - 副本

now based on the Gaussian Inference we can use joint to infer posterior

  1. For the Prior:

    k3bayes3

  2. For the Observation:

    k3bayes4

  3. For the Joint:

    k3bayes5

  4. For the Posterior:

    k3bayes6


3.1.2 Maximum A Posteriori (MAP)

in batch estimation is to solve:

k3map1

with Bayes’ rule: <same as in 3.1.3>

k3map2

by assuming noise variables are uncorrelated:

k3map3

k3map4

using log function to convert × into +:

k3map5

the component parts are:

k3map6

here for example:

k3map7

give them into a log function:

k3map8

merge them together to get a cost function J(x):

k3map9

the same as 3.1.3.(4), rewrite the cost function in matrix way:

k3map10

now we calculat the x which reaches the minimum of J:
we found that J(x) is a quadratic function:

k3map11

对于一维二次函数 找最小值就是 一阶导数等于0,二阶导数大于0。

对于高维二次函数 同理:

先对 f(x+Δx)进行高维泰勒展开如图:

k3taylor

泰勒展开的前两项相当于在操作点附近做线性拟合(雅可比矩阵),前三项相当于在操作点附近做二次函数拟合(海塞矩阵)。

再对x+Δx 代入 f(x)进行展开

比较系数可得泰勒展开中,Δx前的系数即为x的偏导数。

那么如果 f(x)是:

k3map12

也就是最小二乘问题

so

k3map13

we get the exact equation as in 3.1.3.(4)

$(H^{T}W^{-1}H) \hat{x}=H^{T}W^{-1}z$

3.2 Recursive Discrete-Time Smoothing

3.2.2 Cholesky Smoother

to solve the equation:

  1. $A$ and $A^{-1}$

    k3calculate

    1 下三角矩阵求逆

    2 Markov property

  2. $H^TW^{-1}h$

    k3calculate2

  3. using cholesky decomposition : $H^TW^{-1}h = LL^T$ with

    k3calculate3

  4. reform

    $(H^{T}W^{-1}H) \hat{x}=H^{T}W^{-1}z$

    $LL^T\hat{x}=H^{T}W^{-1}z$

    $Ld=H^{T}W^{-1}z$ with $L^T\hat{x}=d$

  5. solve

    solve $Ld=H^{T}W^{-1}z$ for $d$ forward

    solve $L^T\hat{x}=d$ for $x$ backward

$H = \left[ \begin{matrix} A^{-1} \\\ C \end{matrix}\right] \qquad A \& A^{-1} (step 1) \qquad C = diag(…)$

$H^T = \left[ \begin{matrix} A^{-T} C^T \end{matrix}\right]$


$W = \left[ \begin{matrix} Q & \\\ & R \end{matrix}\right] \qquad Q = diag(…) \qquad R= diag(…) $

$W = diag(w_0,w_1,…)$

$W^{-1} = diag(w_0^{-1},w_1^{-1},…)$


$H^TW^{-1}H$展开乘出来

k3hwh1

k3hwh2

k3hwh3

总结:

  1. 解HWH=LL 得到L
  2. 解Ld=HWz 得到d
  3. 解Lx=d 得到x

k3hwh4

等价于RTS-smoother, 其中前五个前向迭代等价于卡尔曼滤波器


3.2.3 Rauch-Tung-Striebel (RTS) smoother

整个RTS由5+1个式子+3个初始状态构成:(1-5由前向得到,6由后向得到)


先观察5个前向迭代的式子 3.66a-3.66e:

A. 后验协方差部分

  1. 由c式解出 $L_{k,k-1}$,代入d式,化简过程中出现a式再代入:

    k3rts1

  2. 使用SMW化简,得到 $I_k$的递推表达式:

    k3rts2

    $I$即 信息矩阵 information matrix。信息矩阵是协方差的逆。

  3. 令 $\hat{P}_{k,f} = I_k^{-1}$ (其中 $f$代表forward),则:(这么设是因为信息矩阵的逆是协方差矩阵)

    k3rts3

    第一个式子代表 先验/预测的协方差

    第二个式子代表后验/修正的协方差 (4-5进一步用卡尔曼增益变形该式)

    即代表:

    用k-1的后验预测得到k的先验,在通过k的先验修正成k的后验。(这个过程就是卡尔曼滤波过程)

  4. 令 $K_k = \hat{P}_{k,f}C_k^TR_k^{-1}$,并将第二式代入K消去后验, 并使用SMW变换:(这么设是因为要写成经典形式,K是卡尔曼增益)

    k3rts4

    即可通过先验求得K

  5. 那么根据第二式:

    k3rts5

    k3rts5.1

    协方差更新方程:即后验协方差对先验协方差的更新/修正

B. 均值部分

  1. 由b式解出 $d_{k-1}$,由c式解出 $L_{k,k-1}$,相乘得到 $L_{k,k-1}d_{k-1}$:

    k3rts6

  2. 将a式代入上述式子,并将所得式子代入e式,并通过两次SMW变换:

    k3rts7

  3. 用 协方差部分 3的协方差是信息矩阵的逆,以及协方差两个公式,替代上式信息矩阵部分:

  4. 且令 k3rts8

    则:

    k3rts8

  5. 整理得到:

    k3rts9

    类似于协方差部分 得到了两个式子:

    1. k的先验均值 由k-1的后验均值预测得出
    2. k的后验均值 由k的先验均值修正得出 (6进一步用卡尔曼增益变形该式)
  6. 用卡尔曼增益进一步整理,左右两边同时乘协方差矩阵,右边第一部分根据协方差部分的结论写成(1-KC),第二部分根据K的定义写成K:

    k3rts10

    k3rts11

    均值更新方程


观察后向迭代式3.66f:

C. 后向迭代

  1. 左右同乘 $L_{k-1}$:

    image-20201120172916046

  2. 代入a,b,c式,然后用SMW:

    乘进去很快能看出来怎么代入

    image-20201120175339012

  3. 利用之前的公式(A.3, B.4, B.5)代入消去I和q:

    写一下很容易代入整理完成

    image-20201120214056337

    k-1的后验 是 前向后验 + 修正

RTS总结

前向:
1. 先验协方差方程 A.3.1
2. 先验均值方程 B.5.1
3. 卡尔曼增益 A.4
4. 后验协方差更新方程 A.5
5. 后验均值更新方程 B.6

后向:
1. 前向后验修正方程 C.3

使用 前向3 即卡尔曼增益的5个前向式称为 经典形式 canonical form

不适用 前向3, 导致 前向4 前向5 用 A.3.2 B.5.2表示的4个式子 称为 逆协方差形式 或 信息形式 information form

k3rts15



k3solution


SER目录

SER目录    
SER-1 K2 - 基础概率论  
SER-2 K3 - LG系统下Batch/Smoother  
SER-3 K3 - LG系统下Recursive Filter  
SER-4 K4 - NLNG系统下Recursive Filter  
SER-5 K4 - NLNG系统下Batch  
SER-6 K5 - 偏差,匹配和外点