RTAB-Map学习和测试详解
RTAB-Map 详解
我的所有博客都偏项目研究或者实际代码测试使用,算法原理暂时不在这里讨论。
一. 总体阐述
-
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中。
二、核心功能(节选)和核心参数
F2M: Frame-To-Map //将帧与过去的局部地图进行匹配
F2F: Frame-To-Frame //将帧与上一帧进行匹配
"核心参数"
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地图更新速率较高,这个值应该设置较大。 */
TORO:
g2o:
GTSAM(未安装):
RGBD/OptimizeMaxError: 误差限制,若为0则可能将相似的地方进行了错误闭环,可适当调大该数值。
octomap: Depth change into 14 for test !! ## 测试之后发现其太过稀疏
附:RTAB-Map 中文解析