ROS
[ROS SLAM系列] ROS Melodic中的ORB SLAM2環境建置 與 Stereo SLAM實現
<source : greatway9999>
一、關於 ORB-SLAM2
ORB-SLAM2 是一種可用於單目、雙目、RGB-D 相機的 SLAM 程式庫,可計算相機軌跡和稀疏3D 重建 (在單目與RGB-D的條件下,使用真實世界的尺度)。它能偵測迴路並即時將相機重新定位。開發者為 Raul Mur-Artal, Juan D. Tardos, J. M. M. Montiel 和 Dorian Galvez-Lopez 。
二、環境建置實作
(一)、環境
Ubuntu 18.04 + ROS Melodic (安裝教學可參考此篇文章)
(二)、安裝步驟
主要分成兩部份 :
- 安裝第三方套件和工具
- 安裝 ORB-SLAM2
1.安裝第三方套件和工具
1-1 安裝 C++11 or C++0x Compiler (可略過)
安裝ROS時就安裝了C++11編譯器,故該步驟可略過。
1-2 安裝可視化與操作介面之套件 Pangolin
# 安裝相依套件
$ sudo apt-get install libglew-dev -y
$ sudo apt-get install cmake -y
# 編譯與安裝 Pangolin
$ curr_dir=`pwd`
$ cd /tmp
$ git clone https://github.com/gaunthan/Pangolin
$ cd Pangolin
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install
$ cd "$curr_dir"
實作畫面如下 :
<source : greatway9999>
1-3 安裝 OpenCV
安裝ROS時就安裝了 OpenCV,由於ROS支援Python,因此可安裝OpenCV的Python接口,以便用 Python 調用 OpenCV
sudo apt install python-opencv python3-opencv -y
<source : greatway9999>
1-4 安裝 Eigen3
前往Eigen官網,網路上的ROS大神前輩們建議使用 Eigen 3.3.4 版本,比較穩定。
$ curr_dir=`pwd`
$ cd /tmp
$ wget http://bitbucket.org/eigen/eigen/get/3.3.4.tar.gz
$ tar xzvf 3.3.4.tar.gz
$ cd eigen-eigen-*
$ mkdir build
$ cd build
$ cmake ..
$ sudo make install
$ cd "$curr_dir"
實作畫面如下 :
<source : greatway9999>
1-5 安裝 DBoW2 and g2o (可略過)
由於安裝命令也包含在了ORB-SLAM2的安裝腳本中,因此該步驟可跳過。
DBoW2和g2o的程式已經包含在ORB-SLAM2原始碼下的Thirdparty目錄中。由於ORB-SLAM2對這兩個套件的原始程式進行修改,因此請使用該目錄下的程式進行套件的安裝。
2.安裝 ORB-SLAM2
$ mkdir -p ~/catkin_ws/src
$ cd catkin_ws/src
$ git clone https://github.com/gaunthan/ORB_SLAM2
$ cd ORB_SLAM2/
$ chmod +x build.sh build_ros.sh
$ ./build.sh
$ echo 'export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:'"`pwd`/Examples/ROS" >> ~/.bashrc
$ ./build_ros.sh
$ source ~/.bashrc
依序完成上述指令輸入,完成畫面如下 :
<source : greatway9999>
三、測試實作
(一)、執行 ROS 雙目相機的測試程式
步驟1. 從 EuRoC dataset 下載rosbag (e.g. V1_01_easy.bag)
步驟2. 啟動 ROS Master
$ roscore
步驟3. 播放 bag 檔
$ rosbag play --pause ./V1_01_easy.bag /cam0/image_raw:=/left/image_rect_color /cam1/image_raw:=/right/image_rect_color
只要我們的ROS node訂閱這兩個Topics,就能得到兩張對應左右目相機的圖像幀,從而進行雙目追蹤。執行指令後,Terminal會輸出以下資訊,注意其中的”Paused”字眼。模擬一開始是暫停的,直到空白鍵被按下。
步驟4. 執行 ORB-SLAM2
$ rosrun ORB_SLAM2 Stereo Vocabulary/ORBvoc.txt Examples/Stereo/EuRoC.yaml true
Demo 影片
---
參考資料 :
- 開發者Github : raulmur/ORB_SLAM2
- [Monocular] Raúl Mur-Artal, J. M. M. Montiel and Juan D. Tardós. ORB-SLAM: A Versatile and Accurate Monocular SLAM System. IEEE Transactions on Robotics, vol. 31, no. 5, pp. 1147-1163, 2015. (2015 IEEE Transactions on Robotics Best Paper Award).
- [Stereo and RGB-D] Raúl Mur-Artal and Juan D. Tardós. ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras. IEEE Transactions on Robotics, vol. 33, no. 5, pp. 1255-1262, 2017.
- [DBoW2 Place Recognizer] Dorian Gálvez-López and Juan D. Tardós. Bags of Binary Words for Fast Place Recognition in Image Sequences. IEEE Transactions on Robotics, vol. 28, no. 5, pp. 1188-1197, 2012.
- Ubuntu 18.04 安裝ROSMelodic與ORB-SLAM2
- [CSDN] ORBSlam2学习研究-Tracking流程
- [創客智造]ROS与VSLAM入门教程-ORB-SLAM2安装
#SLAM #ORBSLAM2 #Stereo
0 留言