《视觉SLAM十四讲》学习笔记-状态估计问题

最大后验与似然

经典slam模型可表示为:

{x⃗ k=f(x⃗ k1,u⃗ k)+w⃗ kz⃗ k,j=h(y⃗ j,x⃗ k)+v⃗ k,j { x → k = f ( x → k − 1 , u → k ) + w → k z → k , j = h ( y → j , x → k ) + v → k , j

注意这里的 x⃗  x → 为相机的位姿,可以用 李群 Tk T k 李代数 exp(ξk) exp ⁡ ( ξ k ∧ ) 表示。假设在 x⃗ k x → k 对路标 y⃗ j y → j 进行一次观测,对应到图像的位置为 z⃗ k,j z → k , j ,则观测方程为:
sz⃗ k,j=Kexp(ξk)y⃗ j s z → k , j = K exp ⁡ ( ξ k ∧ ) y → j

式中 s s 为像素点的距离。式中zk,j y⃗ j y → j 皆为齐次坐标.
不妨假设噪声项 w⃗ k w → k v⃗ k,j v → k , j 满足零均值高斯分布:
w⃗ kN(0,Rk),  v⃗ k,jN(0,Qk,j) w → k ∼ N ( 0 , R k ) ,     v → k , j ∼ N ( 0 , Q k , j )

先把所有的待估计变量放在一个 状态变量中:
x⃗ =x⃗ 1,,x⃗ N,y⃗ 1,,y⃗ M x → = x → 1 , ⋯ , x → N , y → 1 , ⋯ , y → M

对机器人状态的估计,转变为求已知输入数据 u⃗  u → 和观测数据 z⃗  z → 和条件下,计算状态 x⃗  x → 的条件概率: P(x⃗ |z⃗ ,u⃗ ) P ( x → | z → , u → ) .

当没有运动测量的传感器,即不存在 u⃗  u → 时,上述问题转变为Structure from Motion(SfM)问题。此时,利用贝叶斯法则有:

P(x⃗ |z⃗ )=P(z⃗ |x⃗ )P(x⃗ )P(z⃗ )P(z⃗ |x⃗ )P(x⃗ ) P ( x → | z → ) = P ( z → | x → ) P ( x → ) P ( z → ) ∝ P ( z → | x → ) P ( x → )

上式中, P(z⃗ |x⃗ ) P ( z → | x → ) 似然, P(x⃗ ) P ( x → ) 先验。此时可用 MAP(Maximize a Posterior, MAP)求解:
x⃗ MAP=argmax P(x⃗ |z⃗ )=argmax P(z⃗ |x⃗ )P(x⃗ ) x → ∗ M A P = arg ⁡ max   P ( x → | z → ) = arg ⁡ max   P ( z → | x → ) P ( x → )

进一步地,假设机器人无法获得自己的位置,即 x⃗  x → 没有,则可求解 x⃗  x → 最大似然估计(Maximize Likelihood Estimation, MLE):
x⃗ MLE=argmax P(z⃗ |x⃗ ) x → ∗ M L E = arg ⁡ max   P ( z → | x → )

上式可理解为”在什么样的状态下,最可能产生现在观测到的数据”.

最小二乘问题:

对一次观测:

z⃗ k,j=h(y⃗ j,x⃗ k)+v⃗ k,j z → k , j = h ( y → j , x → k ) + v → k , j

并且有假设 v⃗ k,jN(0,Qk,j) v → k , j ∼ N ( 0 , Q k , j ) ,条件概率为:
P(z⃗ k,j|x⃗ k,y⃗ j)=N(h(y⃗ j,x⃗ k),Qk,j)) P ( z → k , j | x → k , y → j ) = N ( h ( y → j , x → k ) , Q k , j ) )

为求解该问题,回忆一个任意的高维高斯分布 x⃗ N(u⃗ ,Σ) x → ∼ N ( u → , Σ ) ,其概率密度函数为:
P(x⃗ )=1(2π)Ndet(Σ)exp(12(x⃗ u⃗ Σ1(x⃗ u⃗ ))) P ( x → ) = 1 ( 2 π ) N det ( Σ ) exp ⁡ ( − 1 2 ( x → − u → ⊤ Σ − 1 ( x → − u → ) ) )

两边取负对数后变为:
ln(P(x⃗ ))=12ln((2π)Ndet(Σ))+12(x⃗ u⃗ Σ1(x⃗ u⃗ )) − ln ⁡ ( P ( x → ) ) = 1 2 ln ⁡ ( ( 2 π ) N det ( Σ ) ) + 1 2 ( x → − u → ⊤ Σ − 1 ( x → − u → ) )

应用上述公式,第一项与 x⃗  x → 无关可移除,代入slam观测模型结果为:
x⃗ =argmin((z⃗ k,jh(x⃗ k,y⃗ i))Q1k,j(z⃗ k,jh(x⃗ k,y⃗ i))) x → ∗ = arg ⁡ min ( ( z → k , j − h ( x → k , y → i ) ) ⊤ Q k , j − 1 ( z → k , j − h ( x → k , y → i ) ) )

定义数据与误差之间误差为:
{e⃗ v,k=x⃗ kf(x⃗ k1,u⃗ k)e⃗ y,j,k=z⃗ k,jh(x⃗ k,y⃗ j) { e → v , k = x → k − f ( x → k − 1 , u → k ) e → y , j , k = z → k , j − h ( x → k , y → j )

则误差平方项之和为:

J(x⃗ )=ke⃗ v,kR1ke⃗ v,k+kjey,k,jQ1k,jey,k,j J ( x → ) = ∑ k e → v , k ⊤ R k − 1 e → v , k + ∑ k ∑ j e y , k , j ⊤ Q k , j − 1 e y , k , j

此式即为总体意义下的 最小二乘问题(Least Square Problem).

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值