项目地址:GitHub - UZ-SLAMLab/ORB_SLAM3: ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM

(一)ORB-SLAM3安装

Ubuntu20.04

ROS melodic

Pangolin 0.6

Open CV 3.2.0

Eigen 3

默认已经装好了Ubuntu18.04和ROS melodic

注:ROS安装推荐鱼香ros一键安装:

wget http://fishros.com/install -O fishros && . fishros

记得顺便安装下rosdep,后续编译ORB-SLAM3的ROS版会有用

1.安装pangolin 0.6

很多教程安装的为0.5,我测试的为0.6稳定版也可以

pangolin0.6链接:https://github.com/stevenlovegrove/Pangolin/archive/refs/tags/v0.6.zip

(1)安装依赖

sudo apt-get install libglew-dev libboost-dev libboost-thread-dev libboost-filesystem-dev 
sudo apt-get install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libpng-dev

(2)编译安装

cd pangolin
mkdir build
cd build
cmake -DCPP11_NO_BOOST=1 ..
make -j
sudo make install

(3)测试结果

cd cd ../examples/HelloPangolin
mkdir build
cd build
cmake ..
make
sudo make install

安装成功

2.OpenCV安装

作用:ORB-SLAM3在ROS的cv-bridge数据格式转换和C++的库。

(1)安装cv-bridge

sudo apt-get install libopencv-dev
sudo apt-get install ros-noetic-cv-bridge

(2)安装OpenCV

注:ROS melodic 自带Open CV 3.2

       ROS  noetic 自带Open CV 4.2

可使用下面的指令查看opencv版本

pkg-config --modversion opencv  
pkg-config --modversion opencv4 #opencv4

安装依赖

sudo apt-get install build-essential cmake git 
sudo apt-get install libgtk2.0-dev pkg-config libavcodec-dev
sudo apt-get install libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy python3-dev python3-numpy
sudo apt-get install libtbb2 libtbb-dev libjasper-dev libdc1394-22-dev
sudo apt-get install libjpeg-dev libpng-dev libtiff-dev

注:E:无法定位libjasper-dev 问题

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

下列步骤是可选择的,若ROS自带的opencv可以满足编译要求,则不需要执行以下步骤,本次项目中opencv3.2可以满足编译需求。

#################################################################

选装:将下载好的OpenCV解压到你的目录下,开始编译

下载地址:https://opencv.org/releases/

cd 下载的opencv目录下
mkdir build 
cd build 
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
#电脑性能差可去掉-j4,性能很好可增加数字(线程)
make -j4
sudo make install

编译存在的iccicv问题

下载地址:https://gitee.com/tiange7/opencv_install_resource

下载完将压缩文件放入/3rdparty/ippicv/downloads/linux.../

添加环境变量

(1)添加环境路径

配置OpenCV变量,编辑文件 /etc/ld.so.conf.d/opencv.conf(如果没有就会自动创建):

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

然后添加 OpenCV4 的 lib 路径:

/usr/local/opencv4/lib

保存退出,执行

sudo ldconfig

编辑 ~/.bashrc 文件:

sudo gedit ~/.bashrc

最后添加:

export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/usr/local/opencv4/lib/pkgconfig
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:./usr/local/opencv4/lib

保存退出

刷新环境变量

source ~/.bashrc

查看opencv版本

pkg-config --modversion opencv  
pkg-config --modversion opencv4 #opencv4

3.Eigen库

命令安装

sudo apt-get install libeigen3-dev

(二)ORB-SLAM3编译运行

1.修改CMakeList文件

在find package上面加,目的是使用标准的c++14来编译

set(CMAKE_CXX_STANDARD 14)  #使用c++14来编译

注:所有的CmakeList中将find opencv 改成对应的版本

2.安装python2.7

sudo apt install libpython2.7-dev

3.添加ROS环境

在编译ros版本时候需要初始化ROS

sudo gedit ~/.bashrc
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/path/ORB_SLAM3/Examples/ROS
source ~/.bashrc

4.编译

需要添加可执行权限

cd ORB-SLAM3
chmod +x build.sh build_ros.sh
#先编译非ROS版
./build.sh
#在编译ROS版
./build_ros.sh

5.测试TUM数据集

TUM数据集下载地址:Computer Vision Group - Dataset Download

./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples_old/RGB-D/TUM3.yaml /home/slam/datasets/rgbd_dataset_freiburg3_walking_xyz /home/slam/datasets/rgbd_dataset_freiburg3_walking_xyz/associations.txt

注意路径:第一部分是可执行文件,第二部分是ORB词袋,第三部分是配置文件(在这里更改自己相机的参数),第四部分是数据文件存放所在的文件夹,第五部分是RGB和深度图像的时间戳文件。

测试结果:


                        

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐