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
結果圖
定位丟失時,創建新地圖並與原地圖匹配,爲綁架恢復問題提供了一個可行的開源解決方案。