ORB_SLAM2_PointCloud以 ORB_SLAM2为基础,利用RGB-D相机进行稠密地图构建,经实验测试,跑出来的效果还是相当不错的。先放一张实际运行效果图,其中由于我对代码做了修改,将部分稠密地图放在了键帧+地图点显示的Mapdrawer窗口中,所以与大家跑出来的不太一样,不用担心。
下面介绍以下具体的安装配置流程:
https://gitee.com/cenruping/ORB_SLAM2_PointCloud
官方网站下载源码
官方建议用Eigen3.1.0,但是自己安装了一个Eigen3.3.90,也能用,只是后续需要再CMakeLists.txt中改一下
解压文件,拷贝到/home文件夹下安装:
mkdir build
cd build
cmake ..
sudo make install
移动头文件:
因为eigen3 被默认安装到了usr/local/include里了(或者是usr/include里,这两个都差不多,都是系统默认的路径),在很多程序中include时经常使用#include
输入下列命令移动头文件:
sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include
sudo cp -r /usr/local/include/eigen3 /usr/include
查看已安装的Eigen版本:
sudo gedit /usr/include/eigen3/Eigen/src/Core/util/Macros.h
cd ORB_SLAM2_PointCloud/Thirdparty
mkdir build
cd build
cmake ..
make -j
ORB-SLAM2依赖的库,跑代码前要安装上
准备工作:
sudo apt install git
sudo apt install libglew-dev
sudo apt install cmake
sudo apt install libboost-dev libboost-thread-dev libboost-filesystem-dev
下载源码安装:
git clone --depth=1 https://github.com/stevenlovegrove/Pangolin
mkdir -p build && cd build
cmake ..
make -j12 && sudo make install
## 安装PCL:
官网中说建议用PCL1.8,事实证明PCL1.7也可以
```cpp
sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
sudo apt-get update
sudo apt-get install libpcl-dev
此时安装的应该是pcl1.7,因此需要再CmakeLists.txt中做如下修改:
cd ORB_SLAM2_PointCloud
sh build.sh
此时会出现一系列问题:
解决办法:
在ORB_SLAM2_PointCloud/CmakeList.txt中的add_library项中加入src/System.cc项,这个本来就应该有的,可能作者当时笔误,将这一项给删了。
遇到
No rule to make target '/usr/lib/x86_64-linux-gnu/libproj.so', needed by '../lib/libORB_SLAM2.so
解决办法:
sudo apt-get install libproj-dev
sudo ln -s /usr/lib/x86_64-linux-gnu/libproj.so.9 /usr/lib/x86_64-linux-gnu/libproj.so
遇到
/usr/bin/ld: 找不到 -lvtkproj4
解决办法:在CMakeLists.txt中加上以下内容:
list(REMOVE_ITEM PCL_LIBRARIES "vtkproj4")
此处与原来ORB_SLAM2的命令相同
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml ~/dataset/rgbd_dataset_freiburg1_room/ ~/dataset/rgbd_dataset_freiburg1_room/associate.txt
参考博客:
Ubuntu 编译ORB_SLAM2_modified
ORB-SLAM2 在线构建稠密点云(一)