ORB-SLAM2 跑資料集&&執行自己的攝像頭

NO IMAGE

假設你已經成功將ORB-SLAM2 編譯通過

1、執行單目 SLAM:

我們這裡採用 freiburg1_desk 資料,可以從這裡下載:
freiburg1_desk 資料集
將這個資料集放在 ORB_SLAM2 下的 Data 資料夾下面並解壓縮。
執行如下指令:

./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml Data/rgbd_dataset_freiburg1_desk

注意:官方所帶的 TUM1.yaml 是針對所有 freiburg1 的測試資料的。同理 TUM2.yaml 是針對 freiburg2 測試資料,使用時注意匹配。

2、執行 RGBD SLAM:

我們這裡仍然採用 freiburg1_desk 資料,下載方式參見“1、”中的地址。但是 RGBD 的資料處理需要一個工作,就是將 RGB 圖和深度圖合在一起。我們這裡採用 TUM 提供的 associate.py 指令碼:
associate.py
下載後放在 ORB_SLAM2 跟目錄下,執行如下命令:

python associate.py Data/rgbd_dataset_freiburg1_desk/rgb.txt Data/rgbd_dataset_freiburg1_desk/depth.txt > Data/rgbd_dataset_freiburg1_desk/associations.txt

執行完畢後就可以使用如下命令執行測試程式:

./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml Data/rgbd_dataset_freiburg1_desk Data/rgbd_dataset_freiburg1_desk/associations.txt

3、執行ORB_SLAM2 ROS RGB

1、首先將ORB_SLAM2放在ROS工作空間中,然後進行編譯

mkdir  -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make

注:
1>更改Asus.yaml相機中的內參
2>修改ros_rgbd.cc中原始圖和深度圖的訂閱話題名

2、編譯example中的ROS節點

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM2/Examples/ROS
#Execute build_ros.sh script:
chmod  x build_ros.sh
./build_ros.sh

3、執行ROS RGB 節點

roscore
source devel/setup.bash
rosrun ORB_SLAM2 RGBD /home/cjn/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/cjn/ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml

注:在執行RGBD節點之前確保已經將影象話題釋出了出來,比如使用usb_cam