STATE ESTIMATION AND FILTERING

Academic Year 2024-2025


This is the second module (6 cfu) of the System Identification and Data Analysis course, for the Master of Science in Artificial Intelligence and Automation Engineering (Curriculum Robotics and Automation)


Instructor

Andrea Garulli

Office hours: Thursday at 10.00, upon request via e-mail (Torre Rossa, room r202)

News

New version of the Course Notes added on April 15, 2025 (includes some examples on UKF and particle filter).

The lectures on March 28 and April 11 will be held in lab 147.
The lectures on April 16, May 2, 9 and 14 are canceled.
After the Easter break, the first lecture (April 30) will be held in room 149. All subsequent lectures (from May 7 onwards) will be held in lab 147.

You may want to take a look to the thesis and research opportunities in the System and Control Group.


How the course works: things you must know about the course organization

Prerequisites

It is assumed students are familiar with:
- Linear algebra and calculus
- Basics of probability theory, random variables, stochastic processes
- Basics of dynamic systems theory: input-output and state space representations; transfer function; Z-transform (discrete-time systems)
- A programming language (Matlab, Python)

How to pass the exam

The exam is organized in two steps:
a) a homework concerning the solution of a state estimation problem arising in a specific application domain;
b) an oral exam involving the discussion of the homework and questions about all the topics treated during the course (yes, we mean all!).

How to do the homework

A homework report explaining the adopted methodologies and the obtained results in a well-documented and concise fashion is required. Such report must be written in LaTeX (a LaTeX tutorial is available here).
A LaTeX template for the homework report is provided here.
Additional information will be provided during the course.

Golden rules

Rule 1: The right time to do the exam is at the end of the course, during the summer exam session. You are strongly encouraged to do that!
Rule 2: In case you need to do the exam in subsequent sessions, you have to deliver the homework report at least 7 days before the date of the oral exam. Ask for the homework well in advance.
Rule 3: Do the homeworks by yourself and report them carefully. During the oral exam you will have to explain and motivate the homework solutions.
Rule 4: Ask questions! (both in classes and in office hours).


Bibliography


Course Notes

The Course Notes are a summary of the topics treated in the course. They have to be intended as a work in progress: please send an email to the instructor if you find errors or typos. Thanks!


Contents and materials

1 Bayesian Estimation. Basics of multivariate distributions and stochastic processes. Bayesian estimation. Minimum mean square error estimators. Linear estimators.
Ref.: [Soderstrom, 5.1-5.3].
Homework: Homework_Bayesian_Estimation;   Solution (matlab).
Materials: Solution_Ex1_1.m.

2. State estimation for linear systems. Non stationary stochastic systems. The state estimation problem and the Kalman filter. Asymptotic properties of the Kalman filter.
Ref.: [Soderstrom, 3.3; 4.2; 6.1-6.3; 6.7]
Lab session: Lab_session_Kalman_Filter;   data_kf_dcmotor.npz;   data_kf_dcmotor.mat;   solution (python);   solution (matlab).
Homework: Homework_Kalman_Filter;   data_kf_cattle.mat;   solution (python);   solution (matlab).

3. State estimation for nonlinear systems. State estimation in nonlinear stochastic systems. The Extended Kalman Filter. Advanced nonlinear filtering techniques: unscented filter; sequential Monte Carlo methods.
Ref.: [Soderstrom, 9.1-9.5].
Lab session: Lab_session_Nonlinear_State_Estimation;   data1_ekf_mr.npz;   data2_ekf_mr.npz;   data1_ekf_mr.mat;   data2_ekf_mr.mat;   solution (python);   solution (matlab).

4. Project work 2025.
Project work notes   Part A - May 7, 2025.
Project work notes   Part B - May 16, 2025.
Project work notes   Part C - May 23, 2025.
Project work notes   Part D - May 30, 2025.
Data files:
data_point_land_1.npz    data_point_land_2.npz
data_sim_lidar_1.npz    data_sim_lidar_2.npz
Supporting functions:
PlotMapSN.py (plots San Niccolò map)



Please report errors or problems to:   garulli  at  ing.unisi.it
Thanks!