9. Riproduzione Traiettoria Robot

9.1. Impostazione Parametri Registrazione Traiettoria

Prototipo

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

Descrizione

Imposta i parametri di registrazione della traiettoria

Parametri Obbligatori

  • name:Nome traiettoria;

  • period_ms:Periodo di campionamento, valore fisso, 2ms o 4ms o 8ms;

Parametri Predefiniti

  • type:Tipo dati, 1-posizione giunto;

  • di_choose:Selezione DI, bit0~bit7 corrispondono a DI0~DI7 del pannello di controllo, bit8~bit9 corrispondono a DI0~DI1 terminale, 0-non selezionare, 1-selezionare, default 0;

  • do_choose:Selezione DO, bit0~bit7 corrispondono a DO0~DO7 del pannello di controllo, bit8~bit9 corrispondono a DO0~DO1 terminale, 0-non selezionare, 1-selezionare, default 0

Valore Restituito

Codice errore Successo-0 Fallimento- errore

9.2. Inizio Registrazione Traiettoria

Prototipo

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

Descrizione

Inizia la registrazione della traiettoria

Parametri Obbligatori

  • name:Nome traiettoria;

  • period_ms:Periodo di campionamento, valore fisso, 2ms o 4ms o 8ms;

Parametri Predefiniti

  • type:Tipo dati, 1-posizione giunto, default 1;

  • di_choose:Selezione DI, bit0~bit7 corrispondono a DI0~DI7 del pannello di controllo, bit8~bit9 corrispondono a DI0~DI1 terminale, 0-non selezionare, 1-selezionare, default 0;

  • do_choose:Selezione DO, bit0~bit7 corrispondono a DO0~DO7 del pannello di controllo, bit8~bit9 corrispondono a DO0~DO1 terminale, 0-non selezionare, 1-selezionare, default 0

Valore Restituito

Codice errore Successo-0 Fallimento- errore

9.3. Arresto Registrazione Traiettoria

Prototipo

SetWebTPDStop()

Descrizione

Arresta la registrazione della traiettoria

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore Restituito

Codice errore Successo-0 Fallimento- errore

9.4. Eliminazione Registrazione Traiettoria

Prototipo

SetTPDDelete(name)

Descrizione

Elimina la registrazione della traiettoria

Parametri Obbligatori

  • name: Nome traiettoria

Parametri Predefiniti

Nessuno

Valore Restituito

Codice errore Successo-0 Fallimento- errore

9.5. Esempio Codice

 1from fairino import Robot
 2import time
 3# Stabilisce connessione con controller robot, restituisce oggetto robot se connesso
 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. Precaricamento Traiettoria

Prototipo

LoadTPD(name)

Descrizione

Precaricamento traiettoria

Parametri Obbligatori

  • name: Nome traiettoria

Parametri Predefiniti

Nessuno

Valore Restituito

Codice errore Successo-0 Fallimento- errore

9.7. Riproduzione Traiettoria

Prototipo

MoveTPD(name,blend,ovl)

Descrizione

Riproduzione traiettoria

Parametri Obbligatori

  • name: Nome traiettoria

  • blend:Smussamento, 0-non smussato, 1-smussato

  • ovl:Fattore di scala velocità, intervallo [0~100]

Parametri Predefiniti

Nessuno

Valore Restituito

Codice errore Successo-0 Fallimento- errore

9.8. Ottenere Posa Iniziale Traiettoria

Prototipo

GetTPDStartPose(name)

Descrizione

Ottiene la posa iniziale della traiettoria

Parametri Obbligatori

  • name: Nome traiettoria

Parametri Predefiniti

Nessuno

Valore Restituito

  • Codice errore Successo-0 Fallimento- errore

  • desc_pose=[x,y,z,rx,ry,rz]:Posa iniziale traiettoria

9.9. Esempio Codice Registrazione Traiettoria TPD Robot

 1from fairino import Robot
 2import time
 3# Stabilisce connessione con controller robot, restituisce oggetto robot se connesso
 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. Pre-elaborazione Traiettoria

Prototipo

LoadTrajectoryJ(name,ovl,opt=1)

Descrizione

Pre-elaborazione traiettoria

Parametri Obbligatori

  • name: Nome traiettoria, es: /fruser/traj/trajHelix_aima_1.txt;

  • ovl:Percentuale scala velocità, intervallo [0~100];

Parametri Predefiniti

  • opt:1-punto di controllo, default 1

Valore Restituito

Codice errore Successo-0 Fallimento- errore

9.11. Riproduzione Traiettoria

Prototipo

MoveTrajectoryJ()

Descrizione

Riproduzione traiettoria

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore Restituito

Codice errore Successo-0 Fallimento- errore

9.12. Ottenere Posa Iniziale Traiettoria

Prototipo

GetTrajectoryStartPose(name)

Descrizione

Ottiene la posa iniziale della traiettoria

Parametri Obbligatori

name: Nome traiettoria

Parametri Predefiniti

Nessuno

Valore Restituito

  • Codice errore Successo-0 Fallimento- errore

  • desc_pose=[x,y,z,rx,ry,rz]:Posa iniziale traiettoria

9.13. Ottenere Numero Punti Traiettoria

Prototipo

GetTrajectoryPointNum()

Descrizione

Ottiene il numero dei punti della traiettoria

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore Restituito

  • Codice errore Successo-0 Fallimento- errore

  • pnum:Numero punti traiettoria

9.14. Impostare la Velocità Durante l’Esecuzione della Traiettoria

Prototipo

SetTrajectoryJSpeed(ovl, mode)

Descrizione

Imposta la velocità durante l’esecuzione della traiettoria

Parametri Obbligatori

  • ovl: Percentuale di scala della velocità, intervallo [0~100]

  • mode: 0-modalità di riduzione della velocità; 1-commutazione diretta

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice di errore Successo-0 Fallimento-errcode

9.15. Esempio di Codice per Impostare la Velocità Durante l’Esecuzione della Traiettoria

 1from time import sleep
 2import time
 3from fairino import Robot
 4
 5# Stabilire la connessione con il controller del robot
 6robot = Robot.RPC('192.168.58.2')
 7
 8
 9def TestSetTrajectoryJSpeed(self):
10    # Caricare il file di traiettoria
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    # Caricare il file di traiettoria, parametri: nome file, percentuale di velocità, loop (1: loop)
16    rtn = robot.LoadTrajectoryJ(name=traj_file_name, ovl=100, opt=1)
17    print(f"LoadTrajectoryJ {traj_file_name}, rtn is: {rtn}")
18
19    # Ottenere la posa di inizio traiettoria
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    # Impostare la velocità base e muoversi al punto di inizio traiettoria
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    # Ottenere il numero di punti della traiettoria
32    rtn, traj_num = robot.GetTrajectoryPointNum()
33    print(f"GetTrajectoryStartPose rtn is: {rtn}, traj num is: {traj_num}")
34
35    # Avviare il movimento della traiettoria
36    rtn = robot.MoveTrajectoryJ()
37    print(f"MoveTrajectoryJ rtn is: {rtn}")
38
39    time.sleep(1)
40
41    # Ottenere lo stato in tempo reale del robot
42    trajspeedMode = 0
43    while True:
44        rtn, pkg = robot.GetRobotRealTimeState()
45        if pkg.motion_done != 0:
46            break
47
48        # Impostare la velocità della traiettoria al 10%
49        rtn = robot.SetTrajectoryJSpeed(ovl=10.0, mode=trajspeedMode)
50        print(f"SetTrajectoryJSpeed is: {rtn}")
51
52        time.sleep(1)
53
54        # Impostare la velocità della traiettoria all'80%
55        rtn = robot.SetTrajectoryJSpeed(ovl=80.0, mode=trajspeedMode)
56        print(f"SetTrajectoryJSpeed is: {rtn}")
57
58        time.sleep(1)
59
60    # Chiudere la connessione
61    robot.CloseRPC()
62    time.sleep(1)
63
64
65# Chiamare la funzione di test
66TestSetTrajectoryJSpeed(robot)

9.16. Impostazione Forza e Coppia durante Esecuzione Traiettoria

Prototipo

SetTrajectoryJForceTorque(ft)

Descrizione

Imposta forza e coppia durante l’esecuzione della traiettoria

Parametri Obbligatori

ft=[fx,fy,fz,tx,ty,tz]: Unità N e Nm

Parametri Predefiniti

Nessuno

Valore Restituito

Codice errore Successo-0 Fallimento- errore

9.17. Impostazione Forza lungo direzione X durante Esecuzione Traiettoria

Prototipo

SetTrajectoryJForceFx(fx)

Descrizione

Imposta la forza lungo la direzione X durante l’esecuzione della traiettoria

Parametri Obbligatori

fx: Forza lungo direzione X, unità N

Parametri Predefiniti

Nessuno

Valore Restituito

Codice errore Successo-0 Fallimento- errore

9.18. Impostazione Forza lungo direzione Y durante Esecuzione Traiettoria

Prototipo

SetTrajectoryJForceFy(fy)

Descrizione

Imposta la forza lungo la direzione Y durante l’esecuzione della traiettoria

Parametri Obbligatori

fy: Forza lungo direzione Y, unità N

Parametri Predefiniti

Nessuno

Valore Restituito

Codice errore Successo-0 Fallimento- errore

9.19. Impostazione Forza lungo direzione Z durante Esecuzione Traiettoria

Prototipo

SetTrajectoryJForceFz(fz)

Descrizione

Imposta la forza lungo la direzione Z durante l’esecuzione della traiettoria

Parametri Obbligatori

fz: Forza lungo direzione Z, unità N

Parametri Predefiniti

Nessuno

Valore Restituito

Codice errore Successo-0 Fallimento- errore

9.20. Impostazione Coppia attorno asse X durante Esecuzione Traiettoria

Prototipo

SetTrajectoryJTorqueTx(tx)

Descrizione

Imposta la coppia attorno all’asse X durante l’esecuzione della traiettoria

Parametri Obbligatori

tx: Coppia attorno asse X, unità Nm

Parametri Predefiniti

Nessuno

Valore Restituito

Codice errore Successo-0 Fallimento- errore

9.21. Impostazione Coppia attorno asse Y durante Esecuzione Traiettoria

Prototipo

SetTrajectoryJTorqueTy(ty)

Descrizione

Imposta la coppia attorno all’asse Y durante l’esecuzione della traiettoria

Parametri Obbligatori

ty: Coppia attorno asse Y, unità Nm

Parametri Predefiniti

Nessuno

Valore Restituito

Codice errore Successo-0 Fallimento- errore

9.22. Impostazione Coppia attorno asse Z durante Esecuzione Traiettoria

Prototipo

SetTrajectoryJTorqueTz(tz)

Descrizione

Imposta la coppia attorno all’asse Z durante l’esecuzione della traiettoria

Parametri Obbligatori

  • tz: Coppia attorno asse Z, unità Nm

Parametri Predefiniti

Nessuno

Valore Restituito

Codice errore Successo-0 Fallimento- errore

9.23. Caricamento File Traiettoria J

Nuovo nella versione python: SDK-v2.0.7

Prototipo

TrajectoryJUpLoad(filePath)

Descrizione

Carica il file traiettoria J

Parametri Obbligatori

  • filePath: Percorso completo del file traiettoria da caricare, C://test/testJ.txt

Parametri Predefiniti

Nessuno

Valore Restituito

Codice errore Successo-0 Fallimento- errore

9.24. Eliminazione File Traiettoria J

Nuovo nella versione python: SDK-v2.0.7

Prototipo

TrajectoryJDelete(filePath)

Descrizione

Elimina il file traiettoria J

Parametri Obbligatori

  • filePath: Percorso completo del file traiettoria da eliminare, C://test/testJ.txt

Parametri Predefiniti

Nessuno

Valore Restituito

Codice errore Successo-0 Fallimento- errore

9.25. Esempio Codice Riproduzione File Traiettoria J Robot

 1from fairino import Robot
 2import time
 3# Stabilisce connessione con controller robot, restituisce oggetto robot se connesso
 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. Pre-elaborazione Traiettoria (Anticipazione Traiettoria)

Nuovo nella versione python: SDK-v2.1.4

Prototipo

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

Descrizione

Pre-elaborazione traiettoria (Anticipazione traiettoria)

Parametri Obbligatori

  • name: Nome file traiettoria

  • mode:Modalità campionamento, 0-non campionare; 1-campionamento a intervalli dati uguali; 2-campionamento con limitazione errore

  • errorLim: Limite errore, effettivo con interpolazione lineare

  • type: Metodo smussamento, 0-smussamento Bezier

  • precision: Precisione smussamento, effettiva con smussamento Bezier

  • vamx: Velocità massima impostata, mm/s

  • amax: Accelerazione massima impostata, mm/s2

  • jmax: Massima derivate accelerazione impostata, mm/s3

  • flag: Interruttore attivazione anticipazione velocità costante 0-non attivare; 1-attivare

Parametri Predefiniti

Nessuno

Valore Restituito

Codice errore Successo-0 Fallimento- errore

9.27. Riproduzione Traiettoria (Anticipazione Traiettoria)

Nuovo nella versione python: SDK-v2.1.0

Prototipo

MoveTrajectoryLA()

Descrizione

Riproduzione traiettoria (Anticipazione traiettoria)

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore Restituito

Codice errore Successo-0 Fallimento- errore

9.28. Esempio Codice Riproduzione Traiettoria (Anticipazione Traiettoria)

 1from fairino import Robot
 2import time
 3# Stabilisce connessione con controller robot, restituisce oggetto robot se connesso
 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. Spostarsi al Punto di Inizio della Registrazione della Traiettoria TPD

Prototipo

MoveToTPDStart(name, moveType, ovl)

Descrizione

Spostarsi al punto di inizio della registrazione della traiettoria TPD

Parametri Obbligatori

  • name: Nome del file di traiettoria

  • moveType: Tipo di movimento; 0-PTP; 1-LIN

  • ovl: Percentuale di scala della velocità, intervallo [0~100]

Parametri Predefiniti

Nessuno

Valore di Ritorno

Codice di errore Successo-0 Fallimento-errcode

9.30. Esempio di Codice SDK per Spostarsi al Punto di Inizio della Registrazione della Traiettoria TPD

 1from time import sleep
 2from fairino import Robot
 3from ctypes import sizeof
 4# Stabilire la connessione con il controller del robot, in caso di successo restituisce un oggetto robot
 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)