Hi everyone,
I am trying setting up a ROS2 multi-machine communication between WSL2 (Ubuntu 22.04) running on a local Windows11 machine and a Linux-native platform, i.e., NVIDIA Jetson Orin Nano. My objective is generating data on my WSL2 machine, and process them using the Jetson.
However, I am experiencing issues related to the fact that the two machines cannot see the respective topics / nodes. They are both connected to the same network, and I have activated the mirroring mode networking in WSL2 using the flag networkingMode=mirrored. I have also tried using Cyclone and FastDDS using custom configuration files, but nothing worked so far.
I was thus wondering if anybody has succeded in setting up a proper ROS2 communication between WSL2 and a native Linux machine. If you need any further information, please do not hesitate to ask.
Thank you in advance!
Simone
I’ve encountered and resolved this issue as well. I’m using ROS2 Jazzy in WSL2 Ubuntu 24.04. The solution is as follows: You should first troubleshoot the problem by communicating between the listener and talker nodes. First, confirm whether the modified environment variables are taking effect, and stop the old ROS2 daemon. Check the network interface: run ip addr show lo to see if the address is correct (it’s likely an issue with your image). If everything above is normal, try manually configuring FastDDS and don’t forget to source it. Hope this helps! 
Hi @seraphim522 , thank you very much for your reply!
May I ask you if you could provide the FastDDS configuration file that you used? Did you configured it in both WSL2 and Jetson? Please notice that I am using ROS2 Humble, but maybe the problem is just related to networking issues, and could work in my ROS2 distro as well.
Thanks!
Hi all,
I could finally find a solution, which I post here hoping that it can help other WSL2-lovers!
I also recommend having a look to this post on NVIDIA forum, which discuss this very same communication issue. In particular, @vchuang suggested to check that Windows/Hyper-V firewall is not blocking inbound UDP/multicast traffic from WSL2.
I implemented two custom firewall rules via PowerShell to enable inbound/outbound UDP traffic between WSL2 and Jetson:
-
New-NetFirewallRule -DisplayName "ROS2 Jetson-WSL UDP In" -Direction Inbound -Action Allow -Protocol UDP -RemoteAddress MY_AWESOME_JETSON_IP -Profile Any
-
New-NetFirewallRule -DisplayName "ROS2 Jetson-WSL UDP Out" -Direction Outbound -Action Allow -Protocol UDP -RemoteAddress MY_AWESOME_JETSON_IP -Profile Any
Enjoy!