ROBOTICA

Crediti: 
6
Settore scientifico disciplinare: 
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI (ING-INF/05)
Anno accademico di offerta: 
2016/2017
Semestre dell'insegnamento: 
Secondo Semestre
Lingua di insegnamento: 

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, la manipolazione e presa di oggetti, l'interazione con l'uomo.

Le conoscenze elencate permettono di sviluppare capacità operative ed in particolare:
-impiegare sensori (laser, telecamere, sensori di percezione 3D) ed elaborare i dati acquisiti per ottenere rappresentazioni dell'ambiente adatte allo svolgimento di compiti;
-progettare e sviluppare il software di controllo di un robot mobile in grado di navigare e svolgere compiti complessi;
-utilizzare alcuni strumenti software e librerie per la pianificazione del moto e la presa di oggetti.

Prerequisiti

Robotica Industriale. Fondamenti di programmazione e sviluppo software
in ambiente C/C++/Unix.
Nozioni relative al progetto logico ed alle metodologie di controllo.

Contenuti dell'insegnamento

Terminologia e classificazione dei sistemi robotici
Sensorialità e percezione
Estrazione di features
Metodi avanzati di percezione tridimensionale
Architetture di controllo dei robot
Spazio delle configurazioni e pianificazione del moto
Teleoperazione robotica
Interazione uomo-robot
Sistemi aptici
Sistemi di presa robotici, grasping e manipolazione
Tecniche di programmazione mediante dimostrazione
Apprendimento induttivo o con rinforzo dei compiti
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 e classificazione dei sistemi robotici (2 ore)
1.1 Storia della Robotica.
1.2 Classificazione dei sistemi robotici.
2. Sensorialità e percezione (2 ore)
2.1 Caratterizzazione e tassonomia dei sensori.
2.2 Percezione.
2.3 Algoritmi di estrazione di caratteristiche.
3. Architetture di controllo dei robot (4 ore)
3.1 Paradigmi nelle architetture robotiche.
3.2 Paradigma gerachico o deliberativo.
3.2.1Pianificazione logica (STRIPS).
3.3 Paradigma reattivo.
3.3.1 Architettura Subsumption.
3.3.2 Archiettura Motor Schema.
3.4 Paradigma ibrido.
4. Pianificazione del moto (8 ore)
4.1 Richiami sulle trasformazioni geometriche. Quaternioni.
4.2 Introduzione agli algoritmi di pianificazione del moto. Algoritmi Bug.
4.3 Algoritmi basati sulla scomposizione in celle.
4.4 Algoritmi basati su campi di potenziale.
4.5 Algoritmi basati su Roadmap.
4.6 Algoritmi probabilistici (PRM,RRT)
5. Teleoperazione robotica. Interazione uomo-robot. (2 ore)
6. Interfacce aptiche. Manipolazione e grasping. (2 ore)
7. Apprendimento (4 ore)
7.1 Apprendimento con rinforzo.
7.2 Apprendimento per imitazione.
7.2.1 Tecniche basate su grafo di precedenza.
7.2.2 Tecniche basate su Modelli di Markov Nascosti (HMM)
8. Navigazione. (2 ore)
8.1 Modello uniciclo e cenni alla pianificazione.
8.2 Navigazione e architetture.
8.3 Algoritmi di navigazione (VFH, Dynamic Window).
9. Paradigma probabilistico e problemi di localizzazione e mapping (6
ore)
9.1 Paradigma probabilistico nella Robotica.
9.2 Richiami di teoria della probabilità. Criteri ML e MAP.
9.3 Filtri bayesiani. Metodi Montecarlo.
9.4 Filtro di Kalman. Derivazione. Extended Kalman Filter (EKF).
9.5 Problemi di localizzazione, mapping, SLAM.
9.5.1 EKF localization and EKF SLAM
9.5.2 Classificazione delle mappe.
9.5.3 Associazione di dati basata su validation gate.
9.6 Cenni ai metodi di GraphSLAM.

Esercitazioni
1. Introduzione a ROS. Acquisizione da sensore laser scanner e
videocamera di profondità. Caratterizzazione statistica dei sensori.
2. Introduzione all'ambiente di programmazione OpenRAVE (Open
Robotics Automation Virtual Environment).
3. Programmazione physics-based. Introduzione alla libreria ODE (Open
Dynamics Engine).
4. Utilizzo della piatraforma robotica Pioneer 3DX. Controllo del robot con
ROS. Realizzazione di comportamenti robotici.
5. Elaborazione di point cloud tramite 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”, The MIT Press, 2005.
* R. Siegwart, I.R. Nourbakhsh, "Autonomous Mobile Robots", MIT Press.
* R. Murphy: "Introduction to AI Robotics", MIT press, 2000.
* R. Arkin, "Behavior-Based Robotics", MIT Press, 1998.
* H.R. Everett, "Sensors for mobile Robots", A.K. Peters, 1995.
* S. Thrun, W. Burgard and D. Fox, "Probabilistic Robotics", MIT press 2005.
* J.-C. Latombe, "Robot Motion Planning", Kluwer Academic Pub., 1991.
* S.M. LaValle, "Planning Algorithms", Cambridge University Press, 2006, http://planning.cs.uiuc.edu/.

Metodi didattici

Il corso viene svolto alternando lezioni in aula ed esercitazioni in laboratorio. Nelle lezioni in aula vengono presentati i concetti e le metodologie specifiche della disciplina. Le esercitazioni in laboratorio permettono di verificare alcuni dei metodi e degli argomenti del corso.

Modalità verifica apprendimento

Prova scritta, valutazione di assegnamenti svolti durante il corso e
progetto finale.

Altre informazioni

Il materiale didattico e di supporto alle lezioni ed alle esercitazioni è
disponibile sul sito http://elly.dii.unipr.it/.