机器人学中的状态估计批量形式
2022/4/22 23:45:37
本文主要是介绍机器人学中的状态估计批量形式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
线性高斯系统的状态估计
离散批量优化
运动和观测方程
在离散时间线性时变的条件下,定义运动和观测方程:
\[x_k=A_{k-1}x_{k-1}+v_k+w_k,k=1,\cdots,K \\ y_k=C_kx_k+n_k,k=0,\cdots,K \]\(v_k\) 是确定性变量,其他都是随机变量。噪声和初始状态一般假设为互不相关,并且在各个时刻与自己也互不相关。\(A_k\) 为转移矩阵,\(C_k\) 为观测矩阵。
最大后验估计
最大后验估计的思想是使得在样本出现的条件下参数的后验概率最大化。也就是在已知输入 \(v_k\) 和观测 \(y_k\) 的条件下,系统状态 \(x_k\) 概率最大化。即:
\[\hat{x}=arg \max_x \ p(x|v,y) \]其中 \(\hat{x}\) 表示后验估计,\(x=x_{0:K}=(x_0,\cdots,x_K)\) ,\(v=(\breve{x},v_{1:K})\) ,\(y=y_{0:K}=(y_0,\cdots,y_K)\) 。
根据贝叶斯公式:
\[\hat{x}=arg \max_x \ p(x|v,y)=arg\max_x\frac{p(y|x)p(x|v)}{\int_xp(y|x)p(x|v)dx}=arg\max_x\ p(y|x)p(x|v) \]假设所有时刻的噪声是无关的。上式中:
\[p(y|x)=\prod_{k=0}^KP(y_k|x_x) \\ p(x|v)=p(x_0|\breve{x_0})\prod_0^Kp(x_k|x_{k-1},v_k) \]其中,
\[p(x_0|\breve{x_0})=\frac{1}{\sqrt{(2\pi)^Ndet\breve{P_0}}}exp(-\frac{1}{2}(x_0-\breve{x_0})^T\breve{P_0}^{-1}(x_0-\breve{x})) \\ p(x_k|x_{k-1},v_k)=\frac{1}{\sqrt{(2\pi)^NdetQ_k}}exp(-\frac{1}{2}(x_k-A_kx_{k-1}-v_k)^TQ_k^{-1}(x_k-A_kx_{k-1}-v_k)) \\ p(y_k|x_k)=\frac{1}{\sqrt{(2\pi)^MdetR_k}}exp(-\frac{1}{2}(y_k-C_kx_k)^TR^{-1}(y_k-C_kx_k)) \]上式中,\(Q_k\) 是输入 \(v_k\) 的噪声,\(R_k\) 是观测的噪声。代入到最大后验估计可知:
\[arg \max_x p(y|x)p(x|v)=arg \max_x \prod_{k=0}^Kp(y_k|x_k)p(x_0|\breve{x_0})\prod_{k=1}^Kp(x_k|x_{k-1},v_k) \\ =arg \max_x \prod_{k=0}^K\frac{1}{\sqrt{(2\pi)^MdetR_k}}exp(-\frac{1}{2}(y_k-C_kx_k)^TR^{-1}(y_k-C_kx_k)) \\ \frac{1}{\sqrt{(2\pi)^Ndet\breve{P_0}}}exp(-\frac{1}{2}(x_0-\breve{x_0})^T\breve{P_0}^{-1}(x_0-\breve{x})) \\ \prod_{k=1}^K\frac{1}{\sqrt{(2\pi)^NdetQ_k}}exp(-\frac{1}{2}(x_k-A_kx_{k-1}-v_k)^TQ_k^{-1}(x_k-A_kx_{k-1}-v_k)) \]对最大后验估计取对数:
\[L(x)=\sum_{k=0}^K-\frac{1}{2}(y_k-C_kx_k)^TR^{-1}(y_k-C_kx_k)+ \\\sum_{k=1}^K(-\frac{1}{2}(x_k-A_kx_{k-1}-v_k)^TQ_k^{-1}(x_k-A_kx_{k-1}-v_k)) + (-\frac{1}{2}(x_0-\breve{x_0})^T\breve{P_0}^{-1}(x_0-\breve{x}))\\+(-\frac{K+1}{2}ln((2\pi)^MdetR_k)-\frac{K}{2}ln((2\pi)^NdetQ_k)-\frac{1}{2}ln((2\pi)^Ndet\breve{P_0})) \]简化一下上式,上式共有四项,最后一项(最后用括号括起来的三个)与 \(x\) 无关,可忽略,令第一项为 \(\sum_{k=0}^KJ_{y,k}(x)\) ,第二项和第三项为 \(\sum_{k=0}^KJ_{v,k}(x)\) 。所以整体的目标函数有:
\[J(x)=\sum_{k=0}^K(J_{v,k}(x)+J{y,k}(x)) \]由于取了对数的原因,所以最小化这个目标函数来求解 \(x\) 的值。接下来我们可以把这个目标函数写成矩阵的形式。那么就有:
\[J(x)=\frac{1}{2}(z-Hx)^TW^{-1}(z-Hx) \]对 \(x^T\) 求导,并令其导数为 0:
\[\frac{\partial J(x)}{\partial x^T}=-HW^{-1}(z-Hx)=0 \]这篇关于机器人学中的状态估计批量形式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24怎么修改Kafka的JVM参数?-icode9专业技术文章分享
- 2024-12-23线下车企门店如何实现线上线下融合?
- 2024-12-23鸿蒙Next ArkTS编程规范总结
- 2024-12-23物流团队冬至高效运转,哪款办公软件可助力风险评估?
- 2024-12-23优化库存,提升效率:医药企业如何借助看板软件实现仓库智能化
- 2024-12-23项目管理零负担!轻量化看板工具如何助力团队协作
- 2024-12-23电商活动复盘,为何是团队成长的核心环节?
- 2024-12-23鸿蒙Next ArkTS高性能编程实战
- 2024-12-23数据驱动:电商复盘从基础到进阶!
- 2024-12-23从数据到客户:跨境电商如何通过销售跟踪工具提升营销精准度?