8. Roboter-Statusabfrage
8.1. Aktuelle Gelenkposition (Winkel) abrufen
1/**
2* @brief Aktuelle Gelenkposition (Winkel) abrufen
3* @param [out] jPos Objekt der Klasse JointPos zum Befüllen mit den sechs Gelenkpositionen, Einheit [°]
4* @return Fehlercode
5*/
6int GetActualJointPosDegree(JointPos jPos);
8.2. Gelenk-Rückmeldegeschwindigkeit (deg/s) abrufen
1/**
2* @brief Gelenk-Rückmeldegeschwindigkeit (deg/s) abrufen
3* @param [out] speed Array (Länge 6) für die Geschwindigkeiten der sechs Gelenke
4* @return Fehlercode
5*/
6int GetActualJointSpeedsDegree(Object[] speed);
8.3. Gelenk-Rückmeldebeschleunigung (deg/s²) abrufen
1/**
2* @brief Gelenk-Rückmeldebeschleunigung (deg/s²) abrufen
3* @param [in] flag 0 - blockierend, 1 - nicht blockierend
4* @param [out] acc Array (Länge 6) für die Beschleunigungen der sechs Gelenke
5* @return Fehlercode
6*/
7public int GetActualJointAccDegree(int flag, Object[] acc)
8.4. TCP-Befehlsresultierende Geschwindigkeit abrufen
1/**
2* @brief TCP-Befehlsresultierende Geschwindigkeit abrufen
3* @param [in] flag 0 - blockierend, 1 - nicht blockierend
4* @param [out] tcp_speed Lineargeschwindigkeit (mm/s)
5* @param [out] ori_speed Orientierungsgeschwindigkeit (°/s)
6* @return Fehlercode
7*/
8public int GetTargetTCPCompositeSpeed(int flag, double[] tcp_speed, double[] ori_speed) // Hinweis: double[] als Referenz
8.5. TCP-Rückmelderesultierende Geschwindigkeit abrufen
1/**
2* @brief TCP-Rückmelderesultierende Geschwindigkeit abrufen
3* @param [in] flag 0 - blockierend, 1 - nicht blockierend
4* @param [out] tcp_speed Lineargeschwindigkeit (mm/s)
5* @param [out] ori_speed Orientierungsgeschwindigkeit (°/s)
6* @return Fehlercode
7*/
8public int GetActualTCPCompositeSpeed(int flag, double[] tcp_speed, double[] ori_speed)
8.6. TCP-Befehlsgeschwindigkeit (Komponenten) abrufen
1/**
2* @brief TCP-Befehlsgeschwindigkeit (Komponenten) abrufen
3* @param [in] flag 0 - blockierend, 1 - nicht blockierend
4* @param [out] speed Array (Länge 6) für die Geschwindigkeiten [x, y, z, rx, ry, rz]
5* @return Fehlercode
6*/
7public int GetTargetTCPSpeed(int flag, Object[] speed)
8.7. TCP-Rückmeldegeschwindigkeit (Komponenten) abrufen
1/**
2* @brief TCP-Rückmeldegeschwindigkeit (Komponenten) abrufen
3* @param [in] flag 0 - blockierend, 1 - nicht blockierend
4* @param [out] speed Array (Länge 6) für die Geschwindigkeiten [x, y, z, rx, ry, rz]
5* @return Fehlercode
6*/
7public int GetActualTCPSpeed(int flag, Object[] speed)
8.8. Aktuelle Werkzeugpose (TCP) abrufen
1/**
2* @brief Aktuelle Werkzeugpose (TCP) abrufen
3* @param [out] desc_pos Objekt der Klasse DescPose zum Befüllen mit der Werkzeugpose
4* @return Fehlercode
5*/
6int GetActualTCPPose(DescPose desc_pos);
8.9. Nummer des aktuellen Werkzeugkoordinatensystems abrufen
1/**
2* @brief Nummer des aktuellen Werkzeugkoordinatensystems abrufen
3* @param [in] flag 0 - blockierend, 1 - nicht blockierend
4* @param [out] id Array (Länge 1) für die Werkzeugkoordinatensystem-Nummer
5* @return Fehlercode
6*/
7int GetActualTCPNum(int flag, int[] id)
8.10. Nummer des aktuellen Werkstückkoordinatensystems abrufen
1/**
2* @brief Nummer des aktuellen Werkstückkoordinatensystems abrufen
3* @param [in] flag 0 - blockierend, 1 - nicht blockierend
4* @param [out] id Array (Länge 1) für die Werkstückkoordinatensystem-Nummer
5* @return Fehlercode
6*/
7public int GetActualWObjNum(int flag, int[] id)
8.11. Aktuelle Pose des Endflansches abrufen
1/**
2* @brief Aktuelle Pose des Endflansches abrufen
3* @param [in] flag 0 - blockierend, 1 - nicht blockierend
4* @param [out] desc_pos Objekt der Klasse DescPose zum Befüllen mit der Flanschpose
5* @return Fehlercode
6*/
7public int GetActualToolFlangePose(int flag, DescPose desc_pos)
8.12. Aktuelle Gelenkmomente abrufen
1/**
2* @brief Aktuelle Gelenkmomente abrufen
3* @param [in] flag 0 - blockierend, 1 - nicht blockierend
4* @param [out] torques Array (Länge 6) für die Gelenkmomente
5* @return Fehlercode
6*/
7int GetJointTorques(int flag, Object[] torques);
8.13. Systemzeit abrufen
1/**
2* @brief Systemzeit abrufen
3* @return List[0]: int Fehlercode; List[1]: double t_ms Zeit in ms
4*/
5List<Number> GetSystemClock();
8.14. Abfragen, ob die Roboterbewegung abgeschlossen ist
1/**
2* @brief Abfragen, ob die Roboterbewegung abgeschlossen ist
3* @param [out] state Array (Länge 1) für den Zustand: 0 - nicht abgeschlossen, 1 - abgeschlossen
4* @return Fehlercode
5*/
6public int GetRobotMotionDone(int[] state)
8.15. Länge der Roboter-Bewegungsbefehlswarteschlange abrufen
1/**
2* @brief Länge der Roboter-Bewegungsbefehlswarteschlange abrufen
3* @param [out] len Array (Länge 1) für die aktuelle Warteschlangenlänge
4* @return Fehlercode
5*/
6public int GetMotionQueueLength(int[] len)
8.16. Roboter-Not-Halt-Status abrufen
1/**
2* @brief Roboter-Not-Halt-Status abrufen
3* @param [out] state Array (Länge 1) für den Not-Halt-Status: 0 - kein Not-Halt, 1 - Not-Halt aktiv
4* @return Fehlercode
5*/
6public int GetRobotEmergencyStopState(int[] state)
8.17. Kommunikationsstatus zwischen SDK und Roboter abrufen
1/**
2* @brief Kommunikationsstatus zwischen SDK und Roboter abrufen
3* @return int state: 0 - Kommunikation normal, 1 - Kommunikationsstörung
4*/
5public int GetSDKComState()
8.18. Sicherheitsstopp-Signal abrufen
1/**
2* @brief Sicherheitsstopp-Signal abrufen
3* @param [out] si0_state Array (Länge 1) für Signal SI0: 0 - inaktiv, 1 - aktiv
4* @param [out] si1_state Array (Länge 1) für Signal SI1: 0 - inaktiv, 1 - aktiv
5* @return Fehlercode
6*/
7public int GetSafetyStopState(int[] si0_state, int[] si1_state)
8.19. Temperatur der Roboter-Gelenkantriebe (°C) abrufen
1/**
2* @brief Temperatur der Roboter-Gelenkantriebe (°C) abrufen
3* @param [out] temperature Array (Länge 6) für die Temperaturen der sechs Antriebe
4* @return Fehlercode
5*/
6public int GetJointDriverTemperature(double[] temperature)
8.20. Drehmoment der Roboter-Gelenkantriebe (Nm) abrufen
1/**
2* @brief Drehmoment der Roboter-Gelenkantriebe (Nm) abrufen
3* @param [out] torque Array (Länge 6) für die Drehmomente der sechs Antriebe
4* @return Fehlercode
5*/
6public int GetJointDriverTorque(double[] torque)
8.21. Roboter-Echtzeitstatus-Struktur abrufen
1/**
2* @brief Roboter-Echtzeitstatus-Struktur abrufen
3* @return ROBOT_STATE_PKG Objekt mit den Echtzeitstatusdaten
4*/
5public ROBOT_STATE_PKG GetRobotRealTimeState()
8.22. Codebeispiel für Roboter-Statusabfrage
1public static int TestGetStatus(Robot robot)
2{
3 List<Number> angle=new ArrayList<>();
4 angle=robot.GetRobotInstallAngle();
5 System.out.println("yangle:"+angle.get(1)+",zangle:"+angle.get(2));
6
7 JointPos j_deg =new JointPos(){};
8 robot.GetActualJointPosDegree( j_deg);
9
10 Object[] jointSpeed =new Object[] { 0,0,0,0,0,0 };
11 robot.GetActualJointSpeedsDegree(jointSpeed);
12
13 Object[] jointAcc = new Object[]{0,0,0,0,0,0 };
14 robot.GetActualJointAccDegree(0, jointAcc);
15
16 double tcp_speed = 0.0;
17 double ori_speed = 0.0;
18 robot.GetTargetTCPCompositeSpeed(0, tcp_speed, ori_speed);
19
20 robot.GetActualTCPCompositeSpeed(0, tcp_speed, ori_speed);
21
22 Object[] targetSpeed =new Object[] { 0,0,0,0,0,0 };
23 robot.GetTargetTCPSpeed(0, targetSpeed);
24
25 Object[] actualSpeed =new Object[] {0,0,0,0,0,0 };
26 robot.GetActualTCPSpeed(0, actualSpeed);
27
28 DescPose tcp = new DescPose(){};
29 robot.GetActualTCPPose(tcp);
30
31 DescPose flange = new DescPose(){};
32 robot.GetActualToolFlangePose(0, flange);
33
34 int[] id = {};
35 robot.GetActualTCPNum(0, id);
36
37 robot.GetActualWObjNum(0, id);
38
39 List<Number> jtorque=new ArrayList<>();
40 jtorque=robot.GetJointTorques(0);
41
42 List<Number> t_ms = new ArrayList<>();
43 t_ms=robot.GetSystemClock();
44
45 List<Integer> config = new ArrayList<>();
46 config=robot.GetRobotCurJointsConfig();
47
48 int motionDone = 0;
49 robot.GetRobotMotionDone(motionDone);
50
51 int[] len ={0 };
52 robot.GetMotionQueueLength(len);
53
54 int[] emergState = {0};
55 robot.GetRobotEmergencyStopState(emergState);
56
57 int comstate = 0;
58 comstate=robot.GetSDKComState();
59
60 int[] si0_state=new int[]{0}, si1_state=new int[]{0};
61 robot.GetSafetyStopState(si0_state, si1_state);
62
63 double[] temp =new double[] { 0,0,0,0,0,0 };
64 robot.GetJointDriverTemperature(temp);
65
66 double[] torque = new double[]{ 0,0,0,0,0,0 };
67 robot.GetJointDriverTorque(torque);
68
69 ROBOT_STATE_PKG pkg=new ROBOT_STATE_PKG();
70 pkg=robot.GetRobotRealTimeState();
71
72 return 0;
73}
8.23. Inverse Kinematik berechnen
1/**
2* @brief Inverse Kinematik berechnen
3* @param [in] type 0 - absolute Pose (Basiskoordinatensystem), 1 - inkrementelle Pose (Basiskoordinatensystem), 2 - inkrementelle Pose (Werkzeugkoordinatensystem)
4* @param [in] desc_pos Kartesische Pose (DescPose)
5* @param [in] config Gelenkraum-Konfiguration, [-1] - Berechnung basierend auf aktueller Gelenkposition, [0~7] - Berechnung basierend auf spezifischer Gelenkraumkonfiguration
6* @param [out] joint_pos Objekt der Klasse JointPos zum Befüllen mit den berechneten Gelenkpositionen
7* @return Fehlercode
8*/
9int GetInverseKin(int type, DescPose desc_pos, int config, JointPos joint_pos);
8.24. Inverse Kinematik mit Referenzposition berechnen
1/**
2* @brief Inverse Kinematik unter Verwendung einer Referenz-Gelenkposition berechnen
3* @param [in] posMode 0 - absolute Pose, 1 - relative Pose (Basiskoordinatensystem), 2 - relative Pose (Werkzeugkoordinatensystem)
4* @param [in] desc_pos Kartesische Pose (DescPose)
5* @param [in] joint_pos_ref Referenz-Gelenkposition (JointPos)
6* @param [out] joint_pos Objekt der Klasse JointPos zum Befüllen mit den berechneten Gelenkpositionen
7* @return Fehlercode
8*/
9int GetInverseKinRef(int posMode, DescPose desc_pos, JointPos joint_pos_ref, JointPos joint_pos);
8.25. Inverse Kinematik im kartesischen Raum inklusive Erweiterungsachsenposition
1/**
2* @brief Inverse Kinematik im kartesischen Raum inklusive Erweiterungsachsenposition
3* @param [in] type 0 - absolute Pose (Basiskoordinatensystem), 1 - inkrementelle Pose (Basiskoordinatensystem), 2 - inkrementelle Pose (Werkzeugkoordinatensystem)
4* @param [in] desc_pos Kartesische Pose (DescPose)
5* @param [in] exaxis Position der Erweiterungsachse (ExaxisPos)
6* @param [in] tool Werkzeugnummer
7* @param [in] workPiece Werkstücknummer
8* @param [out] joint_pos Objekt der Klasse JointPos zum Befüllen mit den berechneten Gelenkpositionen
9* @return Fehlercode
10*/
11public int GetInverseKinExaxis(int type, DescPose desc_pos, ExaxisPos exaxis, int tool, int workPiece, JointPos joint_pos)
8.26. Codebeispiel für inverse Kinematik mit Erweiterungsachse
1public static void TestInverseKinExaxis(Robot robot)
2{
3 DescPose desc=new DescPose(99.957, -0.002, 29.994, -176.569, -6.757, -167.462);
4 ExaxisPos exaxis=new ExaxisPos(100.0, 0.0, 0.0, 0.0);
5 JointPos jointPos =new JointPos();
6 DescPose offsetPos =new DescPose();
7 ROBOT_STATE_PKG pkg=robot.GetRobotRealTimeState();
8 int toolnum = pkg.tool;
9 int workPcsNum = pkg.user;
10 robot.GetInverseKinExaxis(0, desc, exaxis, toolnum, workPcsNum, jointPos);
11 System.out.printf("GetInverseKinExaxis joint is %f, %f, %f, %f, %f, %f\n", jointPos.J1, jointPos.J2, jointPos.J3, jointPos.J4, jointPos.J5, jointPos.J6);
12 robot.ExtAxisMove(exaxis, 100, -1);
13 robot.MoveJ(jointPos, desc, toolnum, workPcsNum, 100.0, 100.0, 100.0, exaxis, -1, 0, offsetPos);
14 robot.CloseRPC();
15 robot.Sleep(9999999);
16}
8.27. Prüfen, ob die inverse Kinematik eine Lösung hat
1/**
2* @brief Prüfen, ob die inverse Kinematik für eine gegebene Pose eine Lösung hat
3* @param [in] posMode 0 - absolute Pose, 1 - relative Pose (Basiskoordinatensystem), 2 - relative Pose (Werkzeugkoordinatensystem)
4* @param [in] desc_pos Kartesische Pose (DescPose)
5* @param [in] joint_pos_ref Referenz-Gelenkposition (JointPos)
6* @return List<Integer> List[0]: Fehlercode; List[1]: int hasResult 0 - keine Lösung, 1 - Lösung vorhanden
7*/
8List<Integer> GetInverseKinHasSolution(int posMode, DescPose desc_pos, JointPos joint_pos_ref);
8.28. Vorwärtskinematik berechnen
1/**
2* @brief Vorwärtskinematik berechnen
3* @param [in] joint_pos Gelenkposition (JointPos)
4* @param [out] desc_pos Objekt der Klasse DescPose zum Befüllen mit der berechneten kartesischen Pose
5* @return Fehlercode
6*/
7int GetForwardKin(JointPos joint_pos, DescPose desc_pos);
8.29. Codebeispiel für Vorwärts- und inverse Kinematik
1public static int TestInverseKin(Robot robot)
2{
3 JointPos j1=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
4 DescPose desc_pos1=new DescPose(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
5
6 JointPos inverseRtn = new JointPos(){};
7
8 robot.GetInverseKin(0, desc_pos1, -1, inverseRtn);
9 robot.GetInverseKinRef(0, desc_pos1, j1, inverseRtn);
10
11 int hasResut = 0;
12 robot.GetInverseKinHasSolution(0, desc_pos1, j1);
13
14 DescPose forwordResult = new DescPose(){};
15 robot.GetForwardKin(j1, forwordResult);
16
17 return 0;
18}
8.30. Daten eines Roboter-Teachingpunkts abfragen
1/**
2* @brief Daten eines Roboter-Teachingpunkts abfragen
3* @param [in] name Name des Punkts (String)
4* @return List<Number> List[0]: Fehlercode; List[1] - List[20]: Punktdaten als double[20] {x, y, z, rx, ry, rz, j1, j2, j3, j4, j5, j6, tool, wobj, speed, acc, e1, e2, e3, e4}
5*/
6List<Number> GetRobotTeachingPoint(String name);
8.31. DH-Parameter-Kompensationswerte des Roboters abrufen
1/**
2* @brief DH-Parameter-Kompensationswerte des Roboters abrufen
3* @param dhCompensation Array (Länge 6) zum Befüllen mit den Kompensationswerten (mm) [cmpstD1, cmpstA2, cmpstA3, cmpstD4, cmpstD5, cmpstD6]
4* @return Fehlercode
5*/
6public int GetDHCompensation(Object[] dhCompensation)
8.32. SN-Code des Steuerkastens abrufen
Neu in Version Java: SDK-v1.0.4-3.8.1
1/**
2* @brief SN-Code des Steuerkastens abrufen
3* @param [out] SNCode Array (Länge 1) zum Befüllen mit dem SN-Code
4* @return Fehlercode
5*/
6int GetRobotSN(String[] SNCode);
8.33. Codebeispiel für Teachingpunkt-Abfrage
1public static int TestGetTeachPoint(Robot robot)
2{
3 String name = "P1";
4 List<Number> data=new ArrayList<>();
5 data = robot.GetRobotTeachingPoint(name);
6 System.out.println(name+" name is: "+data.get(0));
7 for (int i = 0; i < 20; i++)
8 {
9 System.out.println("data is: "+ data.get(i+1));
10 }
11
12 int[] que_len = {0};
13 int rtn = robot.GetMotionQueueLength(que_len);
14 System.out.println("GetMotionQueueLength rtn is:"+rtn+", queue length is:"+ que_len[0]);
15
16 Object[] dh = new Object[]{ 0,0,0,0,0,0 };
17 int retval = 0;
18 retval = robot.GetDHCompensation(dh);
19 System.out.println("retval is: "+retval);
20
21 String[] SN = new String[]{""};
22 robot.GetRobotSN(SN);
23 System.out.println("robot SN is "+SN[0]);
24 return 0;
25}
8.34. Werkzeugkoordinatensystem nach ID abrufen
Neu in Version Java: SDK-v1.0.9-3.8.6
1/**
2* @brief Werkzeugkoordinatensystem nach ID abrufen
3* @param [in] id Werkzeugkoordinatensystem-Nummer
4* @param [out] coord Objekt der Klasse DescPose zum Befüllen mit den Koordinatenwerten
5* @return Fehlercode
6*/
7int GetToolCoordWithID(int id, DescPose coord)
8.35. Werkstückkoordinatensystem nach ID abrufen
Neu in Version Java: SDK-v1.0.9-3.8.6
1/**
2* @brief Werkstückkoordinatensystem nach ID abrufen
3* @param [in] id Werkstückkoordinatensystem-Nummer
4* @param [out] coord Objekt der Klasse DescPose zum Befüllen mit den Koordinatenwerten
5* @return Fehlercode
6*/
7public int GetWObjCoordWithID(int id, DescPose coord)
8.36. Externes Werkzeugkoordinatensystem nach ID abrufen
Neu in Version Java: SDK-v1.0.9-3.8.6
1/**
2* @brief Externes Werkzeugkoordinatensystem nach ID abrufen
3* @param [in] id Externes Werkzeugkoordinatensystem-Nummer
4* @param [out] coord Objekt der Klasse DescPose zum Befüllen mit den Koordinatenwerten
5* @return Fehlercode
6*/
7public int GetExToolCoordWithID(int id, DescPose coord)
8.37. Erweiterungsachsen-Koordinatensystem nach ID abrufen
Neu in Version Java: SDK-v1.0.9-3.8.6
1/**
2* @brief Erweiterungsachsen-Koordinatensystem nach ID abrufen
3* @param [in] id Erweiterungsachsen-Koordinatensystem-Nummer
4* @param [out] coord Objekt der Klasse DescPose zum Befüllen mit den Koordinatenwerten
5* @return Fehlercode
6*/
7public int GetExAxisCoordWithID(int id, DescPose coord)
8.38. Aktuelles Werkzeugkoordinatensystem abrufen
Neu in Version Java: SDK-v1.0.9-3.8.6
1/**
2 * @brief Aktuelles Werkzeugkoordinatensystem abrufen
3 * @param [out] coord Objekt der Klasse DescPose zum Befüllen mit den Koordinatenwerten
4 * @return Fehlercode
5 */
6public int GetCurToolCoord(DescPose coord)
8.39. Aktuelles Werkstückkoordinatensystem abrufen
Neu in Version Java: SDK-v1.0.9-3.8.6
1/**
2 * @brief Aktuelles Werkstückkoordinatensystem abrufen
3 * @param [out] coord Objekt der Klasse DescPose zum Befüllen mit den Koordinatenwerten
4 * @return Fehlercode
5 */
6public int GetCurWObjCoord(DescPose coord)
8.40. Aktuelles externes Werkzeugkoordinatensystem abrufen
Neu in Version Java: SDK-v1.0.9-3.8.6
1/**
2 * @brief Aktuelles externes Werkzeugkoordinatensystem abrufen
3 * @param [out] coord Objekt der Klasse DescPose zum Befüllen mit den Koordinatenwerten
4 * @return Fehlercode
5 */
6public int GetCurExToolCoord(DescPose coord)
8.41. Aktuelles Erweiterungsachsen-Koordinatensystem abrufen
Neu in Version Java: SDK-v1.0.9-3.8.6
1/**
2 * @brief Aktuelles Erweiterungsachsen-Koordinatensystem abrufen
3 * @param [out] coord Objekt der Klasse DescPose zum Befüllen mit den Koordinatenwerten
4 * @return Fehlercode
5 */
6public int GetCurExAxisCoord(DescPose coord)
8.42. Codebeispiel zum Abrufen von Roboter-Koordinatensystemen und Lastdaten
1public static void TestCoord(Robot robot)
2{
3 int id = 1;
4 int rtn = 0;
5 DescPose toolCoord = new DescPose();
6 DescPose extoolCoord = new DescPose();
7 DescPose wobjCoord = new DescPose();
8 DescPose exAxisCoord = new DescPose();
9
10
11 robot.GetCurToolCoord(toolCoord);//Werkzeug
12 System.out.println("GetToolCoord:"+id+","+
13 toolCoord.tran.x+","+ toolCoord.tran.y+","+ toolCoord.tran.z+","+
14 toolCoord.rpy.rx+","+ toolCoord.rpy.ry+","+ toolCoord.rpy.rz);
15
16
17 robot.GetCurWObjCoord(toolCoord);//Werkstück
18 System.out.println("GetCurWObjCoord:"+id+","+
19 toolCoord.tran.x+","+ toolCoord.tran.y+","+ toolCoord.tran.z+","+
20 toolCoord.rpy.rx+","+ toolCoord.rpy.ry+","+ toolCoord.rpy.rz);
21
22 robot.GetCurExToolCoord(toolCoord);//Externes Werkzeug
23 System.out.println("GetCurExToolCoord:"+id+","+
24 toolCoord.tran.x+","+ toolCoord.tran.y+","+ toolCoord.tran.z+","+
25 toolCoord.rpy.rx+","+ toolCoord.rpy.ry+","+ toolCoord.rpy.rz);
26
27
28 robot.GetCurExAxisCoord(toolCoord);//Erweiterungsachse
29 System.out.println("GetCurExToolCoord:"+id+","+
30 toolCoord.tran.x+","+ toolCoord.tran.y+","+ toolCoord.tran.z+","+
31 toolCoord.rpy.rx+","+ toolCoord.rpy.ry+","+ toolCoord.rpy.rz);
32
33
34 List<Number> weightT = new ArrayList<>();//Schwerpunkt
35 DescTran cogT=new DescTran();
36 weightT=robot.GetTargetPayload(0);
37 robot.GetTargetPayloadCog(0,cogT);
38 System.out.println("GetTargetPayload :"+weightT.get(1).doubleValue()+", "+
39 cogT.x+", "+cogT.y+", "+cogT.z);
40
41
42 robot.GetToolCoordWithID(id, toolCoord);
43 System.out.println("GetToolCoordWithID:"+id+","+
44 toolCoord.tran.x+","+ toolCoord.tran.y+","+ toolCoord.tran.z+","+
45 toolCoord.rpy.rx+","+ toolCoord.rpy.ry+","+ toolCoord.rpy.rz);
46
47 robot.GetWObjCoordWithID(id, wobjCoord);
48 System.out.println("GetWObjCoordWithID "+id+", "+
49 wobjCoord.tran.x+","+ wobjCoord.tran.y+","+ wobjCoord.tran.z+","+
50 wobjCoord.rpy.rx+","+ wobjCoord.rpy.ry+","+ wobjCoord.rpy.rz);
51
52
53 robot.GetExToolCoordWithID(id, extoolCoord);//Externes Werkzeug
54 System.out.println("GetExToolCoordWithID :"+ id+","+
55 extoolCoord.tran.x+","+ extoolCoord.tran.y+","+ extoolCoord.tran.z+","+
56 extoolCoord.rpy.rx+","+ extoolCoord.rpy.ry+","+ extoolCoord.rpy.rz);
57
58 robot.GetExAxisCoordWithID(id, exAxisCoord);//Erweiterungsachse
59 System.out.println("GetExAxisCoordWithID "+id+","+
60 exAxisCoord.tran.x+","+ exAxisCoord.tran.y+","+ exAxisCoord.tran.z+","+
61 exAxisCoord.rpy.rx+","+ exAxisCoord.rpy.ry+","+ exAxisCoord.rpy.rz);
62
63
64 double[] weight = new double[1];//Lastschwerpunkt
65 DescTran getCog = new DescTran();
66 robot.GetTargetPayloadWithID(id, weight, getCog);
67 System.out.println("GetTargetPayloadWithID :"+ id+","+ weight[0]+","+
68 getCog.x+","+ getCog.y+","+ getCog.z);
69
70 DescPose coordSet0 = new DescPose(0, 0, 0, 0, 0, 0);
71 DescPose coordSet = new DescPose(1, 2, 3, 4, 5, 6);
72 DescPose etcp = new DescPose(10, 20, 30, 40, 50, 60);
73 DescPose etool = new DescPose(0.1, 0.2, 0.3, 0.4, 0.5, 0.6);
74 DescTran cog = new DescTran(1, 2, 3);
75
76 robot.SetToolCoord(id, coordSet, 0, 0, 1, 0);
77 robot.Sleep(100);
78 robot.SetWObjCoord(id, coordSet, 0);
79 robot.Sleep(100);
80 robot.ExtAxisActiveECoordSys(id, 1, coordSet, 1); //Kalibrierungsergebnis auf das Erweiterungsachsen-Koordinatensystem anwenden
81 robot.Sleep(100);
82 rtn = robot.SetExToolCoord(id, etcp, etool);
83 robot.Sleep(100);
84 rtn = robot.SetLoadWeight(id, 1.5);
85 robot.Sleep(500);
86 rtn = robot.SetLoadCoord(id, cog);
87 robot.Sleep(100);
88}