public KinectDepthImageTexture(KinectDevice device, KinectDepthImageType type)
		{
			m_Device = device;
			m_ImageType = type;

			m_Image = new ImageBox(null);	
		}
		public KinectColorImageTexture(KinectDevice device)
		{
			m_Device = device;

			m_Image = new ImageBox(null);
			m_Image.FlipHorizontal = true;			
		}
Beispiel #3
0
        public MainModel()
        {
            mKinect = KinectDevice.Instance;
            mWindow = (MainWindow)System.Windows.Application.Current.MainWindow;

            //mVoiceControl = VoiceControl.Instance();
            speechRecognizer = SpeechRecognizer.Create();         //returns null if problem with speech prereqs or instantiation.
            if (speechRecognizer != null)
            {
                speechRecognizer.Start(new KinectAudioSource());  //KinectSDK TODO: expose Runtime.AudioSource to return correct audiosource.
                speechRecognizer.SaidSomething += new EventHandler <SpeechRecognizer.SaidSomethingEventArgs>(recognizer_SaidSomething);
            }

            mSkeleton         = mKinect.mSkeleton;
            mGraphPlot        = mWindow.theGraphPlot.vm;
            mCurrentModeState = ModeState.TrackingMode;
            mWindow.IndicatorPan.TrackingButton.IsChecked = true;
            UpdateMode((int)ModeState.TrackingMode);
            mSelectedJoint = "Head";
            ChangeCurrentJoint(mSelectedJoint);
            mLineGraphing      = new LineGraphing();
            mParabolaGraphing  = new ParabolaGraphing();
            mSineGraphing      = new SineGraphing();
            mAllowLineEdit     = false;
            mAllowParabolaEdit = false;
            mAllowSineEdit     = false;
            mRandom            = new Random();
        }
 private void DrawFace()
 {
     for (int i = 0; i < FaceModel.VertexCount; i++)
     {
         Vector3 point = Target.ToVector3(KinectDevice.GetNeckLocalFacePoint(i));
         Debug.DrawRay(headTarget.neck.target.transform.position + headTarget.neck.target.transform.rotation * point, Vector3.forward * 0.01F);
     }
 }
        protected void UpdateBones(HeadSensor sensor)
        {
            if (headTarget.head.target.confidence.position > KinectDevice.TrackingConfidence(KinectDevice.JointID.Head))
            {
                if (headTarget.humanoid.leftHandTarget.hand.target.confidence.position > KinectDevice.TrackingConfidence(KinectDevice.JointID.WristLeft) &&
                    headTarget.humanoid.rightHandTarget.hand.target.confidence.position > KinectDevice.TrackingConfidence(KinectDevice.JointID.WristRight))
                {
                    CalibrateWithHeadAndHands();
                }
                else
                {
                    CalibrateWithHead();
                }
                return;
            }

            //if (headTarget.head.target.confidence.rotation > 0) {
            //    headTarget.head.target.transform.rotation = Kinect2Tracker.SmoothRotation(headTarget.head.target.transform.rotation, sensor.head.rotation);
            //    headTarget.head.target.confidence.rotation = sensor.head.confidence.rotation;

            //    headTarget.head.target.transform.position = Kinect2Tracker.SmoothPosition(headTarget.head.target.transform.position, sensor.head.position);
            //    headTarget.head.target.confidence.position = sensor.head.confidence.position;
            //}

            //if (headTarget.neck.target.confidence.rotation > 0) {
            //    headTarget.neck.target.transform.rotation = Kinect2Tracker.SmoothRotation(headTarget.neck.target.transform.rotation, sensor.neck.rotation);
            //    headTarget.neck.target.confidence.rotation = sensor.neck.confidence.rotation;

            //    headTarget.neck.target.transform.position = Kinect2Tracker.SmoothPosition(headTarget.neck.target.transform.position, sensor.neck.position);
            //    headTarget.neck.target.confidence.position = sensor.neck.confidence.position;
            //}
            else
            {
                if (headTarget.neck.target.transform != null)
                {
                    headTarget.neck.target.transform.position = Target.ToVector3(sensor.neck.position);
                    headTarget.neck.target.transform.rotation = Target.ToQuaternion(sensor.neck.rotation);
                    headTarget.neck.target.confidence         = sensor.neck.confidence;
                }

                if (headTarget.head.target.transform != null)
                {
                    headTarget.head.target.transform.position = Target.ToVector3(sensor.head.position);
                    headTarget.head.target.transform.rotation = Target.ToQuaternion(sensor.head.rotation);
                    headTarget.head.target.confidence         = sensor.head.confidence;
                }


                if (rotationTrackingAxis == RotationTrackingAxis.XY)
                {
                    headTarget.head.target.transform.rotation = Quaternion.LookRotation(headTarget.head.target.transform.rotation * Vector3.forward);
                }
            }
            if (headTarget.virtual3d)
            {
                UpdateVirtual3D();
            }
        }
        public override void UpdateTracker()
        {
            if (!enabled)
            {
                return;
            }

            //status = kinectTransform.status;

            if (trackerTransform != null)
            {
                if (KinectDevice.status == Status.Unavailable)
                {
                    trackerTransform.gameObject.SetActive(false);
                }
                else
                {
                    trackerTransform.gameObject.SetActive(true);
                }
            }

            if (KinectDevice.status != Status.Unavailable)
            {
                if ((humanoid.headTarget.kinect.status == Status.Tracking) ||
                    (humanoid.leftHandTarget.kinect.status == Status.Tracking) ||
                    (humanoid.rightHandTarget.kinect.status == Status.Tracking) ||
                    (humanoid.hipsTarget.kinect.status == Status.Tracking) ||
                    (humanoid.leftFootTarget.kinect.status == Status.Tracking) ||
                    (humanoid.rightFootTarget.kinect.status == Status.Tracking))
                {
                    status = Status.Tracking;
                }
                else
                {
                    status = Status.Present;
                }
            }
            else
            {
                status = Status.Unavailable;
            }

            if (trackerTransform != null)
            {
                kinectDevice.position    = Target.ToVector(trackerTransform.position);
                kinectDevice.orientation = Target.ToRotation(trackerTransform.rotation);

                //device.position = trackerTransform.position;
                //device.rotation = trackerTransform.rotation;
            }
            //device.Update();
            //status = kinectTransform.status;

            KinectDevice.Update();
        }
        private void UpdateBones()
        {
            head.position            = kinectDevice.GetTargetPosition(KinectDevice.JointID.Head);
            head.confidence.position = KinectDevice.TrackingConfidence(KinectDevice.JointID.Head);

            Rotation localRotation = KinectDevice.GetHeadOrientation();

            head.rotation            = device.ToWorldOrientation(localRotation);
            head.confidence.rotation = 0.6F;

            neck.position            = kinectDevice.GetTargetPosition(KinectDevice.JointID.Neck);
            neck.confidence.position = KinectDevice.TrackingConfidence(KinectDevice.JointID.Neck);

            neck.rotation            = head.rotation;
            neck.confidence.rotation = 0.6F;
        }
        public override Status Update()
        {
            if (!KinectDevice.JointIsTracked(KinectDevice.JointID.Neck))
            {
                status = Status.Present;
                return(status);
            }

            status = Status.Tracking;

            if (headTracking)
            {
                UpdateBones();
            }

            return(status);
        }
Beispiel #9
0
        public int volumethreshold    = 9;                                          // Used to determine when the volule is enough high to be a peak (volume between 0 and 13-14)

        #endregion

        #region Constructor

        /// <summary>
        /// Instantiates a Pitch object
        /// </summary>
        public Pitch(KinectDevice kd)
        {
            this.recordingFormat = new WaveFormat(44100, 1);
            this.pitchList       = new List <float>();
            this.pitchRecorded   = new List <float>();
            this.sent            = false;
            this.isRecording     = false;
            this.kinect          = kd;
            i = 0;
            AudioAnalysis.FFT.reflexEvent += switchSendEvent;
            Length             = 500;
            Threshold          = 20.0;
            ThresholdVariation = 50.0;
            minFrequency       = 10.0;
            maxFrequency       = 130.0;
            instance           = this;
        }
        public override void StartTracker(HumanoidControl _humanoid)
        {
            _humanoid = humanoid;

            if (!enabled)
            {
                return;
            }

            AddTracker(humanoid);
            KinectDevice.Start();

            //device = new KinectInterface();
            //device.Init();
            //kinectTransform = device.GetTracker();

            //status = kinectTransform.status;
        }
        public override Status Update()
        {
            if (!KinectDevice.JointIsTracked(KinectDevice.JointID.HipCenter))
            {
                status = Status.Present;
                return(status);
            }

            status = Status.Tracking;

            hips.position            = kinectDevice.GetTargetPosition(KinectDevice.JointID.HipCenter);
            hips.confidence.position = KinectDevice.TrackingConfidence(KinectDevice.JointID.HipCenter);

            chest.position            = kinectDevice.GetTargetPosition(KinectDevice.JointID.SpineShoulder);
            chest.confidence.position = KinectDevice.TrackingConfidence(KinectDevice.JointID.SpineShoulder);

            Vector lHipPosition = kinectDevice.GetTargetPosition(KinectDevice.JointID.HipLeft);
            Vector rHipPosition = kinectDevice.GetTargetPosition(KinectDevice.JointID.HipRight);
            Vector lrDirection  = rHipPosition - lHipPosition;
            Vector lrDirection2 = Rotation.AngleAxis(90, Vector.forward) * lrDirection;

            Vector direction = chest.position - hips.position;

            hips.rotation            = kinectDevice.ToWorldOrientation(Rotation_.FromToRotation(direction, lrDirection2) * Rotation.AngleAxis(180, Vector.up));
            hips.confidence.rotation = 0.8F;

            hips.length            = Vector.Magnitude(hips.position - chest.position);
            hips.confidence.length = 0.6F;

            Vector neckPosition = kinectDevice.GetTargetPosition(KinectDevice.JointID.Neck);

            chest.rotation            = CalculateBoneRotation(neckPosition, chest.position, hips.rotation * Vector.forward) * Rotation.AngleAxis(90, Vector.right) * Rotation.AngleAxis(180, Vector.up);
            chest.confidence.rotation = 0.8F;

            chest.length            = Vector.Magnitude(neckPosition - chest.position);
            chest.confidence.length = 0.6F;

            return(status);
        }
Beispiel #12
0
 public KinectDeviceViewModel()
 {
     kinectDevice = new KinectDevice();
 }
Beispiel #13
0
			public KinectFieldImage(CompositeFieldImage owner, KinectDevice device)
			{
				// assign the parent 
				m_Parent = owner;
				// assign the device
				m_Device = device;

				// calculate size from the resilution of the device
				m_Stride = KinectHelper.GetWidthForResolution(m_Device.DepthResolution);
				m_Width = m_Stride - 8; 
				m_Height = KinectHelper.GetHeightForResolution(m_Device.DepthResolution);

				int size = m_Stride * m_Height;

				// create array for the feild data
				m_FieldData = new double[size];

				// create arrays for blending and clip maps 
				m_BlendingMap = new double[size];
			
				m_DepthClippingMap = new double[size];
			}
 public override void StopTracker()
 {
     //if (device != null)
     //    device.Stop();
     KinectDevice.Stop();
 }
 private void UpdateEyelids(FaceTarget face)
 {
     face.leftEye.closed  = Mathf.Clamp01(KinectDevice.GetFaceExpression(KinectDevice.FaceExpression.EyeClosedLeft) * 4 - 2.5F);
     face.rightEye.closed = Mathf.Clamp01(KinectDevice.GetFaceExpression(KinectDevice.FaceExpression.EyeClosedRight) * 4 - 2.5F);
 }
Beispiel #16
0
		public void RegisterDevice(KinectDevice device)
		{
			KinectFieldImage image = new KinectFieldImage(this, device);

			Images.Add(image);
		}
 public void Load_KinectCamera()
 {
     mKinect = KinectDevice.Instance;
     this.FloatingWindowSize = new Size(640, 480);
     //this.ShowAsFloatingWindow(false);
 }