Site logo

Robotics for bachelors

Robot guidance and software IAS0220

The course aims at providing a basic knowledge of robotics, its general working principles (sensors, algorithms, actuators) and at introducing the Robot Operating System (ROS), a middleware that links lower-level processes (such as sensor data reading and motor control) to robotic planning and control software.

The course is composed of theoretical lectures and practical laboratories.

The lectures present high level overview of the field of robotics, the sensors and basic algorithms. In the practical part, the algorithms are applied on virtual robots using the ROS environment.

More precisely, the course discusses the following topics:

  • Introduction to Linux and ROS

  • Robot kinematics

  • Unified Robot Description Format (URDF)

  • Robot autonomy

  • Sensors, data visualization and processing (e.g. machine vision)

  • Robot control

  • Localization and mapping

  • Path planning

Course Prerequisites:

The course requires a personal computer with a Linux environment (Ubuntu 20.04 LTS Focal Fossa) with ROS (Version: Noetic). A Bootable USB stick is provided to students who don’t want to dual-boot their computer, but we encourage students to dual-boot to avoid complications. Ubuntu and ROS can be installed during the first practical exercise.


Robotics for masters

Robotics IAS0060

This course aims to introduce various essential themes of mobile robotics, such as feedback control for motion, robotic vision, sensor fusion, bioinspired locomotion, path planning and simultaneous localization and mapping (SLAM). The course teaches practical knowledge that introduces students to contemporary methods of robot programming, either using the Robot Operating System (ROS) or directly programming microcontrollers to define robot software architecture and solve various problems from the above-mentioned fields.

The course is based on project work where several students collaborate in a group. Each group can choose from three topics which are either focused on motion control for bioinspired underwater vehicles, sensor fusion or SLAM. The groups work independently with supervision by researchers from the Centre for Biorobotics towards solving a global goal within the respective projects. This goal is broken down into sub-tasks on a weekly basis. Furthermore, the students must showcase their progress towards the final goal with weekly oral progress reports and programming assignments. The necessary algorithms are initially developed and tested within simulation environments. Upon successful testing those algorithms are implemented, tested and evaluated on real robots in the Centre for Biorobotics.

Goals and Learning outcomes:

  • Learn to solve practical problems in mobile robotics

  • Learn how robot software is designed and implemented

  • Learn to use simulators to speed up designing robot applications

  • Learn to write software for real robots and test them

  • Learn to solve the most fundamental robotics problems (sensing and actuation coupling, control, mapping, trajectory planning etc.)

Course Prerequisites:

  • Programming skills (C++ or Python)

  • Math and physics courses on the level of university engineering curricula

  • High level of motivation and willingness to work hard

Short description of the 3 topics: 


The goal of this project is to use SLAM to navigate in an unknown indoor environment and implement a cleaning robot behaviour. The algorithms will be tested in a simulator and later implemented on the SCITOS robot which can be seen on the figure below. The task involves sensor processing (laser and sonar), simultaneous localization and mapping (SLAM), Bayesian probability theory, as well as path and task planning.

The SCITOS robot.
The SCITOS G5 robot.

The goal of this project is to program different motion patterns for the robot and use sensor-based feedback to control orientation and position. All algorithms must be implemented on a microcontroller, which requires special attention to the software architecture. The algorithms will be developed and tested in a hardware-in-the-loop simulator setup, involving ROS and an underwater simulator, and later implemented on the μ-CAT robot (see picture). The task involves sensor signal processing (pressure, light, IMU), filtering, feedback control (PID and Fuzzy), bioinspired locomotion and software implementation on computationally limited systems.

The μ-CAT robot.
The μ-CAT robot.

The goal of this project is to program the bioinspired underwater robot U-CAT to detect and follow a diver based on visual and acoustic signals. The algorithms will be developed and tested using ROS and an underwater simulator and later implemented on the real robot. Upon successful implementation field trials can be conducted to assess the efficacy of the developed algorithms. The task involves sensor processing (pressure, camera image, IMU, acoustic pinger), sensor fusion (Kalman Filters), feedback control (PID and Fuzzy) and bioinspired locomotion.

U-CAT swimming with diver.
U-CAT swimming with diver.