Academic Year 2023/2024

Learning outcomes

The course focuses on a novel class of autonomous control and processing systems known as cyber-physical networks or distributed autonomous systems. These multi-agent systems consist of many cyber-physical agents that aim at performing global tasks via local communication and computation in a cooperative way. At the end of the course students will know how to design selected distributed control, learning and optimization methods to solve complex tasks in cooperative network systems. To bridge the gap between theory and application, laboratory activities will allow students to apply the proposed techniques to a number of application domains, including, e.g., planning and control of cooperative autonomous robots, machine learning and data analytics, decision making and optimal control of cooperative autonomous 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 borrowed from opinion dynamics and sensor 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 borrowed from distributed federated machine learning, e.g., logistic regression, support vector machine, training of neural networks for classification.

Cooperative robotics via distributed optimization

Constraint-coupled optimization algorithms based on decomposition schemes. Aggregative optimization. Practical Python implementation on case study examples borrowed from task allocation, formation control and surveillance in cooperative robotics. ROS 2 toolboxes for cooperative robotics.



The course is based on the books:

  • F. Bullo, “Lectures on Network Systems”
  • G. Notarstefano, I. Notarnicola, A. Camisa, “Distributed Optimization for Cyber-Physical Networks”

and a set of articles/notes 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