rosbag中时间戳异常情况下,同步激光雷达和相机

参考链接:http://wiki.ros.org/rosbag/Cookbook#CA-eb21df553314f94f3af8b3daf2f1fb49c3e78cf7_3

  • 修改rosbag文件中对应topic的时间戳
#!/usr/bin/env python3

import rospy
import rosbag
import sys

if sys.getdefaultencoding() != 'utf-8':
    reload(sys)
    sys.setdefaultencoding('utf-8')
bag_name = '2021-06-09-15-16-30.bag' #被修改的bag名
out_bag_name = 'change_2021-06-09-15-16-30.bag' #修改后的bag名
dst_dir = '/home/stone/Desktop/data/' #使用路径

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 == '/livox/imu':
            stamp = msg.header.stamp
           # print("imu")
            #print(stamp)
        #针对没有header的文件,使用上面帧数最高的topic(即:/gps)的时间戳
        ##因为read_messages是逐时间读取,所以该方法可以使用
        elif topic == '/livox/lidar' and stamp is not None: 
            #print("lidar")
            #print(msg.header.stamp)
            outbag.write(topic, msg, stamp)
        #    continue
        # #针对格式为Header的topic
        elif topic == '/a_image' and stamp is not None:
            #print("image")
            #print(msg.header.stamp)
            outbag.write(topic, msg, stamp+rospy.Duration(6))

        #     outbag.write(topic, msg, msg.stamp)
        #     continue
        # #针对一般topic
        #outbag.write(topic, msg, msg.header.stamp)

print("finished")

  • 对激光雷达进行积分
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值