Mario Selvaggio
Academic Year 2025/2026
- Monday, 8:30-10:30, Room NA-I-A6 (provisional)
- Wednesday, 8:30-10:30, Room NA-T-A6 (provisional)
Lectures are taught in person. Microsoft Teams (MT) platform will be used in case of attendance issues, to share class material, and general course's organization. Students are kindly invited to join the MT class with code gu84djp.
Send an e-mail (using the tag [RL2025] in subject) to the instructor or to the assistant(s) to communicate with us. You can book a 1-hour meeting via the appointment scheduling feature provided by google calendar. The assistantship will be provided in person and/or via the MT platform.
In this course you will learn how to efficiently build robotic applications using the Robot Operating System (ROS), that provides you access to a large set of open-source software and tools. Students will learn from partaking in practical activities.
- Understanding the ROS architecture, programming, and tools
- Creating ROS C++ programs using external libraries
- Simulating and controlling a robotic system to perform a task
- Introduction and course overview
- ROS essentials:
- Preliminary setup: linux operating system, git, docker, C++ programming
- ROS introduction, programming & tools
- ROS robot simulation
- ROS robot motion planning
- Manipulation:
- Kinematics and dynamic control algorithms
- Trajectory planning
- Robotic vision:
- Computer vision
- Visual servoing
- Autonomous navigation:
- Differential drive mobile robot
- Navigation & SLAM
The exam consists of an oral discussion of a technical project developed along the course. For course attenders, classwork and homeworks will be used to assess the student's knowledge. Homeworks assigned during classdays must be completed within one week. A template for the report can be found here. Students not attending are required to contact the instructor to define the technical project to be developed in simulation.
Here is a tentative schedule of lectures. Readings and assignments will be added as they become available.
Days | Topic | Homeworks | ||
WEEK 1 | Monday 15/09 | Wednesday 17/09 | Introduction & setup | |
Introduction | Setup your PC | HW 0: Setup your PC | ||
WEEK 2 | Monday 22/09 | Wednesday 24/09 | ROS essentials | |
ROS – Introduction | Hands-on class | |||
WEEK 3 | Monday 29/09 | Wednesday 3/10 | ||
ROS 2 – Basics (nodes, interfaces, launch, log, record) | ROS 2 – Workspace and packages | |||
WEEK 4 | Monday 06/10 | Wednesday 08/10 | ||
ROS 2 – Launch | Hands-on class | |||
WEEK 5 | Monday 13/10 | Wednesday 15/10 | ||
ROS 2 – Tools | ROS 2 – Simulation | |||
WEEK 6 | Monday 20/10 | Wednesday 22/10 | ||
ROS 2 – Sensors & controllers | Hands-on class | HW 1: Bring up your robot | ||
WEEK 7 | Monday 27/10 | Wednesday 29/10 | Manipulation | |
Kinematics & dynamics – KDL | Hands-on class | |||
WEEK 8 | Monday 03/11 | Wednesday 05/11 | ||
Move-it | Hands-on class | HW 2: Control your robot | ||
WEEK 9 | Monday 10/11 | Wednesday 12/11 | Robotic vision | |
Vision sensors | ||||
WEEK 10 | Monday 17/11 | Wednesday 19/11 | ||
Computer vision - Open CV | Hands-on class | HW 3: Implement a vision-based task | ||
WEEK 11 | Monday 24/11 | Wednesday 26/11 | Autonomous navigation | |
Differential drive mobile robot | Navigation architecture | |||
WEEK 12 | Monday 01/12 | Wednesday 03/12 | ||
SLAM | Hands-on class | HW 4: Navigate a mobile robot | ||
WEEK 13 | Monday 08/12 | Wednesday 10/12 | ||
Hands-on class | ||||
WEEK 14 | Monday 15/12 | Wednesday 17/12 | ||
Hands-on class | Hands-on class |
Click here for the Slides PDF file
Click here for the Setup your PC PDF file
Click here for the Homework 0 PDF file
Click here for the Homework 1 PDF file
Click here for the Homework 2 PDF file
Click here for the Homework 3 PDF file
Click here for the homework 4 PDF file