ORB-SLAM3 安装运行
ORB-SLAM3 在ORB-SLAM2的基础上增加了IMU、鱼眼、Atas子地图这些新功能。 ORB-SLAM3 [1]依赖了Opencv3和Pangolin。Pangolin主要是用于可视化运行过程。这里我所使用的的系统环境是Ubuntu1804.
1、Pangolin 安装
Pangolin[2]的安装基本上按照官网的教程就可以一次成功。
1、安装依赖项
sudo apt-get install libglew-dev
sudo apt-get install cmake
sudo apt-get install libpython2.7-dev
sudo apt-get install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libavdevice-dev
sudo apt-get install libdc1394-22-dev libraw1394-dev
sudo apt-get install libjpeg-dev libpng12-dev libtiff5-dev libopenexr-dev
2、下载、编译:
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
cmake --build .
sudo make install
opencv 3 的安装可以参考博客[5]。
2、ORB-SLAM3安装
ORB-SLAM3的安装也非常简单,基本上只需要安装上OpenCV3和Pangolin以后一建就可以编译成功了。
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3
编译代码
cd ORB_SLAM3
chmod +x build.sh
./build.sh
3、数据集测试
这里我主要是测试VIO的模式。测试用的EUROC数据集 [3] 和TUM的VIO数据集[4] 可以从官网上下载或者从这篇博客中下载 SLAM数据集(百度网盘)
3.1 EuRoC 双目+IMU测试
./Examples/Stereo/stereo_euroc ./Vocabulary/ORBvoc.txt ./Examples/Stereo/EuRoC.yaml ~/MH_04_difficult ./Examples/Stereo/EuRoC_TimeStamps/MH04.txt dataset-MH04_stereo
3.2 TUM-VI 双目鱼眼+IMU测试
./Examples/Monocular/mono_tum_vi Vocabulary/ORBvoc.txt Examples/Monocular/TUM_512.yaml ~/dataset-room1_512_16/mav0/cam0/data Examples/Monocular/TUM_TimeStamps/dataset-room1_512.txt dataset-room1_512_mono
3.3 ROS接口
ROS 接口的代码需要单独编译 ,需要把 ORB_SLAM3/Examples/ROS 这个目录加载到ROS工作环境中。 这里有两种方式,一种是写入到 ~/.bashrc 这个文件中。还有一种就是用 export (这种方式每次开启终端都需要执行一次export 操作)
cd ORB_SLAM3
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/crp/ORB_SLAM3/Examples/ROS
./build_ros.sh
3.3.1 启动EUROC 双目+IMU
1、先开一个终端运行roscore
2、在开启一个终端运行
rosrun ORB_SLAM3 Stereo_Inertial Vocabulary/ORBvoc.txt Examples/Stereo-Inertial/EuRoC.yaml true
3、播放bag包
rosbag play MH_04_difficult.bag /cam0/image_raw:=/camera/left/image_raw /cam1/image_raw:=/camera/right/image_raw /imu0:=/imu
3.3.2 启动 tum Vi 双目鱼眼+IMU
1、先开一个终端运行roscore
2、在开启一个终端运行
rosrun ORB_SLAM3 Stereo_Inertial Vocabulary/ORBvoc.txt Examples/Stereo-Inertial/TUM_512.yaml false
3、播放bag包
rosbag play dataset-room1_512_16.bag /cam0/image_raw:=/camera/left/image_raw /cam1/image_raw:=/camera/right/image_raw /imu0:=/imu
3.3.3 启动EUROC 双目
rosrun ORB_SLAM3 Stereo Vocabulary/ORBvoc.txt Examples/Stereo/EUROC.yaml true
rosbag play MH_04_difficult.bag /cam0/image_raw:=/camera/left/image_raw /cam1/image_raw:=/camera/right/image_raw
RGBD、单目同理就可以运行了。
参考资料
[1] https://github.com/UZ-SLAMLab/ORB_SLAM3
[2] https://github.com/stevenlovegrove/Pangolin
[3] https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets#downloads
[4] https://vision.in.tum.de/
data/datasets/visual-inertial-dataset
[5] https://zhuanlan.zhihu.com/p/142254644