How to increase the max number of ROS2 graphs that can be run in a network
Hi,
ROS2 automatically discover all nodes under the same network.
ROS2 graphs can be isolated using ROSDOMAINID
According to several sources, the ROSDOMAINID has to be a value in the range 0-230. This is because each ROSDOMAINID is used together with the DDS participant ID in order to select which UDP port has to be used and the number of UDP ports is limited.
Is there a way for increasing this limit? Maybe using some assumptions on the number and the type of participants in each ROSDOMAINID or maybe using a completely different approach?
Thanks
Asked by alsora on 2019-03-13 14:00:08 UTC
Answers
There's not a simple way to increase that limitation. This is part of the DDS/RTPS specification that we're building on top of.
In ROS2 we also have the concept of namespaces just like in ROS1 which allows you to push down resources (nodes, topics, services, etc) into a namespace to avoid naming collisions.
There's another DDS concept of Partitions that we experimented with using in conjunction with the impelementation of ROS 2 namespaces. However that was rolled back as it's not universally supported, and had some conceptual differences from the namespace approach.
I think that this might be a bit of an X-Y problem I'd suggest asking a higher level question where there might be a different approach to solving your underlying problem.
Asked by tfoote on 2019-03-13 15:49:11 UTC
Comments
I second that. I think it would help to know why you want so many domain IDs. There is probably a better, or at least alternative, way to solve your problem.
Asked by Geoff on 2019-03-13 21:45:44 UTC
Comments