用realsensed435录制数据集并跑orb-slam2

2023-05-16

1.  <利用ros记录话题,获得bag文件>

首先launch相机节点:

roslaunch realsense2_camera rs_camera.launch

rosbag获得.bag 文件:

(xxx为.bag文件的命名,后面两个是相机的rgb和depth话题)

rosbag record -O xxx /camera/color/image_raw /camera/depth/image_rect_raw

2.  <使用Python代码将bag文件转成图片png输出>

注意是Python2代码。

更改输出路径和.bag文件路径(5个路径和2个话题)

# -*- coding: utf-8 -*-

import roslib
import rosbag
import rospy
import cv2
import os
from sensor_msgs.msg import Image
from cv_bridge import CvBridge
from cv_bridge import CvBridgeError

rgb = '/home/sangfor/realsense-data/RGBD_d435/rgb/'  #rgb path
depth = '/home/sangfor/realsense-data/RGBD_d435/depth/'   #depth path
bridge = CvBridge()

file_handle1 = open('/home/sangfor/realsense-data/RGBD_d435/depth.txt', 'w')
file_handle2 = open('/home/sangfor/realsense-data/RGBD_d435/rgb.txt', 'w')

with rosbag.Bag('/home/sangfor/xxx.bag', 'r') as bag:
    for topic,msg,t in bag.read_messages():
        if topic == "/camera/depth/image_rect_raw":  #depth topic
            cv_image = bridge.imgmsg_to_cv2(msg)
            timestr = "%.6f" %  msg.header.stamp.to_sec()   #depth time stamp
            image_name = timestr+ ".png"
            path = "depth/" + image_name
            file_handle1.write(timestr + " " + path + '\n')
            cv2.imwrite(depth + image_name, cv_image)
        if topic == "/camera/color/image_raw":   #rgb topic
            cv_image = bridge.imgmsg_to_cv2(msg,"bgr8")
            timestr = "%.6f" %  msg.header.stamp.to_sec()   #rgb time stamp
            image_name = timestr+ ".jpg"
            path = "rgb/" + image_name
            file_handle2.write(timestr + " " + path + '\n')
            cv2.imwrite(rgb + image_name, cv_image)
file_handle1.close()
file_handle2.close()

改好了之后打开终端输入以下指令执行python脚本

python 提取图像.py

3.associate.py

由于深度图及彩色图的时间戳并非严格一一对齐,存在一定的时间差,因此需将深度图及彩色图按照时间戳最接近原则进行两两配对。将associate.py脚本文件存储至room文件夹下,如图所示:

这两个代码都有可能!

./associate.py depth.txt rgb.txt > associations.txt
./associate.py rgb.txt depth.txt > associations.txt

4.运行orb-slam2

 ./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml /home/sangfor/realsense-data/RGBD_d435 /home/sangfor/realsense-data/RGBD_d435/associations.txt

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用realsensed435录制数据集并跑orb-slam2 的相关文章

随机推荐

  • FreeRTOS学习笔记——(5)信号量

    系列文章目录 FreeRTOS学习笔记 系列文章目录 文章目录 系列文章目录信号量一 信号量函数1 创建2 删除3 give take 函数 二 信号量的应用1 二进制信号量 xff08 防止数据丢失 xff09 2 计数型信号量 信号量
  • shell脚本自动登录远程主机执行脚本或命令

    usr bin expect set WORK PATH 34 root 34 set hostname 34 10 239 227 224 34 spawn ssh root 64 hostname expect 34 yes no 34
  • 获得鼠标离开消息。

    要知道什么时候一个鼠标指针进入一个窗口或是在它上面移动是非常简单的 因为窗口会接收到WM MOUSEMOVE消息 在Windows NT 4 0中初次亮相的 TrackMouseEvent函数使得确定什么时刻鼠标指针离开窗口或者是静止悬于窗
  • Spring中AOP的使用以及举例

    1 AOP的简介 1 1 什么是AOP AOP Aspect Oriented Programming 面向切面编程 xff0c 一种编程范式 xff0c 指导开发者如何组织程序结构 OOP Object Oriented Programm
  • openstack创建云主机实例错误

    求大佬们帮忙看看是什么问题
  • RTOS任务调度过程(上下文切换)

    RTOS任务调度过程 xff08 上下文切换 xff09 解析 xff1a RTOS任务调度的机制是基于内核异常机制的 xff0c 即每产生一次调度就会产生一次内核异常 xff0c 那么 xff0c 要了解RTOS的任务调度机制需要先明白内
  • runtime-core.esm-bundler.js:40 [Vue warn]: Vue received a Component which was made a reactive object

    vue3 Vue warn 96 96 96 runtime core esm bundler js 40 Vue warn Vue received a Component which was made a reactive object
  • Prometheus监控k8s

    文章目录 前情提要监控k8s节点监控coreDns服务监控Ingress nginx监控k8s state metrics修改Prometheus的configmap并重载PrometheusGrafana展示监控的数据节点基础信息监控co
  • JDK更换IDEA如何修改

    一 打开idea设置 1 点击file里面的settings 二 取消默认javac编译 2 然后点开 Build Execution Deployment找到里面的compiler xff0c 再点开Java compiler 取消勾选
  • VUE父子传值报错问题

    Avoid mutating a prop directly since the value will be overwritten whenever the parent component re renders Instead use
  • Postman简介及接口测试流程(小菜鸟攻略)

    目录 前言 一 常见接口 二 前端和后端 三 什么是接口测试 四 接口组成 1 接口说明 2 调用url 3 请求方法 xff08 get post xff09 4 请求参数 参数类型 请求参数说明 5 返回参数说明 五 为什么要做接口测试
  • k8s:Pod 基础概念

    目录 一 资源限制 xff0c 二 Pod 的两种使用方式 三 Pod 资源共享 四 底层容器Pause 4 1 Pause共享资源 4 1 1 网络 4 1 2 存储 4 1 3 小结 4 2 Pause主要功能 4 3 Pod 与 Pa
  • Docker-dockerfile

    目录 一 dockerfile概念 二 Docker镜像创建 1 基于现有镜像创建 2 基于本地模板创建 3 基于dockerfile创建 3 1 dockerfile结构 3 2 构建镜像命令 三 dockerfile操作指令 1 ENT
  • windows/linux 下iozone参数详解

    iozone是一个文件系统的benchmark工具 xff0c 可以测试不同的操作系统中文件系统的读写性能 可以测试 Read write re read re write read backwards read strided fread
  • Windows认证Kerberos访问HDFS

    一 Windows认证Kerberos访问HDFS 1 官网下载地址 xff1a http web mit edu kerberos dist 2 安装步骤 默认安装地址 C Program Files MIT Kerberos C Pro
  • 2022(招聘季)linux面试高频题

    大家好 xff0c 今天给大家分享一下2022最新最全的linux面试高频题 xff0c 希望你们喜欢 linux运维工程师在面试的时候经常会被问到各种问题 xff0c 接下来我也会根据自己的经验将面试题整理下来供大家参考 有不同见解的欢迎
  • 自动化测试工具——Selenium详解

    目录 前言 Selenium的几个特点 seleniun组成部分 selenium RC selenium IDE selenium Grid selenium webDriver 那么selenium RC 与webdriver 主要有什
  • Linux命令新建目录mytest并且设置权限

    1 在 usr目录中新建一个目录目录名称 xff1a mytest 并在mytest目录中新建文件net txt 设置文件的属 性为文件属主 u 增加执行权限 xff0c 文件属主同组用户 g 增加写入权限 xff0c 其他用户 o 删除读
  • ubuntu18.04安装realsenseD435驱动

    1 下载编译librealsense master 1 1 更新内核 运行代码 uname r 如果 gt 61 4 4 0 50的版本则ok xff0c 否则需要升级内核 1 2 更新cmake xff08 需要3 6以上版本 xff09
  • 用realsensed435录制数据集并跑orb-slam2

    1 lt 利用ros记录话题 xff0c 获得bag文件 gt 首先launch相机节点 roslaunch realsense2 camera rs camera launch rosbag获得 bag 文件 xxx为 bag文件的命名