-
Notifications
You must be signed in to change notification settings - Fork 252
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
Add node name to the Read(Write)SplitEvent message #1609
Conversation
@fujitatomoya @clalancette could you please review/approve this small PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
having fully qualified node name to the event publisher makes sense to me.
Gist: https://gist.githubusercontent.com/MichaelOrlov/dea13b6d6c78211829cf64ab14776a38/raw/5f18de8a350a609a04881a4b1c99815361bdb75b/ros2.repos |
- Rationale: When running multiple instances of the rosbag2 recorder or player there are no way to know from what instance arrived notification about files split event. With node name in event message we will be able to identify instance of the recorder or player from which event arrived. Signed-off-by: Michael Orlov <[email protected]>
536e9f1
to
5a4d923
Compare
@clalancette @emersonknapp Could some of you please additionally formally approve this PR to be able to merge it? |
@marcoag Could you please approve and merge this PR? We need it for Jazzy. |
@clalancette @marcoag friendly ping here. |
I have to say that this seems like an odd change. A lot of what ROS is built around is the concept of anonymous pub/sub, and this is explicitly breaking that. Can I have more of an explanation of the reason for this change? Also, are there other ways we can accomplish the same thing? |
@clalancette Ok here is more context: Now imagine if we would have multiple instances of the rosbag2 recorder running in parallel. A valid case to split writing to the separate NVME drives to achieve higher throughput or not mess up high-frequency topics like IMU with the slower camera or point cloud images. The monitoring script/node which is running in a separate process needs to know what instance of the rosbag2 recorder sent a notification. It might be a different logic for processing files from different instances. One may need encryption another one may not for example. As regards Honestly, I don't quite understand why the concept of the anonymous pub/sub could be relevant or somehow matter in this case. |
The reason I'm hesitant here is because it breaks the idea of being anonymous, which is a core design philosophy of ROS 2. That is, the node name now matters, so doing a remap during playback, for instance, won't work anymore. I need to think about this more, and we should probably discuss it in the ROS 2 meeting tomorrow. I very well may be wrong, but I don't think we should rush this in right now. |
Update: On today's ROS 2 sync meeting we decided to merge this PR as is for user convenience. However, the alternative way to detect the sender node name on the receiver side could be as proposed in the ros2/geometry2#545 |
@clalancette I need your formal approval to be able to merge this PR |
This pull request has been mentioned on ROS Discourse. There might be relevant details there: |
Any chance this will be ported to Iron? I can use the mentioned workaround if not |
@mwcondino Sorry, but we can't backport this PR to Iron since it has breaking API changes. |
When running multiple instances of the rosbag2 recorder or player there are no way to know from what instance arrived notification about files split event. With node name in event message we will be able to identify instance of the recorder or player from which event arrived.