Advanced Course

Machine Learning for Robotics Python

Learn about machine learning concepts applicable to robotics, and understand the fundamental principles of artificial intelligence.

Course Overview


This course is dedicated to robot enthusiasts and all the others who would like to stay abreast of current technology trends, which change the world and have tremendous impact on human life. This course will give you a state-of-the-art opportunity to familiarize yourself with the general concepts of machine learning and see how the theory is executed in practice. We will discuss the main machine learning techniques and concepts. We will deploy discussed techniques (algorithms) in our domain in order to boost robot performance. Moreover, we are going to play with neural networks and understand this concept from scratch.

This course is an amazing journey and opportunity to capture important knowledge, which accompanies robotics daily performance process, control, and development more and more.


Learning Objectives

  • Learn machine learning concepts applicable to robotics
  • Understand the fundamental principles of artificial intelligence and how the robots think and make independent decisions
  • Make robots smarter and more collaborative
  • Advance your skills in Python programming

Simulation robots used in this course

You are going to work with TurtleBot 2. The robot is equipped with radar, which you are going to use in almost every unit.








What projects will you be doing?

[ROS Q&A] 168 - What are the differences between global and local costmap

Estimate future positions of the robot

You will run the robot and run linear regression – to be able to estimate future positions of the robot for the captured data set.

ROS Mini Challenge #2 - RViz

Obstacle avoidance with a mobile robot using Neural Network (NNs)

Let the robot learn the NNs to avoid a collision with the wall without using sensors. 

Obstacle Detection using the K-means Algorithm

Discover the obstacles in the robot environment (space) and estimate its positions using the k-means algorithm.

Use Principal Components Analysis in a ROS Environment

You are going to perform the simulations in ROS in order to capture the data set that will be used to understand PCA.

What you will learn

Course Syllabus

Unit 1: Introduction
  • What you will learn
  • Run the first robot simulation

20 mins.

Unit 2: Linear regression (single and multiple variables), logistic regression, and regularization

In this unit, we will learn the main concepts of regression algorithm and cover the following topics:

  • Intuitive understanding of the regression algorithm
  • Based on the data set, we will build and train single and multi-variable regression models from scratch in Python
  • We will also build from scratch and learn logistic regression
  • Previous comparison gives us a chance to be familiar with regularization (Lasso regression and Ridge regression). Called, respectively, L1 and L2 regularization.

3 hrs.

Unit 3: Supervised learning: neural networks learning using backpropagation

This unit will focus on Neural Networks (NN). We will learn the main concepts of NN: 

  • Intuitive understanding of NN (comparison to brain)
  • The NN concept and main block
  • Backpropagation algorithm (how to train NN)
  • How to deploy the NN model in ROS and run applications

3 hrs. 

Unit 4: Unsupervised learning: k-means algorithm

K-mean algorithm approach and implementation. The unit will discuss the K-means algorithm, which you are going to deploy in our robotics ROS domain. 

3 hrs.

Unit 5: Principal Components Analysis for dimensionality reduction

In this unit, you are going to continue the discussion regarding unsupervised learning. You will focus on PCA – Principal Component Analysis. This technique is a method of obtaining important variables (in the form of components) from a large set of features available in a data set (you capture a lot of data sets, which are difficult to visualize and make correct decisions).

3 hrs.

Unit 6: Course Challenge

Your task is to prepare a control application of intelligent radar based on the neural network (NN). The radar is mounted on the TurleBot robot and based on its status, the main robot motion program decides the movement of the robot. The robot moves inside the circuit environment. You should design the radar control system (NN) in such a way that the robot automatically passes the circuit. Normally, there is no limit for the number of circuits the robot passes!

10 hrs.

Markus Buchholz


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

Ready to get started?

Create an account to start learning

What’s next

People interested in this course also viewed


Using OpenAI with ROS


ROS Perception in 5 days