WorldViz User Forum  

Go Back   WorldViz User Forum > Vizard

 
 
Thread Tools Rate Thread Display Modes
Prev Previous Post   Next Post Next
  #6  
Old 05-01-2012, 11:55 PM
victorqx victorqx is offline
Member
 
Join Date: Apr 2012
Posts: 15
What I've noticed is that the Kinect is indeed not an incredibly accurate tracking system. For our purposes at this moment it is sufficient, but in the future we will want a much more accurate system. However, the scenario as I was describing it, didn't seem to have anything to do with the Kinect, since I didn't change the tracking solution between the scripts where I used either caveorigin or the scene node.

Some code of our setup:
The screens are setup at an angle of 90 degrees. The Kinect is setup directly in the middle, which means that it 'looks' at an angle of 45 degrees of the screens. In this setup, each screen is setup diagonally according to the cave coordinates, like so:

Code:
       #""" Setup CAVE walls
	W = 0.94
	H = 0.531
	D = 0.94
	TABLEHEIGHT = 0.79
	SQRT2 = 0.7071
	
	C0 = -SQRT2*W,  H+TABLEHEIGHT, -SQRT2*D
	C1 = -SQRT2*W,  H+TABLEHEIGHT, -SQRT2*D
	C2 =  0,  		H+TABLEHEIGHT,  0
	C3 =  SQRT2*W,  H+TABLEHEIGHT, -SQRT2*D
	C4 = -SQRT2*W,  TABLEHEIGHT,   -SQRT2*D
	C5 = -SQRT2*W,  TABLEHEIGHT,   -SQRT2*D
	C6 =  0,	    TABLEHEIGHT,    0
	C7 =  SQRT2*W,  TABLEHEIGHT,   -SQRT2*D

	viz.go(viz.FULLSCREEN)
	viz.mouse.setVisible(viz.OFF)
	
	cave = vizcave.Cave()
	
	FrontWall = vizcave.Wall(upperLeft=C1, upperRight=C2, lowerLeft=C5, lowerRight=C6, name='Front Wall' )	
	cave.addWall(FrontWall, mask=viz.MASTER) 

	BEZEL = 0.05
	C2 =  0+BEZEL,  	 H+TABLEHEIGHT,  0-BEZEL/2.0
	C3 =  SQRT2*W+BEZEL, H+TABLEHEIGHT, -SQRT2*D-BEZEL/2.0
	C6 =  0+BEZEL, 		 TABLEHEIGHT, 	 0-BEZEL/2.0
	C7 =  SQRT2*W+BEZEL, TABLEHEIGHT, 	-SQRT2*D-BEZEL/2.0
	RightWall = vizcave.Wall(upperLeft=C2, upperRight=C3, lowerLeft=C6, lowerRight=C7, name='Right Wall' )
	cave.addWall(RightWall, mask=viz.CLIENT1)
	#EO Setup CAVE walls"""
In the code below I am using the caveorigin for changing the location of the user within the virtual environment. In the scenario where I would change the scene, most code stays the same, except that I would add an extra node (with viz.addGroup()) and make that the parent of all other nodes. By changing this root node I can move/rotate the entire scene.

The Kinect is added to this mix like this:

Code:
 
       final = viz.addGroup()	
	
	#""" Use Kinect for headtracking
	HEAD = 0
	vrpn = viz.addExtension('vrpn7.dle')
	marker = vrpn.addTracker( 'Tracker0@localhost',HEAD )
	linkedView = viz.link(marker, final) # viz.MainView
	linkedView.setMask(viz.LINK_POS)
	linkedView.postScale([1, 1, -1])
	linkedView.postTrans([0, 1.5, 0])
	# Use Kinect for headtracking"""

	cave.setTracker(pos=final)
	caveorigin = vizcave.CaveView(final)
And we use the Space navigator like so:

Code:
        #"""use Space Navigator for movement
	def spacemove(e):	
		position = caveorigin.getPosition()
		moveTo = vizact.move(e.pos[0]*0.333, e.pos[1]*0.1, e.pos[2]*0.333, e.elapsed*0.5)
		caveorigin.clearActionList()
		caveorigin.addAction(moveTo)	
	viz.callback(vizspace.TRANSLATE_EVENT,spacemove)

	def spacerot(e):
		angles = caveorigin.getAxisAngle()
		if angles[1] < 0:
			angles[3] = -angles[3]
		caveorigin.setAxisAngle([0,1,0,e.ori[1]*e.elapsed + angles[3]])
	viz.callback(vizspace.ROTATE_EVENT,spacerot)
	#EO use Space Navigator for forward/backward/rotation and keyboard PageUp/PageDown for up/down"""
So, with this setup I can add things to the scene, have the Kinect do headtracking and use the Space Navigator for movement within the virtual environment. As I mentioned, we seem to observe a difference in experience between using the caveorigin for navigation or the root scene node. It is a somewhat subtle difference, but people kept indicating that they felt objects 'moving away' from them when using the caveorigin, but thought they remained static (although still 'zooming out') when using the scene node for navigation.

Again, I'm having a hard time reproducing this in a movie or with camera stills. We'll be getting our 3d screens soon and I'll see if that improves this further. Perhaps it has something to do with the fact that our Kinect is for position tracking only and we don't use any rotation for our headtracking?

Thanks again and kind regards,

Victor
Reply With Quote
 

Tags
headtracking, vizcave


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Using vizcave without tracking pcatalano Vizard 3 01-08-2013 10:17 AM
Jumping and Noise in head tracking cyclonseye Vizard 7 08-02-2010 10:25 AM
Head tracking, Flock of Birds and vizcave; how do I connect them? Arandia Vizard 2 08-26-2009 04:59 PM
Head tracking logging & realtime data tmcw Vizard 2 08-18-2007 10:31 AM
tracking head rotation orientation VAmanda Vizard 3 09-21-2005 04:57 PM


All times are GMT -7. The time now is 11:43 AM.


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