ORB-SLAM3测试:数据集(单目/双目/imu)& ROS (D435 T265)

2023-05-16

ORB-SLAM3环境配置

安装各种依赖库

orb-slam3非常友好,不用自己下载各种依赖库,因为他们全部在thirdParty文件夹中,编译orb-slam3的同时会自动编译各种依赖库

  • Eigen3.3.4
  • Pangolin
  • OpenCV3.3.5
  • DBoW2 and g2o
  • ROS (optional)

安装orb-slam3:https://gitee.com/YaoFL/ORB_SLAM3

cd ORB_SLAM3
chmod +x build.sh
./build.sh

数据集测试运行ORB-SLAM3

数据集网址:https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets
下载 ASL Dataset Format 一列
在主目录下添加 Datasets/EuRoC/MH01 文件夹并讲数据集放入

  • 1. 单目
./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml ./Datasets/EuRoC/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt dataset-MH01_mono

./Datasets/EuRoC/MH01改成自己文件夹的路径
MH01.txt存储图片名称

遇到问题:运行成功但是没有显示视频?

【1】代码没有更该为播放模式
mono_euroc.cc文件83 false 改为 true

ORB_SLAM3::System SLAM(argv[1],argv[2],ORB_SLAM3::System::MONOCULAR, false);

参考:https://blog.csdn.net/changym5/article/details/125041396

【2】内置播放器有问题
ubuntu没有安装video播放器,安装ffmpeg,参考链接
直接在软件更新中下载video(TMD)

??????还是没有视频??????????

  • 2. 双目
./Examples/Stereo/stereo_euroc ./Vocabulary/ORBvoc.txt ./Examples/Stereo/EuRoC.yaml ./Datasets/EuRoC/MH01 ./Examples/Stereo/EuRoC_TimeStamps/MH01.txt dataset-MH01_stereo

双目成功出现视频
在这里插入图片描述

  • 3. 单目+imu
./Examples/Monocular-Inertial/mono_inertial_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular-Inertial/EuRoC.yaml ./Datasets/EuRoC/MH01 ./Examples/Monocular-Inertial/EuRoC_TimeStamps/MH01.txt dataset-MH01_monoi
  • 4. 双目+imu
./Examples/Stereo-Inertial/stereo_inertial_euroc ./Vocabulary/ORBvoc.txt ./Examples/Stereo-Inertial/EuRoC.yaml ./Datasets/EuRoC/MH01 ./Examples/Stereo-Inertial/EuRoC_TimeStamps/MH01.txt dataset-MH01_stereoi

ROS实测ORB-SLAM3

配置ros,建立catkin_ws工作空间,将orb-slam3代码加入,一键编译

cd ~/catkin_ws/src/ORB_SLAM3
chmod +x build.sh
./build.sh
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/catkin_ws/src/ORB_SLAM3/Examples/ROS #将这句放到~/.bashrc中,以后使用更方便
chmod +x build_ros.sh
./build_ros.sh

解决build catkin_ws时电脑卡死的问题,减少编译线程数量(默认应该是-j8),操作如下

gedit ~/.bashrc
export ROS_PARALLEL_JOBS=-j3
source ~/.bashrc

ros遇到bug,运行roscore没有反应,因为改了网络代理,导致Ubuntu系统ifconfig得到的ip和~/.bashrc里面的ip不一致

#export ROS_HOSTNAME=master
#export ROS_MASTER_URI=http://master:11311

export ROS_HOSTNAME=192.168.1.114
export ROS_MASTER_URI=http://192.168.1.114:11311
  • 1. 普通双目相机实测

直接按照官网的启动方法是没有图像的,但是双目检查话题也正确,为什么没有图像?
因为双目是usb直接连到主机上,不能自动形成一个ros话题发布,而slam3需要接受两个摄像头的话题,因此下载usb_cam包,该包将摄像头图像通过sensor_msgs::Image消息发布出去,https://github.com/bosch-ros-pkg/usb_cam.git
ROS下使用单目/双目摄像头发布图像话题:https://blog.csdn.net/weixin_53073284/article/details/125671358

运行

roscore
#roslaunch usb_cam usb_cam_stereo.launch
rosrun ORB_SLAM3 Stereo ./Vocabulary/ORBvoc.txt ./Examples/Stereo/EuRoC.yaml true
  • 2. RGBD–D435i实测

1)下载支持相机的SDK,下载realsense-ros并编译https://github.com/IntelRealSense/realsense-ros

2)检查/ORB_SLAM3/Examples/ROS/ORB_SLAM3/src/ros_rgbd.cc代码中相机话题名称是否正确,将之改成相机对应话题

//message_filters::Subscriber<sensor_msgs::Image> rgb_sub(nh, "/camera/rgb/image_raw", 100);
//message_filters::Subscriber<sensor_msgs::Image> depth_sub(nh, "camera/depth_registered/image_raw", 100);

message_filters::Subscriber<sensor_msgs::Image> rgb_sub(nh, "/camera/color/image_raw", 100);
message_filters::Subscriber<sensor_msgs::Image> depth_sub(nh, "/camera/depth/image_rect_raw", 100);

3)同时Examples/RGB-D/TUM1.yaml中的相机参数应该改为自己的相机参数

D435i可以选择多种模式运行ros版本的orb,包括1)深度相机模式、2)双目相机模式、3)双目+imu模式

  • RGBD:深度相机模式

运行

roslaunch realsense2_camera rs_rgbd.launch
rosrun ORB_SLAM3 RGBD Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml

运行效果:
在这里插入图片描述

  • Stereo:双目相机模式

可以自己调整订阅的双目图像的话题,以及发布的相机位姿的话题

roslaunch realsense2_camera rs_camera_orb3.launch
rosrun ORB_SLAM3 Stereo ~/ORB_SLAM3/Vocabulary/ORBvoc.txt ~/ORB_SLAM3/config/real_camera.yaml true /camera/left/image_raw:=/camera/infra1/image_rect_raw /camera/right/image_raw:=/camera/infra2/image_rect_raw /orbslam3/vision_pose/pose:=/iris_0/orbslam3/vision_pose/pose
  • Stereo_Inertial:双目+imu模式

可以自己调整订阅的双目图像的话题和imu的话题,以及发布的相机位姿的话题
这里有问题???

roslaunch realsense2_camera rs_camera_orb3.launch
rosrun ORB_SLAM3 Stereo_Inertial ~/ORB_SLAM3/Vocabulary/ORBvoc.txt ~/ORB_SLAM3/config/real_camera_imu.yaml true /camera/left/image_raw:=/camera/infra1/image_rect_raw /camera/right/image_raw:=/camera/infra2/image_rect_raw /imu:=/camera/imu /orbslam3/vision_pose/pose:=/iris_0/orbslam3/vision_pose/pose
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ORB-SLAM3测试:数据集(单目/双目/imu)& ROS (D435 T265) 的相关文章

  • 1-如何安装ROS

    如何安装ROS 大家好 我是如何 今天尝试在Ubantu下安装ROS Robot Operating System 测试环境 虚拟机VMware Ubantu20 04 准备步骤 添加ROS软件源 sudo sh c echo deb ht
  • ROS turtlebot_follower :让机器人跟随我们移动

    ROS turtlebot follower 学习 首先在catkin ws src目录下载源码 地址 https github com turtlebot turtlebot apps git 了解代码见注释 其中有些地方我也不是很明白
  • ROS rosdep update 出错方法 不需要翻墙切换之类的解决方法 ‘https://raw.githubusercontent.com/ros/rosdistro/master/inde

    系统 ubuntu18 rosdep update参考的这篇文章 https blog csdn net weixin 43311920 article details 114796748 utm source app app versio
  • ROS noetic tf demo错误处理及python版本切换

    文章目录 报错描述及解决 ubuntu20 04下python版本切换 报错描述及解决 ubuntu版本 20 04 ROS版本 noetic roslaunch turtle tf turtle tf demo launch 报错信息 t
  • rosprofiler 安装和使用

    rosprofiler wiki 页面 http wiki ros org rosprofiler rosprofiler package 下载rosprofiler和ros statistics msgs 放到工程目录下编译 https
  • 四元素与旋转矩阵

    如何描述三维空间中刚体的旋转 是个有趣的问题 具体地说 就是刚体上的任意一个点P x y z 围绕过原点的轴 i j k 旋转 求旋转后的点P x y z 旋转矩阵 旋转矩阵乘以点P的齐次坐标 得到旋转后的点P 因此旋转矩阵可以描述旋转 x
  • 最快实现一个自己的扫地机

    作者 良知犹存 转载授权以及围观 欢迎关注微信公众号 羽林君 或者添加作者个人微信 become me 扫地机介绍 扫地机器人行业本质是技术驱动型行业 产品围绕导航系统的升级成为行业发展的主旋律 按功能划分 扫地机器人分为四大系统 即导航系
  • IMU姿态计算

    总述 IMU即惯性测量单元 主要用于对机体的加速度与角速度的测算 使用场景很多 例如 平衡车 惯性导航等等 姿态 姿态角 Euler angles 是用于描述物体在三维空间中的旋转姿态的一种表示方法 它由三个角度组成 通常表示物体绕三个轴
  • 《学习篇》学会这18个常用ROS命令集合就能入门ROS了

    常用ROS命令概述 ROS常用命令可以按照其使用场景分为ROSshell命令 ROS执行命令 ROS信息命令 ROS catkin命令与ROS功能包命令 虽然很难从一开始就很熟练地使用所有的命令 但是随着使用的次数增多 你会发现常用的几个R
  • ubuntu18.04命令安装ros2

    ROS2官方文档 本教程为apt get命令安装方式 官网教程有点问题 借鉴一下大佬的安装方式 文章目录 1 安装ROS2 1 1 安装秘钥相关指令 1 2 授权秘钥 1 3 添加ROS2软件源 1 4 安装 2 设置环境 可选但是推荐 2
  • ROS1 ROS2学习

    ROS1 ROS2学习 安装 ROS ROS1 ROS2 命令行界面 ROS2 功能包相关指令 ROS 命令行工具 ROS1 CLI工具 ROS2 CLI工具 ROS 通信核心概念 节点 Node 节点相关的CLI 话题 Topic 编写发
  • roslaunch error: ERROR: cannot launch node of type

    今天在因为github上有个之前的包更新了 重新git clone后出现了一个问题 ERROR cannot launch node of type crazyflie demo controller py can t locate nod
  • 如何将视频或图像序列转换为包文件?

    我是 ROS 新手 我需要转换预先存在的视频文件 或者large可以连接到视频流中的图像数量 bagROS 中的文件 我在网上找到了这段代码 http answers ros org question 11537 creating a ba
  • 可视化点云

    我在找到的视差图像上有来自 gpu reprojectImageTo3D 的 3D 点 我现在想显示这个点云 如何将找到的点云转换为OpenCV to sensor msgs PointCloud2 我不需要发布点云 这仅用于调试可视化 是
  • ROS AsyncSpinner 的多线程行为

    我试图了解 ROS 中的 AsyncSpinner 是如何工作的 因为我可能有一些误解 你可以找到类似的问题here As seen here它的定义提到 异步旋转器 产生几个线程 可配置 将并行执行回调 同时不会阻塞执行该操作的线程 叫它
  • 我的代码的 Boost 更新问题

    我最近将 boost 更新到 1 59 并安装在 usr local 中 我的系统默认安装在 usr 并且是1 46 我使用的是ubuntu 12 04 我的代码库使用 ROS Hydro 机器人操作系统 我有一个相当大的代码库 在更新之前
  • OpenCV无法绘制关键点

    我尝试运行所示的示例代码ORB in the openCV页 首先我必须弄清楚问题cv2 ORB 变成cv2 ORB create 出现此错误后 出现以下内容 Traceback most recent call last File orb
  • 在 Ubuntu 18.10 上安装 ROS Melodic

    I can t是唯一对 Cosmic 与 Wayland 和 Melodic 的组合感兴趣的人 我会坦白说 我似乎已经在 XPS 13 9370 上成功管理了此操作 或者至少安装脚本 最终 成功完成 然而 有一个非常棘手的解决方法 无论结果
  • 在 ROS - Python 中使用来自多个主题的数据

    我能够显示来自两个主题的数据 但无法在 ROS 中实时使用和计算这两个主题的数据 用 Python 代码编写 您有想法存储这些数据并实时计算吗 谢谢 usr bin env python import rospy import string
  • 使用 CMake 链接 .s 文件

    我有一个我想使用的 c 函数 但它是用Intel编译器而不是gnu C编译器 我在用着cmake构建程序 我实际上正在使用ROS因此rosmake但基础是cmake所以我认为这更多是一个 cmake 问题而不是ROS问题 假设使用构建的文件

随机推荐