ORBSLAM2_with_pointcloud_map 安装,点云地图输出并保存

1. 首先从github上下载代码

git clone https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map.git

 

2.执行解压命令 

unzip orbslam2_modified.zip 

解压命令后出现是否替换选项我选的A

3. 由于eigen库,opencv库,Pangolin库都已装好,所以接下来直接到进到/g2o_with_orbslam2/目录下,

mkdir build
cd build
cmake ..
make
sudo make install  //需要安装一下,不然后面会报错

如果你的eigen库用的不是3.1~3.2在编译过程中会遇到很多错误,而且兜兜转转最后还是要更换版本,可以通过命令

pkg-config --modversion eigen3

查看正在使用的eigen版本。

4. 如果编译并安装成功进入 ORB_SLAM2_modified 文件夹,使用命令

pkg-config --modversion opencv

查看opencv版本,CMakeLists.txt里默认为2.4.3,如果不更改cmake会报错

  Could not find a configuration file for package "OpenCV" that is compatible
  with requested version "2.4.3".

  The following configuration files were considered but not accepted:

    /usr/local/share/OpenCV/OpenCVConfig.cmake, version: 3.4.1

所以更改CMakeLists.txt 里

find_package(OpenCV 2.4.3 REQUIRED)

为你对应版本

5.安装pcl库。可以通过源码安装,也可以通过官方预编译版本安装(推荐),对于高博改编版本的ORBSLAM由于,使用的是eigen库是3.1~3.2,如果通过源码可能会安装成1.9*的版本,会和eigen库不兼容,导致安装不成功,我也试过安装pcl1.8*,编译基本没有障碍,但是,后面会和高博的代码有冲突,引起未定义行为。所以推荐安装官方预编译版本

sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl  
sudo apt-get update  
sudo apt-get install libpcl-dev

6. 记得把ORBvoc.txt.tar.gz文件解压到/Vocabulary/文件夹下

7.修改build.sh 权限,

chmod +x build.sh

执行编译

8. 编译过程中遇到了一个莫名其妙的错误

make[2]: *** No rule to make target '/opt/ros/kinetic/lib/librealsense.so', needed by '../lib/libORB_SLAM2.so'

折磨了一天,分析,因为我没有用到realsense,所以一直以为是路径依赖错误,检查路径,把编译好的librealsense 文件加到该文件夹还是有问题,于是,继续在网上找方案,发现了一条类似的错误跟pangolin有关,于是从新编译了pangolin,并且执行了sudo make install, 问题遂解决。但是最终还是没有实时输出点云图,于是退而求其次,先保存点云图。对于保存点云地图可参考,视觉SLAM14讲 第五章,点云拼接,加上相应的头文件,或者高博的博客,一起做SLAM系列,然后重新编译就行了。有疑问的看下便我改好的,然后用pcl_viewer查看,说明数据是没问题的,继续折腾。

安装pcl_viewers

sudo apt-get install pcl-tools

未完待续……………………

终于经过不断的调试,可是实时输出点云地图,并且可以保存点云地图

在src文件夹下打开 pointcloudmapping.cc 源文件

ORBSLAM2_with_pointcloud_map/ORB_SLAM2_modified/src$ vi pointcloudmapping.cc

//添加头文件
#include <pcl/io/pcd_io.h> //用来保存点云的

//在viewer函数里修改,经过调试发现滤波模块有问题,遂直接把showCloud函数提前,大家有精力可以调试一下滤波这里的数据传输

       for ( size_t i=lastKeyframeSize; i<N ; i++ )
        {
            PointCloud::Ptr p = generatePointCloud( keyframes[i], colorImgs[i], depthImgs[i] );
            *globalMap += *p;
            pcl::io::savePCDFileBinary("map.pcd", *globalMap);
        }
        viewer.showCloud( globalMap );
        PointCloud::Ptr tmp(new PointCloud());
        voxel.setInputCloud( globalMap );
        voxel.filter( *tmp );
        //pcl::io::savePCDFile("result.pcd", *tmp );
        //globalMap->swap( *tmp );

        //viewer.showCloud( tmp );

参考:

1.pcl安装

https://blog.csdn.net/dantengc/article/details/78446600

https://blog.csdn.net/dantengc/article/details/78446600

https://blog.csdn.net/zc634442382/article/details/85101342

2.ORBSLAM2_with_pointcloud_map 安装

https://blog.csdn.net/oliongs/article/details/79696376

https://blog.csdn.net/LOVE1055259415/article/details/79903571

3.点云地图实时及保存

https://www.cnblogs.com/gaoxiang12/p/4669490.html

 

  • 6
    点赞
  • 120
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值