基于扩展卡尔曼滤波的slam

本文详细介绍了卡尔曼滤波及其扩展形式——扩展卡尔曼滤波的工作原理。从初始估计开始,通过状态转移矩阵、测量矩阵和不确定性矩阵,逐步阐述了预测和更新步骤。同时,提到了不变扩展卡尔曼滤波,强调了其在非线性系统估计中的应用。内容涵盖了方程推导和算法实现流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Kalman Filter:

Extended Kalman Filter:

Choose an initial estimate X^0∣0\hat{X}_{0 \mid 0}X^00 and uncertainty matrix P0∣0P_{0 \mid 0}P00.

Define Fn,GnF_{n}, G_{n}Fn,Gn, and HnH_{n}Hn :
en∣n−1=Fnen−1∣n−1+GnwnYn−b(X^n∣n−1)=Hnen∣n−1+Vn \begin{aligned} e_{n \mid n-1} &=F_{n} e_{n-1 \mid n-1}+G_{n} w_{n} \\ Y_{n}-b\left(\hat{X}_{n \mid n-1}\right) &=H_{n} e_{n \mid n-1}+V_{n} \end{aligned} enn1Ynb(X^nn1)=Fnen1n1+Gnwn=Hnenn1+Vn
Define QnQ_{n}Qn as Cov⁡(wn)\operatorname{Cov}\left(w_{n}\right)Cov(wn) and Rn\mathrm{R}_{n}Rn as Cov⁡(Vn)\operatorname{Cov}\left(V_{n}\right)Cov(Vn)

zn=Yn−b(X^n∣n−1)Sn=HnPn∣n−1HnT+RnKn=Pn∣n−1HnTSn−1 \begin{aligned} & z_{n}=Y_{n}-b\left(\hat{X}_{n \mid n-1}\right)\\ &S_{n}=H_{n} P_{n \mid n-1} H_{n}^{T}+R_{n} \\ &K_{n}=P_{n \mid n-1} H_{n}^{T} S_{n}^{-1} \end{aligned} zn=Ynb(X^nn1)Sn=HnPnn1HnT+RnKn=Pnn1HnTSn1

loop:
Propagation
X^n∣n−1=f(X^n−1∣n−1,un,0)Pn∣n−1=FnPn−1∣n−1FnT+GnQnGnT \begin{aligned} &\hat{X}_{n \mid n-1}=f\left(\hat{X}_{n-1 \mid n-1}, u_{n}, 0\right) \\ &P_{n \mid n-1}=F_{n} P_{n-1 \mid n-1} F_{n}^{T}+G_{n} Q_{n} G_{n}^{T} \end{aligned} X^nn1=f(X^n1n1,un,0)Pnn1=FnPn1n1FnT+GnQnGnT
Measurement update
Pn∣n=[I−KnHn]Pn∣n−1X^n∣n=X^n∣n−1+Knzn \begin{aligned} & P_{n \mid n}=\left[I-K_{n} H_{n}\right] P_{n \mid n-1} \\ &\hat{X}_{n \mid n}=\hat{X}_{n \mid n-1}+K_{n} z_{n} \end{aligned} Pnn=[IKnHn]Pnn1X^nn=X^nn1+Knznend loop

Invariant Extended Kalman Filter

Choose initial χ^0∣0∈G\hat{\chi}_{0 \mid 0} \in Gχ^00G and P0∣0∈Rd×d=P_{0 \mid 0} \in \mathbb{R}^{d \times d}=P00Rd×d= Cov⁡(ξ0∣0)\operatorname{Cov}\left(\xi_{0 \mid 0}\right)Cov(ξ00).
Define HnH_{n}Hn ,
FnF_{n}Fn : g(exp⁡(ξ),un)=exp⁡(Fnξ)g\left(\exp (\xi), u_{n}\right)=\exp \left(F_{n} \xi\right)g(exp(ξ),un)=exp(Fnξ)
Define QnQ_{n}Qn as Cov⁡(wn)\operatorname{Cov}\left(w_{n}\right)Cov(wn) and RnR_{n}Rn as Cov⁡(Vn)\operatorname{Cov}\left(\mathrm{V}_{n}\right)Cov(Vn)
Compute zn=Yn−b(χ^n∣n−1)z_{n}=Y_{n}-b\left(\hat{\chi}_{n \mid n-1}\right)zn=Ynb(χ^nn1)
Sn=HnPn∣n−1HnT+RnS_{n}=H_{n} P_{n \mid n-1} H_{n}^{T}+R_{n}Sn=HnPnn1HnT+Rn
Kn=Pn∣n−1HnTSn−1K_{n}=P_{n \mid n-1} H_{n}^{T} S_{n}^{-1}Kn=Pnn1HnTSn1
Pn∣n=[I−KnHn]P_{n \mid n}=\left[I-K_{n} H_{n}\right]Pnn=[IKnHn]

loop
Propagation
χ^n∣n−1=f(χ^n−1∣n−1,un)Pn∣n−1=FnPn−1∣n−1Fn−1+Qn \begin{aligned} &\hat{\chi}_{n \mid n-1}=f\left(\hat{\chi}_{n-1 \mid n-1}, u_{n}\right) \\ &P_{n \mid n-1}=F_{n} P_{n-1 \mid n-1} F_{n}^{-1}+Q_{n} \end{aligned} χ^nn1=f(χ^n1n1,un)Pnn1=FnPn1n1Fn1+Qn
Measurement update
Pn∣n−1χ^n∣n=χ^n∣n−1exp⁡(Knzn) \begin{aligned} &P_{n \mid n-1}\hat{\chi}_{n \mid n}=\hat{\chi}_{n \mid n-1} \exp \left(K_{n} z_{n}\right) \end{aligned} Pnn1χ^nn=χ^nn1exp(Knzn)
end loop

Barrau, A. and Bonnabel, S., 2018. Invariant kalman filtering. Annual Review of Control, Robotics, and Autonomous Systems, 1, pp.237-257.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值