getting hand rotation using razer hydra

I’m having issues rotating hands using the hydra and was wondering if anyone could help.

I am using the kinect to detect body and arm movement for which it works fine but I really need quite precise hand tracking which the kinect seems to be lacking. I decided to try using the razer just to track rotation of hands but it seems to messed up.

Wagging my wrists up and down seems to rotate the hands and vice versa, however moving from side to side is fine.

I’m half expecting that the answer is to multiple the rotation by some Quaternion.Euler(x,y,z) but my maths just isn’t good enough to work out what those values should be.

Am uploading the project to http://sdrv.ms/1leBhBN now.

Does any one have any ideas?

I gave myself the mathematical intuition I lacked with the aid of 3 pencils and a piece of blue tack :stuck_out_tongue:

I had been accounting for the initial position of the hand as per the code in the Hydra SDK but I hadn’t considered that the SDK demos treats hands and the controllers as essentially the same thing.

Once the controllers rotation is consider in the initial rotation as per below everything worked wonderfully.

  m_initialRotation = controller.RotationRaw * gameObject.transform.rotation;