Difference between revisions of "Robotics"

From Chrome
Jump to: navigation, search
(Detailed course schedule)
(16 intermediate revisions by the same user not shown)
Line 2: Line 2:
  
 
The following are last minute news you should be aware of ;-)
 
The following are last minute news you should be aware of ;-)
 +
12/07/2018: [[Media:Grades_20180628_tmp.pdf|Here]] you find the scores for the first exam call, they do not include the second homework yet
 +
01/06/2018: [[Media:Homework_20180601.pdf|Here]] you find the scores for the first homework ... on Monday you will get the second (and last) one
 +
23/05/2018: Updated schedule
 +
23/05/2018: Updated slides on SLAM
 +
17/04/2018: Updated schedule until the end of the semester
 +
25/03/2018: Updated 2017/2018 academic year for lectures and exercises
 +
11/03/2018: You can find here the [[Media:Grades_2018-02_20.pdf|grades of the 20/02/2018 call]] including the project grades
 
  28/02/2018: Update detailed schedule.
 
  28/02/2018: Update detailed schedule.
 
  26/02/2018: Course starts today!
 
  26/02/2018: Course starts today!
Line 68: Line 75:
 
* Simultaneour Localization and Mapping (SLAM),
 
* Simultaneour Localization and Mapping (SLAM),
 
* Path planning and collision avoidance,
 
* Path planning and collision avoidance,
* Exploration of unknown terrain.
 
  
 
===Detailed course schedule===
 
===Detailed course schedule===
Line 77: Line 83:
 
  * On Monday, in D1.2, starts at 16:15, ends at 18:15
 
  * On Monday, in D1.2, starts at 16:15, ends at 18:15
 
  * On Thursday, in D1.2, starts at 12:15, ends at 14:15
 
  * On Thursday, in D1.2, starts at 12:15, ends at 14:15
 
  
 
{| border="1" align="center" style="text-align:center;"
 
{| border="1" align="center" style="text-align:center;"
Line 99: Line 104:
 
|21/03/2018 || Wednesday || 12:15 - 14:15 || D1.2 || Simone Mentasti || Middleware for robotics
 
|21/03/2018 || Wednesday || 12:15 - 14:15 || D1.2 || Simone Mentasti || Middleware for robotics
 
|-
 
|-
|... || ... || ... || ... || ... || ...
+
|26/03/2018 || Monday || 16:15 - 18:15 || D1.2 || Matteo Matteucci||  Robot Sensors and Actuators
 +
|-
 +
|28/03/2018 || Wednesday || 12:15 - 14:15 || D1.2 || Matteo Matteucci|| Robot Kinematics
 +
|-
 +
|02/04/2018 || Monday || 16:15 - 18:15 || ... || ...|| -- No Lecture --
 +
|-
 +
|04/04/2018 || Wednesday || 12:15 - 14:15 || D1.2 || Matteo Matteucci|| Robot Kinematics
 +
|-
 +
|09/04/2018 || Monday || 16:15 - 18:15 || D1.2 || Matteo Matteucci|| Robot Navigation Algorithms
 +
|-
 +
|11/04/2018 || Wednesday || 12:15 - 14:15 || D1.2 || Matteo Matteucci|| Robot Navigation Algorithms
 +
|-
 +
|16/04/2018 || Monday || 16:15 - 18:15 || D1.2 || Simone Mentasti|| Introduction to ROS
 +
|-
 +
|18/04/2018 || Wednesday || 12:15 - 14:15 || D1.2 || Simone Mentasti|| ROS Programming
 +
|-
 +
|23/04/2018 || Monday || 16:15 - 18:15 || D1.2 || Simone Mentasti|| Integration between ROS and Gazebo
 +
|-
 +
|25/04/2018 || Wednesday || 12:15 - 14:15 || D1.2 || -- || -- No Lecture --
 +
|-
 +
|30/04/2018 || Monday || 16:15 - 18:15 || D1.2 || -- || -- No Lecture --
 +
|-
 +
|02/05/2018 || Wednesday || 12:15 - 14:15 || D1.2 || -- || -- No Lecture --
 +
|-
 +
|07/05/2018 || Monday || 16:15 - 18:15 || D1.2 || Matteo Matteucci || Robot Navigation Algorithms
 +
|-
 +
|09/05/2018 || Wednesday || 12:15 - 14:15 || D1.2 || Simone Mentasti || Advanced ROS Topics
 +
|-
 +
|14/05/2018 || Monday || 16:15 - 18:15 || D1.2 || Matteo Matteucci || Robot Localization and Mapping
 +
|-
 +
|16/05/2018 || Wednesday || 12:15 - 14:15 || D1.2 || Matteo Matteucci || Robot Localization and Mapping
 +
|-
 +
|21/05/2018 || Monday || 16:15 - 18:15 || D1.2 || Matteo Matteucci || Robot Localization and Mapping
 +
|-
 +
|23/05/2018 || Wednesday || 12:15 - 14:15 || D1.2 || Matteo Matteucci || Robot Localization and Mapping
 +
|-
 +
|28/05/2018 || Monday || 16:15 - 18:15 || D1.2 || Matteo Matteucci || Robot Localization and Mapping
 +
|-
 +
|30/05/2018 || Wednesday || 12:15 - 14:15 || D1.2 || Matteo Matteucci || Robot Localization and Mapping
 +
|-
 +
|04/06/2018 || Monday || 16:15 - 18:15 || D1.2 || Simone Mentasti || ROS Movebase Package
 +
|-
 +
|06/06/2018 || Wednesday || 12:15 - 14:15 || D1.2 || Simone Mentasti || ROS Movebase Package
 
|-
 
|-
 
|}
 
|}
Line 266: Line 313:
  
 
Slides from the lectures by Matteo Matteucci
 
Slides from the lectures by Matteo Matteucci
*[[Media:Robotics_01_2007_Introduction.pdf|[2016/2017] Course introduction]]: introductory slides of the course with useful information about the course syllabus, grading, and the course logistics. Introduction to Robotics, definitions, examples and SAP cognitive model. [https://drive.google.com/open?id=0B5eSI7n7LkDhUjRJel8yc3R0cHc (ppsx)]
+
*[[Media:Robotics_01_2018_Introduction.pdf|[2017/2018] Course introduction]]: introductory slides of the course with useful information about the course syllabus, grading, and the course logistics. Introduction to Robotics, definitions, examples and SAP cognitive model. [https://drive.google.com/open?id=0B5eSI7n7LkDhUjRJel8yc3R0cHc (ppsx)]
*[[Media:Robotics_02_Sensors_Actuators.pdf |[2015/2016] Sensors and Actuators]]: an overview of most commonly used actuator and sensors in robotics, the DC motor and its characteristics, gears and torque. [https://drive.google.com/open?id=0B5eSI7n7LkDhMmM5eHJST0tBWHc (ppsx)]
+
*[[Media:Robotics_02_2018_Sensors_Actuators.pdf |[2017/2018] Sensors and Actuators]]: an overview of most commonly used actuator and sensors in robotics, the DC motor and its characteristics, gears and torque. [https://drive.google.com/open?id=0B5eSI7n7LkDhMmM5eHJST0tBWHc (ppsx)]
 
*[[Media:Robotics_03_Mobile_Robots_Kinematics.pdf |[2015/2016] Mobile Robots Kinematics]]: mobile (wheeled) robot kinematics, holonomic and non holonomic constraints, differential drive model. [https://drive.google.com/open?id=0B5eSI7n7LkDhM3NIRGlNdktRSzA ppsx]
 
*[[Media:Robotics_03_Mobile_Robots_Kinematics.pdf |[2015/2016] Mobile Robots Kinematics]]: mobile (wheeled) robot kinematics, holonomic and non holonomic constraints, differential drive model. [https://drive.google.com/open?id=0B5eSI7n7LkDhM3NIRGlNdktRSzA ppsx]
 
*[[Media:Robotics_04_Motion_Control.pdf |[2015/2016] Robot Motion Control]]: mobile robot navigation, trajectory planning, trajectory following, and obstacle avoidance. [https://drive.google.com/open?id=0B5eSI7n7LkDhS3BXZzByYzYxVlU (ppsx)]
 
*[[Media:Robotics_04_Motion_Control.pdf |[2015/2016] Robot Motion Control]]: mobile robot navigation, trajectory planning, trajectory following, and obstacle avoidance. [https://drive.google.com/open?id=0B5eSI7n7LkDhS3BXZzByYzYxVlU (ppsx)]
*[[Media:Robotics_05_SLAM_with_Lasers.pdf |[2015/2016] SLAM with Lasers]]: introduction to Simultaneous Localization and Mapping, EKF based SLAM, Particle Filters, and Monte Carlo Localization. [https://drive.google.com/open?id=0B5eSI7n7LkDhd2FZY1NRWmpiVm8 (ppsx)]
+
*[[Media:Robotics_05_2018_SLAM_with_Lasers.pdf |[2017/2018] SLAM with Lasers]]: introduction to Simultaneous Localization and Mapping, EKF based SLAM, Particle Filters, and Monte Carlo Localization. [https://drive.google.com/open?id=0B5eSI7n7LkDhd2FZY1NRWmpiVm8 (ppsx)]
  
 +
Slides from the lectures by Simone Mentasti as well as examples can be found [https://goo.gl/GonArW at this link], for your convenience we publish here the PDF of the lectures, but check the previous link for coding examples:
 +
*[[Media:Robotics_01ex_2018_Gazebo.pdf | [2017/2018] Gazebosim and SDF]]: an introduction to robotics simulators, an overview of Gazebo, its use, and the SDF file format to describe a robot simulation.
 +
*[[Media:Robotics_02ex_2018_GazeboPlugins.pdf | [2017/2018] Gazebosim and plugins]]: more about simulation with Gazebo, modeling of a caster wheel, modeling of noise with Gazebo plugins, the GPS example.
 +
*[[Media:Robotics_03ex_2018_Middleware.pdf | [2017/2018] Middleware in Robotics]]: an introduction to the use of middleware for robotics, motivation and state of the art review.
 +
<!--
 
Slides from the lectures by Gianluca Bardaro (you can find material under preparation [https://goo.gl/DBwhhC at this link])
 
Slides from the lectures by Gianluca Bardaro (you can find material under preparation [https://goo.gl/DBwhhC at this link])
 
*[[Media:Robotics_01ex_2017_Gazebo.pdf | [2016/2017] Gazebosim and SDF]]: an introduction to robotics simulators, an overview of Gazebo, its use, and the SDF file format to describe a robot simulation.
 
*[[Media:Robotics_01ex_2017_Gazebo.pdf | [2016/2017] Gazebosim and SDF]]: an introduction to robotics simulators, an overview of Gazebo, its use, and the SDF file format to describe a robot simulation.
Line 283: Line 335:
 
Additional material from the teachers
 
Additional material from the teachers
 
*[[Media:Robotics_2017_examples.zip | [2016/2017] examples]]: gazebo model for a differential drive with a caster wheel
 
*[[Media:Robotics_2017_examples.zip | [2016/2017] examples]]: gazebo model for a differential drive with a caster wheel
 
+
-->
 
<!--*: an example of motion control architecture implemented in ROS, integration with Gazebo, introduction to tf.
 
<!--*: an example of motion control architecture implemented in ROS, integration with Gazebo, introduction to tf.
 
*[[Media:Robotics_06ex_Transformation_Frames.pdf | [2015/2016] Transformation Frames]]: reference frames and the tf framework to handles transformation frames in ROS.
 
*[[Media:Robotics_06ex_Transformation_Frames.pdf | [2015/2016] Transformation Frames]]: reference frames and the tf framework to handles transformation frames in ROS.
Line 293: Line 345:
 
*[[Media:Robotics_willy2.zip | [2015/2016] willy2.zip]]: an improved gazebo model for a differential drive with a caster wheel
 
*[[Media:Robotics_willy2.zip | [2015/2016] willy2.zip]]: an improved gazebo model for a differential drive with a caster wheel
 
*[[Media:Robotics_diffdrive.zip | [2015/2016] diffdrive.zip]]: a ROS motion control architecture for a diffdrive robot-->
 
*[[Media:Robotics_diffdrive.zip | [2015/2016] diffdrive.zip]]: a ROS motion control architecture for a diffdrive robot-->
 +
 
===Course Project===
 
===Course Project===
 +
 +
Yet to come!
 +
 +
==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.
 +
 +
* [[Media:20170717.pdf|Exam of 17/07/2017]]
 +
* [[Media:20170701.pdf|Exam of 01/07/2017]]
 +
* [[Media:20160926.pdf|Exam of 26/09/2016]]
 +
* [[Media:20160905.pdf|Exam of 05/09/2016]]
 +
* [[Media:20160720.pdf|Exam of 20/07/2016]]
 +
* [[Media:20160627.pdf|Exam of 27/06/2016]]
 +
 +
===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 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.  
 
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.  
Line 329: Line 405:
 
'''''Very useul note:''''' students willing to graduate in July, need to register the exam by the 17th of July, which means they have to submit it on the 14th of July to let us evaluate it!
 
'''''Very useul note:''''' students willing to graduate in July, need to register the exam by the 17th of July, which means they have to submit it on the 14th of July to let us evaluate it!
  
==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.
 
 
* [[Media:20170717.pdf|Exam of 17/07/2017]]
 
* [[Media:20170701.pdf|Exam of 01/07/2017]]
 
* [[Media:20160926.pdf|Exam of 26/09/2016]]
 
* [[Media:20160905.pdf|Exam of 05/09/2016]]
 
* [[Media:20160720.pdf|Exam of 20/07/2016]]
 
* [[Media:20160627.pdf|Exam of 27/06/2016]]
 
 
===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 2015/2016====
 
====Homework 2015/2016====

Revision as of 06:42, 12 July 2018


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

12/07/2018: Here you find the scores for the first exam call, they do not include the second homework yet
01/06/2018: Here you find the scores for the first homework ... on Monday you will get the second (and last) one
23/05/2018: Updated schedule
23/05/2018: Updated slides on SLAM
17/04/2018: Updated schedule until the end of the semester
25/03/2018: Updated 2017/2018 academic year for lectures and exercises 
11/03/2018: You can find here the grades of the 20/02/2018 call including the project grades 
28/02/2018: Update detailed schedule.
26/02/2018: Course starts today!

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.

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 Monday, in D1.2, starts at 16:15, ends at 18:15
* On Thursday, in D1.2, starts at 12:15, ends at 14:15
Date Day Time Room Teacher Topic
26/02/2018 Monday 16:15 - 18:15 D1.2 Matteo Matteucci Course Introduction
28/02/2018 Wednesday 12:15 - 14:15 D1.2 Matteo Matteucci Robot Sensors and Actuators
05/03/2018 Monday 16:15 - 18:15 ... ... -- No Lecture --
07/03/2018 Wednesday 12:15 - 14:15 D1.2 Matteo Matteucci Robot Sensors and Actuators
12/03/2018 Monday 16:15 - 18:15 D1.2 Simone Mentasti Gazebosim and SDF
14/03/2018 Wednesday 12:15 - 14:15 D1.2 Simone Mentasti Differential Robot in Gazebo
19/03/2018 Monday 16:15 - 18:15 D1.2 Simone Mentasti Sensors and Actuators in Gazebo
21/03/2018 Wednesday 12:15 - 14:15 D1.2 Simone Mentasti Middleware for robotics
26/03/2018 Monday 16:15 - 18:15 D1.2 Matteo Matteucci Robot Sensors and Actuators
28/03/2018 Wednesday 12:15 - 14:15 D1.2 Matteo Matteucci Robot Kinematics
02/04/2018 Monday 16:15 - 18:15 ... ... -- No Lecture --
04/04/2018 Wednesday 12:15 - 14:15 D1.2 Matteo Matteucci Robot Kinematics
09/04/2018 Monday 16:15 - 18:15 D1.2 Matteo Matteucci Robot Navigation Algorithms
11/04/2018 Wednesday 12:15 - 14:15 D1.2 Matteo Matteucci Robot Navigation Algorithms
16/04/2018 Monday 16:15 - 18:15 D1.2 Simone Mentasti Introduction to ROS
18/04/2018 Wednesday 12:15 - 14:15 D1.2 Simone Mentasti ROS Programming
23/04/2018 Monday 16:15 - 18:15 D1.2 Simone Mentasti Integration between ROS and Gazebo
25/04/2018 Wednesday 12:15 - 14:15 D1.2 -- -- No Lecture --
30/04/2018 Monday 16:15 - 18:15 D1.2 -- -- No Lecture --
02/05/2018 Wednesday 12:15 - 14:15 D1.2 -- -- No Lecture --
07/05/2018 Monday 16:15 - 18:15 D1.2 Matteo Matteucci Robot Navigation Algorithms
09/05/2018 Wednesday 12:15 - 14:15 D1.2 Simone Mentasti Advanced ROS Topics
14/05/2018 Monday 16:15 - 18:15 D1.2 Matteo Matteucci Robot Localization and Mapping
16/05/2018 Wednesday 12:15 - 14:15 D1.2 Matteo Matteucci Robot Localization and Mapping
21/05/2018 Monday 16:15 - 18:15 D1.2 Matteo Matteucci Robot Localization and Mapping
23/05/2018 Wednesday 12:15 - 14:15 D1.2 Matteo Matteucci Robot Localization and Mapping
28/05/2018 Monday 16:15 - 18:15 D1.2 Matteo Matteucci Robot Localization and Mapping
30/05/2018 Wednesday 12:15 - 14:15 D1.2 Matteo Matteucci Robot Localization and Mapping
04/06/2018 Monday 16:15 - 18:15 D1.2 Simone Mentasti ROS Movebase Package
06/06/2018 Wednesday 12:15 - 14:15 D1.2 Simone Mentasti ROS Movebase Package


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 and Gazebo to develop a simple autonomous mobile robot performin a simple task. The project requires some coding either in C++ / Python following what will be presented during the lectures. The project will be presented mid May and you will have until the end of July to complete it.

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

Slides from the lectures by Simone Mentasti as well as examples can be found at this link, for your convenience we publish here the PDF of the lectures, but check the previous link for coding examples:

Course Project

Yet to come!

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

Notes on the homework

  • There was a small problem in the model provided for the second part of the project. You can fix it by changing a line in `willy3/model.sdf`, i.e., you need to change line `133` from `<publishTf>false</publishTf>` to `<publishTf>true</publishTf>, then everything should work. You can download the fixed model here!
  • You might encounter troubles in building the full map with gmapping, thus not to have you shuck on that we provide here the perfect map of the environment in case you want to skip the gmapping part and move on with the navigation one. Needless to say that to have the full mark you have to provide also a map you have generated with gmapping, but you can develop the rest of the exercise on this map and get the score for that. You can download the perfect willowgarage map here!


Some useful fatcs:

  • The project can be done in groups of maximum 2 people
  • Some data might be missing, some data might be useless, do not hesitate to write us by email!
  • We have not decided yet how much each part is worth, we will decide depending on the overall distribution of results in the class to harmonize the overall score and compensate for different level of difficulty among the years.

Delivery procedure:

  • The project should be delivered by email as single compressed file both to Matteo Matteucci && Gianluca Bardaro.
  • The archive should contain:
    • The gazebo model as a directory with SDF files, when required, and a ROS package with nodes sources and corresponding launch files (put your names in the directories names)
    • A max 4 pages idiot proof report describing:
      • The files provided
      • The installation (if any) and compilation instructions
      • Instruction to configure the execution (e.g., parameter setting)
      • The instructions to execute the code and check that all the above has been done successfully
  • The evaluation will be performed by following your instructions, if these do not work, we assume the course project does not work (we suggest you to have someone else testing the whole on his/her computer before submitting the project).

Very important note: read again the delivery procedure!

Very useul note: students willing to graduate in July, need to register the exam by the 17th of July, which means they have to submit it on the 14th of July to let us evaluate it!


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