ROBOTICA AUTONOMA
cod. 1009163

Anno accademico 2022/23
1° anno di corso - Secondo semestre
Docente
- Dario LODI RIZZINI
Settore scientifico disciplinare
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
Ingegneria informatica
Tipologia attività formativa
Caratterizzante
48 ore
di attività frontali
6 crediti
sede: PARMA
insegnamento
in ITALIANO

Obiettivi formativi

Il corso si propone di fornire agli studenti gli elementi teorici ed i metodi per la progettazione di sistemi robotici ed in particolare:
-le principali tecnologie di sensori ed i principali metodi per l'elaborazione dei dati sensoriali;
-l'architettura di controllo e l'organizzazione dei sistemi robotici;
-i metodi e le tecniche per l'esecuzione da parte di sistemi autonomi e teleoperati di compiti come la navigazione e la manipolazione.
Le conoscenze elencate permettono di sviluppare capacità operative ed in particolare:
-saper impiegare sensori (laser, telecamere, sensori di percezione 3D) ed elaborare i dati acquisiti per ottenere rappresentazioni dell'ambiente adatte allo svolgimento di compiti;
-saper progettare e sviluppare il software di controllo di un robot mobile in grado di navigare e svolgere compiti per la risoluzione di un problema specifico;
-saper utilizzare strumenti software e librerie standard per la navigazione, la pianificazione del moto, la presa di oggetti, la percezione.

Prerequisiti

Fondamenti di programmazione e sviluppo software in linguaggio C/C++ in ambiente Unix.
Conoscenze di geometria e rappresentazione dei sistemi di riferimento nello spazio.
Conoscenze di base delle metodologie di controllo.

Contenuti dell'insegnamento

- Terminologia e classificazione dei sistemi robotici
- Sensori e percezione
- Estrazione di features
- Metodi avanzati di percezione tridimensionale
- Architetture di controllo dei robot
- Spazio delle configurazioni e pianificazione del moto
- Navigazione di robot mobili
- Comportamenti robotici
- Metodi probabilistici per la stima dello stato del sistema robot-ambiente
- Problemi di Localizzazione, Mapping e SLAM

Programma esteso

1. Introduzione: breve storia della robotica, tassonomia dei sistemi robotici (2 ore)
2 Il framework ROS: nodi, comunicazione, package e strumenti (2 ore)
3 Richiami sulle trasformazioni geometriche. Quaternioni. Gruppi e algebre di Lie (2 ore)
4. Sensori e percezione (6 ore)
4.1 Caratterizzazione e tassonomia dei sensori.
4.2 Principi di funzionamento dei sensori: tempo di volo, luce strutturata,
4.3 Calibrazione estrinseca: hand-in-eye e hand-to-eye
4.4 Percezione.
4.5 Algoritmi di estrazione di feature: geometriche, keypoint in immagini (SIFT, SURF, ORB), keypoint point cloud (FPFH, SHOT)
4.6 Outliers e algoritmi di Random Consensus
5. Architetture di controllo dei robot (2 ore)
5.1 Paradigmi nelle architetture robotiche.
5.2 Paradigma gerachico o deliberativo. Pianificazione logica (STRIPS).
5.3 Paradigma reattivo: architettura Subsumption, Motor Schema.
5.4 Paradigma ibrido.
6. Pianificazione del moto (8 ore)
6.1 Introduzione agli algoritmi di pianificazione del moto. Algoritmi Bug.
6.2 Algoritmi basati sulla scomposizione in celle.
6.3 Algoritmi basati su campi di potenziale.
6.4 Algoritmi basati su Roadmap.
6.5 Algoritmi probabilistici (PRM, RRT)
7. Navigazione (6 ore)
7.1 Modelli di ruota, robot uniciclo e biciclo
7.2 Vincoli olonomi e Pfaffiani, curvatura, controllo.
7.3 Pianificazione di percorso e di velocità, controllo.
7.4 Navigazione e architetture.
7.5 Algoritmi di navigazione (VFH, DWA).
8. Paradigma probabilistico e problemi di localizzazione e mapping (8 ore)
8.1 Paradigma probabilistico nella Robotica.
8.2 Richiami di teoria della probabilità. Criteri ML e MAP.
8.3 Filtri bayesiani. Cenni ai Metodi Montecarlo.
8.4 Filtro di Kalman. Derivazione. Extended Kalman Filter (EKF).
8.5 Cenni ai metodi di GraphSLAM.
8.6 Problemi di localizzazione, mapping, SLAM.
8.6.1 EKF localization and EKF SLAM
8.6.2 Classificazione delle mappe.
8.6.3 Associazione di dati basata su validation gate.

Esercitazioni (12 ore)
1. Introduzione a ROS. Misura di precisione dei sensori.
2. Progettazione di un’architettura robotica reattiva e sviluppo di comportamenti del robot (GoTo, Wall-Follow).
3. Introduzione all’ambiente di programmazione MoveIt! per la pianificazione del moto e delle prese.
4. Strumenti per la localizzazione ed il mapping
5. Elaborazione di point cloud con Point Cloud Library (PCL)

Bibliografia

- H. Choset, K. M. Lynch, S. Hutchinson, G. Kantor, W. Burgard, L. E. Kavraki and S. Thrun, "Principles of Robot Motion", MIT Press, 2005.
- R. Siegwart, I.R. Nourbakhsh and D. Scaramuzza, "Introduction to Autonomous Mobile Robots", Second Edition, MIT Press. 2011.
- S. Thrun, W. Burgard and D. Fox, "Probabilistic Robotics", MIT press 2005.
- B. Siciliano, L. Sciavicco, L. Villani, G. Oriolo, "Robotics: Modelling, Planning and Control (Advanced Textbooks in Control and Signal Processing)", Springer, 2009.
- Aa. Vv. a cura di B. Siciliano, O. Khatib, "Springer Handbook of Robotics", Springer-Verlag, Second Edition, Springer-Verlag, 2016.
- S.M. LaValle, "Planning Algorithms", Cambridge University Press, 2006, http://planning.cs.uiuc.edu/.
- P. Corke, "Robotics, Vision and Control: Fundamental Algorithms in MATLAB", Springer Verlag, 2017.

Metodi didattici

Il corso viene svolto alternando lezioni in aula ed esercitazioni in laboratorio.
Nelle lezioni in aula vengono presentati problemi, concetti e metodi specifiche della disciplina, talvolta con ricorso a casi di studio.
Il materiale delle lezioni (slide) è caricato sul portale didattico di ateneo Elly settimanalmente.
Le esercitazioni in laboratorio permettono di verificare alcuni dei metodi e degli argomenti del corso utilizzando robot e dispositivi, e di applicarli a situazioni problematiche.
Oltre ai framework e librerie in uso nella robotica (in particolare, ROS), viene anche fornito il codice sorgente tramite repository interno.

Modalità verifica apprendimento

La valutazione sommativa prevede tre momenti.
1) La prova scritta, che contribuisce con peso del 47% al voto finale, è costituita da sei quesiti in forma di domanda aperta o di esercizi. Durante la prova scritta viene richiesto allo studente di:
- conoscere le nozioni presentate nel corso;
- saper applicare algoritmi e metodi ad situazioni problematiche negli esercizi.
La durata della prova scritta è pari a 2 ore. La valutazione della prova scritta è in trentesimi.
Su richiesta opportunamente giustificata, la prova scritta può essere sostituita da una prova orale equivalente in modalità a distanza tramite strumenti di videoconferenza. La modalità di iscrizione, gli argomenti ed i quesiti posti sono equivalenti a quelli della prova scritta.
2) Assegnamento di laboratorio, che contribuisce con peso del 6% al voto finale, consiste nella programmazione del robot mobile per l'esecuzione di task. E' organizzata come competizione tra gruppi di due-tre studenti. Lo studente deve dimostrare di:
- saper analizzare un semplice problema di navigazione di robot e proporre le opportune soluzioni;
- sapere programmare e gestire un sistema robotico;
- saper lavorare in gruppo.
L'assegnamento ha valutazione dicotomica (positiva o non positiva).
3) Il progetto del corso, che contribuisce con peso del 47% al voto finale, consiste nel progettare e realizzare una specifica soluzione per un problema robotico. Il progetto è svolto singolarmente o in gruppi di due, massimo tre studenti. Alla conclusione del progetto lo studente o gli studenti devono produrre una relazione e presentare i risultati del progetto (supportati da diapositive). La valutazione del progetto è in trentesimi.

Altre informazioni

Il materiale didattico e di supporto alle lezioni ed alle esercitazioni è disponibile sul portale didattico Elly (URL specifica cambia annualmente).