PerkLab / MCSTrack

Multi-camera spatial tracking
MIT License
0 stars 4 forks source link

Temporal alignment between components #81

Closed vaughantnrc closed 2 months ago

vaughantnrc commented 3 months ago

In my recent test, the pose solver was using detector timestamps that clearly did not align with its own. It resulted in data being marked as "old" and discarded.

So we need a means of synchronizing the timestamps between different components.

I think the controller seems like the most logical part of the software to measure and adjust timestamps. In this scenario, if multiple clients connect to the same detector/pose solver, then the detector/pose solver does not need to keep different times for each client.

Question 1: How do we measure the temporal offsets?

It seems fairly straightforward to add endpoints to request the local time of the detector/pose solver... but it may be important to account for the duration of several round-trip request-response.

Question 2: How do we account for the temporal offset once it has been measured?

The controller will have to store the offset for each component, and add/subtract the offset whenever receiving/sending data.

vaughantnrc commented 3 months ago

Steps discussed o API to have time sync requests and appropriate responses o Detector to have a “time sync” mode o Detector to handle time sync requests and responses o Controller to send time sync requests and responses o Controller to calculate network latency o Controller to calculate time offset