基於Ubuntu18運行ORB-SLAM3(Demo+本地相機運行)

ORB-SLAM3論文地址:https://arxiv.org/abs/2007.11898
代碼地址:https://github.com/UZ-SLAMLab/ORB_SLAM3
php

1、安裝庫

根據ORB-SLAM3源代碼安裝如下庫:
一、Pangolin
附上github網址:https://github.com/stevenlovegrove/Pangolin
根據github裏面安裝便可:


python

#安裝依賴
sudo apt install libglew-dev
sudo apt install cmake
sudo apt install libpython2.7-dev
#可選依賴見github,我沒裝因此就不貼出來啦
#下載並編譯
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
cmake --build .
#最後不要忘了安裝
sudo make install

二、opencv3.2.0
下載官網opencv3.2.0安裝包
c++

#安裝依賴
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
#再加上如下依賴,後面出錯了,因此先加上
sudo apt-get install libgtk-3-dev
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
#進入文件夾編譯安裝
mkdir build
cd build
cmake -D ENABLE_PRECOMPILED_HEADERS=OFF -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make -j8
sudo make install

環境配置git

sudo gedit /etc/ld.so.conf.d/opencv.conf        #添加庫路徑
#裏面應該是 
/usr/local/lib             #沒有則加上
sudo gedit ~/.profile      #添加環境變量
#末尾加上
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH

2.1 出現錯誤及解決辦法
(1)沒法定位軟件包 libjasper-dev
github

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

(2)出現錯誤shell

– Checking for module ‘gtk±3.0’
– No package ‘gtk±3.0’ found
ubuntu

#安裝依賴
sudo apt-get install libgtk-3-dev

(3)出現錯誤bash

– No package ‘gstreamer-base-1.0’ foundpython2.7

#安裝依賴
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

(4)出現錯誤字體

/usr/include/c++/7/cstdlib:75:15: fatal error: stdlib.h: 沒有那個文件或目錄
#include_next <stdlib.h>

#在cmake語句里加上
-D ENABLE_PRECOMPILED_HEADERS=OFF

三、ROS
根據ROS官網安裝對應版本的ROS,本機安裝的是ROS Melodic

#加連接和鑰匙
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
#安裝完整版,其餘的見官網
sudo apt install ros-melodic-desktop-full
#環境配置
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
安裝依賴
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo apt install python-rosdep
sudo rosdep init
rosdep update

安裝成功後,建立並初始化工做目錄

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/         #直接$ cd .. 也同樣
catkin_make
#catkin的構建系統的相關文件保存在build目錄中,構建後的可執行文件保存在devel目錄中
#加載與catkin構建系統相關的環境文件
$ source ~/catkin_ws/devel/setup.bash

四、Eigen3
五、python2.7
六、DBoW2 and g2o(ORB-SLAM3文件中自帶)

2、運行ORB-SLAM3

一、運行demo
依舊是根據github來
下載並編譯ORB-SLAM3,將文件放入ROS工做空間的src文件夾中

#注意在ROS工做空間的src文件夾中下載,或者是下載完成後移入工做空間
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3
#編譯
cd ORB_SLAM3
chmod +x build.sh
./build.sh

下載數據集,官網下載慢可用迅雷下載
修改ORB-SLAM3/euroc_examples.sh文件中的數據集地址

#!/bin/bash
#pathDatasetEuroc='/Datasets/EuRoC' #Example, it is necesary to change it by the dataset path
pathDatasetEuroc='/home/yu/Datasets' #Example, it is necesary to change it by the dataset path

另外,數據集文件名須要修改成euroc_examples.sh文件中對應的名稱

例如MH_01_easy修改成MH01

接下來,運行demo

./euroc_examples.sh

結果圖
在這裏插入圖片描述
二、用Realsense D415相機運行
Ubuntu18.04安裝RealsenseD415方法見另外一篇博客
編譯ROS版



#添加環境變量
gedit ~/.bashrc
#加入如下內容,PATH改成本身的地址
#export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM3/Examples/ROS
export ROS_PACKAGE_PATH=${ ROS_PACKAGE_PATH}:/home/yu/catkin_ws/src/ORB_SLAM3/Examples/ROS
#再加個這個吧
source ~/catkin_ws/devel/setup.bash
#編譯
chmod +x build_ros.sh
./build_ros.sh

修改相應節點

> 打開 ORB_SLAM3/Examples/ROS/ORB_SLAM3/src/ros_rgbd.cc  文件
> 修改節點(綠色字體)
message_filters::Subscriber<sensor_msgs::Image> rgb_sub(nh, "/camera/color/image_raw", 100);
message_filters::Subscriber<sensor_msgs::Image> depth_sub(nh, "camera/depth/image_rect_raw", 100);

相機標定後,修改ORB_SLAM3/Examples/ROS/ORB_SLAM3/Asus.yaml文件

#打開ROS
roscore
#打開相機
roslaunch realsense2_camera rs_rgbd.launch  
#運行節點,注意修改命令中的地址
#使用還須要修改yaml文件,即修改相機的參數
rosrun ORB_SLAM3 RGBD /home/yu/catkin_ws/src/ORB_SLAM3/Vocabulary/ORBvoc.txt /home/yu/catkin_ws/src/ORB_SLAM3/Examples/ROS/ORB_SLAM3/Asus.yaml

結果圖
在這裏插入圖片描述 定位丟失時,創建新地圖並與原地圖匹配,爲綁架恢復問題提供了一個可行的開源解決方案。

相關文章
相關標籤/搜索