grepros 1.2.2
grep for ROS bag files and live topics
|
ROS2 bag reader and writer (SQLite format), providing most of rosbag.Bag interface. More...
Public Member Functions | |
__init__ (self, filename, mode="a", *_, **__) | |
__contains__ (self, key) | |
Returns whether bag contains given topic. | |
__next__ (self) | |
Retrieves next message from bag as (topic, message, timestamp). | |
autodetect (cls, f) | |
Returns whether file is recognizable as SQLite format. | |
close (self) | |
Closes the bag file. | |
get_end_time (self) | |
Returns the end time of the bag, as UNIX timestamp, or None if bag empty. | |
get_message_class (self, typename, typehash=None) | |
Returns ROS2 message type class, or None if unknown message type for bag. | |
get_message_count (self, topic_filters=None) | |
Returns the number of messages in the bag. | |
get_message_definition (self, msg_or_type) | |
Returns ROS2 message type definition full text, including subtype definitions. | |
get_message_type_hash (self, msg_or_type) | |
Returns ROS2 message type MD5 hash, or None if unknown message type for bag. | |
get_qoses (self, topic, typename) | |
Returns topic Quality-of-Service profiles as a list of dicts, or None if not available. | |
get_start_time (self) | |
Returns the start time of the bag, as UNIX timestamp, or None if bag empty. | |
get_topic_info (self, counts=True, ensure_types=True) | |
Returns topic and message type metainfo as {(topic, typename, typehash): count}. | |
get_type_and_topic_info (self, topic_filters=None) | |
Returns thorough metainfo on topic and message types. | |
open (self) | |
Opens the bag file if not already open. | |
read_messages (self, topics=None, start_time=None, end_time=None, raw=False, **__) | |
Yields messages from the bag, optionally filtered by topic and timestamp. | |
write (self, topic, msg, t=None, raw=False, qoses=None, **__) | |
Writes a message to the bag. | |
Public Member Functions inherited from BaseBag | |
__bool__ (self) | |
__contains__ (self, key) | |
Returns whether bag contains given topic. | |
__copy__ (self) | |
__deepcopy__ (self, memo=None) | |
__enter__ (self) | |
Context manager entry, opens bag if not open. | |
__exit__ (self, exc_type, exc_value, traceback) | |
Context manager exit, closes bag. | |
__getitem__ (self, key) | |
Returns an iterator yielding messages from the bag in given topic, supporting len(). | |
__iter__ (self) | |
Iterates over all messages in the bag. | |
__len__ (self) | |
Returns the number of messages in the bag. | |
__next__ (self) | |
Retrieves next message from bag as (topic, message, timestamp). | |
__nonzero__ (self) | |
__str__ (self) | |
Returns informative text for bag, with a full overview of topics and types. | |
close (self) | |
Closes the bag file. | |
flush (self) | |
Ensures all changes are written to bag file. | |
get_end_time (self) | |
Returns the end time of the bag, as UNIX timestamp, or None if bag empty. | |
get_message_class (self, typename, typehash=None) | |
Returns ROS message type class, or None if unknown message type for bag. | |
get_message_count (self, topic_filters=None) | |
Returns the number of messages in the bag. | |
get_message_definition (self, msg_or_type) | |
Returns ROS message type definition full text, including subtype definitions. | |
get_message_type_hash (self, msg_or_type) | |
Returns ROS message type MD5 hash, or None if unknown message type for bag. | |
get_qoses (self, topic, typename) | |
Returns topic Quality-of-Service profiles as a list of dicts, or None if not available. | |
get_start_time (self) | |
Returns the start time of the bag, as UNIX timestamp, or None if bag empty. | |
get_topic_info (self, counts=True) | |
Returns topic and message type metainfo as {(topic, typename, typehash): count}. | |
get_type_and_topic_info (self, topic_filters=None) | |
Returns thorough metainfo on topic and message types. | |
open (self) | |
Opens the bag file if not already open. | |
read_messages (self, topics=None, start_time=None, end_time=None, raw=False, **__) | |
Yields messages from the bag, optionally filtered by topic and timestamp. | |
write (self, topic, msg, t=None, raw=False, **kwargs) | |
Writes a message to the bag. | |
Public Attributes | |
CREATE_SQL | |
Static Public Attributes | |
str | CREATE_SQL |
ROS2 bag SQLite schema. | |
str | SQLITE_MAGIC = b"SQLite format 3\x00" |
SQLite file header magic start bytes. | |
bool | STREAMABLE = False |
Whether bag supports reading or writing stream objects, overridden in subclasses. | |
Static Public Attributes inherited from BaseBag | |
BagMessage = collections.namedtuple("BagMessage", "topic message timestamp") | |
Returned from read_messages() as (topic name, ROS message, ROS timestamp object). | |
tuple | MODES = ("r", "w", "a") |
Supported opening modes, overridden in subclasses. | |
next | |
bool | STREAMABLE = True |
Whether bag supports reading or writing stream objects, overridden in subclasses. | |
TopicTuple | |
Returned from get_type_and_topic_info() as (typename, message count, connection count, median frequency). | |
TypesAndTopicsTuple = collections.namedtuple("TypesAndTopicsTuple", ["msg_types", "topics"]) | |
Returned from get_type_and_topic_info() as ({typename: typehash}, {topic name: TopicTuple}). | |
Properties | |
closed = property | |
Returns whether file is closed. | |
filename = property | |
Returns bag file path. | |
mode = property | |
Returns file open mode. | |
size = property | |
Returns current file size in bytes (including journaling files). | |
topics = property | |
Returns the list of topics in bag, in alphabetic order. | |
Properties inherited from BaseBag | |
closed = property | |
Returns whether file is closed. | |
filename = property | |
Returns bag file path. | |
mode = property | |
Returns file open mode. | |
size = property | |
Returns current file size in bytes. | |
stop_on_error = property | |
Whether raising read error on unknown message type (ROS2 SQLite .db3 specific). | |
topics = property | |
Returns the list of topics in bag, in alphabetic order. | |
ROS2 bag reader and writer (SQLite format), providing most of rosbag.Bag interface.
__init__ | ( | self, | |
filename, | |||
mode = "a" , |
|||
* | _, | ||
** | __ | ||
) |
__contains__ | ( | self, | |
key | |||
) |
__next__ | ( | self | ) |
autodetect | ( | cls, | |
f | |||
) |
close | ( | self | ) |
get_end_time | ( | self | ) |
get_message_class | ( | self, | |
typename, | |||
typehash = None |
|||
) |
get_message_count | ( | self, | |
topic_filters = None |
|||
) |
get_message_definition | ( | self, | |
msg_or_type | |||
) |
get_message_type_hash | ( | self, | |
msg_or_type | |||
) |
get_qoses | ( | self, | |
topic, | |||
typename | |||
) |
get_start_time | ( | self | ) |
get_topic_info | ( | self, | |
counts = True , |
|||
ensure_types = True |
|||
) |
Returns topic and message type metainfo as {(topic, typename, typehash): count}.
Can skip retrieving message counts, as this requires a full table scan. Can skip looking up message type classes, as those might be unavailable in ROS2 environment.
counts | whether to return actual message counts instead of None |
ensure_types | whether to look up type classes instead of returning typehash as None |
Reimplemented from BaseBag.
get_type_and_topic_info | ( | self, | |
topic_filters = None |
|||
) |
Returns thorough metainfo on topic and message types.
topic_filters | list of topics or a single topic to filter returned topics-dict by, if any |
Reimplemented from BaseBag.
open | ( | self | ) |
read_messages | ( | self, | |
topics = None , |
|||
start_time = None , |
|||
end_time = None , |
|||
raw = False , |
|||
** | __ | ||
) |
Yields messages from the bag, optionally filtered by topic and timestamp.
topics | list of topics or a single topic to filter by, if any |
start_time | earliest timestamp of message to return, as ROS time or convertible (int/float/duration/datetime/decimal)
|
end_time | latest timestamp of message to return, as ROS time or convertible (int/float/duration/datetime/decimal)
|
raw | if True, then returned messages are tuples of (typename, bytes, typehash, typeclass). If message type unavailable, returns None for hash and class. |
Reimplemented from BaseBag.
write | ( | self, | |
topic, | |||
msg, | |||
t = None , |
|||
raw = False , |
|||
qoses = None , |
|||
** | __ | ||
) |
Writes a message to the bag.
topic | name of topic |
msg | ROS2 message |
t | message timestamp if not using wall time, as ROS time or convertible (int/float/duration/datetime/decimal)
|
qoses | topic Quality-of-Service settings, if any, as a list of dicts |
Reimplemented from BaseBag.
|
static |
ROS2 bag SQLite schema.
|
static |
|
static |
|
static |
|
static |