Zed X Camera Sync Issues


Please see attached.

Hi @anath93
why are you subscribing to /apriltag/camera_info and not to the correct /zed2i/zed_node/rgb/camera_info topic?

@Myzhar In my second screenshot, it is re-mapped right. That is how image transport is throwing out on the screen. This issue does not exist when I switch back to Zed2i camera.

Is that a bug of the other node?

Probably on the image transport side for grabbing the original topic name vs re-mapped one for the logger, I need to check. But this issue does not exist with zed2i.

This is happening when there are multiple subscribers to the node downstream for the camera topic and the camera info topic exceeds the 3 times image topic. Is there some modification which could be done to this on sdk side to incorporate for more image syncs possible ? OR simple hack on image transport will be to change the number to 4 from 3 but not sure if that should be done that way.


My current settings on camera are SVGA and 60 FPS.

I suggest you investigate the problem at a higher level.
First of all, you must understand why is says /apriltag/camera_info instead of the correct topic name.
In my opinion, that’s the key to the issue.

@Myzhar I am still looking into the Apriltags library for the same, as this is weird that changing the model number to Zed2i does not cause that error whereas for Zedx it does, there is one more error which caught my eye today and wanted to share, meaning it starts up fine and this error comes up. But I can still get data out of topics.

This is another type of error.
Is the camera correctly working?
Please be sure that when you stop the node the camera is correctly closed.
In case the ZED X is not reachable you can call the command sudo systemctl restart zed_x_daemon instead of rebooting, wait a few seconds before restarting the node to be sure that the ZED X driver correctly restarted.

@Myzhar I could not find any issue, as using Zed2i camera, I do not see the issue, but using ZedX I do see issue of dropping frame rate between calibration data and the synced pairs. My question is I am on 3.0.0 image transport version, do I need to be on the latest version or something, distro is foxy.

ZED X provides higher-resolution images at a higher framerate, according to the setting that you are using ROS 2 can drop frames.

If you need all the frames you can change the QoS setting to be sure that no message is dropped:

  • change qos_depth to an higher value, e.g. 50
  • be sure to use qos_reliability as RELIABLE

@Myzhar Thank you , I can try that out. But its under SVGA @ 60FPS (even tried 30 FPS and still the same) , I do not see issue with ZED2i VGA @ 60FPS or 30 FPS as I have both cameras for testing. AGX Orin was benchmarked for higher FPS, which I was looking but how do I know if driver or SDK gets released or any bugs were fixed as the scheme for naming remains same with original release driver or SDK ? Meaning just trying to see from the time time the topic is open is there any improvement made on driver or SDK ?

The ZED ROS2 Wrapper has a CHANGELOG reporting all the modifications step-by-step

@Myzhar @obraun-sl I have one more issue before getting to test the above post, I am using xserver-xorg-video-dummy and to remote in to my jetson orin but I am getting error like other posts where it is over ssh error


Do you want me to make another topic thread with this ?

1、sudo apt-get install xserver-xorg-video-dummy -y
2、Change /etc/X11/xorg.conf as follows:
Section “Device”
Identifier “Configured Video Device”
Driver “dummy”

Section “Monitor”
Identifier “Configured Monitor”
HorizSync 31.5-48.5
VertRefresh 50-70

Section “Screen”
Identifier “Default Screen”
Monitor “Configured Monitor”
Device “Configured Video Device”
DefaultDepth 24
SubSection “Display”
Depth 24
Modes “1280x720”

@anath93 the only working solution that we found is using a DisplayPort dummy plug that simulates a connected display:

The software solutions work for a Jetpack version and don’t for another, so there is not a valid configuration for each one.

You can try to ask on the NVIDIA Developers Forum, but normally they all advise using HDMI or DisplayPort dummy plugs.

@Myzhar I still cannot get to bottom of this dropping frames, I did get dummy DP port which fixed the problem of camera not opening but I dont know what I can do with this, I did change qos_depth to 50 but still the same. I am on 3.0.0 image transport layer and using cyclone dds.
Any input would be appreciated.

Just to add after 20 mins or so the image messages received drops to 0 and camera info topic still gets messages.

@anath93 I still cannot understand why this node subscribes to /apriltag/camera_info instead of /zedx/zed_node/rgb/image_rect_color/camera_info.
The problem is there.

What is this apriltag_node? Can I get access to its source code?

its GitHub - christianrauch/apriltag_ros: ROS2 node for AprilTag detection this branch built in colcon workspace GitHub - christianrauch/apriltag: AprilTags are a visual fiducial system popular for robotics research.

This does not happen when launching zed2i camera with just changing the model name.

The repository does not have reference concerning that error message, it’s strictly related with image_transport and image_transport does not know anything regarding /apriltag/camera_info unless someone is sending it.

Have you tried to invert the remapping command?


No I have not tried to invert the mapping around because the image transport node gets message in both with change in number, also this does not happen when just apriltags is running, when SLAM (rtabmap comes into play it does happen) but not on ZED2i. I have created map with swapping both cameras, where Zed2i had no issues with same setup except ZedX new one which I got recently.

Just a thought, I would suggest to test ZedX driver with multiple subscribers on stereo node and rgb node on jetson orin. (its something on driver side)

I have a suggestion, maybe to throttle the number of camer_info topic against the sync pairs may be ?