0
$\begingroup$

Rosanswers logo

Hello community,

is it possible to access ros2 nodes in a different layer3 ip network ?

Use case:

Rviz2 at my desktop via LAN (10.1.2.0/24 security zone office)

Robot with ros2 nodes via WLAN (10.1.3.0/24 security zone lab)

Routing is allowed by default policy into lab zone via firewalls.

I've found no generic way to tell ros2 dds nodes to find partner nodes behind the broadcast borders (routers).

Any solutions available ?

I'm thinking about using OpenVPN to map all nodes into an own layer3 subnet or using some kind of proxies to solve this problem.

Any better advice from the experts ?

Thanks in advance

Cheers

Chrimo


Originally posted by ChriMo on ROS Answers with karma: 476 on 2018-12-20

Post score: 0


Original comments

Comment by gvdhoorn on 2018-12-20:
This has come up before. FastRTPS for example allows you to configure a list of static participants ("Static Endpoint Discovery"). That is based on IP, so those could be in any network, as long as there are routes available between those networks.

Comment by gvdhoorn on 2018-12-20:
I don't believe the situation has changed since #q295494, so a "generic way" does not exist, but various configuration mechanisms exist for the various middlewares supported.

#q307230 shows an example for FastRTPS.

Comment by ChriMo on 2018-12-20:
is ros2bridge an option ? rviz --->roscore<---ros2bridge--->ros2 nodes

Comment by gvdhoorn on 2018-12-20:
I don't understand your last comment. Your question was how to allow "ROS 2 nodes" to find each other even if they're not part of the same broadcast domain.

The bridge bridges ROS 1 and ROS 2 node graphs. But that happens at a different layer.

Can you clarify?

Comment by ChriMo on 2018-12-20:
I've tried to solve my special use case, using rviz from desktop location to remote robot lab. Idea: Desktop uses rviz and connects to remote robots roscore. The remote robot runs ros2bridge and additional ros2 nodes. Maybe, very special use case, but real usage.

Comment by gvdhoorn on 2018-12-20:
I'm not sure how this connects to the question you raise in your post, but at the very least it would have been good to include what you write in your comment in the original question text.

It's almost an xy-problem now.

Comment by gvdhoorn on 2018-12-20:
But as the ros 2 bridge is (on one side) essentially a ROS 2 node, my comments still apply. For nodes outside the broadcast domain, use static endpoint discovery.

Comment by ChriMo on 2018-12-20:
Thanks for all :-)

Comment by William on 2018-12-20:
Honestly, VPN with multicast forwarding through it, is probably the easiest solution if you cannot route multicast traffic between your two machines. The static end-points provided by Fast-RTPS may work for you, but I thought they needed to be configured on a per node (per participant) basis.

Comment by ruffsl on 2019-04-22:
I'm not sure how your subnets are connected, but if applicable, you could also try adjusting the time to live value for the discovery data. e.g. https://community.rti.com/kb/how-do-i-change-multicast-time-live-ttl

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Short result: NO, not by default ros2 mechanisms. This is a special feature of the lower level DDS.

Hint from export:

This has come up before. FastRTPS for example allows you to configure a list of static participants ("Static Endpoint Discovery"). That is based on IP, so those could be in any network, as long as there are routes available between those networks.

additional links: https://answers.ros.org/question/295400/what-default-ports-are-used-in-ros2-dds-implementations/


Originally posted by ChriMo with karma: 476 on 2018-12-20

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by MisterblueGuy on 2018-12-20:
An example for FastRTPS at https://answers.ros.org/question/307230/are-there-examples-of-default_fastrtps_profilesxml/ .

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.