Corso di Robotica con Laboratorio (Parte 1 del corso di Automazione e Robotica con Laboratorio (12cfu))
Progetto Processing (A.A. 2025/2026)
Il lavoro da fare su Processing può essere portato avanti in gruppi composti da un massimo di 4 studenti.
Riportare come commento all'inizio dello sketch le istruzioni per l'uso del programma sviluppato e il nome degli studenti che hanno effettuato il lavoro.
Traccia del progetto
Utilizzando Processing, disegnare uno SCARA mobile, cioè uno SCARA montato a bordo di un uniciclo.
La pinza dello SCARA deve raggiungere un certo punto desiderato la cui posizione (xDes,yDes,zDes) può essere modificata da tastiera. Anche l'orientamento desiderato della pinza, definito come l'angolo φDes tra l'asse ortogonale alla pinza (cioè l'asse x4) e l'asse x0 deve essere modificabile da tastiera.
Se il punto è sufficientemente vicino, lo SCARA lo deve raggiungere senza che l'uniciclo si muova, altrimenti l'uniciclo dovrà avvicinarsi finché lo SCARA non riesce a raggiungere il punto richiesto.
Il movimento dell'uniciclo può inoltre essere bloccato con un comando da tastiera.
Quando il punto richiesto è troppo alto/basso, deve apparire una scritta a schermo che segnala questo fatto. La pinza dello SCARA deve però comunque portarsi sulla posizione (xDes,yDes) del punto desiderato (se raggiungibile) con l'orientamento desiderato φDes.
Analogamente, un'altra scritta deve apparire quando le coordinate (xDes,yDes) del punto richiesto non sono raggiungibili dallo SCARA (per esempio perché l'uniciclo è stato bloccato). In questo caso, anche se il punto non è raggiungibile, il braccio dello SCARA deve comunque distendersi nella direzione del punto desiderato, con la pinza all'altezza desiderata zDes (se possibile) e con l'orientamento φDes desiderato.
Le coordinate sono definite nel seguente modo: il piano dove si muove l'uniciclo
è il piano z = 0, con z crescente verso l'alto. L'origine sta al centro del piano,
con l'asse x verso destra e l'asse y verso l'interno dell'immagine, a formare una terna
ortonormale destra come quelle utilizzate a lezione (quindi diversa da quella usata
da Processing).
Prevedere la possibilità di modificare (nell'intervallo di stabilità) mediante tastiera la costante Kp della legge di controllo dello SCARA, il cui valore deve essere riportato a schermo.
Partire da questo sketch in cui già viene disegnato in ambiente 3D un uniciclo che insegue la proiezione sul piano xy del punto desiderato. Lo sketch disegna anche il piano d'appoggio con l'indicazione dei semiassi positivi x e y. Contiene inoltre già implementate le seguenti funzionalità che vanno lasciate invariate:
cambiamento altezza visuale scena (tasto u/U per alzare, tasto d/D per abbassare);
spostamento del punto desiderato (con le frecce DESTRA/SINISTRA si aumenta/diminuisce xDes, con le frecce SU/GIÙ si aumenta/diminuisce yDes, con i tasti +/- si aumenta/diminuisce zDes);
modifica dell'orientamento φDes desiderato dell'oggetto da prendere (con i tasti p/P e m/M), che sarà poi l'orientamento desiderato della pinza;
blocco (con il tasto s/S) e sblocco (con il tasto g/G) dell'uniciclo, con indicazione a schermo del fatto che l'uniciclo è bloccato (STOP) o libero (GO).
Nello sketch sono anche già inserite le dimensioni dello SCARA da applicare sull'uniciclo.
Completare quindi lo sketch con lo SCARA che dovrà inseguire il punto desiderato secondo le specifiche indicate sopra.
Scrivere a schermo anche le variabili di giunto dello SCARA, con la convenzione che θ1 è l'angolo tra il primo link dello SCARA e l'asse longitudinale dell'uniciclo. Le altre variabili di giunto sono come indicato a lezione (cioè come qui). In questo modo, quando θ1=θ2=0, il braccio è completamente disteso nella direzione di avanzamento dell'uniciclo.
Lo SCARA deve essere disegnato completo di pinza. Si consiglia a tal fine di avvalersi dello sketch SCARAconPINZA.pde considerato in una delle esercitazioni con Processing e disponibile in questo zip. L'apertura/chiusura della pinza non è tra le specifiche del progetto.
Nella cinematica inversa dello SCARA tenere anche conto del problema dovuto all'atan2 per evitare lo scatto di un giro in corrispondenza dei 180°, utilizzando lo stesso espediente introdotto nello sketch seguiCerchio.pde disponibile in questo zip.
TRASCURARE per semplicità il problema delle COLLISIONI tra i link del robot, che possono quindi sovrapporsi senza problemi.
Fare riferimento alle figure qui sotto per una migliore comprensione degli obiettivi da raggiungere. In Figura 1 lo SCARA ha raggiunto il punto desiderato (indicato da un cubetto bianco) che si trova tra le estremità della pinza con un orientamento desiderato φDes=90°.
In Figura 2 è stato cambiato l'orientamento desiderato della pinza portandolo a 51°.
In Figura 3 il punto desiderato è stato portato troppo in basso (zDes=2) e lo SCARA non riesce a raggiungerlo. Ciò viene segnalato in alto a sinistra mediante la scritta: "punto troppo alto/basso". La pinza si è comunque portata nella posizione (xDes,yDes) desiderata con l'orientamento φDes richiesto.
In Figura 4 l'uniciclo è stato bloccato (scritta STOP in alto a destra) e lo SCARA non ce la fa a raggiungere il punto desiderato: ciò viene evidenziato dalla scritta in alto a destra: "punto troppo distante". Come richiesto, lo SCARA distende comunque il braccio verso l'obiettivo anche se non riesce a raggiungerlo, portando la pinza all'altezza zDes desiderata con l'orientamento φDes impostato.