Complementi di robotica
Orari delle lezioni
Il lunedì inizia alle 11:15 e finisce alle 12:45. Il venerdì sarà dalle 10:15 alle 12:30 (con pausa). Lunedì e venerdì è Complementi, che è la parte di "teoria". Il giovedì è laboratorio e si parte dalle 16 fino al massimo le 18:30. Il laboratorio comprende circa 8 lezioni (4 introduttive e 4 di ROS). Non c'è un orario fisso di ricevimento, si può fare o con mail o alcuni minuti prima della lezione.
Modalità d'esame
L'esame è sostanzialmente un orale (3 domande per i 6 CFU di Complementi) e lo si può fare in maniera scorrelata da Laboratorio. Chi ha i 9 CFU, i due esami di Complementi e Laboratorio devono essere verbalizzati tutti insieme. Lab sono 3 CFU dove devi fare un progetto a coppie su svariati argomenti, l'esame consiste in una presentazione PowerPoint come una tesi triennale dove racconti il progetto. Ovviamente puoi fare revisioni esattamente come una tesi triennale. Puoi fare prima complementi, prima laboratorio a qualunque distanza temporale, ma se hai 6+3 puoi verbalizzare prima uno e poi l'altro, se ne hai 9 devi verbalizzarli assieme. Il laboratorio è un passa-non-passa, il voto lo dà complementi. Noi siamo 6+3 CFU. Per complementi si rimane nelle date di appello (8 l'anno), per la presentazione di laboratorio invece c'è molta libertà essendo una breve presentazione, in generale mandi una mail dove proponi una data. Il libro di riferimento è lo stesso di Robotica Industriale.
Obiettivi del corso
Di base studieremo la cosiddetta "Robotica Mobile", la differenza tra robotica industriale e complementi è che si passa dal manipolatore a base fissa (robot olonomo) a un robot mobile ovvero libero di muoversi nello spazio (privo di base fissa) e ci focalizzeremo sui sistemi anolonomi. Come struttura il corso è simile a industriale: là abbiamo studiato le 3 tematiche di cinetica, dinamica e controllo; questi sono i macrotemi che seguiremo anche in complementi per robot mobili. Potremo anche inserire alcune lezioni di assorbimento visivo.
Introduzione ai sistemi anolonomi
Un sistema anolonomo è un sistema (meccanico, dinamico…) soggetto a vincoli anolonomi. I vincoli olonomi sono vincoli sulla configurazione, ovvero descrivibili attraverso un legame fra le coordinate generalizzate. Un vincolo fra le coordinate (q̅ i) è un vincolo olonomo. Un vincolo anolonomo è invece un vincolo dove il tempo è esplicitamente coinvolto, quindi descrivibile come un legame tra i cosiddetti spostamenti elementari (o fra le velocità, ovvero le derivate delle qi).
Esempio 1: Manipolatore industriale
Un robot di questo tipo è un sistema olonomo perché non si ha legami tra spostamenti e velocità dei giunti del robot. Se prendo come coordinate generalizzate quelle dei giunti, allora ogni giunto è indipendente dall'altro. Quindi è olonomo perché non ho legami fra gli spostamenti elementari, ovvero non esistono legami fra le varie q̇ i, in questo caso posso eseguire qualsiasi spostamento del tipo: [ ]̲ = , … , 1. Per un sistema olonomo si ha coincidenza fra spostamenti virtuali e spostamenti elementari, quindi per ogni spostamento effettivo infinitesimo possibile vale: ̲ ̲ →.
Uno spostamento virtuale è uno spostamento infinitesimo compatibile con tutti i vincoli del sistema, nei sistemi anolonomi si intende compatibile sia coi vincoli olonomi che con quelli anolonomi.
Esempio 2: Sistema anolonomo
Un esempio classico è un robot su ruote, anche un'automobile è un robot mobile. Prendiamo un veicolo a 3 ruote che si muove sul piano del foglio (ruote poggiate sul piano del foglio), poniamoci un sistema di riferimento OXY fisso. Un corpo rigido sul piano è descrivibile con 3 coordinate (in quanto ha 3 GDL), quindi mi bastano 3 valori per descriverne la posa: prendiamo la x e la y di un suo punto e un angolo (l’angolo di sterzo θ).
È conoscenza comune che possiamo “parcheggiare” questa auto/robot in una qualsiasi configurazione , , (posa) arbitraria (terna desiderata). I robot mobili soggetti a vincoli anolonomi hanno però il problema della mobilità limitata. A livello qualitativo, immaginiamo di essere il veicolo, potenzialmente posso andare ovunque e pormi in qualunque posa. Se però volessi spostarmi parallelamente a me stesso non potrei (ovvero spostarmi lungo la direzione yv) e questo è dovuto al vincolo tra pneumatici e strada (il puro rotolamento).
Il punto è che la posa la posso raggiungere ma devo “fare manovra”. Il sistema anolonomo può raggiungere una posa desiderata ma non è libero di muoversi come vuole; quindi, il sistema in questo senso ha “mobilità ridotta/limitata”, nel caso del veicolo infatti le ruote non si spostano lateralmente.
L’impedita traslazione laterale si descrive tramite un’equazione di vincolo anolonomo che è una relazione tra gli spostamenti virtuali. Quindi non si ha un legame matematico tra le coordinate x, y e θ ma bensì è un legame matematico tra gli spostamenti (o se vuoi, tra le velocità). = , , .
Lo svantaggio della ridotta mobilità lo recuperiamo da un punto di vista del controllo, infatti per parcheggiare possiamo controllare (“comandare”) il sistema veicolo con due soli comandi (ingressi) che sono:
- La velocità di avanzamento;
- Velocità di sterzata.
Questo è positivo in quanto con solo questi due comandi raggiungiamo una posa desiderata in R3. Un veicolo su ruote infatti si comanda con i due ingressi di acceleratore e sterzo (due ingressi), quindi il vantaggio è che lavoriamo in uno spazio di configurazioni R3 ma per arrivare alla posa desiderata si lavora in uno spazio degli ingressi più piccolo. Il sistema anolonomo ha lo svantaggio di una mobilità ridotta ma il vantaggio di poter essere controllato con una quantità di ingressi minore della dimensione dello spazio delle configurazioni.
Per far muovere un manipolatore si doveva comandare ogni singolo giunto, ora il numero di ingressi è minore dello spazio di configurazione. Il SDR classico OXY è quello fisso dal quale osserviamo il robot, però si avrà spesso anche una terna solidale a esso che lo segue (la terna veicolo OvXvYv), tutte terne destrorse. Occhio, parlare di sistemi anolonomi non vuol dire avere SOLO vincoli anolonomi infatti possono comunque esservi vincoli olonomi.
Se prendiamo il veicolo come libero nello spazio (R6) posso passare a studiarlo su un piano (la strada) in quanto 3 coordinate vengono vincolate e da meccanica razionale sai che i vincoli che fanno passare da R3 a R6 sono proprio olonomi: ovvero vincolo lo spostamento lungo Z (non puoi entrare nel manto stradale né staccarti da esso), se poi ti interessa il moto piano allora blocchi le altre rotazioni (che sarebbero poi legate alle sospensioni, ovvero i moti di rollio, beccheggio e imbardata, dove l’imbardata è il θ quindi vincoliamo rollio e beccheggio). Noti che questi GDL vincolati sono proprio vincoli olonomi. La nostra auto ha 3 vincoli olonomi e un certo numero di anolonomi che impareremo a scrivere in futuro.
Ripasso di dinamica lagrangiana
Come si scrive l’equazione della dinamica di un sistema olonomo? Con le lagrangiane di seconda specie, uno strumento che però appunto funziona solo con sistemi olonomi. Dobbiamo quindi ripartire dall’equazione generale di D’Alambert – Lagrange che si può applicare a tutti i sistemi e quindi anche a quelli anolonomi.
∑( )− − = 0 ̇ =1
Nota che è come scrivere un prodotto scalare uguale a zero. Qua compaiono forze che moltiplicano spostamenti uguali a zero, quindi proprio un prodotto scalare. T è l’energia cinetica, δqi è l’i-esima componente di uno spostamento virtuale (ovvero compatibile con tutti i vincoli del sistema, quindi sia olonomi che anolonomi), qi è la coordinata e la sua derivata. Infine, Qi sono le forze, in particolare dentro Qi si hanno sia i contributi conservativi che non conservativi (questo perché si è usato una versione dell’equazione dove compare T), Qi è la componente lagrangiana delle forze attive che agiscono sul sistema (che compiono lavoro) espressa lungo la coordinata i-esima.
= +
Qua abbiamo solo forze esterne che compiono lavoro, in analisi dinamica prendiamo come attive le forze esterne (ovvero quelle che compiono lavoro). I contributi conservativi classici sono la forza peso la forza elastica ovvero quelle forze per cui possiamo definire un contributo energetico potenziale conservativo, ma ricorda che in Q vanno le FORZE, non le energie. Nella parte non conservativa si hanno gli attriti, le interazioni con l’ambiente (tipo forze vincolari esterne) e le forze/coppie motrici.
Un’altra versione dell’equazione si ha introducendo la funzione lagrangiana:
∑( ) = − → − − = 0 (1) ̇ =1 : .
Usiamo questa seconda versione che chiamiamo (1). Partendo da questa possiamo ipotizzare che i vari spostamenti virtuali δqi siano indipendenti allora ecco che la (1) deve valere per qualsiasi spostamento virtuale. Questo vuol dire che posso prendere uno spostamento virtuale (vettore) perfettamente a piacere: [̲ = , 0 … 0]1[0, ̲ = , 0 … 0]2[0 ] ̲ = … 0
E l’equazione deve valere per qualunque set di spostamenti virtuali, quindi nell’ipotesi che gli spostamenti siano indipendenti le equazioni diventano di seconda specie. Nell’ipotesi che δqi siano indipendenti si arriva a:
∀ = 1,2 … → − = ̇
Che è l’equazione di Eulero-Lagrange di II specie, e sono tante quante sono le coordinate lagrangiane. Ma l’ipotesi di lavoro è che tutti gli spostamenti elementari siano indipendenti ovvero che il sistema sia olonomo. Quindi le equazioni di Lagrange di II specie valgono solo per sistemi olonomi (ovvero spostamenti tra di loro indipendenti).
Ma nella robotica mobile si studiano spostamenti dipendenti tra loro, quindi dobbiamo dimenticare quella di II specie e infatti useremo direttamente la (1). Ma come la usiamo? Nel caso anolonomo le δqi NON sono indipendenti proprio a causa dei vincoli anolonomi. In particolare, si adotta sempre la stessa procedura per utilizzare la (1). Essa consiste in:
- Scrivere l’equazione del vincolo anolonomo; così da vedere se il sistema è davvero anolonomo e per vedere i legami tra le δqi.
- Si sceglie un sottoinsieme di δqi che saranno gli spostamenti/variabili INDIPENDENTI;
- Si scrivono le restanti δqj in funzione di quelle scelte come indipendenti mediante legami lineari, questi legami lineari che sussistono tra le δqi indipendenti e dipendenti sono vincoli “Pfuffiani”;
- Si sostituisce queste relazioni nella (1). ̲
In particolare, che vuol dire? Abbiamo preso il vettore di spostamenti virtuali dove, per esempio, k componenti sono state scelte come indipendenti. In seguito a ciò il vettore è stato riarrangiato così da portare in cima queste componenti indipendenti, in questo modo le prime k componenti sono scelte quelle prese come indipendenti, mentre da k+1 a n sono quelle dipendenti.̲ = [ , , … , , , … , ]⏟ ⏟1 2 k+1
Una volta che le dipendenti sono scritte in funzione delle indipendenti le prendo e le butto nella (1) = ( … ) ovvero l’equazione (che deve essere lineare tra gli spostamenti per scelta) +1 1 viene messa al posto della δqi. Per ricapitolare, si sostituisce le espressioni di δqk+1…δqn nella (1) così da ottenere una nuova forma dell’equazione dove gli spostamenti a moltiplicare sono solo k (cioè solo quelli indipendenti).
Mi trovo allora un’espressione riarrangiata della (1) dove invece di avere indice da 1 a n si ha indice da 1 a k con spostamenti tra loro indipendenti.
Ora facciamo lo stesso ragionamento di prima, se tutti gli spostamenti sono indipendenti allora posso annullare le parentesi; quindi, ricavo k equazioni che “somigliano” (ma non sono) all’equazione di Lagrange di II specie in quanto invece di averne n ne ho solo k, e che sono le nostre equazioni di moto. Vedremo che scrivere un legame pfauffiano è semplice (collasserà in una relazione tra velocità) e il difficile sarà capire se è un vincolo anolonomo o uno olonomo mascherato.
Esercizio
(Per casa): Scrivere l’equazione di moto (della dinamica) sia con T che con L per un semplice grave (corpo libero che cade sotto l’effetto di g dotato di massa m). Ovviamente il risultato finale deve essere lo stesso in entrambi i casi. Prendiamo una coordinata che ha l’origine a livello del piano e positiva verso l’alto. Scriviamo T sempre in funzione della coordinata, non ha senso (nel caso con T) scrivere V.
1/2 ∑ T = ∑ ̇ = , = + = − 1/2 = ̇ − → = ̈ ; = − → ̈ = − 2 ̇:
∑ T = − → ̈ = − ̈ = −.
Infatti, vedi che l’accelerazione che il corpo subisce è quella di gravità:
Definizione di strumenti e entità matematiche
- La varietà differenziabile ("Embedded Submanifold"):
ℝ È un sottoinsieme di definito da un numero p di equazioni (che sono p equazioni di vincolo olonomo). La varietà differenziabile è chiamata "M". Vuol dire che se noi partiamo da uno spazio delle configurazioni di dimensione n (nello spazio n=6 per esempio) allora la varietà avrà dimensione minore, ovvero un sottoinsieme appunto di.
∈ ℝ Le equazioni di vincolo vanno a definire la varietà. Chiamiamo x̲ un vettore che contiene le coordinate, ovvero la configurazione. Una volta che abbiamo le coordinate possiamo scrivere le equazioni di vincolo: (̲)ℎ = 0 1 … ℎ̲(̲)̲ ∈ ℝ { = 0(̲)ℎ = 0 Che è l’equazione di vincolo olonomo in forma vettoriale, una forma compatta che contiene p equazioni. Una volta scritte, affinché la varietà sia effettivamente differenziabile si fa l’ipotesi che il sottoinsieme varietà sia diffeomorfo rispetto a , con ℝ = −.
Definizione "Diffeomorfo"
Sussiste una relazione biunivoca/invertibile che lega il sottoinsieme a Rm. Stiamo dicendo che con l’introduzione di vincoli olonomi si riesce, partendo dallo spazio delle configurazioni, a definire un sottoinsieme che vedremo avere particolari proprietà. Si parte da uno spazio delle congiurazioni generico e se il set di vincoli olonomi è scritto bene allora riducono lo spazio delle configurazioni, e semplicemente non serve più lavorare in ma in con m=n-p. Per esempio, diventa possibile descrivere la posizione di un punto nello spazio con solo 2 coordinate. Nell’esempio dell’ape m=3, n=6 (ape nello spazio) e p=3.
Altra ipotesi: il set di vincoli olonomi dev’essere scritto bene, ovvero i p vincoli devono soddisfare la condizione per cui lo jacobiano delle nostre equazioni deve avere rango pieno.
ℎ̲ .̲(̲) (̲) (̲)ℎ ℎ ℎ1,1… 1,2 ( ) (̲) (̲)ℎ ̲ ℎ ℎℎ
̲(̲) 2,2…= ( ) ̲ 1,2 … … … …(̲) (̲) (̲)ℎ ℎ ℎ …[ ]1,2
La matrice jabobiana ha tante righe quanti sono i vincoli del sistema (p) e tante colonne quante sono le coordinate del sistema (n), inoltre vogliamo che sia full-rank.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Appunti Complementi di Robotica
-
Appunti Robotica
-
Appunti di Robotica industriale
-
Appunti Tecnologie per l'automazione e la robotica - 3/3