After successful completion of the course, students are able to:
- Explain ROS2: its architecture, its applications, and how to extend its abilities using self-developed ROS nodes and packages
- Install and configure ROS2 (On Ubuntu, Mac, or Windows) and its packages
- Design a multisensory (multimodal) system that can handle and control diverse input/output devices from a PC
- Implement the designed multisensory system using ROS2 nodes (C++ or Python3), Arduino-compatible sensors, and possibly using a Single Board Computer
- Read from/write/react to diverse message types from (mostly Arduino-compatible) sensors (e.g., Mic, Camera, Depth Camera, IR receiver, Ultrasonic range finder...) or to actuators (e.g., Servos, Step motors, IR Emitters, Relays, ...)
The Robot Operating System (ROS) is a "set of software libraries and tools for building robot applications. From drivers and state-of-the-art algorithms to powerful developer tools, ROS has the open-source tools you need for your robotics project." Nevertheless, the usage of ROS can go beyond the scope of robotics, and thanks to its capabilities of handling a wide variety of sensors and actuators, it could be employed to develop multisensory (or multimodal) HCI applications for a standard computer. In this course, we intend to use ROS2 to create such applications. The knowledge obtained in this course can be applied to robotic contexts later by the students in other courses.
There will be two 1.5h sessions at the beginning of the semester that the students must attend in person. The focus will be to introduce ROS2 and its capabilities.
After the tutorials, students have to either implement one of the determined projects explained in the tutorials or design and implement an application out of their own ideas.
Suitable laboratory equipment is available for the implementations and will be lent to the students for the course duration.
The course instructor will be available through email; when necessary, an in-person meeting could be arranged.
In the final phase, the application or prototype will be evaluated through:
- a short document summarizing the work done
- a short proof-of-concept video demonstrating the results
- a short presentation at the end of the semester followed by some questions from the instructor and possibly other students.
ECTS Breakdown - 1.5 ECTS ~ 37.5h
4h Introduction and tutorials27h Topic implementation5h Documentations (code, mid-term and final reports) and demo video2h Final presentation
The final grade will be given as follows:
- There are some pre-determined project topics and the possibility of a self-defined project topic. The projects require different amounts of work; therefore, the maximum possible grade depends on the chosen project. The projects are categorized into three difficulty levels:
Students are free to choose any level.
The final grade will be calculated based on the following parameters:
Basic Python and/or C++ programming skills.
Basic knowledge of Linux and the Command line is useful.