Looking at the ROSbag.v2 specification, every message stored in a bag file is comprised of a:
1. Message Header
2. Message Content
The header contains a connection ID and a TimeStamp.
The content is the message serialized to bytes, which can include a std_msgs/Header.stamp.
So, I would like to understand which is the relationship between the bag header TimeStamp and the message's std_msgs/Header.stamp
I am also concerned about out of order messages, where messages have been acquired at different times, but they reach the bag file writing queue out of order.
Questions:
- It is mandatory that both the bag
header stamp and
std_msgs/Header.stamp to always
match?
- It is mandatory that the bag header
TimeStamp to be in order?
- Can the std_msgs/Header.stamp to be
out of order and decoupled from bag
header TimeStamp?
In general, who is usually responsible of handling out of order messages? the software writing the bag files, or the clients reading them?
My undestanding is that the bag header TimeStamp is the instanct in which the message is written to the file, so they're guaranteed to be in order. While the message's std_msg/Header.stamp is the acquisition time, which can be a out of order and a bit sooner than the time in the bag header. Is this correct?
so for example, I can have a bag file with two consecutive messages, where
- The header timestamps are sequential and in order...
- But the actual message Header.stamps can be sooner and out of order.
Is this right?
↧