UNIVERSITÀ DEL SALENTO
Department of Innovation Engineering
Master’s degree in Computer Engineering
Robotica
Robotica
Dott. Marco Chiarelli
Academic Year 2016/2017 1
Quest’opera è stata rilasciata con licenza Creative Commons Attribuzione - Non commerciale
- Condividi allo stesso modo 3.0 Unported. Per leggere una copia della licenza visita il sito web
http://creativecommons.org/licenses/by-nc-sa/3.0/ o spedisci una lettera a Creative Commons,
171 Second Street, Suite 300, San Francisco, California, 94105, USA.
cbea
Questi appunti sono stati scritti utilizzando L TEX tramite la distribuzione MiKTeX
A http:
//miktex.org/
Come editor è stato usato TeXMaker 4.4.1 http://www.xm1math.net/texmaker/
Dei contenuti rielaborati in questa opera, salvo esplicitamente scritto il contrario, il prof.
Giovanni Indiveri non se ne assume alcuna responsabilità.
2
Sommario
Le seguenti dispense vogliono essere un resoconto didattico del corso di Robotica,
il quale docente è il prof. Giovanni Indiveri, presso il CdL in Ingegneria Infor-
matica at Unisalento. Il programma copre quattro macro-argomenti: le Rotazioni,
la Dinamica di Corpo Rigido, le tecniche ed algoritmi di pseudoinversione relative
all’Identificazione Parametrica ed infine la Teoria del Controllo di Sistemi Robotici.
Il seguente lavoro non ha la pretesa di sistematizzare in maniera esatta ciò che è
stato fatto a lezione, sebbene l’impostazione di base cerca di seguire fedelmente ogni
singola lezione che è stata erogata. Piuttosto cerca di raccogliere in maniera sintet-
ica ma al contempo esaustiva gli aspetti chiave della Teoria del Controllo applicata
ai Sistemi Robotici di vario tipo, e cerca di fare ordine tra una quantità non indiffer-
ente di nozioni, e soprattutto di dare un sussidio alla preparazione di un eventuale
esame didattico che richieda la conoscenza di queste nozioni e relativa applicazione
per quanto concerne il lato pratico. 3
Abstract
The following work wants to be a report about the Robotics course, whose teacher
is the prof. Giovanni Indiveri, at. Computer Engineering @ Unisalento. The pro-
gram covers four macro-topics: Rotations, Rigid Body Dynamics, pseudoinversion
Algorithms related to Parametric Identification and a final chapter about Control
Theory involved in Robotics Systems. It won’t systematize the entire work done at
lessons in an exact manner, despite the base setting tries to follow each lessons that
has been delivered to us. It tries to gather the key aspects of the Robotics, and to
reorder some difficult notions. Moreover it tries to give an help for the preparation
of an eventual didactic exam that requires the knowledge about these notions and
the related practical applications/homework/exercises.
4
Indice
Introduzione ii
0.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii
1 Robotics 1
1.1 NGC - Navigation, Guidance, Control . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Robotica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 PWM: Pulse Width Modulation . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.2 Robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Cinematica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.1 VETTORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Rotazioni 8
2.1 Matrici di ROTAZIONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1 Matrici simmetriche / antisimmetriche . . . . . . . . . . . . . . . . . . . . 12
2.1.2 Skew-symmetry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.3 Matrici ESPONENZIALI . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.4 Angoli di Eulero, YPR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.5 QUATERNIONI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.6 CINEMATICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.7 VETTORE VELOCITÀ ANGOLARE . . . . . . . . . . . . . . . . . . . . 22
2.1.8 RECAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.1.9 Legame tra Velocità Angolare e Parametri delle Rappresentazioni . . . . . 24
2.1.10 Legame generale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2 Cinematica elementare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.1 Manipolatori - Nomenclatura e convenzioni . . . . . . . . . . . . . . . . . 31
2.2.2 RECAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.2.3 Denavit - Hartenberg (DH) . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.2.4 Digressione sull’Osservabilità . . . . . . . . . . . . . . . . . . . . . . . . . 40
3 Dinamica di Corpo Rigido 41
3.1 Dinamica di Corpo Rigido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.1.1 Energia Cinetica e Momento d’Inerzia . . . . . . . . . . . . . . . . . . . . 42
3.1.2 Review sull’Accelerazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.1.3 Bilancio di Forze e Coppie Generalizzate . . . . . . . . . . . . . . . . . . . 45
3.2 Veicoli e Fenomeni Marini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.2.1 SCENARIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.2.2 Froude Number e Reynolds Number . . . . . . . . . . . . . . . . . . . . . 48
3.2.3 Masse Aggiunte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.2.4 Altri fenomeni di Forze Esterne . . . . . . . . . . . . . . . . . . . . . . . . 50
5
3.2.5 RECAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.2.6 DISTURBANCES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.2.7 Derivate Idrodinamiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4 Identificazione parametrica 58
4.1 Identificazione parametrica e pseudoinverse . . . . . . . . . . . . . . . . . . . . . 58
4.1.1 Identificazione parametrica . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.1.2 Schema di base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.1.3 Pseudoinverse (RANK - MAX - ALGORITHMS) . . . . . . . . . . . . . . 61
4.1.4 Pseudoinverse (NON-RANK-MAX ALGORITHMS) . . . . . . . . . . . . 64
4.2 Identificazione parametrica utilizzando metodi probabilistici . . . . . . . . . . . . 71
4.2.1 Approccio non Bayesiano - Maximum Likelihood . . . . . . . . . . . . . . 72
4.2.2 Approccio Bayesiano - Maximum A Posteriori . . . . . . . . . . . . . . . . 77
4.2.3 Minimi quadrati Ricorsivi - (R)WLS . . . . . . . . . . . . . . . . . . . . . 78
4.2.4 Filtro di Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.3 Pseudoinverse in generale / SVD . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.3.1 SVD con Matrice dei Pesi . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.3.2 Legame tra SVD e (D)WLS . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5 Teoria del Controllo 88
5.1 Controllo di manipolatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.1.1 Controllo cinematico di manipolatori . . . . . . . . . . . . . . . . . . . . . 88
5.1.2 TASK ROBOTICI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.1.3 Modello cinematico dei manipolatori . . . . . . . . . . . . . . . . . . . . . 91
5.1.4 Caso di assetto / posizione desiderata costante . . . . . . . . . . . . . . . 92
5.1.5 Considerazioni pratiche sulla soluzione generale . . . . . . . . . . . . . . . 93
5.1.6 Modello dinamico dei manipolatori . . . . . . . . . . . . . . . . . . . . . . 94
5.1.7 Ellissoidi di manipolabilità . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.1.8 RECAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.1.9 LAGRANGIAN EQUATION . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.1.10 Spazio dei Giunti e Spazio Operativo . . . . . . . . . . . . . . . . . . . . . 97
5.1.11 Digressioni sul motore in corrente continua ed ENCODER . . . . . . . . . 110
5.2 Controllo di Interazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
5.2.1 ROS - Robot Operating System . . . . . . . . . . . . . . . . . . . . . . . . 111
5.2.2 CONTROLLO DI CEDEVOLEZZA . . . . . . . . . . . . . . . . . . . . . 111
5.2.3 CONTROLLO DI IMPEDENZA . . . . . . . . . . . . . . . . . . . . . . . 112
5.3 Dinamica di corpo rigido applicata ad un sistema marino . . . . . . . . . . . . . 113
5.3.1 Allocatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Appendici 117
5.4 Varie dimostrazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
5.4.1 Dimostrazioni e Proprietà delle Rotazioni e dell’Antisimmetria . . . . . . 117
5.4.2 Dimostrazioni e Derivazioni sulla Teoria del Controllo . . . . . . . . . . . 118
5.5 Identificazione Parametrica: Pseudoinverse ed SVD . . . . . . . . . . . . . . . . . 121
5.5.1 Considerazioni sulle pseudoinverse . . . . . . . . . . . . . . . . . . . . . . 122
5.5.2 Considerazioni sull’Identificabilità . . . . . . . . . . . . . . . . . . . . . . 124
5.5.3 Calcoli di Media e Varianza della Stima MAP (DA VERIFICARE) . . . . 125
5.5.4 Prodotto Matrice Vettore e Matrice Matrice . . . . . . . . . . . . . . . . . 125
6
Ringraziamenti
Un grazie particolare va ai miei compagni
d’università, Dino Sbarro, Gabriele Accarino, Giampiero D’Autilia, Matteo Settembrini, Paolo
Panarese ed Emanuele Costa Cesari.
Introduzione
0.1 Overview
Il corso di Robotica è prettamente algoritmico. Riguarderà la Modellistica, la Cinematica,
Algoritmi di Stima (problemi di navigazione), controllo di Robot più o meno complicati. Algo-
ritmi realmente utili su un sistema reale. Testing su un ambiente di prototipazione. Simulazione
di scenari abbastanza complicati. Attività sperimentale su piattaforme serie reali.
Sistemi in HW per un sistema di controllo su un Segway (pendolo inverso), autostabilizzante.
Stima della POSA. Più concentrato sul filtraggio. Problema della Stima, della LOCALIZZA-
ZIONE. Robot che si muovono in ambienti sconosciuti. Problema fondamentale. Altre tecniche
{GPS,
utilizzate sono il filtro di Kalman, Louenberger: Accelerometri, Giroscopi}. Funzionano
meglio di Google Track ! Sugli Android si utilizza soltanto il GPS per favorire l’interoperabilità
e la portabilità. Sviluppo SW: progettazione analitica dei filtri. Sviluppo codice eventualmente
su queste piattaforme.
ISME - Integrated System for Marine Environment. Istituzione di cui UNISALENTO fa
parte. Centro interuniversitario. Network di diversi atenei che si occupa di Robotica Marina. Di
fatto sono tutti ricercatori o docenti di Automatica. Vengono da Pisa, Firenze, Genova, Sapienza
di Roma (da qualche mese). Tranne a Firenze, gli altri sono fondamentalmente tutti automatici.
Molte attività di ricerca sono svolte in questo ambito. Risultati ottenuti in laboratorio sono
quasi tutti fatti nell’ambito di ricerche ISME.
ROBOTICA: Come materia è una disciplina fortemente multidisciplinare. Il termine Ro-
botica è un contenitore molto ampio. Robot e veicoli subacquei. ROV: Remotely Operated
Vehicle. Robotica marina, applicazioni robotiche legate in qualche maniera al subacqueo. Il
corso non è al 100% incentrato sulla robotica marina, ma quasi. Robot che volano. Aeroplani,
quadricotteri, droni etc. I veicoli subacquei sono un po’ meno comuni. Elicottero: veicolo che
si utilizza per muoversi in regimi limitati a velocità basse. HOVERING: stare fermi. Aeroplani:
velocità alte su grandi distanze. Nell’ambito marino abbiamo le stesse classificazioni: I ROV
prediligono velocità basse, massima precisione ottenibile, mentre altri robot subacquei invece
prediligono grandi distanze e grandi velocità. Nei ROV troviamo il cosiddetto Tetere, cavo
che collega il ROV agli operatori. I veicoli evoluti hanno dei sistemi di comando abbastanza
complessi. Orientazione automatica, etc. Abbiamo i vari sottosistemi: Elettronico, Motore,
etc. fissati sul telaio, una struttura di metallo. Veicoli Open-Frame (a telaio aperto, lette-
ralmente). Caratteristica principale: motori aggiuntivi: si tratta di sistemi SOVRATTUATI,
ove abbiamo più motori di quelli strettamente necessari. Nello spazio libero abbiamo sei gradi
{(x,
di libertà: y, z), (θ , θ , θ )}. Bisogna produrre forze e coppie lungo i sei assi. Abbiamo
x y z
invece addirittura otto motori sovrattuati: più motori, attuatori rispetto a quelli che servono
indispensabilmente. Il BRACCIO ha sei gradi di libertà. Noi abbiamo sette motori, essendo
quindi dei sistemi sovrattuati.
Problema corrispondente nell’Algebra Lineare: sistemi con infinite soluzioni. Scegliamo
tra quelle infinite quelle che soddisfano qualche particolare criterio di ottimizzazione. INFI-
ii
NITE POSE sul braccio corrispondenti a quelle determinate dalla posa della mano. Quella
che corrisponde alla fatica minore da compiere, tipicamente è un esempio di un tale vincolo
sceglibile.
Tornando al ROV, sotto il mantello del motore troviamo l’ELICA. Quattro di questi motori
◦
sono nei quattro spigoli verticali. Gli altri quattro sono disposti a 45 orizzontalmente tra di
loro. Questi ultimi comandano la spinta in avanti: SURGE, che sarebbe la velocità in direzione
dell’asse principale di moto, Due che spingono nella stessa direzione. SWAY, grado di libertà
⇐⇒
perpendicolare. Se i motori spingono in maniera differenziale, si verificano le rotazioni IM-
BARDATA. Quelli verticali, se spingono in maniera uniforme si muoveranno uniformememente
lungo z. Altrimenti BECCHEGGIO: pitch, oppure ROLL: rollio. L’Acqua produce pressione.
La pressione indotta dal fluido è proporzionale alla quota. Qualunque oggetto che vogliamo
proteggere dall’acqua va mandato in tenuta STAGNA.
Come modelli dei motori, vedremo una versione semplificata del modello matematico del
→
motore elettrico. Il punto più delicato in un motore marino è la transizione interna esterna.
Guaina di transizione. Molto complessi e molto costosi in tutte le soluzioni tecnologiche. Pro-
teggere dei contenitori. In aria questo problema non è presente. La Spinta di Archimede è data
dalla famosa formula: S = ρV g
A
E’ una spinta dal basso verso l’alto da parte del fluido. Viene sfruttata per rendere possibile
il galleggiamento. Rimanere in equilibrio: bisogna eguagliare la FORZA PESO con la SPINTA
DI ARCHIMEDE: condizione neutrale. Abbiamo due tipi di oggetti:
• Oggetti positivi: tendono a rimanere a galla;
• Oggetti negativi: tendono ad affondare.
Parte gialla: galleggiante. Salvagente del robot. Esso deve pesare il meno possibile, cosı̀ che
abbiamo una spinta più grande possibile. Volume maggiore. Galleggiante in maniera tale che il
peso del volume d’acqua che sposta sia pari al peso del veicolo. La SALINITÀ dell’acqua NON
è sempre uniforme! Bisogna compensare masse e volumi. Incertezza che tipicamente si corregge
sul posto. Veicoli complicati tecnologicamente. In superficie la pressione non è un problema.
Ma già a 10 m abbiamo 10 atm! Gestione della pressione. La parte più costosa è proprio il
galleggiante! Il POLISTIROLO probabilmente si ridurrebbe ad una monetina. Letteralmente
imploderebbe. I costi sono quindi abbastanza elevati per costruire questi oggetti. Robot mobili.
Problema dei Robot mobili. Nella robotica mobile sono coinvolti veicoli che si muovono su ruote
o su zampe, tipicamente a terra. Possiamo anche avere veicoli a leg (gambe), ed in tal caso
avremmo la problematica della LOCOMOZIONE. Vanno molto forti oggi. Tecnologica delle
cosiddette RUOTE SVEDESI, le quali scivolano di lato. Le ruote della nostra macchina sono
invece fatte per ruotare perpendicolarmente all’asse principale. RUOTE SVEDESI: Piccole
◦
rotelline che ruotano di lato. Se ne mettiamo tre a 120 , l’oggetto risultante può traslare in ogni
direzione. La mobilità delle ruote svedesi è molto maggiore. Abbiamo dei veicoli che ruotano
sulla z allo stesso tempo. Problemi di vario tipo. Perimetro della ruota non proprio rotondo.
Problema delle VIBRAZIONI. Oltre una certa velocità sono abbastanza fastidiose.
iii
iv
Capitolo 1
Robotics
Un ambito molto recente di Robotica è quello della Robotica Cooperativa, ove l’interesse
non è il controllo di un veicolo, ma di controllarne tanti! Anche in ambito di controllo del moto
robotico vi sono dei problemi in questo senso. Studiamo i vari sottosistemi di cui si compone
un sistema robotico:
1.1 NGC - Navigation, Guidance, Control
• NAVIGAZIONE: tutti i metodi e tecniche per produrre una Stima dello Stato;
• sistemi quanto più vicini possibili agli attuatori. Algoritmi di basso livello
CONTROLLO:
che gestiscono il motore. Sostanzialmente sono dei PID che regolano la pressione con la
quale entra il fluido di carburante nel motore. Gli anelli di controllo in HW girano a
frequenze abbastanza alte;
• GUIDA: sottosistema di più alto livello. Può essere paragonato all’autista di una mac-
china. Fornisce comandi di alto livello agli altri sottosistemi.
Tutti questi livelli possono ricevere comandi od informazioni dall’esterno, da un livello supe-
riore. Ad esempio, la spia del carburante, oppure le gomme forate. Queste variabili potrebbero
influire sugli altri sistemi. La GUIDA in ambito robotico può essere automatizzata, median-
te l’utilizzo dell’Autopilota. Gran parte di quel che faremo nel corso sarà incentrato sulla
GUIDANCE. Il livello di MISSIONE è quello che genera i TASK. COMPITO ROBOTICO:
macroattività. Se il robot è un veicolo, i task di moto più comuni sono:
• Inseguimento di cammino;
• Inseguimento di traiettoria;
• Inseguimento della POSA; t→+∞
⇐⇒ −−−−→
Problemi di controllo: mandare l’errore a 0 e 0. Nei problemi di inseguimento
di cammino, l’errore è proprio una quantità geometrica. L’inseguimento di traiettoria è simile,
ma non uguale! È parametrizzato dal tempo. Nei problemi di Path Following NON vi è
necessariamente il concetto temporale! [PATH FOLLOWING]. La TRAIETTORIA inve
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.
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 Robotica
-
Appunti Complementi di Robotica
-
Appunti di Robotica industriale
-
Appunti Tecnologie per l'automazione e la robotica - 3/3