概述
在 RtabMap 中代码结构与 SLAM 技术的核心概念是相同的,主要分为前端和后端,对应到代码则是里程计和地图闭环与优化。
前端 —> 里程计(Odometry):其目的在于利用提取的特征计算连续帧之间的变换,根据不同的传感器还可以分为:RGBD里程计、立体相机里程计、点云ICP里程计。
后端 —> 闭环与地图优化:这里包含两部分,闭环检测和地图优化。
- 闭环检测(Closed Loop)是在扫描中识别到旧场景,然后将当前帧与之前帧做闭环地图优化,这能够显著地减小累积误差是得地图更加精准。
- 地图优化(Optimizer)包括了局部优化与全局优化。局部优化是在新的关键帧加入到优化模型时,在其附近进行一次优化。全局优化则是所有的关键帧(除了第一帧)参与优化。
除此之外,工程中还需要包含更多细节处理,例如:传感器同步、信号转换、地图组装、可视化等。
里程计(Odometry)
里程计的核心目的在于解算出前后帧位姿转换量,在多年前算力匮乏的时候,通常采用GPS、光电编码盘、IMU等传感器单独或融合的方式来作为里程计。当前研究应用中往往加入视觉或激光来增强里程计的精确度和鲁棒性。
视觉里程计(visual_odometry)
这里的视觉不包括单目视觉,因为该方法目前还不是很稳定,并且难以尺度化,工程上不好应用。将会介绍的是 RGBD相机 和 双目相机。(深度相机列表)
RGBD里程计(rgbd_odometry)
使用 RGBD 图像,从 RGB 图像中提取的视觉特征及其来自深度图像的深度信息,基于 RGB 图像之间的特征对应关系,计算连续帧之间的变换。
立体相机里程计(stereo_odometry)
使用立体图像,使用从左侧图像中提取的视觉特征计算里程计,并通过在右侧图像上找到相同的特征来计算其深度信息。
点云ICP里程计(icp_odometry)
使用激光或深度图产生的点云,通过迭代最近点 (ICP) 配准计算连续帧之间的变换。
评论区