17/12/2024: On 19/12/2024 the students that submitted the homeworks by 23:59 of 17/12/2024 AND passed at least 2 out of 3 are eligible for taking the Questionnaire.
We will proceed to the verification of the homeworks on 18/12/2024 and we will communicate the results through classroom.
The students intending to partecipate to the pre-test will enroll with the instructions that will be communicated by email.
Please do not enroll if you do not want to attend, so we can save paper.
21/10/2024: OPIS code for In-Class course evauation: H3H6FWFC
03/10/2024: This year, the homework is assigned through Classroom. Be sure to join our course here
23/09/2024: Due to health reasons, the start of the course is delayed by one week. The lessons will start on Tuesday October 1 2024
The course is planned to start on the week of September 22 2023
This course aims at providing the students with skills to develop robotic software that is not covered directly in other courses.
We assume the students are familiar with structured programming languages, as we will focus on fundamental tools when it comes to develop fast, energy efficient and robust robotic software. In this edition of the course we will operate exclusively on the Linux operating system.
We will introduce:
C++, a fundamental language that is behind the core aspects of real-time and on-line software and firmware
ROS, an operating environment for supporting the development of robotic modules. ROS is the de-facto standard when it comes to robotic middlewares.
Concepts of Mobile Robot Navigation
The course is organized in frontal lessons and programming exercises.
B115 - DIAG
B120 - DIAG
B120 - DIAG
B120 - DIAG
IMPORTANT: For the communication concerning the course write an email to all teachers adding [RP] at the beginning of the email subject. Not doing so decreases the priority of the email.
A reasonable knowledge of the C programming language, Calculus and Linear Algebra.
We recommend a native installation of a Linux distro (recommend: Ubuntu 20.04 LTS). As an alternative, you can use a less efficient virtual machine.
The test consists of two parts:
Either
a ROS/C++ project to be assigned at the end of the course
OR
2 out of 3 homeworks that will be assigned during the lessons (still ROS/C++)
a questionnaire on the topics of the course. The questionnaire is designed to be easy for those that followed the lessons and developed the project autonomously. We will provide examples at the end of the lessons. THE QUESTIONNAIRE HAS TO BE TAKEN AFTER THE PROJECT/HOMEWORK HAS BEEN DELIVERED.
The project/homeworks will be evaluated by
Checking the correctness of the result
Inspecting the git history of the development
Asking questions about specific parts of the developed code
Cases of plagiarism, copy and improper use of AI tools will be resolved by invalidating the project and assigning a new one. When we suspect such situations we will ask the student to perform a (simple) live modification of the his/her project done. Failure in being able to satisfy our request will be interpreted as an evidence of improper behavior and addressed accordingly.
If you choose to pass the exam by completing a project, fill out this FORM. BEFORE STARTING TO WORK ON A PROJECT, WAIT FOR OUR CONFIRMATION.
31.1.2025, 09:00, Room 105, Marco Polo
24.2.2025, 09:00, Room 204, Marco Polo
20.3.2025, 10:00. Room 204, Marco Polo (together with course on OS)
20.3.2025 13:00, Aula A5, Via Ariosto
25.6.2025, 9:00, Room 105 Marco Polo
24.7.2025, 9:00, Room 108 Marco Polo
05.9.2025, 14:00, Room 105 Marco Polo
The lessons are preferrably attended in presence. To help students that are prevented to partecipate to the class, will provide recordings on youtube, and link then in the lesson's page.
Tuesday 10:00-12:00
Thursday 8:00 9:00-12:00
Viale Regina Elena 295, room 201
Viale Regina Elena 295, room 201
On Programming languages
compilers/interpreters/virtual machines
build systems (cmake)
C++
Basics and syntax
Classes
Metaprogramming
Concrete Cases
ROS
Basics and build system
ROS-Robot Setup
ROS-Navigation
Extras: c++ Course By Igor
We remind that the knowledge of C++ is not mandatory for the exam. Still, we believe that this programming skill might be useful for your career in Robotics.