安装和测试
大神链接1: https://blog.youkuaiyun.com/qq_39247667/article/details/116707889
大神链接2: https://blog.youkuaiyun.com/hhz_999/article/details/120473659
下面是ORB_SLAM3官方代码库,里面也详细的给出了使用所需要安装的包,以及如何使用ORB_SLAM3进行测试的过程。
github一般不太好进,gitcode的网站是从github上克隆过来的,比较好进,且代码是一样的。
github:https://github.com/UZ-SLAMLab/ORB_SLAM3
gitcode:https://gitcode.net/mirrors/uz-slamlab/orb_slam3?utm_source=csdn_github_accelerator
安装
下面是官方文档中所需要的安装包列表。安装将根据官方列表进行,并添加一些没有提到的必要安装包。
C++11或者C++0x编译器的安装
1、安装gcc编译器
sudo apt-get install gcc
2、安装g++编译器
sudo apt-get install g++
3、安装build-essential编译器 :build-essential包含了LINUX下常用的一些编译工具
sudo apt-get install build-essential
4、安装cmake编译器
sudo apt-get install cmake
Pangolin安装
Pangolin的官方地址(有对Pangolin的安装和使用教程):
1、GitHub:https://github.com/stevenlovegrove/Pangolin
2、gitcode:https://gitcode.net/mirrors/stevenlovegrove/pangolin?utm_source=csdn_github_accelerator
1、安装依赖
下面是安装使用Pangolin的一些必要的安装包
sudo apt install libglew-dev
sudo apt install libpython2.7-dev
2、下载并安装
1、进入你想要下载Pangolin的文件下,下载Pangolin
git clone https://github.com/stevenlovegrove/Pangolin.git
2、进入你的Pangolin文件夹中
cd Pangolin
3、创建build文件夹,并进入build文件夹
mkdir build && cd build
4、使用cmake编译Pangolin整体
cmake ..
5、在使用make进行编译
make
6、将编译完成的Pangolin进行安装
sudo make install
opencv的安装
安装
按照官方文档给出的 opencv 的要求版本,我们应该安装 OpenCV 3.2.0 - 4.4.0。个人第一次安装的时候使用的版本为3.4.11,但在编译运行ORB_SLAM3的文件的时候,出现了opencv版本过低的错误,当时给出的错误为 opencv>=4.0.0。在第二次安装的时候,选用的为opencv4.5.0,仅供参考。
所以下面将给出如何安装opencv,并给出如何卸载opencv,以备不时之需。
opencv的官方地址: http://opencv.org/releases.html,在自己想要下载的版本中选择sources版本。
1、安装一些依赖包
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
可能出现的问题:无法定位 libjasper-dev
解决办法:
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
2、解压并进入文件夹
方法1、ubuntu可以直接右键对压缩包进行解压,然后右边选择在终端中打开。
方法2、使用终端进行解压
unzip opencv-4.5.0.zip
cd opencv-4.5.0
3、创建build文件夹,并进入
mkdir build
cd build
4、编译
编译的选择可以有两个:1、自动生成pencv4.pc文件;2、需要手动生成opencv4.pc文件;
1、自动生成
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON ..
make -j4
2、需要后面手动生成
cmake ..
make -j4
5、安装
sudo make install
6、将opencv的库添加到路径中
sudo gedit /etc/ld.so.conf.d/opencv.conf
打开文本编辑器后在末尾添加
/usr/local/lib
执行如下命令使得刚才的配置路径生效:
sudo ldconfig
配置bash
sudo gedit /etc/bash.bashrc
打开文本编辑器后在末尾追加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存,执行如下命令使得配置生效:
source /etc/bash.bashrc
sudo updatedb
输入下列命令查看opencv版本是否正确(自动生成的条件下,手动生成的跳转到9再回来)
pkg-config --modversion opencv4 #查看版本号
pkg-config --libs opencv4 #查看libs库
7、程序测试
opencv自带了可以测试的是否安装成功的程序,连接你的相机或者不连接也行(黑乎乎的图片)
cd ~/opencv-4.5.0/samples/cpp/example_cmake
编译运行程序
mkdir build
cd ./build
cmake ..
make
./opencv_example
8、安装之后,之后编译的时候出现opencv2/opencv.hpp not found
解决办法:直接建立一个软连接即可
sudo ln -s /usr/include/opencv4/opencv2 /usr/include/opencv2
9、手动生成opencv4.pc文件
1、进入 /usr/local/lib/pkgconfig下:
cd /usr/local/lib/pkgconfig
2、新建opencv4.pc
sudo gedit opencv4.pc
3、粘贴下面内容到其中,并保存:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
source /etc/bash.bashrc
prefix=/usr/local
exec_prefix=${prefix}
includedir=/usr/local/include/opencv4
libdir=/usr/local/lib
Name: OpenCV
Description: Open Source Computer Vision Library
Version: 4.5.0
Libs: -L${exec_prefix}/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir}
4、保存推出,在执行上面查看版本和程序测试的命令;
make 过程出现的问题
出现类似于:对‘TIFFReadDirectory@LIBTIFF_4.0’未定义的引用 很多行的错误;其原因时安装的libtiff库和opencv和PLC中调用的libtiff库版本与安装的版本不对应,
简单的解决办法如下:
在 cmake 时,添加:
cmake -D BUILD_TIFF=ON ..
再重新编译安装即可
make -j4
sudo make install
(非必要的部分–opencv的卸载)
1、首先你需要先进入安装 opencv的build目录下(就是你自己新建的build目录),进入build目录,执行下面的卸载命令:
sudo make uninstall
2、返回上一层目录,删除 build文件夹,命令如下:
cd ..
sudo rm -r build
3、执行完毕之后,你需要清空 /usr中有关 opencv的东西(命令如下),但是在你执行上一步 sudo make uninstall 有的已经删除 /usr下相关opencv。这个情况因电脑而异。
sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*
4、执行完毕之后,回到你的 home目录下,在执行下面两个命令即可:
chmod a+x /home/***/opencv
rm -r /home/***/opencv
上面的命令有的可能提醒文档不存在,或者已经删除,也是已经ok了。
Eigen 3安装
方法1:直接安装(提醒已经存在的话,代表已经安装过了)
sudo apt-get install libeigen3-dev
方法2:手动安装(后续在运行ORB-SLAM3时报错找不到Eigen 3可以使用此方法)
github 有个mirror,版本3.3.4 from 2017
下载
git clone https://github.com/eigenteam/eigen-git-mirror
#安装
cd eigen-git-mirror
mkdir build
cd build
cmake ..
sudo make install
安装后,头文件安装在 /usr/local/include/eigen3/ 中;
Boost安装
1、下载源码:
进入网址:http://www.boost.org/users/download/
针对ubuntu,我下载的是boost_1_79_0.tar.bz2文件。
2、进行解压
1、右键直接解压
2、命令解压
tar -xvf boost_1_79_0.tar.bz2
3、运行解压后生成的bootstrap.sh文件:
cd ./boost_1_63_0
./bootstrap.sh
4、然后使用b2工具进行安装:
sudo ./b2 install
安装完毕之后,头文件默认在/usr/local/include目录中,.a与.so文件在/usr/local/lib目录下。
DBoW2 and g2o 安装
这两个库在ORB-SLAM3的Thirdparty文件夹下,编译ORB-SLAM3的时候会自动编译,不需要我们手动编译。
ORB_SLAM3的编译和安装
1、从官方网站中下载源码,并进行解压(右键直接解压);github :源码 。 gitcode :源码
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git # 后面的链接换成gitcode也以
2、进入ORB_SLAM3文件夹;
cd ORB_SLAM3
3、编译
chmod +x build.sh
./build.sh
在编译的时候可能会出现很多的警告,最后不影响使用;
数据集测试
1、数据集下载
下载:链接
2、我下载如下图,并改名为MH01:
3、修改ORB_SLAM3中的示例代码:
我的MH01文件放在 /home/dataset/MH01,所以我要修改示例代码中的 “$pathDatasetEuroc”/MH01 为 /home/dataset/MH01 , 如下:
示例代码:
./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml "$pathDatasetEuroc"/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt dataset-MH01_mono
修改后的代码:
./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml /home/dataset/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt
运行 D345i 相机代码
1、准备工作
1、在usb3.0接口接入相机
1、查看ORB_SLAM3/Examples/Stereo-Inertial是否存在 stereo_inertial_realsense_D435i 这个文件,没有后缀的可执行文件。如果没有,编译 stereo_inertial_realsense_D435i.cc 文件,重现生成 stereo_inertial_realsense_D435i 可执行文件
2、运行
./Examples/Stereo-Inertial/stereo_inertial_realsense_D435i Vocabulary/ORBvoc.txt ./Examples/Stereo-Inertial/RealSense_D435i.yaml
3、问题
如果运行的为 Examples 下面的程序,而不是 Examples_old 中的程序,可能会出现 输入相机参数 不对的问题。
我的解决方法为:将 ./Examples/Stereo-Inertial/RealSense_D435i.yaml 替换为 ./Examples_old/Stereo-Inertial/RealSense_D435i.yaml
在安装使用的过程中,如果有任何问题,欢迎各位大神提出宝贵意见;