Corso di Robotica con Laboratorio (Parte 1 del corso di Automazione e Robotica con Laboratorio (12cfu))

---------------------------------------------------------

Progetto Processing (A.A. 2023/2024)

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 un robot SCARA e un robot UNICICLO che interagiscono nelle due modalità descritte qui di seguito. A tal fine si possono realizzare due sketch indipendenti (uno per ogni modalità di funzionamento) oppure fare tutto in un unico sketch. La prima scelta dovrebbe essere più semplice e viene valutata a pari merito con l'altra.

Modalità SCARA MASTER

Lo SCARA in questo caso viene operato in Cinematica Diretta, così come avviene nello sketch SCARA.pde visto a lezione e disponibile in questo file zip (quindi con i tasti da 1 a 3 si seleziona il giunto e con le frecce lo si fa muovere nei due versi). Lo SCARA può essere disegnato senza la pinza come appare nelle figure riportate qui sotto e come accade nello sketch SCARA.pde già citato.

L'uniciclo si muove sul piano (x,y) e deve inseguire la proiezione sul terreno dell'estremità dello SCARA (cioè la posizione desiderata dell'uniciclo è proprio sotto l'ultimo link dello SCARA). Tale proiezione deve essere raffigurata con un opportuno marker (per esempio un cubetto blu come si vede nelle prime due figure riportate sotto). Per raggiungere la posizione desiderata, l'uniciclo viene controllato con la legge di controllo nelle velocità, così come fatto nello sketch unicicloConControlloSuVel.pde visto a lezione e disponibile in questo file zip. Prevedere un tasto (per esempio 's' e/o 'S'), premuto il quale l'uniciclo si blocca e smette di inseguire l'obiettivo. L'uniciclo riprende l'inseguimento dell'obiettivo solo quando si preme un altro tasto (per esempio 'm' e/o 'M').

L'uniciclo può essere disegnato come un semplice parallelepipedo ma deve presentare un elemento che ne identifichi l'orientamento (per esempio la freccia verde visibile nelle figure sotto).

Disegnare il piano orizzontale su cui si muove l'uniciclo e su cui poggia lo SCARA (vedere figure sotto).

Durante tutta l'esecuzione del programma deve essere riportato a schermo il valore delle coordinate desiderate (xDesU, yDesU) e attuali (xU, yU) dell'uniciclo e quello delle variabili di giunto dello SCARA (scrivendo sempre gli angoli θ1 e θ2 tra -180o e 180o), nonché il giunto selezionato. Il sistema di riferimento per scrivere le coordinate dell'uniciclo è LA TERNA (x0,y0,z0) DELLO SCARA CONSIDERATA A LEZIONE (e non quella di Processing). In particolare, mentre l'asse x da considerare coincide con l'asse x di Processing, gli assi y e z della terna di riferimento coincidono rispettivamente con gli assi -z e -y di Processing. In questo modo il piano orizzontale dove si muove l'uniciclo è il piano (x,y).

COLLISIONI: nel caso l'uniciclo entri in collisione con lo SCARA (nel senso che la distanza tra il centro dell'uniciclo e il centro dello SCARA sia minore di un certo valore), fermarne il moto e cambiargli colore. Permettere però all'uniciclo di continuare a muoversi anche attraverso lo SCARA quando si tiene premuto un tasto opportuno.

Lasciare attiva la funzionalità presente nello sketch SCARA.pde che permette di modificare l'altezza della vista.

Modalità UNICICLO MASTER

In questo caso è l'uniciclo che decide il percorso e lo SCARA che lo segue.

L'uniciclo viene operato agendo sulle velocità v1 e v2 così come avviene nello sketch unicicloManuale.pde visto a lezione e disponibile in questo file zip. In questo sketch l'uniciclo viene comandato con le 4 frecce mediante le quali si modifica il valore delle due velocità v1 e v2 nei due versi. Prevedere un tasto (per esempio 's' e/o 'S') per fermare l'uniciclo (cioè per mettere istantaneamente a zero il valore di v1 e v2).

Lo SCARA deve risolvere un problema di Cinematica Inversa andandosi a posizionare con l'estremità inferiore del suo ultimo link pochi pixel sopra l'uniciclo (quindi anche il link prismatico del giunto 3 deve essere attuato per avvicinarsi in verticale all'uniciclo). Per il movimento dei giunti dello SCARA verso il loro angolo desiderato, servirsi della stessa legge di controllo proporzionale utilizzata per il manipolatore planare (si veda lo sketch planareConControllo.pde disponibile in questo file zip). In particolare includere le linee di codice che permettono allo SCARA di inseguire senza salti l'uniciclo, salti che, a causa dell'atan2, possono verificarsi quando l'angolo θ1 passa per i 180 gradi. La costante Kp che compare nella legge di controllo proporzionale (indicata di seguito con KpS) deve essere modificabile da tastiera (per esempio con i tasti '+' e '-') entro l'intervallo di stabilità, in modo da rendere più o meno veloce il movimento dello SCARA stesso.

Prevedere la possibilità di modificare da tastiera (per esempio con i tasti 'h' e 'H') l'altezza dell'uniciclo entro un range di valori finito. In questo caso, quando si varia l'altezza dell'uniciclo, lo SCARA deve azionare il suo ultimo giunto per fare in modo che l'estremità inferiore del suo ultimo link rimanga sempre a pochi pixel sopra l'uniciclo, così come mostrato nelle ultime due figure qui sotto.

Anche in questo caso l'uniciclo può essere disegnato come un semplice parallelepipedo ma deve presentare un elemento che ne identifichi l'orientamento.

Disegnare anche qui il piano orizzontale su cui si muove l'uniciclo e su cui poggia lo SCARA.

Durante tutta l'esecuzione del programma deve essere riportato a schermo il valore delle coordinate attuali (xU, yU) dell'uniciclo e quello delle variabili di giunto dello SCARA (scrivendo sempre gli angoli θ1 e θ2 tra -180o e 180o), nonché il valore della costante KpS. Anche qui il sistema di riferimento per scrivere le coordinate dell'uniciclo è LA TERNA (x0,y0,z0) DELLO SCARA CONSIDERATA A LEZIONE (e non quella di Processing).

TRASCURARE in questo caso il problema delle COLLISIONI tra lo SCARA e l'uniciclo.

Lasciare attiva la funzionalità presente nello sketch SCARA.pde che permette di modificare l'altezza della vista. Chiaramente, se si usano (come in unicicloManuale.pde) le frecce SU e GIÙ per variare la velocità v1 dell'uniciclo, scegliere un altro tasto per modificare l'altezza della vista.


Fare riferimento alle figure qui sotto per una migliore comprensione degli obiettivi da raggiungere. Le prime due figure si riferiscono alla modalità SCARA Master, in cui l'uniciclo insegue la proiezione sul terreno dell'estremità dello SCARA (indicata mediante un cubetto blu) operato in cinematica diretta. Nella seconda figura l'uniciclo è entrato in collisione con lo SCARA e per questo viene fermato e il suo colore diviene bianco. In questo caso, prevedere la possibilità di forzare l'uniciclo a proseguire il suo moto anche attraverso lo SCARA, tenendo premuto un tasto opportuno: l'uniciclo deve tornare del suo colore normale (rosso in questo caso) quando esce dalla zona di collisione. Le altre due figure si riferiscono alla modalità Uniciclo Master, in cui lo SCARA insegue l'uniciclo (operato direttamente mediante le velocità v1 e v2) e adegua l'altezza dell'ultimo link (azionando il giunto 3) in base all'altezza variabile dell'uniciclo (più alto nell'ultima figura).