-
Notifications
You must be signed in to change notification settings - Fork 251
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
[FEA] Support distributed recording to get ultra high performance. #1548
Comments
This feature sounds interesting, but we surely need to consider more details for implementation note and suggestions. i believe that REP would be the good way to start the more discussion in detail. as 1st step, i would recommend that we can have discussion in ROS 2 Tolling WG. btw, as user-experience,
i think user does not want to be responsible for this... it does not scale if we have hundreds devices in ROS 2 network? system should be responsible to spawn the necessary recorder agent processes to the appropriate hosts based on recording request by user. |
Hi @ZhenshengLee. You can do the following to make a distributed recording (to some certain extent) in the latest rosbag2 version:
ros2 service call /rosbag2_recorder/snapshot rosbag2_interfaces/Resume
ros2 service call /rosbag2_recorder/snapshot rosbag2_interfaces/Pause
ros2 service call /rosbag2_recorder/snapshot rosbag2_interfaces/IsPaused
ros2 service call /rosbag2_recorder/snapshot rosbag2_interfaces/SplitBagfile
ros2 service call /rosbag2_recorder/snapshot rosbag2_interfaces/Snapshot Please note that by default rosbag2 recorder creates a node with the name Therefore almost all requests from your description are already satisfied to some certain extent.
Only the missing part is that there is currently no way to know on the remote client to what topics recorders already subscribed. As regards the optimizations in the data recording path mentioned in my article in the blogpost https://www.apex.ai/post/improvements-in-data-recording-path. Unfortunately, I can't disclose or make those improvements publicly available. These are trade secrets of Apex.AI and this is how Apex.AI framework differentiates from the regular ROS 2 and this is what for our customers will pay money at the end. Overall, we are already moving closer to having a fully pledged distributed recording and replay. At least their backend part. |
Thank you for your reply! @MichaelOrlov I'll leave this issue open for more discussion. |
Description
the idea is originally from https://eclipse-ecal.github.io/ecal/applications/rec/recorder_architecture.html#applications-recorder-centralized-distributed-recording
The main motivation is performance consideration in AV domain projects.
Related Issues
there are many efforts to get the desired performance of rosbag in AV domain.
component rosbag recorder:
Composable
Player
andRecorder
nodes #902https://github.com/berndpfrommer/rosbag2_composable_recorder
apex.ai optimization
https://www.apex.ai/post/improvements-in-data-recording-path
Completion Criteria
this FEA requests that there is a rosbag cli support for distributed recording
Implementation Notes / Suggestions
there should be:
Testing Notes / Suggestions
the distributed recording service should be tested in the AV domain project like autoware auto, https://github.com/autowarefoundation/autoware.universe
The text was updated successfully, but these errors were encountered: