Kalman Filter:
Extended Kalman Filter:
Choose an initial estimate X ^ 0 ∣ 0 \hat{X}_{0 \mid 0} X^0∣0 and uncertainty matrix P 0 ∣ 0 P_{0 \mid 0} P0∣0.
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}
en∣n−1Yn−b(X^n∣n−1)=Fnen−1∣n−1+Gnwn=Hnen∣n−1+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=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
,
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^n∣n−1=f(X^n−1∣n−1,un,0)Pn∣n−1=FnPn−1∣n−1FnT+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}
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
P
0
∣
0
∈
R
d
×
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
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=Yn−b(χ^n∣n−1)
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=HnPn∣n−1HnT+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=Pn∣n−1HnTSn−1
P
n
∣
n
=
[
I
−
K
n
H
n
]
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
,
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}
χ^n∣n−1=f(χ^n−1∣n−1,un)Pn∣n−1=FnPn−1∣n−1Fn−1+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}
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.