Synchronization between two devices


I’d like to take a very fast depth picture of a moving object, from two ZED2i devices. In this case, timestamp difference between two pictures (from two devices) should be less than 1ms. I try to run grab for two devices parallelly in two threads. I compare getTimestamp(sl::TIME_REFERENCE::IMAGE).getMicroseconds() from two cameras. The result is at least 2ms and usually is something around 10-15ms.
I use parameters for grab:

depth_mode = sl::DEPTH_MODE::PERFORMANCE;
coordinate_units = sl::UNIT::MILLIMETER;  
depth_maximum_distance = 1400;
camera_resolution = sl::RESOLUTION::HD720;
camera_fps = 30;

Is it possible to make those grabs closer to each other? E.g. there could be same way of capturing pictures from devices without processing. When we decide that timestamps are close enough, we would process them on GPU to prepare a depth picture and so on.

Hi @mskr
are you connecting the two cameras to the same host device or to two different hosts.
In case the host is the same please be sure to connect the cameras to different USB3 channels in order to be able to acquire data in parallel.
In case the cameras are connected to two different hosts you must be sure that the system clocks of the machines are synchronized. You can look at our PTP documentation for that: