PROGRAMMAZIONE DI SISTEMI ROBOTICI AUTONOMI E LABORATORIO

Anno accademico 2020/2021 - 1° anno - Curriculum Data Science
Docenti Crediti: 9
Organizzazione didattica: 225 ore d'impegno totale, 153 di studio individuale, 36 di lezione frontale, 24 di esercitazione, 12 di laboratorio
Semestre:

Obiettivi formativi

  • PROGRAMMAZIONE DI SISTEMI ROBOTICI AUTONOMI
    1. 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.
    2. 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.
    3. 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.
    4. 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.
    5. 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
    1. 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.
    2. 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.
    3. 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.
    4. 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.
    5. 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:

    1. 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.
    2. 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.
    3. Elementi di Controlli Automatici. Schema di controllo a feedback. Controllori PID. Discretizzazione di un PID.
    4. 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.
    5. Controllo in posizione di un robot mobile su ruote. Modello cinematico. Odometria. Schemi di controllo.
    6. Navigazione di un robot mobile. Algoritmi di navigazione, obstacle avoidance, path planning.
    7. 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:

    1. 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.
    2. Sistemi dinamici di ordine superiore. Discretizzazione e simulazione.
    3. Elementi di Controlli Automatici. Discretizzazione di un PID. Implementazione di un PID. Taratura di un PID.
    4. Controllo in velocità e posizione di un motore DC. Esercitazione con loop di velocità e posizione.
    5. 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
 ArgomentiRiferimenti testi
1Introduzione ai sistemi roboticiSlides del corso 
2Sistemi dinamiciSlides del corso 
3Sistemi dinamici di ordine superioreSlides del corso 
4Funzione di trasferimento e stabilitàSlides del corso 
5Elementi di Controlli AutomaticiSlides del corso 
6Controllo in velocità e posizione di un motore DCSlides del corso 
7Controllo in posizione di un robot mobile su ruoteSiegwart, Corke 
8Navigazione di un robot mobileSiegwart, Corke 
9Comportamento di un robot autonomoSlides del corso 
LABORATORIO
 ArgomentiRiferimenti testi
1Implementazione software di sistemi dinamiciSlides del corso 
2Sistemi dinamici di ordine superioreSlides del corso 
3Elementi di Controlli AutomaticiSlides del corso 
4Controllo in velocità e posizione di un motore DCSlides del corso 
5Comportamento di un robot autonomoSlides 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.