记录一下自己安装ORBSLAM2_with_pointcloudmap的全过程
git安装:sudo apt-get install git
g++安装:sudo apt-get install g++
CMake安装:sudo apt-get install cmake
安装gcc:sudo apt-get install gcc
安装依赖:
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
在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
先安装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
推荐安装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的
下载代码:
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
在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