ROS2 wrapper - topics optimization

Hi there,

I am working on a project that requires connecting a Jetson Orin Nano 8GB to a PC via Wi-Fi (ZED2i connected to the Jetson). I’m using ROS2 to read ZED ROS2 wrapper topics from the Jetson on the PC. However, when I subscribe to these image topics via RVIZ2, the latency increases from 66 ms to 3000 ms. I’ve discovered that the Wi-Fi bandwidth becomes completely saturated.

Given this issue, I’m looking for the best approach to optimize this connection, as I only need Depth and RGB image topics along with their info topics. My first idea was to eliminate the topics from the gray and raw images, as well as the point cloud one, but don’t know exactly how and how it would affect.

Thanks in advance for your help!

Hi @Jimi1811

This is not required. Unsubscribed topics do not consume bandwidth because they are only advertised, not published when there are no subscribers.

You can reduce the required bandwidth by reducing the publishing frequency (general.pub_frame_rate), and/or reducing the data size by setting the value of general.pub_resolution to “CUSTOM” and rising the value of general.pub_downscale_factor.

I recommend you also read these guides to improve the performance of the data distribution middleware:

Hello @Myzhar,

Thank you for your response. Currently, I am fine-tuning the DDS parameters as the settings in the .yaml file you mentioned are already configured.

I am quite confused regarding the topics. I am using ISAAC ROS packages to obtain the camera pose and a 3D mesh with a cost map. Therefore, I do not need the pose with VSLAM or the point cloud from the ZED wrapper. Given that these topics are not being utilized, I assume there is no need to publish them. However, when I visualize these topics in RViz, they still appear. Does this mean that even without subscribers, the ZED wrapper is utilizing the Jetson’s graphics and RAM to process the pose and point cloud, and they only appear when someone subscribes to or visualizes them?

You can disable the Positional Tracking modules by setting:
depth.depth_stabilization → 0
pos_tracking.pos_tracking_enabled → false