本实验基于ORB-SLAM2+D435深度相机+Ubuntu20.04+ROS Noetic。
由于源码问题较多,本文提供了修改好的代码链接,操作简单,无需读者自行修改。
一、环境配置
环境配置请严格按照《Ubuntu20+D435跑通ORB-SLAM2教程一-环境配置》
二、数据集运行
1、下载作者修改好的ORB-SLAM2代码:
https://gitee.com/DJ_xi/orb-slam2-sparsemapping.git
2、将以上文件解压并将文件夹中的ORB_SLAM2复制到catkin_ws/目录下
3、运行build.sh文件:
cd ORB_SLAM2
chmod +x build.sh
./build.sh
4、在以下网址下载数据集fr1/xyz并将其解压缩放在ORB_SLAM2/data目录下:
https://cvg.cit.tum.de/data/datasets/rgbd-dataset/download
5、运行:
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml data/rgbd_dataset_freiburg1_xyz
三、D435实时运行
1、获得相机内参:
roscore
roslaunch realsense2_camera rs_camera.launch
rostopic echo /camera/color/camera_info
2、在路径:/home/(用户名)/ORB_SLAM2/Examples/RGB-D中新建RealSense.yaml文件,由1获取的内参进行修改以下内容:
%YAML:1.0
#--------------------------------------------------------------------------------------------
# Camera calibration and distortion parameters (OpenCV)
Camera.fx: 606.2763671875
Camera.fy: 605.233154296875
Camera.cx: 319.2896728515625
Camera.cy: 246.07589721679688
Camera.k1: 0.0
Camera.k2: 0.0
Camera.p1: 0.0
Camera.p2: 0.0
Camera.k3: 0.0
Camera.width: 640
Camera.height: 480
#Camera frames per second
Camera.fps: 30.0
#IR projector baseline times fx (aprox.)
Camera.bf: 30.3
#Color order of the images (0: BGR, 1: RGB. It is ignored if images are grayscale)
Camera.RGB: 1
#Close/Far threshold. Baseline times.
ThDepth: 40.0
#Deptmap values factor,将深度像素值转化为实际距离,原来单位是 mm,转化成 m
DepthMapFactor: 1000.0
#ORB Parameters
#--------------------------------------------------------------------------------------------
#ORB Extractor: Number of features per image
ORBextractor.nFeatures: 1000
#ORB Extractor: Scale factor between levels in the scale pyramid
ORBextractor.scaleFactor: 1.2
#ORB Extractor: Number of levels in the scale pyramid
ORBextractor.nLevels: 8
#ORB Extractor: Fast threshold
#Image is divided in a grid. At each cell FAST are extracted imposing a minimum response.
#Firstly we impose iniThFAST. If no corners are detected we impose a lower value minThFAST
#You can lower these values if your images have low contrast
ORBextractor.iniThFAST: 20
ORBextractor.minThFAST: 7
#--------------------------------------------------------------------------------------------
#Viewer Parameters
#--------------------------------------------------------------------------------------------
Viewer.KeyFrameSize: 0.05
Viewer.KeyFrameLineWidth: 1
Viewer.GraphLineWidth: 0.9
Viewer.PointSize:2
Viewer.CameraSize: 0.08
Viewer.CameraLineWidth: 3
Viewer.ViewpointX: 0
Viewer.ViewpointY: -0.7
Viewer.ViewpointZ: -1.8
Viewer.ViewpointF: 500
3、在bashrc下添加ORB_SLAM2的工作路径:
ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/(用户名)/catkin_ws/ORB_SLAM2/Examples/ROS
4、运行build_ros.sh文件:
cd ORB_SLAM2
chmod +x build_ros.sh
./build_ros.sh
5、安装以下依赖包并启动相机节点:
sudo apt-get install ros-noetic-rgbd-launch
roslaunch realsense2_camera rs_rgbd.launch
6、运行:
cd catkin_ws/ORB_SLAM2
rosrun ORB_SLAM2 RGBD Vocabulary/ORBvoc.txt Examples/RGB-D/RealSense.yaml