非线性优化:SLAM模型建立

SLAM数学模型

运动方程

设机器人在行驶过程中,时刻 t t t的位姿为 x t x_t xt,则机器人的运动方程可用下式表达:
x k = f ( x k − 1 , u k , w k ) x_k=f(x_{k-1},u_k,w_k) xk=f(xk1,uk,wk)
其中, u k u_k uk为控制量也即运动传感器的读数或输入。一般采用编码器获取机器人的行驶速度(速度运动模型)或采用里程计获取里程信息(里程运动模型)作为输入。 w k w_k wk为运动噪声项。

运动方程的含义为,通过机器人上一时刻的位姿信息及控制量,能够估计得到机器人的当前时刻位姿。

观测方程

视觉SLAM的观察模型通常为基于特征的模型,则地图信息由一些列的路标组成。用 y 1 , y 2 , ⋯   , y N y_1,y_2,\cdots,y_N y1,y2,,yN表示各个路标点。

在机器人运动过程中,传感器将得到周围路标的信息,则机器人的观测方程如下:
z k , j = h ( y j , x k , v k , j ) z_{k,j}=h(y_j,x_k,v_{k,j}) zk,j=h(yj,xk,vk,j)
其中, v k , j v_{k,j} vk,j为观测噪声项。

观测方程的含义为,在路标信息 y j y_j yj和机器人位姿 x k x_k xk下,传感器的观测数据为 z k , j z_{k,j} zk,j

状态估计问题

由此,得到SLAM的模型:
{ x k = f ( x k − 1 , u k , w k ) z k , j = h ( y j , x k , v k , j ) \begin{cases}x_k=f(x_{k-1},u_k,w_k)\\z_{k,j}=h(y_j,x_k,v_{k,j})\end{cases} {xk=f(xk1,uk,wk)zk,j=h(yj,xk,vk,j)
其中,运动方程中机器人当前位姿 x k x_k xk可由 T k ∈ S E ( 3 ) T_k\in SE(3) TkSE(3)进行描述。而观测方程则有相机针孔模型进行建模:
s   z k , j = K ( R k y j + t k ) s\:z_{k,j}=K(R_{k}y_j+t_k) szk,j=K(Rkyj+tk)
也即在时刻 t t t下,相机传感器处于机器人位姿 x k x_k xk处,此时对路标 y j y_j yj进行的观测对应到图像上的像素位置 z k , j z_{k,j} zk,j处。其中, s s s为比例因子, K K K为相机内参, R k ∈ S O ( 3 ) R_k\in SO(3) RkSO(3)和平移 t k t_k tk构成了相机的外参矩阵 T k T_k Tk

通常,增加以零为均值 R k 、 Q k , j R_k、Q_{k,j} RkQk,j为方差的高斯分布 w k , v k , j w_k,v_{k,j} wk,vk,j作为运动噪声和观测噪声:
w k ∼ N ( 0 , R k ) v k , j ∼ N ( 0 , Q k , j ) w_k\sim \mathcal{N}(0,R_k)\qquad\qquad v_{k,j}\sim \mathcal{N}(0,Q_{k,j}) wkN(0,Rk)vk,jN(0,Qk,j)
根据模型,采用控制量 u u u(通常为速度信息或里程计信息)和传感器观测 z z z推断机器人的位姿 x x x以及地图信息 y y y

状态估计问题的处理有两种方式,一种叫做滤波器算法,一种则为批量估计算法。滤波器算法持有一个对当前时刻的估计,并用新的传感器数据更新估计。批量估计算法则将数据累计为一个小批量后,统一进行处理估计。

常用的滤波器算法有扩展卡尔曼算法(EKF)、无迹卡尔曼算法(UKF)等。相对而言,滤波器算法仅关心当前时刻下的状态估计量,而批量估计则在更大范围内得到最优。一般认为批量估计优于滤波器估计。

批量估计

对于机器人运动,考虑从1到N时刻下机器人的位姿 x t x_t xt及对应的地标信息 y j y_j yj
x = { x 1 , ⋯   , x N } y = { y 1 , ⋯   , y M } x=\{x_1,\cdots,x_N\}\qquad\qquad y=\{y_1,\cdots,y_M\} x={x1,,xN}y={y1,,yM}
则在控制量输入 u u u、传感器观测数据 z z z的条件下对机器人状估计如下:
p ( x , y ∣ z , u ) = p ( z , u ∣ x , y )   p ( x , y ) p ( z , u ) = η   p ( z , u ∣ x , y )   p ( x , y ) p(x,y|z,u)=\frac{p(z,u|x,y)\:p(x,y)}{p(z,u)}=\eta\:p(z,u|x,y)\:p(x,y) p(x,yz,u)=p(z,u)p(z,ux,y)p(x,y)=ηp(z,ux,y)p(x,y)
贝叶斯法则展开,得到右侧内容,其中 η \eta η为归一化因子; p ( z , u ∣ x , y ) p(z,u|x,y) p(z,ux,y)似然(Likehood) p ( x , y ) p(x,y) p(x,y)先验(Prior) p ( x , y ∣ z , u ) p(x,y|z,u) p(x,yz,u)后验

直接求解后验分布较为困难,转为求解一个状态最优估计,使得后验概率最大化:
( x , y ) M A P ∗ = a r g max ⁡   p ( x , y ∣ z , u ) = a r g max ⁡   p ( z , u ∣ x , y ) p ( x , y ) (x,y)^*_{MAP}=arg\max\:p(x,y|z,u)=arg\max\:p(z,u|x,y)p(x,y) (x,y)MAP=argmaxp(x,yz,u)=argmaxp(z,ux,y)p(x,y)
归一化因子 η \eta η同分布无关,归为常数项,忽略。由上述等式知:求解后验概率最大化就在于求解最大似然估计:
( x , y ) M L E ∗ = a r g max ⁡   p ( z , u ∣ x , y ) (x,y)^*_{MLE}=arg\max\:p(z,u|x,y) (x,y)MLE=argmaxp(z,ux,y)
似然的含义为:在当前机器人位姿下,可能产生的观测数据。

最大似然估计:在机器人位姿什么状态下,最可能得到当前观测到的数据。

最大似然估计

观测模型

( x , y ) M L E ∗ = a r g   m a x   p ( z , u ∣ x , y ) (x,y)^*_{MLE}=arg\:max\:p(z,u|x,y) (x,y)MLE=argmaxp(z,ux,y)

对于一次观测:
z k , j = h ( y j , x k ) + v k , j z_{k,j}=h(y_j,x_k)+v_{k,j} zk,j=h(yj,xk)+vk,j
以知用高斯分布建模观测噪声 v t , j ∼ N ( 0 , Q k , j ) v_{t,j}\sim\mathcal{N}(0,Q_{k,j}) vt,jN(0,Qk,j),则可知:
p ( z k , j ∣ x k , y j ) ∼ N ( h ( y j , x k ) , Q k , j ) p(z_{k,j}|x_k,y_j)\sim\mathcal{N}(h(y_j,x_k),Q_{k,j}) p(zk,jxk,yj)N(h(yj,xk),Qk,j)
求解最大似然估计可以使用最小化负对数方式进行。

最小负对数

对于一个任意高纬度高斯分布 x ∼ N ( μ , Σ ) x\sim\mathcal{N}(\mu,\Sigma) xN(μ,Σ)
p ( x ) = 1 ( 2 π ) N d e t ( Σ ) e x p ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) p(x)=\frac{1}{\sqrt{(2\pi)^Ndet(\Sigma)}}exp\Bigl(-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)\Bigr) p(x)=(2π)Ndet(Σ) 1exp(21(xμ)TΣ1(xμ))
对其取负自然对数:
− ln ⁡   p ( x ) = 1 2 ln ⁡ ( ( 2 π ) N   d e t ( Σ ) ) + 1 2 ( x − μ ) T Σ − 1 ( x − μ ) -\ln\:p(x)=\frac{1}{2}\ln\Bigl((2\pi)^N\:det(\Sigma)\Bigr)+\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu) lnp(x)=21ln((2π)Ndet(Σ))+21(xμ)TΣ1(xμ)
由对数函数单调递增性质,可以得到对 p ( x ) p(x) p(x)求取最大化也即对负对数 − ln ⁡   p ( x ) -\ln\:p(x) lnp(x)取最小化。

上述表达式右侧第一项为常数项,则对其右侧第二项进行最小项求解即可得到状态的最大似然估计。

最大似然估计

将观测方程带入上述模型:
( x k , y j ) ∗ = a r g max ⁡   N ( h ( y j , x k ) , Q k , j ) = a r g min ⁡ ( ( z k , j − h ( x k , y j ) ) T Q k , j − 1 ( z k , j − h ( x k , y j ) ) ) \begin{aligned} (x_k,y_j)^*& =arg\max\:\mathcal{N}(h(y_j,x_k),Q_{k,j})\\ &=arg\min\Bigl(\bigl(z_{k,j}-h(x_k,y_j)\bigr)^TQ_{k,j}^{-1}\bigl(z_{k,j}-h(x_k,y_j)\bigr)\Bigr)\\ \end{aligned} (xk,yj)=argmaxN(h(yj,xk),Qk,j)=argmin((zk,jh(xk,yj))TQk,j1(zk,jh(xk,yj)))
称上述公式描述的为马哈拉诺比距离,简称马氏距离。该式等价于最小化噪声项, Q k , j − 1 Q_{k,j}^{-1} Qk,j1叫做信息矩阵,也即高斯分布协方差矩阵的逆。

批量估计

考虑批量内时刻的数据,假设批量内各个时刻的控制量输入 u u u、传感器观测数据 z z z相互独立,也即控制量间相互独立,观测间相互独立,可得:
p ( z , u ∣ x , y ) = ∏ k p ( u k ∣ x k − 1 , x k )   ∏ k , j p ( z k , j ∣ x k , y j ) p(z,u|x,y)=\prod_kp(u_k|x_{k-1},x_k)\:\prod_{k,j}p(z_{k,j}|x_k,y_j) p(z,ux,y)=kp(ukxk1,xk)k,jp(zk,jxk,yj)
由此,可独立处理各个时刻间的运动、观测。现定义运动控制量、传感器观测同模型的误差如下:
e u , k = x k − f ( x k − 1 , u k ) e z , k , j = z k , j − h ( x k , y j ) \begin{aligned} e_{u,k}&=x_k-f(x_{k-1},u_k)\\ e_{z,k,j}&=z_{k,j}-h(x_k,y_j)\\ \end{aligned} eu,kez,k,j=xkf(xk1,uk)=zk,jh(xk,yj)
由此,可得目标函数如下:
min ⁡ J ( x , y ) = ∑ k e u , k T R k − 1 e u , k + ∑ k ∑ j e z , k , j T Q k , j − 1 e z , k , j \min J(x,y)=\sum_ke_{u,k}^TR_k^{-1}e_{u,k}+\sum_k\sum_je_{z,k,j}^TQ_{k,j}^{-1}e_{z,k,j} minJ(x,y)=keu,kTRk1eu,k+kjez,k,jTQk,j1ez,k,j
此处,实际采用最小负对数求解最大似然估计问题,故而累乘在负对数形式下变为累加。

求解目标函数最小化为非线性最小二乘问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值