INDEMIND双目惯性模组运行实时ORB-SLAM3教程

现在实验室视觉SLAM已经不够满足,所以需要多模态融合,正巧购入高翔博士推荐的INDEMIND双目惯性模组,根据官方例程在中使用ROS接入ORB-SLAM3,这回有SDK及ORB-SLAM3安装过程中的各种常见性问题解决方法及安装细节,与官网教程略有不同,列举所有默认安装的依赖,做以记录。

文章目录

    • 实验环境
    • 一、SDK安装
      • 1、SDK下载及准备安装
      • 2、安装依赖
      • 3、然后使用git下载 SDK
      • 4、准备安装SDK需要的依赖
      • 5、OpenCV3.4.3安装
      • 6、MNN安装
      • 7、SDK测试
        • (1)编译样例
        • (2)执行demo
        • (3)ROS准备
    • 二、ORB-SLAM3安装
      • 1、安装ROS环境
      • 2、环境配置
        • (1)安装库
        • (2)安装cv_bridge库
        • (3)安装EIGEN库
        • (4)安装Pangolin库
          • ①下载Pangolin 0.6
          • ②安装依赖项
          • ③编译安装
          • ④验证
        • (5)安装Boost库
        • (6)安装替换
        • (7)进行编译
    • 三、运行程序
      • 1、启动ROS Wrapper
      • 2、在ROS下运行ORB-SLAM3

实验环境

系统 版本
ubuntu 20.04
ROS noetic
IMSEE-SDK 1.4.2
OpenCV 3.4.3
protobuf 3
MNN 3.4.3
Boost 1.81
Eigen 3.2.92
Pangolin 0.6

一、SDK安装

1、SDK下载及准备安装

官方产品手册地址

2、安装依赖

sudo apt-get install build-essential cmake git

3、然后使用git下载 SDK

git clone https://github.com/indemind/IMSEE-SDK.git

4、准备安装SDK需要的依赖

cd /home/geekfanr/IMSEE-SDK
make init

5、OpenCV3.4.3安装

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
git clone https://github.com/opencv/opencv.git
cd opencv/
git checkout tags/3.4.3

mkdir build
cd build/

cmake \
-DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=/usr/local \
\
-DWITH_CUDA=OFF \
\
-DBUILD_DOCS=OFF \
-DBUILD_EXAMPLES=OFF \
-DBUILD_TESTS=OFF \
-DBUILD_PERF_TESTS=OFF \
..

make -j4
sudo make install

6、MNN安装

sudo apt-get install autoconf automake libtool
sudo apt-get install libcanberra-gtk-module

MNN依赖protobuf

git clone https://github.com/google/protobuf.git
cd protobuf
git submodule update --init --recursive
./autogen.sh
./configure
make
make check
sudo make install
sudo ldconfig # refresh shared library cache.

autogen文件连接速度不理想,网盘自取

autogen.sh文件
519w

把protobuf的src目录下的hello.cMakefile.am文件拷贝到本机protobuf的src目录

protoc --version # 若安装成功,将显示protoc版本
git clone https://github.com/alibaba/MNN.git
cd MNN
./schema/generate.sh
mkdir build
cd build
cmake ..
make -j4
sudo make install

完成这些步骤,SDK就安装完毕了

7、SDK测试

(1)编译样例
cd /geekfanr/IMSEE-SDK  #  为安装的SDK具体路径
make init
(2)执行demo

在CMakeLists.txt中添加

set( CMAKE_CXX_STANDARD 14)

INDEMIND双目惯性模组运行实时ORB-SLAM3教程_第1张图片

cd /geekfanr/IMSEE-SDK  #  为安装的SDK具体路径
make demo

INDEMIND双目惯性模组运行实时ORB-SLAM3教程_第2张图片

cd /home/geekfanr/catkin_ws/src/IMSEE-SDK/demo/output/bin
sudo su 
./get_image 

INDEMIND双目惯性模组运行实时ORB-SLAM3教程_第3张图片

(3)ROS准备
wget https://raw.githubusercontent.com/oroca/oroca-ros-pkg/master/ros_install.sh && \
chmod 755 ./ros_install.sh && bash ./ros_install.sh catkin_ws noetic

INDEMIND双目惯性模组运行实时ORB-SLAM3教程_第4张图片

cd /home/geekfanr/IMSEE-SDK  #  为SDK具体路径
make ros

INDEMIND双目惯性模组运行实时ORB-SLAM3教程_第5张图片

二、ORB-SLAM3安装

1、安装ROS环境

小鱼老师把国外关于ROS的库放到了自己的服务器上,所以只用向他的服务器发送命令就能快速安装

安装ROS系统配置比较复杂,Ubuntu20.04对应ROS版本为noetic,推荐使用小鱼老师的一键安装、配置ROS的代码

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

INDEMIND双目惯性模组运行实时ORB-SLAM3教程_第6张图片
平时使用都是ROS1,ROS2是ROS1的改进版本,支持多机,分布式,暂时不会使用。

INDEMIND双目惯性模组运行实时ORB-SLAM3教程_第7张图片
INDEMIND双目惯性模组运行实时ORB-SLAM3教程_第8张图片

2、环境配置

(1)安装库

安装git,g++

sudo apt-get install git
sudo apt install g++

建议先安装ROS中的cv_bridgelibopencv-dev,再安装和libopencv版本号一样的opencv库,这样可以避免opencv的版本冲突问题。

(2)安装cv_bridge库
sudo apt-get install libopencv-dev
sudo apt-get install ros-noekit-cv-bridge

INDEMIND双目惯性模组运行实时ORB-SLAM3教程_第9张图片

(3)安装EIGEN库
sudo apt-get install libeigen3-dev

INDEMIND双目惯性模组运行实时ORB-SLAM3教程_第10张图片

(4)安装Pangolin库
①下载Pangolin 0.6

解压到主目录,重新命名为Pangolin
INDEMIND双目惯性模组运行实时ORB-SLAM3教程_第11张图片

②安装依赖项
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

在这里插入图片描述

③编译安装
cd Pangolin 
mkdir build && cd build
cmake -DCPP11_NO_BOOST=1 ..
make

INDEMIND双目惯性模组运行实时ORB-SLAM3教程_第12张图片

sudo make install

INDEMIND双目惯性模组运行实时ORB-SLAM3教程_第13张图片

④验证
cd ../examples/HelloPangolin
mkdir build && cd build
cmake ..

INDEMIND双目惯性模组运行实时ORB-SLAM3教程_第14张图片

make
./HelloPangolin
#成功会弹出如下窗口

INDEMIND双目惯性模组运行实时ORB-SLAM3教程_第15张图片
在这里插入图片描述

(5)安装Boost库

①这里非常坑,官网上的依赖没有boost,但如果不安装boost会报很多的关于c++的错误,并且无法定位

②进入boost官网网址:http://www.boost.org/users/download/

③解压编译安装

tar -xvf boost_1_77_0.tar.gz
cd ./boost_1_77_0
./bootstrap.sh
sudo ./b2 install
(6)安装替换

ORB-SLAM3依赖的opencv是4.4以上的版本,而Indemind的sdk使用的是3.4.3版本。
INDEMIND双目惯性模组运行实时ORB-SLAM3教程_第16张图片

因此,需要修改ORB-SLAM3的工程,打开ORB-SLAM3工程的cmakelist.txt,将OpenCV3.4.3替换OpenCV 4.2.0
INDEMIND双目惯性模组运行实时ORB-SLAM3教程_第17张图片

(7)进行编译

①编译ORB-SLAM3

cd /home/geekfanr/catkin_ws/src/ORB_SLAM3
chmod +x build.sh
./build.sh

INDEMIND双目惯性模组运行实时ORB-SLAM3教程_第18张图片

②编译ROS下ORB-SLAM3

加入ROS节点非常重要,否则编译的时候就找不到所需要的ros_wrapper包
将节点添加ROS环境

source /home/geekfanr/IMSEE-SDK/ros/devel/setup.bash

INDEMIND双目惯性模组运行实时ORB-SLAM3教程_第19张图片

cd /home/geekfanr/catkin_ws/src/ORB_SLAM3
chmod +x build_ros.sh
./build_ros.sh

三、运行程序

1、启动ROS Wrapper

cd IMSEE-SDK/
sudo su #开启权限模式
source ros/devel/setup.bash
roslaunch imsee_ros_wrapper start.launch

INDEMIND双目惯性模组运行实时ORB-SLAM3教程_第20张图片

2、在ROS下运行ORB-SLAM3

rosrun ORB_SLAM3 Stereo_Inertial Vocabulary/ORBvoc.txt Examples/ROS/ORB_SLAM3/Indemind_stereo_imu_fisheye.yaml ture

INDEMIND双目惯性模组运行实时ORB-SLAM3教程_第21张图片

你可能感兴趣的:(ORB-SLAM,━═━═━◥,MR,◤━═━═━,ORB-SLAM3,INDEMIND,ROS,ubuntu,20.04,imu)