Jump to content

SpaceNoid78

Members
  • Posts

    1
  • Joined

  • Last visited

Reputation

0 Neutral

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hello folks, I am running into a problem interfacing with the OpenVR SDK when using two trackers with one controller. Specifically, the IVRCompositor::WaitGetPoses( ) function will sometimes return incorrectly transformed matrices to my C++ application. I was wondering if anyone has experienced a problem like this before, or if there is a known solution. The scenario: I place two VIVE trackers about 1 foot apart from one another, facing the same direction. I would expected that the matrices of each tracker (stored in TrackedDevicePose_t -> mDeviceToAbsoluteTracking) will be very similar. If I power up in this order - Tracker 1 On, Tracker 2 On, Controller On - the matrices of both trackers are indeed almost identical. However, if I power on in a different order - Controller On, Tracker 1 On, Tracker 2 On - The matrices of one of the trackers will be rotated exactly 90 degrees from what I would expect. The other tracker still retains the correct values/orientation as before. So now, even though both physical trackers are sitting in similar positions and orientations in the real world, their matrices returned by the VIVE SDK's WaitGetPoses( ) are different. In the same session, I can power on/off the controllers in different orders to change whether I get the correct or incorrect matrix values from the tracker. I am certain this is not a problem with my tracked device indices, nor a problem with overflowing array bounds, because the XYZ Position of the "Bad" Tracker is always correct - it is only the rotation of the tracker about that position in space that changes. So at least one value in every row in the matrix is what I expect. The correct Tracker[index == 3] 4x4 matrix (left) vs. the incorrect Tracker[index == 3] matrix (right) [ -0.99, 0.00, -0.17, -0.20 ] [ 0.99, -0.05, -0.12, -0.20 ] [ 0.00, 1.00, 0.00, 0.72 ] [ -0.01, 0.00, -0.99, 0.72 ] [ 0.01, 0.00, -0.99, 1.38 ] [ 0.05, 0.99, 0.00, 1.38 ] [ 0.00, 0.00, 0.00, 0.00 ] [ 0.00, 0.00, 0.00, 0.00 ] To specify the configuration I am using, my OpenVR SDK is version 1.0.10, my VIVE trackers are the newer model with the blue triangle, and my base stations are the older model. If anyone knows of a fix, workaround, or simply something to try, I would be very grateful for the help! Right now I am thoroughly stumped! Thanks! @chengnay
×
×
  • Create New...