High variation in publishing rate of ZED-Multi ROS2 node

Hi Community,

For some tests we have to collect several data (ZED Images of four stereo camera, GPS data, Data from a CAN communication, etc.). We decided to save all data in a rosbag.

We set the publishing frequency to 15Hz for the images in the yaml file of the ROS2 node. We save the compressed version of the images:

  • /zed_multi/zed_front_left/left/image_rect_color/compressed
  • /zed_multi/zed_front_left/right/image_rect_color/compressed
  • /zed_multi/zed_front_right/left/image_rect_color/compressed
  • /zed_multi/zed_front_right/right/image_rect_color/compressed
  • /zed_multi/zed_rear_left/left/image_rect_color/compressed
  • /zed_multi/zed_rear_left/right/image_rect_color/compressed
  • /zed_multi/zed_rear_right/left/image_rect_color/compressed
  • /zed_multi/zed_rear_right/right/image_rect_color/compressed

The “ros2 topic hz” command showed a average frequency of +/- 15Hz which seems to be ok.

After recording, we extract the rosbag and save the images with a timestamp. Analyzing the timestamps shows that the distribution of the frequency / interval goes from about 7 to 20 Hz which seems a quite high variance to me.

My question is now, if this is a “normal” behavior or if there are some tricks / optimization reduce this high variance of the publishing frequency.

For example we have done the same for our GPS data, there the distribution is much smaller (publishing frequency: 5Hz):

Many thanks for your help.

Hi @robinvetsch
You subscribed to many compressed topics.
This could lead to an overload of the CPU of your host, not allowing to save the information with the required frequency, causing the problem that you are facing.
What is the host CPU type? Is the disk write speed fast enough?

Hi @Myzhar

We have now done some recording subscribing only to one stereo camera (two topics and not eight). Additional to this we have also done some optimiziations in the recording node. The distribution of the frequency variance is still the same…

We are using a Jetson Orin AGX 64GB with a 1TB SSD which has the following properties:

Read speed max.: 7450 MB/s, write speed max.: 6900 MB/s

Have you tuned the DDS middleware?
What DDS are you using?

Yes we have already done the DDS. jetson_clocks is also activated and the Orin runs on MAX_Power mode.

If have implemented a simple node for checking the timestamps of the each published message and calculate the frequency of it. It seems, the the ZED node mostly correctly publishes the data, but there are some data packages with 7.5 Hz in between. Is there a way to somehow optimize the publishing?

orin@ubuntu:~/NEXT_ros2_ws$ ros2 run zed_check_publishing_hz zed_hz_check_node
[INFO] [1750170996.592782612] [frequency_tracker]: Subscribed to 1 topics
[INFO] [1750170996.693249341] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~14.99 Hz
[INFO] [1750170996.785960508] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0668 s → ~14.96 Hz
[INFO] [1750170996.865553605] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.1334 s → ~7.50 Hz
[INFO] [1750170996.919060647] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0668 s → ~14.97 Hz
[INFO] [1750170996.989042092] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~15.00 Hz
[INFO] [1750170997.037101699] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0665 s → ~15.03 Hz
[INFO] [1750170997.118537958] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~15.00 Hz
[INFO] [1750170997.180051542] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0668 s → ~14.96 Hz
[INFO] [1750170997.250865350] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0666 s → ~15.02 Hz
[INFO] [1750170997.325840912] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0666 s → ~15.01 Hz
[INFO] [1750170997.380415968] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0668 s → ~14.98 Hz
[INFO] [1750170997.449452728] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0665 s → ~15.03 Hz
[INFO] [1750170997.502971322] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~14.99 Hz
[INFO] [1750170997.601400487] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~14.98 Hz
[INFO] [1750170997.665126869] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~14.99 Hz
[INFO] [1750170997.717162915] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0666 s → ~15.02 Hz
[INFO] [1750170997.776804281] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0672 s → ~14.88 Hz
[INFO] [1750170997.841117999] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0662 s → ~15.11 Hz
[INFO] [1750170997.926893614] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0669 s → ~14.94 Hz
[INFO] [1750170997.982199432] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0665 s → ~15.05 Hz
[INFO] [1750170998.057597336] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0669 s → ~14.95 Hz
[INFO] [1750170998.149062756] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~14.99 Hz
[INFO] [1750170998.209260194] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0664 s → ~15.06 Hz
[INFO] [1750170998.290055835] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~15.00 Hz
[INFO] [1750170998.380416505] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0669 s → ~14.95 Hz
[INFO] [1750170998.454492246] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.1331 s → ~7.51 Hz
[INFO] [1750170998.530207689] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~14.99 Hz
[INFO] [1750170998.602964148] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~14.99 Hz
[INFO] [1750170998.657373250] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0668 s → ~14.97 Hz
[INFO] [1750170998.726706557] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0668 s → ~14.97 Hz
[INFO] [1750170998.800974493] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0665 s → ~15.03 Hz
[INFO] [1750170998.867133869] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~15.00 Hz
[INFO] [1750170998.927162568] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~15.00 Hz
[INFO] [1750170998.978638926] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0669 s → ~14.95 Hz
[INFO] [1750170999.072807679] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0666 s → ~15.01 Hz
[INFO] [1750170999.130698205] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0669 s → ~14.94 Hz
[INFO] [1750170999.211748889] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0665 s → ~15.04 Hz
[INFO] [1750170999.277251104] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0666 s → ~15.02 Hz
[INFO] [1750170999.333807403] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0665 s → ~15.03 Hz
[INFO] [1750170999.409121945] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~14.99 Hz
[INFO] [1750170999.475848016] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~15.00 Hz
[INFO] [1750170999.558232095] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0669 s → ~14.94 Hz
[INFO] [1750170999.636692664] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0664 s → ~15.06 Hz
[INFO] [1750170999.712160136] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0669 s → ~14.96 Hz
[INFO] [1750170999.787662552] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0665 s → ~15.04 Hz
[INFO] [1750170999.858731659] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~14.99 Hz
[INFO] [1750170999.956588592] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.1332 s → ~7.51 Hz
[INFO] [1750171000.046027808] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0669 s → ~14.94 Hz
[INFO] [1750171000.098491730] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~14.98 Hz
[INFO] [1750171000.183403620] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0666 s → ~15.02 Hz
[INFO] [1750171000.232096163] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~15.00 Hz
[INFO] [1750171000.301490078] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0664 s → ~15.05 Hz
[INFO] [1750171000.393856503] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0668 s → ~14.96 Hz
[INFO] [1750171000.458598834] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.1332 s → ~7.51 Hz
[INFO] [1750171000.526099604] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~14.99 Hz
[INFO] [1750171000.593604918] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0666 s → ~15.00 Hz
[INFO] [1750171000.647060086] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~15.00 Hz
[INFO] [1750171000.736430501] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~15.00 Hz
[INFO] [1750171000.802445938] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~15.00 Hz
[INFO] [1750171000.858675577] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0668 s → ~14.97 Hz
[INFO] [1750171000.912144761] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0668 s → ~14.97 Hz
[INFO] [1750171000.973501798] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0666 s → ~15.01 Hz
[INFO] [1750171001.041963125] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0665 s → ~15.05 Hz
[INFO] [1750171001.130998047] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0673 s → ~14.87 Hz
[INFO] [1750171001.198031194] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0665 s → ~15.05 Hz
[INFO] [1750171001.250395275] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0667 s → ~14.99 Hz
[INFO] [1750171001.323668028] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0666 s → ~15.02 Hz
[INFO] [1750171001.378918133] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0668 s → ~14.96 Hz
[INFO] [1750171001.458295450] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0662 s → ~15.09 Hz
[INFO] [1750171001.514226588] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color/compressed]: Δt = 0.0668 s → ~14.97 Hz

You can monitor the running frequencies of all the ZED ROS2 Node modules (threads) by using the rqt diagnostic plugin.
The ZED ROS2 Wrapper publishes full diagnostic information.
Read more here.

Nothing more than what’s explained here.
I also recommend not using compressed topics if not sending messages over the network.

I’ve tested it with the uncompressed images, but the publishing frequency looks even worse…

orin@ubuntu:~/NEXT_ros2_ws$ ros2 run zed_check_publishing_hz zed_hz_check_node
[INFO] [1750172476.430788040] [frequency_tracker]: Subscribed to 8 topics
[INFO] [1750172476.573832946] [frequency_tracker]: [/zed_multi/zed_rear_left/left/image_rect_color]: Δt = 0.1334 s → ~7.50 Hz
[INFO] [1750172476.584124055] [frequency_tracker]: [/zed_multi/zed_rear_left/right/image_rect_color]: Δt = 0.1334 s → ~7.50 Hz
[INFO] [1750172476.589326934] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color]: Δt = 0.1334 s → ~7.49 Hz
[INFO] [1750172476.599541470] [frequency_tracker]: [/zed_multi/zed_front_left/right/image_rect_color]: Δt = 0.1334 s → ~7.49 Hz
[INFO] [1750172476.618381490] [frequency_tracker]: [/zed_multi/zed_front_right/left/image_rect_color]: Δt = 0.2004 s → ~4.99 Hz
[INFO] [1750172476.627169079] [frequency_tracker]: [/zed_multi/zed_front_right/right/image_rect_color]: Δt = 0.2004 s → ~4.99 Hz
[INFO] [1750172476.650566119] [frequency_tracker]: [/zed_multi/zed_rear_right/left/image_rect_color]: Δt = 0.1330 s → ~7.52 Hz
[INFO] [1750172476.659563555] [frequency_tracker]: [/zed_multi/zed_rear_right/right/image_rect_color]: Δt = 0.1330 s → ~7.52 Hz
[INFO] [1750172476.690707781] [frequency_tracker]: [/zed_multi/zed_rear_left/left/image_rect_color]: Δt = 0.1332 s → ~7.51 Hz
[INFO] [1750172476.700634873] [frequency_tracker]: [/zed_multi/zed_rear_left/right/image_rect_color]: Δt = 0.1332 s → ~7.51 Hz
[INFO] [1750172476.719130779] [frequency_tracker]: [/zed_multi/zed_front_right/left/image_rect_color]: Δt = 0.1330 s → ~7.52 Hz
[INFO] [1750172476.727034727] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color]: Δt = 0.0665 s → ~15.03 Hz
[INFO] [1750172476.732059246] [frequency_tracker]: [/zed_multi/zed_front_right/right/image_rect_color]: Δt = 0.1330 s → ~7.52 Hz
[INFO] [1750172476.746748437] [frequency_tracker]: [/zed_multi/zed_front_left/right/image_rect_color]: Δt = 0.0665 s → ~15.03 Hz
[INFO] [1750172476.789282796] [frequency_tracker]: [/zed_multi/zed_rear_right/left/image_rect_color]: Δt = 0.1337 s → ~7.48 Hz
[INFO] [1750172476.798115023] [frequency_tracker]: [/zed_multi/zed_rear_right/right/image_rect_color]: Δt = 0.1337 s → ~7.48 Hz
[INFO] [1750172476.809069431] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color]: Δt = 0.1335 s → ~7.49 Hz
[INFO] [1750172476.822787240] [frequency_tracker]: [/zed_multi/zed_front_left/right/image_rect_color]: Δt = 0.1335 s → ~7.49 Hz
[INFO] [1750172476.827528475] [frequency_tracker]: [/zed_multi/zed_rear_left/left/image_rect_color]: Δt = 0.1334 s → ~7.49 Hz
[INFO] [1750172476.845958113] [frequency_tracker]: [/zed_multi/zed_rear_left/right/image_rect_color]: Δt = 0.1334 s → ~7.49 Hz
[INFO] [1750172476.855337581] [frequency_tracker]: [/zed_multi/zed_front_right/left/image_rect_color]: Δt = 0.0667 s → ~14.99 Hz
[INFO] [1750172476.859841226] [frequency_tracker]: [/zed_multi/zed_front_right/right/image_rect_color]: Δt = 0.0667 s → ~14.99 Hz
[INFO] [1750172476.934006510] [frequency_tracker]: [/zed_multi/zed_front_right/left/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172476.948152748] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172476.952971100] [frequency_tracker]: [/zed_multi/zed_front_right/right/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172476.957709680] [frequency_tracker]: [/zed_multi/zed_rear_right/left/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172476.962724120] [frequency_tracker]: [/zed_multi/zed_front_left/right/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172476.970242132] [frequency_tracker]: [/zed_multi/zed_rear_right/right/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172476.975735847] [frequency_tracker]: [/zed_multi/zed_rear_left/left/image_rect_color]: Δt = 0.1335 s → ~7.49 Hz
[INFO] [1750172476.985298059] [frequency_tracker]: [/zed_multi/zed_rear_left/right/image_rect_color]: Δt = 0.1335 s → ~7.49 Hz
[INFO] [1750172477.042263797] [frequency_tracker]: [/zed_multi/zed_front_right/left/image_rect_color]: Δt = 0.0666 s → ~15.01 Hz
[INFO] [1750172477.051292176] [frequency_tracker]: [/zed_multi/zed_rear_right/left/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172477.069106833] [frequency_tracker]: [/zed_multi/zed_front_right/right/image_rect_color]: Δt = 0.0666 s → ~15.01 Hz
[INFO] [1750172477.074932438] [frequency_tracker]: [/zed_multi/zed_rear_right/right/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172477.089831733] [frequency_tracker]: [/zed_multi/zed_rear_left/left/image_rect_color]: Δt = 0.1331 s → ~7.51 Hz
[INFO] [1750172477.098901806] [frequency_tracker]: [/zed_multi/zed_rear_left/right/image_rect_color]: Δt = 0.1331 s → ~7.51 Hz
[INFO] [1750172477.124878159] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color]: Δt = 0.0667 s → ~15.00 Hz
[INFO] [1750172477.131699082] [frequency_tracker]: [/zed_multi/zed_front_left/right/image_rect_color]: Δt = 0.0667 s → ~15.00 Hz
[INFO] [1750172477.142056844] [frequency_tracker]: [/zed_multi/zed_front_right/left/image_rect_color]: Δt = 0.1334 s → ~7.50 Hz
[INFO] [1750172477.157079909] [frequency_tracker]: [/zed_multi/zed_front_right/right/image_rect_color]: Δt = 0.1334 s → ~7.50 Hz
[INFO] [1750172477.172135484] [frequency_tracker]: [/zed_multi/zed_rear_right/left/image_rect_color]: Δt = 0.1357 s → ~7.37 Hz
[INFO] [1750172477.211501053] [frequency_tracker]: [/zed_multi/zed_rear_left/left/image_rect_color]: Δt = 0.1335 s → ~7.49 Hz
[INFO] [1750172477.217056494] [frequency_tracker]: [/zed_multi/zed_rear_right/right/image_rect_color]: Δt = 0.1357 s → ~7.37 Hz
[INFO] [1750172477.235026024] [frequency_tracker]: [/zed_multi/zed_rear_left/right/image_rect_color]: Δt = 0.1335 s → ~7.49 Hz
[INFO] [1750172477.247486159] [frequency_tracker]: [/zed_multi/zed_front_right/left/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172477.255441209] [frequency_tracker]: [/zed_multi/zed_front_right/right/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172477.279081375] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color]: Δt = 0.2000 s → ~5.00 Hz
[INFO] [1750172477.289083216] [frequency_tracker]: [/zed_multi/zed_front_left/right/image_rect_color]: Δt = 0.2000 s → ~5.00 Hz
[INFO] [1750172477.302864926] [frequency_tracker]: [/zed_multi/zed_rear_right/left/image_rect_color]: Δt = 0.1971 s → ~5.07 Hz
[INFO] [1750172477.313770281] [frequency_tracker]: [/zed_multi/zed_rear_right/right/image_rect_color]: Δt = 0.1971 s → ~5.07 Hz
[INFO] [1750172477.358168081] [frequency_tracker]: [/zed_multi/zed_rear_left/left/image_rect_color]: Δt = 0.1330 s → ~7.52 Hz
[INFO] [1750172477.363752256] [frequency_tracker]: [/zed_multi/zed_front_right/left/image_rect_color]: Δt = 0.0662 s → ~15.12 Hz
[INFO] [1750172477.369565094] [frequency_tracker]: [/zed_multi/zed_rear_left/right/image_rect_color]: Δt = 0.1330 s → ~7.52 Hz
[INFO] [1750172477.375942995] [frequency_tracker]: [/zed_multi/zed_front_right/right/image_rect_color]: Δt = 0.0662 s → ~15.12 Hz
[INFO] [1750172477.387415397] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color]: Δt = 0.2004 s → ~4.99 Hz
[INFO] [1750172477.406820226] [frequency_tracker]: [/zed_multi/zed_front_left/right/image_rect_color]: Δt = 0.2004 s → ~4.99 Hz
[INFO] [1750172477.422895917] [frequency_tracker]: [/zed_multi/zed_rear_right/left/image_rect_color]: Δt = 0.0666 s → ~15.02 Hz
[INFO] [1750172477.430560675] [frequency_tracker]: [/zed_multi/zed_rear_right/right/image_rect_color]: Δt = 0.0666 s → ~15.02 Hz
[INFO] [1750172477.479114840] [frequency_tracker]: [/zed_multi/zed_front_right/left/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172477.486834284] [frequency_tracker]: [/zed_multi/zed_front_right/right/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172477.503901421] [frequency_tracker]: [/zed_multi/zed_rear_left/left/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172477.527189378] [frequency_tracker]: [/zed_multi/zed_rear_left/right/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172477.533273724] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color]: Δt = 0.0661 s → ~15.13 Hz
[INFO] [1750172477.545484558] [frequency_tracker]: [/zed_multi/zed_front_left/right/image_rect_color]: Δt = 0.0661 s → ~15.13 Hz
[INFO] [1750172477.550526325] [frequency_tracker]: [/zed_multi/zed_rear_right/left/image_rect_color]: Δt = 0.1337 s → ~7.48 Hz
[INFO] [1750172477.561743954] [frequency_tracker]: [/zed_multi/zed_rear_right/right/image_rect_color]: Δt = 0.1337 s → ~7.48 Hz
[INFO] [1750172477.638835450] [frequency_tracker]: [/zed_multi/zed_front_right/left/image_rect_color]: Δt = 0.0665 s → ~15.05 Hz
[INFO] [1750172477.645281732] [frequency_tracker]: [/zed_multi/zed_front_right/right/image_rect_color]: Δt = 0.0665 s → ~15.05 Hz
[INFO] [1750172477.657112711] [frequency_tracker]: [/zed_multi/zed_rear_left/left/image_rect_color]: Δt = 0.1334 s → ~7.50 Hz
[INFO] [1750172477.663783080] [frequency_tracker]: [/zed_multi/zed_rear_right/left/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172477.670082456] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color]: Δt = 0.1338 s → ~7.48 Hz
[INFO] [1750172477.674899945] [frequency_tracker]: [/zed_multi/zed_rear_left/right/image_rect_color]: Δt = 0.1334 s → ~7.50 Hz
[INFO] [1750172477.680580692] [frequency_tracker]: [/zed_multi/zed_front_left/right/image_rect_color]: Δt = 0.1338 s → ~7.48 Hz
[INFO] [1750172477.685658777] [frequency_tracker]: [/zed_multi/zed_rear_right/right/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172477.759661607] [frequency_tracker]: [/zed_multi/zed_front_right/left/image_rect_color]: Δt = 0.2001 s → ~5.00 Hz
[INFO] [1750172477.772759795] [frequency_tracker]: [/zed_multi/zed_front_right/right/image_rect_color]: Δt = 0.2001 s → ~5.00 Hz
[INFO] [1750172477.789073876] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color]: Δt = 0.1337 s → ~7.48 Hz
[INFO] [1750172477.799244542] [frequency_tracker]: [/zed_multi/zed_rear_left/left/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172477.804879915] [frequency_tracker]: [/zed_multi/zed_rear_right/left/image_rect_color]: Δt = 0.0668 s → ~14.97 Hz
[INFO] [1750172477.814410609] [frequency_tracker]: [/zed_multi/zed_front_left/right/image_rect_color]: Δt = 0.1337 s → ~7.48 Hz
[INFO] [1750172477.819275839] [frequency_tracker]: [/zed_multi/zed_rear_left/right/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172477.824928236] [frequency_tracker]: [/zed_multi/zed_rear_right/right/image_rect_color]: Δt = 0.0668 s → ~14.97 Hz
[INFO] [1750172477.906137955] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color]: Δt = 0.1324 s → ~7.55 Hz
[INFO] [1750172477.921262263] [frequency_tracker]: [/zed_multi/zed_front_left/right/image_rect_color]: Δt = 0.1324 s → ~7.55 Hz
[INFO] [1750172477.927340754] [frequency_tracker]: [/zed_multi/zed_rear_right/left/image_rect_color]: Δt = 0.1331 s → ~7.51 Hz
[INFO] [1750172477.933305201] [frequency_tracker]: [/zed_multi/zed_rear_right/right/image_rect_color]: Δt = 0.1331 s → ~7.51 Hz
[INFO] [1750172477.959794044] [frequency_tracker]: [/zed_multi/zed_rear_left/left/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172477.964553135] [frequency_tracker]: [/zed_multi/zed_front_right/left/image_rect_color]: Δt = 0.1334 s → ~7.49 Hz
[INFO] [1750172477.993271706] [frequency_tracker]: [/zed_multi/zed_front_right/right/image_rect_color]: Δt = 0.1334 s → ~7.49 Hz
[INFO] [1750172478.004332510] [frequency_tracker]: [/zed_multi/zed_rear_left/right/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172478.048543760] [frequency_tracker]: [/zed_multi/zed_rear_right/left/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172478.055768185] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172478.070756692] [frequency_tracker]: [/zed_multi/zed_front_left/right/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172478.076059472] [frequency_tracker]: [/zed_multi/zed_rear_right/right/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172478.094916292] [frequency_tracker]: [/zed_multi/zed_rear_left/left/image_rect_color]: Δt = 0.2667 s → ~3.75 Hz
[INFO] [1750172478.102370212] [frequency_tracker]: [/zed_multi/zed_rear_left/right/image_rect_color]: Δt = 0.2667 s → ~3.75 Hz
[INFO] [1750172478.114366207] [frequency_tracker]: [/zed_multi/zed_front_right/left/image_rect_color]: Δt = 0.1998 s → ~5.00 Hz
[INFO] [1750172478.131047026] [frequency_tracker]: [/zed_multi/zed_front_right/right/image_rect_color]: Δt = 0.1998 s → ~5.00 Hz
[INFO] [1750172478.179135197] [frequency_tracker]: [/zed_multi/zed_rear_right/left/image_rect_color]: Δt = 0.1334 s → ~7.50 Hz
[INFO] [1750172478.197022299] [frequency_tracker]: [/zed_multi/zed_front_left/left/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172478.223689504] [frequency_tracker]: [/zed_multi/zed_rear_right/right/image_rect_color]: Δt = 0.1334 s → ~7.50 Hz
[INFO] [1750172478.228366710] [frequency_tracker]: [/zed_multi/zed_front_left/right/image_rect_color]: Δt = 0.1333 s → ~7.50 Hz
[INFO] [1750172478.275419182] [frequency_tracker]: [/zed_multi/zed_front_right/left/image_rect_color]: Δt = 0.1334 s → ~7.50 Hz
[INFO] [1750172478.284908406] [frequency_tracker]: [/zed_multi/zed_front_right/right/image_rect_color]: Δt = 0.1334 s → ~7.50 Hz

Here are the informations from rqt:

It is visible that the first camera has many frame drops… But over time the publishing frequency will somehow descreasing over time for all cameras. But the pattern of how fast and which camera will have a decreasing frame rate seems to be random…

I recommend you perform the same type of tests using our Benchmark package and trying the node composition with IPC to reduce the communication overhead:

I have done the benchmark tests (screen shot below). Our main issue currently is that we can observe using the benchmark test, that there is a jitter of serveral Hz. Is that normal?

Downscale the compressed images by factor 2.0 seems more or less to work (but the frame rate still drops over time - see below), but when we don’t downsample the image the publishing rate drops to about 10 Hz.

Are there other running processes that could explain random jitter?

No, I have tested it with our own launch file, where we start several other nodes, but also running only the ZED-multi node with four cameras the jitter seems to be the same: