7. Impostazioni Sicurezza Robot

7.1. Impostare Livello Collisione

Prototipo

SetAnticollision (mode,level,config)

Descrizione

Imposta livello collisione

Parametri Obbligatori

  • mode:0-livello, 1-percentuale;

  • level=[j1,j2,j3,j4,j5,j6]:soglia collisione;

  • config:0-non aggiorna file configurazione, 1-aggiorna file configurazione

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

7.2. Impostare Strategia dopo Collisione

Prototipo

SetCollisionStrategy(strategy,safeTime,safeDistance,safeVel,safetyMargin)

Descrizione

Imposta strategia dopo collisione

Parametri Obbligatori

  • strategy:0-errore pausa, 1-continua esecuzione, 2-errore stop, 3-modalità coppia gravità, 4-modalità risposta oscillazione, 5-modalità rimbalzo collisione

Parametri Predefiniti

  • safeTime:tempo arresto sicurezza [1000-2000]ms, default: 1000

  • safeDistance:distanza arresto sicurezza [1-150]mm, default: 100

  • safeVel:velocità arresto sicurezza [50-250]mm/s, default: 250

  • safetyMargin[6]:fattore sicurezza [1-10], default: [10,10,10,10,10,10]

Valore Ritorno

Codice errore successo-0 fallimento- errcode

7.3. Inizio Funzione Soglia Rilevamento Collisione Personalizzata, Imposta Soglia Rilevamento Collisione Giunti e TCP

Nuovo nella versione python: SDK-v2.1.0

Prototipo

CustomCollisionDetectionStart(flag, jointDetectionThreshould, tcpDetectionThreshould, block)

Descrizione

Inizio funzione soglia rilevamento collisione personalizzata, imposta soglia rilevamento collisione giunti e TCP

Parametri Obbligatori

  • flag: 1-solo rilevamento giunti attivo; 2-solo rilevamento TCP attivo; 3-rilevamento giunti e TCP attivi contemporaneamente

  • jointDetectionThreshould: soglia rilevamento collisione giunti j1-j6

  • tcpDetectionThreshould: soglia rilevamento collisione TCP, xyzabc

  • block: 0-non bloccante; 1-bloccante

Parametri Predefiniti

Nessuno

Valore Ritorno

  • Codice errore successo-0 fallimento- errcode

7.4. Fine Funzione Soglia Rilevamento Collisione Personalizzata

Nuovo nella versione python: SDK-v2.1.0

Prototipo

CustomCollisionDetectionEnd()

Descrizione

Fine funzione soglia rilevamento collisione personalizzata

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore Ritorno

  • Codice errore successo-0 fallimento- errcode

7.5. Esempio Codice Impostazione Livello Collisione Robot

 1from fairino import Robot
 2import time
 3# Stabilire connessione con controller robot, connessione riuscita ritorna oggetto robot
 4robot = Robot.RPC('192.168.58.2')
 5mode = 0
 6config = 1
 7level1 = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
 8level2 = [50.0, 20.0, 30.0, 40.0, 50.0, 60.0]
 9rtn = robot.SetAnticollision(mode, level1, config)
10print(f"SetAnticollision mode 0 rtn is {rtn}")
11mode = 1
12rtn = robot.SetAnticollision(mode, level2, config)
13print(f"SetAnticollision mode 1 rtn is {rtn}")
14p1Joint = [-11.904, -99.669, 117.473, -108.616, -91.726, 74.256]
15p2Joint = [-45.615, -106.172, 124.296, -107.151, -91.282, 74.255]
16p1Desc = [-419.524, -13.000, 351.569, -178.118, 0.314, 3.833]
17p2Desc = [-321.222, 185.189, 335.520, -179.030, -1.284, -29.869]
18exaxisPos = [0.0, 0.0, 0.0, 0.0]
19offdese = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
20robot.MoveL(desc_pos=p2Desc, tool=0, user=0, vel=100, blendR=2)
21robot.ResetAllError()
22safety = [5, 5, 5, 5, 5, 5]
23rtn = robot.SetCollisionStrategy(3, 1000, 150, 250, safety)
24print(f"SetCollisionStrategy rtn is {rtn}")
25jointDetectionThreshould = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
26tcpDetectionThreshould = [60, 60, 60, 60, 60, 60]
27rtn = robot.CustomCollisionDetectionStart(3, jointDetectionThreshould, tcpDetectionThreshould, 0)
28print(f"CustomCollisionDetectionStart rtn is {rtn}")
29robot.MoveL(desc_pos=p1Desc, tool=0, user=0, vel=100)
30robot.MoveL(desc_pos=p2Desc, tool=0, user=0, vel=100)
31rtn = robot.CustomCollisionDetectionEnd()
32print(f"CustomCollisionDetectionEnd rtn is {rtn}")
33robot.CloseRPC()

7.6. Impostare Limite Positivo

Prototipo

SetLimitPositive(p_limit)

Descrizione

Imposta limite positivo

Parametri Obbligatori

  • p_limit=[j1,j2,j3,j4,j5,j6]:sei posizioni giunti

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

7.7. Impostare Limite Negativo

Prototipo

SetLimitNegative(n_limit)

Descrizione

Imposta limite negativo

Parametri Obbligatori

  • n_limit=[j1,j2,j3,j4,j5,j6]:sei posizioni giunti

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

7.8. Ottenere Angoli Limiti Soft Giunti

Prototipo

GetJointSoftLimitDeg(flag=1)

Descrizione

Ottiene angoli limiti soft giunti

Parametri Obbligatori

Nessuno

Parametri Predefiniti

flag:0-bloccante, 1-non bloccante default 1

Valore Ritorno

  • Codice errore successo-0 fallimento- errcode

  • [j1min,j1max,j2min,j2max,j3min,j3max, j4min,j4max,j5min, j5max, j6min,j6max]:asse1~asse6, limite negativo e positivo giunti, unità[mm]

7.9. Esempio Codice Impostazione Limiti Robot

 1from fairino import Robot
 2import time
 3# Stabilire connessione con controller robot, connessione riuscita ritorna oggetto robot
 4robot = Robot.RPC('192.168.58.2')
 5plimit = [170.0, 80.0, 150.0, 80.0, 170.0, 160.0]
 6robot.SetLimitPositive(plimit)
 7nlimit = [-170.0, -260.0, -150.0, -260.0, -170.0, -160.0]
 8robot.SetLimitNegative(nlimit)
 9error,neg_deg = robot.GetJointSoftLimitDeg(0)
10print(f"limite positivo deg: {neg_deg[1]}, {neg_deg[3]}, {neg_deg[5]}, {neg_deg[7]}, {neg_deg[9]}, {neg_deg[11]}")
11print(f"limite negativo deg: {neg_deg[0]}, {neg_deg[2]}, {neg_deg[4]}, {neg_deg[6]}, {neg_deg[8]}, {neg_deg[10]}")
12robot.CloseRPC()

7.10. Impostare Metodo Rilevamento Collisione Robot

Nuovo nella versione python: SDK-v2.1.2

Prototipo

SetCollisionDetectionMethod(method, thresholdMode)

Descrizione

Imposta metodo rilevamento collisione robot

Parametri Obbligatori

  • method:metodo rilevamento collisione: 0-modalità corrente; 1-doppio encoder; 2-corrente e doppio encoder entrambi attivi

  • thresholdMode:modalità soglia livello collisione; 0-modalità soglia fissa livello collisione; 1-soglia rilevamento collisione personalizzata

Parametri Predefiniti

Nessuno

Valore Ritorno

  • Codice errore successo-0 fallimento- errcode

7.11. Impostare Attivazione/Disattivazione Rilevamento Collisione in Stato Statico

Nuovo nella versione python: SDK-v2.0.5

Prototipo

SetStaticCollisionOnOff(status)

Descrizione

Imposta attivazione/disattivazione rilevamento collisione in stato statico

Parametri Obbligatori

  • status: 0-disattivato; 1-attivato

Parametri Predefiniti

Nessuno

Valore Ritorno

  • Codice errore successo-0 fallimento- errcode

7.12. Esempio Codice Impostazione Metodo Rilevamento Collisione Robot

 1from fairino import Robot
 2import time
 3# Stabilire connessione con controller robot, connessione riuscita ritorna oggetto robot
 4robot = Robot.RPC('192.168.58.2')
 5rtn = robot.SetCollisionDetectionMethod(0,0)
 6rtn = robot.SetStaticCollisionOnOff(1)
 7print(f"SetStaticCollisionOnOff On rtn is {rtn}")
 8time.sleep(5)
 9rtn = robot.SetStaticCollisionOnOff(0)
10print(f"SetStaticCollisionOnOff Off rtn is {rtn}")
11robot.CloseRPC()

7.13. Rilevamento Potenza Coppia Giunti

Nuovo nella versione python: SDK-v2.0.5

Prototipo

SetPowerLimit(status, power)

Descrizione

Rilevamento potenza coppia giunti

Parametri Obbligatori

  • status:0-disattivato; 1-attivato

  • power:imposta potenza massima (W)

Parametri Predefiniti

Nessuno

Valore Ritorno

  • Codice errore successo-0 fallimento- errcode

7.14. Esempio Codice Rilevamento Potenza Coppia Giunti

 1from fairino import Robot
 2import time
 3# Stabilire connessione con controller robot, connessione riuscita ritorna oggetto robot
 4robot = Robot.RPC('192.168.58.2')
 5robot.DragTeachSwitch(1)
 6robot.SetPowerLimit(1, 200)
 7error,torques = robot.GetJointTorques(1)
 8count = 100
 9robot.ServoJTStart()
10while count > 0:
11    error = robot.ServoJT(torques, 0.001)
12    count -= 1
13    time.sleep(0.001)  # ritardo 1ms
14error = robot.ServoJTEnd()
15robot.DragTeachSwitch(0)
16robot.CloseRPC()