# Reinforcement Learning for Robotics Course - Python

Learn the main reinforcement learning techniques and algorithms.

## Course Summary

The course will give you the state-of-the-art opportunity to be familiar with the general concept of reinforcement learning and to deploy theory into practice by running coding exercises and simulations in ROS.

## What you will learn

- The reinforcement learning problem, Multi-armed bandit problem, State-Value and Action-Value functions, Markov Decision Processes, and Bellman Equation
- Dynamic programming
- Monte Carlo methods
- Temporal-difference methods

## Course Overview

### Introduction to the Course

Unit for previewing the contents of the Course. Includes a practical demo.

### The reinforcement learning problem

Learn some reinforcement learning basic concepts and terminology.

### Dynamic programming problem

Learn about the dynamic programming (DP) concept, which in our case is tailored for solving reinforcement learning problems - Bellman equations.

### Monte Carlo methods

In this unit, we are going to continue our discussion about optimal policies, which the agent evaluates, improves, and follows through Monte Carlo methods.

### Temporal-Difference methods

In this unit, we are going to continue our journey of finding the most optimal way to solve MDP, for the environment where the dynamics (transitions) are unknown in advance (model-free reinforcement learning).

### Course Project

In this final project, your task is to deploy a Q-learning algorithm to solve a maze environment with 3 obstacles.

## Teachers

### Markus Buchholz

PhD in Robotics and M.Sc in Electronics and Computer Science and M.sc in Economics. His main passion is programming (C++, Python) the Autonomous Systems by use of AI, Deep Learning and Reinforcement Learning.

## Robots used

### Parrot AR.Drone robot

### Turtlebot robot

## Learning Path

Machine Learning for Robots