Ejemplo n.º 1
0
        private void PosTimer_Tick(object sender, System.Timers.ElapsedEventArgs e)
        {
            if (!isConnectted)
            {
                return;
            }

            DobotDll.GetPose(ref pose);

            this.Dispatcher.BeginInvoke((Action) delegate()
            {
                tbJoint1Angle.Text = pose.jointAngle[0].ToString();
                tbJoint2Angle.Text = pose.jointAngle[1].ToString();
                tbJoint3Angle.Text = pose.jointAngle[2].ToString();
                tbJoint4Angle.Text = pose.jointAngle[3].ToString();

                if (sync.IsChecked == true)
                {
                    X.Text         = pose.x.ToString();
                    Y.Text         = pose.y.ToString();
                    Z.Text         = pose.z.ToString();
                    rHead.Text     = pose.rHead.ToString();
                    pauseTime.Text = "0";
                }
            });
        }
        private void PosTimer_Tick(object sender, EventArgs e)
        {
            if (!isConnectted)
            {
                return;
            }

            Pose pose = new Pose();

            DobotDll.GetPose(ref pose);

            tbJoint1Angle.Text = pose.jointAngle[0].ToString();
            tbJoint2Angle.Text = pose.jointAngle[1].ToString();
            tbJoint3Angle.Text = pose.jointAngle[2].ToString();
            tbJoint4Angle.Text = pose.jointAngle[3].ToString();

            if (sync.IsChecked == true)
            {
                isGrab.IsChecked = pose.isGrab == 1;
                X.Text           = pose.x.ToString();
                Y.Text           = pose.y.ToString();
                Z.Text           = pose.z.ToString();
                rHead.Text       = pose.rHead.ToString();
                pauseTime.Text   = "0";
                isGripper.Text   = pose.gripper.ToString();
            }
        }
Ejemplo n.º 3
0
 //Überprüft alle 100ms die aktuelle Position, wenn ein Roboter verbunden ist
 private void PosTimer_Tick(object sender, EventArgs e)
 {
     if (!isConnectted)
     {
         return;
     }
     DobotDll.GetPose(ref pose);
 }
Ejemplo n.º 4
0
        /// <summary>
        /// タイマーで定期的に現在位置を取得します
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void PosTimer_Tick(object sender, System.Timers.ElapsedEventArgs e)
        {
            if (!_isConnectted)
            {
                return;
            }

            DobotDll.GetPose(ref _pose);

            // コンソール出力
            Console.WriteLine($"x:{_pose.x}");
            Console.WriteLine($"y:{_pose.y}");
            Console.WriteLine($"z:{_pose.z}");
            Console.WriteLine($"R:{_pose.rHead}");
        }
Ejemplo n.º 5
0
        private void GetPose()
        {
            if (!isConnectted)
            {
                return;
            }

            DobotDll.GetPose(ref pose);

            this.Dispatcher.BeginInvoke((Action) delegate()
            {
                //if (sync.IsChecked == true)
                //{
                Xtext.Text = pose.x.ToString();
                Ytext.Text = pose.y.ToString();
                Ztext.Text = pose.z.ToString();

                J1text.Text = pose.jointAngle[0].ToString();
                J2text.Text = pose.jointAngle[1].ToString();
                J3text.Text = pose.jointAngle[2].ToString();

                sdXtext.Text = (pose.x - sd_origin.X).ToString();
                sdYtext.Text = (pose.y - sd_origin.Y).ToString();
                sdZtext.Text = (pose.z - sd_origin.Z).ToString();

                //rHead.Text = pose.rHead.ToString();
                //  pauseTime.Text = "0";
                //}
                var matrix = new Matrix3D();

                matrix.Rotate(new System.Windows.Media.Media3D.Quaternion(new Vector3D(0, 1, 0), pose.jointAngle[0]));
                matrix.Translate(new Vector3D((pose.y - sd_origin.Y), (pose.z - sd_origin.Z), (pose.x - sd_origin.X)));
                MeshGeometryModel3D model = ModelGroup.Children[1] as MeshGeometryModel3D;

                model.Transform = new MatrixTransform3D(matrix);
            });
        }
Ejemplo n.º 6
0
 //Rechnet die Koordianten um, auf die passende Größe und von pixel auf mm
 private void Positionsbestimmung()
 {
     DobotDll.GetPose(ref pose);
 }
Ejemplo n.º 7
0
 private void button_Click(object sender, RoutedEventArgs e)
 {
     DobotDll.ResetPose(false, 0, 0);
     DobotDll.GetPose(ref pose);
     sd_origin = new Point3D(pose.x, pose.y, pose.z);
 }
Ejemplo n.º 8
0
        private void dobotStuff()
        {
            PTPJointParams ptpParams;

            ptpParams.acceleration = new float[4] {
                200, 200, 200, 200
            };
            ptpParams.velocity = new float[4] {
                200, 200, 200, 200
            };

            PTPCoordinateParams ptpCParams;

            ptpCParams.rAcceleration   = 200;
            ptpCParams.rVelocity       = 200;
            ptpCParams.xyzAcceleration = 200;
            ptpCParams.xyzVelocity     = 200;

            PTPJumpParams ptpJParams;

            ptpJParams.jumpHeight = 10;
            ptpJParams.zLimit     = 200;

            PTPCommonParams ptpCmParams;

            ptpCmParams.accelerationRatio = 100;
            ptpCmParams.velocityRatio     = 100;

            WAITCmd wait;

            wait.timeout = 2000;
            UInt64 cmdIndex = 0;

            HOMECmd hmcmd = new HOMECmd();

            DobotDll.SetHOMECmd(ref hmcmd, false, ref cmdIndex);
            System.Threading.Thread.Sleep(20000);
            Pose pose = new Pose();

            DobotDll.GetPose(ref pose);
            Console.WriteLine(pose.x + ", " + pose.y + ", " + pose.z);
            DobotDll.SetPTPJointParams(ref ptpParams, false, ref cmdIndex);
            DobotDll.SetPTPCoordinateParams(ref ptpCParams, false, ref cmdIndex);
            DobotDll.SetPTPJumpParams(ref ptpJParams, false, ref cmdIndex);
            DobotDll.SetPTPCommonParams(ref ptpCmParams, false, ref cmdIndex);

            pickNewCard(cmdIndex, wait);

            placeCard(290, playerCards * cardDistance, cmdIndex);
            playerCards++;

            pickNewCard(cmdIndex, wait);

            placeCard(200, dealerCards * cardDistance, cmdIndex);
            dealerCards++;

            pickNewCard(cmdIndex, wait);

            placeCard(290, playerCards * cardDistance, cmdIndex);
            playerCards++;
        }