ANATOMY OF A MODERN SLAM SYSTEM
SLAM SYSTEM 包含
- 前端:提取传感器数据
- 后端: 通过前端提取的数据,执行判断。
SLAM 的后端目前被认为是一个MAP(最大后验概率)问题,并且通常以因子图表示。假设我们评估未知变量
X ,典型的该变量代表了机器人的轨迹(离散的位姿)和环境的路标点,我们给了测量变量
Z={Zk=1...m} ,则问题可以表达为
Zk=hk(Xk)+ϵXk∈X(1)
在MAP评估中我们通过计算
X∗,即
p(X∣Z)的最大后验,取值评估
X.依据贝叶斯理论得此等式,相当于给定测量值,我们估计最有可能的位姿。式中p(X)是先验,因无先验将其置为常量。
X∗=Xargmaxp(X∣Z)=Xargmaxp(Z∣X)p(X)(2)
在这种情况下MAP问题变成了最大似然估计问题。假设评估
Z之间彼此独立,噪声项的影响是不相关的则
X∗=Xargmaxp(X)k=1∏mp(Zk∣X)=p(x)k=1∏mp(Zk∣Xk)(3)
我们注意到通过观察右面的式子我们发现
Zk只与
Xk的子集有关。式3可以用因子图表示,用因子图有两个优点,一是直观,二是复杂问题更容易表达。为了去用更明确的表示,假设噪声
ϵk为零均值高斯噪声协方差为
Ωk,
∣∣e∣∣Ω2=eTΩe,,则(3)式变为
p(Zk∣Xk)∝exp(−21∣∣hk(Xk)−Zk∣∣Ωk2)(4)
先验可以表示为
p(X)∝exp(−21∣∣h0(X)−Z0∣∣Ω02(5)
因为最大后验概率等价于其最小付对数,所以MAP最终变为
X∗=Xargmin−log(p(X)k=1∏mp(Zk∣Xk))=Xargmink=0∑m∣∣hk(Xk)−Zk∣∣Ωk2(6)
因此变成了最小二乘问题,更多情况下
hk(.) 是个非线性函数,在公式(6)中我们假设为噪声为正态分布,其他的分布将会导致不同的还加函数,如是拉普拉斯分布将是
l1norm,为了增加鲁棒性,通常使用
l2norm.(Huber or Tukey loss).
CV专家可能会注意到,公式(6)和SFM中BA有点像,的确两者都源于最大后验公式。然而有两个关键点是的SLAM独特。公式(6)不像BA被投影几何限制,而实包含了许多的传感器模型,例如惯性、轮式等。例如在雷达建图通常是限制相对位姿对于不同视点的相应,而对于直接法视觉SLAM则是对同一位置不同视角的像素强度差异进行约束。不同于BA的第二点是(6)是增量式求解(solved incrementally)的,对于机器人每个时间步的移动的测量都是可用的。
公式(6) 的最小化通常是连续线性化解决,如高斯牛顿(Gauss Newton)、列文伯格-马夸尔特(Levenberg-Marquardt)(更现代的方法是通过凸优化或拉格朗日对偶求解)高斯牛顿法通过给定初始值
χ^处理迭代问题,每次迭代GN近似最小化公式(6)为
δχ∗=δχargmink=0∑m∣∣Akδχ−bk∣∣Ωk2=δχargmin∣∣Aδχ−b∣∣Ω2(7)
这里
δχ是在线性化点
χ^一个修正, 这里通过不断的改变
δ, 直到找到使误差最小的
δ∗,
Ak=∂χ∂hk(χ) 是评估函数
h(.)对于
χ 的雅可比,其中
bk=zk−hk(χk^)是在
χ^的残差。
优化矫正
δχ∗ 的最小化可以通过公式(7)的近似形式计算
δχ∗=(ATΩA)−1ATΩb(8)
在每次迭代线性化点通过
χ^←χ^+δχ∗进行更新。这里(
ATΩA)是指代高斯的近似。
到目前为止,我们假设
χ属于向量空间,主这样方便
χ^+δχ∗的定义。当
χ包含的变量属于光滑的流形,GN方法的结构是保持不变的。usual sum 被更合适的映射替代 例如,但是
χ^+δχ∗被
χ^⨁δχ∗替代。
δχ∗被定义为流形在
χ^点的正切空间。
现代SLAM求解器关键点是(8)中的雅可比矩阵A是稀疏的,使得可以用快速线性求解器
δχ∗,并且可以增量求解器或在线求解器。当下的SLAM库包括(GTSAM, g2o, Ceres, iSAM 和SLAM++)。都可以在很短的时间求解成千上万的变量。
SLAM公式描述到现在基本上指的是最大后验概率评估,因子图优化,图-SLAM,全平滑或SAM。一个流行的变体是位姿图优化。被评估的变量是机器人轨迹采样点,并且每个因子约束一对位姿。
MAP评估方法已经被证明更准确和有效超过原始的基于滤波的方法。但目前也有一些基于滤波的SLAM方法获得了state-of-the-art的效果。当线性化点更准确时,基于EKF的方法和优化的方法差距也会变的更小。从接下来的讨论,可以发现基于MAP的评估,通常需要经过预处理,因此,该部分所讨论的一般被认为是后端。