9. Roboter-Trajektorienwiedergabe

9.1. TPD-Trajektorienaufzeichnungsparameter einstellen

Prototyp

SetTPDParam(name, period_ms, type=1, di_choose=0, do_choose=0)

Beschreibung

TPD-Trajektorienaufzeichnungsparameter einstellen

Erforderliche Parameter

  • name: Name der Trajektoriendatei

  • period_ms: Datenabtastperiode, feste Werte: 2ms, 4ms oder 8ms

Standardparameter

  • type: Datentyp für die Aufzeichnung, 1 = Gelenkpositionen, Standard = 1

  • di_choose: DI-Auswahl, Bit0~Bit7 für Steuerkasten DI0~DI7, Bit8~Bit9 für Endeffektor DI0~DI1, 0 = nicht ausgewählt, 1 = ausgewählt, Standard = 0

  • do_choose: DO-Auswahl, Bit0~Bit7 für Steuerkasten DO0~DO7, Bit8~Bit9 für Endeffektor DO0~DO1, 0 = nicht ausgewählt, 1 = ausgewählt, Standard = 0

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

9.2. TPD-Trajektorienaufzeichnung starten

Prototyp

SetTPDStart(name, period_ms, type=1, di_choose=0, do_choose=0)

Beschreibung

TPD-Trajektorienaufzeichnung starten

Erforderliche Parameter

  • name: Name der Trajektoriendatei

  • period_ms: Datenabtastperiode, feste Werte: 2ms, 4ms oder 8ms

Standardparameter

  • type: Datentyp für die Aufzeichnung, 1 = Gelenkpositionen, Standard = 1

  • di_choose: DI-Auswahl, Bit0~Bit7 für Steuerkasten DI0~DI7, Bit8~Bit9 für Endeffektor DI0~DI1, 0 = nicht ausgewählt, 1 = ausgewählt, Standard = 0

  • do_choose: DO-Auswahl, Bit0~Bit7 für Steuerkasten DO0~DO7, Bit8~Bit9 für Endeffektor DO0~DO1, 0 = nicht ausgewählt, 1 = ausgewählt, Standard = 0

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

9.3. TPD-Trajektorienaufzeichnung stoppen

Prototyp

SetWebTPDStop()

Beschreibung

TPD-Trajektorienaufzeichnung stoppen

Erforderliche Parameter

Keine

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

9.4. TPD-Trajektoriendatei löschen

Prototyp

SetTPDDelete(name)

Beschreibung

TPD-Trajektoriendatei löschen

Erforderliche Parameter

  • name: Name der Trajektoriendatei

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

9.5. Codebeispiel für TPD-Trajektorienaufzeichnung

 1from fairino import Robot
 2import time
 3# Verbindung zur Robotersteuerung herstellen, bei Erfolg wird ein Roboterobjekt zurückgegeben
 4robot = Robot.RPC('192.168.58.2')
 5type = 1
 6name = "tpd2025"
 7period_ms = 4
 8di_choose = 0
 9do_choose = 0
10robot.SetTPDParam(name, period_ms)
11robot.Mode(1)
12time.sleep(1)
13robot.DragTeachSwitch(1)
14robot.SetTPDStart(name, period_ms)
15print("SetTPDStart")
16time.sleep(10)
17robot.SetWebTPDStop()
18robot.DragTeachSwitch(0)
19robot.CloseRPC()

9.6. TPD-Trajektorie vorladen

Prototyp

LoadTPD(name)

Beschreibung

TPD-Trajektorie vorladen

Erforderliche Parameter

  • name: Name der Trajektoriendatei

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

9.7. TPD-Trajektorie wiedergeben

Prototyp

MoveTPD(name, blend, ovl)

Beschreibung

TPD-Trajektorie wiedergeben

Erforderliche Parameter

  • name: Name der Trajektoriendatei

  • blend: Glättung, 0 = nein, 1 = ja

  • ovl: Geschwindigkeitsskalierungsfaktor, Bereich [0~100]

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

9.8. Startpose einer TPD-Trajektorie abrufen

Prototyp

GetTPDStartPose(name)

Beschreibung

Startpose einer TPD-Trajektorie abrufen

Erforderliche Parameter

  • name: Name der Trajektoriendatei

Standardparameter

Keine

Rückgabewert

  • Fehlercode: 0 = Erfolg, sonst Fehlercode

  • desc_pose = [x, y, z, rx, ry, rz]: Startpose der Trajektorie [mm, °]

9.9. Codebeispiel für Roboter-TPD-Trajektorienwiedergabe

 1from fairino import Robot
 2import time
 3# Verbindung zur Robotersteuerung herstellen, bei Erfolg wird ein Roboterobjekt zurückgegeben
 4robot = Robot.RPC('192.168.58.2')
 5type = 1
 6name = "tpd2025"
 7period_ms = 4
 8di_choose = 0
 9do_choose = 0
10ovl = 100.0
11blend = 0
12rtn = robot.LoadTPD(name)
13print(f"LoadTPD rtn is: {rtn}")
14error,start_pose = robot.GetTPDStartPose(name)
15print(f"start pose, xyz is: {start_pose[0]},{start_pose[1]},{start_pose[2]}. "
16      f"rpy is: {start_pose[3]},{start_pose[4]},{start_pose[5]}")
17robot.MoveCart(start_pose, 0, 0, 100, 100)
18time.sleep(1)
19rtn = robot.MoveTPD(name, blend, ovl)
20print(f"MoveTPD rtn is: {rtn}")
21time.sleep(5)
22robot.SetTPDDelete(name)
23robot.CloseRPC()

9.10. Trajektorie vorverarbeiten (für MoveTrajectoryJ)

Prototyp

LoadTrajectoryJ(name, ovl, opt=1)

Beschreibung

Externe Trajektoriendatei vorverarbeiten (für MoveTrajectoryJ)

Erforderliche Parameter

  • name: Name der Trajektoriendatei, z.B.: /fruser/traj/trajHelix_aima_1.txt

  • ovl: Geschwindigkeitsskalierungsprozentsatz, Bereich [0~100]

Standardparameter

  • opt: 1 = Kontrollpunkt, Standard = 1

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

9.11. Trajektorie wiedergeben (für MoveTrajectoryJ)

Prototyp

MoveTrajectoryJ()

Beschreibung

Externe Trajektoriendatei wiedergeben (für MoveTrajectoryJ)

Erforderliche Parameter

Keine

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

9.12. Startpose einer Trajektorie abrufen

Prototyp

GetTrajectoryStartPose(name)

Beschreibung

Startpose einer Trajektorie abrufen

Erforderliche Parameter

  • name: Name der Trajektoriendatei

Standardparameter

Keine

Rückgabewert

  • Fehlercode: 0 = Erfolg, sonst Fehlercode

  • desc_pose = [x, y, z, rx, ry, rz]: Startpose der Trajektorie [mm, °]

9.13. Nummer des aktuellen Trajektorienpunkts abrufen

Prototyp

GetTrajectoryPointNum()

Beschreibung

Nummer des aktuellen Trajektorienpunkts abrufen

Erforderliche Parameter

Keine

Standardparameter

Keine

Rückgabewert

  • Fehlercode: 0 = Erfolg, sonst Fehlercode

  • pnum: Aktuelle Trajektorienpunktnummer

9.14. Geschwindigkeit während der Trajektorienausführung einstellen

Prototyp

SetTrajectoryJSpeed(ovl, mode)

Beschreibung

Geschwindigkeit während der Trajektorienausführung einstellen

Erforderliche Parameter

  • ovl: Geschwindigkeitsskalierungsprozentsatz, Bereich [0~100]

  • mode: 0-Geschwindigkeitsreduzierungsmodus; 1-direkte Umschaltung

Standardparameter

Keine

Rückgabewert

Fehlercode Erfolg-0 Fehler-errcode

9.15. Codebeispiel zum Einstellen der Geschwindigkeit während der Trajektorienausführung

 1from time import sleep
 2import time
 3from fairino import Robot
 4
 5# Verbindung mit der Robotersteuerung herstellen
 6robot = Robot.RPC('192.168.58.2')
 7
 8
 9def TestSetTrajectoryJSpeed(self):
10    # Trajektoriendatei hochladen
11    rtn = robot.TrajectoryJUpLoad("C://Users/lenovo/Desktop/trajHelix_aima_1.txt")
12    print(f"Upload TrajectoryJ A {rtn}")
13
14    traj_file_name = "/fruser/traj/trajHelix_aima_1.txt"
15    # Trajektoriendatei laden, Parameter: Dateiname, Geschwindigkeitsprozentsatz, Schleife (1: Schleife)
16    rtn = robot.LoadTrajectoryJ(name=traj_file_name, ovl=100, opt=1)
17    print(f"LoadTrajectoryJ {traj_file_name}, rtn is: {rtn}")
18
19    # Startpose der Trajektorie abrufen
20    rtn, traj_start_pose = robot.GetTrajectoryStartPose(name=traj_file_name)
21    print(f"GetTrajectoryStartPose is: {rtn}")
22    print(
23        f"desc_pos:{traj_start_pose[0]},{traj_start_pose[1]},{traj_start_pose[2]},{traj_start_pose[3]},{traj_start_pose[4]},{traj_start_pose[5]}")
24
25    time.sleep(1)
26
27    # Basisgeschwindigkeit einstellen und zum Trajektorienstartpunkt bewegen
28    robot.SetSpeed(50)
29    robot.MoveCart(desc_pos=traj_start_pose, tool=0, user=0, vel=100, acc=100, ovl=100, blendT=-1, config=-1)
30
31    # Anzahl der Trajektorienpunkte abrufen
32    rtn, traj_num = robot.GetTrajectoryPointNum()
33    print(f"GetTrajectoryStartPose rtn is: {rtn}, traj num is: {traj_num}")
34
35    # Trajektorienbewegung starten
36    rtn = robot.MoveTrajectoryJ()
37    print(f"MoveTrajectoryJ rtn is: {rtn}")
38
39    time.sleep(1)
40
41    # Roboter-Echtzeitstatus abrufen
42    trajspeedMode = 0
43    while True:
44        rtn, pkg = robot.GetRobotRealTimeState()
45        if pkg.motion_done != 0:
46            break
47
48        # Trajektoriengeschwindigkeit auf 10% einstellen
49        rtn = robot.SetTrajectoryJSpeed(ovl=10.0, mode=trajspeedMode)
50        print(f"SetTrajectoryJSpeed is: {rtn}")
51
52        time.sleep(1)
53
54        # Trajektoriengeschwindigkeit auf 80% einstellen
55        rtn = robot.SetTrajectoryJSpeed(ovl=80.0, mode=trajspeedMode)
56        print(f"SetTrajectoryJSpeed is: {rtn}")
57
58        time.sleep(1)
59
60    # Verbindung schließen
61    robot.CloseRPC()
62    time.sleep(1)
63
64
65# Testfunktion aufrufen
66TestSetTrajectoryJSpeed(robot)

9.16. Kraft und Drehmoment während der Trajektorienausführung einstellen

Prototyp

SetTrajectoryJForceTorque(ft)

Beschreibung

Kraft und Drehmoment während der Trajektorienausführung einstellen

Erforderliche Parameter

  • ft = [fx, fy, fz, tx, ty, tz]: Kräfte [N] und Momente [Nm]

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

9.17. Kraft in X-Richtung während der Trajektorienausführung einstellen

Prototyp

SetTrajectoryJForceFx(fx)

Beschreibung

Kraft in X-Richtung während der Trajektorienausführung einstellen

Erforderliche Parameter

  • fx: Kraft in X-Richtung [N]

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

9.18. Kraft in Y-Richtung während der Trajektorienausführung einstellen

Prototyp

SetTrajectoryJForceFy(fy)

Beschreibung

Kraft in Y-Richtung während der Trajektorienausführung einstellen

Erforderliche Parameter

  • fy: Kraft in Y-Richtung [N]

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

9.19. Kraft in Z-Richtung während der Trajektorienausführung einstellen

Prototyp

SetTrajectoryJForceFz(fz)

Beschreibung

Kraft in Z-Richtung während der Trajektorienausführung einstellen

Erforderliche Parameter

  • fz: Kraft in Z-Richtung [N]

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

9.20. Drehmoment um die X-Achse während der Trajektorienausführung einstellen

Prototyp

SetTrajectoryJTorqueTx(tx)

Beschreibung

Drehmoment um die X-Achse während der Trajektorienausführung einstellen

Erforderliche Parameter

  • tx: Drehmoment um die X-Achse [Nm]

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

9.21. Drehmoment um die Y-Achse während der Trajektorienausführung einstellen

Prototyp

SetTrajectoryJTorqueTy(ty)

Beschreibung

Drehmoment um die Y-Achse während der Trajektorienausführung einstellen

Erforderliche Parameter

  • ty: Drehmoment um die Y-Achse [Nm]

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

9.22. Drehmoment um die Z-Achse während der Trajektorienausführung einstellen

Prototyp

SetTrajectoryJTorqueTz(tz)

Beschreibung

Drehmoment um die Z-Achse während der Trajektorienausführung einstellen

Erforderliche Parameter

  • tz: Drehmoment um die Z-Achse [Nm]

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

9.23. Trajektorien-J-Datei hochladen

Neu in Version Python: SDK-v2.0.7

Prototyp

TrajectoryJUpLoad(filePath)

Beschreibung

Trajektorien-J-Datei hochladen

Erforderliche Parameter

  • filePath: Vollständiger Pfad zur hochzuladenden Trajektoriendatei, z.B. C://test/testJ.txt

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

9.24. Trajektorien-J-Datei löschen

Neu in Version Python: SDK-v2.0.7

Prototyp

TrajectoryJDelete(filePath)

Beschreibung

Trajektorien-J-Datei löschen

Erforderliche Parameter

  • filePath: Vollständiger Pfad zur zu löschenden Trajektoriendatei, z.B. C://test/testJ.txt

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

9.25. Codebeispiel für Roboter-Trajektorien-J-Wiedergabe

 1from fairino import Robot
 2import time
 3# Verbindung zur Robotersteuerung herstellen, bei Erfolg wird ein Roboterobjekt zurückgegeben
 4robot = Robot.RPC('192.168.58.2')
 5rtn = robot.TrajectoryJUpLoad("D://zUP/traj.txt")
 6print(f"Upload TrajectoryJ A {rtn}")
 7traj_file_name = "/fruser/traj/traj.txt"
 8rtn = robot.LoadTrajectoryJ(traj_file_name, 100, 1)
 9print(f"LoadTrajectoryJ {traj_file_name}, rtn is: {rtn}")
10rtn,traj_start_pose = robot.GetTrajectoryStartPose(traj_file_name)
11print(f"GetTrajectoryStartPose is: {rtn}")
12print(f"desc_pos:{traj_start_pose[0]},{traj_start_pose[1]},{traj_start_pose[2]},"
13      f"{traj_start_pose[3]},{traj_start_pose[4]},{traj_start_pose[5]}")
14time.sleep(1)
15robot.SetSpeed(50)
16robot.MoveCart(traj_start_pose, 0, 0, 50, 100, 100)
17rtn,traj_num = robot.GetTrajectoryPointNum()
18print(f"GetTrajectoryStartPose rtn is: {rtn}, traj num is: {traj_num}")
19rtn = robot.SetTrajectoryJSpeed(50.0)
20print(f"SetTrajectoryJSpeed is: {rtn}")
21traj_force = [0.0,0.0,0.0,0.0,0.0,0.0]
22traj_force[0] = 10  # fx = 10
23rtn = robot.SetTrajectoryJForceTorque(traj_force)
24print(f"SetTrajectoryJForceTorque rtn is: {rtn}")
25rtn = robot.SetTrajectoryJForceFx(10.0)
26print(f"SetTrajectoryJForceFx rtn is: {rtn}")
27rtn = robot.SetTrajectoryJForceFy(0.0)
28print(f"SetTrajectoryJForceFy rtn is: {rtn}")
29rtn = robot.SetTrajectoryJForceFz(0.0)
30print(f"SetTrajectoryJForceFz rtn is: {rtn}")
31rtn = robot.SetTrajectoryJTorqueTx(10.0)
32print(f"SetTrajectoryJTorqueTx rtn is: {rtn}")
33rtn = robot.SetTrajectoryJTorqueTy(10.0)
34print(f"SetTrajectoryJTorqueTy rtn is: {rtn}")
35rtn = robot.SetTrajectoryJTorqueTz(10.0)
36print(f"SetTrajectoryJTorqueTz rtn is: {rtn}")
37rtn = robot.MoveTrajectoryJ()
38print(f"MoveTrajectoryJ rtn is: {rtn}")
39robot.CloseRPC()

9.26. Trajektorie vorverarbeiten (Vorausschauende Planung für TrajectoryLA)

Neu in Version Python: SDK-v2.1.4

Prototyp

LoadTrajectoryLA(name, mode, errorLim, type, precision, vamx, amax, jmax, flag)

Beschreibung

Trajektorie vorverarbeiten (Vorausschauende Planung für TrajectoryLA)

Erforderliche Parameter

  • name: Name der Trajektoriendatei

  • mode: Abtastmodus, 0 = keine Abtastung, 1 = Abtastung mit konstantem Datenintervall, 2 = Abtastung mit Fehlergrenze

  • errorLim: Fehlergrenze (wirksam bei Verwendung linearer Approximation)

  • type: Glättungsmethode, 0 = Bezier-Glättung

  • precision: Glättungsgenauigkeit (wirksam bei Verwendung von Bezier-Glättung)

  • vamx: Eingestellte maximale Geschwindigkeit [mm/s]

  • amax: Eingestellte maximale Beschleunigung [mm/s²]

  • jmax: Eingestellter maximaler Ruck [mm/s³]

  • flag: Schalter für konstante Vorausschau-Geschwindigkeit: 0 = deaktiviert, 1 = aktiviert

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

9.27. Trajektorie wiedergeben (Vorausschauende Planung für TrajectoryLA)

Neu in Version Python: SDK-v2.1.0

Prototyp

MoveTrajectoryLA()

Beschreibung

Trajektorie wiedergeben (Vorausschauende Planung für TrajectoryLA)

Erforderliche Parameter

Keine

Standardparameter

Keine

Rückgabewert

Fehlercode: 0 = Erfolg, sonst Fehlercode

9.28. Codebeispiel für Trajektorienwiedergabe (Vorausschauende Planung)

 1from fairino import Robot
 2import time
 3# Verbindung zur Robotersteuerung herstellen, bei Erfolg wird ein Roboterobjekt zurückgegeben
 4robot = Robot.RPC('192.168.58.2')
 5rtn = robot.TrajectoryJUpLoad("D://zUP/traj.txt")
 6print(f"Upload TrajectoryJ A {rtn}")
 7traj_file_name = "/fruser/traj/traj.txt"
 8rtn = robot.LoadTrajectoryLA(traj_file_name, 1, 2, 0, 2, 50, 200, 1000, 0)
 9print(f"LoadTrajectoryLA {traj_file_name}, rtn is: {rtn}")
10rtn, traj_start_pose = robot.GetTrajectoryStartPose(traj_file_name)
11print(f"GetTrajectoryStartPose is: {rtn}")
12print(f"desc_pos: {traj_start_pose[0]},{traj_start_pose[1]},{traj_start_pose[2]},{traj_start_pose[3]},{traj_start_pose[4]},{traj_start_pose[5]}")
13time.sleep(1)
14robot.SetSpeed(50)
15robot.MoveCart(traj_start_pose, 0, 0, 100, 100, 100)
16rtn = robot.MoveTrajectoryLA()
17print(f"MoveTrajectoryLA rtn is: {rtn}")
18robot.CloseRPC()

9.29. Bewegung zum Startpunkt der TPD-Bahnaufzeichnung

Prototyp

MoveToTPDStart(name, moveType, ovl)

Beschreibung

Bewegung zum Startpunkt der TPD-Bahnaufzeichnung

Erforderliche Parameter

  • name: Bahndateiname

  • moveType: Bewegungstyp; 0-PTP; 1-LIN

  • ovl: Geschwindigkeitsskalierungsprozentsatz, Bereich [0~100]

Standardparameter

Keine

Rückgabewert

Fehlercode Erfolg-0 Fehler-errcode

9.30. SDK-Codebeispiel für die Bewegung zum Startpunkt der TPD-Bahnaufzeichnung

 1from time import sleep
 2from fairino import Robot
 3from ctypes import sizeof
 4# Verbindung mit der Robotersteuerung herstellen, bei Erfolg wird ein Roboter-Objekt zurückgegeben
 5robot = Robot.RPC('192.168.58.2')
 6import time
 7
 8def TestTPD(self):
 9    type = 1
10    name = "tpd2025"
11    period_ms = 4
12    di_choose = 0
13    do_choose = 0
14
15    robot.SetTPDParam(type=type, name=name, period_ms=period_ms, di_choose=di_choose, do_choose=do_choose)
16
17    robot.Mode(1)
18    time.sleep(1)
19    robot.DragTeachSwitch(1)
20    robot.SetTPDStart(type=type, name=name, period_ms=period_ms, di_choose=di_choose, do_choose=do_choose)
21    time.sleep(3)
22    robot.SetWebTPDStop()
23    robot.DragTeachSwitch(0)
24
25    time.sleep(1)
26    ovl = 100.0
27    blend = 0
28    start_pose = [0.0] * 6
29    rtn = robot.LoadTPD(name)
30    print(f"LoadTPD rtn is: {rtn}")
31
32    rtn, start_pose = robot.GetTPDStartPose(name)
33    print(f"start pose, xyz is: {start_pose[0]},{start_pose[1]},{start_pose[2]}. rpy is: {start_pose[3]},{start_pose[4]},{start_pose[5]}")
34    # robot.MoveCart(desc_pos=start_pose, tool=0, user=0, vel=100, acc=100, ovl=ovl, blendT=-1, config=-1)
35    #time.sleep(1)
36
37    rtn = robot.MoveToTPDStart(name, 0, 100)
38    print(f"MoveToTPDStart rtn is: {rtn}")
39
40    rtn = robot.MoveTPD(name, blend, ovl)
41    print(f"MoveTPD rtn is: {rtn}")
42    time.sleep(5)
43
44    robot.SetTPDDelete(name)
45
46    robot.CloseRPC()
47    return 0
48
49TestTPD(robot)