Programing for the Robot Operating System

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

General Competencies

Basic knowledge on using the Linux operating system and programming in the Python programming language. Basic understanding o the architecture and implementation of the Robot Operating System (ROS). Capability to implement ROS nodes: applications that communicat through the ROS middleware. Basic knowledge about solving the mobile robot autonomous navigation problem and configuring the ROS navigation stack.

Learning Outcomes

  1. Use basic Linux commands.
  2. Use Linux tools to install additional software.
  3. Solve simple problems using the Python programming language.
  4. Explain the role of the Robot Operating System in autonomous robot control.
  5. Produce a ROS node: an application capable of exchanging data over the ROS middleware.
  6. Apply the ROS navigation stack to enable autonomous mobile robot navigation.

Forms of Teaching

Lectures

Interactive lectures with examples and practical assignments.

Laboratory Work

Assignments integrated into lectures.

Programming Exercises

Project assignment on the robot.

Grading Method

Continuous Assessment Exam
Type Threshold Percent of Grade Comment: Percent of Grade
Homeworks 50 % 100 % 0 % 0 %

Week by Week Schedule

  1. Linux operating system basics.
  2. Python programming language basics.
  3. Introduction to the Robot Operating System (ROS). Programming ROS nodes in Python (part 1).
  4. Programming ROS nodes in Python (part 2).
  5. Data logging and processing using rosbag.
  6. Robot map building and navigation in ROS
  7. C++ programming in Linux.
  8. Programming ROS nodes in C++.
  9. Advanced ROS programming topics. Final project: controllling an autonomous robot in ROS.
  10. No activity.
  11. No activity.
  12. No activity.
  13. No activity.
  14. No activity.
  15. No activity.

Study Programmes

University undergraduate
Computer Engineering (module)
Skills (5. semester)
Computer Science (module)
Skills (5. semester)
Computing (study)
Skills (3. semester)
Control Engineering and Automation (module)
Skills (5. semester)
Electrical Engineering and Information Technology (study)
Skills (3. semester)
Electrical Power Engineering (module)
Skills (5. semester)
Electronic and Computer Engineering (module)
Skills (5. semester)
Electronics (module)
Skills (5. semester)
Information Processing (module)
Skills (5. semester)
Software Engineering and Information Systems (module)
Skills (5. semester)
Telecommunication and Informatics (module)
Skills (5. semester)
Wireless Technologies (module)
Skills (5. semester)
University graduate
Computer Engineering (profile)
Skills (1. semester) (3. semester)
Computer Science (profile)
Skills (1. semester) (3. semester)
Control Engineering and Automation (profile)
Skills (1. semester) (3. semester)
Electrical Engineering Systems and Technologies (profile)
Skills (1. semester) (3. semester)
Electrical Power Engineering (profile)
Skills (1. semester) (3. semester)
Electronic and Computer Engineering (profile)
Skills (1. semester) (3. semester)
Electronics (profile)
Skills (1. semester) (3. semester)
Information Processing (profile)
Skills (1. semester) (3. semester)
Software Engineering and Information Systems (profile)
Skills (1. semester) (3. semester)
Telecommunication and Informatics (profile)
Skills (1. semester) (3. semester)
Wireless Technologies (profile)
Skills (1. semester) (3. semester)

Literature

J. M. O'Kane (2013.), A Gentle Introduction to ROS, CreateSpace

Lecturers in Charge

Grading System

ID 127101
  Winter semester
2 ECTS
L0 English Level
L1 e-Learning
9 Lecturers
0 Exercises
9 Laboratory exercises

General

Excellent
Very Good
Good
Acceptable