PROBABILISTIC ROBOTICS Canale unico

Docente coordinatore e verbalizzante: GIORGIO GRISETTI

Obiettivi formativi

Obiettivi generali:
Acquisire conoscenza sugli strumenti di base per la stima dello stato in sistemi robotici.
Essere in grado do applicare tali strumenti a casi di studio reali ed implementare
soluzioni funzionanti.
Valutare le prestazioni e la qualita' di uno stimatore dello stato.
Il corso alterna teoria e pratica. Nelle lezioni pratiche agli studenti e' richiesto
il completamento di frammenti di codice di un sistema che rappresenta casi pratici.

Obiettivi specifici:

Conoscenza e comprensione:
- Manipolazione di distribuzioni di probabilita'
- Basi sulle tecniche di filtraggio (hisrogram filters, Gaussian filters, particle filters)
- Modello generale di un sistema non lineare stazionario e dinamico
- Formulazione densa e sparsa di algoritmi di minimizzazione (Gauss-Newton, Levenberg Marquardt)
- Il problema della Data Association, e strumeni tipici per affrontarlo (RANSAC, euristiche)
- Casi di studio tipici per problemi di stima in robotics (Calibrazione, Localizzazione, Mappatura and SLAM)

Applicare conoscenza e comprensione:
- Essere in gradi di modellare un problema di stima ed adattare gli strumenti proposti al dominio specifico
- Svuluppare uno stimatore dello stato funzionante.

Capacità critiche e di giudizio:
- Individuare i pro ed i contro che presentano soluzioni diverse allo stesso problema.
- Individuare gli strumenti utilizzabili per approcciare i sotto-problemi di uno stimatore.
Lo sviluppo di tali capacita' e' ottenuto mediante lo sviluppo di un progetto sviluppato come parte dell'esame.

Capacità comunicative:
- Acquisire un linguaggio comune per descrivere e modellare gli stimatori dello stato e che supporti
un'interazione tra sviluppatori definendo un insieme di obiettivi e termini comuni.

Capacità di apprendimento:
Lo studente possiedera' capacita e conoscera' tecniche per affrontare problemi di stima dello stato generali.
Gli esempi nel dominio della navigazione autonoma presentati durante il corso servono come casi di studio.
Gli argomenti individuali appresi (Manipolazione di PDF , Filtering Designs, Minimizzazione), sono strumenti
prezioni per affrontare problemi che esulano tali casi specifici di studio.

Risultati di apprendimento attesi

Capacita' di istanziare gli strumenti forniti nel corso a problemi specifici.
Gli strumenti illustrati sono
- Filtri Bayesiani
- Algoritmi di consenso
- Iterative Reweighed Least Squares
- Strumenti per data association ed inizializzazione

Capacita' di analizzare i requisiti ed i limiti delle soluzioni proposte, ad esempio\
- Gradi di Liberta' della Soluzione
- Struttura della Matrice H
- Stima dell'incertezza della soluzione

Conscenza di problemi di stima specifici illustrati durante le esercitazioni del corso

Capacita' di derivare analiticamente gli algoritmi illustrati

Capacita' di sviluppare un sistema che implementi e risolva un problema specifico,
la cui verifica e' effettuata mediante un progetto.

Prerequisiti

Lo studente deve possedere solide basi in algebra lineare, geometria ed analisi.
In particolare sono necessarie le seguenti conoscenza
- Matrici, Vettori, Autospazi, Soluzione di sistemi Lineari (densi e sparsi)
- Minimizzazione di funzioni multivariate con tecniche iterative
- Trasformazioni nello spazio, gruppi SE(2), SO(2), SE(3), SO(3)

Oltre a fornire basi teoriche il corso si propone di sviluppare nello studente
la capacita' di realizzare in pratica quanto appreso. Per una fruizione ottimale dell'insegnamento
e' pertanto necessario avere discrete basi di programmazione.
Nel corso si usera' estensivamente Matlab/Octave, e sporadicamente C/C++.

Programma dell’insegnamento

Probability Primer
- Axioms of probability
- Bayes Rule, Chain Rule, Marginalization and Conditioning
- Statistical independence

Manipulating pdf representations: marginalizing, conditioning, applying a function
- Discrete
- Gaussian
- Particles

Dynamic Systems
- System Model (state, observations, controls)
- Filtering (Discrete , Kalman and Particle)

Geometry and Linear Algebra Refresher
- vectors, matrices and their operations, SO(X) groups, SE(X) groups
- computation of gradients (symbolic, numerical and automatic differentiation)

Applications of Filtering
- Localization (Kalman and Particle)
- SLAM (Kalman and Particle)

Least Squares Estimation
- Gauss-Newton and Levenberg/Marquardton Euclidean Spaces
- Probabilistic Interpretation
- Manifolds
- Robust Kernels

Applications of Least Squares Estimation
- Calibration
- Sensor Registration (ICP, Bearing-only, Range-Only)

Sparse Least Squares
- Structure of the problem
- Factor Graphs
- Sparse Solvers

Applications of Sparse Least Squares
- Graph-SLAM
- Simultaneous Localization, Calibration and Mapping

Data Association
- Mahalanobis Distance
- Voting and Consensus Methods (RANSAC and variants)

Testi di riferimento

Le informazioni aggiornate del corso si trovano presso la seguente pagina web, da cui e' disponibile tutto il materiale.
https://sites.google.com/diag.uniroma1.it/probabilistic-robotics-2023-24/home

Videolezioni registrate durante la pandemia sono disponibili dal sito dell'aa 2021/22.
https://sites.google.com/diag.uniroma1.it/probabilistic-robotics-2021-22/home

Bibliografia

http://asrl.utias.utoronto.ca/~tdb/bib/barfoot_ser17.pdf

Modalità di svolgimento

Il corso si tiene in inglese. Verra' svolto attraverso lezioni in classe.
Ad ogni argomento spiegato seguira' una esercitazione interattiva in cui agli studenti verra' chiesto di completare dei
programmi parzialmente svolti dal docente e dal tutor. In tali lezioni pratiche si richiede allo studente di disporre di un computer portatile.

Le lezioni verranno (a partire dall AA 2020/21) anche trasmesse in streaming.

Tutto il materiale ed informazioni aggiuntive ed aggiornate sono disponibili presso il sito del corso che viene aggionrato di anno in anno.
https://sites.google.com/diag.uniroma1.it/probabilistic-robotics-2019-20

Nel caso il link non dovesse funzionare potete seguire il link del corso dell'anno accademico corrente da questa pagina:
https://sites.google.com/dis.uniroma1.it/grisetti/teaching

Frequenza

La frequenza del corso e' caldamente raccomandata.
Le lezioni del periodo di pandemia sono communque disponibili su youtube

Modalità di esame

The exam will consist in a written test AND a project
The written test is articulated in 2 sessions.
In the first session (lastin 30 min), the student will be asked to expose an argument explained during the course. In this time, obviously, the student cannot access the course material.
In the second session (lasting about 2 hours), the student will be asked to solve \real problems, applying the concepts learned in theory.

The project will consist in the development of a software system to approach a classical problem.
The exam ends when both the test and the project are completed.

Esempi di domande

Data la presenza di grafici si riportano link ad esempi di compiti in classe degli anni passati (con esercizi)

https://gitlab.com/grisetti/probabilistic_robotics_2020_21/-/tree/master/exercises

  • Anno accademico2024/2025
  • Corso di studio a cui afferisce l’insegnamentoEngineering in Computer Science - Ingegneria Informatica
  • Codice insegnamento1052218
  • Anno e semestre2º anno - 1º semestre
  • TipologiaAttività formative affini ed integrative
  • AmbitoAttività formative affini o integrative
  • SSDING-INF/05
  • Presenza obbligatoriaNo
  • Linguaeng
  • CFU6 CFU
  • Durata complessiva60 ore
  • Distribuzione delle ore36 classroom hours, 24 training hours