Programming for Robotics - ROS
Abstract: This course gives an introduction to the Robot Operating System (ROS2) including many of the available tools that are commonly used in robotics. With the help of different examples, the course should provide a good starting point for students to work with robots. They learn how to create software including simulation, to interface sensors and actuators, and to integrate control algorithms.
Objective:
- ROS2 architecture: Master, nodes, topics, messages, services, parameters and actions
- Console commands: Navigating and analyzing the ROS2 system and the catkin workspace
- Creating ROS packages: Structure, launch-files, and best practices
- ROS2 C++ client library (rclcpp): Creating your own ROS2 C++ programs
- Simulating with ROS2: Gazebo simulator, robot models (URDF) and simulation environments (SDF)
- Working with visualizations (RViz) and user interface tools (rqt)
- Inside ROS2: TF transformation system, time, bags
Content: This course consists of a guided tutorial and exercises with increasing level of difficulty when working with an autonomous robot. You learn how to setup such a system from scratch using ROS2, how to interface the individual sensors and actuators, and finally how to implement first closed loop control systems.
Course dates
Room: TBA
Time: 08:00 - 12:00
Dates: 17.02, 19.02, 21.02, 24.02, 28.02
Lecturers: Fan Yang, Lennart Werner, Lorenzo Terenzi, Pol Eyschen, Marco Hutter
Evaluation
The evaluation consists of 3 exercises and a final project-based exam. Each exercise will contribute 20% to the final grade, while the exam will contribute 40%.
Mandatory preparation
Before joining the first lecture, we expect that you set-up Docker on your machine.
To develop for ROS2, you will need to work in a Ubuntu environment. In this course, we will use a Docker container for this purpose. You'll find instructions on how to set it up on Moodle.
This course requires basic knowledge of C++ and Python and focuses on ROS2. We recommend to refresh your C++ and Python skills before the start of the course.
Course material
The course this year 2025 will be administered through Moodle.
Materials from previous years can be found below.