Пример #1
0
        private void refreshRobotDataInstance()
        {
            if (aRTDE.isSynchronizing)
            {
                RTDEOutputObj OutObj = aRTDE.getOutputObj();

                dataGridData otherData = RobotOtherData.Find(x => x.varName == "A1");
                otherData.varValue = Math.Round(OutObj.actual_q.X / Math.PI * 180, 2);

                otherData          = RobotOtherData.Find(x => x.varName == "A2");
                otherData.varValue = Math.Round(OutObj.actual_q.Y / Math.PI * 180, 2);

                otherData          = RobotOtherData.Find(x => x.varName == "A3");
                otherData.varValue = Math.Round(OutObj.actual_q.Z / Math.PI * 180, 2);

                otherData          = RobotOtherData.Find(x => x.varName == "A4");
                otherData.varValue = Math.Round(OutObj.actual_q.Rx / Math.PI * 180, 2);

                otherData          = RobotOtherData.Find(x => x.varName == "A5");
                otherData.varValue = Math.Round(OutObj.actual_q.Ry / Math.PI * 180, 2);

                otherData          = RobotOtherData.Find(x => x.varName == "A6");
                otherData.varValue = Math.Round(OutObj.actual_q.Rz / Math.PI * 180, 2);
            }
        }
Пример #2
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (aRTClient.Status == RTClientStatus.Syncing)
            {
                RTClientObj aObj = aRTClient.getRTClientObj();
                textBox5.Text = aObj.actual_TCP_pose.ToString();
            }

            if (aRTDE.isSynchronizing)
            {
                RTDEOutputObj OutObj = aRTDE.getOutputObj();
                textBox7.Text = "Actual tcp pose: " + OutObj.actual_TCP_pose.ToString() + "\n";
                textBox7.Text = textBox7.Text + " Elbow position: " + OutObj.elbow_position.ToString();
            }
        }
Пример #3
0
        private void refreshRobotDataInstance()
        {
            if (aRTDE.isSynchronizing)
            {
                RTDEOutputObj OutObj = aRTDE.getOutputObj();
                //textBox7.Text = "Actual tcp pose: "+OutObj.actual_TCP_pose.ToString()+"\n";
                //textBox7.Text =textBox7.Text+" Elbow position: "+ OutObj.elbow_position.ToString();
                Console.WriteLine(OutObj.actual_q.ToString());
                MainWindow.myRobotData.a1Value = Math.Round(OutObj.actual_q.X / Math.PI * 180, 2);
                MainWindow.myRobotData.a2Value = Math.Round(OutObj.actual_q.Y / Math.PI * 180, 2);
                MainWindow.myRobotData.a3Value = Math.Round(OutObj.actual_q.Z / Math.PI * 180, 2);
                MainWindow.myRobotData.a4Value = Math.Round(OutObj.actual_q.Rx / Math.PI * 180, 2);
                MainWindow.myRobotData.a5Value = Math.Round(OutObj.actual_q.Ry / Math.PI * 180, 2);
                MainWindow.myRobotData.a6Value = Math.Round(OutObj.actual_q.Rz / Math.PI * 180, 2);

                MainWindow.myRobotData.raw1Value = OutObj.actual_q.X;
                MainWindow.myRobotData.raw2Value = OutObj.actual_q.Y;
                MainWindow.myRobotData.raw3Value = OutObj.actual_q.Z;
                MainWindow.myRobotData.raw4Value = OutObj.actual_q.Rx;
                MainWindow.myRobotData.raw5Value = OutObj.actual_q.Ry;
                MainWindow.myRobotData.raw6Value = OutObj.actual_q.Rz;
            }
        }
Пример #4
0
    private IEnumerator timer2_Tick()
    {
        while (true)
        {
            try
            {
                aRTDE.startSync(); //启动 RTDE server 同步
            }
            catch
            {
                throw;
            }
            if (aRTDE.isSynchronizing)
            {
                RTDEOutputObj outobj = aRTDE.getOutputObj(); //读取 RTDE output 数据
                CurTCPPos = outobj.actual_TCP_pose;
                //CurPX = outobj.actual_TCP_pose.X;
                //CurPY = outobj.actual_TCP_pose.Y;
                //CurPZ = outobj.actual_TCP_pose.Z;
                //CurRX = outobj.actual_TCP_pose.Rx;
                //CurRY = outobj.actual_TCP_pose.Ry;
                //CurRZ = outobj.actual_TCP_pose.Rz;

                CurJointPos = outobj.actual_q;
                //CurJ1 = outobj.actual_q.X;//机座
                //CurJ2 = outobj.actual_q.Y;//肩部
                //CurJ3 = outobj.actual_q.Z;//肘部
                //CurJ4 = outobj.actual_q.Rx;//手腕1
                //CurJ5 = outobj.actual_q.Ry;//手腕2
                //CurJ6 = outobj.actual_q.Rz;//手腕3

                string      tcppose = outobj.actual_TCP_pose.ToString();
                RTDEMessage aMsg    = new RTDEMessage("Content of message", "Message source",
                                                      RTDEMessage.INFO_MESSAGE); //创建 RTDEMessage 对象, Warning Level 为 Info
                aRTDE.sendMessage(aMsg);                                         //发送 RTDEMessage
                RTDEInputObj inobj = new RTDEInputObj();                         //创建 RTDE input 对象
                                                                                 // 将数字输出置为 0b00000011,RTDEInputObj 同步数据一定要是 RTDEConfig.xml 文件中已经配置好的 input
                inobj.standard_digital_output = 3;
                aRTDE.setInputObj(inobj);                                        //发送 input
            }

            //TCP当前位置
            if (CurTCPPos != null)
            {
                //ActTCPTB_X.Text = (CurTCPPos.X * 1000).ToString("0.00");
                //ActTCPTB_Y.Text = (CurTCPPos.Y * 1000).ToString("0.00");
                //ActTCPTB_Z.Text = (CurTCPPos.Z * 1000).ToString("0.00");
                //ActTCPTB_RX.Text = (CurTCPPos.Rx).ToString("0.00");
                //ActTCPTB_RY.Text = (CurTCPPos.Ry).ToString("0.00");
                //ActTCPTB_RZ.Text = (CurTCPPos.Rz).ToString("0.00");
            }
            //关节当前位置
            if (CurJointPos != null)
            {
                Pos[0].text = (CurJointPos.X * 180 / PI).ToString("0.00");
                Pos[1].text = (CurJointPos.Y * 180 / PI).ToString("0.00");
                Pos[2].text = (CurJointPos.Z * 180 / PI).ToString("0.00");
                Pos[3].text = (CurJointPos.Rx * 180 / PI).ToString("0.00");
                Pos[4].text = (CurJointPos.Ry * 180 / PI).ToString("0.00");
                Pos[5].text = (CurJointPos.Rz * 180 / PI).ToString("0.00");
            }
            aRTDE.stopSync(); //关闭 RTDE server 同步,释放资源
            yield return(new WaitForSeconds(1f));
        }
    }