Robotics

From Chrome
Jump to: navigation, search


The following are last-minute news you should be aware of ;-)

* 18/07/2020: Final grades from the 17/06/2020 call 
* 10/07/2020: Second homework and urgent grades from the 17/06/2020 call 
* 12/06/2020: Exam rehearsal zoom room and form to be filled 
* 03/06/2020: First homework results are here ;-)
* 24/05/2020: Updates on the material about navigation: new slides include also planning but it is not part of this year program
* 24/05/2020: Link to a blog post and a paper about EKF-SLAM
* 24/05/2020: Updates on the schedule, with links to videos and one additional class
* 02/05/2020: Updated full course schedule
* 18/04/2020: Updated videos about ROS and published first project material!!!
* 04/04/2020: Updated slides about Robot Odometry with fixes
* 04/04/2020: Fixed schedule, added skid-steering paper, added fixed version of kinematics slides [2019/2020]
* 22/03/2020: Added link to Simone Mentasti online slides repository
* 10/03/2020: Change in the detailed schedule to anticipate the ROS labs and add 2 days which I originally forgot :-)
* 06/03/2020: Added FAQ section, the video of last lecture, and a "youtube" section in the teaching material
* 05/03/2020: Need to log in Polimi Office 365 web-mail to access the video  
* 05/03/2020: Added link to the video of the lecture
* 04/03/2020: The course starts today!
* 03/03/2020: Under Update! Tomorrow we start the new course edition!


Course Aim & Organization

This course will introduce basic concepts and techniques used within the field of autonomous mobile robotics. We analyze the fundamental challenges for autonomous intelligent systems when these move on wheels or legs and present the state of the art solutions currently employed in mobile robots and autonomous vehicles with a focus on autonomous navigation, perception, localization, and mapping.

Teachers

The course is composed by a blending of lectures and exercises by the course teacher and a teaching assistant.

Course Program

Lectures will provide theoretical background and real world examples. Lectures will be complemented with practical exercises in simulation for all the proposed topics and the students will be guided in developing the algorithms to control an autonomous robot.

Among other topics, we will discuss:

  • Mobile robots kinematics,
  • Sensors and perception,
  • Robot localization and map building,
  • Simultaneour Localization and Mapping (SLAM),
  • Path planning and collision avoidance.

Detailed course schedule

A detailed schedule of the course can be found here; topics are just indicative while days and teachers are correct up to some last minute change (I will notify you by email). Please note that not all days we have lectures!!

Note: Lecture timetable interpretation

* On Wednesday, in 5.1.1, starts at 12:15, ends at 14:15
* On Thursday, in 6.0.1, starts at 14:15, ends at 16:15
Date Day Time Room Teacher Type Topic
04/03/2020 Wednesday 12:15 - 14:15 Teams Virtual Room Lecture Matteo Matteucci Course Logistics and Introduction to Robotics
05/03/2020 Thursday 14:15 - 16:15 Teams Virtual Room Lecture Matteo Matteucci Intro to Robot Actuators and DC Motors
11/03/2020 Wednesday 12:15 - 14:15 Teams Virtual Room Lecture Matteo Matteucci More on Motors and Intro to Robot Sensors
12/03/2020 Thursday 14:15 - 16:15 Teams Virtual Room Lecture Matteo Matteucci Robot Sensors (continued)
18/03/2020 Wednesday 12:15 - 14:15 Teams Virtual Room ROS Simone Mentasti Middleware for robotics and ROS Installation Party
19/03/2020 Thursday 14:15 - 16:15 Teams Virtual Room ROS Simone Mentasti Ros workspace, Publisher/subscriber, launch file
25/03/2020 Wednesday 12:15 - 14:15 Teams Virtual Room Lecture Matteo Matteucci Introduction to Localization and Robot Kinematics
26/03/2020 Thursday 14:15 - 16:15 Teams Virtual Room Lecture Matteo Matteucci Differential Drive Robot Kinematics and Odometry
01/04/2020 Wenesday 12:15 - 14:15 Teams Virtual Room Lecture Matteo Matteucci Skid-Steering and Omnidrectional Robot Kinematics and Odometry
02/04/2020 Thursday 14:15 - 16:15 Teams Virtual Room Lecture Matteo Matteucci Ackerman like Robot Kinematics and Odometry
08/04/2020 Wednesday 12:15 - 14:15 Teams Virtual Room ROS Simone Mentasti Publisher, subscriber, launch file , custom messages
09/04/2020 Thursday 14:15 - 16:15 Teams Virtual Room ROS Simone Mentasti Services, parameters,parameters (continued), timers, node architecture
15/04/2020 Wednesday 12:15 - 14:15 Teams Virtual Room ROS Simone Mentasti TF, Rviz, Actionlib
16/04/2020 Thursday 14:15 - 16:15 Teams Virtual Room ROS Simone Mentasti Message filter, rospy
16/04/2020 Thursday 14:15 - 16:15 Teams Virtual Room ROS Simone Mentasti Project presentation
22/04/2020 Wenesday 12:15 - 14:15 Teams Virtual Room Lecture Matteo Matteucci Introduction to Robot Localization and LIDAR sensor modeling
23/04/2020 Thursday 14:15 - 16:15 Teams Virtual Room Lecture Matteo Matteucci Robot Localization and Bayes Filters (discrete)
29/04/2020 Wednesday 14:15 - 16:15 Teams Virtual Room --- --- -- No lectures (Lauree) --
30/04/2020 Thursday 14:15 - 16:15 Teams Virtual Room Lecture Matteo Matteucci Robot Localization with (Extended) Kalman Filters
06/05/2020 Wednesday 12:15 - 14:15 Teams Virtual Room Lecture Matteo Matteucci Robot Localization with Particle Filters
07/05/2020 Thursday 14:15 - 16:15 Teams Virtual Room Lecture Matteo Matteucci Robot Mapping
13/05/2020 Wednesday 12:15 - 14:15 Teams Virtual Room Lecture Matteo Matteucci Simultaneous Localization and Mapping
14/05/2020 Thursday 14:15 - 16:15 Teams Virtual Room Lecture Matteo Matteucci Simultaneous Localization and Mapping
20/05/2020 Wednesday 12:15 - 14:15 Teams Virtual Room Lecture Matteo Matteucci Robot Navigation Algorithms
21/05/2020 Thursday 14:15 - 16:15 Teams Virtual Room Lecture Matteo Matteucci Robot Navigation Algorithms
27/05/2020 Wednesday 12:15 - 14:15 Teams Virtual Room ROS Simone Mentasti ROS on multiple devices, Actionlib
28/05/2020 Thursday 14:15 - 16:15 Teams Virtual Room ROS Simone Mentasti Robot Navigation (Introduction)
03/06/2020 Wednesday 12:15 - 14:15 Teams Virtual Room ROS Simone Mentasti Robot simulators and Robot Navigation (Examples)
04/06/2020 Thursday 14:15 - 16:15 Teams Virtual Room ROS Simone Mentasti IMU Tools, Robot Localization
04/06/2020 Thursday 14:15 - 16:15 Teams Virtual Room ROS Simone Mentasti Second project presentation with slides
12/06/2020 Friday 16:30 - 18:30 Zoom Virtual Room Lecture Matteo Matteucci Q&A + Exam Rehearsal

Course Evaluation

Course evaluation is composed by two parts:

  • A written examination covering the whole program graded up to 27/32
  • A home project in simulation practicing the topics of the course graded up to 5/32

The final score will sum the grade of the written exam and the grade of the home project.

In some (exceptional) cases the home project could be substituted with a lab project, possibly with a slightly higher grade, but this has to be motivated and discussed with the teacher.

Course Project

In the course project you will use ROS to develop a simple autonomous mobile robot performing a simple mapping, localization and navigation task. The project requires some coding either in C++ / Python following what will be presented during the lectures. The project will be presented in two parts you have about one month to do each. Details will follow.

Teaching Material (the textbook)

Lectures will be based on material from different sources, teachers will provide their slides to students as soon they are available.

Course Slides

Slides from the lectures by Matteo Matteucci

Last version of slides from the lectures by Simone Mentasti are available HERE!. Past year slides are below:

Useful stuff from the web

These are videos from the web which might be useful to understand better the material presented in the lectures

This blog post can be useful to better understand the EKF-SLAM idea and implementation

Useful readings

These are papers which explain some of the topics in the lecture with a higher level of details


Course Projects

Here they are the curse homework projects:

Frequently Asked Questions

Course Structure

What is the biggest difference with the course 093217 ROBOTICS AND DESIGN?

  • Robotics and Design is a practical course focused on the development of a robotics application, you will not learn about the theoretical aspects of robotics, but you will build a robot with a purpose which changes every year. I consider the two courses as complimentary.

Exams and Evaluation

Are there any solutions available for the past exams?

  • No, if you have doubts or questions, just send me your proposed solution and I will reply tailoring the answer to your current understanding.

Is it important to buy/read the text book to be able to follow the course? I can’t find it in the library, is there any alternative book?

  • No, it is not required, as from past experience attending classes and checking the material provided y the teachers is enough. Obviously reading the book will provide much more information..

Homeworks and ROS

In the schedule when it says ROS, are these lectures as well or are they practical work i.e. lab/excercise?

  • They are ex-cathedra lectures where you are expected to bring your laptop, it is not mandatory and you can follow the class in a classical passive way, but I suggest to consider it as a lab and take your laptop with you if you can.

Out of all the scheduled activities this semester, approximately how many of these are practical lab/excercise?

  • Indeed not all ROS lectures will present coding exercises, I expect half of them will be about coding and the other half more on the technical background you need to understand what you are coding.

Should I install ROS on my laptop/desktop?

  • Absolutely yes. This means you need to have linux on your machine, possibly ubuntu 16.04 or 18.04. This can be achieved in different ways, we suggest a native install via dual boot or as main operating system (we do not take any responsibility of something happening to your data or hardware in doing this operation). Other options such as virtual machine or live distro ae not as effective as a real install. Microsoft Teams, used for remote teaching, is available for linux as well.

Which editor/IDE should I use for ROS?

  • We do not suggest any particular editor for ROS, standard text editors such as nano/gedit/sublime + a terminal are enough. Nevertheless, you can use the environment you prefer for C++ development; some students, in the past, have used Eclipse or Clion. You can also check the list of supported ROS editors or Roboware, the latter has been designed for ROS, but it does not offer any special feature you will miss using standard C/C++ editors.

As I understand the “homework/project” is a group project. Is this correct and how are the groups formed?

  • It is not a group project, while it is allowed to do it in groups (up to 3 people). I expect the groups to form naturally in classes. We usually setup a slack group for the project you can organize autonomously. Nevertheless you can do the project alone as well.

When “Part 1” of the homework/project will start?

  • Right after we have finished the first block of lectures about ROS. This should happen around Easter plus/minus a week.

Past Years Useful Material

Here you find material from past editions of the course that you umight find useful in preparing the exam.

Past Exams and Sample Questions

Since the 2015/2016 Academic Year the course has changed the teacher and this has changed significantly the program and the exam format as well. For this reason we do not have many past exams to share with you, they will accumulate along the years tho.

Past Course Project

Here you find past course projects in case you are interested in checking what your colleagues have been pass through before you. In some cases they may have been more lucky in some others you might be the lucky one ... that's life! ;-)

Homework 2018/2019

The 2018/2019 course project is divided in two releases. The homework philosophy should be "You have to struggle, but not too much!". Indeed the homework is made to challenge you and make you exercising and learn by doing, nevertheless if you find yourself stuck please write us and we will give you the required hints to continue and complete ... this includes extending the deadline (for all) or allowing you to use python instead of C++ (for selected students).

Advice: Start as soon as possible doing the homework!

Homework

Homework 2016/2017

The 2016/2017 course project is divided in two releases to provide you something to work on as early as possible during the course. The homework philosophy should be "You have to struggle, but not too much!". Indeed the homework is made to challenge you and make you exercising and learn by doing, nevertheless if you find yourself stuck please write us and we will give you the required hints to continue and complete.

Advice: Start as soon as possible doing the homework!

Homework

Homework 2015/2016

This year project is divided in steps; each of them is worth some points out of the 5/32 points available for the final mark. You find the project description here, it is complete, it contains parts up to 4, parts 5 is optional, but we suggest to do it anyway since it requires a limited amount of time.:

  • 2015/2016 Course Project v1.0
  • 2015/2016 Kobra STL files: in case you want to make your simulation look more real here you find the STL files of the Kobra robot in the "Safer" version. Unfortunately the STL files are scaled down with respect to the real robot, so you have to modify those if you want to use.

Additional Resources

If you are interested in a more deep treatment of the topics presented by the teachers you can refer to the following books and papers:

The following are links to online sources which might be useful to complement the material above

  • ISO 8373:2012: ISO Standard "Robots and robotic devices -- Vocabulary"
  • ROS: the Robot Operating System
  • Gazebo: the Gazebo robot simulator
  • AIRLab ROS Howto: a gentle introduction to ROS with node template and program examples