Skip to content

getControllerStateWithPose() returns all zeros #86

@mungewell

Description

@mungewell

More hacking around and discovered another problem. I do NOT have real hardware, so the possibility exists that it is bug else where... but 'fake' trackers are shown in Virtual World.

Discovered that waitGetPoses() only works when you are operating as VRApplication_Scene, meaning that script terminates (or is terminated) other VR application - runs in construct though...

So I have shifted to getControllerStateWithPose().

            if options.kinect:
                '''
                poses, game_poses = openvr.VRCompositor().waitGetPoses(poses, None)
                kinect = poses[1]
                '''
                res, state, kinect = openvr.VRSystem().getControllerStateWithPose(0,2)

                mat = kinect.mDeviceToAbsoluteTracking
                A = np.matrix(
                    ((mat.m[0][0], mat.m[0][1], mat.m[0][2], mat.m[0][3]),
                    (mat.m[1][0], mat.m[1][1], mat.m[1][2], mat.m[1][3]),
                    (mat.m[2][0], mat.m[2][1], mat.m[2][2], mat.m[2][3]),)
                    , np.float32)

                P = A.dot(np.matrix('0; 0; 0; 1')) + np.array( \
                    [[options.Y], [options.X], [options.Z]])

                position = (P[2][0], P[0][0], P[1][0])

Any suggestions as to why? Do the 'controllers' have to have a button press before this function returns data?

https://github.com/mungewell/pyPSVR/blob/master/example5_threaded/threaded_psvr.py#L347
https://github.com/SDraw/driver_kinectV1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions