CODE 104729 ACADEMIC YEAR 2025/2026 CREDITS 2 cfu anno 1 ROBOTICS ENGINEERING 11963 (LM-32) - GENOVA LANGUAGE English TEACHING LOCATION GENOVA SEMESTER 1° Semester OVERVIEW The Research Track I Course aims at providing students with basic concepts needed for developing software for robotics. Frontal lessons and class exercises will help the students in learning and analyzing the most relevant software instruments for robotic programming (Linux, Git, C++, Python, Docker) and the robotic framework ROS. AIMS AND CONTENT LEARNING OUTCOMES The course aims to equip students with the foundational skills for software programming in robotics. It covers essential development tools (Docker, GitHub, Linux), basic programming in Python and C++, and introduces the Robot Operating System (ROS and ROS2) for building and managing robotic applications. AIMS AND LEARNING OUTCOMES Active participation in the proposed training activities (lectures and laboratory activities), individual study and the realization of projects will allow students to: - learn basic aspects of software programming for robotics; - know and use the robotic framework ROS / ROS2; - develop simple software architecture based on different communication paradigms (publish/subscribe, client/service); - implement and modify simple simulations involving mobile robots. PREREQUISITES No specific prerequisites are needed. Some elements of programming may be helpful. TEACHING METHODS Teaching methods consist of frontal lessons and class exercises. During frontal lessons, examples related to the implementation of the different aspects will be shown. Class exercises will be performed individually or in groups. Working students and students with certification of DSA, disability, or other special educational needs are advised to contact the teacher at the beginning of the course to agree on teaching and exam methods which, in compliance with the teaching objectives, take into account the methods of individual learning. SYLLABUS/CONTENT The course program consists of the following topics: - Linux (for Robotics) - Python (for Robotics) - C++ (for Robotics) - Docker - Distributed Version Control Systems - Basic principles of ROS and ROS2 - Services and messages in ROS and RO2 - Simulation of Mobile Robots with ROS and ROS2 RECOMMENDED READING/BIBLIOGRAPHY All slides shown during the lessons and other teaching materials will be available on the Aulaweb platform. Generally speaking, notes taken during the lessons and teaching materials uploaded on Aulaweb will be sufficient for the course. TEACHERS AND EXAM BOARD CARMINE TOMMASO RECCHIUTO Ricevimento: By appointment, at the Department of Informatics, Bioengineering, Robotics, and Systems Engineering (DIBRIS), via all'Opera Pia 13, 16145, or online using Microsoft Teams. For any questions, please refer to: carmine.recchiuto@dibris.unige.it LESSONS LESSONS START https://easyacademy.unige.it/portalestudenti/index.php?view=easycourse&_lang=it&include=corso Class schedule The timetable for this course is available here: Portale EasyAcademy EXAMS EXAM DESCRIPTION During the course, students will have to implement two assignments, based on the contents of the course. The final exam will consist of practical exercises. The final evaluation will be composed of the evaluation of the assignments (35%) and the evaluation of the final practical exam (65%). ASSESSMENT METHODS The final exam and the two projects aim to ascertain the following aspects of the students' preparation: - Acquired knowledge about the principles of robotic programming; - Ability to apply the functionalities provided by the ROS framework.