需求
使用Kinectv2-RGBD摄像头测试了RTABMAP和ORBSLAM3这两个算法的视觉里程计精度 ORBSLAM3的里程计精度在视觉SLAM中应该算是相当高的算法了,RTABMAP测试直线走会有很多抖动的地方,ORBSLAM测试下来就几乎是一条直线
但ORBSLAM生成的是稀疏点云,应用场景有限,网上有ORBSLAM2的稠密点云教程,但我现在还是初学者,就先不去改算法的源码部分了
看到RTABMAP可以去结合多种算法运行,就尝试去让RTABMAP结合ORBSLAM3来进行建图、导航、定位这些操作了
环境
Ubuntu版本:18.04
ROS版本:Melodic
实现步骤
ORB_SLAM3环境搭建
这是我配置ORBSLAM2环境时的步骤,测试下来ORBSLAM3好像也没有出错
ORBSLAM2配置安装
安装ORB_SLAM3
我这边工作目录是rtab_ws,其他应用安装位置是softwares
cd ~/rtab_ws/src/
git clone -b v0.4-beta https://github.com/UZ-SLAMLab/ORB_SLAM3.git
cd ORB_SLAM3/
wget https://gist.githubusercontent.com/matlabbe/f5cb281304a1305b2824a6ce19792e13/raw/f8bbc796edc29b9f815cbf3c99a0c3e13e23663d/orbslam3_v4_rtabmap_fix.patch
git apply orbslam3_v4_rtabmap_fix.patch
chmod +x build.sh
./build.sh
ORBSLAM3编译时卡死问题
修改build.sh文件,make -j 改成 make -j4
-jx 表示make时最多运行多少个编译命令同时执行
配置ORB_SLAM3
编译完ORB_SLAM3后,在~/.bashrc文件中添加一行,修改完成后别忘了source
export ORB_SLAM_ROOT_DIR=~/rtab_ws/src/ORB_SLAM3

安装RTABMAP
rtabmap要安装在工作目录外的地方,这里我装在了softwares文件夹下
cd ~/softwares/
git clone https://github.com/introlab/rtabmap.git
cd rtabmap/build/
配置RTABMAP
这个地方我看到网上的几个教程里都没有说明,导致我照着做到最后一直报错TAT
后来问了RTABMAP的作者,他回复说RTABMAP要使用ORBSLAM,需要先卸载rtabmap binaries这些环境![]()
sudo apt remove ros-melodic-rtabmap
cmake -DWITH_G2O=OFF -DWITH_ORB_SLAM=ON ..
make -j4
检查cmake结果
![]()
安装RTABMAP_ROS
上面rtabmap和orbslam都安装配置完成后,开始安装rtabmap的ros包
这个包需要安装在工作目录下
cd ~/rtab_ws/src/
git clone https://github.com/introlab/rtabmap_ros.git rtabmap_ros
cd ..
catkin_make -j4
在~/.bashrc中添加RTABMap_DIR,source
![]()
数据集测试
数据集下载地址:RGBD数据集下载
完成上述步骤后,就成功将RTABMAP和ORBSLAM结合了
运行数据集测试
roscore
roslaunch rtabmap_ros euroc_datasets.launch args:="Odom/Strategy 5 OdomORBSLAM/VocPath /home/rosadmin/rtab_ws/src/ORB_SLAM3/Vocabulary/ORBvoc.txt" MH_seq:=true raw_images_for_odom:=true
rosbag play --clock V1_01_easy.bag
运行成功

遇到的问题
RTABMAP_ROS catkin_make失败
因为卸载了ros-melodic-rtabmap,catkin_make会报错,需要设置RTABMap_DIR![]()
报错:OdometryORBSLAM.cpp:1163::computeTransform() RTAB-MAP is not built with ORB_SLAM support!Select another visual odometry approach.
可以检查一下rtabmap有没有检测到orbslam3
cmake的时候显示orbslam是yes也不一定就成功检测到了,要通过
rosrun rtabmap_ros rtabmap –version
要显示true才算成功检测到Original: https://blog.csdn.net/Starry_Sheep/article/details/124795862
Author: 天涯望月羊
Title: 【ROS】RTABMAP+ORBSLAM3在ROS环境下测试数据集
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/111489/
转载文章受原作者版权保护。转载请注明原作者出处!