Tallinn University of Technology

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 22.04 LTS Jammy Jellyfish) with ROS 2 (Version: Humble Hawksbill).

In the first lab, we provide support to set this up on your personal computer. For the course we recommend adding a partition on the hard drive of your computer (dual boot), install Ubuntu 22.04 Jammy, and use the dual-boot option for booting into Ubuntu environment.

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, using ROS 2 (Robot Operating System) and 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.

estonian e-course quality label 2023
This course has received the estonian e-course quality label in 2023.

Download the extended syllabus

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 turtlebot4 robot which can be seen on the figure. The task involves sensor data processing (laser), simultaneous localization and mapping (SLAM), Bayesian probability theory, as well as path and task planning. 

The μ-CAT 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 a gazebo-based 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, as well as development of ROS software for vision-based tracking of the robot.  

U-CAT swimming with diver.

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.