#1
|
|||
|
|||
changing the gain of a joystick during a program
Hi,
I want to change the gain of the joystick by altering the scalar constant (in this case MOVE_SPEED)- so effectively the speed will alter - at a certain point in my program (22secs in). Here's what I have so far: Code:
def UpdateJoystick1(): #Get the joystick position x,y,z = joy.getPosition() #Move the viewpoint forward/backward based on y-axis value if abs(y) > 0.0001: #Make sure value is above a certain threshold viz.MainView.move(0,0,-y*MOVE_SPEED,viz.BODY_ORI) #Move the viewpoint left/right based on x-axis value if abs(x) > 0.001: #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.001: #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,UpdateJoystick1) def UpdateJoystick2(): #Get the joystick position x,y,z = joy.getPosition() #Move the viewpoint forward/backward based on y-axis value if abs(y) > 0.0001: #Make sure value is above a certain threshold viz.MainView.move(0,0,-y*MOVE_SPEED2,viz.BODY_ORI) #Move the viewpoint left/right based on x-axis value if abs(x) > 0.001: #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.001: #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.ontimer2(22,0,UpdateJoystick2) Any help - as usual - will be greatly appreciated! |
#2
|
|||
|
|||
UpdateJoystick1 is being called every frame. UpdateJoystick2 is only called once after 22 seconds. I don't think you need two different functions here. You could just change the value of MOVE_SPEED after 22 seconds.
|
#3
|
|||
|
|||
I tried using this code
Code:
def UpdateJoystick1(): #Get the joystick position x,y,z = joy.getPosition() #Move the viewpoint forward/backward based on y-axis value if abs(y) > 0.0001: #Make sure value is above a certain threshold viz.MainView.move(0,0,-y*MOVE_SPEED,viz.BODY_ORI) #Move the viewpoint left/right based on x-axis value if abs(x) > 0.001: #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.001: #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,UpdateJoystick1) def MOVE_SPEEDCH(): MOVE_SPEED=0 vizact.ontimer(22,MOVE_SPEEDCH) |
#4
|
|||
|
|||
You need to declare the MOVE_SPEED variable as global in your MOVE_SPEEDCH function.
Code:
def MOVE_SPEEDCH(): global MOVE_SPEED MOVE_SPEED=0 vizact.ontimer(22,MOVE_SPEEDCH) |
#5
|
|||
|
|||
Thank you poppet - you're a star - works beautifully!
|
Thread Tools | |
Display Modes | Rate This Thread |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
How to get the data from Logitech G25 racing wheel ? | fuyonggang | Vizard | 4 | 12-18-2008 06:14 PM |
writing joystick position to a data file | Saz | Vizard | 3 | 12-17-2008 05:18 AM |
Joystick Navigation | Vinicius Lima | Vizard | 7 | 10-23-2007 10:42 AM |
Facetracking and Immersion Joystick | Vygreif | Vizard | 1 | 01-25-2006 10:56 AM |
Basic Joystick Navigation Question | Plasma | Vizard | 2 | 01-29-2004 07:08 PM |