ESKF最后估计出来的后验误差状态为:
δ
X
∼
N
(
δ
X
^
,
P
^
)
\delta X \sim N(\hat {\delta X},\hat P)
δX∼N(δX^,P^)
将误差状态injection到nominal 状态后,误差状态需要被重置,用于下一次的卡尔曼迭代,也就是所谓的reset,数学表达为:
δ
X
+
=
δ
X
⊖
δ
X
^
=
g
(
δ
X
)
\delta X^+=\delta X \ominus \hat {\delta X}=g(\delta X)
δX+=δX⊖δX^=g(δX)
也就是重置后的状态为
δ
X
+
\delta X^+
δX+,也同样是一个高斯分布的随机变量。
但是我们实际关心是这个高斯随机变量的均值和协方差阵,然而,
g
(
δ
X
)
g(\delta X)
g(δX)并不能保证是一个线性函数,因此首先想到的便是进行泰勒展开线性化,由于
δ
X
\delta X
δX是高斯随机变量,因此我们因该对
δ
X
\delta X
δX进行泰勒展开,线性化点位于
δ
X
^
\hat {\delta X}
δX^处,展开后如下:
δ
X
+
=
g
(
δ
X
)
=
g
(
δ
X
^
)
+
∂
g
(
δ
X
)
∂
δ
X
∣
δ
X
^
(
δ
X
−
δ
X
^
)
=
g
(
δ
X
^
)
+
G
(
δ
X
−
δ
X
^
)
\delta X^+=g(\delta X)=g(\hat {\delta X})+\frac{\partial g(\delta X)}{\partial \delta X}|_{\hat {\delta X}}(\delta X - \hat {\delta X})\\=g(\hat {\delta X})+G(\delta X - \hat {\delta X})
δX+=g(δX)=g(δX^)+∂δX∂g(δX)∣δX^(δX−δX^)=g(δX^)+G(δX−δX^)
则均值为:
E
(
δ
X
+
)
=
g
(
δ
X
^
)
E(\delta X^+)=g(\hat {\delta X})
E(δX+)=g(δX^)
方差:
P
=
E
(
(
δ
X
+
−
E
(
δ
X
+
)
)
(
δ
X
+
−
E
(
δ
X
+
)
T
)
=
G
P
^
G
T
P=E((\delta X^+-E(\delta X^+))(\delta X^+-E(\delta X^+)^T)=G\hat P G^T
P=E((δX+−E(δX+))(δX+−E(δX+)T)=GP^GT
显然,对于各个状态,
g
(
δ
X
^
)
=
δ
X
^
⊖
δ
X
^
=
0
g(\hat {\delta X})=\hat {\delta X} \ominus \hat {\delta X}=0
g(δX^)=δX^⊖δX^=0,即reset后误差状态的均值为0。
G
=
∂
g
(
δ
X
)
∂
δ
X
∣
δ
X
^
G=\frac{\partial g(\delta X)}{\partial \delta X}|_{\hat {\delta X}}
G=∂δX∂g(δX)∣δX^,显然,对于
P
,
V
,
b
i
a
s
P,V,bias
P,V,bias等具有线性性质的变量来说,这个偏导数就是单位阵,但是对于
δ
θ
\delta \theta
δθ来说,
δ
θ
⊖
δ
θ
^
≠
δ
θ
−
δ
θ
^
\delta \theta \ominus \hat {\delta \theta}\neq\delta \theta -\hat {\delta \theta}
δθ⊖δθ^=δθ−δθ^,因此,
G
G
G可以写做:
G
=
[
I
6
0
0
0
∂
δ
θ
⊖
δ
θ
^
∂
δ
θ
∣
δ
θ
^
0
0
0
I
9
]
G=\begin{bmatrix}I_6&0&0\\0&\frac{\partial \delta \theta \ominus \hat {\delta \theta}}{\partial \delta \theta}|_{\hat {\delta \theta}} &0\\0&0&I_9\end{bmatrix}
G=
I6000∂δθ∂δθ⊖δθ^∣δθ^000I9
那么接下来的关键就在于求解
∂
δ
θ
⊖
δ
θ
^
∂
δ
θ
∣
δ
θ
^
\frac{\partial \delta \theta \ominus \hat {\delta \theta}}{\partial \delta \theta}|_{\hat {\delta \theta}}
∂δθ∂δθ⊖δθ^∣δθ^这一项了。
其中:
δ
θ
⊖
δ
θ
^
=
δ
θ
+
\delta \theta \ominus \hat {\delta \theta}=\delta \theta^+
δθ⊖δθ^=δθ+
而状态的真实值是不变的,因此有:
q
+
⊗
q
(
δ
θ
+
)
=
q
⊗
q
(
δ
θ
)
q^+\otimes q(\delta \theta^+)=q\otimes q(\delta \theta)
q+⊗q(δθ+)=q⊗q(δθ)知
q
+
=
q
⊗
q
(
δ
θ
^
)
q^+=q \otimes q(\hat {\delta \theta})
q+=q⊗q(δθ^),因此有:
q
(
δ
θ
+
)
=
q
(
δ
θ
^
)
∗
⊗
q
(
δ
θ
)
=
[
q
(
δ
θ
^
)
∗
]
L
q
(
δ
θ
)
q(\delta \theta^+)=q(\hat {\delta \theta})^*\otimes q(\delta \theta)=[q(\hat {\delta \theta})^*]_Lq(\delta \theta)
q(δθ+)=q(δθ^)∗⊗q(δθ)=[q(δθ^)∗]Lq(δθ)即:
[
1
δ
θ
+
2
]
=
[
1
δ
θ
^
T
2
−
δ
θ
^
2
I
−
[
δ
θ
^
2
]
×
]
[
1
δ
θ
2
]
\begin{bmatrix}1\\\frac{\delta \theta ^+}{2} \end{bmatrix}=\begin{bmatrix}1&\frac{\hat {\delta \theta}^T}{2} \\ -\frac{\hat {\delta \theta}}{2}&I-[\frac{\hat {\delta \theta}}{2}]_\times\end{bmatrix}\begin{bmatrix}1\\\frac{\delta \theta }{2} \end{bmatrix}
[12δθ+]=[1−2δθ^2δθ^TI−[2δθ^]×][12δθ]
展开后整理可得:
δ
θ
+
=
−
δ
θ
^
+
(
I
−
[
δ
θ
^
2
]
×
)
δ
θ
\delta \theta^+=-\hat {\delta \theta}+(I-[\frac{\hat {\delta \theta}}{2}]_\times)\delta \theta
δθ+=−δθ^+(I−[2δθ^]×)δθ
与是
∂
δ
θ
⊖
δ
θ
^
∂
δ
θ
∣
δ
θ
^
=
∂
δ
θ
+
∂
δ
θ
∣
δ
θ
^
=
I
−
[
δ
θ
^
2
]
×
\frac{\partial \delta \theta \ominus \hat {\delta \theta}}{\partial \delta \theta}|_{\hat {\delta \theta}}=\frac{\partial \delta \theta ^+}{\partial \delta \theta}|_{\hat {\delta \theta}}=I-[\frac{\hat {\delta \theta}}{2}]_\times
∂δθ∂δθ⊖δθ^∣δθ^=∂δθ∂δθ+∣δθ^=I−[2δθ^]×
将上式带入到G的表达式中,可得:
G
=
[
I
6
0
0
0
I
−
[
δ
θ
^
2
]
×
0
0
0
I
9
]
G=\begin{bmatrix}I_6&0&0\\0&I-[\frac{\hat {\delta \theta}}{2}]_\times&0\\0&0&I_9\end{bmatrix}
G=
I6000I−[2δθ^]×000I9
最后,误差状态reset的总结如下:
1、reset后均值为0。
2、reset后协方差为
G
P
^
G
T
G\hat P G^T
GP^GT。
3、由于
δ
θ
^
\hat {\delta \theta}
δθ^很小,因此,大部分情况下也可以将
G
G
G近似为单位阵。
ESKF中关于状态reset的一些理解
于 2022-12-10 15:21:11 首次发布