贝叶斯单一观测
p ( x / z ) = p ( z / x ) p ( x ) p ( z ) p(x/z)=\tfrac{p(z/x)p(x)}{p(z)} p(x/z)=p(z)p(z/x)p(x)
贝叶斯多种观测
p ( x / z , u ) = p ( z , x , u ) p ( z , u ) = p ( z / x , u ) p ( x , u ) p ( z , u ) = p ( z / x , u ) p ( x / u ) p ( u ) p ( z / u ) p ( u ) = p ( z / x , u ) p ( x / u ) p ( z / u ) p(x/z,u)=\tfrac{p(z,x,u)}{p(z,u)} =\tfrac{p(z/x,u)p(x,u)}{p(z,u)} =\tfrac{p(z/x,u)p(x/u)p(u)}{p(z/u)p(u)} =\tfrac{p(z/x,u)p(x/u)}{p(z/u)} p(x/z,u)=p(z,u)p(z,x,u)=p(z,u)p(z/x,u)p(x,u)=p(z/u)p(u)p(z/x,u)p(x/u)p(u)=p(z/u)p(z/x,u)p(x/u)
SLAM中贝叶斯公式推导
B
e
l
(
x
t
)
=
p
(
x
t
/
x
0
,
z
1
:
t
,
u
1
:
t
)
=
p
(
z
t
/
x
t
,
z
1
:
t
−
1
,
u
1
:
t
)
p
(
x
t
/
x
0
,
z
1
:
t
−
1
,
u
1
:
t
)
p
(
z
t
/
z
1
:
t
−
1
,
u
1
:
t
)
(
1
)
=
η
p
(
z
t
/
x
t
)
p
(
x
t
/
x
0
,
z
1
:
t
−
1
,
u
1
:
t
)
(
2
)
=
η
p
(
z
t
/
x
t
)
∫
p
(
x
t
/
x
t
−
1
,
z
1
:
t
−
1
,
u
1
:
t
)
p
(
x
t
−
1
/
x
0
,
z
1
:
t
−
1
,
u
1
:
t
)
d
x
t
−
1
(
3
)
=
η
p
(
z
t
/
x
t
)
∫
p
(
x
t
/
x
t
−
1
,
u
t
)
p
(
x
t
−
1
/
x
0
,
z
1
:
t
−
1
,
u
1
:
t
)
d
x
t
−
1
(
4
)
=
η
p
(
z
t
/
x
t
)
∫
p
(
x
t
/
x
t
−
1
,
u
t
)
p
(
x
t
−
1
/
x
0
,
z
1
:
t
−
1
,
u
1
:
t
−
1
)
d
x
t
−
1
(
5
)
=
η
p
(
z
t
/
x
t
)
∫
p
(
x
t
/
x
t
−
1
,
u
t
)
B
e
l
(
x
t
−
1
)
d
x
t
−
1
\begin{aligned} Bel(x_{t})&=p(x_{t}/x_{0},z_{1:t},u_{1:t}) \\ &=\tfrac{p(z_{t}/x_{t},z_{1:t-1},u_{1:t})p(x_{t}/x_{0},z_{1:t-1},u_{1:t})}{p(z_{t}/z_{1:t-1},u_{1:t})} (1)\\ &=\eta p(z_{t}/x_{t}) p(x_{t}/x_{0},z_{1:t-1},u_{1:t}) (2) \\ &=\eta p(z_{t}/x_{t}) \int p(x_{t}/x_{t-1},z_{1:t-1},u_{1:t}) p(x_{t-1}/x_{0},z_{1:t-1},u_{1:t})dx_{t-1}(3) \\ &=\eta p(z_{t}/x_{t}) \int p(x_{t}/x_{t-1},u_{t}) p(x_{t-1}/x_{0},z_{1:t-1},u_{1:t})dx_{t-1}(4) \\ &=\eta p(z_{t}/x_{t}) \int p(x_{t}/x_{t-1},u_{t}) p(x_{t-1}/x_{0},z_{1:t-1},u_{1:t-1})dx_{t-1}(5) \\ &=\eta p(z_{t}/x_{t}) \int p(x_{t}/x_{t-1},u_{t}) Bel(x_{t-1})dx_{t-1} \end{aligned}
Bel(xt)=p(xt/x0,z1:t,u1:t)=p(zt/z1:t−1,u1:t)p(zt/xt,z1:t−1,u1:t)p(xt/x0,z1:t−1,u1:t)(1)=ηp(zt/xt)p(xt/x0,z1:t−1,u1:t)(2)=ηp(zt/xt)∫p(xt/xt−1,z1:t−1,u1:t)p(xt−1/x0,z1:t−1,u1:t)dxt−1(3)=ηp(zt/xt)∫p(xt/xt−1,ut)p(xt−1/x0,z1:t−1,u1:t)dxt−1(4)=ηp(zt/xt)∫p(xt/xt−1,ut)p(xt−1/x0,z1:t−1,u1:t−1)dxt−1(5)=ηp(zt/xt)∫p(xt/xt−1,ut)Bel(xt−1)dxt−1
(1)式到(2)式,分母与x无关,是一个常数,为了方便表示用
η
\eta
η表示,由马尔科夫假设,在已知
x
t
x_{t}
xt的情况下,
z
t
z_{t}
zt与{
z
1
:
t
−
1
,
u
1
:
t
{z_{1:t-1},u_{1:t}}
z1:t−1,u1:t}无关,所以分子第一项化简为
p
(
z
t
/
x
t
)
p(z_{t}/x_{t})
p(zt/xt)
(2)式到(3)式,当前状态 x t x_{t} xt是基于之前所有状态估计得到的,至少它会受 x t − 1 x_{t-1} xt−1影响,于是按照 x t − 1 x_{t-1} xt−1时刻为条件概率展开: p ( x t − 1 / x 0 , z 1 : t − 1 , u 1 : t ) = p ( x t − 1 / x 0 , z 1 : t − 1 , u 1 : t − 1 ) = B e l ( x t − 1 ) p(x_{t-1}/x_{0},z_{1:t-1},u_{1:t})=p(x_{t-1}/x_{0},z_{1:t-1},u_{1:t-1})=Bel(x_{t-1}) p(xt−1/x0,z1:t−1,u1:t)=p(xt−1/x0,z1:t−1,u1:t−1)=Bel(xt−1)
(3)式到(4)式,由马尔科夫假设,当前时刻状态只和上一个时刻有关,所以 ∫ p ( x t / x t − 1 , z 1 : t − 1 , u 1 : t ) = ∫ p ( x t / x t − 1 , u t ) \int p(x_{t}/x_{t-1},z_{1:t-1},u_{1:t})=\int p(x_{t}/x_{t-1},u_{t}) ∫p(xt/xt−1,z1:t−1,u1:t)=∫p(xt/xt−1,ut)
(4)式到(5)式,考虑到t时刻的输入量 u t u_{t} ut与 t−1 时刻的状态无关,所以把 u t u_{t} ut拿掉, p ( x t − 1 / x 0 , z 1 : t − 1 , u 1 : t ) = p ( x t − 1 / x 0 , z 1 : t − 1 , u 1 : t − 1 ) = B e l ( x t − 1 ) p(x_{t-1}/x_{0},z_{1:t-1},u_{1:t})=p(x_{t-1}/x_{0},z_{1:t-1},u_{1:t-1})=Bel(x_{t-1}) p(xt−1/x0,z1:t−1,u1:t)=p(xt−1/x0,z1:t−1,u1:t−1)=Bel(xt−1)
总结:从最终的式子可以看出,SLAM中的贝叶斯框架就是:我们用轮速里程计运动数据 u t u_{t} ut来预测下一时刻机器人的位姿 x t x_{t} xt,接着用视觉传感器观测数据 z t z_{t} zt来对预测的位姿 x t x_{t} xt进行校正,这样就获得了当前时刻状态的后验。其实就是两个过程,状态预测和状态更新。