Beispiel #1
0
        public override void Loop()
        {
            var img = Eye.GetLatestData();

            var faces = Brain.DetectFaces(img);

            if (faces.Length > 0)
            {
                var firstFace = faces.First();

                // map the location
                var x           = firstFace.FaceRectangle.Left + firstFace.FaceRectangle.Width / 2;
                var y           = firstFace.FaceRectangle.Top + firstFace.FaceRectangle.Height / 2;
                var coordinateX = 80;
                var coordinateZ = 60 + 120 * (1 - (y * 1.0) / img.Height);
                var pose        = Arm.ConvertToPose(new Tuple <double, double, double>(coordinateX, 0, coordinateZ));

                var rotate     = 45 + 90 * (1 - x * 1.0 / img.Width);
                var rotateStep = Arm.AngleToMM(rotate);
                pose.MotorThreeSteps = rotateStep;

                // Command ARM
                Arm.MoveTo(pose);
            }
            else
            {
                Console.WriteLine("Face is not detected!");
            }

            //Thread.Sleep(10);
        }