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

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

Progetto Processing (A.A. 2024/2025)

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 SCORBOT che insegue un UNICICLO comandato manualmente agendo sulle velocità v1 e v2, come nello sketch unicicloManuale.pde visto a lezione. La posa dell'uniciclo non è misurata direttamente ma può essere stimata solo tramite una ricostruzione odometrica che, pur essendo inizializzata nel valore corretto, non fornisce una stima attendibile a causa delle perturbazioni sui raggi delle ruote e sulla loro distanza.
Lo SCORBOT deve risolvere un problema di Cinematica Inversa andando a posizionare l'estremità della pinza ad un'altezza di pochi pixel (per esempio 10) sopra la posizione stimata dell'uniciclo con un orientamento definito da un angolo di beccheggio desiderato βd di 90 gradi e un angolo di rollio desiderato ωd tale che l'asse x5 della pinza sia diretto nel verso stimato di avanzamento dell'uniciclo. La pinza va disegnata come un semplice parallelepipedo con lati non tutti uguali tra loro in modo che se ne comprenda l'orientamento.

A tal fine si consiglia di partire da questo sketch realizzato per un robot SCARA, apportandovi le seguenti modifiche:
1) Assegnare le velocità comandate v1com e v2com (vedi righe 128-129) scegliendo le costanti cij alle righe 106-111 (ma anche ogni volta che si modifica da tastiera la perturbazione sui parametri dell'uniciclo) in modo tale che, quando è attiva la compensazione (cioè quando la variabile COMPENSO è true), le velocità reali v1r e v2r ottenute coincidano con quelle desiderate v1des e v2des. A tal fine seguire le indicazioni riportate in questo documento.
2) Sostituire lo SCARA con uno SCORBOT. Le dimensioni dello SCORBOT possono essere scelte a piacere, purché compatibili con l'inseguimento dell'uniciclo.

Lasciare attive le varie scelte e funzionalità presenti nello sketch, in particolare:
a) la possibilità di modificare le velocità v1des e v2des dell'uniciclo con le frecce e di fermarlo istantaneamente premendo il tasto s/S;
b) la possibilità di modificare l'altezza della vista con i tasti u/U e d/D;
c) la possibilità di modificare tra 0.7 e 1.3 i coefficienti pR, pL e pD delle perturbazioni sui raggi delle ruote e sulla loro distanza con i tasti q/Q, w/W, e/E, r/R, t/T e y/Y e di resettarli a uno (eliminando quindi la perturbazione) con il tasto SHIFT, riportandone anche il valore a schermo;
d) la possibilità di azzerare istantaneamente l'errore odometrico con il tasto k/K;
e) la possibilità di attivare (tasto 1) o disattivare (tasto 0) la compensazione dell'errore odometrico riportando a schermo quando è attiva (ON) e quando non lo è (OFF);
f) la scelta di utilizzare la legge di controllo proporzionale che fa muovere i giunti del robot verso il loro valore desiderato con la costante Kp che si può modificare da tastiera con i tasti '+' e '-' entro l'intervallo di stabilità (in modo da rendere più o meno reattivo il robot stesso);
g) la scelta del sistema di riferimento che deve essere come quello di base (x0,y0,z0) dello SCORBOT definito a lezione (e non quello di Processing);
h) la scrittura a schermo delle coordinate dell'uniciclo vero e di quello stimato nonché delle variabili di giunto del manipolatore (che nel caso dello SCORBOT sono 5 angoli anziché le 4 variabili attuali dello SCARA);
i) l'avviso che l'uniciclo è uscito dallo spazio di lavoro se lo SCORBOT non riesce a raggiungerlo.

TRASCURARE per semplicità il problema delle COLLISIONI tra lo SCORBOT e l'uniciclo nonché tra i vari link dello SCORBOT che possono quindi sovrapporsi senza problemi.