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