- Docente: Giuseppe Notarstefano
- Credits: 8
- SSD: ING-INF/04
- Language: English
- Moduli: Giuseppe Notarstefano (Modulo 1) Ivano Notarnicola (Modulo 2)
- Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
- Campus: Bologna
-
Corso:
Second cycle degree programme (LM) in
Computer Engineering (cod. 5826)
Also valid for Second cycle degree programme (LM) in Automation Engineering (cod. 8891)
Second cycle degree programme (LM) in Artificial Intelligence (cod. 9063)
-
from Feb 25, 2025 to Jun 10, 2025
-
from Feb 19, 2025 to Jun 11, 2025
Learning outcomes
The course focuses on the design of control, optimization and learning methods and software tools for teams of autonomous systems. These systems consist of cooperative agents, as intelligent robots, autonomous vehicles and decision systems, that aim at performing complex tasks according to a federated and distributed computing paradigm. At the end of the course students will know how to design selected distributed control, optimization and learning algorithms to solve complex tasks involving teams of autonomous systems. To bridge the gap between theory and application, laboratory activities will allow students to design software tools for the studied algorithms and apply them to a number of application domains, including, e.g., planning,guidance and optimal control of cooperative autonomous vehicles and intelligent robots as well as machine learning and data analytics for decision systems.
Course contents
Introduction to Distributed Autonomous Systems
New paradigms and applications domains of autonomous systems: decision systems for data analytics (e.g., recommender systems and localization), sensor networks, cooperative robotics, cooperative mobility, smart energy systems. Introduction to distributed systems: centralized versus distributed computing, key properties and main goals for distributed systems.
Modeling of distributed systems
Models of distributed systems. Graph theory as a tool to model communication among network agents. Preliminaries on graph theory and examples. Distributed algorithms and distributed control laws. Introduction to Python programming with a focus on distributed computing and cooperative robotics via Robotic Operating System 2.
Basic distributed algorithms
Averaging protocols and linear consensus algorithms for multi-agent systems. Complex tasks (e.g., autonomous formation control, containment in leader-follower networks) based on linear consensus algorithms. Practical Python implementation of averaging and distributed control laws on case study examples from decision and control networks.
Introduction to distributed optimization
Optimization basics. Main problem set-ups and examples from estimation, machine learning, decision making, and control in cyber-physical networks.
Distributed decision making via consensus optimization
Consensus optimization algorithms based on averaging. Distributed gradient and gradient tracking methods. Practical Python implementation on case studies from federated and distributed machine learning, e.g., logistic regression, support vector machine, training of neural networks for classification.
Cooperative robotics via distributed optimization
Aggregative optimization. Constraint-coupled optimization algorithms based on decomposition schemes. Hierarchical robotic control architectures. Practical Python implementation on case study examples from formation control, collision avoidance, surveillance and task allocation in cooperative robotics. ROS 2 toolboxes for cooperative robotics.
Readings/Bibliography
The course is based on the following references:
F. Bullo, “Lectures on Network Systems”
G. Notarstefano, I. Notarnicola, A. Camisa, “Distributed Optimization for Cyber-Physical Networks”
A. Testa, G. Carnevale, G. Notarstefano, "A Tutorial on Distributed Optimization for Cooperative Robotics: from Setups and Algorithms to Toolboxes and Research Directions"
and on a set of slides which will be made available throughout the term.
Teaching methods
Frontal lectures, slides and lab exercising. Lectures will be always oriented to practical software implementation with application case studies in dedicated laboratory classes.
Assessment methods
Oral exam and discussion of a course project.
Teaching tools
“Virtuale” (course content and material, useful info). Software tools for the simulation of distributed control and optimization algorithms in distributed autonomous systems.
Office hours
See the website of Giuseppe Notarstefano
See the website of Ivano Notarnicola