Timestamp synchronization

Post Reply
jmckisson
Posts: 7
Joined: Tue Apr 30, 2013 9:14 am

Timestamp synchronization

Post by jmckisson »

I have a small system of a few Flex13 cameras that I need to synchronize with another data collection system. I have a few questions regarding timestamps reported by the TT_API�

I understand from reading other forum posts that the timestamp of a frame is assigned when the frame data reaches the PC. What about timestamps reported by TT_FrameTimeStamp? Is this the time at which the individual frame data was received, or the time at which the 3d rigid body location solution was achieved? If it is the latter, is there a method of determining the time it took to reach a solution?

I also need to know when the time epoch is reset. The time being reported seems to be a delta from some reset point (TT_Initialize?). Is there a way to -exactly- determine when this is set to zero (TT_Initialize seems to have some latency), and is there a way to manually reset this (or have the TT_FrameTimeStamp call just return system time?)

John
NaturalPoint-Dustin
Posts: 609
Joined: Tue Mar 19, 2013 5:03 pm

Re: Timestamp synchronization

Post by NaturalPoint-Dustin »

Timestamps start at zero when the TT API is initialized. There is no mechanism to reset them. If you need to have a reset mechanism cache a value at the time you'd like to reset and subtract that value from all future timestamp values.

TT_FrameTimeStamp() is the aggregate time that the frames reached the PC. There is a very small variance between frame arrivals on modern PCs. If you're using cameras from out Ethernet product line, Timestamps are calculated on the camera and their accuracy is +/- 5 microseconds. For our USB product line, the accuracy is more like +/- 0.1 milliseconds.

There is no query for when the solution of the rigid body is reached. In our software, which is callback based, the RBs are typically solved and complete within a millisecond.

With the Motive API, the time it's completed is effectively some time after TT_Update is called. If you're trying to minimize that time, you'll want to use the callback notifications to tell you when you need to call TT_Update so it can be called immediately after incoming frames are received.
Dustin
Technical Support Engineer
OptiTrack | TrackIR | SmartNav
Post Reply