WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   Connecting Vizard and NDI Optotrak (https://forum.worldviz.com/showthread.php?t=5272)

vserchi 01-30-2015 08:18 AM

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 "", line 11, in
File "F:\VRproject\Vizard1.py", line 6, in
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

Jeff 02-02-2015 10:20 AM

Use optotrack.dle for establishing the connection. There could be an issue with the network connection or you've incorrectly specified the IP address. You can also try the Optotrack server name instead of IP address. Verify that the Vizard machine and Optotrack server can ping each other. Disable any firewalls/virus scanners on the machines as these may block network communication. Also, take a look at this video tutorial as it may help.

vserchi 02-03-2015 07:09 AM

4 Attachment(s)
Hi Jeff, thank you for replying.
I have disabled any firewalls and antivirus as you suggested. I have also checked the IP address I had inserted and if the Optotrak server and the Vizard machine can ping each other. It seems everything is correct in the information I am typing. I am attaching some screenshots about of my cmd window. Can you control if there is anything wrong or weird in what I am doing?
I have tried to add the port information following the IP address. the message error displayed is now different.

Code:

import viz
viz.go()

opto = viz.add('optotrak.dle',0,'169.254.187.18 : 139')
body = opto.getBody(0)                #first rigid body adding
viz.link(body, viz.MainView)

** ERROR: No data is being sent by Optotrak server at 169.254.187.18 :139
** ERROR: Failed to create extension: optotrak.dle
Traceback (most recent call last):
File "", line 11, in
File "I:\VRproject\Vizard1.py", line 6, in
body = opto.getBody(0) #first rigid body adding
AttributeError: 'VizExtension' object has no attribute 'getBody'


Where do I find the name of the Optotrak server?

Thank you,
Valeria

Jeff 02-06-2015 01:04 AM

You should verify with NDI support that data is being streamed from their software. If they provide a sample application to receive the data, see if that works for you.


All times are GMT -7. The time now is 06:39 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC