SAM推导

参考文献

Frank Dellaert,Michael Kaess,The International Journal of Robotics Research,2006,Square Root SAM: Simultaneous Localization and Mapping via Square Root Information Smoothing

模型

SLAM问题可以表示成置信网(belief net),因子图(factor graph),马尔可夫随机场(markov random field)。首先从置信网(也就是贝叶斯网络)的角度分析。
假设第 i i i时刻机器人的状态为 x i x_i xi i ∈ 0 i\in0 i0 … \dots M M M,路标为 l j l_j lj j ∈ 1 j\in1 j1 … \dots N N N,量测为 z k z_k zk k ∈ 1 k\in1 k1 … \dots K K K
对应上图的联合概率密度模型为 P ( X , L , Z , U ) = P ( x 0 ) ∏ i = 1 M P ( x i ∣ x i − 1 , u i ) ∏ k = 1 K P ( z k ∣ x i k , l j k ) P(X,L,Z,U) = P(x_0)\prod_{i=1}^M {P(x_i|x_{i-1},u_i)}\prod_{k=1}^K {P(z_k|x_{ik},l_{jk})} P(X,L,Z,U)=P(x0)i=1MP(xixi1,ui)k=1KP(zkxik,ljk)其中, P ( x 0 ) P(x_0) P(x0)表示初始状态, P ( x i ∣ x i − 1 , u i ) P(x_i|x_{i-1},u_i) P(xixi1,ui)表示运动模型, P ( z ∣ x , l ) P(z|x,l) P(zx,l)表示路标量测模型。引入标准的高斯模型, x i = f i ( x i − 1 , u i ) + w i    ⟺    P ( x i ∣ x i − 1 , u i ) ∝ e x p ( − 1 2 ∥ f i ( x i − 1 , u i ) − x i ) ∥ Λ i 2 ) x_i = f_i(x_{i-1},u_i) + w_i\iff P(x_i|x_{i-1},u_i) \propto exp(-\frac1{2} \Vert f_i(x_{i-1},u_i) - x_i) \Vert^2_{\Lambda_i} ) xi=fi(xi1,ui)+wiP(xixi1,ui)exp(21fi(xi1,ui)xi)Λi2)其中 f i ( ) f_i() fi()是一个process model, w i w_i wi是零均值高斯白噪声,协方差为 Λ i \Lambda_i Λi。量测模型为 z k = h k ( x i k , l j k ) + v k    ⟺    P ( z k ∣ x i k , l j k ) ∝ e x p ( − 1 2 ∥ h k ( x i k , l j k ) − z k ∥ Σ k 2 ) z_k = h_k(x_{ik},l_{jk}) + v_k \iff P(z_k|x_{ik},l{jk}) \propto exp(-\frac1{2}\Vert h_k(x_{ik},l_{jk}) - z_k \Vert^2_{\Sigma_k}) zk=hk(xik,ljk)+vkP(zkxik,ljk)exp(21hk(xik,ljk)zkΣk2)其中 h k ( ) h_k() hk()是观测方程, v k v_k vk同样是零均值高斯白噪声,协方差为 Σ k \Sigma_k Σk ∥ e ∥ Σ 2 = e T Σ − 1 e \Vert e \Vert ^2_\Sigma=e^T\Sigma^{-1}e eΣ2=eTΣ1e定义为平方马氏距离。

最小二乘问题

将最大后验估计取负对数,转化成最小二乘问题 Θ ∗ = arg ⁡ max ⁡ Θ P ( X , L ∣ Z ) = arg ⁡ max ⁡ Θ P ( X , L , Z ) = arg ⁡ min ⁡ Θ − l o g ( P ( X , L ∣ Z ) ) \Theta^*=\arg\max_{\Theta}P(X,L|Z)=\arg\max_{\Theta}P(X,L,Z)=\arg\min_{\Theta}-log(P(X,L|Z)) Θ=argΘmaxP(X,LZ)=argΘmaxP(X,L,Z)=argΘminlog(P(X,LZ))代入前面的几个式子,将 P ( x 0 ) P(x_0) P(x0)视为常数省略,得到非线性最小二乘问题如下:
Θ ∗ = arg ⁡ min ⁡ Θ { ∑ i = 1 M ∥ f i ( x i − 1 , u i ) − x i ∥ Λ i 2 + ∑ k = 1 K ∥ h k ( x i k , l j k ) − z k ∥ Σ k 2 } \Theta^* = \arg\min_{\Theta}\lbrace\sum_{i=1}^M {\Vert f_i(x_{i-1},u_i)-x_i\Vert ^2_{\Lambda_i}+\sum_{k=1}^K {\Vert h_k(x_{ik},l_{jk})-z_k}\Vert^2_{\Sigma_k}}\rbrace Θ=argΘmin{i=1Mfi(xi1,ui)xiΛi2+k=1Khk(xik,ljk)zkΣk2}实际中一般加以线性化, f i ( x i − 1 , u i ) − x i ≈ { f i ( x i − 1 0 , u i ) + F i i − 1 δ x i − 1 } − { x i 0 + δ x i } = { F i i − 1 δ x i − 1 − δ x i } − a i f_i(x_{i-1},u_i) -x_i \approx \lbrace f_i(x^0_{i-1},u_i) + F^{i-1}_i\delta x_{i-1}\rbrace-\lbrace x^0_i+\delta x_i\rbrace = \lbrace F^{i-1}_i\delta x_{i-1} - \delta x_i\rbrace - a_i fi(xi1,ui)xi{fi(xi10,ui)+Fii1δxi1}{xi0+δxi}={Fii1δxi1δxi}ai其中 a i = x i 0 − f i ( x i − 1 0 , u i ) a_i = x_i^0 - f_i(x^0_{i-1},u_i) ai=xi0fi(xi10,ui)表示里程计预测误差,这里 u i u_i ui是给定的,被认为是常数。而 F i i − 1 F_i^{i-1} Fii1 f i ( . ) f_i(.) fi(.)在线性化点 x i − 1 0 x_{i-1}^0 xi10的雅可比矩阵,定义为 F i i − 1 = ∂ f i ( x i − 1 , u i ) ∂ x i − 1 ∣ x i − 1 0 F_i^{i-1} = \left. \frac{\partial f_i(x_{i-1},u_i)}{\partial x_{i-1}} \right|_{x_{i-1}^0} Fii1=xi1fi(xi1,ui)xi10对于量测模型 h k ( x i k , l j k ) − z k ≈ { h k ( x i k 0 , l j k 0 ) + H k i k δ x i k + J k j k δ l j k } − z k = { H k i k δ x i k + J k j k δ l j k } − c k h_k(x_{ik},l_{jk}) - z_k \approx \lbrace h_k(x_{ik}^0,l_{jk}^0) + H_k^{ik}\delta x_{ik} + J_k^{jk}\delta l_{jk}\rbrace - z_k = \lbrace H_k^{ik} \delta x_{ik} + J_{k}^{jk} \delta l_{jk}\rbrace -c_k hk(xik,ljk)zk{hk(xik0,ljk0)+Hkikδxik+Jkjkδljk}zk={Hkikδxik+Jkjkδljk}ck其中 H k i k H_k^{ik} Hkik J k j k J_k^{jk} Jkjk分别是 h k ( . ) h_k(.) hk(.)在线性化点 ( x i k 0 , l j k 0 ) (x_{ik}^0,l_{jk}^0) (xik0,ljk0)处对 x i k x_{ik} xik l j k l_{jk} ljk的雅可比矩阵,即 H k i k = ∂ h k ( x i k , l j k ) ∂ x i k ∣ ( x i k 0 , l j k 0 ) H_k^{ik} = \left. \frac{\partial h_k(x_{ik},l_{jk})}{\partial x_{ik}} \right|_{(x_{ik}^0,l_{jk}^0)} Hkik=xikhk(xik,ljk)(xik0,ljk0) J k j k = ∂ h k ( x i k , l j k ) ∂ l j k ∣ ( x i k 0 , l j k 0 ) J_k^{jk} = \left. \frac{\partial h_k(x_{ik},l_{jk})}{\partial l_{jk}} \right|_{(x_{ik}^0,l_{jk}^0)} Jkjk=ljkhk(xik,ljk)(xik0,ljk0) c k = z k − h k ( x i k 0 , l j k 0 ) c_k = z_k - h_k(x_{ik}^0,l_{jk}^0) ck=zkhk(xik0,ljk0)是量测误差。
那么非线性最小二乘问题就可以转化成线性最小二乘问题,即 δ ∗ = a r g min ⁡ δ { ∑ i = 1 M ∥ F i i − 1 δ x i − 1 + G i i δ x i − a i ∥ Λ i 2 + ∑ k = 1 K ∥ H k i k δ x i k + J k j k δ l j k − c k ∥ Σ k 2 } \delta^* = arg\min_\delta \lbrace\sum_{i=1}^M \Vert F_i^{i-1}\delta x_{i-1} + G_i^i\delta x_i -a_i\Vert _{\Lambda_i}^2 + \sum_{k=1}^K\Vert H_k^{ik}\delta x_{ik} + J_k^{jk}\delta l_{jk} -c_k\Vert ^2_{\Sigma_k}\rbrace δ=argδmin{i=1MFii1δxi1+GiiδxiaiΛi2+k=1KHkikδxik+JkjkδljkckΣk2}其中, G i i = − I d ∗ d G_i^i = -I_{d*d} Gii=Idd为单位矩阵, d d d x i x_i xi的维度。

求解

由于 ∥ e ∥ Σ 2 = e T Σ − 1 e = ( Σ − T 2 e ) T ( Σ − T 2 e ) = ∥ Σ − T 2 e ∥ 2 2 \Vert e\Vert _\Sigma^2 = e^T\Sigma^{-1}e = (\Sigma^{-\frac T{2}}e)^T(\Sigma^{-\frac T{2}}e) = \Vert \Sigma^{-\frac T{2}}e \Vert _2^2 eΣ2=eTΣ1e=(Σ2Te)T(Σ2Te)=Σ2Te22那么将马氏距离转化成几何的平方距离形式(二范数) δ ∗ = a r g min ⁡ δ { ∑ i = 1 M ∥ Λ i − T 2 ( F i i − 1 δ x i − 1 + G i i δ x i − a i ) ∥ 2 2 + ∑ k = 1 K ∥ Σ k − T 2 ( H k i k δ x i k + J k j k δ l j k − c k ) ∥ 2 2 } \delta^* = arg\min_{\delta} \lbrace\sum_{i=1}^M \Vert \Lambda_i^{-\frac T{2}}(F_i^{i-1}\delta x_{i-1} + G_i^i\delta x_i -a_i)\Vert _2^2 + \sum_{k=1}^K \Vert \Sigma_k^{-\frac T{2}}(H_k^{ik}\delta x_{ik} + J_k^{jk}\delta l_{jk} -c_k)\Vert _2^2\rbrace δ=argδmin{i=1MΛi2T(Fii1δxi1+Giiδxiai)22+k=1KΣk2T(Hkikδxik+Jkjkδljkck)22}这其中, F i i − 1 F_i^{i-1} Fii1 H k i k H_k^{ik} Hkik J k j k J_k^{jk} Jkjk都是雅可比矩阵,将所有的雅可比矩阵合并到一个矩阵 A A A,而向量 a i a_i ai c k c_k ck放入RHS(right-hand side)向量 b b b中,得到最小二乘问题的标准形式为 δ ∗ = a r g min ⁡ δ ∥ A δ − b ∥ 2 2 \delta^* = arg\min_\delta \Vert A\delta - b \Vert _2^2 δ=argδminAδb22.其中, A A A可能维度增长到比较大,但是是保持稀疏的。向量 δ ∈ R n \delta \in R^n δRn包含所有的位姿和landmark变量,矩阵 A ∈ R m × n A\in R^{m\times n} ARm×n是一个大但是稀疏的量测雅可比矩阵, m m m表示量测的数目, b ∈ R m b\in R^m bRm是RHS向量。
  对上面的式子取最小值,就是对 ∥ A δ − b ∥ 2 2 \Vert A\delta-b\Vert^2_2 Aδb22求导,令导数为0,得到 A T A δ = A T b A^TA\delta=A^Tb ATAδ=ATb。可以通过对 A T A A^TA ATA的Cholesky分解进行求解。
后续QR分解或者Cholesky分解,理解了再补充。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值