PROGRAMMAZIONE DI SISTEMI ROBOTICI AUTONOMI E LABORATORIO
Anno accademico 2020/2021 - 1° anno - Curriculum Data Science- PROGRAMMAZIONE DI SISTEMI ROBOTICI AUTONOMI: Corrado SANTORO
- LABORATORIO: Corrado SANTORO
Organizzazione didattica: 225 ore d'impegno totale, 153 di studio individuale, 36 di lezione frontale, 24 di esercitazione, 12 di laboratorio
Semestre: 2°
Obiettivi formativi
- PROGRAMMAZIONE DI SISTEMI ROBOTICI AUTONOMI
- Conoscenza e capacità di comprensione (knowledge and understanding). Il corso di "Programmazione di Sistemi Robotici e Laboratorio" si prefigge l'obiettivo di fornire agli studenti le conoscenze sui principi, modelli, tecniche e strumenti per la programmazione di sistemi robotici e sistemi autonomi in genere. Le lezione teoriche si basano sull'insegnamento dei principi della modellazione dei sistemi dinamici, del controllo automatico, degli algoritmi di controllo, delle tecniche e dei linguaggi per la programmazione del comportamento dei sistemi robotici. Le esercitazioni di laboratorio hanno l'obiettivo di testare, in pratica, gli argomenti studiati in aula.
- Capacità di applicare conoscenza e comprensione (applying knowledge and understanding). Attraverso l'analisi di diversi casi di studio e tramite esercitazioni in laboratorio, il corso consente allo studente di ottenere le capacità di applicare le tecniche acquisite durante le lezioni teoriche nei contesti applicativi tipici dei sistemi robotici; lo studente sarà altresì in grado di comprendere come progettare e implementare un sistema robotico.
- Autonomia di giudizio (making judgements). Le lezioni del corso e soprattutto le attività di laboratorio sono organizzate in modo da includere un'analisi critica di casi di studio, delle soluzioni impiegate, delle possibili varianti e dei pro e contro di queste ultime, al fine di consentire allo studente di acquisire un'adeguata autonomia di valutazione delle scelte tecniche.
- Abilità comunicative (communication skills). Le abilità comunicative dello studente saranno considerate soprattutto durante la prova d'esame al calcolatore, in cui lo studente è chiamato ad esporre le scelte implementative adottate e motivandole opportunamente.
- Capacità di apprendimento (learning skills). Le capacità di apprendimento degli studenti saranno valutate durante le esercitazioni di laboratorio, le quali hanno l'obiettivo di testare quanto e come gli studenti abbiano compreso il funzionamento dei sistemi robotici e quanto siano in grado di progettare adeguatamente il software per tali sistemi. La valutazione del livello di apprendimento sarà dunque utilizzato per approndire (qualora sia necessario) gli argomenti e le parti che si sono rivelati particolarmente ostici.
- LABORATORIO
- Conoscenza e capacità di comprensione (knowledge and understanding). Il corso di "Programmazione di Sistemi Robotici e Laboratorio" si prefigge l'obiettivo di fornire agli studenti le conoscenze sui principi, modelli, tecniche e strumenti per la programmazione di sistemi robotici e sistemi autonomi in genere. Le lezione teoriche si basano sull'insegnamento dei principi della modellazione dei sistemi dinamici, del controllo automatico, degli algoritmi di controllo, delle tecniche e dei linguaggi per la programmazione del comportamento dei sistemi robotici. Le esercitazioni di laboratorio hanno l'obiettivo di testare, in pratica, gli argomenti studiati in aula.
- Capacità di applicare conoscenza e comprensione (applying knowledge and understanding). Attraverso l'analisi di diversi casi di studio e tramite esercitazioni in laboratorio, il corso consente allo studente di ottenere le capacità di applicare le tecniche acquisite durante le lezioni teoriche nei contesti applicativi tipici dei sistemi robotici; lo studente sarà altresì in grado di comprendere come progettare e implementare un sistema robotico.
- Autonomia di giudizio (making judgements). Le lezioni del corso e soprattutto le attività di laboratorio sono organizzate in modo da includere un'analisi critica di casi di studio, delle soluzioni impiegate, delle possibili varianti e dei pro e contro di queste ultime, al fine di consentire allo studente di acquisire un'adeguata autonomia di valutazione delle scelte tecniche.
- Abilità comunicative (communication skills). Le abilità comunicative dello studente saranno considerate soprattutto durante la prova d'esame al calcolatore, in cui lo studente è chiamato ad esporre le scelte implementative adottate e motivandole opportunamente.
- Capacità di apprendimento (learning skills). Le capacità di apprendimento degli studenti saranno valutate durante le esercitazioni di laboratorio, le quali hanno l'obiettivo di testare quanto e come gli studenti abbiano compreso il funzionamento dei sistemi robotici e quanto siano in grado di progettare adeguatamente il software per tali sistemi. La valutazione del livello di apprendimento sarà dunque utilizzato per approndire (qualora sia necessario) gli argomenti e le parti che si sono rivelati particolarmente ostici.
Modalità di svolgimento dell'insegnamento
- PROGRAMMAZIONE DI SISTEMI ROBOTICI AUTONOMI
Le lezioni del presente modulo sono svolte in aula in modo frontale, corredate da esempi ed esercitazioni e attraverso l'uso combinato di lucidi e lavagna tradizionale. Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.
- LABORATORIO
Le lezioni sono svolte in laboratorio e organizzate come esercitazioni/esperienze specifiche che gli studenti devono obbligatoriamente compiere al fine di poter superare l'esame. Gli studenti possono anche organizzarsi in gruppi di massimo 3 persone. Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.
Prerequisiti richiesti
- PROGRAMMAZIONE DI SISTEMI ROBOTICI AUTONOMI
- Architettura degli elaboratori
- Programmazione in linguaggio C/C++
- Ingegneria del software
- Algoritmi e strutture dati
- Elementi di analisi matematica dei numeri complessi
- Algebra lineare e calcolo matriciale
- LABORATORIO
- Architettura degli elaboratori
- Programmazione in linguaggio C/C++
- Ingegneria del software
- Algoritmi e strutture dati
- Elementi di analisi matematica dei numeri complessi
- Algebra lineare e calcolo matriciale
Frequenza lezioni
- PROGRAMMAZIONE DI SISTEMI ROBOTICI AUTONOMI
La frequenza alle lezioni, per quanto non sia obbligatoria, è fortemente consigliata, in quanto le lezioni stesse sono spesso svolte in forma di laboratorio in cui gli studenti stessi, insieme al docente, sono chiamati a implementare applicazioni tipiche dei sistemi robotici.
- LABORATORIO
La frequenza alle lezioni, per quanto non sia obbligatoria, è fortemente consigliata, in quanto le lezioni stesse sono spesso svolte in forma di laboratorio in cui gli studenti stessi, insieme al docente, sono chiamati a implementare applicazioni tipiche dei sistemi robotici.
Contenuti del corso
- PROGRAMMAZIONE DI SISTEMI ROBOTICI AUTONOMI
I contenuti sono riportati nella pagina del corso reperible a questo link e riassunti di seguito:
- Introduzione ai sistemi robotici. Concetto di sistema robotico. Modello di controllo a "feedback". Panoramica sui modelli di controllo. Layer software di un sistema robotico autonomo.
- Sistemi dinamici. Modello di sistema dinamico. Rappresentazione con equazione differenziale ed esempi di integrazione. Discretizzazione di un sistema. Ingressi canonici. Risposta al gradino. Risposta all'impulso. Stabilità semplice e asintotica. Sistemi instabili. Diagrammi a blocchi di sistemi dinamici. Composizione di sistemi.
- Elementi di Controlli Automatici. Schema di controllo a feedback. Controllori PID. Discretizzazione di un PID.
- Controllo in velocità e posizione di un motore DC. PIlotaggio in PWM e H-Bridge. Lettura posizione e velocità con encoder. Loop di velocità. Loop di posizione.
- Controllo in posizione di un robot mobile su ruote. Modello cinematico. Odometria. Schemi di controllo.
- Navigazione di un robot mobile. Algoritmi di navigazione, obstacle avoidance, path planning.
- Comportamento di un robot autonomo. Sistemi a regole. Conoscenza e ragionamento. Pianificazione.
- LABORATORIO
I contenuti sono riportati nella pagina del corso reperible a questo link e riassunti di seguito:
- Implementazione software di sistemi dinamici. Discretizzazione di un sistema del primo ordine. Algoritmo di simulazione di un sistema dinamico con ingressi differenti. Andamento dell'uscita.
- Sistemi dinamici di ordine superiore. Discretizzazione e simulazione.
- Elementi di Controlli Automatici. Discretizzazione di un PID. Implementazione di un PID. Taratura di un PID.
- Controllo in velocità e posizione di un motore DC. Esercitazione con loop di velocità e posizione.
- Comportamento di un robot autonomo. Tool software per la pianificazione ed il ragionamento.
Testi di riferimento
- PROGRAMMAZIONE DI SISTEMI ROBOTICI AUTONOMI
- R. Siegwart, I. R. Nourbakhsh, Introduction to Autonomous Mobile Robots, The MIT Press
- Peter Corke, Robotics, Vision and Control: Fundamental Algorithms in MATLAB, Springer
- Slide del corso
- LABORATORIO
- R. Siegwart, I. R. Nourbakhsh, Introduction to Autonomous Mobile Robots, The MIT Press
- Peter Corke, Robotics, Vision and Control: Fundamental Algorithms in MATLAB, Springer
- Slide del corso
Programmazione del corso
PROGRAMMAZIONE DI SISTEMI ROBOTICI AUTONOMI | |||
Argomenti | Riferimenti testi | ||
---|---|---|---|
1 | Introduzione ai sistemi robotici | Slides del corso | |
2 | Sistemi dinamici | Slides del corso | |
3 | Sistemi dinamici di ordine superiore | Slides del corso | |
4 | Funzione di trasferimento e stabilità | Slides del corso | |
5 | Elementi di Controlli Automatici | Slides del corso | |
6 | Controllo in velocità e posizione di un motore DC | Slides del corso | |
7 | Controllo in posizione di un robot mobile su ruote | Siegwart, Corke | |
8 | Navigazione di un robot mobile | Siegwart, Corke | |
9 | Comportamento di un robot autonomo | Slides del corso | |
LABORATORIO | |||
Argomenti | Riferimenti testi | ||
1 | Implementazione software di sistemi dinamici | Slides del corso | |
2 | Sistemi dinamici di ordine superiore | Slides del corso | |
3 | Elementi di Controlli Automatici | Slides del corso | |
4 | Controllo in velocità e posizione di un motore DC | Slides del corso | |
5 | Comportamento di un robot autonomo | Slides del corso |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
- PROGRAMMAZIONE DI SISTEMI ROBOTICI AUTONOMI
- Prova pratica al calcolatore
La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.
- LABORATORIO
- Progetto
La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.
Esempi di domande e/o esercizi frequenti
- PROGRAMMAZIONE DI SISTEMI ROBOTICI AUTONOMI
Le prove d'esame sono reperibili presso la pagina web del corso.
- LABORATORIO
Le prove d'esame sono reperibili presso la pagina web del corso.