Is there any way to use TCP/IP in ROS2 DDS Communication?
Hello.
I am trying to apply ROS2 to my system, but part of my system cannot use UDP due to security reasons.
Is there any way to use TCP/IP in ROS2 DDS Communication? like, change DDS settings, if possible.
+
thanks for comments. I checked the link.
DDS supports UDP, but I'm not sure ROS2 support it.
do you think modifying 'rwm_connext_cpp' or 'rwm_fastrtps_cpp' could be the way?
Fast-RTPS supports it (see here), but I'm not sure about the ROS 2 side of things (ie: the Fast-RTPS RMW).
And just out of curiosity: what makes UDP a security risk? The fact that it's not 'connected'?
Are you aware of the efforts in SROS2? That doesn't make DDS use TCP/IP, but does exploit DDS Security infrastructure to increase security in DDS based applications (you may be interested in the Hands-on ROS 2: A Walkthrough presentation from ROSCon18 (slides), which shows some of that in action).
I'm trying to combine new ROS2 system to exiting system, which is using only tcp for some reason. I'm asking before change whole system to UDP, or do something.
anyway, thanks for comment and information.
your added comment confuses me: there are essentially two protocols that (some/most implementations of) DDS support(s): UDP and TCP. ROS 2 uses whatever the RMW choice uses.
I would suggest to avoid modifying anything until you've made sure just using what is already there is impossible. The Fast-RTPS maintainers are very accomodating, and seeing as plain Fast-RTPS already supports TCP transports, it may just be a matter of configuring things correctly.
DDS supports UDP, but I'm not sure ROS2 support it. <- It means "I'm not sure about ROS2 Offers APIs to configure DDS settings, UDP to TCP"
I'm sorry to confuse you
Sorry to keep asking, do you have any idea about how to change DDS settings?
no need to apologise.
Unfortunately I don't. You may want to post an issue on the Fast-RTPS issue tracker. The maintainers there have been pretty responsive.