Example #1
0
        // Update is called once per frame
        void Update()
        {
            manus_hand_t leftHand;
            manus_hand_t rightHand;

            // if the retrieval of the handdata is succesfull update the local value and wether the hand is closed
            if (Manus.ManusGetHand(session, device_type_t.GLOVE_LEFT, out leftHand) == manus_ret_t.MANUS_SUCCESS)
            {
                _leftHand = leftHand;
                UpdateCloseValue(AverageFingerValue(_leftHand), device_type_t.GLOVE_LEFT);
                //Debug.Log(_leftHand.raw.finger_sensor[0]);
                //Debug.Log(_leftHand.wrist.x + " " + _leftHand.wrist.y + " " + _leftHand.wrist.z + " " + _leftHand.wrist.w);

                ++counter;
                // if ((counter % 10) == 0) {
                srl.WriteLine(DateTime.Now.ToString("yyyy-MM-ddThh:mm:ss:ffff") + " " + _leftHand.wrist.x + " " + _leftHand.wrist.y + " " + _leftHand.wrist.z + " " + _leftHand.wrist.w + " " + _leftHand.raw.finger_sensor[0] + " " + _leftHand.raw.finger_sensor[1] + " " + _leftHand.raw.finger_sensor[2] + " " + _leftHand.raw.finger_sensor[3] + " " + _leftHand.raw.finger_sensor[4] + _leftHand.raw.finger_sensor[5] + " " + _leftHand.raw.finger_sensor[6] + " " + _leftHand.raw.finger_sensor[7] + " " + _leftHand.raw.finger_sensor[8] + " " + _leftHand.raw.finger_sensor[9]);
                //}
            }

            if (Manus.ManusGetHand(session, device_type_t.GLOVE_RIGHT, out rightHand) == manus_ret_t.MANUS_SUCCESS)
            {
                _rightHand = rightHand;

                UpdateCloseValue(AverageFingerValue(_rightHand), device_type_t.GLOVE_RIGHT);
                srr.WriteLine(DateTime.Now.ToString("yyyy-MM-ddThh:mm:ss:ffff") + " " + _rightHand.wrist.x + " " + _rightHand.wrist.y + " " + _rightHand.wrist.z + " " + _rightHand.wrist.w + " " + _rightHand.raw.finger_sensor[0] + " " + _rightHand.raw.finger_sensor[1] + " " + _rightHand.raw.finger_sensor[2] + " " + _rightHand.raw.finger_sensor[3] + " " + _rightHand.raw.finger_sensor[4] + _rightHand.raw.finger_sensor[5] + " " + _rightHand.raw.finger_sensor[6] + " " + _rightHand.raw.finger_sensor[7] + " " + _rightHand.raw.finger_sensor[8] + " " + _rightHand.raw.finger_sensor[9]);
            }
        }
Example #2
0
        // Left hand values

        // Use this for initialization
        void Start()
        {
            Manus.ManusInit(out session);
            Manus.ManusSetCoordinateSystem(session, coor_up_t.COOR_Y_UP, coor_handed_t.COOR_LEFT_HANDED);

            if (Instance == null)
            {
                Instance = this;
            }

            for (int i = 0; i < 2; i++)
            {
                _handValues[i].CloseValue     = CloseValue.Open;
                _handValues[i].OnValueChanged = new ToggleEvent();
            }

            Manus.ManusGetHand(session, (device_type_t)0, out _leftHand);
            Manus.ManusGetHand(session, (device_type_t)1, out _rightHand);


            srl = File.CreateText(fileNameL);
            srr = File.CreateText(fileNameR);
        }
Example #3
0
        /// <summary>
        /// Constructor which loads the HandModel
        /// </summary>
        void Start()
        {
            Manus.ManusInit(out session);
            Manus.ManusSetCoordinateSystem(session, coor_up_t.COOR_Y_UP, coor_handed_t.COOR_LEFT_HANDED);

            string[] fingers =
            {
                "thumb_0",
                "index_0",
                "middle_0",
                "ring_0",
                "pinky_0"
            };

            if (!cameraRig)
            {
                cameraRig = Camera.main.transform.root;
                Debug.LogWarning("CameraRig reference not set, automatically retrieved root transform of main camera. To avoid usage of wrong transform, consider setting this reference.");
            }
            cameraRig.parent        = transform.root;
            cameraRig.localPosition = Vector3.zero;

            if (!rootTransform)
            {
                rootTransform = FindDeepChild(transform, "root");
            }

            leftLowerArm  = FindDeepChild(rootTransform, "lowerarm_l");
            rightLowerArm = FindDeepChild(rootTransform, "lowerarm_r");

            wristTransforms    = new Transform[2];
            wristTransforms[0] = FindDeepChild(rootTransform, "hand_l");
            wristTransforms[1] = FindDeepChild(rootTransform, "hand_r");

            TrackingManager manager = GetComponent <TrackingManager>();

            if (manager)
            {
                useTrackers = manager.trackingToUse == TrackingManager.EUsableTracking.GenericTracker;
            }

            ik_profile_t profile = new ik_profile_t();

            Manus.ManusGetProfile(session, out profile);
            lowerArmLength = (float)profile.lowerArmLength;
            scaleBone(leftLowerArm, (float)profile.upperArmLength);
            scaleBone(rightLowerArm, (float)profile.upperArmLength);
            scaleBone(wristTransforms[0], lowerArmLength);
            scaleBone(wristTransforms[1], lowerArmLength);

            // Associate the game transforms with the skeletal model.
            fingerTransforms    = new Transform[2][][];
            fingerTransforms[0] = new Transform[5][];
            fingerTransforms[1] = new Transform[5][];
            for (int i = 0; i < 5; i++)
            {
                fingerTransforms[0][i] = new Transform[5];
                fingerTransforms[1][i] = new Transform[5];
                for (int j = 1; j < 5; j++)
                {
                    string left  = fingers[i] + j.ToString() + "_l";
                    string right = fingers[i] + j.ToString() + "_r";
                    fingerTransforms[0][i][j] = FindDeepChild(rootTransform, left);
                    fingerTransforms[1][i][j] = FindDeepChild(rootTransform, right);
                }
            }
        }