ORB-SLAM3論文地址:https://arxiv.org/abs/2007.11898
代碼地址:https://github.com/UZ-SLAMLab/ORB_SLAM3
一、安裝庫
根據ORB-SLAM3源代碼安裝以下庫:
1、Pangolin
附上github網址:https://github.com/stevenlovegrove/Pangolin
根據github里面安裝即可:
#安裝依賴
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
2、opencv3.2.0
下載官網opencv3.2.0安裝包
#安裝依賴
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
環境配置
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
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
(2)出現錯誤
– Checking for module ‘gtk±3.0’
– No package ‘gtk±3.0’ found
#安裝依賴
sudo apt-get install libgtk-3-dev
(3)出現錯誤
– No package ‘gstreamer-base-1.0’ found
#安裝依賴
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
3、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
4、Eigen3
5、python2.7
6、DBoW2 and g2o(ORB-SLAM3檔案中自帶)
二、運行ORB-SLAM3
1、運行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
結果圖

2、用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
結果圖

定位丟失時,建立新地圖并與原地圖匹配,為綁架恢復問題提供了一個可行的開源解決方案,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/189065.html
標籤:其他
上一篇:10.22 成長日記
