[ros-users] [Discourse.ros.org] [Next Generation ROS] How to run example talker/listener on 2 machines with different ipaddr?

Mikael Arguedas ros.discourse at gmail.com
Sun Jul 2 02:19:52 UTC 2017



Hi @jwang11

ROS2 (and more precisely DDS) uses UDP multicast to communicate the metadata allowing different node to discover each other and establish communication.
Additionaly DDS allows you to specify a domain ID that is a logical barrier to segregate networks.

If your two machines are on the same network and your network configuration allows UDP multicast communication you should be able to run talker/listener across machines by running:
On machine 1:

```
source <YOUR_ROS2_WORKSPACE>/setup.bash
ros2 run demo_nodes_cpp talker
```

On machine 2:
```
source <YOUR_ROS2_WORKSPACE>/setup.bash
ros2 run demo_nodes_cpp listener
```

If you don't want to interfere with other DDS systems on the same network you can set a domain ID, the domain ID is a number between 0 and 255, I'll use 42 in the following example:
On machine 1:
```
export ROS_DOMAIN_ID=42
source <YOUR_ROS2_WORKSPACE>/setup.bash
ros2 run demo_nodes_cpp talker
```
On machine 2:
```
export ROS_DOMAIN_ID=42
source <YOUR_ROS2_WORKSPACE>/setup.bash
ros2 run demo_nodes_cpp listener
```





---
[Visit Topic](https://discourse.ros.org/t/how-to-run-example-talker-listener-on-2-machines-with-different-ipaddr/2106/2) or reply to this email to respond.




More information about the ros-users mailing list