Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New log file format design #9

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from
Draft

New log file format design #9

wants to merge 3 commits into from

Conversation

nkoenig
Copy link
Collaborator

@nkoenig nkoenig commented Aug 23, 2022

Signed-off-by: Nate Koenig nate@openrobotics.org

Working on a new log file format for Gazebo. This is a WIP

Signed-off-by: Nate Koenig <nate@openrobotics.org>
@nkoenig nkoenig marked this pull request as draft August 23, 2022 21:57
Nate Koenig added 2 commits August 23, 2022 15:04
Signed-off-by: Nate Koenig <nate@openrobotics.org>
Signed-off-by: Nate Koenig <nate@openrobotics.org>
1. Support random access to logged data
1. Low barrier to entry
1. A user of the current log format needs to re-implement the Gazebo ECS.
1. Efficient

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Support being "interrupted" in that the log file won't be corrputed/destroyed in the case that Gazebo is shut down incorrectly or has a segmentation fault.

Since user systems run directly in the executable, there is always a chance of segfaults and we should do as much as possible to preserve already written data in case that happens.

1. Low overhead when writing log files.
1. Self-contained
1. Capture initial simulation state
1. Capture topic names, message types, and message definitions

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not all topics/message definitions may be available when recording starts, we should accommodate this.


## Requirements

1. Cross-platform and cross-language

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should note a minimum set of languages to help bound this a little bit.

From what we use in Gazebo, (C++, Ruby, Python, Typescript/Javascript, Go) would cover 99% of our use cases correct?

1. Log format version
1. Gazebo version
1. Date and time of recording
1. Optionally include all assets used by simulation. 

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Importantly, I think it would be nice to include these assets in a way that is not "echoing them to a topic" the way that it was typically done in ROS 1 bags.

@azeey azeey added beta and removed beta labels Jul 31, 2023
@azeey azeey added beta and removed beta labels Jul 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In progress
Development

Successfully merging this pull request may close these issues.

3 participants