Robot Programming and Simulation

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.

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

Study Programmes

University undergraduate
Free Elective Courses (5. semester)
Free Elective Courses (5. semester)
University graduate
[FER3-HR] Communication and Space Technologies - profile
Elective Courses (1. semester)
[FER3-HR] Computational Modelling in Engineering - profile
Elective Courses (1. semester)
[FER3-HR] Computer Engineering - profile
Elective Courses (1. semester)
[FER3-HR] Computer Science - profile
Elective Courses (1. semester)
[FER3-HR] Control Systems and Robotics - profile
Elective Courses (1. semester)
Elective Courses of the Profile (1. semester)
[FER3-HR] Data Science - profile
Elective Courses (1. semester)
[FER3-HR] Electrical Power Engineering - profile
Elective Courses (1. semester)
[FER3-HR] Electric Machines, Drives and Automation - profile
Elective Courses (1. semester)
[FER3-HR] Electronic and Computer Engineering - profile
Elective Courses (1. semester)
[FER3-HR] Electronics - profile
Elective Courses (1. semester)
[FER3-HR] Information and Communication Engineering - profile
Elective Courses (1. semester)
[FER3-HR] Network Science - profile
Elective Courses (1. semester)
[FER3-HR] Software Engineering and Information Systems - profile
Elective Courses (1. semester)


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

Associate Lecturers


For students


ID 240673
  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