【ROS】RTABMAP+ORBSLAM3在ROS环境下测试数据集

需求

使用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才算成功检测到

  • 2
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值