讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解的 卡尔曼家族从零解剖 链接 :卡尔曼家族从零解剖-(00)目录最新无死角讲解:https://blog.csdn.net/weixin_43013761/article/details/133846882
文末正下方中心提供了本人
联系方式,
点击本人照片即可显示
W
X
→
官方认证
{\color{blue}{文末正下方中心}提供了本人 \color{red} 联系方式,\color{blue}点击本人照片即可显示WX→官方认证}
文末正下方中心提供了本人联系方式,点击本人照片即可显示WX→官方认证
一、前言
上一篇博客,讲解的内容确实太多了,推导过程比较复杂,为了有一个整体的认知,方便后续学习,所以这里再花费一个篇幅梳理一下知识点。首先有最基本的贝叶斯公式:
f
X
∣
Y
(
x
∣
y
)
=
f
X
,
Y
(
x
,
y
)
f
Y
(
y
)
=
f
Y
∣
X
(
y
∣
x
)
f
X
(
x
)
∫
−
∞
+
∞
f
Y
∣
X
(
y
∣
x
)
f
X
(
x
)
d
x
=
η
f
Y
∣
X
(
y
∣
x
)
f
X
(
x
)
(01)
\color{Green} \tag{01} f_{X \mid Y}(x \mid y)=\frac{f_{X, Y}(x, y)}{f_{Y}(y)}=\frac{f_{Y \mid X}(y \mid x) f_{X}(x)}{\int_{-\infty}^{+\infty} f_{Y \mid X}(y \mid x) f_{X}(x) \mathrm{d} x}=\eta f_{Y \mid X}(y \mid x) f_{X}(x)
fX∣Y(x∣y)=fY(y)fX,Y(x,y)=∫−∞+∞fY∣X(y∣x)fX(x)dxfY∣X(y∣x)fX(x)=ηfY∣X(y∣x)fX(x)(01) 有了这个贝叶斯公式呢,接着做了两个重要的假设:
(
01
)
:
\color{blue}(01):
(01):
X
0
X_0
X0 与
Q
1
Q_1
Q1、
Q
2
Q_2
Q2、
Q
3
Q_3
Q3、
.
.
.
.
.
.
......
......、
Q
k
Q_{k}
Qk 相互独立。
(
02
)
:
\color{blue}(02):
(02):
X
1
X_1
X1 与
R
1
R_1
R1、
R
2
R_2
R2、
R
3
R_3
R3、
.
.
.
.
.
.
......
......、
R
k
R_{k}
Rk 相互独立。
基于上上述的假设,我们假设了随机变量的状态方程与观测方程:
X
k
=
f
(
X
k
−
1
)
+
Q
k
Y
k
=
h
(
X
k
)
+
R
k
(02)
\color{Green} \tag{02} X_k=f(X_{k-1})+Q_{k} \\Y_k=h(X_k)+R_k
Xk=f(Xk−1)+QkYk=h(Xk)+Rk(02)然后我们进行随机变量的递归过程,图示如下(上一篇博客图二简化精华版):
上图为大致递推流程,但是这个流程是很难走下去的,为什么呢?假设现在初始状态
X
0
X_0
X0、
f
(
x
)
f(x)
f(x)状态转移方程、
h
(
x
)
h(x)
h(x) 测量方程、 与初始状态转移噪声
Q
1
Q_1
Q1 与 测量噪声
R
1
R_1
R1、以及各个时刻的观测随机变量
Y
1
Y_1
Y1到
Y
k
Y_k
Yk,但是我们依旧没有办法递推出
X
k
+
X_k^+
Xk+,因为我们不知道
Q
2
Q_2
Q2 到
Q
k
Q_k
Qk,
R
2
R_2
R2 到
R
k
R_k
Rk,注意,这里是说随机变量
Q
k
Q_k
Qk 与
R
k
R_k
Rk 的具体取值不知道是多少,而不是说关于他们的函数表达式不知道(后续学习卡尔曼滤波会有更加深的体会),所以根据状态方程与测量方程进行了如下推导:
(
01
)
:
\color{blue}(01):
(01): 根据状态方程推导出先验概率密度函数
f
X
k
−
(
x
)
f_{X_{k}}^-(x)
fXk−(x),其等价于(01)式中的
f
X
(
x
)
f_X(x)
fX(x)。
f
X
k
−
(
x
)
=
d
F
X
1
−
(
x
)
d
x
=
∫
−
∞
+
∞
f
Q
k
[
x
−
f
(
v
)
]
f
X
k
−
1
+
(
v
)
d
v
(03)
\color{red} \tag{03} f_{X_{k}}^-(x)=\frac{\mathrm{d} F_{X_1}^-(x)}{\mathrm{d} x}= \int_{-\infty}^{+\infty} f_{Q_{k}}[x-f(v)] f_{X_{k-1}}^{+}(v) \mathrm{d} v
fXk−(x)=dxdFX1−(x)=∫−∞+∞fQk[x−f(v)]fXk−1+(v)dv(03)
(
02
)
:
\color{blue}(02):
(02): 根据测量方程推导出出似然概率密度函数
f
Y
k
∣
X
k
(
y
k
∣
x
)
f_{Y_{k} \mid X_{k}}(y_{k} \mid x)
fYk∣Xk(yk∣x),等价于(01)式中的
f
Y
∣
X
(
y
∣
x
)
f
X
(
x
)
f_{Y \mid X}(y \mid x) f_{X}(x)
fY∣X(y∣x)fX(x)。
f
Y
k
∣
X
k
(
y
k
∣
x
)
=
f
R
k
[
y
k
−
h
(
x
)
]
(04)
\color{red} \tag{04} f_{Y_{k} \mid X_{k}}(y_{k} \mid x)=f_{R_{k}}\left[y_{k}-h(x)\right]
fYk∣Xk(yk∣x)=fRk[yk−h(x)](04)
(
03
)
:
\color{blue}(03):
(03): 最后参照(01)式子,可得后验概率密度函数
f
X
k
+
(
x
)
f_{X_k}^+(x)
fXk+(x):
f
X
k
+
(
x
)
=
η
k
⋅
f
X
k
∣
Y
k
(
x
)
⋅
f
X
k
−
(
x
)
=
η
k
⋅
f
R
k
[
y
k
−
h
(
x
)
]
⋅
∫
−
∞
+
∞
f
Q
k
[
x
−
f
(
v
)
]
f
X
k
−
1
+
(
v
)
d
v
(05)
\color{red} \tag{05} f_{X_k}^+(x)=\eta_k ·f_{X_k | Y_k}(x) ·f_{X_k}^-(x) =\eta_k ·f_{R_{k}}\left[y_{k}-h(x)\right]· \int_{-\infty}^{+\infty} f_{Q_{k}}[x-f(v)] f_{X_{k-1}}^{+}(v) \mathrm{d} v
fXk+(x)=ηk⋅fXk∣Yk(x)⋅fXk−(x)=ηk⋅fRk[yk−h(x)]⋅∫−∞+∞fQk[x−f(v)]fXk−1+(v)dv(05)
η
k
=
[
∫
−
∞
+
∞
(
f
R
k
[
y
k
−
h
(
x
)
]
⋅
∫
−
∞
+
∞
f
Q
k
[
x
−
f
(
v
)
]
f
X
k
−
1
+
(
v
)
d
v
d
x
]
−
1
)
d
x
(06)
\color{Green} \tag{06} \eta_k=[\int_{-\infty}^{+\infty}(f_{R_{k}}\left[y_{k}-h(x)\right]· \int_{-\infty}^{+\infty} f_{Q_{k}}[x-f(v)] f_{X_{k-1}}^{+}(v) \mathrm{d} v\mathrm{d} x]^{-1}) \mathrm d x
ηk=[∫−∞+∞(fRk[yk−h(x)]⋅∫−∞+∞fQk[x−f(v)]fXk−1+(v)dvdx]−1)dx(06)
需要注意,其上的
f
Q
k
f_{Q_k}
fQk 与
f
R
k
f_{R_k}
fRk 都为概率密度函数(PDF)。求得 后验概率密度,对齐进行积分即可得到概率分布,进一步求期望即可。
二、技术难点
公式确实推导出来了,但是很明显上式是一个广义结果,并没有实例化,比如 f ( x ) f(x) f(x), h ( x ) h(x) h(x)。如果这两个是函数十分复杂,比如非线性。那么上式则设计到两个非线性无穷积分的运算,也就是 (03) 式与 (06) 式。亦或者 f Q k ( x ) f_{Q_k}(x) fQk(x) 与 f R k ( x ) f_{R_k}(x) fRk(x) 十分复杂,同样会导致非线性无穷积分的运算,这样有可能会导致无法求解。当然,这个推导出来的结果就没有任何作用了。
所以呢,在实际的应用中,基于贝叶斯的不通算法会有不同假设,比如令 f ( x ) f(x) f(x), h ( x ) h(x) h(x) 为线性函数,那么显然,其就应用场景就存在局限性了,卡尔曼滤波就是一种具体化的实现。另外还有扩展卡尔曼滤波,其能够处理一些非线性的复杂场景,后续也会为大家详细分析。依照不通实现方式,对基于贝叶斯滤波思想的方法进行了归类如下: