PROGRAMMAZIONE DI SISTEMI ROBOTICI AUTONOMI E LABORATORIO

Anno accademico 2017/2018 - 1° anno - Curriculum Data Science
Docenti Crediti: 9
SSD: INF/01 - Informatica
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.

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. Ingressi canonici. Risposta al gradino.
    3. Sistemi dinamici di ordine superiore. Rappresentazione nello spazio di stato.
    4. Funzione di trasferimento e stabilità. Trasformata di Laplace. Funzione di trasferimento. Poli e Zeri. Modi di un sistema. Equilibrio. Stabilità semplice e asintotica. Sistemi instabili. Composizione di sistemi.
    5. Elementi di Controlli Automatici. Schema di controllo a feedback. Controllori PID. Discretizzazione di un PID.
    6. 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.
    7. Controllo in posizione di un robot mobile su ruote. Modello cinematico. Odometria. Schemi di controllo.
    8. Navigazione di un robot mobile. Algoritmi di navigazione, obstacle avoidance, path planning.
    9. 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
1 Introduzione ai sistemi roboticiSlides del corso 
2*Sistemi dinamiciSlides del corso 
3*Sistemi dinamici di ordine superioreSlides del corso 
4*Funzione di trasferimento e stabilitàSlides del corso 
5*Elementi di Controlli AutomaticiSlides del corso 
6*Controllo in velocità e posizione di un motore DCSlides del corso 
7*Controllo in posizione di un robot mobile su ruoteSiegwart, Corke 
8*Navigazione di un robot mobileSiegwart, Corke 
9*Comportamento di un robot autonomoSlides del corso 
LABORATORIO
 *ArgomentiRiferimenti testi
1*Implementazione software di sistemi dinamiciSlides del corso 
2*Sistemi dinamici di ordine superioreSlides del corso 
3*Elementi di Controlli AutomaticiSlides del corso 
4*Controllo in velocità e posizione di un motore DCSlides del corso 
5*Comportamento di un robot autonomoSlides del corso 
* Conoscenze minime irrinunciabili per il superamento dell'esame.

N.B. La conoscenza degli argomenti contrassegnati con l'asterisco è condizione necessaria ma non sufficiente per il superamento dell'esame. Rispondere in maniera sufficiente o anche più che sufficiente alle domande su tali argomenti non assicura, pertanto, il superamento dell'esame.

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

  • PROGRAMMAZIONE DI SISTEMI ROBOTICI AUTONOMI

    Prova pratica al calcolatore

  • LABORATORIO

    Progetto


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.