Lezione 3 di 18

RI Lezione 03

🤖 Robotica Industriale · III Anno · Lezione 03

Sistemi di riferimento 🧭

World Frame · Joint Frame · Tool Frame · User Frame · Prima cinematica inversa

⏱️ Durata stimata: 60–75 min 📊 Livello: Base (III anno) 🔧 Strumenti: Simulatore web · Jog JOINT e WORLD 📋 Prerequisiti: Lezioni 01–02

🎯 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:

Operatore al teach pendant
Vuole muovere il robot verso destra rispetto a sé. Ha bisogno di un sistema ancorato alla cella o al pezzo, non al robot.
Programmatore TP
Vuole che il robot avvicini l’utensile al pezzo lungo l’asse dell’utensile stesso. Ha bisogno di un sistema ancorato all’utensile.
Tecnico di manutenzione
Vuole portare un asse specifico in posizione nota. Ha bisogno di un sistema che parli di assi articolari, non cartesiani.
Sistema di visione
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.

📐 Convenzione FANUC ER-4iA
XIn avanti rispetto al robot (verso l’operatore)
YVerso sinistra del robot
ZVerso l’alto (verticale, positivo)
OrigineCentro del piede della base del robot
📍 A cosa serve
  • 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.

Esempio pratico: pinza pneumatica da 120 mm
Tool Frame = 0 (default)
TCP al centro del flange.
X[0,0,0] Y[0,0,0] Z[0,0,0]
Non rappresenta la punta reale della pinza.
→
Tool Frame 1 (pinza)
TCP spostato alla punta delle dita.
Z offset = 120 mm
Ora P[1] è la posizione reale di presa.
📌 Sul controller R-30iB Mate si possono definire fino a 10 Tool Frame (UT1–UT10). Si seleziona il Tool Frame attivo prima di programmare.

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
WorldCella / TerraNoRiferimento assoluto, jog cartesiano
JointGiunti del robotSì (è il robot)Jog asse per asse, home, sicurezza
ToolUtensile / FlangeSìAvvicinamento utensile, dispensing
UserPezzo / TavoloNoProgrammazione 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:

W
Yaw — Imbardata
Rotazione attorno all’asse Z del World Frame.
Come girare il volante di una nave.
Controllato principalmente da J1
P
Pitch — Beccheggio
Rotazione attorno all’asse Y del World Frame.
Come alzare o abbassare il muso di un aereo.
Controllato principalmente da J5
R
Roll — Rollio
Rotazione attorno all’asse X del World Frame.
Come far rotolare un barilotto sul suo asse.
Controllato principalmente da J6

Una posizione TCP completa sul controller R-30iB Mate si presenta così:

P[1] = {
  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.

Parte 1 — Jog in modalità JOINT
  1. Porta il robot in: J1=45°, J2=–30°, J3=60°, J4=0°, J5=–90°, J6=0°.
  2. Seleziona modalità JOINT. Aumenta J1 di +10°. Osserva: il robot ruota attorno alla sua base.
  3. Ora aumenta J2 di +10°. Il braccio superiore si inclina. La traiettoria del TCP è un arco di cerchio nello spazio.
Parte 2 — Jog in modalità WORLD
  1. Torna alla stessa configurazione di partenza: J1=45°, J2=–30°, J3=60°, J4=0°, J5=–90°, J6=0°.
  2. 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.
  3. Prova +Z: il TCP sale verticalmente. Il robot cambia configurazione per mantenere il TCP su una retta verticale.
📌 Differenza chiave: JOINT muove un asse → traiettoria TCP curva. WORLD muove il TCP in linea retta → più assi si muovono in coordinato. In applicazioni di precisione (saldatura, dispensing) si usa quasi sempre WORLD o TOOL.

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.

  1. Nel pannello IK del simulatore, inserisci queste coordinate target:
    X=300, Y=0, Z=300, W=180, P=0, R=0
  2. Premi MUOVI IK. Osserva il robot raggiungere la posizione target.
  3. Leggi i valori J1–J6 nel pannello posizione articolare. Annotali.
  4. Ora inserisci:
    X=200, Y=200, Z=250, W=180, P=0, R=0
  5. Premi MUOVI IK. Gli angoli J1–J6 sono diversi dai precedenti, ma il tool punta sempre verso il basso (W=180°).
  6. 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

Cosa hai imparato oggi:
  • 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