WorldViz User Forum  

Go Back   WorldViz User Forum > Vizard

Reply
 
Thread Tools Rate Thread Display Modes
  #1  
Old 10-20-2007, 03:43 PM
Vinicius Lima Vinicius Lima is offline
Member
 
Join Date: Jul 2007
Posts: 40
Joystick Navigation

Hi,

I am trying to use a joystick to navigate in interior spaces. So, I would like to be able to look up and down at the ceiling and floor and so far, my script is not doing that. I pasted the script I am using here and if I could get the information I am missing it would be great.

Thanks!

Vinicius


import viz
import vizjoy
viz.go()

#Add a ground model
viz.add('tut_ground.wrl')

#Add a joystick
joy = vizjoy.add()

def UpdateJoystick():
#Get the joystick position
x,y,z = joy.getPosition()
#Get the twist of the joystick
twist = joy.getTwist()
#Move the viewpoint forward/backward based on y-axis value
if abs(y) > 0.2: #Make sure value is above a certain threshold
viz.MainView.move(0,0,-y*0.1,viz.BODY_ORI)
#Move the viewpoint left/right based on x-axis value
if abs(x) > 0.2: #Make sure value is above a certain threshold
viz.MainView.move(x*0.1,0,0,viz.BODY_ORI)
#Turn the viewpoint left/right based on twist value
if abs(twist) > 0.2: #Make sure value is above a certain threshold
viz.MainView.rotate(0,1,0,twist,viz.BODY_ORI,viz.R ELATIVE_WORLD)

#UpdateJoystick every frame
vizact.ontimer(0,UpdateJoystick)

#Register a callback for joystick button events
def onjoybutton(e):
print 'Joystick button',e.button,'pressed'
viz.callback(vizjoy.BUTTONDOWN_EVENT,onjoybutton)
Reply With Quote
  #2  
Old 10-22-2007, 12:50 PM
farshizzo farshizzo is offline
WorldViz Team Member
 
Join Date: Mar 2003
Posts: 2,849
Can you please repost your script using the [code][/code] tags?
Reply With Quote
  #3  
Old 10-22-2007, 02:08 PM
Vinicius Lima Vinicius Lima is offline
Member
 
Join Date: Jul 2007
Posts: 40
Hi,

is that the way I'm supposed to do it?



Code:
import viz
import vizjoy
viz.go()

#Add a ground model
viz.add('tut_ground.wrl')

#Add a joystick
joy = vizjoy.add()

def UpdateJoystick():
#Get the joystick position
x,y,z = joy.getPosition()
#Get the twist of the joystick
twist = joy.getTwist()
#Move the viewpoint forward/backward based on y-axis value
if abs(y) > 0.2: #Make sure value is above a certain threshold
viz.MainView.move(0,0,-y*0.1,viz.BODY_ORI)
#Move the viewpoint left/right based on x-axis value
if abs(x) > 0.2: #Make sure value is above a certain threshold
viz.MainView.move(x*0.1,0,0,viz.BODY_ORI)
#Turn the viewpoint left/right based on twist value
if abs(twist) > 0.2: #Make sure value is above a certain threshold
viz.MainView.rotate(0,1,0,twist,viz.BODY_ORI,viz.R ELATIVE_WORLD)

#UpdateJoystick every frame
vizact.ontimer(0,UpdateJoystick)

#Register a callback for joystick button events
def onjoybutton(e):
print 'Joystick button',e.button,'pressed'
viz.callback(vizjoy.BUTTONDOWN_EVENT,onjoybutton)
Reply With Quote
  #4  
Old 10-22-2007, 02:11 PM
farshizzo farshizzo is offline
WorldViz Team Member
 
Join Date: Mar 2003
Posts: 2,849
No, you need to copy the code from Vizard then paste it into the form inside the code tags. The reason this is necessary is because it will preserve the original indentation of your code. Without the indentation, I cannot run your code.
Reply With Quote
  #5  
Old 10-22-2007, 02:14 PM
Vinicius Lima Vinicius Lima is offline
Member
 
Join Date: Jul 2007
Posts: 40
I'm trying again.

Code:
import viz
import vizjoy
viz.go()

#Add a ground model
viz.add('tut_ground.wrl')

#Add a joystick
joy = vizjoy.add()

def UpdateJoystick():
    #Get the joystick position
    x,y,z = joy.getPosition()
    #Get the twist of the joystick
    twist = joy.getTwist()
    #Move the viewpoint forward/backward based on y-axis value
    if abs(y) > 0.2: #Make sure value is above a certain threshold
        viz.MainView.move(0,0,-y*0.1,viz.BODY_ORI)
    #Move the viewpoint left/right based on x-axis value
    if abs(x) > 0.2: #Make sure value is above a certain threshold
        viz.MainView.move(x*0.1,0,0,viz.BODY_ORI)
    #Turn the viewpoint left/right based on twist value
    if abs(twist) > 0.2: #Make sure value is above a certain threshold
        viz.MainView.rotate(0,1,0,twist,viz.BODY_ORI,viz.RELATIVE_WORLD)

#UpdateJoystick every frame
vizact.ontimer(0,UpdateJoystick)

#Register a callback for joystick button events
def onjoybutton(e):
    print 'Joystick button',e.button,'pressed'
viz.callback(vizjoy.BUTTONDOWN_EVENT,onjoybutton)
Reply With Quote
  #6  
Old 10-22-2007, 03:04 PM
farshizzo farshizzo is offline
WorldViz Team Member
 
Join Date: Mar 2003
Posts: 2,849
I tried your script and the behavior I get is that moving the joystick forward/backward will move the viewpoint forward/backward. Moving the joystick left/right will move the viewpoint left/right. Turning the joystick will also turn the viewpoint. Is this not what you want? I don't understand what the problem is.
Reply With Quote
  #7  
Old 10-23-2007, 11:39 AM
Vinicius Lima Vinicius Lima is offline
Member
 
Join Date: Jul 2007
Posts: 40
well, what I am trying to do is be able to navigate in a room and look up and down as well (at the ceiling and the floor). So far, with this script I haven't been able to.
Reply With Quote
  #8  
Old 10-23-2007, 11:42 AM
farshizzo farshizzo is offline
WorldViz Team Member
 
Join Date: Mar 2003
Posts: 2,849
You've programmed the script to move the viewpoint when the joystick is moved. If you want the viewpoint to look up/down when the joystick is moved, then use the viewpoint.rotate() command instead of the viewpoint.move() command.
Reply With Quote
Reply

Thread Tools
Display Modes Rate This Thread
Rate This Thread:

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


All times are GMT -7. The time now is 01:41 AM.


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