|
#1
|
|||
|
|||
tracking using quaternarion data
We are trying to do head tracking with Vizard 2.51 and a Hiball tracker, and we're having trouble getting the code to work. We tried using the automatic tracking (the viz.tracker() command), but it doesn't update position data at all and the orientation is way off, with at least one of the axes reversed.
As a potential solution, we tried doing manual tracking. We were able to track the head position fine, but we are still having trouble with the head orientation. The problem seems to be that our Hiball tracker only outputs quaternion orientation data instead of Euler, and we don't know how to use quaternion data to update the head orientation. The viz.rotate command appears to only work with Euler data. We would appreciate help getting either: code that would enable us to use the quaternion data directly to update the head orientation, or code that would covert the quaternion data to Euler (we found the function EulerToQuat, but we can't find a function to convert Quat to Euler). Or, if you have any other ideas, please let us know. Thanks! |
#2
|
|||
|
|||
Hi,
Which sensor are you using to connect to the Hiball tracker? To rotate a viewpoint manually you first need to get a handle to the main viewpoint. Code:
view = viz.get(viz.MAIN_VIEWPOINT) view.rotatequat(quat) |
#3
|
|||
|
|||
We are using the vrpn.dls sensor. The code you gave us ended up working, but we had to switch around some of the data input, and make some of it negative, to get the view.rotatequat() command to work. We'll still not sure why, but it did end up working. Thanks for your help.
|
|
|