4. Movimento del Robot

4.1. Jog Inching

Prototipo

StartJOG(ref,nb,dir,max_dis,vel=20.0,acc=100.0)

Descrizione

Jog inching

Parametri obbligatori

  • ref:0-joint inching,2-sistema base inching,4-sistema utensile inching,8-sistema pezzo inching;

  • nb:1-1° giunto(asse x),2-2° giunto(asse y),3-3° giunto(asse z),4-4° giunto(rx),5-5° giunto(ry),6-6° giunto(rz);

  • dir:0-direzione negativa,1-direzione positiva;

  • max_dis:angolo/distanza massimo singolo inching,unità ° o mm;

Parametri predefiniti

  • vel:percentuale velocità,[0~100] default 20;

  • acc:percentuale accelerazione,[0~100] default 100;

Valore restituito

Codice errore Successo-0 Fallimento- errcode

4.2. Arresto decelerazione jog inching

Prototipo

StopJOG(ref)

Descrizione

Arresto decelerazione jog inching

Parametri obbligatori

  • ref:1-arresto joint inching,3-arresto sistema base inching,5-arresto sistema utensile inching,9-arresto sistema pezzo inching

Parametri predefiniti

Nessuno

Valore restituito

Codice errore Successo-0 Fallimento- errcode

4.3. Arresto immediato jog inching

Prototipo

ImmStopJOG()

Descrizione

Arresto immediato jog inching

Parametri obbligatori

Nessuno

Parametri predefiniti

Nessuno

Valore restituito

Codice errore Successo-0 Fallimento- errcode

4.4. Esempio codice controllo inching robot

 1from fairino import Robot
 2import time
 3# Stabilire connessione con controller robot, restituisce oggetto robot se connesso con successo
 4robot = Robot.RPC('192.168.58.2')
 5for i in range(6):
 6    robot.StartJOG(0, i + 1, 0, 20.0, 20.0, 30.0)
 7    time.sleep(1)
 8    robot.ImmStopJOG()
 9    time.sleep(1)
10for i in range(6):
11    robot.StartJOG(2, i + 1, 0, 20.0, 20.0, 30.0)
12    time.sleep(1)
13    robot.ImmStopJOG()
14    time.sleep(1)
15for i in range(6):
16    robot.StartJOG(4, i + 1, 0, 20.0, 20.0, 30.0)
17    time.sleep(1)
18    robot.StopJOG(5)
19    time.sleep(1)
20for i in range(6):
21    robot.StartJOG(8, i + 1, 0, 20.0, 20.0, 30.0)
22    time.sleep(1)
23    robot.StopJOG(9)
24    time.sleep(1)
25robot.CloseRPC()

4.5. Movimento spazio giunti

Prototipo

MoveJ(joint_pos, tool, user, desc_pos = [0.0,0.0,0.0,0.0,0.0,0.0], vel = 20.0, acc = 0.0, ovl = 100.0, exaxis_pos = [0.0,0.0,0.0,0.0], blendT = -1.0, offset_flag = 0, offset_pos = [0.0,0.0,0.0,0.0,0.0,0.0])

Descrizione

Movimento spazio giunti

Parametri obbligatori

  • joint_pos: posizione giunti target,unità[°];

  • tool: numero utensile,[0~14];

  • user: numero pezzo,[0~14];

Parametri predefiniti

  • desc_pos: posa cartesiana target,unità [mm][°] default valore iniziale [0.0,0.0,0.0,0.0,0.0,0.0],valore default chiamata cinematica diretta restituisce valore;

  • vel: percentuale velocità,[0~100] default 20.0;

  • acc: percentuale accelerazione,[0~100],non aperto attualmente;

  • ovl: fattore scala velocità,[0~100] default 100.0;

  • exaxis_pos: asse esterno 1 posizione ~ asse esterno 4 posizione default [0.0,0.0,0.0,0.0];

  • blendT:[-1.0]-movimento a posizione (bloccante),[0~500.0]-tempo smooth (non bloccante),unità [ms] default -1.0;

  • offset_flag:[0]-nessun offset,[1]-offset sistema pezzo/base,[2]-offset sistema utensile default 0;

  • offset_pos: quantità offset posa,unità [mm][°] default [0.0,0.0,0.0,0.0,0.0,0.0];

Valore restituito

Codice errore Successo-0 Fallimento- errcode

4.6. Movimento Lineare nello Spazio Cartesiano

Nuovo nella versione python: SDK-v2.1.5

Prototipo

MoveL(desc_pos, tool, user, joint_pos=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], vel=20.0, acc=0.0, ovl=100.0,blendR=-1.0, blendMode = 0,exaxis_pos=[0.0, 0.0, 0.0, 0.0], search=0, offset_flag=0,offset_pos=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],oacc = 100.0,config=-1,velAccParamMode=0,overSpeedStrategy=0,speedPercent=10)

Descrizione

Movimento Lineare nello Spazio Cartesiano

Parametri Obbligatori

  • desc_pos: Posa cartesiana target, unità [mm][°];

  • tool: Numero utensile, [0~14];

  • user: Numero pezzo/utente, [0~14];

Parametri Predefiniti

  • joint_pos: Posizioni target dei giunti, unità [°] Valore iniziale predefinito è [0.0,0.0,0.0,0.0,0.0,0.0], valore predefinito è il risultato della cinematica inversa;

  • vel: Percentuale di velocità, [0~100] Predefinito 20.0;

  • acc: Percentuale di accelerazione, [0~100], attualmente non disponibile Predefinito 0.0;

  • ovl: Fattore di scala velocità, [0~100] Predefinito 100.0;

  • blendR:[-1.0]-Blocca fino al completamento del movimento (bloccante), [0~1000]-Raggio di transizione (non bloccante), unità [mm] Predefinito -1.0;

  • blendMode: Metodo di transizione; 0-Transizione tangente; 1-Transizione a spigolo, predefinito 0;

  • exaxis_pos: Posizione asse esterno 1 ~ Posizione asse esterno 4 Predefinito [0.0,0.0,0.0,0.0];

  • search:[0]-Nessuna ricerca filo, [1]-Ricerca filo;

  • offset_flag:[0]-Nessuno scostamento, [1]-Scostamento nel sistema di coordinate pezzo/base, [2]-Scostamento nel sistema di coordinate utensile Predefinito 0;

  • offset_pos: Valore di scostamento della posa, unità [mm][°] Predefinito [0.0,0.0,0.0,0.0,0.0,0.0];

  • oacc: Fattore di scala accelerazione [0-100] / Accelerazione fisica (mm/s²) Predefinito 100;

  • config: Configurazione spazio giunti per soluzione inversa, [-1]-Risolvi con riferimento alle posizioni correnti dei giunti, [0~7]-Risolvi secondo una specifica configurazione dello spazio giunti, predefinito -1

  • velAccParamMode: Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) e accelerazione (mm/s²) Predefinito 0

  • overSpeedStrategy: Strategia di gestione sovravelocità, 0-Strategia disabilitata; 1-Standard; 2-Ferma con errore in caso di sovravelocità; 3-Riduzione adattiva della velocità, predefinito 0

  • speedPercent: Percentuale di soglia di riduzione velocità consentita [0-100], predefinito 10%

Valore di Ritorno

Codice di errore 0-Successo Errore- errcode

4.7. Movimento ad Arco Circolare nello Spazio Cartesiano

Nuovo nella versione python: SDK-v2.1.5

Prototipo

MoveC(desc_pos_p, tool_p, user_p, desc_pos_t, tool_t, user_t, joint_pos_p=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], joint_pos_t=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],vel_p=20.0, acc_p=100.0, exaxis_pos_p=[0.0, 0.0, 0.0, 0.0], offset_flag_p=0,offset_pos_p=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],vel_t=20.0, acc_t=100.0, exaxis_pos_t=[0.0, 0.0, 0.0, 0.0], offset_flag_t=0,offset_pos_t=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],ovl=100.0, blendR=-1.0,oacc=100.0,config=-1,velAccParamMode=0)

Descrizione

Movimento ad Arco Circolare nello Spazio Cartesiano

Parametri Obbligatori

  • desc_pos_p: Posa cartesiana del punto di percorso, unità [mm][°];

  • tool_p: Numero utensile del punto di percorso, [0~14];

  • user_p: Numero pezzo/utente del punto di percorso, [0~14];

  • desc_pos_t: Posa cartesiana del punto target, unità [mm][°];

  • tool_t: Numero utensile, [0~14];

  • user_t: Numero pezzo/utente, [0~14];

Parametri Predefiniti

  • joint_pos_p: Posizioni dei giunti del punto di percorso, unità [°] Valore iniziale predefinito è [0.0,0.0,0.0,0.0,0.0,0.0], valore predefinito è il risultato della cinematica inversa;

  • joint_pos_t: Posizioni dei giunti del punto target, unità [°] Valore iniziale predefinito è [0.0,0.0,0.0,0.0,0.0,0.0], valore predefinito è il risultato della cinematica inversa;

  • vel_p: Percentuale di velocità del punto di percorso, [0~100] Predefinito 20.0;

  • acc_p: Percentuale di accelerazione del punto di percorso, [0~100] Attualmente non disponibile, predefinito 0.0;

  • exaxis_pos_p: Posizione asse esterno 1 del punto di percorso ~ Posizione asse esterno 4 Predefinito [0.0,0.0,0.0,0.0];

  • offset_flag_p: Se il punto di percorso è scostato [0]-Nessuno scostamento, [1]-Scostamento nel sistema di coordinate pezzo/base, [2]-Scostamento nel sistema di coordinate utensile Predefinito 0;

  • vel_t: Percentuale di velocità del punto target, [0~100] Predefinito 20.0;

  • acc_t: Percentuale di accelerazione del punto target, [0~100] Attualmente non disponibile predefinito 0.0;

  • exaxis_pos_t: Posizione asse esterno 1 del punto target ~ Posizione asse esterno 4 Predefinito [0.0,0.0,0.0,0.0];

  • offset_flag_t: Se il punto target è scostato [0]-Nessuno scostamento, [1]-Scostamento nel sistema di coordinate pezzo/base, [2]-Scostamento nel sistema di coordinate utensile Predefinito 0;

  • offset_pos_t: Valore di scostamento della posa del punto target, unità [mm][°] Predefinito [0.0,0.0,0.0,0.0,0.0,0.0];

  • ovl:: Fattore di scala velocità, [0~100] Predefinito 100.0;

  • blendR:[-1.0]-Blocca fino al completamento del movimento (bloccante), [0~1000]-Raggio di transizione (non bloccante), unità [mm] Predefinito -1.0;

  • oacc: Fattore di scala accelerazione [0-100] / Accelerazione fisica (mm/s²) Predefinito 100;

  • config: Configurazione spazio giunti per soluzione inversa, [-1]-Risolvi con riferimento alle posizioni correnti dei giunti, [0~7]-Risolvi secondo una specifica configurazione dello spazio giunti, predefinito -1;

  • velAccParamMode: Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) e accelerazione (mm/s²) Predefinito 0

Valore di Ritorno

Codice di errore 0-Successo Errore- errcode

4.8. Movimento Circolare Completo nello Spazio Cartesiano

Nuovo nella versione python: SDK-v2.1.5

Prototipo

Circle(desc_pos_p, tool_p, user_p, desc_pos_t, tool_t, user_t, joint_pos_p=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],joint_pos_t=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],vel_p=20.0, acc_p=0.0, exaxis_pos_p=[0.0, 0.0, 0.0, 0.0], vel_t=20.0, acc_t=0.0,exaxis_pos_t=[0.0, 0.0, 0.0, 0.0],ovl=100.0, offset_flag=0, offset_pos=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], oacc=100.0, blendR=-1,config=-1,velAccParamMode=0)

Descrizione

Movimento Circolare Completo nello Spazio Cartesiano

Parametri Obbligatori

  • desc_pos_p: Posa cartesiana del punto di percorso, unità [mm][°];

  • tool_p: Numero utensile, [0~14];

  • user_p: Numero pezzo/utente, [0~14];

  • desc_pos_t: Posa cartesiana del punto target, unità [mm][°];

  • tool_t: Numero utensile, [0~14];

  • user_t: Numero pezzo/utente, [0~14];

Parametri Predefiniti

  • joint_pos_p: Posizioni dei giunti del punto di percorso, unità [°] Valore iniziale predefinito è [0.0,0.0,0.0,0.0,0.0,0.0], valore predefinito è il risultato della cinematica inversa;

  • joint_pos_t: Posizioni dei giunti del punto target, unità [°] Valore iniziale predefinito è [0.0,0.0,0.0,0.0,0.0,0.0], valore predefinito è il risultato della cinematica inversa;

  • vel_p: Percentuale di velocità, [0~100] Predefinito 20.0;

  • acc_p: Percentuale di accelerazione del punto di percorso, [0~100] Attualmente non disponibile predefinito 0.0;

  • exaxis_pos_p: Posizione asse esterno 1 del punto di percorso ~ Posizione asse esterno 4 Predefinito [0.0,0.0,0.0,0.0];

  • vel_t: Percentuale di velocità del punto target, [0~100] Predefinito 20.0;

  • acc_t: Percentuale di accelerazione del punto target, [0~100] Attualmente non disponibile predefinito 0.0;

  • exaxis_pos_t: Posizione asse esterno 1 del punto target ~ Posizione asse esterno 4 Predefinito [0.0,0.0,0.0,0.0]

  • ovl: Fattore di scala velocità, [0~100] Predefinito 100.0;

  • offset_flag: Se scostare [0]-Nessuno scostamento, [1]-Scostamento nel sistema di coordinate pezzo/base, [2]-Scostamento nel sistema di coordinate utensile Predefinito 0;

  • offset_pos: Valore di scostamento della posa, unità [mm][°] Predefinito [0.0,0.0,0.0,0.0,0.0,0.0]

  • oacc: Fattore di scala accelerazione [0-100] / Accelerazione fisica (mm/s²), predefinito: 100;

  • blendR:-1:Bloccante;0~1000:Raggio di transizione, predefinito: -1;

  • config: Configurazione spazio giunti per soluzione inversa, [-1]-Risolvi con riferimento alle posizioni correnti dei giunti, [0~7]-Risolvi secondo una specifica configurazione dello spazio giunti, predefinito -1;

  • velAccParamMode: Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) e accelerazione (mm/s²) Predefinito 0

Valore di Ritorno

Codice di errore 0-Successo Errore- errcode

4.9. Movimento punto a punto spazio cartesiano

Prototipo

MoveCart(desc_pos, tool, user, vel = 20.0, acc = 0.0, ovl = 100.0, blendT = -1.0, config = -1)

Descrizione

Movimento punto a punto spazio cartesiano

Parametri obbligatori

  • desc_pos: posizione cartesiana target;

  • tool: numero utensile,[0~14];

  • user: numero pezzo,[0~14];

Parametri predefiniti

  • vel: velocità,range [0~100],default 20.0;

  • acc: accelerazione,range [0~100],non aperto attualmente, default 0.0;

  • ovl: fattore scala velocità,[0~100],default 100.0;

  • blendT:[-1.0]-movimento a posizione (bloccante),[0~500]-tempo smooth (non bloccante),unità [ms] default -1.0;

  • config: configurazione giunti,[-1]-soluzione riferimento posizione giunti corrente,[0~7]-soluzione basata configurazione giunti default -1

Valore restituito

Codice errore Successo-0 Fallimento- errcode

4.10. Esempio codice comandi movimento base robot

 1from fairino import Robot
 2import time
 3robot = Robot.RPC('192.168.58.2')
 4j1 = [-11.904, -99.669, 117.473, -108.616, -91.726, 74.256]
 5j2 = [-45.615, -106.172, 124.296, -107.151, -91.282, 74.255]
 6j3 = [-29.777, -84.536, 109.275, -114.075, -86.655, 74.257]
 7j4 = [-31.154, -95.317, 94.276, -88.079, -89.740, 74.256]
 8desc_pos1 = [-419.524, -13.000, 351.569, -178.118, 0.314, 3.833]
 9desc_pos2 = [-321.222, 185.189, 335.520, -179.030, -1.284, -29.869]
10desc_pos3 = [-487.434, 154.362, 308.576, 176.600, 0.268, -14.061]
11desc_pos4 = [-443.165, 147.881, 480.951, 179.511, -0.775, -15.409]
12offset_pos = [0.0] * 6
13epos = [0.0] * 4
14tool = 0
15user = 0
16vel = 100.0
17acc = 100.0
18ovl = 100.0
19oacc = 100.0
20blendT = 0.0
21blendR = 0.0
22flag = 0
23search = 0
24blendMode = 0
25velAccMode = 0
26robot.SetSpeed(20)
27rtn = robot.MoveJ(joint_pos=j1, tool=tool, user=user, vel=vel, acc=acc, ovl=ovl, exaxis_pos=epos, blendT=blendT, offset_flag=flag, offset_pos=offset_pos)
28print(f"movej errcode:{rtn}")
29rtn = robot.MoveL(desc_pos=desc_pos2, tool=tool, user=user, vel=vel, acc=acc, ovl=ovl, blendR=blendR, blendMode=blendMode, exaxis_pos=epos, search=search, offset_flag=flag, offset_pos=offset_pos,oacc=oacc, velAccParamMode=velAccMode)
30print(f"movel errcode:{rtn}")
31rtn = robot.MoveC(desc_pos_p=desc_pos3, tool_p=tool, user_p=user, vel_p=vel, acc_p=acc, exaxis_pos_p=epos, offset_flag_p=flag, offset_pos_p=offset_pos, desc_pos_t=desc_pos4, tool_t=tool, user_t=user, vel_t=vel,acc_t=acc, exaxis_pos_t=epos, offset_flag_t=flag, offset_pos_t=offset_pos, ovl=ovl, blendR=blendR, oacc=oacc, velAccParamMode=velAccMode)
32print(f"movec errcode:{rtn}")
33rtn = robot.MoveJ(joint_pos=j2, tool=tool, user=user, vel=vel, acc=acc, ovl=ovl, exaxis_pos=epos, blendT=blendT, offset_flag=flag, offset_pos=offset_pos)
34print(f"movej errcode:{rtn}")
35rtn = robot.Circle(desc_pos_p=desc_pos3, tool_p=tool, user_p=user, vel_p=vel, acc_p=acc, exaxis_pos_p=epos, desc_pos_t=desc_pos1, tool_t=tool, user_t=user, vel_t=vel, acc_t=acc, exaxis_pos_t=epos, ovl=ovl,offset_flag=flag, offset_pos=offset_pos, oacc=oacc, blendR=-1, velAccParamMode=velAccMode)
36print(f"circle errcode:{rtn}")
37rtn = robot.MoveCart(desc_pos=desc_pos4, tool=tool, user=user, vel=vel, acc=acc,ovl=ovl, blendT=blendT, config=-1)
38print(f"MoveCart errcode:{rtn}")
39rtn = robot.MoveJ(joint_pos=j1, tool=tool, user=user, vel=vel, acc=acc, ovl=ovl, exaxis_pos=epos, blendT=blendT, offset_flag=flag, offset_pos=offset_pos)
40print(f"movej errcode:{rtn}")
41rtn = robot.MoveL(desc_pos=desc_pos2, tool=tool, user=user, vel=vel, acc=acc, ovl=ovl, blendR=blendR, blendMode=blendMode, exaxis_pos=epos, search=search, offset_flag=flag, offset_pos=offset_pos, config=-1,velAccParamMode=velAccMode)
42print(f"movel errcode:{rtn}")
43rtn = robot.MoveC(desc_pos_p=desc_pos3, tool_p=tool, user_p=user, vel_p=vel, acc_p=acc, exaxis_pos_p=epos, offset_flag_p=flag, offset_pos_p=offset_pos, desc_pos_t=desc_pos4, tool_t=tool, user_t=user, vel_t=vel, acc_t=acc,exaxis_pos_t=epos, offset_flag_t=flag, offset_pos_t=offset_pos, ovl=ovl, blendR=blendR, config=-1, velAccParamMode=velAccMode)
44print(f"movec errcode:{rtn}")
45rtn = robot.MoveJ(joint_pos=j2, tool=tool, user=user, vel=vel, acc=acc, ovl=ovl, exaxis_pos=epos, blendT=blendT, offset_flag=flag, offset_pos=offset_pos)
46print(f"movej errcode:{rtn}")
47rtn = robot.Circle(desc_pos_p=desc_pos3, tool_p=tool, user_p=user, vel_p=vel, acc_p=acc, exaxis_pos_p=epos, desc_pos_t=desc_pos1, tool_t=tool, user_t=user, vel_t=vel, acc_t=acc, exaxis_pos_t=epos, ovl=ovl, offset_flag=flag,offset_pos=offset_pos, oacc=oacc, blendR=-1, velAccParamMode=velAccMode)
48print(f"circle errcode:{rtn}")
49robot.CloseRPC()
50return 0

4.11. Movimento spirale spazio cartesiano

Nuovo nella versione python: SDK-v2.1.7

Prototipo

NewSpiral(desc_pos, tool, user, param, joint_pos = [0.0,0.0,0.0,0.0,0.0,0.0], vel = 20.0, acc = 0.0, exaxis_pos = [0.0,0.0,0.0,0.0], ovl = 100.0, offset_flag = 0, offset_pos = [0.0,0.0,0.0,0.0,0.0,0.0], config = -1)

Descrizione

Movimento spirale spazio cartesiano

Parametri obbligatori

  • desc_pos: posa cartesiana target,unità[mm][°];

  • tool: numero utensile,[0~14];

  • user: numero pezzo,[0~14];

  • param=[circle_num, circle_angle, rad_init, rad_add, rotaxis_add, rot_direction, velAccMode]:circle_num: numero giri spirale;circle_angle: angolo inclinazione spirale;rad_init: raggio iniziale spirale;rad_add: incremento raggio;rotaxis_add: incremento direzione asse rotazione;rot_direction: direzione rotazione,0-orario,1-antiorario, velAccMode modalità parametri velocità accelerazione:0-velocità angolare costante,1-velocità lineare costante;

Parametri predefiniti

  • joint_pos: posizione giunti target,unità [°] default valore iniziale [0.0,0.0,0.0,0.0,0.0,0.0],valore default chiamata cinematica inversa restituisce valore;

  • vel: percentuale velocità,[0~100] default 20.0;

  • acc: percentuale accelerazione,[0~100] default 100.0;

  • exaxis_pos: asse esterno 1 posizione ~ asse esterno 4 posizione default [0.0,0.0,0.0,0.0];

  • ovl: fattore scala velocità,[0~100] default 100.0;

  • offset_flag:[0]-nessun offset,[1]-offset sistema pezzo/base,[2]-offset sistema utensile default 0;

  • offset_pos: quantità offset posa,unità [mm][°] default [0.0,0.0,0.0,0.0,0.0,0.0]

  • config: configurazione spazio giunti cinematica inversa,[-1]-calcolo riferimento posizione giunti corrente,[0~7]-soluzione basata specifica configurazione spazio giunti,default -1

Valore restituito

Codice errore Successo-0 Fallimento- errcode

4.12. Esempio codice

 1from fairino import Robot
 2# Stabilire connessione con controller robot, restituisce oggetto robot se connesso con successo
 3robot = Robot.RPC('192.168.58.2')
 4j = [67.957, -81.482, 87.595, -95.691, -94.899, -9.727]
 5desc_pos = [-123.142, -551.735, 430.549, 178.753, -4.757, 167.754]
 6offset_pos1 = [50.0, 0.0, 0.0, -30.0, 0.0, 0.0]
 7offset_pos2 = [50.0, 0.0, 0.0, -30.0, 0.0, 0.0]
 8epos = [0.0] * 4
 9sp = [2, 30.0, 50.0, 10.0, 10.0, 0, 1]  # [circle_num, circle_angle, rad_init, rad_add, rotaxis_add, rot_direction, velAccMode]
10tool = 0
11user = 0
12vel = 30.0
13acc = 60.0
14ovl = 100.0
15blendT = -1.0
16flag = 2
17robot.SetSpeed(20)
18rtn = robot.MoveJ(joint_pos=j, tool=tool, user=user, vel=vel, acc=acc, ovl=ovl, exaxis_pos=epos, blendT=blendT, offset_flag=flag, offset_pos=offset_pos1)
19print(f"movej errcode:{rtn}")
20rtn = robot.NewSpiral(desc_pos=desc_pos, tool=tool, user=user, vel=vel, acc=acc, exaxis_pos=epos, ovl=ovl, offset_flag=flag, offset_pos=offset_pos2, param=sp)
21print(f"newspiral errcode:{rtn}")
22robot.CloseRPC()
23return 0

4.13. Inizio movimento servo

Prototipo

ServoMoveStart()

Descrizione

Inizio movimento servo,utilizzato con comandi ServoJ、ServoCart

Parametri obbligatori

Nessuno

Parametri predefiniti

Nessuno

Valore restituito

Codice errore Successo-0 Fallimento- errcode

4.14. Fine movimento servo

Prototipo

ServoMoveEnd()

Descrizione

Fine movimento servo,utilizzato con comandi ServoJ、ServoCart

Parametri obbligatori

Nessuno

Parametri predefiniti

Nessuno

Valore restituito

Codice errore Successo-0 Fallimento- errcode

4.15. Movimento modalità servo spazio giunti

Prototipo

ServoJ(joint_pos, axisPos, acc = 0.0, vel = 0.0, cmdT = 0.008, filterT = 0.0, gain = 0.0, id=0)

Descrizione

Movimento modalità servo spazio giunti

Parametri obbligatori

  • joint_pos: posizione giunti target,unità[°];

  • axisPos: posizione asse esterno, unitàmm;

Parametri predefiniti

  • acc: accelerazione,range [0~100],non aperto attualmente,default 0.0;

  • vel: velocità,range [0~100],non aperto attualmente,default 0.0;

  • cmdT: periodo invio comando,unitàs,range consigliato [0.001~0.0016], default 0.008;

  • filterT: tempo filtro,unità [s],non aperto attualmente, default 0.0;

  • gain: amplificatore proporzionale posizione target,non aperto attualmente, default 0.0;

  • id: ID comando servoJ, default 0;

Valore restituito

Codice errore Successo-0 Fallimento- errcode

4.16. Esempio codice movimento modalità servo spazio giunti

 1from fairino import Robot
 2# Stabilire connessione con controller robot, restituisce oggetto robot se connesso con successo
 3robot = Robot.RPC('192.168.58.2')
 4j = [0.0] * 6
 5epos = [0.0] * 4
 6vel = 0.0
 7acc = 0.0
 8cmdT = 0.008
 9filterT = 0.0
10gain = 0.0
11flag = 0
12count = 500
13dt = 0.1
14cmdID = 0
15ret, j = robot.GetActualJointPosDegree(flag)
16if ret == 0:
17    cmdID += 1
18    robot.ServoMoveStart()
19    while count:
20        robot.ServoJ(joint_pos=j,axisPos= epos,acc= acc,vel= vel, cmdT=cmdT, filterT=filterT, gain=gain, id=cmdID)
21        j[4] += dt
22        count -= 1
23        time.sleep(cmdT)
24        rtn,pkg = robot.GetRobotRealTimeState()
25        print(f"Servoj Count {pkg.servoJCmdNum}; last pos is {pkg.lastServoTarget[0]},{pkg.lastServoTarget[1]},{pkg.lastServoTarget[2]},{pkg.lastServoTarget[3]},{pkg.lastServoTarget[4]},{pkg.lastServoTarget[5]}")
26
27        if count < 50:
28            robot.MotionQueueClear()
29            print(f"After queue clear, Servoj Count {pkg.servoJCmdNum}; last pos is {pkg.lastServoTarget[0]},{pkg.lastServoTarget[1]},{pkg.lastServoTarget[2]},{pkg.lastServoTarget[3]},{pkg.lastServoTarget[4]},{pkg.lastServoTarget[5]}")
30            break
31    robot.ServoMoveEnd()
32else:
33    print(f"GetActualJointPosDegree errcode:{ret}")
34robot.CloseRPC()

4.17. Inizio controllo coppia giunti

Prototipo

ServoJTStart()

Descrizione

Inizio controllo coppia giunti

Parametri obbligatori

Nessuno

Parametri predefiniti

Nessuno

Valore restituito

Codice errore Successo-0 Fallimento- errcode

4.18. Controllo Coppia Giunti

Prototipo

ServoJT(torque, interval, checkFlag=0, jPowerLimit=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],jVelLimit=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0])

Descrizione

Controllo coppia giunti

Parametri Obbligatori

  • torque:coppia giunti j1~j6, unità Nm
    • interval:periodo istruzione, unità s, range [0.001~0.008]

    • checkFlag:strategia rilevamento 0-nessun limite; 1-limite potenza; 2-limite velocità; 3-limite potenza e velocità simultaneo, default 0

    • jPowerLimit:parametro predefinito jPowerLimit limite potenza massima giunti (W), default [0.0,0.0,0.0,0.0,0.0,0.0]

    • jVelLimit:velocità massima giunti (°/s), default [0.0,0.0,0.0,0.0,0.0,0.0]

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.19. Fine Controllo Coppia Giunti

Prototipo

ServoJTEnd()

Descrizione

Fine controllo coppia giunti

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.20. Esempio Codice Controllo Coppia Giunti

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

4.21. Movimento Modalità Servo Spazio Cartesiano

Prototipo

ServoCart(mode, desc_pos, pos_gain = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0] , acc = 0.0, vel = 0.0, cmdT = 0.008, filterT = 0.0, gain = 0.0)

Descrizione

Movimento modalità servo spazio cartesiano

Parametri Obbligatori

  • mode:[0]-movimento assoluto (sistema base), [1]-movimento incrementale (sistema base), [2]-movimento incrementale (sistema utensile);

  • desc_pos:posizione target cartesiana/incremento posizione target cartesiana;

Parametri Predefiniti

  • pos_gain:fattore proporzionale incremento posa, efficace solo movimento incrementale, range [0~1], default [1.0, 1.0, 1.0, 1.0, 1.0, 1.0];

  • acc:accelerazione, range [0~100], non ancora disponibile, default 0.0;

  • vel:velocità, range [0~100], non ancora disponibile, default 0.0;

  • cmdT:periodo invio istruzione, unità s, range consigliato [0.001~0.0016], default 0.008;

  • filterT:tempo filtro, unità [s], non ancora disponibile, default 0.0;

  • gain:amplificatore proporzionale posizione target, non ancora disponibile, default 0.0;

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.22. Esempio Codice Movimento Modalità Servo Spazio Cartesiano

 1from fairino import Robot
 2import time
 3# Stabilire connessione con controller robot, connessione riuscita ritorna oggetto robot
 4robot = Robot.RPC('192.168.58.2')
 5desc_pos_dt = [0.0,0.0,0.0,0.0,0.0,0.0]  # [x, y, z, rx, ry, rz]
 6desc_pos_dt[2] = -0.5
 7pos_gain = [0.0, 0.0, 1.0, 0.0, 0.0, 0.0]
 8mode = 2
 9vel = 0.0
10acc = 0.0
11cmdT = 0.008
12filterT = 0.0
13gain = 0.0
14flag = 0
15count = 100
16robot.SetSpeed(20)
17while count > 0:
18    robot.ServoCart(mode=mode, desc_pos=desc_pos_dt, pos_gain=pos_gain, acc=acc, vel=vel, cmdT=cmdT, filterT=filterT, gain=gain)
19    count -= 1
20    time.sleep(cmdT)
21robot.CloseRPC()

4.23. Inizio Movimento Spline

Prototipo

SplineStart()

Descrizione

Inizio movimento spline

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.24. Movimento Spline PTP

Prototipo

SplinePTP(joint_pos, tool, user, desc_pos = [0.0,0.0,0.0,0.0,0.0,0.0],  vel = 20.0,  acc = 100.0, ovl = 100.0)

Descrizione

Movimento spline PTP

Parametri Obbligatori

  • joint_pos:posizione target giunti, unità[°];

  • tool:numero utensile, [0~14];

  • user:numero pezzo, [0~14];

Parametri Predefiniti

  • desc_pos:posa target cartesiana, unità [mm][°] default valore iniziale [0.0,0.0,0.0,0.0,0.0,0.0], default chiama risultato calcolo cinematica diretta;

  • vel:velocità, range [0~100], default 20.0;

  • acc:accelerazione, range [0~100], default 100.0;

  • ovl:fattore scala velocità, [0~100], default 100.0

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.25. Fine Movimento Spline

Prototipo

SplineEnd()

Descrizione

Fine movimento spline

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.26. Esempio Codice Movimento Spline

 1from fairino import Robot
 2# Stabilire connessione con controller robot, connessione riuscita ritorna oggetto robot
 3robot = Robot.RPC('192.168.58.2')
 4joint_points = [
 5    [-11.904, -99.669, 117.473, -108.616, -91.726, 74.256],  # j1
 6    [-45.615, -106.172, 124.296, -107.151, -91.282, 74.255],  # j2
 7    [-61.954, -84.409, 108.153, -116.316, -91.283, 74.260],  # j3
 8    [-89.575, -80.276, 102.713, -116.302, -91.284, 74.267]  # j4
 9]
10cart_points = [
11    [-419.524, -13.000, 351.569, -178.118, 0.314, 3.833],  # desc_pos1
12    [-321.222, 185.189, 335.520, -179.030, -1.284, -29.869],  # desc_pos2
13    [-327.622, 402.230, 320.402, -178.067, 2.127, -46.207],  # desc_pos3
14    [-104.066, 544.321, 327.023, -177.715, 3.371, -73.818]  # desc_pos4
15]
16offset_pos = [0] * 6
17epos = [0] * 4
18tool = user = 0
19vel = acc = ovl = 100.0
20blendT = -1.0
21flag = 0
22robot.SetSpeed(20)
23err1 = robot.MoveJ(joint_pos=joint_points[0],tool=tool, user=user,vel=vel)
24print(f"MoveJ errore: {err1}")
25robot.SplineStart()
26robot.SplinePTP(joint_pos=joint_points[0],tool=tool, user=user)
27robot.SplinePTP(joint_pos=joint_points[1],tool=tool, user=user)
28robot.SplinePTP(joint_pos=joint_points[2],tool=tool, user=user)
29robot.SplinePTP(joint_pos=joint_points[3],tool=tool, user=user)
30robot.SplineEnd()
31robot.CloseRPC()

4.27. Inizio Nuovo Movimento Spline

Cambiato nella versione python: SDK-v2.0.3

Prototipo

NewSplineStart(type,averageTime=2000)

Descrizione

Inizio nuovo movimento spline

Parametri Obbligatori

  • type:0-transizione arco, 1-punti percorso dati

Parametri Predefiniti

  • averageTime:tempo medio transizione globale (ms) default 2000

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.28. Punto Istruzione Nuova Spline

Prototipo

NewSplinePoint(desc_pos,tool,user,lastFlag,joint_pos=[0.0,0.0,0.0,0.0,0.0,0.0], vel = 0.0, acc = 0.0, ovl = 100.0 ,blendR = 0.0 )

Descrizione

Punto istruzione nuova spline

Parametri Obbligatori

  • desc_pos:posa target cartesiana, unità [mm][°];

  • tool:numero utensile, [0~14];

  • user:numero pezzo, [0~14];

  • lastFlag:se ultimo punto, 0-no, 1-sì;

Parametri Predefiniti

  • joint_pos:posizione target giunti, unità [°] default valore iniziale [0.0,0.0,0.0,0.0,0.0,0.0], default chiama risultato calcolo cinematica inversa;

  • vel:velocità, range [0~100], non ancora disponibile, default 0.0;;

  • acc:accelerazione, range [0~100], non ancora disponibile, default 0.0;

  • ovl:fattore scala velocità, [0~100] default 100.0;

  • blendR: [0~1000]-raggio smoothing, unità [mm] default 0.0;

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.29. Fine Nuovo Movimento Spline

Prototipo

NewSplineEnd()

Descrizione

Fine nuovo movimento spline

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.30. Esempio Codice Nuovo Movimento Spline

 1from fairino import Robot
 2# Stabilire connessione con controller robot, connessione riuscita ritorna oggetto robot
 3robot = Robot.RPC('192.168.58.2')
 4j1 = [-11.904, -99.669, 117.473, -108.616, -91.726, 74.256]
 5j2 = [-45.615, -106.172, 124.296, -107.151, -91.282, 74.255]
 6j3 = [-61.954, -84.409, 108.153, -116.316, -91.283, 74.260]
 7j4 = [-89.575, -80.276, 102.713, -116.302, -91.284, 74.267]
 8j5 = [-95.228, -54.621, 73.691, -112.245, -91.280, 74.267]
 9desc_pos1 = [-419.524, -13.000, 351.569, -178.118, 0.314, 3.833]
10desc_pos2 = [-321.222, 185.189, 335.520, -179.030, -1.284, -29.869]
11desc_pos3 = [-327.622, 402.230, 320.402, -178.067, 2.127, -46.207]
12desc_pos4 = [-104.066, 544.321, 327.023, -177.715, 3.371, -73.818]
13desc_pos5 = [-33.421, 732.572, 275.103, -177.907, 2.709, -79.482]
14offset_pos = [0, 0, 0, 0, 0, 0]
15epos = [0, 0, 0, 0]
16tool = 0
17user = 0
18vel = 100.0
19acc = 100.0
20ovl = 100.0
21blendT = -1.0
22flag = 0
23robot.SetSpeed(20)
24err1 = robot.MoveJ(joint_pos=j1, tool=tool, user=user, vel=vel)
25print(f"movej errore:{err1}")
26robot.NewSplineStart(1, 2000)
27robot.NewSplinePoint(desc_pos=desc_pos1, tool=tool, user=user, vel=vel, lastFlag=-1, blendR=0)
28robot.NewSplinePoint(desc_pos=desc_pos2, tool=tool, user=user, vel=vel, lastFlag=-1, blendR=0)
29robot.NewSplinePoint(desc_pos=desc_pos3, tool=tool, user=user, vel=vel, lastFlag=-1, blendR=0)
30robot.NewSplinePoint(desc_pos=desc_pos4, tool=tool, user=user, vel=vel, lastFlag=-1, blendR=0)
31robot.NewSplinePoint(desc_pos=desc_pos5, tool=tool, user=user, vel=vel, lastFlag=-1, blendR=0)
32robot.NewSplineEnd()
33robot.CloseRPC()

4.31. Terminazione Movimento Robot

Prototipo

StopMotion()

Descrizione

Termina movimento, usare con istruzioni movimento non bloccanti

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.32. Pausa Movimento Robot

Prototipo

PauseMotion()

Descrizione

Pausa movimento, usare con istruzioni movimento non bloccanti

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.33. Ripresa Movimento Robot

Prototipo

ResumeMotion()

Descrizione

Riprende movimento, usare con istruzioni movimento non bloccanti

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.34. Esempio Codice Pausa, Ripresa, Stop Movimento

 1from fairino import Robot
 2# Stabilire connessione con controller robot, connessione riuscita ritorna oggetto robot
 3robot = Robot.RPC('192.168.58.2')
 4j1 =[-11.904, -99.669, 117.473, -108.616, -91.726, 74.256]
 5j5 =[-95.228, -54.621, 73.691, -112.245, -91.280, 74.268]
 6desc_pos1 = [-419.524, -13.000, 351.569, -178.118, 0.314, 3.833]
 7desc_pos5 = [-33.421, 732.572, 275.103, -177.907, 2.709, -79.482]
 8offset_pos = [0, 0, 0, 0, 0, 0]
 9epos = [0, 0, 0, 0]
10tool = 0
11user = 0
12vel = 100.0
13acc = 100.0
14ovl = 100.0
15blendT = -1.0
16flag = 0
17robot.SetSpeed(20)
18rtn = robot.MoveJ(joint_pos=j1, tool=tool, user=user, vel=vel)
19rtn = robot.MoveJ(joint_pos=j5, tool=tool, user=user, vel=vel, blendT=1)
20time.sleep(1)
21robot.PauseMotion()
22time.sleep(1)
23robot.ResumeMotion()
24time.sleep(1)
25robot.StopMotion()
26time.sleep(1)
27robot.CloseRPC()

4.35. Inizio Offset Globale Punti

Prototipo

PointsOffsetEnable(flag,offset_pos)

Descrizione

Inizio offset globale punti

Parametri Obbligatori

  • flag:0-offset in sistema base o pezzo, 2-offset in sistema utensile;

  • offset_pos:valore offset, unità [mm][°].

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.36. Fine Offset Globale Punti

Prototipo

PointsOffsetDisable()

Descrizione

Fine offset globale punti

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.37. Esempio Codice Offset Punti

 1from fairino import Robot
 2# Stabilire connessione con controller robot, connessione riuscita ritorna oggetto robot
 3robot = Robot.RPC('192.168.58.2')
 4j1 = [-11.904, -99.669, 117.473, -108.616, -91.726, 74.256]
 5j2 = [-45.615, -106.172, 124.296, -107.151, -91.282, 74.255]
 6desc_pos1 = [-419.524, -13.000, 351.569, -178.118, 0.314, 3.833]
 7desc_pos2 = [-321.222, 185.189, 335.520, -179.030, -1.284, -29.869]
 8offset_pos = [0, 0, 0, 0, 0, 0]
 9offset_pos1 = [0, 0, 50, 0, 0, 0]
10epos = [0, 0, 0, 0]
11tool = 0
12user = 0
13vel = 100.0
14acc = 100.0
15ovl = 100.0
16blendT = -1.0
17flag = 0
18robot.SetSpeed(20)
19robot.MoveJ(joint_pos=j1,tool=tool, user=user, vel=vel)
20robot.MoveJ(joint_pos=j2, tool=tool, user=user, vel=vel)
21time.sleep(1)
22robot.PointsOffsetEnable(flag=0, offset_pos=offset_pos1)
23robot.MoveJ(joint_pos=j1,tool=tool, user=user, vel=vel)
24robot.MoveJ(joint_pos=j2, tool=tool, user=user, vel=vel)
25robot.PointsOffsetDisable()
26robot.CloseRPC()

4.38. Inizio Movimento AO Box Controllo

Nuovo nella versione python: SDK-v2.0.4

Prototipo

MoveAOStart(AONum,maxTCPSpeed=1000,maxAOPercent=100,zeroZoneCmp=20)

Descrizione

Inizio movimento AO box controllo

Parametri Obbligatori

  • AONum:numero AO box controllo

Parametri Predefiniti

  • maxTCPSpeed:valore massimo velocità TCP [1-5000mm/s], default 1000;

  • maxAOPercent:percentuale AO corrispondente valore massimo velocità TCP, default 100%;

  • zeroZoneCmp:valore compensazione zona morta percentuale AO, intero, default 20%, range [0-100].

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.39. Fine Movimento AO Box Controllo

Nuovo nella versione python: SDK-v2.0.4

Prototipo

MoveAOStop()

Descrizione

Fine movimento AO box controllo

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.40. Inizio Movimento AO Terminale

Nuovo nella versione python: SDK-v2.0.4

Prototipo

MoveToolAOStart(AONum,maxTCPSpeed=1000,maxAOPercent=100,zeroZoneCmp =20)

Descrizione

Inizio movimento AO terminale

Parametri Obbligatori

  • AONum:numero AO terminale

Parametri Predefiniti

  • maxTCPSpeed:valore massimo velocità TCP [1-5000mm/s], default 1000;

  • maxAOPercent:percentuale AO corrispondente valore massimo velocità TCP, default 100%;

  • zeroZoneCmp:valore compensazione zona morta percentuale AO, intero, default 20%, range [0-100].

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.41. Fine Movimento AO Terminale

Nuovo nella versione python: SDK-v2.0.4

Prototipo

MoveToolAOStop()

Descrizione

Fine movimento AO terminale

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.42. Esempio Codice AO Fly Shoot

 1from fairino import Robot
 2# Stabilire connessione con controller robot, connessione riuscita ritorna oggetto robot
 3robot = Robot.RPC('192.168.58.2')
 4j1 = [-11.904, -99.669, 117.473, -108.616, -91.726, 74.256]
 5j2 = [-45.615, -106.172, 124.296, -107.151, -91.282, 74.255]
 6desc_pos1 = [-419.524, -13.000, 351.569, -178.118, 0.314, 3.833]
 7desc_pos2 = [-321.222, 185.189, 335.520, -179.030, -1.284, -29.869]
 8offset_pos = [0, 0, 0, 0, 0, 0]
 9offset_pos1 = [0, 0, 50, 0, 0, 0]
10epos = [0, 0, 0, 0]
11tool = 0
12user = 0
13vel = 20.0
14acc = 20.0
15ovl = 100.0
16blendT = -1.0
17flag = 0
18robot.SetSpeed(20)
19robot.MoveAOStart(0, 100, 100, 20)
20robot.MoveJ(joint_pos=j1,tool=tool, user=user, vel=vel)
21robot.MoveJ(joint_pos=j2, tool=tool, user=user, vel=vel)
22robot.MoveAOStop()
23time.sleep(1)
24robot.MoveToolAOStart(0, 100, 100, 20)
25robot.MoveJ(joint_pos=j1,tool=tool, user=user, vel=vel)
26robot.MoveJ(joint_pos=j2, tool=tool, user=user, vel=vel)
27robot.MoveToolAOStop()
28robot.CloseRPC()

4.43. Inizio Filtro FIR Movimento Ptp

Nuovo nella versione python: SDK-v2.1.2

Prototipo

PtpFIRPlanningStart(maxAcc, maxJek)

Descrizione

Inizio filtro FIR movimento Ptp

Parametri Obbligatori

  • maxAcc:valore estremo accelerazione massima (deg/s2)

  • maxJek:valore estremo jerk giunti unificato (deg/s3)

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.44. Fine Filtro FIR Movimento Ptp

Nuovo nella versione python: SDK-v2.0.7

Prototipo

PtpFIRPlanningEnd()

Descrizione

Fine filtro FIR movimento Ptp

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.45. Inizio Filtro FIR Movimento LIN, ARC

Nuovo nella versione python: SDK-v2.0.7

Prototipo

LinArcFIRPlanningStart(maxAccLin,maxAccDeg,maxJerkLin,maxJerkDeg)

Descrizione

Inizio filtro FIR movimento LIN, ARC

Parametri Obbligatori

  • maxAccLin:valore estremo accelerazione lineare (mm/s2)

  • maxAccDeg:valore estremo accelerazione angolare (deg/s2)

  • maxJerkLin:valore estremo jerk lineare (mm/s3)

  • maxJerkDeg:valore estremo jerk angolare (deg/s3)

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.46. Fine Filtro FIR Movimento LIN, ARC

Nuovo nella versione python: SDK-v2.0.7

Prototipo

LinArcFIRPlanningEnd()

Descrizione

Fine filtro FIR movimento LIN, ARC

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.47. Esempio Codice Filtro FIR

 1from fairino import Robot
 2# Stabilire connessione con controller robot, connessione riuscita ritorna oggetto robot
 3robot = Robot.RPC('192.168.58.2')
 4startjointPos = [-11.904, -99.669, 117.473, -108.616, -91.726, 74.256]
 5startjointPos = [-11.904, -99.669, 117.473, -108.616, -91.726, 74.256]
 6midjointPos = [-45.615, -106.172, 124.296, -107.151, -91.282, 74.255]
 7endjointPos = [-29.777, -84.536, 109.275, -114.075, -86.655, 74.257]
 8startdescPose = [-419.524, -13.000, 351.569, -178.118, 0.314, 3.833]
 9middescPose = [-321.222, 185.189, 335.520, -179.030, -1.284, -29.869]
10enddescPose = [-487.434, 154.362, 308.576, 176.600, 0.268, -14.061]
11exaxisPos = [0.0, 0.0, 0.0, 0.0]
12offdese = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
13rtn = robot.PtpFIRPlanningStart(1000.0, 1000.0)
14print(f"PtpFIRPlanningStart rtn is {rtn}")
15error = robot.MoveJ(joint_pos=startjointPos,tool= 0,user= 0,desc_pos=startdescPose,vel= 100,acc=100,ovl=100, blendT=-1.0, offset_flag=0)
16print(f"MoveJ rtn is {rtn}")
17error = robot.MoveJ(joint_pos=endjointPos,tool= 0,user= 0,desc_pos=enddescPose,vel= 100,acc=100,ovl=100, blendT=-1.0, offset_flag=0)
18print(f"MoveJ rtn is {rtn}")
19robot.PtpFIRPlanningEnd()
20print(f"PtpFIRPlanningEnd rtn is {rtn}")
21rtn = robot.LinArcFIRPlanningStart(1000, 1000, 1000, 1000)
22print(f"LinArcFIRPlanningStart rtn is {rtn}")
23error = robot.MoveL(desc_pos=startdescPose,tool= 0,user= 0, joint_pos=startjointPos,vel= 100,overSpeedStrategy=1,speedPercent=1)
24print(f"MoveL rtn is {rtn}")
25error = robot.MoveC(desc_pos_p=middescPose,tool_p= 0,user_p= 0, joint_pos_p=midjointPos,vel_p= 100,desc_pos_t=enddescPose,tool_t= 0,user_t= 0,joint_pos_t=endjointPos,vel_t= 100)
26print(f"MoveC rtn is {rtn}")
27robot.LinArcFIRPlanningEnd()
28print(f"LinArcFIRPlanningEnd rtn is {rtn}")
29robot.CloseRPC()

4.48. Attivazione Smoothing Accelerazione

Nuovo nella versione python: SDK-v2.1.1

Prototipo

AccSmoothStart(saveFlag_flag)

Descrizione

Attiva smoothing accelerazione

Parametri Obbligatori

  • saveFlag_flag:salvataggio dopo spegnimento

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.49. Disattivazione Smoothing Accelerazione

Nuovo nella versione python: SDK-v2.1.1

Prototipo

AccSmoothEnd(saveFlag_flag)

Descrizione

Disattiva smoothing accelerazione

Parametri Obbligatori

  • saveFlag_flag:salvataggio dopo spegnimento

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.50. Esempio Codice Smoothing Accelerazione

 1from fairino import Robot
 2# Stabilire connessione con controller robot, connessione riuscita ritorna oggetto robot
 3robot = Robot.RPC('192.168.58.2')
 4startjointPos = [-11.904, -99.669, 117.473, -108.616, -91.726, 74.256]
 5endjointPos = [-45.615, -106.172, 124.296, -107.151, -91.282, 74.255]
 6startdescPose = [-419.524, -13.000, 351.569, -178.118, 0.314, 3.833]
 7enddescPose = [-321.222, 185.189, 335.520, -179.030, -1.284, -29.869]
 8exaxisPos = [0.0, 0.0, 0.0, 0.0]
 9offdese = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
10rtn = robot.AccSmoothStart(0)
11print(f"AccSmoothStart rtn is {rtn}")
12robot.MoveJ(joint_pos=startjointPos,tool= 0,user= 0,vel= 100)
13robot.MoveJ(joint_pos=endjointPos,tool= 0,user= 0,vel= 100)
14rtn = robot.AccSmoothEnd(0)
15print(f"AccSmoothEnd rtn is {rtn}")

4.51. Attivazione Velocità Orientamento Specifica Robot

Nuovo nella versione python: SDK-v2.0.5

Prototipo

AngularSpeedStart(ratio)

Descrizione

Attiva velocità orientamento specifica

Parametri Obbligatori

  • ratio:percentuale velocità orientamento [0-300]

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.52. Disattivazione Velocità Orientamento Specifica

Nuovo nella versione python: SDK-v2.0.5

Prototipo

AngularSpeedEnd()

Descrizione

Disattiva velocità orientamento specifica

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore Ritorno

Codice errore successo-0 fallimento- errcode

4.53. Esempio Codice Velocità Orientamento Specifica Robot

 1from fairino import Robot
 2# Stabilire connessione con controller robot, connessione riuscita ritorna oggetto robot
 3robot = Robot.RPC('192.168.58.2')
 4startjointPos = [-11.904, -99.669, 117.473, -108.616, -91.726, 74.256]
 5endjointPos = [-45.615, -106.172, 124.296, -107.151, -91.282, 74.255]
 6startdescPose = [-419.524, -13.000, 351.569, -178.118, 0.314, 3.833]
 7enddescPose = [-321.222, 185.189, 335.520, -179.030, -1.284, -29.869]
 8exaxisPos = [0.0, 0.0, 0.0, 0.0]
 9offdese = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
10rtn = robot.AngularSpeedStart(50)
11print(f"AngularSpeedStart rtn is {rtn}")
12robot.MoveJ(joint_pos=startjointPos, tool=0,user= 0,vel= 100)
13robot.MoveJ(joint_pos=endjointPos, tool=0,user= 0,vel= 100)
14rtn = robot.AngularSpeedEnd()
15print(f"AngularSpeedEnd rtn is {rtn}")
16robot.CloseRPC()

4.54. Attivazione Protezione Posizioni Singolari

Nuovo nella versione python: SDK-v2.0.5

Prototipo

SingularAvoidStart(protectMode, minShoulderPos=100, minElbowPos=50, minWristPos=10)

Descrizione

Attiva protezione posizioni singolari

Parametri Obbligatori

  • protectMode:modalità protezione posizioni singolari: 0-modalità giunti; 1-modalità cartesiana

Parametri Predefiniti

  • minShoulderPos:intervallo regolazione singolarità spalla (mm), default 100.0

  • minElbowPos:intervallo regolazione singolarità gomito (mm), default 50.0

  • minWristPos:intervallo regolazione singolarità polso (°), default 10.0

Valore Ritorno

  • Codice errore successo-0 fallimento- errcode

4.55. Disattivazione Protezione Posizioni Singolari

Nuovo nella versione python: SDK-v2.0.5

Prototipo

SingularAvoidEnd()

Descrizione

Disattiva protezione posizioni singolari

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore Ritorno

  • Codice errore successo-0 fallimento- errcode

4.56. Esempio Codice Protezione Posizioni Singolari 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')
 5startjointPos = [-11.904, -99.669, 117.473, -108.616, -91.726, 74.256]
 6endjointPos = [-45.615, -106.172, 124.296, -107.151, -91.282, 74.255]
 7startdescPose = [-419.524, -13.000, 351.569, -178.118, 0.314, 3.833]
 8enddescPose = [-321.222, 185.189, 335.520, -179.030, -1.284, -29.869]
 9exaxisPos = [0.0, 0.0, 0.0, 0.0]
10offdese = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
11rtn = robot.SingularAvoidStart(2, 10, 5, 5)
12print(f"SingularAvoidStart rtn is {rtn}")
13robot.MoveJ(joint_pos=startjointPos, tool=0,user= 0,vel= 100)
14robot.MoveJ(joint_pos=endjointPos, tool=0,user= 0,vel= 100)
15rtn = robot.SingularAvoidEnd()
16print(f"SingularAvoidEnd rtn is {rtn}")
17robot.CloseRPC()

4.57. Svuotamento Coda Istruzioni Movimento

Nuovo nella versione python: SDK-v2.1.7

Prototipo

MotionQueueClear()

Descrizione

Svuota coda istruzioni movimento

Parametri Obbligatori

Nessuno

Parametri Predefiniti

Nessuno

Valore Ritorno

  • Codice errore successo-0 fallimento- errcode

4.58. Movimento a Inizio Linea Intersecante

Prototipo

MoveToIntersectLineStart(mainPoint, piecePoint, tool, wobj, vel, acc, ovl, oacc, moveType,mainExaxisPos=[[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0]],pieceExaxisPos=[[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0]],extAxisFlag=0,exaxisPos=[0.0,0.0,0.0,0.0],moveDirection=0,offset=[0.0,0.0,0.0,0.0,0.0,0.0])

Descrizione

Movimento a inizio linea intersecante

Parametri Obbligatori

  • mainPoint:6 pose cartesiane punti insegnamento tubo principale

  • piecePoint:6 pose cartesiane punti insegnamento tubo secondario

  • tool:numero sistema coordinate utensile

  • wobj:numero sistema coordinate pezzo

  • vel:percentuale velocità

  • acc:percentuale accelerazione

  • ovl:fattore scala velocità

  • oacc:fattore scala accelerazione

  • moveType:tipo movimento; 0-PTP; 1-LIN

  • mainExaxisPos:posizioni assi estesi 6 punti insegnamento tubo principale, default[[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0]]

  • pieceExaxisPos:posizioni assi estesi 6 punti insegnamento tubo secondario, default[[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0]]

  • extAxisFlag:abilita assi estesi; 0-disabilitato; 1-abilitato

  • exaxisPos:posizione assi estesi punto iniziale [0.0,0.0,0.0,0.0]

  • moveDirection:direzione movimento; 0-orario; 1-antiorario

  • offset:valore offset

Parametri Predefiniti

Nessuno

Valore Ritorno

  • Codice errore successo-0 fallimento- errcode

4.59. Movimento Linea Intersecante

Prototipo

MoveIntersectLine(mainPoint, piecePoint, tool, wobj, vel, acc, ovl, oacc, moveDirection,mainExaxisPos=[[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0]],pieceExaxisPos=[[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0]],extAxisFlag=0,exaxisPos=[[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0]],offset=[0.0,0.0,0.0,0.0,0.0,0.0])

Descrizione

Movimento linea intersecante

Parametri Obbligatori

  • mainPoint:6 pose cartesiane punti insegnamento tubo principale

  • piecePoint:6 pose cartesiane punti insegnamento tubo secondario

  • tool:numero sistema coordinate utensile

  • wobj:numero sistema coordinate pezzo

  • vel:percentuale velocità

  • acc:percentuale accelerazione

  • ovl:fattore scala velocità

  • oacc:fattore scala accelerazione

  • moveDirection:direzione movimento; 0-orario; 1-antiorario

  • mainExaxisPos:posizioni assi estesi 6 punti insegnamento tubo principale, default[[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0]]

  • pieceExaxisPos:posizioni assi estesi 6 punti insegnamento tubo secondario, default[[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0]]

  • extAxisFlag:abilita assi estesi; 0-disabilitato; 1-abilitato

  • exaxisPos:posizione assi estesi punto iniziale [0.0,0.0,0.0,0.0]

  • offset:valore offset

Parametri Predefiniti

Nessuno

Valore Ritorno

  • Codice errore successo-0 fallimento- errcode

4.60. Esempio Codice Movimento Linea Intersecante Robot

 1from fairino import Robot
 2import time
 3robot = Robot.RPC('192.168.58.2')
 4mainPoint = [[0.0] * 6 for _ in range(6)]
 5piecePoint = [[0.0] * 6 for _ in range(6)]
 6mainExaxisPos = [[0.0] * 4 for _ in range(6)]
 7pieceExaxisPos = [[0.0] * 4 for _ in range(6)]
 8extAxisFlag = 1
 9exaxisPos = [[0.0] * 4 for _ in range(4)]
10offset = [0.0, 2.0, 30.0, -2.0, 0.0, 0.0]
11mainPoint[0] = [490.004, -383.194, 402.735, -9.332, -1.528, 69.594]
12mainPoint[1] = [444.950, -407.117, 389.011, -5.546, -2.196, 65.279]
13mainPoint[2] = [445.168, -463.605, 355.759, -1.544, -10.886, 57.104]
14mainPoint[3] = [507.529, -485.385, 343.013, -0.786, -4.834, 61.799]
15mainPoint[4] = [554.390, -442.647, 367.701, -4.761, -10.181, 64.925]
16mainPoint[5] = [532.552, -394.003, 396.467, -13.732, -13.592, 67.411]
17mainExaxisPos[0] = [-29.996, 0.000, 0.000, 0.000]
18mainExaxisPos[1] = [-29.996, 0.000, 0.000, 0.000]
19mainExaxisPos[2] = [-29.996, 0.000, 0.000, 0.000]
20mainExaxisPos[3] = [-29.996, 0.000, 0.000, 0.000]
21mainExaxisPos[4] = [-29.996, 0.000, 0.000, 0.000]
22mainExaxisPos[5] = [-29.996, 0.000, 0.000, 0.000]
23piecePoint[0] = [505.571, -192.408, 316.759, 38.098, 37.051, 139.447]
24piecePoint[1] = [533.837, -201.558, 332.340, 34.644, 42.339, 137.748]
25piecePoint[2] = [530.386, -225.085, 373.808, 35.431, 45.111, 137.560]
26piecePoint[3] = [485.646, -229.195, 383.778, 33.870, 45.173, 137.064]
27piecePoint[4] = [460.551, -212.161, 354.256, 28.856, 45.602, 135.930]
28piecePoint[5] = [474.217, -197.124, 324.611, 42.469, 41.133, 148.167]
29pieceExaxisPos[0] = [-29.996, -0.000, 0.000, 0.000]
30pieceExaxisPos[1] = [-29.996, -0.000, 0.000, 0.000]
31pieceExaxisPos[2] = [-29.996, -0.000, 0.000, 0.000]
32pieceExaxisPos[3] = [-29.996, -0.000, 0.000, 0.000]
33pieceExaxisPos[4] = [-29.996, -0.000, 0.000, 0.000]
34pieceExaxisPos[5] = [-29.996, -0.000, 0.000, 0.000]
35exaxisPos[0] = [-29.996, -0.000, 0.000, 0.000]
36exaxisPos[1] = [-44.994, 90.000, 0.000, 0.000]
37exaxisPos[2] = [-59.992, 0.002, 0.000, 0.000]
38exaxisPos[3] = [-44.994, -89.997, 0.000, 0.000]
39tool = 2
40wobj = 0
41vel = 100.0
42acc = 100.0
43ovl = 12.0
44oacc = 12.0
45moveType = 1
46moveDirection = 1
47rtn = robot.MoveToIntersectLineStart(mainPoint=mainPoint, mainExaxisPos=mainExaxisPos, piecePoint=piecePoint, pieceExaxisPos=pieceExaxisPos, extAxisFlag=extAxisFlag,exaxisPos=exaxisPos[0], tool=tool, wobj=wobj, vel=vel, acc=acc, ovl=ovl, oacc=oacc, moveType=moveType, moveDirection=moveDirection, offset=offset)
48print(f"MoveToIntersectLineStart rtn is {rtn}")
49rtn = robot.MoveIntersectLine(mainPoint=mainPoint, mainExaxisPos=mainExaxisPos, piecePoint=piecePoint, pieceExaxisPos=pieceExaxisPos, extAxisFlag=extAxisFlag, exaxisPos=exaxisPos, tool=tool,wobj=wobj, vel=vel, acc=acc, ovl=5.0, oacc=5.0, moveDirection=moveDirection, offset=offset)
50print(f"MoveIntersectLine rtn is {rtn}")
51robot.CloseRPC()