Camera Synchronization

Birch
Posts: 1139
Joined: Thu Jan 30, 2003 5:00 am
Location: Corvallis, Oregon

Re: Camera Synchronization

Post by Birch »

We have determined that there is currently an issue with the Frame ID synchronization for V100s and are looking in to it further. As mentioned by Jim above, the actual exposure time of the cameras is properly synchronized automatically, the Frame IDs are just not getting aligned.

You can try using INPCameraFrame::get_TimeStamp to roughly gauge whether the frames arrived over USB at the same time, it is a reasonable indicator as long as there isn't too high of a system load.
kjjohnsen
Posts: 12
Joined: Mon Oct 01, 2007 12:39 pm

Re: Camera Synchronization

Post by kjjohnsen »

ok, any idea when I can expect a fix for the problem?
kjjohnsen
Posts: 12
Joined: Mon Oct 01, 2007 12:39 pm

Re: Camera Synchronization

Post by kjjohnsen »

That did the trick. Checking if the timestamps fell within 1000000 of whatever that timeval (double) is worked like a charm. Cameras synced great now. Thanks.
Birch
Posts: 1139
Joined: Thu Jan 30, 2003 5:00 am
Location: Corvallis, Oregon

Re: Camera Synchronization

Post by Birch »

A new OptiTrack SDK release (build 032 beta 3) which fixes the FrameID issue for V100 cameras should be posted in a day or so. It will no longer be necessary to call Synchronize() when using V100s, the cameras will synchronize themselves automatically once started.

edit : the new release is now posted.
beckdo
Posts: 520
Joined: Tue Jan 02, 2007 2:02 pm

Re: Camera Synchronization

Post by beckdo »

This camera synchronization improvement is available now by downloading our latest OptiTrack SDK. When using the latest SDK and the V100 cameras, FrameIDs will automatically by synchronized. Prior to this SDK release, the camera shutter's were synchronized by not the FrameIDs.

I think you'll find this change to be a nice improvement to the overall camera system.
leith
Posts: 194
Joined: Tue Jan 02, 2007 2:17 pm

Re: Camera Synchronization

Post by leith »

So, just for clarification purposes:

When cameras are synced what is the correct way of matching up data? Should the data arrive at roughly the same time? Or should they have matching IDs?

I had assumed that the data arrival time was not guaranteed, but the IDs would match, and therefore, as long as you cached frames and reassembled them into bundles by ID before processing, you'd be good. It sounds like thats how it will work now. However, the method of checking arrival times, was that the originally intended method? Or a workaround? Or an alternative that should be done in parallel and checked for agreement?

Also, it sounds like the cameras are synced by default on system start now. What about when you add a camera to an already running system? Do cameras automatically sync once the cables are attached correctly? When should the Synchronize function be called and when is it not necessary? Is there a way to query the cameras as to if they believe they are synced beyond checking the arrival time against the IDs?
beckdo
Posts: 520
Joined: Tue Jan 02, 2007 2:02 pm

Re: Camera Synchronization

Post by beckdo »

Prior to the last OptiTrack SDK, you could only count on the shutters being synchronized and the data coming in at roughly the same time. Although with this alone, you can do nice job of synchronizing the data under some circumstances (high camera counts or using an under performing PC) the arrival times of the frames can get spread out pretty significantly making it harder to properly synchronize frames.

The latest OptiTrack SDK has updated camera firmware that make the FrameIDs from the cameras synchronize as well. This allows you to form frame groups by simply matching up FrameIDs.

If you have cameras that are not connected together via the synchronization cables you should attempt to make frame groups by frame arrival times and using the timestamps.

If you're looking to make a robust frame grouping, it's a good idea to be able to drop back to using timestamps if the frameIDs don't match because that would signify that you don't have synchronization cables connected. If you don't want any data to flow when cameras aren't synchronized, then you could just alert the user as opposed to attempting to make 'best guess' frame groups from timestamps.

When you add a camera to the system it will immediately synchronize both it's shutter and it's frameIDs automatically.

I'll check on that last question for you.
leith
Posts: 194
Joined: Tue Jan 02, 2007 2:17 pm

Re: Camera Synchronization

Post by leith »

Thanks Doug.

I've got one more. And this one is an odd one.

What if you have two computers, each with a single camera, and you connect the two cameras with a sync cable? Will this ruin sync, as they cameras can't talk via USB? Will the cameras sync their shutters but not their IDs? Will the cameras sync their shutters and IDs?

This scenario would assume that the frames would be merged together farther down the processing line as the two computers communicate and merge their data streams.
Birch
Posts: 1139
Joined: Thu Jan 30, 2003 5:00 am
Location: Corvallis, Oregon

Re: Camera Synchronization

Post by Birch »

Brad,

As long as the cameras are both V100s and are connected together using the sync cable, the exposure and FrameIDs will be synchronized, even if they are connected to different computers. In theory, yes, it would allow for cameras connected to different computers to have their frames merged downstream based on the FrameID values. We haven't tried it yet, but there is some potential there ;)

(this all assumes the latest OptiTrack SDK v 1.1.032 beta 03 or higher is used)
beckdo
Posts: 520
Joined: Tue Jan 02, 2007 2:02 pm

Re: Camera Synchronization

Post by beckdo »

We are trying to implement our camera synchronization in a manner that will facilitate a distributed camera environment. So you will be pleasantly surprised when you hooked cameras up in the configuration you've described.

To follow-up on your previous question. Unfortunately there is no way to query the camera and determine it's synchronization status currently. We hope to add some additional hardware support in the future so that we can add the query in the future.
Post Reply