RTAB-Map学习和测试详解

RTAB-Map 详解

我的所有博客都偏项目研究或者实际代码测试使用,算法原理暂时不在这里讨论。

一. 总体阐述

  • 1. 基于图优化的SLAM方法 – rtabmap_ros

在这里插入图片描述

  • 2. odometry是一个额外的输入模块

    意味着里程计可以使用任意形式和任意类型的数据,与rtabmap想链接。

  • 3. 在传感器同步之后,STM模块将会创建一个节点记忆视觉里程计位姿

    STM:( Short-Term Memory ,短期记忆模块)传感器的原始数据和额外有用的信息将会为其他模块提供服务, 比如回环和全局地图。

  • 4. 内存管理模块:WM(Working Memory)+LTM( Long-Term Memory)

    WM:工作内存
    LTM: 长期或静态内存
    当一个节点被放置到LTM时,它在WM中将不再可用。
    “Rtabmap/TimeThr” – rtabmap更新时间超过这个限值时,WM中一些节点将会放置到LTM中以减小更新时间。
    “Rtabmap/MemoryThr” – WM能够支持最大数量节点限值。

而要确定要传输到LTM的节点,加权机制会识别比其他节点更重要的位置,使用启发式方法,例如观察到的位置时间越长,它就越重要,因此应该留在WM中。

  • 5. 回环检测

    当在WM中检测到回环时,它会从LTM中提取邻近节点的数据,以检测更多的闭环。

二、核心功能(节选)和核心参数

  • 1. 视觉里程计

	F2M: Frame-To-Map	//将帧与过去的局部地图进行匹配
	F2F: Frame-To-Frame  //将帧与上一帧进行匹配

在这里插入图片描述

  • 2. 循环回环检测

    词袋模型: STM从图像中提取视觉特征(STFT, SURF, ORB 等), 然后将其量化成"视觉词典",


	"核心参数"
	Kp/MaxFeatures: 特征点的数量
	Mem/STMSize:STM内存的尺寸
	Rtabmap/LoopThr: 
		a loop closure hypothesis reaches the fixed threshold, 
		a loop closure is detected and transformation is computed.
			
	RGBD/ProximityMaxGraphDepth: 
	/*	如果里程计漂移比较大,这个值应该较小,如果里程计漂移不大或者map地图更新速率较高,这个值应该设置较大。 */
  • 3. 后端优化 – 图优化

		TORO:
		g2o:
		GTSAM(未安装)

RGBD/OptimizeMaxError: 误差限制,若为0则可能将相似的地方进行了错误闭环,可适当调大该数值。
  • 4. 全局地图调整

在这里插入图片描述

	octomap: Depth change into 14 for test !! ## 测试之后发现其太过稀疏

附:RTAB-Map 中文解析


版权声明:本文为qq_29797957原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。