本章说
题头诗:
重走SLAM路,之前学的全忘光
今日重拾起,痛定思痛写总结
长征路漫漫,君当切实行
第二讲主要说了两个内容,一是一个完整的、常规的SLAM有哪些部件组成;二是SLAM的数学描述是什么。两者之间有一定的因果关系,第二点是基础,它说明了一个SLAM系统在数学上是可以成立的;第一点是第二点的工程实现,仅一个数学模型是无法求解的,其必将面临着非常多的工程问题,而第一点给出的常规结构,是在多方验证下证明可行的方案。
说内容
先说第二点,SLAM的数学模型怎么理解?
一个完整的数学模型必备的前期准备是参数符号,这里我们准备了四类参数:
- 机器人在 k k k时刻的位置 x k x_k xk,以及 k k k时刻的运动传感器的读数 u k u_k uk
- 第 j j j个路标点的位置 y j y_j yj
- 第 j j j个路标点在 k k k时刻被机器人观测到的信息 z k j z_{kj} zkj
- 机器人位置记录的扰动 w k w_k wk和观测信息的扰动 v k j v_{kj} vkj
定义了上面的四类参数,我们可以列出机器人的运动方程和观测方程:
{
x
k
=
f
(
x
k
−
1
,
u
k
,
w
k
)
z
k
j
=
h
(
y
j
,
x
k
,
v
k
j
)
\left\{ \begin{aligned} x_k & = & \ f(x_{k-1},u_k,w_k)\\ z_{kj} & = & \ h(y_j,x_k,v_{kj})\\ \end{aligned} \right.
{xkzkj== f(xk−1,uk,wk) h(yj,xk,vkj)
数学模型的优势是很好的说明了SLAM的可行性,但我们对运动方程和观测方程涉及到的函数
f
f
f和
h
h
h仅做了简单的描述性解释,事实上,运动方程关联着旋转矩阵、变换矩阵、李群、李代数等;观测方程关联着相机模型、相机内参、相机外参等。而从该方程组中求解误差最小的一组
x
k
x_k
xk与
y
j
y_j
yj将关联着非线性最优化的相关内容。所以,该数学模型是第一部分数学基础的总览。
再说说第一点,SLAM工程的实现
有了数学模型其实已经可以写代码求解了,但是SLAM追求实时性,所以有一个优秀的工程结构才可以保证SLAM的顺利运行,而目前广泛认可的SLAM结构当属下图:
结合数学模型,我们来说明各部分在做什么:
- 前端视觉里程计通过特征匹配计算了相机在各时刻的位姿,即 x k x_k xk
- 后端非线性优化接收 x k x_k xk信息,以及回环检测的信息,并做全局一致性优化(或许是误差最小?这部分还没有学到),相当于求解最小二乘解
第二讲的内容就先说到这吧,由于上次学习只学到了视觉里程计1,所以对于后端怎么做的其实还有点迷糊,等重走完并学习到后端后,再回来做补充吧