MATEMATICA E INFORMATICAInformaticaAnno accademico 2024/2025
9796655 - SISTEMI ROBOTICI E LABORATORIO
Modulo LABORATORIO
Docente: CORRADO SANTORO
Risultati di apprendimento attesi
- 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
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.
Prerequisiti richiesti
- Architettura degli elaboratori
- Programmazione in linguaggio C/C++ e Python
- Ingegneria del software
- Algoritmi e strutture dati
- Elementi di analisi matematica dei numeri complessi
- Algebra lineare e calcolo matriciale
Frequenza lezioni
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
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.
- Modellazione e simulazione software di sistemi reali
- Elementi di Controlli Automatici. Schema di controllo a feedback. Controllori PID. Discretizzazione di un PID. Implementazione dei controllori PID.
- Implementazione del 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.
- Implementazione del controllo in posizione di un robot mobile su ruote. Modello cinematico. Odometria. Schemi di controllo. Differential drive. Ackerman steering.
- Navigazione di un robot mobile. Algoritmi di navigazione, obstacle avoidance, path planning.
- Comportamento di un robot autonomo. Sistemi a regole. Conoscenza e ragionamento. Pianificazione.
Testi di riferimento
- 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
| 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 | Stabilita' | 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 |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
Esempi di domande e/o esercizi frequenti
- Modellazione di un sistema
- Discretizzazione di un sistema
- Studio della stabilita' e della risposta di un sistema
- Controllo PID, ruolo delle costanti
- Modelli di locomozione di robot mobili
- Schema e implementazione del controllo in velocita' e posizione
- Algoritmi di path planning e obstacle avoidance
- Programmazione del comportamento di un robot
English version