»Hi Tina Maze! Where are you hiding your skis?«. Aha, under the blue cylinder. I already saw it, when I was delivering his hamlet to Peter Prevc. I should return to it; I have to find the right path. It will be better to turn left, because I will arrive at the goal faster, and I will avoid obstacles better. I have to deliver the skies to Tina, and then I’m done for today with my job as a DeliveryBot.


Such type of communication and reasoning is needed to solve complex tasks, such as the one described above. We, humans, are very good in performing such types of tasks, however intelligent robots are capable of such behavior as well. Such intelligent agents consist of modules for machine perception (the use of sensors, signal processing, object recognition, image interpretation, localization), as well as modules for control, tactical and strategic reasoning and learning. Similarly as humans, the intelligent robot systems can also perceive the environment, experiment, learn, and apply the acquired knowledge for solving the tasks in the future.


The course is very practically oriented with the emphasis on the hands-on experience. The solutions will be implemented and integrated on real robotic platforms using the Robot Operating System, ROS. We will work with mobile robots, which we built from the robot vacuum cleaner iRobot Roomba, the RGBD camera Kinect and other electronic parts. The robots will have to autonomously solve complex tasks, such as the delivery task described above. And of course, to make the development of such robots even more interesting and challenging, the robots developed by the groups of students will compete between themselves in a real robot competition. Let the best robot win!

The main emphasis is on hands-on work by programming the robots in room reserved for these activities during the lab classes and at other times as well. The work should be done during the semester. We set three major milestones for evaluating different functionalities of the developed robot systems. The milestones are typically scheduled in the first week of April, May and June. The evaluation of the developed robotic systems on these milestones replaces the written exam.

Humans have always been interested in the idea of intelligent machines. Yet, what is intelligence? Is the computer which beats the world champion in chess really intelligent? Or the robot which independently researches the Mars' surface? What about the computer program which diagnoses cancer more accurately than medical experts? Do some characters in computer games act intelligently?  Form the very beginning of the computer era there are philosophical and scientific discussions about possibility to create an artificial system which will act intelligently. The research in the area of artificial intelligence has clarified the basic questions about intelligence and brought a series of tools and approaches for solving problems, which are difficult or even impossible to solve with other methods.

In the Intelligent Systems course, you shall learn some of the useful techniques. A robot or an agent has to analyse the data obtained  from sensors. It has to communicate with humans in natural language and learn from its successes and failures. Techniques which enable such intelligent behaviour are often based on the ideas that stem from nature, such as neural networks or evolutionary learning, but use also discoveries from machine learning, statistics, natural language processing, and reinforcement learning. The focus of the course is to prepare students for practical use of theoretical knowledge and application of learned techniques.

Practical part of the course is in the form of programming assignments, solving problems, and web quizzes. Assistant is available for consultations. The grade of practical work is the sum of grades for three assignment (to be submitted during the semester), where each assignment has to be finished on time and graded with at least 50% of points. The precondition for passing the practical work is achieving at least 50% of points in web quizzes.

The final course grade consists of practical work grade (50%) and written exam (50%), in both parts one has to achieve at least 50% of points. Oral exam is optional.

Machine perception is a rapidly developing exciting field with a wealth of applications available as well as those still to come. This course will cover in depth the mathematics and basic techniques of computer vision which are widely used in a broad spectrum of modern applications. If you have ever wondered what kind of methods devices like Google glasses, Robotic vehicles, Panorama stitching, Photo editing software, etc., use, this course will address that curiosity and more. At the end of this course, the student is expected to have a grasp in the following topics: (i) Basic image processing techniques, (ii) Image derivatives and edges, (iii) Model fitting, (iv) Local descriptors, (v) Stereo vision, (vi) Subspace methods for recognition, (vii) Object detection, (viii) Object recognition. The course is composed of (i) the lectures in which we will cover the relevant theory and (ii) exercises in which the students will implement the basic techniques and solidify the theory.

Coursework consists of 6 mandatory two-week assignments (complete them on your own with consultations with the assistant and professor), starting within the first weeks of the course. The assignments are uniformly distributed throughout the semester. More info available at e-classroom.

The course requires understanding mathematical derivations and a skill to transfer them into programming. The course is thus ranked in the upper quarter in difficulty level (estimated by students) among all courses at FRI. It requires solid mathematical and programming skills. You should not select this course unless you are prepared to invest a lot of effort.