Using the OptiTrack camera over the network

In order to use the OptiTrack camera you need to connect it to a PC running Windows XP. It is recommended to run Windows in a virtual machine on the Mac that will use the data. This minimizes the network delay and creates a more stable connection.
On the windows machine you need to install the DataStreamRelayServer. A working image is on oliver in: Public->Software->Motion Tracking Disk Images. You might need to ask your supervisor to get it.

  1. Install Visual Studio
  2. Install Bonjour
  3. Install the OptiTrack SDK (found on oliver: Public->Software->Device Dependent Software->OptiTrack)
  4. Get the current version of the DataStreamRelayServer from git:
git clone ssh://oliver.informatik.rwth-aachen.de/Public/Software/i10%20Software/Vicon/VICONDataStream/Emitter
cd Emitter
git branch --track OptiTrack origin/OptiTrack
git checkout OptiTrack




To start the stream simply start the RelayServer. OptiTrack - StartScreen.png




On the Mac Side you need the ViconDataStreamFramework. Include it to your project (Important: the project is not allowed to use ARC since it has to run on 32bit which doesn't support ARC)

  1. Drag the framework into the 'Linked Frameworks&Binaries Section'
  2. Set the Target to 32bit (Target - Build Settings) OptiTrack - Set to 32bit.jpg
  3. Add a 'Copy Files' Build Phase, set the destination to 'Frameworks' and add the framework OptiTrack - Include Framework.jpg
  4. Change the implementation of the window property (add the IBOutlet as an ivar and change 'synthesize window=_window' to 'synthesize window')



Now you can access the stream using the following code in your project. These methods were created for the Vicon system but they also work for OptiTrack.

// Include Framework
#import <ViconDataStreamFramework/ViconDataStreamFramework.h>	
// Setup:
vicon = [[VDSVicon alloc] initWithBonjour];
vicon.delegate = self;
		
// Delegate method:
-(void)viconIsReady:(VDSVicon*)theVicon;
{
   [theVicon startStream:kVDSUnlabeledMarkerStreamType withTarget:self andSelector:@selector(viconDidReceiveFrame:markers:)];
}

// Data processing method:
-(void)viconDidReceiveFrame:(NSNumber *)theFrame markers:(NSDictionary *)theMarkers;
{
   NSLog(@"%@: %@", theFrame, theMarkers);
   // theMarkers is a dictionary of markers. The keys are a unique name like, “<unlabeled> 1”. The values are arrays of x, y, z.

}


// Stop:
[vicon stopStream:kVDSUnlabeledMarkerStreamType];

When the connection is established you can adjust the exposure, threshold and intensity of the camera on the windows machine.

  • To control the exposure: hold 'e' and use the up/down arrow keys
  • To control the intensity: hold 'i' and use the up/down arrow keys
  • To control the threshold: hold 't' and use the up/down arrow keys

OptiTrack - ScreenWithImage.png

OptiTrack - ScreenWithImageBad.png

Attachments:
File Description File size Downloads Last modified
ViconDataStreamFramework.framework 0.11.zip ViconDataStreamFramework v0.11 131 kB 784 2012-03-29 09:26

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.