ubuntu18.04如何从头搭建一套ORB_SLAM3的框架,并在测试集和自己的D345i相机上进行测试。


大神链接1: https://blog.csdn.net/qq_39247667/article/details/116707889
大神链接2: https://blog.csdn.net/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

在安装使用的过程中,如果有任何问题,欢迎各位大神提出宝贵意见;

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值