RTABMAP-学习探路

1.论文:RTAB‐Map as an open‐source lidar and visual simultaneous localization and mapping library for large‐scale and long‐term
online operation

2.

  • 马尔可夫链:

致敬红猴子,相当通俗。

总结:转移概率矩阵P,明天的状态只与今天有关,状态空间

  • 粒子滤波:原文链接:
  • https://www.zhihu.com/search?type=content&q=%E7%B2%92%E5%AD%90%E6%BB%A4%E6%B3%A2

用粒子点来表示小车的位置,其实粒子滤波就是用这三十个小车的均值和方差来大致描述运动方程总体的均值和方差

三步走:

(1)预测:预测的位置=小车可能位置+小车运动+噪声(随机数)

(2)更新:测量结果可以用随机变量描述

我们怎么把这个测量和那一堆现在有的,经过prediction的粒子的信息融合在一起呢?

是通过之前那个权重值。按照测量的概率分布来重新分配权重。高斯分布的话当然是离中心点越近权重越大啦。可以用概率的方式求权值,权重加在一起大于1,要进行归一化处理。其实粒子滤波就是用几个小车的均值和方差来大致描述运动方程总体的均值和方差。最后一点,粒子转移只是对运动方程的估计,而重采样才是将观测信息融合后的结果。

RTABMAP-学习探路_第1张图片

(3)重新采样:???

RTABMAP架构:

1. 基于图优化的SLAM方法 – rtabmap_rosRTABMAP-学习探路_第2张图片

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  //将帧与上一帧进行匹配

RTABMAP-学习探路_第3张图片

  • 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. 全局地图调整

RTABMAP-学习探路_第4张图片

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

 

 

 

你可能感兴趣的:(RTABMAP-学习探路)