Programming for Robotics - ROS

Abstract: This course gives an introduction to the Robot Operating System (ROS) 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: 

  • ROS architecture: Master, nodes, topics, messages, services, parameters and actions
  • Console commands: Navigating and analyzing the ROS system and the catkin workspace
  • Creating ROS packages: Structure, launch-files, and best practices
  • ROS C++ client library (roscpp): Creating your own ROS C++ programs
  • Simulating with ROS: Gazebo simulator, robot models (URDF) and simulation environments (SDF)
  • Working with visualizations (RViz) and user interface tools (rqt)
  • Inside ROS: TF transformation system, time, bags
  • Introduction to ROS2

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 ROS, how to interface the individual sensors and actuators, and finally how to implement first closed loop control systems.

Course dates

Room: HG D 1.2, LEE E 101

Time: 08:00 - 12:00

Dates: 19.02, 21.02, 23.02, 26.02, 01.03

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%.

The Exam will take place on 01.03.2024 from 08:00 - 12:00 in HG D 1.2!

Mandatory preparation

Before joining the first lecture, we expect that you set-up the Virtual Machine necessary for this course.

To develop for ROS, you will need to work in a Ubuntu environment. In this course, we will use a Virtual Machine for this purpose. You'll find instructions on how to set it up on Moodle.

This course requires basic knowledge of C++ and focuses on ROS. We recommend to refresh your C++ skills using any C++ tutorial, e.g. external pagehttps://www.learncpp.com/.

Course material

The course this year 2024 will be administered through Moodle.

Materials from previous years can be found below.

By playing the video you accept the privacy policy of YouTube.Learn more OK
Video Recording of the Lectures (2021)

Setting up a native developer PC (after the course)

If you work on a project involving ROS programming under Linux, a native installation will provide you with a more stable and more performant alternative to a Virtual Machine. To set up a native installation, follow the instructions DownloadSetup developer PC (PDF, 91 KB).

JavaScript has been disabled in your browser