初识slam

叨逼叨

最近开始看高翔的slam视觉14讲了,抽周末的时间去看看。
看的目的第一个小目标是是希望可以尽快看懂公司core team的doc和代码,然后on-call的时候,可以帮他们debug。然后slam是其中的基础。

SLAM的定义及框架

定义

Simultaneous localization and mapping。从字面上看,就是实时的定位和制图。但是对于高精地图公司而言,这两步是分开的,mapping不需要实时,是off-line,这个难度会比较实时的要求要降低一些了。但是定位还是需要实时的。

框架

传感器

传感器信息读取。在视觉SLAM 中主要为相机图像信息的读取和预处理。如果在机器人中,还可能有码盘、惯性传感器等信息的读取和同步

视觉里程计(Visual Odometry, VO)

视觉里程计任务是估算相邻图像间相机的运动,以及局部地图的样子。VO 又称为前端(Front End).

后端优化(Optimization)

后端接受不同时刻视觉里程计测量的相机位姿,以及回
环检测的信息,对它们进行优化,得到全局一致的轨迹和地图。由于接在VO 之后,又称为后端(Back End).

回环检测(Loop Closing)

回环检测判断机器人是否曾经到达过先前的位置。如果检测到回环,它会把信息提供给后端进行处理。

其实感觉一般robotics里面涉及的数据量不是很大,上面的这些部分在无人车高精地图的构建里面里面的具体算法实现可能就需要考虑处理大规模的数据框架下的实现了,比如hadoop, spark这些。

SLAM的数学表述