解决rosbag时间戳未对齐的解决方法

2023-05-16

解决rosbag时间戳未对齐的解决方法


Reference:
ROS.org: rosbag/Cookbook : http://wiki.ros.org/rosbag/Cookbook.

rosbag在存储时间时,接收消息的时间和生成消息的时间可能会有很大的差别。例如:程序处理速度慢导致的消息延后; 消息在慢速播放时被记录;Synchronizer的msg传入过晚…

因此,使用每个topic内的header时间作为播放时的时间戳(rosbag record时间使用的是当前的电脑时间)不失为一种比较奈斯的方法:

#!/usr/bin/env python3

import rospy
import rosbag
import sys

if sys.getdefaultencoding() != 'utf-8':
    reload(sys)
    sys.setdefaultencoding('utf-8')
bag_name = '2020-08-12-12-48-42.bag' #被修改的bag名
out_bag_name = 'out_2020-08-12-12-48-42.bag' #修改后的bag名
dst_dir = '/home/yinji/sda/bag_2020/' #使用路径

with rosbag.Bag(dst_dir+out_bag_name, 'w') as outbag:
    stamp = None
    #topic:就是发布的topic msg:该topic在当前时间点下的message t:消息记录时间(非header)
    ##read_messages内可以指定的某个topic
    for topic, msg, t in rosbag.Bag(dst_dir+bag_name).read_messages():
        if topic == '/gps':
            stamp = msg.header.stamp
        #针对没有header的文件,使用上面帧数最高的topic(即:/gps)的时间戳
        ##因为read_messages是逐时间读取,所以该方法可以使用
        elif topic == '/image_stamp' and stamp is not None: 
            outbag.write(topic, msg, stamp)
            continue
        #针对格式为Header的topic
        elif topic == '/image_time':
            outbag.write(topic, msg, msg.stamp)
            continue
        #针对一般topic
        outbag.write(topic, msg, msg.header.stamp)

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

解决rosbag时间戳未对齐的解决方法 的相关文章

  • ros数据集录制:rosbag record

    1 查看话题 查看topic列表 xff1a rostopic list 打印topic内容 xff1a rostopic echo topic xff12 话题录制rosbag record 用于在ros系统中录取系统中其他ros节点发出
  • rosbag使用介绍

    rosbag 1 录制包 span class token comment 录制所有的topic span rosbag record span class token operator span a 2 查看包的信息 rosbag inf
  • rosbag命令 | EVO工具 的使用

    目录 一 rosbag录制及查看 1 rosbag话题录制 2 rosbag信息查看 3 rosbag转换格式 xff08 bag2txt xff09 4 rosbag截取录制时间 二 EVO工具使用命令 1 evo traj 命令 2 e
  • Ubuntu中rosbag、txt、csv 格式文件的转换和bag文件图片的提取

    1 数据集rosbag 1 1 录制所有话题的包 rosbag record a 1 2 录制指定话题 xff0c 设置 bag 包名为 xff1a bag name rosbag record O bag name bag topic1
  • rosbag 从旧topic,迁移到新topic

    rosbag 从旧topic xff0c 迁移到新topic source 目标devel setup bash文件生成rules bmr迁移规则 rosbag check in bag g rules bmr修改迁移规则文件rules b
  • 关于rosbag的使用和问题

    一开始想使用rosbag来录一下 cmd vel来使机器人走固定路径 xff0c 但是开始录制的和回放的总不一样 后来总结了两点 xff1a 1 xff09 往想方向存在跑 xff0c 试一下 xff0c 跑的路径短一点 2 xff09 操
  • rosbag 录包

    ros提供了方便的录包指令 xff0c 基本使用如下 xff1a rosbag record topic 1 topic 2 这里记录下 xff0c 类似于滑动窗口的方式录制指定size的N个bag包 这主要用于只录制最近一段时间的数据包
  • 提取rosbag中的图像话题存为本地图像

    新建存放图片文件夹 首先运行ros master roscore 在目标文件夹目录下运行 rosrun image view extract images sec per frame 61 0 05 image 61 lt ROSIMAGE
  • 读取rosbag中的IMU信息并转为tum格式的csv和txt

    rostopic span class token operator span b xx span class token punctuation span bag span class token operator span p span
  • rosbag播放过程ctrl+z暂停后继续播放的方法

    rviz 43 rosbag播放暂停与继续播放 rosbag播放暂停的方式可以在rosbag运行窗口 space按键进行控制 该方法用于进程管理的学习扩展 问题描述 xff1a rosbag包播放过程ctrl 43 z暂停播放恢复播放方法
  • rosbag使用--记录深度相机数据

    首先看一下教程 xff1a http wiki ros org openni launch Tutorials BagRecordingPlayback 知道了rosbag如何进行使用记录深度数据 但是按照以上教程记录下来的bag file
  • ros rviz显示rosbag中的图像和imu数据

    一 rosbag相关的指令 1 rostopic list 列举出系统中正在发布的ros 话题 2 rosbag record a 录制系统中所有正在发布的ros 话题 3 rosbag record topic1 topic2 o bag
  • ROS系列:九、rosbag使用

    文章目录 解析rosbag中的 bag文件 xff0c 得到 jpg图片数据和 pcd点云数据 https blog csdn net weixin 40000540 article details 83859694 1 rosbag写入文
  • rosbag解包,保存图片

    新建一个文件夹 xff08 建立result文件夹 xff09 xff0c 图片会保存在该文件夹下 xff0c 在该文件下运行命令 xff1a xff08 这里保存的是jpg格式图片 xff09 首先播放已有的数据包 xff1a rosba
  • rosbag.bag.ROSBagUnindexedException: Unindexed bag

    rosbag bag ROSBagUnindexedException Unindexed bag ROSBAG
  • rosbag转化为.mp4格式视频

    1 把 bag文件放到Python脚本目录下 2 安装依赖 xff08 确保系统下已经安装ros环境 xff09 使用ffmpeg将ros包文件中的图像序列转换为固定帧率的视频文件 xff0c 需要安装ffmpeg sudo apt ins
  • 【杂七杂八的东西】ROSBAG:用python按时间戳提取bag中的图像

    1 ROSBAG提取制定topic图像 跟着朋友学习了一下如何在bag中提取带有时间戳的图像 我们主要取的是单通道的深度图像 感觉在ROS机器人中使用的非常普遍 闲话不多说 直接上完整的python代码 如果想看详细的ROSBAG解释的话可
  • ros1 bag to ros2 bag play

    有个问题是 ros1格式的bag需要转到ros2格式的bag 怎么弄 需要注意的是 这里只能提供标准信息的rosbag转换 如果带有自定义msg的rosbag 应该是不可以的 请注意一下 解决办法 安装依赖 sudo apt install
  • 启动rosbag出现警告TF_OLD_DATA ignoring data from the past for frame odom

  • 在 Python 3 中导入 Rosbag

    我正在尝试从 Python 3 读取 rosbag 文件 我安装了 ROS2 Eloquent Elusor 它应该支持 Python 3 当我跑步时 import rosbag bag rosbag Bag test bag 从Pytho

随机推荐