WorldViz User Forum  

Go Back   WorldViz User Forum > Vizard

Reply
 
Thread Tools Rate Thread Display Modes
  #1  
Old 02-04-2010, 05:09 PM
bernie bernie is offline
Member
 
Join Date: May 2007
Posts: 18
Coordinate system flips when pitch crosses 90deg?

we realized an odd behavior in observer coordinates: When the observer moves on a continuous trajectory that curves upwards, as soon as the pitch crosses 90deg (i.e., as soon as the observer is upside-down) the observer coordinates seems to flip upside-down as well (resulting in a change in heading, pitch, and roll coordinates)...
Is that a know feature (is it documented anywhere)?
more importantly, is there a way to switch it off?

We're trying to compute hoping vectors and the whole things get's messed up currently when the coordinates have a discontinuous jump .

Thanks for any advice!

Bernie
Reply With Quote
  #2  
Old 02-05-2010, 07:16 AM
Jeff Jeff is offline
WorldViz Team Member
 
Join Date: Aug 2008
Posts: 2,471
What kind of tracking system are you using?
Reply With Quote
  #3  
Old 02-06-2010, 04:56 AM
dwaik dwaik is offline
Member
 
Join Date: Feb 2010
Posts: 26
hey bernie...
i faced them same problem while i was trying to rotate an object 360 deg it flips on 90 deg..
i used relative rotation and it worked just fine

obj.setEuler((110,0,0),viz.REL_LOCAL)
Reply With Quote
  #4  
Old 02-07-2010, 09:40 AM
bernie bernie is offline
Member
 
Join Date: May 2007
Posts: 18
Thanks, I'll try the relative location as soon as I get back into the lab (I don't have vizard at home). Jeff, I'm not using any tracking, just plain 3D computer graphics, and a trajectory controlled by a script. so no direct user input.
Thanks
Bernie
Reply With Quote
  #5  
Old 02-08-2010, 12:33 PM
farshizzo farshizzo is offline
WorldViz Team Member
 
Join Date: Mar 2003
Posts: 2,849
Do you have sample code that demonstrates the problem? This sounds like a gimbal lock issue with euler angles. Are you using euler angle to compute the trajectory?
Reply With Quote
  #6  
Old 02-10-2010, 04:05 PM
bernie bernie is offline
Member
 
Join Date: May 2007
Posts: 18
Sorry for the delay in responding, my colleague Shawn will take over the discussion as he'll be working on the code.
we'll try to isolate the problem into a sample code. Right now we use a viz.MainView.rotate() command to update the observer's orientation each frame (viz.MainView.rotate(1,0,0,d.turnDir * d.dPhi_angle2rotateThisFrame,viz.BODY_ORI,viz.REL_ LOCAL))

I guess it could indeed be a gimble lock problem and we'll look into that.
Thanks!
Bernie
Reply With Quote
  #7  
Old 04-15-2010, 05:31 PM
srwing srwing is offline
Member
 
Join Date: Dec 2009
Posts: 2
Hi
This is shawn ...
Sorry about the delay.

There is some sample code attached. It first rotates the MainView, pitch, over various angles between -175 and +175. Then it rotates a pointer object over the same range.

Using something like viz.MainView.setEuler(([0, pitchs[i], 0]),viz.REL_LOCAL) produced the same results.

The rotations over 90 degrees, under -90 degrees, pitch produce something like the following:

MainView pitch= -175 i= 0
MainView.getEuler = [-180.0, -5.0000009536743164, 180.0]
mpointer.getEuler = [2.7940182008023839e-006, 5.0000009536743164, 180.0]

MainView pitch= -150 i= 1
MainView.getEuler = [-180.0, -30.0, 180.0]
mpointer.getEuler = [3.0043981951166643e-006, 30.0, 180.0]

MainView pitch= -100 i= 2
MainView.getEuler = [-180.0, -80.0, 180.0]
mpointer.getEuler = [9.4240658654598519e-006, 80.0, -180.0]

...

mpointer.pitch= 100 i= 10
MainView.getEuler = [0.0, 0.0, 0.0]
mpointer.getEuler = [180.0, 80.0, 180.0]

mpointer.pitch= 150 i= 11
MainView.getEuler = [0.0, 0.0, 0.0]
mpointer.getEuler = [180.0, 30.0, 180.0]

mpointer.pitch= 175 i= 12
MainView.getEuler = [0.0, 0.0, 0.0]
mpointer.getEuler = [180.0, 5.0000009536743164, 180.0]

Last edited by srwing; 04-15-2010 at 05:36 PM.
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

Similar Threads
Thread Thread Starter Forum Replies Last Post
right-hand to left-hand coordinate System for a cave setup Andy Vizard 1 09-16-2009 10:17 AM
How to make an object fixed in viewpoint coordinate system? Xianshi Xie Vizard 1 06-22-2009 11:31 AM
A point in avatar's coordinate system omidbrb Vizard 2 05-15-2009 05:39 AM
Different coordinate system for plug-in and vizard API? reedev Plug-in development 4 12-10-2008 08:43 AM


All times are GMT -7. The time now is 01:11 PM.


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