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安装路径问题。