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 //用来保存点云的
//在viewer函数里修改,经过调试发现滤波模块有问题,遂直接把showCloud函数提前,大家有精力可以调试一下滤波这里的数据传输
for ( size_t i=lastKeyframeSize; iswap( *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