DDS messages between multiple master in different subnets
Hi, i am preparing a multi-robot environment with a set of mobile units and with one coordinating "mastermind" backend unit.
- The set of mobile robots are all with the same software and thus the same topics.
- Each Robot should be able to send a broadcast to all the others
- Each Robot should be able to send messages that is only sent to the backend
I read a lot about DDS, looked at the ros ZMQ option and even considered the ros2socketbridge. Obviously I would love to do this with the intended middleware DDS.
So could someone with more understanding of the inner mechanics help me with a few points
- Is it correct that DDS does only work within the same subnet (
192.168.0.1/24 255.255.255.0
) and not between (192.168.0.1
->192.168.2.1
)? - Is there a possibility to define a DDS Publisher profile that has a predefined receiver (like in my case the backend)
If the answer to any of these is no, is there a suggestion for another package that can do this? Thanks a lot in advance for the help!!
Asked by monkfood on 2022-10-11 08:22:00 UTC
Answers
Dds uses multicast so it can leaf a subnet.
To all the different robots the all should have different ROS_Domain_ID so the topic will not collide.
For your communication you can use iter mqtt or zero mq.
Or you change the robot root topic, with an lauch file then you can stay in one domain under communicate between each other a you intndet
Asked by duck-development on 2022-10-18 18:20:56 UTC
Comments