![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SLAM
niuniu924
这个作者很懒,什么都没留下…
展开
-
RGB-D SLAM学习总结(1)
第一讲 环境搭建最近跟着高博的博客《一起做RGB-D SLAM系列》将整个过程实现了一遍,下面是学习总结:博客:https://www.cnblogs.com/gaoxiang12/p/4633316.html作者源码:https://github.com/gaoxiang12/rgbd-slam-tutorial-gx自己代码:https://pan.baidu.com/s/1O8w...原创 2018-09-23 18:02:40 · 728 阅读 · 0 评论 -
RGB-D SLAM学习总结(2)
第二讲 图像到点云本讲将编写一个将图像转换成点云的程序,它是后期处理地图的基础。用到的图像:rgb.png depth.png 一副RGB彩图和一副对应的深度图 它们长下面这样。。。重要的备注:一定要从高博的源码里下载这两幅图,千万不要另存为!千万不要另存为!千万不要另存为!重要的事情说三遍!(虽然高博的博客里说可以。。。)最初做的时候我就是另存为,到后面去计算两帧之间相机...原创 2018-09-23 18:03:56 · 1535 阅读 · 0 评论 -
RGB-D SLAM学习总结(3)
第三讲 特征提取和匹配本讲主要实现图像的特征提取,图像间的匹配,以及相机转换矩阵的求解。高博的博客中提供了两帧图像做测试,就是这两帧图像。。。千万不要另存为。。。由于具体代码已经有详细介绍,这里只往slamBase里添加方法。另外在使用的slambase头文件里的方法时,一定也要像链接库的头文件一样将其链接到编译的可执行文件中,就像这样:ADD_EXECUTABLE(dete...原创 2018-09-23 18:06:58 · 477 阅读 · 0 评论 -
RGB-D SLAM学习总结(4)
第四讲 点云的拼接在这一讲里,使用上一讲的旋转和平移量拼接点云,形成更大的点云图。话不多说,直接上代码:在slamBase.h里添加两个方法:一个是将之前输出的相机运动的旋转量和平移量转换成转换矩阵,另一个用于拼接点云。// Eigen#include <Eigen/Core>#include <Eigen/Geometry>#include &l...原创 2018-09-23 21:00:32 · 608 阅读 · 0 评论 -
RGB-D SLAM学习总结(5)
第五讲 VO实现本讲基于前面的工作,实现一个简单的视觉里程计。首先在parameters.txt中添加相应的参数:# part 5 # 数据相关# 起始与终止索引start_index=1end_index=780# 数据所在目录rgb_dir=../data/rgb_png/rgb_extension=.pngdepth_dir=../data/depth_png/...原创 2018-09-23 21:00:41 · 243 阅读 · 0 评论 -
RGB-D SLAM学习总结(6)
第六讲 加入图优化上一讲的视觉里程计结果明显可以看到当相机重新转回来的时候,出现了明显的偏差。图优化就是为了改善每一次的匹配,不仅仅考虑两帧的信息,而要把所有整的信息都考虑进来,成为一个全slam问题(full slam)添加g2o的依赖,在CMakeLists.txt里加入:# 添加g2o的依赖# 因为g2o不是常用库,要添加它的findg2o.cmake文件LIST(APPE...原创 2018-09-24 17:39:33 · 340 阅读 · 0 评论 -
RGB-D SLAM学习总结(7)
第七讲 回环检测本讲主要添加了关键帧的选取和回环检测。关键帧的选取:通过估计参看帧与新帧之间的运动来判断,运动过大,可能是计算错误,丢弃该帧; 若匹配太少,说明该帧图像质量不高,丢弃; ,说明离参考帧(前一帧)太近,丢弃。slam程序的基本流程,以下为伪码:初始化关键帧序列:F,并将第一帧f0放入F; 对于新来的一帧I,判断是否为关键帧; 进入回环检测程序:近距离回环:匹...原创 2018-09-24 19:29:54 · 987 阅读 · 0 评论