WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   orientation question (https://forum.worldviz.com/showthread.php?t=1783)

whj 01-19-2009 03:27 PM

orientation question
 
Hello,

Generally I have two ways to control orientation. One is to turn the viewpoint with head, the code would be like:

rot_data = ppt.getEuler()
viz.reset(viz.HEAD_ORI)
viz.rotate(viz.HEAD_ORI, rot_data[0], rot_data[1], rot_data[2])

In this way, the direction I can see is also my moving direction.

The other is to turn the viewpoint with twist value of joystick, the code would be like:
if abs(joy_rot) > 0.2:
angle = ANIMATE_RATE * TURN_SPEED * joy_rot
viz.MainView.rotate(0, 1, 0, angle, viz.HEAD_ORI, viz.RELATIVE_WORLD)

In this way, I can not change orientation by rotating my head.


So my question is, is there any way that I can use the twist value of joystick to control the walking direction while I can still change orientation by rotating my head. In other words, I can use joystick to control navigation while feel free to look around.

Thanks!

whj 01-19-2009 04:56 PM

I'm not sure if I make it clear. To solve this problem, I'm looking for a way to turn off the connection between the head orientation and the moving direction. The moving direction is controlled by only joystick.

whj 01-20-2009 10:15 AM

Basically I want to look around with HMD and move with joystick independently at the same time. Here is what I've done. Worked a little bit and then messed up. Does anybody know how to correct my code? Thanks a lot.

def mytimer(num):
global joy_pos, joy_rot

## Control orientation
rot_data = ppt.getEuler()
viz.MainView.setEuler(rot_data,viz.HEAD_ORI)

if abs(joy_rot) > 0.2:
angle = joy_rot*TURN_SPEED*viz.elapsed()
viz.MainView.rotate(0, 1, 0, angle, viz.BODY_ORI, viz.RELATIVE_WORLD)

## Control position
if abs(joy_pos[0]) > 0.25:
viz.MainView.move(joy_pos[0]*WALK_SPEED*viz.elapsed(), 0, 0, viz.BODY_ORI)
if abs(joy_pos[1]) > 0.25:
viz.MainView.move(0, 0, -joy_pos[1]*WALK_SPEED*viz.elapsed(), viz.BODY_ORI)

farshizzo 01-21-2009 11:22 AM

Have a look at the Viewpoint control tutorial in the docs. It describes how to accomplish what you want. Basically, you would apply the joystick data to body orientation of the viewpoint and the HMD data to the head orientation. When you want to move the viewpoint, you just specify that you want to move relative to the body orientation.


All times are GMT -7. The time now is 07:30 PM.

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