Università degli Studi di Napoli "Parthenope"

Scheda dell'insegnamento

Anno accademico: 
2020/2021
Tipologia di insegnamento: 
A scelta dello studente
Tipo di attività: 
Opzionale
Corso di afferenza: 
Corso di Corso di Laurea Magistrale in INFORMATICA APPLICATA (MACHINE LEARNING E BIG DATA)
Settore disciplinare: 
INFORMATICA (INF/01)
Lingua: 
Inglese
Crediti: 
6
Anno di corso: 
2
Docenti: 
Ciclo: 
Secondo Semestre
Ore di attivita' frontale: 
48

Obiettivi

L’obiettivo di questo corso è di fornire agli studenti una conoscenza completa e approfondita dei principi e delle tecniche dell'intelligenza artificiale introducendo i problemi classici dell'IA, nonché i modelli e gli algoritmi utilizzati per affrontare questi problemi. Il corso partirà dalla definizione di agenti intelligenti per arrivare ad agenti robotici affrontando aspetti metodologici della Robotica Cognitiva. La robotica cognitiva consiste nel dotare robot e agenti incarnati di un comportamento intelligente progettando e implementando un'architettura di elaborazione che li renda atti a deliberare, apprendere e ragionare su come comportarsi in risposta a obiettivi complessi in un mondo complesso. I modelli ispiratori della Robotica Cognitiva derivano da diverse discipline: le architetture neurali dalle neuroscienze, i comportamenti di base dall'etologia, le motivazioni e le emozioni dalla psicologia, il comportamento multirobot dalla sociologia. Questi modelli potrebbero essere implementati in termini di logica formale, modelli probabilistici e neurali che si trasformano in agenti computazionali incorporati.
Il programma del corso è diviso in tre parti. Nella prima, dopo un’introduzione alla nascita dell’Intelligenza Artificiale, saranno presentati algoritmi per la risoluzione di problemi di ricerca informata nello spazio degli stati, ricerca online, e problemi di soddisfacimento di vincoli e algoritmi di pianificazione.
Sarà inoltre analizzato il ragionamento e processo decisionale in caso di incertezza, discusso come rappresentare la conoscenza, inclusa la conoscenza incompleta e incerta del mondo reale; come ragionare logicamente con quella conoscenza usando le probabilità; come utilizzare questi modelli e metodi di ragionamento per decidere cosa fare.

Nella seconda parte sarà introdotta la robotica cognitiva e i principali paradigmi e architetture di controllo di sistemi robotici fino all’introduzione della disciplina dell’Interazione Uomo-macchina.

Nella terza parte saranno infine introdotti principali sistemi di programmazione robotica. Nella fattispecie ROS (Robotic Operating System) e Choregraph, un applicativo per la programmazione di robot umanoidi.

Prerequisiti

Esami di Base di Matematica, Programmazione e Algoritmi e Strutture dati rappresentano prerequisiti fondamentali per la comprensione degli argomenti trattati

Contenuti

Il corso mira a trasmettere una conoscenza completa e approfondita dei principi e delle tecniche dell'intelligenza artificiale introducendo i problemi classici dell'IA, nonché i modelli e gli algoritmi utilizzati per affrontare questi problemi, confinando verso gli aspetti della robotica cognitiva. Il corso si propone l'obiettivo di fornire agli studenti i metodi e le tecniche per poter progettare di simulare e programmare robotici o reali atraverso l'utilizzzo tool e di linguaggi dispositivi di programmazione allo stato dell'arte.

Metodi didattici

Verranno erogate lezioni frontali in aula. Sarà possibile seguire le lezioni in tempo reale anche da remoto attraverso la piattaforma teams ( a seconda delle attuali direttive di governo riguardo alla situazione pandemica COVID-19).
Lo studio e l’approfondimento degli argomenti sarà realizzato anche attraverso esercitazioni in laboratorio e/o compiti a casa.
Il Materiale Didattico opportunamente predisposto verrà fornito mediante piattaforma di E-LEARNING e condiviso nei files di TEAMS.
LA FREQUENZA IN AULA È FORTEMENTE CONSIGLIATA sebbene non obbligatoria per poter sostenere la prova finale

Verifica dell'apprendimento

Ciascuno studente prenderà parte alla realizzazione di un progetto di gruppo (composto da 2 a 3 Studenti) concordato con il Docente, su cui verranno accertate individualmente le capacità pratiche acquisite.
La verifica si baserà su:
1. Un REPORT di PROGETTO: (Project Document and Code) che mira a verificare che lo studente abbia acquisito la capacità di PROGETTARE e SVILUPPARE (programmare), sistemi di controllo robotico basati su tecniche di AI, VALUTATI in simulazione o in scenari reali , a seconda della piattaforma robotica che lo studente intende utilizzare.
2. Una PROVA ORALE: gli studenti presenteranno il progetto realizzato attraverso l’uso di slides per la verifica individuale delle capacità acquisite dal singolo studente

Testi

• Murphy R.R. - Introduction to AI robotics - MIT Press - 2000
• S. Russell, P. Norvig, “Artificial Intelligence. A Modern Approach", Prentice Hall, Second Edition - 2003
• Arkin R.C. - Behavior-based robotics - MIT Press – 1998
• Pefeifer R. & Scheier C. - Understanding Intelligence - MIT Press - 2000
• Lentin J. and Cacace J., Mastering ROS for Robotics Programming: Design, build, and simulate complex robots using the Robot Operating System, BIRMINGHAM –MUMBAI - 2018

Altre informazioni

INDICE DELLE LEZIONI
PARTE 1
I Intelligenza Artificiale
1. Introduzione
2. Agenti intelligenti
II Risoluzione dei problemi
3. Risoluzione dei problemi tramite la ricerca
4. Cerca in ambienti complessi
5. Problemi di soddisfazione dei vincoli
6. Ricerca e giochi contraddittori (opzionale)
III Conoscenza, ragionamento e pianificazione
7. Agenti logici
8. Logica del primo ordine
9. Inferenza nella logica del primo ordine
10. Rappresentazione della conoscenza
11. Pianificazione automatizzata (opzionale)
PARTE 2
I Introduzione alla Robotica Cognitiva
12. Intelligenza artificiale e robotica (dalla robotica alla robotica cognitiva)
13. Hardware robotico (sensori ed effettori): introduzione a: Architetture software robotiche, Architettura di sussunzione, Architettura a tre strati, Linguaggi di programmazione robotica
II Architetture di controllo della robotica
14. Sistemi Robotici e Architetture Cognitive Introduzione: Funzionalità Reattiva (Comportamenti, Coordinamento dei comportamenti, Locomozione)
15. Funzionalità reattiva (rilevamento, range sansing)
16. Funzionalità deliberativa: deliberazione, navigazione, pianificazione, localizzazione e mappatura (opzionale)
III Interazione Huma-Robot
17. Interazione uomo-robot
PARTE 3
I ROS – Sistema operativo robotico
18. Introduzione a ROS, ti dà una comprensione dei concetti fondamentali alla base di ROS.
19. Iniziare con la programmazione ROS, come lavorare con i pacchetti ROS.
20. Simulazione di robot utilizzando ROS
21. Sviluppare algoritmi di controllo robotico
II Programmazione di robot umanoidi
22. Introduzione su Pepper, Robot sociali. Guida sviluppatori: NAOqi OS, Prima configurazione Pepper, Come connettere Pepper in rete, Download e installazione del software Aldebaran: Choreographe Suite, Python in Choregraphe, Dialogo in Choregraphe
23. SDK: Creare un'applicazione, Hello World, Applicazione di ballo, Applicazione interattiva; Creare un'applicazione da zero, Uso del tablet
III Programmazione del Robot Umanoide NAO
24. Come accendere il robot umanoide NAO