4. Movimento del Robot
4.1. Jog (Movimento a scatti)
1/**
2* @brief Jog - Movimento a scatti
3* @param [in] refType 0-Jog dei giunti, 2-Jog nel sistema di coordinate base, 4-Jog nel sistema di coordinate dello strumento, 8-Jog nel sistema di coordinate del pezzo
4* @param [in] nb 1-Giunto1 (o asse x), 2-Giunto2 (o asse y), 3-Giunto3 (o asse z), 4-Giunto4 (o rotazione attorno all'asse x), 5-Giunto5 (o rotazione attorno all'asse y), 6-Giunto6 (o rotazione attorno all'asse z)
5* @param [in] dir 0-Direzione negativa, 1-Direzione positiva
6* @param [in] vel Percentuale di velocità, [0~100]
7* @param [in] acc Percentuale di accelerazione, [0~100]
8* @param [in] max_dis Angolo massimo per singolo movimento a scatti, unità [°] o distanza, unità [mm]
9* @return Codice di errore
10*/
11int StartJOG(int refType, int nb, int dir, double vel, double acc, double max_dis);
4.2. Arresto decelerato del movimento Jog
1/**
2* @brief Arresto decelerato del movimento Jog
3* @param [in] stopType 1-Arresto Jog dei giunti, 3-Arresto Jog nel sistema di coordinate base, 5-Arresto Jog nel sistema di coordinate dello strumento, 9-Arresto Jog nel sistema di coordinate del pezzo
4* @return Codice di errore
5*/
6int StopJOG(int stopType);
4.3. Arresto immediato del movimento Jog
1/**
2* @brief Arresto immediato del movimento Jog
3* @return Codice di errore
4*/
5int ImmStopJOG();
4.4. Esempio di codice per il controllo Jog del robot
1public static int TestJOG(Robot robot)
2{
3 for (int i = 0; i < 6; i++)
4 {
5 robot.StartJOG(0, i + 1, 0, 20.0, 20.0, 30.0);
6 robot.Sleep(1000);
7 robot.ImmStopJOG();
8 robot.Sleep(1000);
9 }
10
11 for (int i = 0; i < 6; i++)
12 {
13 robot.StartJOG(2, i + 1, 0, 20.0, 20.0, 30.0);
14 robot.Sleep(1000);
15 robot.ImmStopJOG();
16 robot.Sleep(1000);
17 }
18
19 for (int i = 0; i < 6; i++)
20 {
21 robot.StartJOG(4, i + 1, 0, 20.0, 20.0, 30.0);
22 robot.Sleep(1000);
23 robot.StopJOG(5);
24 robot.Sleep(1000);
25 }
26
27 for (int i = 0; i < 6; i++)
28 {
29 robot.StartJOG(8, i + 1, 0, 20.0, 20.0, 30.0);
30 robot.Sleep(1000);
31 robot.StopJOG(9);
32 robot.Sleep(1000);
33 }
34 return 0;
35}
4.5. Movimento nello spazio dei giunti
1/**
2* @brief Movimento nello spazio dei giunti
3* @param [in] joint_pos Posizione giunto target, unità deg
4* @param [in] desc_pos Posizione cartesiana target
5* @param [in] tool Numero del sistema di coordinate dello strumento, intervallo [0~14]
6* @param [in] user Numero del sistema di coordinate del pezzo, intervallo [0~14]
7* @param [in] vel Percentuale di velocità, intervallo [0~100]
8* @param [in] acc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
9* @param [in] ovl Fattore di scala della velocità, intervallo [0~100]
10* @param [in] epos Posizione dell'asse esteso, unità mm
11* @param [in] blendT [-1.0]-Movimento fino alla posizione (bloccante), [0~500.0]-Tempo di smoothing (non bloccante), unità ms
12* @param [in] offset_flag 0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
13* @param [in] offset_pos Quantità di offset della posa
14* @return Codice di errore
15*/
16int MoveJ(JointPos joint_pos, DescPose desc_pos, int tool, int user, double vel, double acc, double ovl, ExaxisPos epos, double blendT, int offset_flag, DescPose offset_pos);
4.6. Movimento nello spazio dei giunti (calcolo cinematico diretto automatico)
Nuovo nella versione Java: SDK-v1.0.8-3.8.5
1/**
2* @brief Movimento nello spazio dei giunti (calcolo cinematico diretto automatico)
3* @param [in] joint_pos Posizione giunto target, unità deg
4* @param [in] tool Numero del sistema di coordinate dello strumento, intervallo [0~14]
5* @param [in] user Numero del sistema di coordinate del pezzo, intervallo [0~14]
6* @param [in] vel Percentuale di velocità, intervallo [0~100]
7* @param [in] acc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
8* @param [in] ovl Fattore di scala della velocità, intervallo [0~100]
9* @param [in] epos Posizione dell'asse esteso, unità mm
10* @param [in] blendT [-1.0]-Movimento fino alla posizione (bloccante), [0~500.0]-Tempo di smoothing (non bloccante), unità ms
11* @param [in] offset_flag 0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
12* @param [in] offset_pos Quantità di offset della posa
13* @return Codice di errore
14*/
15int MoveJ(JointPos joint_pos, int tool, int user, double vel, double acc, double ovl, ExaxisPos epos, double blendT, int offset_flag, DescPose offset_pos)
4.7. Movimento lineare nello spazio cartesiano
Cambiato nella versione Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Movimento Lineare nello Spazio Cartesiano (Funzione Sovraccarica 1 con blendMode)
3* @param joint_pos Posizioni target dei giunti, unità: deg
4* @param desc_pos Posa target cartesiana
5* @param tool Indice del sistema di coordinate utensile, intervallo [1~15]
6* @param user Indice del sistema di coordinate pezzo/utente, intervallo [1~15]
7* @param vel Percentuale di velocità, intervallo [0~100]
8* @param acc Percentuale di accelerazione, intervallo [0~100], attualmente non disponibile
9* @param ovl Fattore di scala velocità [0~100] / Velocità fisica (mm/s)
10* @param blendR [-1.0]-Blocca fino al completamento del movimento (bloccante), [0~1000.0]-Raggio di transizione (non bloccante), unità: mm
11* @param blendMode Metodo di transizione; 0-Transizione tangente; 1-Transizione a spigolo
12* @param epos Posizione dell'asse esteso, unità: mm
13* @param search 0-Nessuna ricerca filo, 1-Ricerca filo
14* @param offset_flag 0-Nessuno scostamento, 1-Scostamento nel sistema di coordinate base/pezzo, 2-Scostamento nel sistema di coordinate utensile
15* @param offset_pos Valore di scostamento della posa
16* @param oacc Fattore di scala accelerazione [0-100] / Accelerazione fisica (mm/s²)
17* @param velAccParamMode Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) e accelerazione (mm/s²)
18* @param overSpeedStrategy Strategia di gestione sovravelocità; 1-Standard; 2-Ferma con errore in caso di sovravelocità; 3-Riduzione adattiva della velocità, default 0
19* @param speedPercent Percentuale di soglia di riduzione velocità consentita [0-100], default 10%
20* @return Codice di errore
21*/
22public int MoveL(JointPos joint_pos, DescPose desc_pos, int tool, int user, double vel, double acc, double ovl, double blendR, int blendMode, ExaxisPos epos, int search, int offset_flag, DescPose offset_pos, double oacc,int velAccParamMode, int overSpeedStrategy, int speedPercent)
4.8. Movimento lineare nello spazio cartesiano (calcolo cinematico inverso automatico)
Nuovo nella versione Java: SDK-v1.0.8-3.8.5
1/**
2* @brief Movimento lineare nello spazio cartesiano (calcolo cinematico inverso automatico)
3* @param [in] desc_pos Posizione cartesiana target
4* @param [in] tool Numero del sistema di coordinate dello strumento, intervallo [1~15]
5* @param [in] user Numero del sistema di coordinate del pezzo, intervallo [1~15]
6* @param [in] vel Percentuale di velocità, intervallo [0~100]
7* @param [in] acc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
8* @param [in] ovl Fattore di scala della velocità, intervallo [0~100]
9* @param [in] blendR [-1.0]-Movimento fino alla posizione (bloccante), [0~1000.0]-Raggio di smoothing (non bloccante), unità mm
10* @param [in] blendMode Modalità di transizione; 0-Transizione tangente; 1-Transizione a spigolo
11* @param [in] epos Posizione dell'asse esteso, unità mm
12* @param [in] search 0-Nessuna ricerca del filo, 1-Ricerca del filo
13* @param [in] offset_flag 0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
14* @param [in] offset_pos Quantità di offset della posa
15* @param [in] config Configurazione dello spazio dei giunti per la soluzione inversa, [-1]-Calcolo di riferimento alla posizione attuale dei giunti, [0~7]-Soluzione basata su una specifica configurazione dello spazio dei giunti
16* @param [in] overSpeedStrategy Strategia di gestione della sovravelocità, 1-Standard; 2-Arresto con errore in caso di sovravelocità; 3-Decelerazione adattativa, predefinito 0
17* @param [in] speedPercent Soglia percentuale consentita per la decelerazione [0-100], predefinito 10%
18* @return Codice di errore
19*/
20int MoveL(DescPose desc_pos, int tool, int user, double vel, double acc, double ovl, double blendR, int blendMode, ExaxisPos epos, int search, int offset_flag, DescPose offset_pos, int config, int overSpeedStrategy, int speedPercent)
4.9. Movimento lineare nello spazio cartesiano (aggiunto parametro velAccParamMode per modalità parametri velocità/accelerazione)
Nuovo nella versione Java: SDK-v1.0.8-3.8.5
1/**
2* @brief Movimento lineare nello spazio cartesiano (aggiunto parametro velAccParamMode per modalità parametri velocità/accelerazione)
3* @param [in] joint_pos Posizione giunto target, unità deg
4* @param [in] desc_pos Posizione cartesiana target
5* @param [in] tool Numero del sistema di coordinate dello strumento, intervallo [1~15]
6* @param [in] user Numero del sistema di coordinate del pezzo, intervallo [1~15]
7* @param [in] vel Percentuale di velocità, intervallo [0~100]
8* @param [in] acc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
9* @param [in] ovl Fattore di scala della velocità, intervallo [0~100]
10* @param [in] blendR [-1.0]-Movimento fino alla posizione (bloccante), [0~1000.0]-Raggio di smoothing (non bloccante), unità mm
11* @param [in] epos Posizione dell'asse esteso, unità mm
12* @param [in] search 0-Nessuna ricerca del filo, 1-Ricerca del filo
13* @param [in] offset_flag 0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
14* @param [in] offset_pos Quantità di offset della posa
15* @param [in] velAccParamMode Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) accelerazione (mm/s2)
16* @param [in] overSpeedStrategy Strategia di gestione della sovravelocità, 1-Standard; 2-Arresto con errore in caso di sovravelocità; 3-Decelerazione adattativa, predefinito 0
17* @param [in] speedPercent Soglia percentuale consentita per la decelerazione [0-100], predefinito 10%
18* @return Codice di errore
19*/
20public int MoveL(JointPos joint_pos, DescPose desc_pos, int tool, int user, double vel, double acc, double ovl, double blendR, ExaxisPos epos, int search, int offset_flag, DescPose offset_pos, int velAccParamMode, int overSpeedStrategy, int speedPercent)
4.10. Movimento lineare nello spazio cartesiano (funzione sovraccaricata 1, aggiunto blendMode)
Nuovo nella versione Java: SDK-v1.0.8-3.8.5
1/**
2* @brief Movimento lineare nello spazio cartesiano (funzione sovraccaricata 1, aggiunto blendMode)
3* @param [in] joint_pos Posizione giunto target, unità deg
4* @param [in] desc_pos Posizione cartesiana target
5* @param [in] tool Numero del sistema di coordinate dello strumento, intervallo [1~15]
6* @param [in] user Numero del sistema di coordinate del pezzo, intervallo [1~15]
7* @param [in] vel Percentuale di velocità, intervallo [0~100]
8* @param [in] acc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
9* @param [in] ovl Fattore di scala della velocità, intervallo [0~100]
10* @param [in] blendR [-1.0]-Movimento fino alla posizione (bloccante), [0~1000.0]-Raggio di smoothing (non bloccante), unità mm
11* @param [in] blendMode Modalità di transizione; 0-Transizione tangente; 1-Transizione a spigolo
12* @param [in] epos Posizione dell'asse esteso, unità mm
13* @param [in] search 0-Nessuna ricerca del filo, 1-Ricerca del filo
14* @param [in] offset_flag 0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
15* @param [in] offset_pos Quantità di offset della posa
16* @param [in] velAccParamMode Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) accelerazione (mm/s2)
17* @param [in] overSpeedStrategy Strategia di gestione della sovravelocità, 1-Standard; 2-Arresto con errore in caso di sovravelocità; 3-Decelerazione adattativa, predefinito 0
18* @param [in] speedPercent Soglia percentuale consentita per la decelerazione [0-100], predefinito 10%
19* @return Codice di errore
20*/
21public int MoveL(JointPos joint_pos, DescPose desc_pos, int tool, int user, double vel, double acc, double ovl, double blendR, int blendMode, ExaxisPos epos, int search, int offset_flag, DescPose offset_pos, int velAccParamMode, int overSpeedStrategy, int speedPercent)
4.11. Movimento lineare nello spazio cartesiano (funzione sovraccaricata 2, non richiede posizione giunto in input)
Nuovo nella versione Java: SDK-v1.0.8-3.8.5
1/**
2* @brief Movimento lineare nello spazio cartesiano (funzione sovraccaricata 2, non richiede posizione giunto in input)
3* @param [in] desc_pos Posizione cartesiana target
4* @param [in] tool Numero del sistema di coordinate dello strumento, intervallo [1~15]
5* @param [in] user Numero del sistema di coordinate del pezzo, intervallo [1~15]
6* @param [in] vel Percentuale di velocità, intervallo [0~100]
7* @param [in] acc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
8* @param [in] ovl Fattore di scala della velocità, intervallo [0~100]
9* @param [in] blendR [-1.0]-Movimento fino alla posizione (bloccante), [0~1000.0]-Raggio di smoothing (non bloccante), unità mm
10* @param [in] blendMode Modalità di transizione; 0-Transizione tangente; 1-Transizione a spigolo
11* @param [in] epos Posizione dell'asse esteso, unità mm
12* @param [in] search 0-Nessuna ricerca del filo, 1-Ricerca del filo
13* @param [in] offset_flag 0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
14* @param [in] offset_pos Quantità di offset della posa
15* @param [in] config Configurazione dello spazio dei giunti per la soluzione inversa, [-1]-Calcolo di riferimento alla posizione attuale dei giunti, [0~7]-Soluzione basata su una specifica configurazione dello spazio dei giunti
16* @param [in] velAccParamMode Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) accelerazione (mm/s2)
17* @param [in] overSpeedStrategy Strategia di gestione della sovravelocità, 1-Standard; 2-Arresto con errore in caso di sovravelocità; 3-Decelerazione adattativa, predefinito 0
18* @param [in] speedPercent Soglia percentuale consentita per la decelerazione [0-100], predefinito 10%
19* @return Codice di errore
20*/
21public int MoveL(DescPose desc_pos, int tool, int user, double vel, double acc, double ovl, double blendR, int blendMode, ExaxisPos epos, int search, int offset_flag, DescPose offset_pos, int config, int velAccParamMode, int overSpeedStrategy, int speedPercent)
4.12. Movimento circolare nello spazio cartesiano
1/**
2* @brief Movimento ad Arco Circolare nello Spazio Cartesiano
3* @param joint_pos_p Posizioni dei giunti del punto di percorso, unità: deg
4* @param desc_pos_p Posa cartesiana del punto di percorso
5* @param ptool Indice del sistema di coordinate utensile, intervallo [1~15]
6* @param puser Indice del sistema di coordinate pezzo/utente, intervallo [1~15]
7* @param pvel Percentuale di velocità, intervallo [0~100]
8* @param pacc Percentuale di accelerazione, intervallo [0~100], attualmente non disponibile
9* @param epos_p Posizione dell'asse esteso, unità: mm
10* @param poffset_flag 0-Nessuno scostamento, 1-Scostamento nel sistema di coordinate base/pezzo, 2-Scostamento nel sistema di coordinate utensile
11* @param offset_pos_p Valore di scostamento della posa
12* @param joint_pos_t Posizioni dei giunti del punto target, unità: deg
13* @param desc_pos_t Posa cartesiana del punto target
14* @param ttool Indice del sistema di coordinate utensile, intervallo [1~15]
15* @param tuser Indice del sistema di coordinate pezzo/utente, intervallo [1~15]
16* @param tvel Percentuale di velocità, intervallo [0~100]
17* @param tacc Percentuale di accelerazione, intervallo [0~100], attualmente non disponibile
18* @param epos_t Posizione dell'asse esteso, unità: mm
19* @param toffset_flag 0-Nessuno scostamento, 1-Scostamento nel sistema di coordinate base/pezzo, 2-Scostamento nel sistema di coordinate utensile
20* @param offset_pos_t Valore di scostamento della posa
21* @param ovl Fattore di scala velocità [0~100] / Velocità fisica (mm/s)
22* @param blendR [-1.0]-Blocca fino al completamento del movimento (bloccante), [0~1000.0]-Raggio di transizione (non bloccante), unità: mm
23* @param oacc Fattore di scala accelerazione [0-100] / Accelerazione fisica (mm/s²)
24* @param velAccParamMode Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) e accelerazione (mm/s²)
25* @return Codice di errore
26*/
27public int MoveC(JointPos joint_pos_p, DescPose desc_pos_p, int ptool, int puser, double pvel, double pacc, ExaxisPos epos_p, int poffset_flag, DescPose offset_pos_p, JointPos joint_pos_t, DescPose desc_pos_t, int ttool, int tuser, double tvel, double tacc, ExaxisPos epos_t, int toffset_flag, DescPose offset_pos_t, double ovl, double blendR, double oacc, int velAccParamMode)
4.13. Movimento circolare nello spazio cartesiano (calcolo cinematico inverso automatico)
Nuovo nella versione Java: SDK-v1.0.8-3.8.5
1/**
2* @brief Movimento circolare nello spazio cartesiano (calcolo cinematico inverso automatico)
3* @param [in] desc_pos_p Posa cartesiana del punto di percorso
4* @param [in] ptool Numero del sistema di coordinate dello strumento, intervallo [1~15]
5* @param [in] puser Numero del sistema di coordinate del pezzo, intervallo [1~15]
6* @param [in] pvel Percentuale di velocità, intervallo [0~100]
7* @param [in] pacc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
8* @param [in] epos_p Posizione dell'asse esteso, unità mm
9* @param [in] poffset_flag 0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
10* @param [in] offset_pos_p Quantità di offset della posa
11* @param [in] desc_pos_t Posa cartesiana del punto target
12* @param [in] ttool Numero del sistema di coordinate dello strumento, intervallo [1~15]
13* @param [in] tuser Numero del sistema di coordinate del pezzo, intervallo [1~15]
14* @param [in] tvel Percentuale di velocità, intervallo [0~100]
15* @param [in] tacc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
16* @param [in] epos_t Posizione dell'asse esteso, unità mm
17* @param [in] toffset_flag 0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
18* @param [in] offset_pos_t Quantità di offset della posa
19* @param [in] ovl Fattore di scala della velocità, intervallo [0~100]
20* @param [in] blendR [-1.0]-Movimento fino alla posizione (bloccante), [0~1000.0]-Raggio di smoothing (non bloccante), unità mm
21* @param [in] config Configurazione dello spazio dei giunti per la soluzione inversa, [-1]-Calcolo di riferimento alla posizione attuale dei giunti, [0~7]-Soluzione basata su una specifica configurazione dello spazio dei giunti
22* @return Codice di errore
23*/
24int MoveC(DescPose desc_pos_p, int ptool, int puser, double pvel, double pacc, ExaxisPos epos_p, int poffset_flag, DescPose offset_pos_p, DescPose desc_pos_t, int ttool, int tuser, double tvel, double tacc, ExaxisPos epos_t, int toffset_flag, DescPose offset_pos_t, double ovl, double blendR, int config)
4.14. Movimento circolare nello spazio cartesiano (aggiunto parametro velAccParamMode per modalità parametri velocità/accelerazione)
Nuovo nella versione Java: SDK-v1.0.8-3.8.5
1/**
2* @brief Movimento circolare nello spazio cartesiano (aggiunto parametro velAccParamMode per modalità parametri velocità/accelerazione)
3* @param [in] joint_pos_p Posizione giunto del punto di percorso, unità deg
4* @param [in] desc_pos_p Posa cartesiana del punto di percorso
5* @param [in] ptool Numero del sistema di coordinate dello strumento, intervallo [1~15]
6* @param [in] puser Numero del sistema di coordinate del pezzo, intervallo [1~15]
7* @param [in] pvel Percentuale di velocità, intervallo [0~100]
8* @param [in] pacc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
9* @param [in] epos_p Posizione dell'asse esteso, unità mm
10* @param [in] poffset_flag 0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
11* @param [in] offset_pos_p Quantità di offset della posa
12* @param [in] joint_pos_t Posizione giunto del punto target, unità deg
13* @param [in] desc_pos_t Posa cartesiana del punto target
14* @param [in] ttool Numero del sistema di coordinate dello strumento, intervallo [1~15]
15* @param [in] tuser Numero del sistema di coordinate del pezzo, intervallo [1~15]
16* @param [in] tvel Percentuale di velocità, intervallo [0~100]
17* @param [in] tacc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
18* @param [in] epos_t Posizione dell'asse esteso, unità mm
19* @param [in] toffset_flag 0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
20* @param [in] offset_pos_t Quantità di offset della posa
21* @param [in] ovl Fattore di scala della velocità, intervallo [0~100]
22* @param [in] blendR [-1.0]-Movimento fino alla posizione (bloccante), [0~1000.0]-Raggio di smoothing (non bloccante), unità mm
23* @param [in] velAccParamMode Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) accelerazione (mm/s2)
24* @return Codice di errore
25*/
26public int MoveC(JointPos joint_pos_p, DescPose desc_pos_p, int ptool, int puser, double pvel, double pacc, ExaxisPos epos_p, int poffset_flag, DescPose offset_pos_p, JointPos joint_pos_t, DescPose desc_pos_t, int ttool, int tuser, double tvel, double tacc, ExaxisPos epos_t, int toffset_flag, DescPose offset_pos_t, double ovl, double blendR, int velAccParamMode)
4.15. Movimento circolare nello spazio cartesiano (funzione sovraccaricata 1, non richiede posizione giunto in input)
Nuovo nella versione Java: SDK-v1.0.8-3.8.5
1/**
2* @brief Movimento circolare nello spazio cartesiano (funzione sovraccaricata 1, non richiede posizione giunto in input)
3* @param [in] desc_pos_p Posa cartesiana del punto di percorso
4* @param [in] ptool Numero del sistema di coordinate dello strumento, intervallo [1~15]
5* @param [in] puser Numero del sistema di coordinate del pezzo, intervallo [1~15]
6* @param [in] pvel Percentuale di velocità, intervallo [0~100]
7* @param [in] pacc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
8* @param [in] epos_p Posizione dell'asse esteso, unità mm
9* @param [in] poffset_flag 0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
10* @param [in] offset_pos_p Quantità di offset della posa
11* @param [in] desc_pos_t Posa cartesiana del punto target
12* @param [in] ttool Numero del sistema di coordinate dello strumento, intervallo [1~15]
13* @param [in] tuser Numero del sistema di coordinate del pezzo, intervallo [1~15]
14* @param [in] tvel Percentuale di velocità, intervallo [0~100]
15* @param [in] tacc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
16* @param [in] epos_t Posizione dell'asse esteso, unità mm
17* @param [in] toffset_flag 0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
18* @param [in] offset_pos_t Quantità di offset della posa
19* @param [in] ovl Fattore di scala della velocità, intervallo [0~100]
20* @param [in] blendR [-1.0]-Movimento fino alla posizione (bloccante), [0~1000.0]-Raggio di smoothing (non bloccante), unità mm
21* @param [in] config Configurazione dello spazio dei giunti per la soluzione inversa, [-1]-Calcolo di riferimento alla posizione attuale dei giunti, [0~7]-Soluzione basata su una specifica configurazione dello spazio dei giunti
22* @param [in] velAccParamMode Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) accelerazione (mm/s2)
23* @return Codice di errore
24*/
25public int MoveC(DescPose desc_pos_p, int ptool, int puser, double pvel, double pacc, ExaxisPos epos_p, int poffset_flag, DescPose offset_pos_p, DescPose desc_pos_t, int ttool, int tuser, double tvel, double tacc, ExaxisPos epos_t, int toffset_flag, DescPose offset_pos_t, double ovl, double blendR, int config, int velAccParamMode)
4.16. Movimento circolare completo nello spazio cartesiano
Cambiato nella versione Java: SDK-v1.0.6-3.8.3
1/**
2* @brief Movimento Circolare Completo nello Spazio Cartesiano
3* @param joint_pos_p Posizioni dei giunti del punto di percorso 1, unità: deg
4* @param desc_pos_p Posa cartesiana del punto di percorso 1
5* @param ptool Indice del sistema di coordinate utensile, intervallo [1~15]
6* @param puser Indice del sistema di coordinate pezzo/utente, intervallo [1~15]
7* @param pvel Percentuale di velocità, intervallo [0~100]
8* @param pacc Percentuale di accelerazione, intervallo [0~100], attualmente non disponibile
9* @param epos_p Posizione dell'asse esteso, unità: mm
10* @param joint_pos_t Posizioni dei giunti del punto di percorso 2, unità: deg
11* @param desc_pos_t Posa cartesiana del punto di percorso 2
12* @param ttool Indice del sistema di coordinate utensile, intervallo [1~15]
13* @param tuser Indice del sistema di coordinate pezzo/utente, intervallo [1~15]
14* @param tvel Percentuale di velocità, intervallo [0~100]
15* @param tacc Percentuale di accelerazione, intervallo [0~100], attualmente non disponibile
16* @param epos_t Posizione dell'asse esteso, unità: mm
17* @param ovl Fattore di scala velocità [0~100] / Velocità fisica (mm/s)
18* @param offset_flag 0-Nessuno scostamento, 1-Scostamento nel sistema di coordinate base/pezzo, 2-Scostamento nel sistema di coordinate utensile
19* @param offset_pos Valore di scostamento della posa
20* @param oacc Fattore di scala accelerazione [0-100] / Accelerazione fisica (mm/s²)
21* @param blendR -1: Bloccante; 0~1000: Raggio di transizione
22* @param velAccParamMode Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) e accelerazione (mm/s²)
23* @return Codice di errore
24*/
25public int Circle(JointPos joint_pos_p, DescPose desc_pos_p, int ptool, int puser, double pvel, double pacc, ExaxisPos epos_p, JointPos joint_pos_t, DescPose desc_pos_t, int ttool, int tuser, double tvel, double tacc, ExaxisPos epos_t, double ovl, int offset_flag, DescPose offset_pos, double oacc, double blendR, int velAccParamMode)
4.17. Movimento circolare completo nello spazio cartesiano (calcolo cinematico inverso automatico)
Nuovo nella versione Java: SDK-v1.0.8-3.8.5
1/**
2 * @brief Movimento circolare completo nello spazio cartesiano (calcolo cinematico inverso automatico)
3 * @param [in] desc_pos_p Posa cartesiana del punto di percorso 1
4 * @param [in] ptool Numero del sistema di coordinate dello strumento, intervallo [0~14]
5 * @param [in] puser Numero del sistema di coordinate del pezzo, intervallo [0~14]
6 * @param [in] pvel Percentuale di velocità, intervallo [0~100]
7 * @param [in] pacc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
8 * @param [in] epos_p Posizione dell'asse esteso, unità mm
9 * @param [in] desc_pos_t Posa cartesiana del punto di percorso 2
10 * @param [in] ttool Numero del sistema di coordinate dello strumento, intervallo [0~14]
11 * @param [in] tuser Numero del sistema di coordinate del pezzo, intervallo [0~14]
12 * @param [in] tvel Percentuale di velocità, intervallo [0~100]
13 * @param [in] tacc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
14 * @param [in] epos_t Posizione dell'asse esteso, unità mm
15 * @param [in] ovl Fattore di scala della velocità, intervallo [0~100]
16 * @param [in] offset_flag 0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
17 * @param [in] offset_pos Quantità di offset della posa
18 * @param [in] oacc Percentuale di accelerazione
19 * @param [in] blendR -1: Bloccante; 0~1000: Raggio di smoothing
20 * @param [in] config Configurazione dello spazio dei giunti per la soluzione inversa, [-1]-Calcolo di riferimento alla posizione attuale dei giunti, [0~7]-Soluzione basata su una specifica configurazione dello spazio dei giunti
21 * @return Codice di errore
22 */
23int Circle(DescPose desc_pos_p, int ptool, int puser, double pvel, double pacc, ExaxisPos epos_p, DescPose desc_pos_t, int ttool, int tuser, double tvel, double tacc, ExaxisPos epos_t, double ovl, int offset_flag, DescPose offset_pos, double oacc, double blendR,int config)
4.18. Movimento circolare completo nello spazio cartesiano (aggiunto parametro velAccParamMode per modalità parametri velocità/accelerazione)
Nuovo nella versione Java: SDK-v1.0.8-3.8.5
1/**
2* @brief Movimento circolare completo nello spazio cartesiano (aggiunto parametro velAccParamMode per modalità parametri velocità/accelerazione)
3* @param [in] joint_pos_p Posizione giunto del punto di percorso 1, unità deg
4* @param [in] desc_pos_p Posa cartesiana del punto di percorso 1
5* @param [in] ptool Numero del sistema di coordinate dello strumento, intervallo [1~15]
6* @param [in] puser Numero del sistema di coordinate del pezzo, intervallo [1~15]
7* @param [in] pvel Percentuale di velocità, intervallo [0~100]
8* @param [in] pacc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
9* @param [in] epos_p Posizione dell'asse esteso, unità mm
10* @param [in] joint_pos_t Posizione giunto del punto di percorso 2, unità deg
11* @param [in] desc_pos_t Posa cartesiana del punto di percorso 2
12* @param [in] ttool Numero del sistema di coordinate dello strumento, intervallo [1~15]
13* @param [in] tuser Numero del sistema di coordinate del pezzo, intervallo [1~15]
14* @param [in] tvel Percentuale di velocità, intervallo [0~100]
15* @param [in] tacc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
16* @param [in] epos_t Posizione dell'asse esteso, unità mm
17* @param [in] ovl Fattore di scala della velocità, intervallo [0~100]
18* @param [in] offset_flag 0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
19* @param [in] offset_pos Quantità di offset della posa
20* @param [in] oacc Percentuale di accelerazione
21* @param [in] blendR -1: Bloccante; 0~1000: Raggio di smoothing
22* @param [in] velAccParamMode Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) accelerazione (mm/s2)
23* @return Codice di errore
24*/
25public int Circle(JointPos joint_pos_p, DescPose desc_pos_p, int ptool, int puser, double pvel, double pacc, ExaxisPos epos_p, JointPos joint_pos_t, DescPose desc_pos_t, int ttool, int tuser, double tvel, double tacc, ExaxisPos epos_t, double ovl, int offset_flag, DescPose offset_pos, double oacc, double blendR, int velAccParamMode)
4.19. Movimento circolare completo nello spazio cartesiano (funzione sovraccaricata 1, non richiede posizione giunto in input)
Nuovo nella versione Java: SDK-v1.0.8-3.8.5
1/**
2* @brief Movimento circolare completo nello spazio cartesiano (funzione sovraccaricata 1, non richiede posizione giunto in input)
3* @param [in] desc_pos_p Posa cartesiana del punto di percorso 1
4* @param [in] ptool Numero del sistema di coordinate dello strumento, intervallo [0~14]
5* @param [in] puser Numero del sistema di coordinate del pezzo, intervallo [0~14]
6* @param [in] pvel Percentuale di velocità, intervallo [0~100]
7* @param [in] pacc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
8* @param [in] epos_p Posizione dell'asse esteso, unità mm
9* @param [in] desc_pos_t Posa cartesiana del punto di percorso 2
10* @param [in] ttool Numero del sistema di coordinate dello strumento, intervallo [0~14]
11* @param [in] tuser Numero del sistema di coordinate del pezzo, intervallo [0~14]
12* @param [in] tvel Percentuale di velocità, intervallo [0~100]
13* @param [in] tacc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
14* @param [in] epos_t Posizione dell'asse esteso, unità mm
15* @param [in] ovl Fattore di scala della velocità, intervallo [0~100]
16* @param [in] offset_flag 0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
17* @param [in] offset_pos Quantità di offset della posa
18* @param [in] oacc Percentuale di accelerazione
19* @param [in] blendR -1: Bloccante; 0~1000: Raggio di smoothing
20* @param [in] config Configurazione dello spazio dei giunti per la soluzione inversa, [-1]-Calcolo di riferimento alla posizione attuale dei giunti, [0~7]-Soluzione basata su una specifica configurazione dello spazio dei giunti
21* @param [in] velAccParamMode Modalità parametri velocità/accelerazione; 0-Percentuale; 1-Velocità fisica (mm/s) accelerazione (mm/s2)
22* @return Codice di errore
23*/
24public int Circle(DescPose desc_pos_p, int ptool, int puser, double pvel, double pacc, ExaxisPos epos_p, DescPose desc_pos_t, int ttool, int tuser, double tvel, double tacc, ExaxisPos epos_t, double ovl, int offset_flag, DescPose offset_pos, double oacc, double blendR, int config, int velAccParamMode)
4.20. Movimento punto a punto nello spazio cartesiano
1/**
2* @brief Movimento punto a punto nello spazio cartesiano
3* @param [in] desc_pos Posa cartesiana target o incremento di posa
4* @param [in] tool Numero del sistema di coordinate dello strumento, intervallo [0~14]
5* @param [in] user Numero del sistema di coordinate del pezzo, intervallo [0~14]
6* @param [in] vel Percentuale di velocità, intervallo [0~100]
7* @param [in] acc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
8* @param [in] ovl Fattore di scala della velocità, intervallo [0~100]
9* @param [in] blendT [-1.0]-Movimento fino alla posizione (bloccante), [0~500.0]-Tempo di smoothing (non bloccante), unità ms
10* @param [in] config Configurazione dello spazio dei giunti, [-1]-Calcolo di riferimento alla posizione attuale dei giunti, [0~7]-Calcolo di riferimento a una specifica configurazione dello spazio dei giunti, predefinito -1
11* @return Codice di errore
12*/
13int MoveCart(DescPose desc_pos, int tool, int user, double vel, double acc, double ovl, double blendT, int config);
4.21. Esempio di codice per le istruzioni di movimento di base del robot
1public static int TestMove(Robot robot)
2{
3 int rtn=-1;
4 JointPos j1=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
5 JointPos j2=new JointPos(-45.615, -106.172, 124.296, -107.151, -91.282, 74.255);
6 JointPos j3=new JointPos(-29.777, -84.536, 109.275, -114.075, -86.655, 74.257);
7 JointPos j4=new JointPos(-31.154, -95.317, 94.276, -88.079, -89.740, 74.256);
8 DescPose desc_pos1=new DescPose(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
9 DescPose desc_pos2=new DescPose(-321.222, 185.189, 335.520, -179.030, -1.284, -29.869);
10 DescPose desc_pos3=new DescPose(-487.434, 154.362, 308.576, 176.600, 0.268, -14.061);
11 DescPose desc_pos4=new DescPose(-443.165, 147.881, 480.951, 179.511, -0.775, -15.409);
12 DescPose offset_pos=new DescPose(0, 0, 0, 0, 0, 0);
13 ExaxisPos epos=new ExaxisPos(0, 0, 0, 0);
14 int tool = 0;
15 int user = 0;
16 double vel = 100.0;
17 double acc = 100.0;
18 double ovl = 100.0;
19 double oacc = 100.0;
20 double blendT = 0.0;
21 double blendR = 0.0;
22 int flag = 0;
23 int search = 0;
24 int blendMode = 0;
25 int velAccMode = 0;
26 robot.SetSpeed(20);
27 rtn = robot.MoveJ(j1, desc_pos1, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
28 System.out.printf("movej errcode:%d\n", rtn);
29 rtn = robot.MoveL(j2, desc_pos2, tool, user, vel, acc, ovl, blendR, blendMode, epos, search, flag, offset_pos, oacc, velAccMode,0,10);
30 System.out.printf("movel errcode:%d\n", rtn);
31 rtn = robot.MoveC(j3, desc_pos3, tool, user, vel, acc, epos, flag, offset_pos, j4, desc_pos4, tool, user, vel, acc, epos, flag, offset_pos, ovl, blendR, oacc, velAccMode);
32 System.out.printf("movec errcode:%d\n", rtn);
33 rtn = robot.MoveJ(j2, desc_pos2, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
34 System.out.printf("movej errcode:%d\n", rtn);
35 rtn = robot.Circle(j3, desc_pos3, tool, user, vel, acc, epos, j1, desc_pos1, tool, user, vel, acc, epos, ovl, flag, offset_pos, oacc, -1, velAccMode);
36 System.out.printf("circle errcode:%d\n", rtn);
37 rtn = robot.MoveCart(desc_pos4, tool, user, vel, acc, ovl, blendT, -1);
38 System.out.printf("MoveCart errcode:%d\n", rtn);
39 rtn = robot.MoveJ(j1, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
40 System.out.printf("movej errcode:%d\n", rtn);
41 rtn = robot.MoveL(desc_pos2, tool, user, vel, acc, ovl, blendR, blendMode, epos, search, flag, offset_pos, -1, velAccMode,0,10);
42 System.out.printf("movel errcode:%d\n", rtn);
43 rtn = robot.MoveC(desc_pos3, tool, user, vel, acc, epos, flag, offset_pos, desc_pos4, tool, user, vel, acc, epos, flag, offset_pos, ovl, blendR, -1, velAccMode);
44 System.out.printf("movec errcode:%d\n", rtn);
45 rtn = robot.MoveJ(j2, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
46 System.out.printf("movej errcode:%d\n", rtn);
47 rtn = robot.Circle(desc_pos3, tool, user, vel, acc, epos, desc_pos1, tool, user, vel, acc, epos, ovl, flag, offset_pos, oacc, blendR, -1, velAccMode);
48 System.out.printf("circle errcode:%d\n", rtn);
49 return 0;
50}
4.22. Movimento a spirale nello spazio cartesiano
1/**
2* @brief Movimento a spirale nello spazio cartesiano
3* @param [in] joint_pos Posizione giunto target, unità deg
4* @param [in] desc_pos Posa cartesiana target
5* @param [in] tool Numero del sistema di coordinate dello strumento, intervallo [0~14]
6* @param [in] user Numero del sistema di coordinate del pezzo, intervallo [0~14]
7* @param [in] vel Percentuale di velocità, intervallo [0~100]
8* @param [in] acc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
9* @param [in] epos Posizione dell'asse esteso, unità mm
10* @param [in] ovl Fattore di scala della velocità, intervallo [0~100]
11* @param [in] offset_flag 0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
12* @param [in] offset_pos Quantità di offset della posa
13* @param [in] spiral_param Parametri della spirale
14* @return Codice di errore
15*/
16int NewSpiral(JointPos joint_pos, DescPose desc_pos, int tool, int user, double vel, double acc, ExaxisPos epos, double ovl, int offset_flag, DescPose offset_pos, SpiralParam spiral_param);
4.23. Movimento a spirale nello spazio cartesiano (calcolo cinematico inverso automatico)
Nuovo nella versione Java: SDK-v1.0.8-3.8.5
1/**
2* @brief Movimento a spirale nello spazio cartesiano (calcolo cinematico inverso automatico)
3* @param [in] desc_pos Posa cartesiana target
4* @param [in] tool Numero del sistema di coordinate dello strumento, intervallo [0~14]
5* @param [in] user Numero del sistema di coordinate del pezzo, intervallo [0~14]
6* @param [in] vel Percentuale di velocità, intervallo [0~100]
7* @param [in] acc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
8* @param [in] epos Posizione dell'asse esteso, unità mm
9* @param [in] ovl Fattore di scala della velocità, intervallo [0~100]
10* @param [in] offset_flag 0-Nessun offset, 1-Offset nel sistema di coordinate base/del pezzo, 2-Offset nel sistema di coordinate dello strumento
11* @param [in] offset_pos Quantità di offset della posa
12* @param [in] spiral_param Parametri della spirale
13* @param [in] config Configurazione dello spazio dei giunti per la soluzione inversa, [-1]-Calcolo di riferimento alla posizione attuale dei giunti, [0~7]-Soluzione basata su una specifica configurazione dello spazio dei giunti
14* @return Codice di errore
15*/
16int NewSpiral(DescPose desc_pos, int tool, int user, double vel, double acc, ExaxisPos epos, double ovl, int offset_flag, DescPose offset_pos, SpiralParam spiral_param,int config)
4.24. Esempio di codice per il movimento a spirale
1public static int TestSpiral(Robot robot)
2{
3 int rtn=-1;
4 JointPos j=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
5 DescPose desc_pos=new DescPose(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
6 DescPose offset_pos1=new DescPose(50, 0, 0, -30, 0, 0);
7 DescPose offset_pos2=new DescPose(50, 0, 0, -5, 0, 0);
8 ExaxisPos epos=new ExaxisPos(0, 0, 0, 0);
9 SpiralParam sp=new SpiralParam(1,5.0,50.0,10.0,10.0,0);
10
11 int tool = 0;
12 int user = 0;
13 double vel = 100.0;
14 double acc = 100.0;
15 double ovl = 100.0;
16 double blendT = 0.0;
17 int flag = 2;
18
19 rtn = robot.MoveJ(j, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos1);
20 System.out.println("movej errcode:"+ rtn);
21
22 rtn = robot.NewSpiral(desc_pos, tool, user, vel, acc, epos, ovl, flag, offset_pos2, sp,-1);
23 System.out.println("newspiral errcode:"+ rtn);
24
25 return 0;
26}
4.25. Inizio movimento servo
1/**
2* @brief Inizio movimento servo, da utilizzare con le istruzioni ServoJ e ServoCart
3* @return Codice di errore
4*/
5int ServoMoveStart();
4.26. Fine movimento servo
1/**
2* @brief Fine movimento servo, da utilizzare con le istruzioni ServoJ e ServoCart
3* @return Codice di errore
4*/
5int ServoMoveEnd();
4.27. Movimento in modalità servo nello spazio dei giunti
Cambiato nella versione Java: SDK-v1.0.6-3.8.3
1/**
2* @brief Movimento in modalità servo nello spazio dei giunti
3* @param [in] joint_pos Posizione giunto target, unità deg
4* @param [in] axisPos Posizione dell'asse esterno, unità mm
5* @param [in] acc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile, predefinito 0
6* @param [in] vel Percentuale di velocità, intervallo [0~100], non ancora disponibile, predefinito 0
7* @param [in] cmdT Periodo di invio comandi, unità s, intervallo consigliato [0.001~0.0016]
8* @param [in] filterT Tempo di filtraggio, unità s, non ancora disponibile, predefinito 0
9* @param [in] gain Amplificatore proporzionale della posizione target, non ancora disponibile, predefinito 0
10* @param [in] id ID dell'istruzione servoJ, predefinito 0
11* @return Codice di errore
12*/
13int ServoJ(JointPos joint_pos, ExaxisPos axisPos, double acc, double vel, double cmdT, double filterT, double gain, int id);
4.28. Esempio di programma per il movimento in modalità servo nello spazio dei giunti
1public static void TestServoJ()
2{
3 Robot robot = new Robot();
4 robot.SetReconnectParam(true,20,500);//Imposta numero di tentativi di riconnessione, intervallo
5 robot.LoggerInit(FrLogType.DIRECT, FrLogLevel.INFO, "D://log", 10, 10);
6 int rtn = robot.RPC("192.168.58.2");
7 if(rtn == 0)
8 {
9 System.out.println("connessione rpc successo");
10 }
11 else
12 {
13 System.out.println("connessione rpc fallita");
14 return ;
15 }
16 JointPos j5 = new JointPos();
17 ExaxisPos ePos=new ExaxisPos();
18 int ret = robot.GetActualJointPosDegree(j5);
19 if (ret == 0)
20 {
21 int count = 200;
22 while (count > 0)
23 {
24 robot.ServoJ(j5, ePos,100, 100, 0.008, 0, 0);
25 j5.J1 += 0.2;//Incrementa la posizione del giunto 1
26 count -= 1;
27 robot.WaitMs((int)(8));
28 }
29 }
30}
4.29. Inizio controllo coppia giunti
1/**
2* @brief Inizio controllo coppia giunti
3* @return Codice di errore
4*/
5int ServoJTStart()
4.30. Controllo coppia giunti
1/**
2* @brief Controllo coppia giunti
3* @param torque Coppia giunti j1~j6, unità Nm
4* @param interval Periodo del comando, unità s, intervallo [0.001~0.008]
5* @param checkFlag Strategia di rilevamento 0-Nessuna limitazione; 1-Limita potenza; 2-Limita velocità; 3-Limita sia potenza che velocità
6* @param jPowerLimit Limite massimo di potenza del giunto (W)
7* @param jVelLimit Velocità massima del giunto (°/s)
8* @return Codice di errore
9*/
10public int ServoJT(double[] torque, double interval, int checkFlag, double[] jPowerLimit, double[] jVelLimit)
4.31. Fine controllo coppia giunti
1/**
2* @brief Fine controllo coppia giunti
3* @return Codice di errore
4*/
5int ServoJTEnd()
4.32. Esempio di programma per il movimento in modalità servo nello spazio dei giunti
1public static int TestServoJT(Robot robot)
2{
3
4 robot.DragTeachSwitch(1);
5 List<Number> joint_toq=new ArrayList<>();
6 joint_toq=robot.GetJointTorques(1);
7
8 int count = 100;
9 robot.ServoJTStart(); // #inizio servoJT
10 int error = 0;
11 while (count > 0)
12 {
13 error = robot.ServoJT(torques, 0.001);
14 count = count - 1;
15 robot.Sleep(1);
16 }
17 error = robot.ServoJTEnd();
18 robot.DragTeachSwitch(0);
19
20 robot.CloseRPC();
21 return 0;
22}
4.33. Esempio di codice per il controllo coppia giunti con protezione sovravelocità
1public static void ServoJTWithSafety(Robot robot)
2{
3 robot.ResetAllError();
4 robot.Sleep(500);
5 List<Number> torques;
6 torques=robot.GetJointTorques(1);
7 robot.ServoJTStart(); // #inizio servoJT
8 ROBOT_STATE_PKG pkg=new ROBOT_STATE_PKG();
9 robot.DragTeachSwitch(1);
10 int checkFlag = 3;//-1,3
11 //double[] jPowerLimit = {1.0,1.0,1.0,1.0,1.0,1.0};//5001
12 double[] jPowerLimit = { 10.0, 10.0, 10.0, 10.0, 10.0, 10.0 };
13 double[] jVelLimit = { 50, 50, 50, 50, 50, 50};//180.1,-1
14 int count = 800000;
15 int error = 0;
16 double[] tor=new double[]{(double)torques.get(1),(double)torques.get(2),(double)torques.get(3),(double)torques.get(4),(double)torques.get(5),(double)torques.get(6)};
17 while (count > 0)
18 {
19 tor[2] = tor[2]+0.01;// #incrementa di 0.01NM l'asse 1 ogni volta, movimento per 100 volte
20 error = robot.ServoJT(tor, 0.01, checkFlag, jPowerLimit, jVelLimit); //# movimento in modalità servo nello spazio dei giunti
21 System.out.printf("ServoJT rtn è %d\n", error);
22 count = count - 1;
23 robot.Sleep(1);
24 pkg=robot.GetRobotRealTimeState();
25 System.out.printf("codice principale %d, sottocodice %d\n", pkg.main_code, pkg.sub_code);
26 }
27 robot.DragTeachSwitch(0);
28 error = robot.ServoJTEnd(); //#fine movimento servo
29}
4.34. Movimento in modalità servo nello spazio cartesiano
1/**
2* @brief Movimento in modalità servo nello spazio cartesiano
3* @param [in] mode 0-Movimento assoluto (sistema di coordinate base), 1-Movimento incrementale (sistema di coordinate base), 2-Movimento incrementale (sistema di coordinate dello strumento)
4* @param [in] desc_pose Posa cartesiana target o incremento di posa
5* @param [in] pos_gain Coefficiente proporzionale dell'incremento di posa, attivo solo nel movimento incrementale, intervallo [0~1]
6* @param [in] acc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile, predefinito 0
7* @param [in] vel Percentuale di velocità, intervallo [0~100], non ancora disponibile, predefinito 0
8* @param [in] cmdT Periodo di invio comandi, unità s, intervallo consigliato [0.001~0.0016]
9* @param [in] filterT Tempo di filtraggio, unità s, non ancora disponibile, predefinito 0
10* @param [in] gain Amplificatore proporzionale della posizione target, non ancora disponibile, predefinito 0
11* @return Codice di errore
12*/
13int ServoCart(int mode, DescPose desc_pose, Object[] pos_gain, double acc, double vel, double cmdT, double filterT, double gain);
4.35. Esempio di codice per il movimento in modalità servo nello spazio cartesiano
1public static int TestServoCart(Robot robot)
2{
3 DescPose desc_pos_dt=new DescPose(0,0,0,0,0,0);
4
5 desc_pos_dt.tran.z = -0.5;
6 Object[] pos_gain = { 0.0,0.0,1.0,0.0,0.0,0.0 };
7 int mode = 2;
8 double vel = 0.0;
9 double acc = 0.0;
10 double cmdT = 0.008;
11 double filterT = 0.0;
12 double gain = 0.0;
13 int flag = 0;
14 int count = 100;
15
16 robot.SetSpeed(20);
17
18 while (count>0)
19 {
20 robot.ServoCart(mode, desc_pos_dt, pos_gain, acc, vel, cmdT, filterT, gain);
21 count -= 1;
22 double time=cmdT*1000;
23 robot.WaitMs((int)time);
24 }
25
26 return 0;
27}
4.36. Inizio movimento spline
1/**
2* @brief Inizio movimento spline
3* @return Codice di errore
4*/
5int SplineStart();
4.37. Movimento PTP (Punto a Punto) nello spazio dei giunti
1/**
2* @brief Movimento spline nello spazio dei giunti
3* @param [in] joint_pos Posizione giunto target, unità deg
4* @param [in] desc_pos Posa cartesiana target
5* @param [in] tool Numero del sistema di coordinate dello strumento, intervallo [0~14]
6* @param [in] user Numero del sistema di coordinate del pezzo, intervallo [0~14]
7* @param [in] vel Percentuale di velocità, intervallo [0~100]
8* @param [in] acc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
9* @param [in] ovl Fattore di scala della velocità, intervallo [0~100]
10* @return Codice di errore
11*/
12int SplinePTP(JointPos joint_pos, DescPose desc_pos, int tool, int user, double vel, double acc, double ovl);
4.38. Movimento spline nello spazio dei giunti (calcolo cinematico diretto automatico)
Nuovo nella versione Java: SDK-v1.0.8-3.8.5
1/**
2* @brief Movimento spline nello spazio dei giunti (calcolo cinematico diretto automatico)
3* @param [in] joint_pos Posizione giunto target, unità deg
4* @param [in] tool Numero del sistema di coordinate dello strumento, intervallo [0~14]
5* @param [in] user Numero del sistema di coordinate del pezzo, intervallo [0~14]
6* @param [in] vel Percentuale di velocità, intervallo [0~100]
7* @param [in] acc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
8* @param [in] ovl Fattore di scala della velocità, intervallo [0~100]
9* @return Codice di errore
10*/
11int SplinePTP(JointPos joint_pos, int tool, int user, double vel, double acc, double ovl)
4.39. Fine movimento spline
1/**
2* @brief Fine movimento spline
3* @return Codice di errore
4*/
5int SplineEnd();
4.40. Esempio di codice per il movimento spline
1public static int TestSpline(Robot robot)
2{
3 JointPos j1=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
4 JointPos j2=new JointPos(-45.615, -106.172, 124.296, -107.151, -91.282, 74.255);
5 JointPos j3=new JointPos(-61.954, -84.409, 108.153, -116.316, -91.283, 74.260);
6 JointPos j4=new JointPos(-89.575, -80.276, 102.713, -116.302, -91.284, 74.267);
7 DescPose offset_pos=new DescPose(0, 0, 0, 0, 0, 0);
8 ExaxisPos epos=new ExaxisPos(0, 0, 0, 0);
9
10 int tool = 0;
11 int user = 0;
12 double vel = 100.0;
13 double acc = 100.0;
14 double ovl = 100.0;
15 double blendT = -1.0;
16 int flag = 0;
17
18 int err1 = robot.MoveJ(j1, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
19 System.out.println("movej errcode:"+ err1);
20 robot.SplineStart();
21 robot.SplinePTP(j1, tool, user, vel, acc, ovl);
22 robot.SplinePTP(j2, tool, user, vel, acc, ovl);
23 robot.SplinePTP(j3, tool, user, vel, acc, ovl);
24 robot.SplinePTP(j4, tool, user, vel, acc, ovl);
25 robot.SplineEnd();
26 return 0;
27}
4.41. Inizio nuovo movimento spline
1/**
2* @brief Inizio nuovo movimento spline
3* @param [in] type 0-Transizione circolare, 1-I punti dati sono punti di percorso
4* @param [in] averageTime Tempo medio di transizione globale (ms) (10 ~ ), predefinito 2000
5* @return Codice di errore
6*/
7int NewSplineStart(int type, int averageTime);
4.42. Punto di comando spline
1/**
2* @brief Aggiunge un punto di comando per il movimento spline
3* @param [in] joint_pos Posizione giunto target, unità deg
4* @param [in] desc_pos Posa cartesiana target
5* @param [in] tool Numero del sistema di coordinate dello strumento, intervallo [0~14]
6* @param [in] user Numero del sistema di coordinate del pezzo, intervallo [0~14]
7* @param [in] vel Percentuale di velocità, intervallo [0~100]
8* @param [in] acc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
9* @param [in] ovl Fattore di scala della velocità, intervallo [0~100]
10* @param [in] blendR [-1.0]-Movimento fino alla posizione (bloccante), [0~1000.0]-Raggio di smoothing (non bloccante), unità mm
11* @param [in] lastFlag Indica se è l'ultimo punto, 0-No, 1-Sì
12* @return Codice di errore
13*/
14int NewSplinePoint(JointPos joint_pos, DescPose desc_pos, int tool, int user, double vel, double acc, double ovl, double blendR, int lastFlag);
4.43. Punto di comando spline (calcolo cinematico inverso automatico)
Nuovo nella versione Java: SDK-v1.0.8-3.8.5
1/**
2* @brief Punto di comando spline (calcolo cinematico inverso automatico)
3* @param [in] desc_pos Posa cartesiana target
4* @param [in] tool Numero del sistema di coordinate dello strumento, intervallo [0~14]
5* @param [in] user Numero del sistema di coordinate del pezzo, intervallo [0~14]
6* @param [in] vel Percentuale di velocità, intervallo [0~100]
7* @param [in] acc Percentuale di accelerazione, intervallo [0~100], non ancora disponibile
8* @param [in] ovl Fattore di scala della velocità, intervallo [0~100]
9* @param [in] blendR [-1.0]-Movimento fino alla posizione (bloccante), [0~1000.0]-Raggio di smoothing (non bloccante), unità mm
10* @param [in] lastFlag Indica se è l'ultimo punto, 0-No, 1-Sì
11* @param [in] config Configurazione dello spazio dei giunti per la soluzione inversa, [-1]-Calcolo di riferimento alla posizione attuale dei giunti, [0~7]-Soluzione basata su una specifica configurazione dello spazio dei giunti
12* @return Codice di errore
13*/
14int NewSplinePoint(DescPose desc_pos, int tool, int user, double vel, double acc, double ovl, double blendR, int lastFlag,int config)
4.44. Fine nuovo movimento spline
1/**
2* @brief Fine nuovo movimento spline
3* @return Codice di errore
4*/
5int NewSplineEnd();
4.45. Esempio di codice per il nuovo movimento spline
1public static int TestNewSpline(Robot robot)
2{
3 JointPos j1=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
4 DescPose desc_pos1=new DescPose(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
5 DescPose desc_pos2=new DescPose(-321.222, 185.189, 335.520, -179.030, -1.284, -29.869);
6 DescPose desc_pos3=new DescPose(-327.622, 402.230, 320.402, -178.067, 2.127, -46.207);
7 DescPose desc_pos4=new DescPose(-104.066, 544.321, 327.023, -177.715, 3.371, -73.818);
8 DescPose desc_pos5=new DescPose(-33.421, 732.572, 275.103, -177.907, 2.709, -79.482);
9 DescPose offset_pos=new DescPose(0, 0, 0, 0, 0, 0);
10 ExaxisPos epos=new ExaxisPos(0, 0, 0, 0);
11
12
13 int tool = 0;
14 int user = 0;
15 double vel = 100.0;
16 double acc = 100.0;
17 double ovl = 100.0;
18 double blendT = -1.0;
19 int flag = 0;
20
21
22 int err1 = robot.MoveJ(j1, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
23 System.out.println("movej errcode:"+ err1);
24 robot.NewSplineStart(1, 2000);
25 robot.NewSplinePoint(desc_pos1, tool, user, vel, acc, ovl, -1, 0,-1);
26 robot.NewSplinePoint(desc_pos2, tool, user, vel, acc, ovl, -1, 0,-1);
27 robot.NewSplinePoint(desc_pos3, tool, user, vel, acc, ovl, -1, 0,-1);
28 robot.NewSplinePoint(desc_pos4, tool, user, vel, acc, ovl, -1, 0,-1);
29 robot.NewSplinePoint(desc_pos5, tool, user, vel, acc, ovl, -1, 0,-1);
30 robot.NewSplineEnd();
31 return 0;
32}
4.46. Interruzione movimento
1/**
2* @brief Interruzione movimento
3* @return Codice di errore
4*/
5int StopMotion();
4.47. Pausa movimento
1/**
2* @brief Pausa movimento
3* @return Codice di errore
4*/
5int PauseMotion();
4.48. Ripresa movimento
1/**
2* @brief Ripresa movimento
3* @return Codice di errore
4*/
5int ResumeMotion();
4.49. Esempio di codice per pausa, ripresa, interruzione movimento
1public static int TestPause(Robot robot)
2{
3 JointPos j1=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
4 JointPos j5=new JointPos(-95.228, -54.621, 73.691, -112.245, -91.280, 74.268);
5 DescPose desc_pos1=new DescPose(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
6 DescPose desc_pos5=new DescPose(-33.421, 732.572, 275.103, -177.907, 2.709, -79.482);
7 DescPose offset_pos=new DescPose(0, 0, 0, 0, 0, 0);
8 ExaxisPos epos=new ExaxisPos(0, 0, 0, 0);
9
10 int tool = 0;
11 int user = 0;
12 double vel = 100.0;
13 double acc = 100.0;
14 double ovl = 100.0;
15 double blendT = -1.0;
16 int flag = 0;
17
18 robot.SetSpeed(20);
19 int rtn=-1;
20 rtn = robot.MoveJ(j1, desc_pos1, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
21 rtn = robot.MoveJ(j5, desc_pos5, tool, user, vel, acc, ovl, epos, 1, flag, offset_pos);
22 robot.Sleep(1000);
23 robot.PauseMotion();
24
25 robot.Sleep(1000);
26 robot.ResumeMotion();
27
28 robot.Sleep(1000);
29 robot.StopMotion();
30
31 robot.Sleep(1000);
32
33 return 0;
34}
4.50. Inizio offset globale dei punti
1/**
2* @brief Inizio offset globale dei punti
3* @param [in] flag 0-Offset nel sistema di coordinate base o del pezzo, 2-Offset nel sistema di coordinate dello strumento
4* @param [in] offset_pos Quantità di offset della posa
5* @return Codice di errore
6*/
7int PointsOffsetEnable(int flag, DescPose offset_pos);
4.51. Fine offset globale dei punti
1/**
2* @brief Fine offset globale dei punti
3* @return Codice di errore
4*/
5int PointsOffsetDisable();
4.52. Esempio di codice per l’offset dei punti
1public static int TestOffset(Robot robot)
2{
3 JointPos j1=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
4 JointPos j2=new JointPos(-45.615, -106.172, 124.296, -107.151, -91.282, 74.255);
5
6 DescPose desc_pos1=new DescPose(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
7 DescPose desc_pos2=new DescPose(-321.222, 185.189, 335.520, -179.030, -1.284, -29.869);
8
9 DescPose offset_pos=new DescPose(0, 0, 0, 0, 0, 0);
10 DescPose offset_pos1=new DescPose(0, 0, 50, 0, 0, 0);
11 ExaxisPos epos=new ExaxisPos(0, 0, 0, 0);
12
13 int tool = 0;
14 int user = 0;
15 double vel = 100.0;
16 double acc = 100.0;
17 double ovl = 100.0;
18 double blendT = -1.0;
19 int flag = 0;
20
21 robot.SetSpeed(20);
22
23 robot.MoveJ(j1, desc_pos1, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
24 robot.MoveJ(j2, desc_pos2, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
25 robot.Sleep(1000);
26 robot.PointsOffsetEnable(0, offset_pos1);
27 robot.MoveJ(j1, desc_pos1, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
28 robot.MoveJ(j2, desc_pos2, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
29 robot.PointsOffsetDisable();
30
31 return 0;
32}
4.53. Inizio acquisizione in volo tramite AO del cabinet di controllo
1/**
2* @brief Inizio acquisizione in volo tramite AO del cabinet di controllo
3* @param [in] AONum Numero AO del cabinet di controllo
4* @param [in] maxTCPSpeed Valore massimo velocità TCP [1-5000mm/s], predefinito 1000
5* @param [in] maxAOPercent Percentuale AO corrispondente al valore massimo velocità TCP, predefinito 100%
6* @param [in] zeroZoneCmp Valore di compensazione zona morta percentuale AO, intero, predefinito 20%, intervallo [0-100]
7* @return Codice di errore
8*/
9int MoveAOStart(int AONum, int maxTCPSpeed, int maxAOPercent, int zeroZoneCmp);
4.54. Arresto acquisizione in volo tramite AO del cabinet di controllo
1/**
2* @brief Arresto acquisizione in volo tramite AO del cabinet di controllo
3* @return Codice di errore
4*/
5int MoveAOStop();
4.55. Inizio acquisizione in volo tramite AO dell’utensile
1/**
2* @brief Inizio acquisizione in volo tramite AO dell'utensile
3* @param [in] AONum Numero AO dell'utensile
4* @param [in] maxTCPSpeed Valore massimo velocità TCP [1-5000mm/s], predefinito 1000
5* @param [in] maxAOPercent Percentuale AO corrispondente al valore massimo velocità TCP, predefinito 100%
6* @param [in] zeroZoneCmp Valore di compensazione zona morta percentuale AO, intero, predefinito 20%, intervallo [0-100]
7* @return Codice di errore
8*/
9int MoveToolAOStart(int AONum, int maxTCPSpeed, int maxAOPercent, int zeroZoneCmp);
4.56. Arresto acquisizione in volo tramite AO dell’utensile
1/**
2* @brief Arresto acquisizione in volo tramite AO dell'utensile
3* @return Codice di errore
4*/
5int MoveToolAOStop();
4.57. Esempio di codice per l’acquisizione in volo tramite AO
1public static int TestMoveAO(Robot robot)
2{
3 JointPos j1=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
4 JointPos j2=new JointPos(-45.615, -106.172, 124.296, -107.151, -91.282, 74.255);
5
6 DescPose desc_pos1=new DescPose(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
7 DescPose desc_pos2=new DescPose(-321.222, 185.189, 335.520, -179.030, -1.284, -29.869);
8
9 DescPose offset_pos=new DescPose(0, 0, 0, 0, 0, 0);
10 DescPose offset_pos1=new DescPose(0, 0, 50, 0, 0, 0);
11 ExaxisPos epos=new ExaxisPos(0, 0, 0, 0);
12
13 int tool = 0;
14 int user = 0;
15 double vel = 20.0;
16 double acc = 20.0;
17 double ovl = 100.0;
18 double blendT = -1.0;
19 int flag = 0;
20
21 robot.SetSpeed(20);
22
23 robot.MoveAOStart(0, 100, 100, 20);
24 robot.MoveJ(j1, desc_pos1, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
25 robot.MoveJ(j2, desc_pos2, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
26 robot.MoveAOStop();
27
28 robot.Sleep(1000);
29
30 robot.MoveToolAOStart(0, 100, 100, 20);
31 robot.MoveJ(j1, desc_pos1, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
32 robot.MoveJ(j2, desc_pos2, tool, user, vel, acc, ovl, epos, blendT, flag, offset_pos);
33 robot.MoveToolAOStop();
34
35 return 0;
36}
4.58. Inizio filtraggio FIR per movimento Ptp
Cambiato nella versione Java: SDK-v1.0.5-3.8.2
1/**
2* @brief Inizio filtraggio FIR per movimento Ptp
3* @param [in] maxAcc Valore massimo di accelerazione (deg/s2)
4* @param [in] maxJek Valore massimo uniforme di strappo del giunto (deg/s3)
5* @return Codice di errore
6*/
7int PtpFIRPlanningStart(double maxAcc,double maxJek);
4.59. Fine filtraggio FIR per movimento Ptp
1/**
2* @brief Fine filtraggio FIR per movimento Ptp
3* @return Codice di errore
4*/
5int PtpFIRPlanningEnd();
4.60. Inizio filtraggio FIR per movimento LIN, ARC
1/**
2* @brief Inizio filtraggio FIR per movimento LIN, ARC
3* @param [in] maxAccLin Valore massimo di accelerazione lineare (mm/s2)
4* @param [in] maxAccDeg Valore massimo di accelerazione angolare (deg/s2)
5* @param [in] maxJerkLin Valore massimo di strappo lineare (mm/s3)
6* @param [in] maxJerkDeg Valore massimo di strappo angolare (deg/s3)
7* @return Codice di errore
8*/
9int LinArcFIRPlanningStart(double maxAccLin, double maxAccDeg, double maxJerkLin, double maxJerkDeg);
4.61. Fine filtraggio FIR per movimento LIN, ARC
1/**
2* @brief Fine filtraggio FIR per movimento LIN, ARC
3* @return Codice di errore
4*/
5int LinArcFIRPlanningEnd();
4.62. Esempio di codice per il filtraggio FIR
1public static int TestFIR(Robot robot)
2{
3 JointPos startjointPos=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
4 JointPos midjointPos=new JointPos(-45.615, -106.172, 124.296, -107.151, -91.282, 74.255);
5 JointPos endjointPos=new JointPos(-29.777, -84.536, 109.275, -114.075, -86.655, 74.257);
6
7 DescPose startdescPose=new DescPose(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
8 DescPose middescPose=new DescPose(-321.222, 185.189, 335.520, -179.030, -1.284, -29.869);
9 DescPose enddescPose=new DescPose(-487.434, 154.362, 308.576, 176.600, 0.268, -14.061);
10
11 ExaxisPos exaxisPos=new ExaxisPos(0, 0, 0, 0);
12 DescPose offdese=new DescPose(0, 0, 0, 0, 0, 0);
13
14 int rtn = robot.PtpFIRPlanningStart(1000, 1000);
15 robot.MoveJ(startjointPos, startdescPose, 0, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
16 robot.MoveJ(endjointPos, enddescPose, 0, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
17 robot.PtpFIRPlanningEnd();
18
19 robot.LinArcFIRPlanningStart(1000, 1000, 1000, 1000);
20 robot.MoveL(startjointPos, startdescPose, 0, 0, 100, 100, 100, -1, 0,exaxisPos, 0, 0, offdese, 1, 1);
21 robot.MoveC(midjointPos, middescPose, 0, 0, 100, 100, exaxisPos, 0, offdese, endjointPos, enddescPose, 0, 0, 100, 100, exaxisPos, 0, offdese, 100, -1);
22 robot.LinArcFIRPlanningEnd();
23 return 0;
24}
4.63. Attivazione smoothing accelerazione
Nuovo nella versione Java: SDK-v1.0.4-3.8.1
1/**
2 * @brief Attivazione smoothing accelerazione
3 * @param [in] saveFlag Indica se salvare dopo lo spegnimento
4 * @return Codice di errore
5 */
6public int AccSmoothStart(boolean saveFlag)
4.64. Disattivazione smoothing accelerazione
Nuovo nella versione Java: SDK-v1.0.4-3.8.1
1/**
2 * @brief Disattivazione smoothing accelerazione
3 * @param [in] saveFlag Indica se salvare dopo lo spegnimento
4 * @return Codice di errore
5 */
6public int AccSmoothEnd(boolean saveFlag)
4.65. Esempio di codice per lo smoothing dell’accelerazione
1public static int TestAccSmooth(Robot robot)
2{
3 JointPos startjointPos=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
4 JointPos endjointPos=new JointPos(-45.615, -106.172, 124.296, -107.151, -91.282, 74.255);
5
6 DescPose startdescPose=new DescPose(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
7 DescPose enddescPose=new DescPose(-321.222, 185.189, 335.520, -179.030, -1.284, -29.869);
8
9 ExaxisPos exaxisPos=new ExaxisPos(0, 0, 0, 0);
10 DescPose offdese=new DescPose(0,0,0,0,0,0);
11 int rtn = robot.AccSmoothStart(false);
12 robot.MoveJ(startjointPos, startdescPose, 0, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
13 robot.MoveJ(endjointPos, enddescPose, 0, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
14 rtn = robot.AccSmoothEnd(false);
15
16 robot.CloseRPC();
17 return 0;
18}
4.66. Attivazione velocità orientamento specificata
1/**
2 * @brief Attivazione velocità orientamento specificata
3 * @param [in] ratio Percentuale velocità orientamento [0-300]
4 * @return Codice di errore
5 */
6int AngularSpeedStart(int ratio)
4.67. Disattivazione velocità orientamento specificata
1/**
2 * @brief Disattivazione velocità orientamento specificata
3 * @return Codice di errore
4 */
5int AngularSpeedEnd();
4.68. Esempio di codice per la velocità orientamento specificata del robot
1public static int TestAngularSpeed(Robot robot)
2{
3 JointPos startjointPos=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
4 JointPos endjointPos=new JointPos(-45.615, -106.172, 124.296, -107.151, -91.282, 74.255);
5
6 DescPose startdescPose=new DescPose(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
7 DescPose enddescPose=new DescPose(-321.222, 185.189, 335.520, -179.030, -1.284, -29.869);
8
9 ExaxisPos exaxisPos=new ExaxisPos(0, 0, 0, 0);
10 DescPose offdese=new DescPose(0, 0, 0, 0, 0, 0);
11 int rtn = robot.AngularSpeedStart(50);
12 robot.MoveJ(startjointPos, startdescPose, 0, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
13 robot.MoveJ(endjointPos, enddescPose, 0, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
14 rtn = robot.AngularSpeedEnd();
15
16 return 0;
17}
4.69. Inizio protezione configurazioni singolari
1/**
2* @brief Inizio protezione configurazioni singolari
3* @param [in] protectMode Modalità protezione singolare, 0: Modalità giunto; 1-Modalità cartesiana
4* @param [in] minShoulderPos Intervallo di regolazione singolarità spalla (mm), predefinito 100
5* @param [in] minElbowPos Intervallo di regolazione singolarità gomito (mm), predefinito 50
6* @param [in] minWristPos Intervallo di regolazione singolarità polso (°), predefinito 10
7* @return Codice di errore
8*/
9int SingularAvoidStart(int protectMode, double minShoulderPos, double minElbowPos, double minWristPos);
4.70. Fine protezione configurazioni singolari
1/**
2* @brief Fine protezione configurazioni singolari
3* @return Codice di errore
4*/
5int SingularAvoidEnd();
4.71. Esempio di codice per la protezione configurazioni singolari del robot
1public static int TestAngularSpeed(Robot robot)
2{
3 JointPos startjointPos=new JointPos(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
4 JointPos endjointPos=new JointPos(-45.615, -106.172, 124.296, -107.151, -91.282, 74.255);
5
6 DescPose startdescPose=new DescPose(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
7 DescPose enddescPose=new DescPose(-321.222, 185.189, 335.520, -179.030, -1.284, -29.869);
8
9 ExaxisPos exaxisPos=new ExaxisPos(0, 0, 0, 0);
10 DescPose offdese=new DescPose(0, 0, 0, 0, 0, 0);
11 int rtn = robot.AngularSpeedStart(50);
12 robot.MoveJ(startjointPos, startdescPose, 0, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
13 robot.MoveJ(endjointPos, enddescPose, 0, 0, 100, 100, 100, exaxisPos, -1, 0, offdese);
14 rtn = robot.AngularSpeedEnd();
15
16 return 0;
17}
4.72. Svuota coda istruzioni movimento
1/**
2* @brief Svuota coda istruzioni movimento
3* @return Codice di errore
4*/
5public int MotionQueueClear()
4.73. Movimento verso punto di inizio linea di intersezione
1/**
2* @brief Movimento verso punto di inizio linea di intersezione
3* @param [in] mainPoint Pose cartesiane dei 6 punti insegnati del tubo principale
4* @param [in] mainExaxisPos Posizioni assi estesi dei 6 punti insegnati del tubo principale
5* @param [in] piecePoint Pose cartesiane dei 6 punti insegnati del tubo ausiliario
6* @param [in] pieceExaxisPos Posizioni assi estesi dei 6 punti insegnati del tubo di giunzione
7* @param [in] extAxisFlag Indica se attivare l'asse esteso; 0-Disattivato; 1-Attivato
8* @param [in] exaxisPos Posizione asse esteso del punto di partenza
9* @param [in] tool Numero del sistema di coordinate dello strumento
10* @param [in] wobj Numero del sistema di coordinate del pezzo
11* @param [in] vel Percentuale di velocità
12* @param [in] acc Percentuale di accelerazione
13* @param [in] ovl Fattore di scala della velocità
14* @param [in] oacc Fattore di scala dell'accelerazione
15* @param [in] moveType Tipo di movimento; 0-PTP; 1-LIN
16* @param [in] moveDirection Direzione del movimento; 0-Senso orario; 1-Senso antiorario
17* @param [in] offset Offset
18* @return Codice di errore
19*/
20public int MoveToIntersectLineStart(DescPose[] mainPoint, ExaxisPos[] mainExaxisPos, DescPose[] piecePoint, ExaxisPos[] pieceExaxisPos, int extAxisFlag, ExaxisPos exaxisPos, int tool, int wobj, double vel, double acc, double ovl, double oacc, int moveType, int moveDirection, DescPose offset);
4.74. Movimento linea di intersezione
1/**
2* @brief Movimento linea di intersezione
3* @param [in] mainPoint Pose cartesiane dei 6 punti insegnati del tubo principale
4* @param [in] mainExaxisPos Posizioni assi estesi dei 6 punti insegnati del tubo principale
5* @param [in] piecePoint Pose cartesiane dei 6 punti insegnati del tubo ausiliario
6* @param [in] pieceExaxisPos Posizioni assi estesi dei 6 punti insegnati del tubo di giunzione
7* @param [in] extAxisFlag Indica se attivare l'asse esteso; 0-Disattivato; 1-Attivato
8* @param [in] exaxisPos Posizioni assi estesi del punto di partenza
9* @param [in] tool Numero del sistema di coordinate dello strumento
10* @param [in] wobj Numero del sistema di coordinate del pezzo
11* @param [in] vel Percentuale di velocità
12* @param [in] acc Percentuale di accelerazione
13* @param [in] ovl Fattore di scala della velocità
14* @param [in] oacc Fattore di scala dell'accelerazione
15* @param [in] moveDirection Direzione del movimento; 0-Senso orario; 1-Senso antiorario
16* @param [in] offset Offset
17* @return Codice di errore
18*/
19public int MoveIntersectLine(DescPose[] mainPoint, ExaxisPos[] mainExaxisPos, DescPose[] piecePoint, ExaxisPos[] pieceExaxisPos, int extAxisFlag, ExaxisPos[] exaxisPos, int tool, int wobj, double vel, double acc, double ovl, double oacc, int moveDirection, DescPose offset);
4.75. Esempio di codice per il movimento linea di intersezione del robot
1public static void TestIntersectLineMove(Robot robot)
2{
3 DescPose[] mainPoint = new DescPose[6];
4 DescPose[] piecePoint = new DescPose[6];
5 ExaxisPos[] mainExaxisPos = new ExaxisPos[6];
6 ExaxisPos[] pieceExaxisPos = new ExaxisPos[6];
7 int extAxisFlag = 1;
8 ExaxisPos[] exaxisPos = new ExaxisPos[4];
9 DescPose offset =new DescPose(0.0, 2.0 ,30.0, -2.0, 0.0, 0.0 );
10 mainPoint[0] = new DescPose(490.004, -383.194, 402.735, -9.332, -1.528, 69.594);
11 mainPoint[1] = new DescPose(444.950, -407.117, 389.011, -5.546, -2.196, 65.279);
12 mainPoint[2] = new DescPose(445.168, -463.605, 355.759, -1.544, -10.886, 57.104);
13 mainPoint[3] = new DescPose(507.529, -485.385, 343.013, -0.786, -4.834, 61.799);
14 mainPoint[4] = new DescPose(554.390, -442.647, 367.701, -4.761, -10.181, 64.925);
15 mainPoint[5] = new DescPose(532.552, -394.003, 396.467, -13.732, -13.592, 67.411);
16 mainExaxisPos[0] = new ExaxisPos(-29.996, 0.000, 0.000, 0.000 );
17 mainExaxisPos[1] = new ExaxisPos(-29.996, 0.000, 0.000, 0.000 );
18 mainExaxisPos[2] = new ExaxisPos(-29.996, 0.000, 0.000, 0.000 );
19 mainExaxisPos[3] = new ExaxisPos(-29.996, 0.000, 0.000, 0.000 );
20 mainExaxisPos[4] = new ExaxisPos(-29.996, 0.000, 0.000, 0.000 );
21 mainExaxisPos[5] = new ExaxisPos(-29.996, 0.000, 0.000, 0.000 );
22 piecePoint[0] = new DescPose( 505.571, -192.408, 316.759, 38.098, 37.051, 139.447);
23 piecePoint[1] =new DescPose(533.837, -201.558, 332.340, 34.644, 42.339, 137.748);
24 piecePoint[2] =new DescPose(530.386, -225.085, 373.808, 35.431, 45.111, 137.560);
25 piecePoint[3] =new DescPose(485.646, -229.195, 383.778, 33.870, 45.173, 137.064);
26 piecePoint[4] =new DescPose(460.551, -212.161, 354.256, 28.856, 45.602, 135.930);
27 piecePoint[5] =new DescPose(474.217, -197.124, 324.611, 42.469, 41.133, 148.167);
28 pieceExaxisPos[0] = new ExaxisPos( -29.996, -0.000, 0.000, 0.000);
29 pieceExaxisPos[1] = new ExaxisPos( -29.996, -0.000, 0.000, 0.000);
30 pieceExaxisPos[2] = new ExaxisPos( -29.996, -0.000, 0.000, 0.000);
31 pieceExaxisPos[3] = new ExaxisPos( -29.996, -0.000, 0.000, 0.000);
32 pieceExaxisPos[4] = new ExaxisPos( -29.996, -0.000, 0.000, 0.000);
33 pieceExaxisPos[5] = new ExaxisPos( -29.996, -0.000, 0.000, 0.000);
34 exaxisPos[0] = new ExaxisPos(-29.996, -0.000, 0.000, 0.000);
35 exaxisPos[1] = new ExaxisPos(-44.994, 90.000, 0.000, 0.000);
36 exaxisPos[2] = new ExaxisPos(-59.992, 0.002, 0.000, 0.000);
37 exaxisPos[3] = new ExaxisPos(-44.994, -89.997, 0.000, 0.000);
38 int tool = 2;
39 int wobj = 0;
40 double vel = 100.0;
41 double acc = 100.0;
42 double ovl = 12.0;
43 double oacc = 12.0;
44 int moveType = 1;
45 int moveDirection = 1;
46 int rtn = robot.MoveToIntersectLineStart(mainPoint, mainExaxisPos, piecePoint, pieceExaxisPos, extAxisFlag, exaxisPos[0], tool, wobj, vel, acc, ovl, oacc, moveType, moveDirection, offset);
47 System.out.printf("MoveToIntersectLineStart rtn è %d\n", rtn);
48 rtn = robot.MoveIntersectLine(mainPoint, mainExaxisPos, piecePoint, pieceExaxisPos, extAxisFlag, exaxisPos, tool, wobj, vel, acc, 5.0, 5.0, moveDirection, offset);
49 System.out.printf("MoveIntersectLine rtn è %d\n", rtn);
50 robot.CloseRPC();
51 return ;
52}
4.76. Movimento Aereo Stazionario
1/**
2* @brief Movimento Aereo Stazionario
3* @return Codice di errore
4*/
5public int MoveStationary()
4.77. Esempio di Codice Movimento Aereo Stazionario
1public static void test_RecordandReplay(Robot robot)
2{
3 int rtn = robot.LaserSensorRecordandReplay(0, 10, 1, 0, 0.1, 1, 1, 10, 100);
4 System.out.printf("LaserSensorRecordandReplay rtn is %d\n", rtn);
5 rtn = robot.MoveStationary();
6 System.out.printf("MoveStationary rtn is %d\n", rtn);
7 rtn = robot.LaserSensorRecord1(0, 10);
8 System.out.printf("LaserSensorRecordandReplay rtn is %d\n", rtn);
9 robot.CloseRPC();
10 robot.Sleep(9999999);
11}