RI Lezione 03
🤖 Robotica Industriale · III Anno · Lezione 03
Sistemi di riferimento 🧭
World Frame · Joint Frame · Tool Frame · User Frame · Prima cinematica inversa
🎯 Obiettivi della lezione
- Capire cosa è un sistema di riferimento e perché ne servono più di uno
- Distinguere World Frame, Joint Frame, Tool Frame e User Frame
- Spiegare cosa significano le coordinate W, P, R (orientamento) del TCP
- Confrontare il jog in modalità JOINT e in modalità WORLD nel simulatore
- Fare la prima prova di cinematica inversa: inserire una posizione cartesiana e osservare il robot muoversi
📖 1. Teoria
1.1 — Perché servono più sistemi di riferimento?
Un robot opera in uno spazio fisico 3D. Per descrivere posizioni e orientamenti in modo non ambiguo, si usano dei sistemi di riferimento cartesiani (detti anche frame): un’origine e tre assi ortogonali X, Y, Z. Il problema è che non esiste un unico sistema conveniente per tutti gli scopi:
Vuole muovere il robot verso destra rispetto a sé. Ha bisogno di un sistema ancorato alla cella o al pezzo, non al robot.
Vuole che il robot avvicini l’utensile al pezzo lungo l’asse dell’utensile stesso. Ha bisogno di un sistema ancorato all’utensile.
Vuole portare un asse specifico in posizione nota. Ha bisogno di un sistema che parli di assi articolari, non cartesiani.
Individua il pezzo rispetto alla telecamera. Serve trasformare queste coordinate nel frame del robot per poter afferrare il pezzo.
Il controller FANUC gestisce questi scenari tramite quattro frame principali, ognuno con il suo scopo preciso.
1.2 — World Frame (Frame Mondo)
Il World Frame è il sistema di riferimento assoluto della cella robotizzata. È fisso nello spazio — non si muove mai, indipendentemente da dove si trova il robot o come si muove.
| X | In avanti rispetto al robot (verso l’operatore) |
| Y | Verso sinistra del robot |
| Z | Verso l’alto (verticale, positivo) |
| Origine | Centro del piede della base del robot |
- Riferimento assoluto per tutte le posizioni P[ ]
- Jog in modalità WORLD (movimento lungo X, Y, Z fissi)
- Definizione dello User Frame (offset dal World)
- Coordinamento con altri robot o assi esterni nella cella
📌 Nel simulatore: di default il World Frame coincide con la base del robot. Nella realtà industriale può essere spostato — ad esempio al centro di un tavolo di lavoro o all’inizio di un nastro trasportatore — tramite la configurazione del controller.
1.3 — Joint Frame (Frame Articolare)
Il Joint Frame non è un sistema cartesiano, ma uno spazio a 6 dimensioni: ogni coordinata è l’angolo di un giunto (J1, J2, J3, J4, J5, J6), espresso in gradi. È il modo più diretto per controllare il robot asse per asse.
✅ Quando usare JOINT
- Muovere il robot in posizioni di home o sicurezza
- Risolvere configurazioni vicine a singolarità
- Movimenti ampi dove la traiettoria cartesiana non importa
- Jog iniziale quando si prende familiarità col robot
❌ Quando NON usare JOINT
- Quando serve una traiettoria rettilinea precisa
- Quando si lavora vicino a ostacoli nella cella
- Durante avvicinamento a un pezzo da lavorare
- Applicazioni di saldatura, verniciatura, dispensing
1.4 — Tool Frame (Frame Utensile)
Il Tool Frame è un sistema di riferimento solidale all’utensile montato sul flange. La sua origine è il TCP, e i suoi assi si muovono insieme al robot. È definito come trasformazione rispetto al flange del robot.
X[0,0,0] Y[0,0,0] Z[0,0,0]
Non rappresenta la punta reale della pinza.
Z offset = 120 mm
Ora P[1] è la posizione reale di presa.
La definizione del Tool Frame avviene tramite il metodo dei 3 punti o dei 6 punti direttamente sul robot reale: il controller calcola automaticamente l’offset. Nel simulatore il Tool Frame è fisso al flange per semplicità didattica.
1.5 — User Frame (Frame Utente)
Lo User Frame è un sistema di riferimento definito dall’utente, ancorato a un oggetto fisico nella cella: il tavolo di lavoro, il pallet, il dispositivo di bloccaggio. Permette di programmare il robot in coordinate relative al pezzo invece che alla base del robot.
💡 Il vantaggio killer dello User Frame: se sposti il dispositivo di bloccaggio di 50 mm, non devi rifare il teach di tutti i punti. Basta aggiornare l’offset dello User Frame e tutti i P[ ] si spostano automaticamente. Nelle celle industriali questo risparmia ore di riprogrammazione.
| Frame | Ancorato a | Si muove con il robot? | Uso tipico |
|---|---|---|---|
| World | Cella / Terra | No | Riferimento assoluto, jog cartesiano |
| Joint | Giunti del robot | Sì (è il robot) | Jog asse per asse, home, sicurezza |
| Tool | Utensile / Flange | Sì | Avvicinamento utensile, dispensing |
| User | Pezzo / Tavolo | No | Programmazione relativa al pezzo |
1.6 — Orientamento del TCP: W, P, R
La posizione del TCP è descritta da 6 valori: X, Y, Z (posizione) e W, P, R (orientamento). W, P, R sono angoli di Eulero — descrivono come è ruotato il TCP rispetto al World Frame:
Come girare il volante di una nave.
Come alzare o abbassare il muso di un aereo.
Come far rotolare un barilotto sul suo asse.
Una posizione TCP completa sul controller R-30iB Mate si presenta così:
GP1:
UF : 0 // User Frame 0 (World)
UT : 1 // Tool Frame 1
X = 300.000 mm
Y = 0.000 mm
Z = 400.000 mm
W = 180.000 deg // tool punta verso il basso
P = 0.000 deg
R = 0.000 deg
}
✅ Configurazione comune: W=180°, P=0°, R=0° è la configurazione con il tool che punta verticalmente verso il basso — la più usata in applicazioni pick & place. Nel simulatore è la posizione di default con J5 a –90°.
💻 2. Esempi guidati nel simulatore
Esempio A — JOINT vs WORLD: la differenza in pratica
Questo è l’esempio più importante della lezione. Eseguilo con attenzione.
- Porta il robot in: J1=45°, J2=–30°, J3=60°, J4=0°, J5=–90°, J6=0°.
- Seleziona modalità JOINT. Aumenta J1 di +10°. Osserva: il robot ruota attorno alla sua base.
- Ora aumenta J2 di +10°. Il braccio superiore si inclina. La traiettoria del TCP è un arco di cerchio nello spazio.
- Torna alla stessa configurazione di partenza: J1=45°, J2=–30°, J3=60°, J4=0°, J5=–90°, J6=0°.
- Seleziona modalità WORLD. Usa il controllo +X. Osserva: il TCP si muove in linea retta lungo l’asse X del World Frame. Tutti e 6 gli assi si muovono contemporaneamente per mantenere la traiettoria rettilinea.
- Prova +Z: il TCP sale verticalmente. Il robot cambia configurazione per mantenere il TCP su una retta verticale.
Esempio B — Prima cinematica inversa: inserimento coordinate
Finora hai sempre mosso gli assi per portare il TCP dove vuoi. Ora facciamo l’inverso: diciamo al simulatore dove vogliamo il TCP e lui calcola quali angoli servono.
- Nel pannello IK del simulatore, inserisci queste coordinate target:
X=300, Y=0, Z=300, W=180, P=0, R=0 - Premi MUOVI IK. Osserva il robot raggiungere la posizione target.
- Leggi i valori J1–J6 nel pannello posizione articolare. Annotali.
- Ora inserisci:
X=200, Y=200, Z=250, W=180, P=0, R=0 - Premi MUOVI IK. Gli angoli J1–J6 sono diversi dai precedenti, ma il tool punta sempre verso il basso (W=180°).
- Prova a inserire un punto fuori dal volume di lavoro, ad esempio:
X=600, Y=0, Z=0
Il simulatore non si muove o segnala errore. Questo è il confine del volume di lavoro.
✅ Cosa hai appena fatto: hai usato la cinematica inversa del simulatore — lo stesso algoritmo che il controller R-30iB Mate esegue ogni volta che esegui un movimento L o C in un programma TP. Nella programmazione reale non inserisci le coordinate a mano: le “insegni” portando fisicamente il robot nella posizione con il teach pendant e premendo SHIFT+POINT.
🏋️ 3. Esercizi
🟢 Esercizio 1 — Tabella dei frame (Facile)
Sul quaderno disegna uno schema della cella robotizzata con il FANUC ER-4iA. Indica con frecce e label:
— l’origine e gli assi del World Frame
— la posizione del TCP in una configurazione a piacere
— dove si troverebbe l’origine di uno User Frame se il tavolo di lavoro fosse a X=300, Y=0, Z=0
Non servono misure precise: l’obiettivo è capire la relazione spaziale tra i frame.
🔵 Esercizio 2 — Confronto JOINT/WORLD (Medio)
Parti da: J1=0°, J2=–45°, J3=90°, J4=0°, J5=–45°, J6=0°.
Sequenza A (JOINT): muovi solo J2 da –45° a +45°. Osserva e descrivi la traiettoria del TCP nello spazio 3D.
Sequenza B (WORLD): riparti dalla stessa posizione. Muovi il TCP lungo +Z di circa 150 mm usando il jog WORLD. Quanti assi si muovono? Leggi i valori J1–J6 prima e dopo.
Scrivi: in quale scenario preferiresti usare JOINT e in quale WORLD?
🟠 Esercizio 3 — Orientamento W, P, R (Medio)
Usa la cinematica inversa (pannello IK) per raggiungere il punto X=300, Y=0, Z=300. Poi modifica solo i valori di orientamento e osserva come cambia la postura del polso:
a) W=180°, P=0°, R=0° → tool punta verso il basso. Descrivi la configurazione.
b) W=180°, P=45°, R=0° → come cambia l’orientamento del tool?
c) W=180°, P=0°, R=90° → come cambia?
d) W=90°, P=0°, R=0° → come cambia?
Per ogni configurazione annota i valori di J4, J5, J6. Cosa noti?
🟣 Esercizio 4 — Mappa del volume di lavoro (Difficile)
Usando il pannello IK con W=180°, P=0°, R=0°, trova i limiti del volume di lavoro dell’ER-4iA sui 4 punti cardinali e in verticale:
— X massimo (Y=0, Z=300): qual è il massimo X raggiungibile?
— X minimo (Y=0, Z=300): qual è il minimo X (il robot può andare “dietro di sé”)?
— Z massimo (X=200, Y=0): qual è il massimo Z raggiungibile?
— Z minimo (X=200, Y=0): il robot può scendere sotto la quota della sua base?
Disegna una sezione verticale del volume di lavoro (vista laterale) riportando i punti trovati. Confronta con il datasheet ufficiale FANUC ER-4iA.
❓ 4. Quiz di verifica
1. In modalità jog WORLD, quanti assi si muovono quando sposti il TCP lungo +X?
Mostra risposta
Dipende dalla configurazione del robot, ma tipicamente si muovono più assi contemporaneamente (da 2 a 6). Il controller calcola in tempo reale la cinematica inversa differenziale per mantenere il TCP su una traiettoria rettilinea lungo X mentre tutti gli assi necessari si coordinano. Questo è molto diverso dal jog JOINT dove muove solo 1 asse alla volta.
2. Hai spostato il dispositivo di bloccaggio di 30 mm lungo X. Come aggiorni i programmi esistenti senza rifare il teach di tutti i punti?
Mostra risposta
Aggiornando l’offset dello User Frame: sposti l’origine dello User Frame di +30 mm lungo X. Tutti i punti P[ ] registrati in quel User Frame si spostano automaticamente di 30 mm senza modificare il programma TP. Questa è una delle funzioni più potenti del sistema di frame nel controller FANUC.
3. W=180°, P=0°, R=0° significa che il tool punta verso il basso. Perché W=180° e non W=0°?
Mostra risposta
Perché gli angoli W, P, R sono rotazioni rispetto al World Frame con la convenzione Z-Y-X. Con W=0°, P=0°, R=0° l’asse Z del tool è allineato con l’asse Z del World Frame, cioè punta verso l’alto. Una rotazione di 180° attorno a W (asse Z) porta l’asse Z del tool a puntare verso il basso. Questa è la configurazione naturale per un pick & place verticale.
4. Qual è la differenza tra Tool Frame e User Frame?
Mostra risposta
Il Tool Frame è solidale all’utensile e si muove con il robot: definisce dove si trova il TCP rispetto al flange. Lo User Frame è fisso nella cella e non si muove con il robot: definisce un sistema di riferimento ancorato al pezzo o al tavolo di lavoro. Entrambi sono offset rispettivamente al flange (Tool Frame) e al World Frame (User Frame).
5. Inserisci X=600, Y=0, Z=0 nel pannello IK e il simulatore non si muove. Perché? Come potresti verificare se il punto è realmente fuori dal volume di lavoro?
Mostra risposta
Il punto è fuori dal volume di lavoro raggiungibile: la distanza orizzontale dalla base è 600 mm, superiore allo sbraccio massimo di 550 mm dell’ER-4iA. Per verificarlo: calcola √(X²+Y²) = √(600²+0²) = 600 mm > 550 mm. La cinematica inversa non ha soluzione reale per questo punto, quindi il controller (e il simulatore) non eseguono il movimento. Sul robot reale apparirebbe un allarme MOTN-023 “Position not reachable”.
📚 Riepilogo della lezione
- Il World Frame è fisso nella cella; il Joint Frame descrive gli angoli articolari; il Tool Frame è solidale all’utensile; lo User Frame è ancorato al pezzo
- W, P, R sono gli angoli di orientamento del TCP: Yaw (Z), Pitch (Y), Roll (X)
- W=180°, P=0°, R=0° è la configurazione standard con tool verso il basso
- Jog JOINT → 1 asse, traiettoria TCP curva · Jog WORLD → più assi coordinati, TCP in linea retta
- La cinematica inversa calcola J1–J6 a partire da X, Y, Z, W, P, R — il controller lo fa automaticamente ad ogni movimento
Prossima lezione →
Lezione 04 — Jog manuale: assi e cartesiano
Differenze pratiche tra JOINT, WORLD e TOOL nel simulatore.
Movimenti sicuri, posizione di home e prime regole operative.
© Prof. D. Bertolino · Robotica Industriale FANUC ER-4iA · Lezione 03 di 18