机器人学中的状态估计——学习笔记

时间:2024-05-19 10:13:06

离散时间的批量估计问题

问题描述:在离散线性高斯模型下,利用所有时刻的数据估计某一时刻的状态。
符号:
机器人学中的状态估计——学习笔记
方法:

1、最大后验概率法(Maximum A Posteriori, MAP)

x^=argmaxxp(xv,y) \hat{\boldsymbol{x}}=\arg \max _{\boldsymbol{x}} p(\boldsymbol{x} | \boldsymbol{v}, \boldsymbol{y})
where
x=x0:K=(x0,,xK),v=(xˇ0,v1:K),y=y0:K=(y0,,yK) \boldsymbol{x}=\boldsymbol{x}_{0: K}=\left(\boldsymbol{x}_{0}, \ldots, \boldsymbol{x}_{K}\right), \quad \boldsymbol{v}=\left(\check{\boldsymbol{x}}_{0}, \boldsymbol{v}_{1: K}\right), \quad \boldsymbol{y}=\boldsymbol{y}_{0: K}=\left(\boldsymbol{y}_{0}, \ldots, \boldsymbol{y}_{K}\right)
Note: pp是概率密度函数,不是概率。
重要步骤:

  • 由贝叶斯公式得:
    机器人学中的状态估计——学习笔记
  • 由于噪声之间相互独立(假设1)机器人学中的状态估计——学习笔记

机器人学中的状态估计——学习笔记
因此,(3.3)式被分解成了三个式子。

  • 用条件高斯分布公式分别求解以上三个式子。这一步能够引出costfunctioncost function
    先给出条件高斯分布公式:
    对于联合概率分布是高斯分布p(xa,xb)p(x_{a},x_{b})的两个变量,其条件高斯分布p(xaxb)p\left(x_{a} | x_{b}\right)和边缘分布1^1都是高斯分布,其中p(xaxb)p\left(x_{a} | x_{b}\right)的均值和协方差矩阵的公式为:
    μalb=μa+ΣabΣbb1(xbμb)Σab=ΣaaΣabΣbb1Σba \begin{aligned} \mu_{\mathrm{alb}} &=\mu_{a}+\Sigma_{a b} \Sigma_{b b}^{-1}\left(x_{b}-\mu_{b}\right) \\ \Sigma_{a | b} &=\Sigma_{a a}-\Sigma_{a b} \Sigma_{b b}^{-1} \Sigma_{b a} \end{aligned}
    1、 边缘分布(Marginal Distribution)指在概率论和统计学的多维随机变量中,只包含其中部分变量的概率分布。
    那么, 对(3.3)等式右端取对数,并假设Pˇ0,Qk\check{P}_{0}, Q_{k}RkR_{k}都是可逆的(假设2),可得:
    机器人学中的状态估计——学习笔记
    化简掉与xx无关的ln()ln(\cdot)项,可得:
    机器人学中的状态估计——学习笔记
    机器人学中的状态估计——学习笔记
    最终将原始问题化成了:
    机器人学中的状态估计——学习笔记
    将以上式子化成矩阵形式:
    机器人学中的状态估计——学习笔记
    求偏导:
    机器人学中的状态估计——学习笔记
    最终结果如上。

2、贝叶斯推断(Bayesian inference)

暂略。

离散时间的迭代平滑问题

某些叫法:矩阵有稀疏结构,代表他含有对角块,如:

机器人学中的状态估计——学习笔记
本节内容的目的:上一节虽然能得到最优解,但是效率很低,因为要求矩阵的逆等等。因此,可以利用矩阵稀疏结构加速求解。采用的方法:一次前向递推和一次后向地推,称为固定区间平滑算法
本节的问题:利用稀疏矩阵的特性求解方程:
(HTW1H)x^=HTW1z \left(\boldsymbol{H}^{\mathrm{T}} \boldsymbol{W}^{-1} \boldsymbol{H}\right) \hat{\boldsymbol{x}}=\boldsymbol{H}^{\mathrm{T}} \boldsymbol{W}^{-1} \boldsymbol{z}

1、Cholesky平滑算法

步骤:

  • 利用稀疏Cholesky分解可得:
    HTW1H=LLT \boldsymbol{H}^{\mathrm{T}} \boldsymbol{W}^{-1} \boldsymbol{H}=\boldsymbol{L} \boldsymbol{L}^{\mathrm{T}}
    其中,
    机器人学中的状态估计——学习笔记
    下面首先利用前向迭代求解其中的每一个小矩阵:
  • HTW1H=LLT\boldsymbol{H}^{\mathrm{T}} \boldsymbol{W}^{-1} \boldsymbol{H}=\boldsymbol{L} \boldsymbol{L}^{\mathrm{T}}得:
    机器人学中的状态估计——学习笔记
    先求L0L_{0},这需要利用一次⼩型块的稠密矩阵分解。然后一项一项地求,可得到LL
  • 由上可得,LLTx^=HTW1zLL^{T}\hat{x} = H^{T}W^{-1}z, 令LTx^=dL^{T}\hat{x} = d, 那么先计算dd:
    用类似的方法:
    机器人学中的状态估计——学习笔记
    一项一项求解d0,...,dKd_{0},...,d_{K}
  • 最后求解: LTx^=dL^{\mathrm{T}} \hat{x}=d,展开后:
    机器人学中的状态估计——学习笔记
    先求x^K\hat{\boldsymbol{x}}_{K},一项一项求解,称为逆向迭代。

总结:
机器人学中的状态估计——学习笔记
初值:
机器人学中的状态估计——学习笔记
其中的五个向前迭代又是***卡尔曼滤波***。

2、Rauch-Tung-Striebel 平滑算法

该算法是Cholesky平滑算法的标准形式,更接近于我们平时用的卡尔曼滤波。

离散时间的迭代滤波问题