ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

It's been 2 years but I hope my experience can help whoever comes next.

I am currently working with 3 machines:

  1. A Raspberry Pi with Ubuntu 18 and Ros1 Melodic
  2. A Jetson Nano with Ubuntu 18 that runs a Docker container with Ubuntu 20 and Ros1 Melodic + Ros2 Foxy
  3. A VM on my windows laptop with Ubuntu 20 and Ros2 Foxy that i use only for visualization purpose

PC1 and PC2 are connected via ethernet and PC2 and PC3 are connected via Wifi. You will have to figure out the networking aspect for your own case, but once every machine is able to ping the others you should be set.

After that you need to set the ROS_IP and ROS_MASTER_URI variables, ROS_MASTER_URI should point to your PC1 (or wherever is your roscore) and the ROS_IP should be the local host ip.

To open ros1/ros2 communication you need the ros1_bridge package on the PC2 (ros2 machine) and I advise you to read the github page. Just a quick rundown: you have to source Ros1 and then Ros2 on PC2 and execute the command ros2 run ros1_bridge dynamic_bridge ; if you have the roscore running on PC1 the bridge should be able to detect it.

That's it, or at least this worked for me. To be honest the initial network setup was way more challenging than the ros bridge stuff.