-
Notifications
You must be signed in to change notification settings - Fork 41
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
Support multiple participants for cyclone #90
Support multiple participants for cyclone #90
Conversation
@BMarchi Can you please provide some more context on this ? I am not sure if I understand the purpose of this completely and what we are trying to achieve here? Thanks |
You can see in the resource manager for cyclone that it checks if we are using a single participant and returns that result, otherwise we create a participant. performance_test/performance_test/src/communication_abstractions/resource_manager.cpp Lines 249 to 263 in 2e8e44e
Now in the constructor performance_test/performance_test/src/communication_abstractions/cyclonedds_communicator.hpp Lines 203 to 212 in 2e8e44e
we create a topic (which it's just an ID) which is bound to the participant and cyclone gives us an ID for that. Then we save it as a global topic id and reuse it if we instantiate another communicator. The thing is that if we are not using a single participant, then there's no use of having a global topic id that is bound to a specific participant for a completely different one, so we need to create another topic for the new participant. Cyclone complained here: Cyclone rmw implementation is outdated in ros2's repository and is not compiling with the latest changes. I'll see if I can backtrack and put the steps to reproduce it. |
Signed-off-by: Brian Ezequiel Marchi <brian.marchi65@gmail.com>
7ec5a64
to
ef878b3
Compare
@BMarchi Yes it does make a lot of sense to me now. Thanks for the explanation. |
@BMarchi I was able to successfully compile and run changes in this PR using https://github.com/eclipse-cyclonedds/cyclonedds and ROS dashing. Can you please elaborate what do you mean by the above? |
Sorry, I'm dumb. I mixed this PR with the eloquent update and I kept on my head that I had to run everything in eloquent. I'll try to post the steps to reproduce it |
So, I was checking this out this afternoon and I wasn't able to reproduce it again with the latest changes. Even though I think the change is reasonable, probably cyclone is doing something under the hood that I'm not seeing, so I'm closing this PR and if something strange happens again within Cyclone, we can take a peek at this change again! |
Okay sounds good. Thank you :) |
As the title says, when a
CycloneDDSCommunicator
is instantiated it tries to create a topic if it doesn't exist yet. But the topic is bound to the participant, so if multiple participants are allowed, then the global topic can't be used for different participants.This change is