将bag文件转化为txt文件

1. 将bag文件转为txt

在获得其他bag文件的时候,也可以先通过查看bag信息

rosbag info ***.bag

打印bag的话题信息

rostopic echo -b ***.bag /topic_name

再将bag中的话题信息保存到txt文件

rostopic echo  -b ***.bag /topic > folder/***.txt

2. 将ESIM的out.bag转为txt

上一节我们已经在cheetah_example中输出了out.bag

exec bash
ssim
rosbag play out.bag -l -r 0.1

然后再开启一个终端:

rostopic list

结果为:
/cam0/camera_info
/cam0/events
/cam0/image_corrupted
/cam0/image_raw

播放话题是这个/cam0/events

查看话题格式:

rostopic info /cam0/events

为 dvs_msgs/EventArray


方法一

rostopic echo -b out.bag /cam0/events > out.txt

方法二

先安装如下两个包

pip install rospkg
pip install tqdm

参考https://blog.csdn.net/zkk9527/article/details/102951457/,将下述代码命名为reader.py,并放到out.bag同一路径下。

#!/usr/bin/env python
import rosbag
from tqdm import tqdm
bag=rosbag.Bag('out.bag')
with open("out.txt",'w') as f: 
    for i,(topic,msgs,t) in enumerate(bag.read_messages(topics=['/cam0/events'])):
        for single_event in tqdm(msgs.events):  
            f.write(str(single_event.ts.secs+single_event.ts.nsecs*1.0/1000000000)+' ')         
            f.write(str(single_event.x)+' ')
	    f.write(str(single_event.y)+' ')
            if(single_event.polarity==True):        
	        f.write("1")
            else:
                f.write("0")
	    f.write('\n')  
        print("Writing events between two pic, now is "+ str(i)+'!')
print("Writing is over!")

而后运行

ssim
python reader.py

如果这里出错,多半是~/.bashrc配置和pip安装路径问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值