Kalman Filter:
Extended Kalman Filter:
Choose an initial estimate X^0∣0\hat{X}_{0 \mid 0}X^0∣0 and uncertainty matrix P0∣0P_{0 \mid 0}P0∣0.
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}
en∣n−1Yn−b(X^n∣n−1)=Fnen−1∣n−1+Gnwn=Hnen∣n−1+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=Yn−b(X^n∣n−1)Sn=HnPn∣n−1HnT+RnKn=Pn∣n−1HnTSn−1
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^n∣n−1=f(X^n−1∣n−1,un,0)Pn∣n−1=FnPn−1∣n−1FnT+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}
Pn∣n=[I−KnHn]Pn∣n−1X^n∣n=X^n∣n−1+Knznend loop
Invariant Extended Kalman Filter
Choose initial χ^0∣0∈G\hat{\chi}_{0 \mid 0} \in Gχ^0∣0∈G and P0∣0∈Rd×d=P_{0 \mid 0} \in \mathbb{R}^{d \times d}=P0∣0∈Rd×d= Cov(ξ0∣0)\operatorname{Cov}\left(\xi_{0 \mid 0}\right)Cov(ξ0∣0).
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=Yn−b(χ^n∣n−1)
Sn=HnPn∣n−1HnT+RnS_{n}=H_{n} P_{n \mid n-1} H_{n}^{T}+R_{n}Sn=HnPn∣n−1HnT+Rn
Kn=Pn∣n−1HnTSn−1K_{n}=P_{n \mid n-1} H_{n}^{T} S_{n}^{-1}Kn=Pn∣n−1HnTSn−1
Pn∣n=[I−KnHn]P_{n \mid n}=\left[I-K_{n} H_{n}\right]Pn∣n=[I−KnHn]
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}
χ^n∣n−1=f(χ^n−1∣n−1,un)Pn∣n−1=FnPn−1∣n−1Fn−1+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}
Pn∣n−1χ^n∣n=χ^n∣n−1exp(Knzn)
end loop
Barrau, A. and Bonnabel, S., 2018. Invariant kalman filtering. Annual Review of Control, Robotics, and Autonomous Systems, 1, pp.237-257.