View Single Post
  #1  
Old 01-30-2015, 08:18 AM
vserchi vserchi is offline
Member
 
Join Date: Sep 2013
Posts: 7
Connecting Vizard and NDI Optotrak

Hi,
I am trying to connect Vizard with Optotrak (Vizard 4.0 Enterprise). I have tried both through a Ethernet connection both through serial port. I have failed in both the cases and probably there is something I don’t get about it.

Ethernet connection:

My code:

Code:
import viz
viz.go()
opto = viz.add('optotrak.dle',0,'169.254.187.18')  # 192.219.236.23 sensor adding 
body = opto.getBody(0)                                                 # first rigid body adding
viz.link(body, viz.MainView)
Error:
** ERROR: Failed to connect to Optotrak server at 169.254.187.18:3020
** ERROR: Failed to create extension: optotrak.dle
Traceback (most recent call last):
File "<string>", line 11, in <module>
File "F:\VRproject\Vizard1.py", line 6, in <module>
body = opto.getBody(0) #first rigid body adding
** Load Time: 21.53 seconds
AttributeError: 'VizExtension' object has no attribute 'getBody'

Probably I am setting wrong the port number or the IP address (or both). I have looked for the IP address of the connection through the cmd -> ipconfig -> netstat –a.
Q1. Any suggestion on what I may try to make it working?
Q2. What does the ‘0’ in opto = viz.add('optotrak.dle',0,'169.254.187.18') mean? Should I change it?

Serial connection: (serial to USB port in the computer running Vizard)

I tried to run a couple of examples I found in the forum.

My code:

First attempt:
Code:
import serial 
import viz
viz.go()
ser = serial.Serial(2, 4800, timeout=1)     #ser = serial.Serial('COM3'); 
while True:
                x = ser.read() 
                print x
Second attempt:
Code:
import serial 
import viz
viz.go()
while True:
                buffer = buffer + ser.read(ser.inWaiting())
                if '\n' in buffer:
                                lines = buffer.split('\n')  # Splits buffer block into lines
                                last_received = lines[-2]
                                buffer = lines[-1]
                                print last_received
I don’t get any error in this case but I didn’t get anything print as output. In the first case as output I got blank lines. In the second case it never passes through the if control.
Q3. I don’t know if I don’t receive anything or if didn’t understand how is the form of the output from the serial port. Any idea? Where can I read more about that? Do you have any example on how to connect Vizard and Optotrack through the serial port?

I have two different serial ports on the Optotrack unit. One seems to be for data and one for timing stuff. I have tried to make the connection with both but anything changed.
Q4. Do you know which one have I to use?

I really appreciate any help you may give me.
Valeria
Reply With Quote