ubuntu18.04下配置、编译安装ORBSLAM2_with_pointcloudmap

记录一下自己安装ORBSLAM2_with_pointcloudmap的全过程

1、安装gcc、g++、git、cmake

git安装:sudo apt-get install git
g++安装:sudo apt-get install g++
CMake安装:sudo apt-get install cmake
安装gcc:sudo apt-get install gcc

2、安装Pangolin

安装依赖:
sudo apt-get install libglew-dev  libboost-dev libboost-thread-dev libboost-filesystem-dev cmake
下载、编译和安装:
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
make -j8
sudo make install

3、安装eigen

在Eigen源码库(https://gitlab.com/libeigen/eigen/-/releases)上选择自己需要的版本(一般推荐3.1或3.2版本)下载后解压并进入文件夹根目录下:
mkdir build
cd build
cmake ..
make
sudo make install 

查看eigen版本指令:

pkg-config --modversion eigen3

输入下列命令移动头文件(具体原因参考其他博文):

sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include 
sudo cp -r /usr/local/include/eigen3 /usr/include 

4、安装opencv

先安装qt:

sudo apt-get install libqglviewer-dev-qt5

否则,cmake可能报错:

 Adjust CMAKE_MODULE_PATH to find FindQt5Core.cmake or set Qt5Core_DIR to the directory containing a CMake configuration file for Qt5Core.  The file will have one of the following names:
  Qt5CoreConfig.cmake
  qt5core-config.cmake

https://opencv.org/releases.html下载源码,我下载的是opncv3.4.6,并解压将解压文件放在主目录下,编译安装:

cd /opencv-3.4.6
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
sudo make
sudo make install 

之前我是直接cmake…,结果后面运行ORBSLAM2_with_pointcloudmap报错:
terminate called after throwing an instance of ‘cv::Exception’
what(): OpenCV(3.4.6) /home/qc/opencv-3.4.6/modules/highgui/src/window.cpp:617: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function ‘cvNamedWindow’

参考:https://blog.csdn.net/weixin_42156097/article/details/103908662

配置OpenCV的编译环境,目的是让系统找到OpenCV的库的路径打开编写一个空白的文件opencv.conf:

sudo gedit /etc/ld.so.conf.d/opencv.conf 

在opencv.conf中添加如下内容:

/usr/local/lib  

保存并关闭文件,使刚配置路径生效:

sudo ldconfig  

打开bash文件,配置bash:

sudo gedit /etc/bash.bashrc  
在打开的bash.bashrc的最末尾添加如下代码:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH  

保存关闭文件,使刚才的配置生效:

source /etc/bash.bashrc  

5、安装pcl

推荐安装1.7,1.8版本,有大佬说1.8版本后面会和高博的代码有冲突,我装的是1.8的,不知道为什么可以运行成功…

刚开始参考 ppa安装方法,结果第一步就报错:

sudo add-apt-repository ppa: ppa:v-launchpad-jochen-sprickerhof-de/pcl 
E: 仓库 “http://ppa.launchpad.net/v-launchpad-jochen-sprickerhof-de/pcl/ubuntu bionic Release” 没有 Release 文件

我是直接运行这条指令进行安装:

sudo apt-get install libpcl-dev pcl-tools

在/usr/include查看版本是1.8的

6、编译ORBSLAM2_with_pointcloudmap

下载代码:

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

执行解压命令 :

unzip orbslam2_modified.zip 

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

修改 g2o_with_orbslam2/CMakeLists.txt ,注释如下代码:
#shall we build the examples
#SET(G2O_BUILD_EXAMPLES ON CACHE BOOL “Build g2o examples”)
#IF(G2O_BUILD_EXAMPLES)
#MESSAGE(STATUS “Compiling g2o examples”)
#ENDIF(G2O_BUILD_EXAMPLES)

修改 g2o_with_orbslam2/g2o/CMakeLists.txt ,注释如下代码:

#Examples
#IF(G2O_BUILD_EXAMPLES)
#ADD_SUBDIRECTORY(examples)
#ENDIF(G2O_BUILD_EXAMPLES)

修改 g2o_with_orbslam2/g2o/types/slam2d/edge_se2_pointxy_bearing.cpp

将
t.setRotation(t.rotation().angle()+_measurement);
改为
t.setRotation((Eigen::Rotation2Dd)(t.rotation().angle()+_measurement));

直接到进到/g2o_with_orbslam2/目录下:

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j8
sudo make install

将下载好的ORB_SLAM2_modified/Thirdparty/DBoW2文件中的build文件夹先删除,然后进行编译:

cd ORB_SLAM2_modified/Thirdparty/DBoW2
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j8

编译成功后,会在/lib目录下生成 libDBoW2.so,将该库文件拷贝到系统目录下:

sudo cp ../lib/libDBoW2.so /usr/local/lib

修改一下ORB_SLAM2_modified下的CMakeLists下的opencv版本,原来指定的opencv2.4.3,可以根据自己的版本调整,也可以直接把2.4.3删掉;有博主说要注意这里 的opencv版本要和刚刚DBoW2的opencv版本一致。我都修改成了3.4.6,eigen、pcl版本我暂不修改。

还需要下载 ORBvoc.txt.tar.gz 并解压到ORB_SLAM2_modified/Vocabulary 下(把ORB_SLAM2/Vocabulary下的ORBoc.txt复制过来就ok了)

编译ORB_SLAM2_modified:

cd ORB_SLAM2_modified
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j8

7、运行

在ORB_SLAM2_modified中打开终端,下载数据集rgbd_dataset_freiburg1_room,并放在该目录文件下,打开终端运行:

 ./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml ./rgbd_dataset_freiburg1_room Examples/RGB-D/associations/fr1_room.txt

参考博文:

https://blog.csdn.net/weixin_44694952/article/details/108247118
https://blog.csdn.net/qq_42938987/article/details/106850376#t1
https://blog.csdn.net/qq_27399933/article/details/107655060
https://blog.csdn.net/xuesengxinyi/article/details/93469079
https://blog.csdn.net/qq_44830040/article/details/105592527
https://blog.csdn.net/suyunzzz/article/details/102582886

你可能感兴趣的:(slam,ubuntu)