PS- If I do not use husarnet and follow the above process by setting the same domain ID for both the PCs connected to the same network, I am able to clearly view the video on PC2.
Thank you for your reply. I did test what was mentioned in the above GitHub repo. With that I am able to send compressed images. However, I am not able to send the raw images even when both the computers are on the same WiFi network.
To test the issue, I uninstalled husarnet, and sent the same image by connecting to the same router and setting the ROS_DOMAIN_ID parameter. It works flawlessly.
Could you guide where I am going wrong in using husarnet?
To give you context, I want to transfer the video and depth stream coming from a realsense depth camera. I had tried this in ROS1 using husarnet, and it worked flawlessly.
To test the issue, I uninstalled husarnet, and sent the same image by connecting to the same router and setting the ROS_DOMAIN_ID parameter. It works flawlessly.
How can this work with husarnet installed? Do I have to make any changes to XML?
Hi Amit and Dominik, I met with almost the same issue. Small-size compressed jpeg image can be sent and received, however not possible for 1280p jpeg. Do you have any updates or possible solutions about it?
I believe I have followed your guidance correctly and it didn’t solve my problems. In my current configuration, I have two nodes on different networks successfully transmitting JPEG images with a resolution of 640x480. However, when I increase the resolution to 1280x720, the subscriber node fails to receive any images.
Following your suggestion, I added the following settings to my FastDDS configuration:: “1048576
4194304”. I am sure these parameters are below the system maximum value, however I still cannot receive images, even with higher buffer size. Have you tried to stream these 1280x720 resolution of images? Looking forward to your reply.
In my current configuration, I have two nodes on different networks successfully transmitting JPEG images with a resolution of 640x480. However, when I increase the resolution to 1280x720, the subscriber node fails to receive any images. I tried to increase buffer size but it didn’t solve my issue. I am not sure whether husarnet support zenoh since I never used it that way.
I’ve looked into the repository, but I’m a bit confused about how to use Husarnet with my setup. In my configuration, I build my ROS2 Docker container alongside a Husarnet VPN sidecar image using Docker Compose. If I understand correctly, to apply certain system settings, you need to run these commands on the host machine:
"sudo sysctl -w net.core.wmem_max=12582912
sudo sysctl -w net.core.rmem_max=12582912*"
These sysctl settings cannot be directly applied within Docker, so they must be executed on the host machine. To ensure these settings are passed to the Docker container, you would typically use network_mode: host in your Docker Compose file.
However, since I’m using Husarnet, I would need to set network_mode: service:husarnet instead. This creates a conflict because the necessary system settings might not be passed through when using Husarnet’s network mode.
Could you please confirm if my understanding is correct? Have you tested this configuration, and if so, what solution did you find for applying these settings while using Husarnet? You response will be very helpful. I believe these kind of high resolution image stream transmission is very important for many potential husarnet users.
I mean, when using network_mode: service:husarnet, the container is not directly using the host’s network stack but instead relies on Husarnet’s virtual network service. so the sysctl settings are not applied to the docker.
Hi, in the provided ROSbot XL telepresence example, Husarnet is running directly on the host OS, so you need to run these
sudo sysctl -w net.core.wmem_max=12582912
...
commands directly in the host terminal.
It’s a good question whether to apply those setting to the Husarnet container (running withouth network_mode: host), we also need to run it directrly on the host OS level.
My guess is, we need to run it both on host OS and in compose.yaml.
In the typical configurations, like this one, Husarnet sidecar service looks like this: