Images messages not transmitted over network
Hello,
I have a RealSense camera that publishes a color stream at 15fps, size of 640x360 in the topic /color/image_raw.
The image messages are published correctly on my robot (can see messages in ros2 topic echo
and ros2 topic hz
gives about 15Hz)
However, on a remote machine, I can't receives the Image messages:
- I can see the topic
/color/image_raw
withros2 topic list
(so ROS_DOMAIN_ID and WiFi connection is ok) - I can
ros2 topic echo
all other topics - QoS settings of bith publisher and subscriber are at RELIABLE VOLATILE
- But
ros2 topic echo/hz /color/image_raw
shows no output, and the callback of my Image subscriber is never called)
I use CycloneDDS on ROS2 Galactic.
Why are Image message not transmitted between the two computers ? How to solve that ?
edit: seems related to DDS issue: following https://docs.ros.org/en/galactic/How-... on my remote machine I could get the callback called when palying rosbag of camera data. Without this tuning, even if rosbag play and subscriber are on the same machine, no message are passed.
Hello! We have a very similar setup, and we are having the same problems, but with a lidar point cloud. Did you have any luck solving the issue? Thanks!
Nope, we still have the problem... however we could improve a bit (cf my edit) by tweaking the DDS config related to socket size, and by reducing a bien the image resolution, but still no transmission over Wifi. Maybe try some options from here ? (https://github.com/eclipse-cyclonedds...)
Any update or solution to this? I've just run into the exact same problem. DDS tuning didn't seem to help either.
Hi @ndmmdn! As mentionned in my answer, if you are interested, we developped a tool in our robotics lab to bypass this issue and relay ROS topics using TCP. Our tool is easy to set up and use. Here is the link to our code and documentation: https://github.com/norlab-ulaval/ros2.... If you have any question, don't hesitate to ask us!
Thanks for the suggestion. Theoretically this should be able to be achieved by using DDS QoS profiles, but for some reason its not working. I will try to work the issue further, but will definitely have your repo in mind as a backup!