Robot Programming and Simulation

Data is displayed for academic year: 2023./2024.

Course Description

High complexity of tasks that the modern mobile robots are facing calls for using a programming infrastructure which enables efficient integration of independently developed subsystems into a single system enabling autonomous robot operation. The Robot Operating System (ROS) offers an environment for developing modular control software, a communication infrastructure to connect the software components and an open source library of implemented algorithms. In the last years ROS has become the standard for robot control in the academic community and its influence is spreading also in the industry. In the scope of this course we shall cover the practical development of software modules in the ROS environment and their integration into a completely functional system for autonomous robot control.

Study Programmes

University undergraduate
[FER3-EN] Computing - study
Elective Courses (5. semester)
[FER3-EN] Electrical Engineering and Information Technology - study
Elective Courses (5. semester)
University graduate
[FER3-EN] Control Systems and Robotics - profile
Elective courses (1. semester)

Learning Outcomes

  1. describe and apply the basics of the ROS system
  2. demonstrate basic skills of programming ROS nodes
  3. describe and apply basics of robot and environment modelling for simulations
  4. demonstrate understanding of RTOS concepts and intraprocess communication
  5. demonstrate an ability of developing interface and control of robotic systems using ROS

Forms of Teaching


Lectures will be interactive where students will follow the lecturer step-by-step in solving simple examples.


In laboratory exercises students will solve more complex examples from the materials covered by lectures.

Grading Method

Continuous Assessment Exam
Type Threshold Percent of Grade Threshold Percent of Grade
Laboratory Exercises 50 % 40 % 50 % 40 %
Mid Term Exam: Written 50 % 30 % 0 %
Final Exam: Written 50 % 30 %
Exam: Written 50 % 60 %

Week by Week Schedule

  1. Basic ROS concepts (packages, nodes, messages and topics)
  2. Basic ROS concepts (packages, nodes, messages and topics), Programming ROS nodes
  3. Programming ROS nodes, Configuring the ROS navigation stack
  4. The ROS transform tree
  5. The ROS transform tree, Recording and playing back data
  6. Simulation tool requirements, Robot modelling for simulation
  7. Environment modelling, Modelling and simulating physical interactions
  8. Midterm exam
  9. RTOS concepts, Real-time scheduling
  10. Synchronization services, Real-time interprocess communication
  11. Distributed robotic system architecture
  12. User interface design basics
  13. Interface usability and efficiency
  14. Programming haptic interfaces, Programming voice control
  15. Final exam


J. M. O'Kane (2013.), A Gentle Introduction to ROS, CreateSpace
R. P. Goebel (2013.), ROS by Example, Lulu
A. Martinez, E. Fernandez (2013.), Learning ROS for Robotics Programming, Packt
M. Lutz (2013.), Learning Python, 5th Edtion, O'Reilley
P. Sheer (2001.), LINUX: Rute User's Tutorial and Exposition, Prentice Hall

For students


ID 223381
  Winter semester
L1 English Level
L1 e-Learning
30 Lectures
0 Seminar
6 Exercises
20 Laboratory exercises
0 Project laboratory

Grading System

87,5 Excellent
75 Very Good
62,5 Good
50 Sufficient