Multiple cameras timestamp sync issue

Please provide the following info (tick the boxes after creating this topic):
Software Version
DRIVE OS 6.0.10.0
DRIVE OS 6.0.8.1
DRIVE OS 6.0.6
DRIVE OS 6.0.5
DRIVE OS 6.0.4 (rev. 1)
DRIVE OS 6.0.4 SDK
other

Target Operating System
Linux
QNX
other

Hardware Platform
DRIVE AGX Orin Developer Kit (940-63710-0010-300)
DRIVE AGX Orin Developer Kit (940-63710-0010-200)
DRIVE AGX Orin Developer Kit (940-63710-0010-100)
DRIVE AGX Orin Developer Kit (940-63710-0010-D00)
DRIVE AGX Orin Developer Kit (940-63710-0010-C00)
DRIVE AGX Orin Developer Kit (not sure its number)
other

SDK Manager Version
2.1.0
other

Host Machine Version
native Ubuntu Linux 20.04 Host installed with SDK Manager
native Ubuntu Linux 20.04 Host installed with DRIVE OS Docker Containers
native Ubuntu Linux 18.04 Host installed with DRIVE OS Docker Containers
other

Issue Description

Hi,
In our setup we’re using 6 cameras: 4 connected to deserializer A, 2 connected to deserializer C, all recorded at 15FPS (frame-mod=2). to verify the alignment between the cameras I ran the following test:

  1. record using driveworks recorder (with the attached rig)
  2. extract all frames
  3. align the frames to maintain only the overlapping frames from when all cameras are up
  4. take footage of a timer running over the screen with all cameras
  5. show all frames in a collage to see if they’re truly aligned, meaning all frames will show same timestamp + the timer will show the same time in the image.

I shared here (attached) a few examples from this test and the results are as follows:

  1. these cameras are all synced to the millisecond: rear_left, rear_center, front_right, front_left. you can see they have the same timestamp printed (i took it from the timestamps file) and they display the same timer time.
  2. these cameras are synced but 33ms delayed relative to cameras in (1): rear_right, front_center.

I thought that this could be related to the fact that they’re on different deserializers but in fact as you can see from the rig:

  1. front_center, rear_center, front_right, rear_right are connected to deserializer A.
  2. rear_right, rear_left are connected to deserializer C.

so it seems unrelated.

My questions are:

  1. is this epxected behavior? we’re expecting all cameras from all deserializers to be sycned (according to the GPIO signal).
  2. how can this be solved? we would like all cameras to be synced to the same timestamp.


    online_rig.txt (8.9 KB)

Dear @al.es,
Just to clarify, when using recorder tool to record, the initialization time for each camera could vary. so the first frame timestamp of each camera can be different. You can chop first few frame of each camera and use.

Hi @SivaRamaKrishnaNV , thanks for replying.
I’m aware of this. that’s why I’m only displaying frames from the first moment all cameras are up. there shouldn’t be 33ms time difference between the cameras. even if they init in different times, they should be synced.
can you please reply to my questions?

Did you chop the videos from a specific timestamp or just replaying the recorded video as it is?

I chopped from a specific timestamp.
but for every timestamp that i pick (after all cameras are up) I can see that 4 cameras share the same timestamp accuracy in milliseconds and 2 others a timestamp with 33ms offset relative to the other 4.

@SivaRamaKrishnaNV Hi, any update on this topic? It’s still a gap

Dear @al.es ,
Could you check if enabing fsync-groups like in The usage of cam_fsync_program_abs_start_value API to control camera fsync - #4 by chobr84 helps?