CODE 86805 ACADEMIC YEAR 2021/2022 CREDITS 5 cfu anno 1 ROBOTICS ENGINEERING 10635 (LM-32) - GENOVA SCIENTIFIC DISCIPLINARY SECTOR ING-INF/05 LANGUAGE English TEACHING LOCATION GENOVA SEMESTER 2° Semester TEACHING MATERIALS AULAWEB OVERVIEW 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. AIMS AND CONTENT LEARNING OUTCOMES 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. AIMS AND LEARNING OUTCOMES 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 environments. Robots are becoming complex systems made up of modules and components whose 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: to define which sensory information is needed and how it must be processed; to couple sensory information and internal representation structures, which are appropriate in terms of efficiency, computational load, and usability; to design and develop algorithms to operate on such representation structures; to embed those algorithms in software modules and components, which must be concurrently executed on (partly real‐time) operating systems. SofAR will provide a reasoned treatment of current state‐of‐the‐art design approaches, software engineering basics, 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. PREREQUISITES Advanced knowledge of C/C++. Basic knowledge of Java may be helpful in certain situations. TEACHING METHODS SofAR is organized in five key topics. Each key topic is made up of theoretical concepts followed by practical work. SofAR will use the flipped classroom teaching methodology. 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. SYLLABUS/CONTENT Each year, the SofAR team tries at best to update the course given new trends and development. This means that the course is slightly different each year. SofAR mixes up theoretical insights with practice classes centered around the widely adopted ROS framework. SofAR is usually centered based on five key topics. TOPIC 1: Introduction and motivations: Introduction to the course The robot software design process: requirements and challenges TOPIC 2: Basics of software engineering aspects: Software development processes Software reliability models The Unified Modelling Language TOPIC 3: The component-based software engineering (CBSE) methodology: Introduction to CSBE: needs and advantages Six well-known design patterns in Robotics Design patterns for behavior-based robots Three patterns to enable autonomous robot behaviors Design patterns for human-robot interaction Practice classes focused on TOPIC 3. TOPIC 4: Bio-inspired approaches to the development of software architectures for robots: Reactive and behavior-based robot control Subsumption architectures Behavior-based architectures Practice classes focused on TOPIC 4. TOPIC 5: Knowledge representation and reasoning for robots (joint with AI4RO1 and AI4RO2) Knowledge representation techniques Reasoning and STRIPS-based planning, and how to integrate it ROSPlan: planning in ROS Using classical planners for tasks with continuous operators in robot tasks Combined task and motion planning Practice classes focused on TOPIC 5. RECOMMENDED READING/BIBLIOGRAPHY Relevant material will be given by the teacher and the instructors during the lectures. TEACHERS AND EXAM BOARD FULVIO MASTROGIOVANNI Ricevimento: The teacher is available as per meeting request by email at: his office on the second floor of the "E" building, Via Opera Pia 13, 16145, Genoa, the EMAROlab, Via Causa 18, 16145, Genoa. Exam Board FULVIO MASTROGIOVANNI (President) ENRICO SIMETTI RENATO UGO RAFFAELE ZACCARIA (President Substitute) LESSONS LESSONS START https://corsi.unige.it/10635/p/studenti-orario Class schedule L'orario di tutti gli insegnamenti è consultabile all'indirizzo EasyAcademy. EXAMS EXAM DESCRIPTION The SofAR final mark is based on assignments (50%) and on a written exam (50%). Assignments work as follows: at the beginning of October, a number of assignments are proposed; students, self-organized in groups of up to 10 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+ and JEMARO students have a strict deadline to complete their assignment, which is usually the end of February; Ph.D. students attending the course can propose a topic on their own, agreed with us, as an assignment, and do not have any specific deadline. Properly carrying out an assignment means providing: appropriate UML graphs related to the software architecture the group will have to design and develop; 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. The written exam will check single students' knowledge about the topics discussed throughout the course. ASSESSMENT METHODS The overall grade will be determined on the basis of: the exhibited group's capability in applying the notions and insights discussed during the classes in the assignments; the "quality" of the provided documentation of the assignments; the outcome of a discussion about the assignment; for each student, the results of the written exam. Exam schedule Data Ora Luogo Degree type Note 20/01/2022 09:00 GENOVA Orale 02/02/2022 09:00 GENOVA Orale 01/06/2022 09:00 GENOVA Orale 14/06/2022 09:00 GENOVA Orale 22/07/2022 09:00 GENOVA Orale 29/08/2022 09:00 GENOVA Orale FURTHER INFORMATION Follow-ups: for successful assignments, we typically encourage students to co-author a scientific paper for Robotics-related conferences; for EMARO+/JEMARO students, a few assignments can be continued as possible MSc thesis topics.