Sky360-Repository / sky360

Observational Citizen Science of Earths atmosphere and beyond.

Home Page:http://sky360.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ROS2 Node - Recorder

i-am-logger opened this issue · comments

commented

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.

commented

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.

commented

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.