我有一些睡袋发生了很奇怪的事。这些书包包含sensor_msgs/Image类型的消息以及其他主题。
所以我想:
第一个场景
在一个终端上,我运行rostopic echo /the_image/header,因为我对实际数据不感兴趣,只对头信息感兴趣。在另一个终端,我运行rosbag play --clock the_bag.bag
就这样我得到了
seq: 7814
stamp:
secs: 1625151029
nsecs: 882629359
frame_id: ''
---
seq: 7815
stamp:
secs: 1625151029
nsecs: 934761166
frame_id: ''
---
seq: 7816
stamp:
secs: 1625151029
nsecs: 986241550
frame_id: ''
---
seq: 7817
stamp:
secs: 1625151030
nsecs: 82884301
frame_id: ''
---第二种场景----我和前面的场景一样,但是我运行rqt_bag the_bag.bag而不是rosbag play,在那里我右键单击消息来发布它们。这样我得到了类似的值,但是(我以前已经报告过这个问题)第一条消息被跳过了。(这不是这个问题的问题)
第三场景
奇怪的部分来了。我没有像上面这样做,而是有一个python脚本。
timestamps=[]
for topic, msg, t in rosbag.Bag("the_bag.bag").read_messages():
if topic == '/the_image':
timestamps.append((image_idx, t))
with open("timestamps.txt",'w') as f:
for idx, t in timestamps:
f.write('{0},{1},{2}\n'.format(str(idx).zfill(8), t.secs, t.nsecs))所以,正如您所看到的,我打开书包,得到一个时间戳列表,并将其记录在文本文件中。这意味着:
00000000,1625151029,987577614
00000001,1625151030,33818541
00000002,1625151030,88932237
00000003,1625151030,170311084
00000004,1625151030,232427083
00000005,1625151030,279726253
00000006,1625151030,363255375
00000007,1625151030,463079346
00000008,1625151030,501315763
00000009,1625151030,566104245
00000010,1625151030,586694806如您所见,的值完全不同!
这里会发生什么事?
发布于 2021-08-25 17:56:58
这是一个已知的rostopic echo和包文件的“问题”。我把问题放在引号中,因为它不一定是一个问题,而只是rostopic工作方式的产物。为了避免实现的一些不明确的细节,这个问题的本质上是因为当只播放一个包文件并回音时,rospy.rostime没有被正确地初始化;即使您将/use_sim_time设置为true。
为了澄清您所看到的内容,Python脚本中的时间戳是正确的,而rostopic则不是。如果您需要使用rostopic 100%正确的时间戳,可以使用-b标志,如:rostoic echo -b the_bag.bag /my_image_topic。
https://stackoverflow.com/questions/68925574
复制相似问题