SOFTWARE ARCHITECTURES FOR ROBOTICS

SOFTWARE ARCHITECTURES FOR ROBOTICS

_
iten
Codice
86805
ANNO ACCADEMICO
2018/2019
CFU
5 cfu al 1° anno di 10635 ROBOTICS ENGINEERING (LM-32) GENOVA

6 CFU al 2° anno di 8733 INGEGNERIA INFORMATICA (LM-32) GENOVA

SETTORE SCIENTIFICO DISCIPLINARE
ING-INF/05
LINGUA
Inglese
SEDE
GENOVA (ROBOTICS ENGINEERING )
periodo
1° Semestre
materiale didattico

PRESENTAZIONE

Software Architectures for Robotics (SofAR) is a novel and highly experimental field involving research and development activities aimed at providing scholars and professionals with conceptual tools and practical knowledge about how to design and implement complex software architectures for real-world robots. The course covers a few basics in high-end software development and focuses on real-world scenarios, e.g., companion robots for in-home assistance, or collaborative robots in factories.

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

A robot is a multi-purpose, multi-form and multi-function machine. It exhibits completely new and unique characteristics with respect to what it is for, how it is structured and what it is able to do. In order to cope with this diversity in form and function, software architectures for robots must be grounded on top of a model enforcing flexibility and efficiency well beyond those developed in other domain applications.

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

The main objective of Software Architectures for Robotics (SofAR) is to provide students and scholars with methodological tools and practical information about how to design and develop complex software architectures for robots able to operate in real-world conditions.

Robots are becoming complex systems made up of modules and components which behavior is complex in its own right, i.e., not all consequences of certain design choices can be easily predicted in advance. Given a specific scenario where a robot must operate autonomously and effectively, the problem of defining a software architecture requires:

  1. to define which sensor information is needed and how it must be processed;
  2. to couple sensor information and internal representation structures, which are appropriate in terms of efficiency, computational load, and usability;
  3. to design and develop algorithms to operate on such representation structures;
  4. to embed those algorithms in software modules and components, which must be concurrently executed on (typically real‐time) operating systems.

SofAR will provide a reasoned treatment of current state‐of‐the‐art design approaches, development software frameworks (specifically, ROS will be considered), modeling tools and advanced research trends in this field, as well as a comprehensive discussion about typical scenarios, solutions, and use cases.

PREREQUISITI

An advanced knowledge of C/C++ is required. A basic knowledge of Java may be helpful for certain topics.

Modalità didattiche

SofAR is organized in four key topics. Each key topic is made up of theoretical lectures followed by practice classes, usually amounting to a comparable number of hours. Students are strongly encouraged to propose novel solutions to specific practical problems, which originate from real-world research challenges or industrial needs.

Every year, SofAR hosts the so-call SofAR seminars, with lecturers addressing specific issues or providing a unique perspective on novel problems.

PROGRAMMA/CONTENUTO

Each year, the SofAR team tries at best to update the course given new trends and findings. This means that every year the course is slightly different. SofAR mixes up theoretical insights with practice classes centered around the widely adopted ROS framework. SofAR is usually centered around four key topics.

TOPIC 1: Introduction and motivations:

  1. Introduction to the course
  2. The robot software design process: requirements and challenges

TOPIC 2: The component-based software engineering (CBSE) methodology: 

  1. Introduction to CSBE: needs and advantages.
  2. Six well-known design patterns in Robotics
  3. Design patterns for behavior-based robots
  4. Three patterns to enable autonomous robot behaviors
  5. Design patterns for human-robot interaction

Practice classes focused on TOPIC 2.

TOPIC 3: Bio-inspired approaches to the development of software architectures for robots:

  1. Reactive and behavior-based control
  2. Subsumption architectures
  3. Behavior-based architectures

Practice classes focused on TOPIC 3.

TOPIC 4: Knowledge representation and reasoning:

  1. Knowledge representation techniques
  2. Reasoning and STRIPS-based planning, and how to integrate it
  3. ROSPlan: planning in ROS
  4. Using classical planners for tasks with continuous operators in robot tasks
  5. Combined task and motion planning

Practice classes focused on TOPIC 4.

The program above covers 5 ECTS credits. For students enrolled in the Computer Engineering track, 1 additional ECTS credit is devoted to the basics of ROS-based software development.

TESTI/BIBLIOGRAFIA

Relevant material will be given by the teacher during lectures.

DOCENTI E COMMISSIONI

Ricevimento: Il docente è disponibile per appuntamento previa email: nel suo ufficio al secondo piano del Padiglione E, Via Opera 13, 16145, Genova, in EMAROlab, Viale Causa 18, 16145, Genova.

Commissione d'esame

RENATO UGO RAFFAELE ZACCARIA (Presidente)

FULVIO MASTROGIOVANNI (Presidente)

LEZIONI

Modalità didattiche

SofAR is organized in four key topics. Each key topic is made up of theoretical lectures followed by practice classes, usually amounting to a comparable number of hours. Students are strongly encouraged to propose novel solutions to specific practical problems, which originate from real-world research challenges or industrial needs.

Every year, SofAR hosts the so-call SofAR seminars, with lecturers addressing specific issues or providing a unique perspective on novel problems.

ESAMI

Modalità d'esame

The SofAR final mark is based solely on assignments. Assignments work as follows:

  • at the beginning of October, a number of assignments are proposed;
  • students, self-organized in groups of 2/3 people, bid on assignments; each group is required to express 3 ordered preferences;
  • we'll try to satisfy the preferences at best and allocate assignments to groups accordingly;
  • at that point, work on assignments can start.

Please note that:

  • EMARO+ students have a strict deadline to complete their assignment, which is usually the end of February;
  • Computer Science Engineering students can take as much time as they want because they adhere to Italian rules only;
  • Ph.D. students attending the course can propose a topic on their own, agreed with me, as an assignment, and do not have any specific deadline.

Properly carrying out an assignment means providing:

  • a (possibly working, maybe with limitations) solution to the given problem;
  • properly commented code (in a specific format) and, where appropriate, a tutorial;
  • a video showing how the developed solution works. 

Modalità di accertamento

Assignments will be evaluated on the basis of:

  • the exhibited group's capability in applying the notions and insights discussed during classes;
  • the "quality" of the provided documentation;
  • the outcome of a discussion about the assignment.

ALTRE INFORMAZIONI

Follow-ups:

  • for successful assignments, we typically encourage students to co-author a scientific paper for Robotics-related conferences;
  • for EMARO+ students, a few assignments can be continued as group projects;
  • for Computer Science Engineering students, assignments can be continued as MSc theses.