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

ROS2 Node - Recorder #45

Open
realsnick opened this issue Aug 21, 2023 · 2 comments
Open

ROS2 Node - Recorder #45

realsnick opened this issue Aug 21, 2023 · 2 comments
Assignees
Labels
Aloha good first issue Good for newcomers

Comments

@realsnick
Copy link
Contributor

Background:

In the context of the Sky360 system, there is a need for an enhanced ROS2 node recorder that enables the capturing of topic data in memory using a ring buffer. This recorder should be capable of initiating recording with start/stop commands and have the ability to dump the ring buffer to disk when instructed to do so. Additionally, the recorder should continue recording to disk after the dump until a stop command is received, at which point it should continue recording for a specified duration. The objective is to ensure that relevant information leading up to a system detection event is available in cache, even before the system processes the event.

Functional Requirements:

Ring Buffer Implementation

Develop a ROS2 node recorder with an integrated ring buffer that can efficiently store topic data in memory. The size of the ring buffer should be configurable to accommodate various use cases.

Start/Stop Commands

Implement functionality to initiate and terminate recording using start and stop commands, respectively. These commands should be intuitive and easy to trigger.

Dump to Disk

Provide the ability to dump the contents of the ring buffer to disk upon receiving a designated command. This step ensures that critical data is preserved even in the event of an unexpected system shutdown.

Continuous Recording

When the stop command is received, the recorder should continue capturing data for a specified duration before completely halting. This feature ensures that post-event data is also available for analysis.

Cached Event Capture

The recorder should be designed to capture data leading up to a system detection event, ensuring that the information preceding the event is available in memory, providing a valuable cache for later analysis.

Non-Functional Requirements

Efficiency

The recorder should be optimized for memory usage and performance to prevent any impact on the overall system's operation.

Configurability

Design the recorder with configurable parameters to allow users to adapt it to their specific requirements.

Reliability

The recorder should be resilient to system failures and able to handle different scenarios, such as sudden shutdowns.

Additional Considerations

Error Handling

Implement robust error handling mechanisms to gracefully manage any unexpected situations.

Documentation

Provide comprehensive documentation that explains how to configure, initiate, and control the recorder, as well as how to interpret the recorded data.

Testing

Develop a suite of tests to ensure the recorder's functionality, including different start/stop scenarios and cache capture effectiveness.

Expected Outcome

The implementation of this enhanced ROS2 node recorder will contribute significantly to the Sky360 system's efficiency by providing a reliable mechanism for capturing critical data in memory and on disk. This feature will empower the system to have access to relevant information preceding a detection event, allowing for more insightful analysis and decision-making.

@realsnick realsnick added documentation Improvements or additions to documentation help wanted Extra attention is needed Aloha good first issue Good for newcomers and removed documentation Improvements or additions to documentation labels Aug 21, 2023
@realsnick
Copy link
Contributor Author

Additional Considerations

Timestamp Format

Specify the format of the timestamps to ensure compatibility with ROS2 and downstream analysis tools.

Timestamp Synchronization

Consider any potential clock synchronization requirements to ensure consistent timestamps across different components of the system.

Note

The inclusion of ROS2 timestamps in both memory and disk recordings of the enhanced recorder will provide critical temporal context for the captured data. This feature is essential for conducting accurate time-window analysis and real-time scientific investigations within the Sky360 system. By meeting this requirement, the recorder will greatly enhance the system's capabilities for advanced data analysis and insight generation.

@realsnick
Copy link
Contributor Author

For the Aloha versions of the Sky360 system, a pivotal focus lies on capturing and analyzing two key types of information: the raw data from the all sky camera and the parameters associated with the all sky camera itself. These topics hold critical significance as they form the foundation for understanding system behavior, enabling in-depth analysis of events, and facilitating real-time insights. The raw data offers a direct glimpse into the environment, while the camera parameters provide crucial context to interpret the captured data accurately.

@realsnick realsnick removed the help wanted Extra attention is needed label Jan 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Aloha good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants