安装
由于ORB-SLAM2在构建的时候只在地图中保留了特征点,对于使用RGB-D相机开发者而言,更希望得到一个点云地图,我们只需要单独添加一个线程用于维护点云地图,将ORB-SLAM2生成的关键帧传入点云地图构建线程.利用传入关键帧来生成点云地图就行.
这个工作高博已经完成了,但是运行还是编译有问题,这里发现另外一个版本.
首先下载如下链接的源码
https://gitee.com/cenruping/ORB_SLAM2_PointCloud
按照ORB_SLAM2编译过程编译即可.
另外,打开pointcloudmapping.cc
,把第78行
点云保存路径提前修改为个人所需路径
以后再编译.
踩坑
error: #error PCL requires C++14 or above.....
在CMakeLists.txt
添加如下即可
ADD_COMPILE_OPTIONS(-std=c++11 )
ADD_COMPILE_OPTIONS(-std=c++14 )
set( CMAKE_CXX_FLAGS "-std=c++11 -O3" )
出现如下报错
/usr/include/c++/9/bits/stl_map.h:122:21: error: static assertion failed: std::map must have the same value_type as its allocator
static_assert(is_same::value,
打开LoopClosing.h
,将
typedef map,
Eigen::aligned_allocator<:pair keyframe g2o::sim3> > > KeyFrameAndPose;
改为
typedef map,
Eigen::aligned_allocator<:pair g2o::sim3> > > KeyFrameAndPose;
测试结果
稠密点云图
pcl_viewer resultPointCloudFile.pcd
效果: