基于扩展卡尔曼滤波的slam

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

Kalman Filter:

Extended Kalman Filter:

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

Define F n , G n F_{n}, G_{n} Fn,Gn, and H n H_{n} Hn :
e n ∣ n − 1 = F n e n − 1 ∣ n − 1 + G n w n Y n − b ( X ^ n ∣ n − 1 ) = H n e n ∣ n − 1 + V n \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 Q n Q_{n} Qn as Cov ⁡ ( w n ) \operatorname{Cov}\left(w_{n}\right) Cov(wn) and R n \mathrm{R}_{n} Rn as Cov ⁡ ( V n ) \operatorname{Cov}\left(V_{n}\right) Cov(Vn)

z n = Y n − b ( X ^ n ∣ n − 1 ) S n = H n P n ∣ n − 1 H n T + R n K n = P n ∣ n − 1 H n T S n − 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 , u n , 0 ) P n ∣ n − 1 = F n P n − 1 ∣ n − 1 F n T + G n Q n G n T \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
P n ∣ n = [ I − K n H n ] P n ∣ n − 1 X ^ n ∣ n = X ^ n ∣ n − 1 + K n z n \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 P 0 ∣ 0 ∈ R d × 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 H n H_{n} Hn ,
F n F_{n} Fn : g ( exp ⁡ ( ξ ) , u n ) = exp ⁡ ( F n ξ ) g\left(\exp (\xi), u_{n}\right)=\exp \left(F_{n} \xi\right) g(exp(ξ),un)=exp(Fnξ)
Define Q n Q_{n} Qn as Cov ⁡ ( w n ) \operatorname{Cov}\left(w_{n}\right) Cov(wn) and R n R_{n} Rn as Cov ⁡ ( V n ) \operatorname{Cov}\left(\mathrm{V}_{n}\right) Cov(Vn)
Compute z n = Y n − b ( χ ^ n ∣ n − 1 ) z_{n}=Y_{n}-b\left(\hat{\chi}_{n \mid n-1}\right) zn=Ynb(χ^nn1)
S n = H n P n ∣ n − 1 H n T + R n S_{n}=H_{n} P_{n \mid n-1} H_{n}^{T}+R_{n} Sn=HnPnn1HnT+Rn
K n = P n ∣ n − 1 H n T S n − 1 K_{n}=P_{n \mid n-1} H_{n}^{T} S_{n}^{-1} Kn=Pnn1HnTSn1
P n ∣ n = [ I − K n H n ] P_{n \mid n}=\left[I-K_{n} H_{n}\right] Pnn=[IKnHn]

loop
Propagation
χ ^ n ∣ n − 1 = f ( χ ^ n − 1 ∣ n − 1 , u n ) P n ∣ n − 1 = F n P n − 1 ∣ n − 1 F n − 1 + Q n \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
P n ∣ n − 1 χ ^ n ∣ n = χ ^ n ∣ n − 1 exp ⁡ ( K n z n ) \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、付费专栏及课程。

余额充值