Difference between revisions of "Robotics"

From Chrome
Jump to: navigation, search
(Detailed course schedule)
 
(88 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 ;-)
 +
* 02/10/2022: All grades of the [[Media:Grades_20220830.pdf|30/08/2022 call]].
 +
* 10/09/2022: Grades for Laureandi of the [[Media:Grades_20220830_laureandi.pdf|30/08/2022 call]].
 +
* 05/08/2022: [https://chrome.deib.polimi.it/index.php?title=Robotics#Note_on_06.2F07.2F2022_Exam Note on the 06/07/2022 exam grading]
 +
* 05/08/2022: Grades of the [[Media:Grades_20220706.pdf|06/07/2022 call]].
 +
* 21/07/2022: Grades of the Homeworks (updated) are out [[Media:Grades_21-22_HWv2.pdf|find them here!]].
 +
* 20/07/2022: Grades of the Homeworks are out [[Media:Grades_21-22_HW.pdf|find them here!]].
 +
* 07/07/2022: Final results of 15/06/2022 and 06/07/2022 for [[Media:Grades_20220615_laureandi.pdf|Laureandi]].
 +
* 03/07/2022: Results of 15/06/2022 written exam are [[Media:Grades_20220615_tmp.pdf|here]]. They include only the written grades, maximum is 26!
 +
* 03/06/2022: Updated all slides of the course, including last lecture
 +
* 02/06/2022: Last lecture of the course will be online Friday 03/06/2022 from 09:00 to 11:00
 +
* 01/06/2022: Slides updates and new lecture rescheduling ongoing
 +
* 31/05/2022: Poll for the last lecture is [https://forms.gle/p5DghgB87DErQurd6 here!]
 +
* 19/05/2022: The second homework is out!!!! Don't forget to use the Slack channel for requests and suggestions!!!
 +
* 11/05/2022: Updated the detailed schedule of lectures, double check it!!!
 +
* 11/04/2022: Corrected bags and updated slides are now available in the shared folder. New deadline: May 8 2022, 23:59 CEST
 +
* 11/04/2022: All communications regarding the project will be though the shared folder and slack
 +
* 04/04/2022: Hold-on! -> due to a bug in the bags an update of the homework will be available soon
 +
* 30/03/2022: The first homework project of the course is out!
 +
* 06/03/2022: Added link to Paolo Cudrano slides, updated slide first two weeks Matteo Matteucci
 +
* 06/03/2022: Added link to last year's recordings
 +
* 23/02/2022: Detailed calendar published
 +
* 23/02/2022: Lectures start today!
 +
 +
<!--
 +
* 19/02/2022: results of 02/02/2022 call are [[Media:Grades_20220202.pdf|here]]. They include all HWs grades!
 +
* 31/01/2022: results of 12/01/2022 call are [[Media:Grades_20220112.pdf|here]]. They include all HWs grades!
 +
* 03/10/2021: results of 31/08/2021 call are [[Media:Grades_20210831.pdf|here]]. They include all HWs grades!
 +
* 10/09/2021: results of 31/08/2021 call for Laureandi are [[Media:Grades_20210831_tmp.pdf|here]]. They include all HW1 grades!
 +
* 20/08/2021: results of 26/07/2021 call are [[Media:Grades_20210726.pdf|here]]. They include all HW1 grades! Green grades will be rounded up with ceil.
 +
* 25/07/2021: results of 29/06/2021 call are [[Media:Grades_20210629.pdf|here]]. They include all HW1 grades! Green rows will be rounded up with ceil.
 +
* 20/07/2021: results of 29/06/2021 call are [[Media:Grades_20210629_tmp2.pdf|here]] ... they do not include all HW1 grades!
 +
* 09/07/2021: results of 29/06/2021 call for graduating students are [[Media:Grades_20210629_tmp.pdf|here]]
 +
* 08/06/2021: all lecture videos are now published and slides pdf updated.
 +
* 26/05/2021: The link to the form to request an instance of remote examination for June and July is [https://forms.office.com/r/U4hkkaiq8h here!]
 +
* 26/05/2021: Revised final schedule of the course, last lecture will be on 31/05/2021
 +
* The second robotics project is out!
 
  * 21/04/2021: You can join the course [https://teams.microsoft.com/l/meetup-join/19%3ameeting_ZmE0NTExYWQtNjFhMi00ZjE3LTg2ZTktOTQ5MDRjZjU1ZTk5%40thread.v2/0?context=%7b%22Tid%22%3a%220a17712b-6df3-425d-808e-309df28a5eeb%22%2c%22Oid%22%3a%22335b7274-e5d4-455b-aff1-ddd0f4ef5598%22%7d MS Team here]
 
  * 21/04/2021: You can join the course [https://teams.microsoft.com/l/meetup-join/19%3ameeting_ZmE0NTExYWQtNjFhMi00ZjE3LTg2ZTktOTQ5MDRjZjU1ZTk5%40thread.v2/0?context=%7b%22Tid%22%3a%220a17712b-6df3-425d-808e-309df28a5eeb%22%2c%22Oid%22%3a%22335b7274-e5d4-455b-aff1-ddd0f4ef5598%22%7d MS Team here]
 
  * 14/04/2021: The first homework project is out! Check it [https://chrome.deib.polimi.it/index.php?title=Robotics#Course_Projects here]
 
  * 14/04/2021: The first homework project is out! Check it [https://chrome.deib.polimi.it/index.php?title=Robotics#Course_Projects here]
Line 15: Line 51:
 
  * 24/02/2021: Lecture videos and slides published  
 
  * 24/02/2021: Lecture videos and slides published  
 
  * 24/02/2021: Lectures start today!
 
  * 24/02/2021: Lectures start today!
 
+
-->
 
<!--
 
<!--
 
  * 05/10/2020: Final [[Media:Grades_20200908_hws_final.pdf|grades]] from the 08/09/2020 call  
 
  * 05/10/2020: Final [[Media:Grades_20200908_hws_final.pdf|grades]] from the 08/09/2020 call  
Line 123: Line 159:
 
===Course Program===
 
===Course Program===
  
Lectures will provide theoretical background and real world examples. Lectures will be complemented with practical software exercises in simulation and on real data for all the proposed topics and the students will be guided in developing the algorithms to control an autonomous robot.
+
Lectures will provide theoretical background and real-world examples. Lectures will be complemented with practical software exercises in simulation and on real data 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:
 
Among other topics, we will discuss:
Line 137: Line 173:
  
 
Note: Lecture timetable interpretation
 
Note: Lecture timetable interpretation
* On Tuesdays (Team 1 - Odd Numero Persona), in 3.0.2 (EX S.0.5), starts at 17:30, ends at 19:15
+
* On Wednesday, in 26.11, starts at 12:15, ends at 14:15
* On Wednesdays, in teacher webex room, starts at 10:30, ends at 13:15
+
* On Thursday, in 26.11, starts at 14:50, ends at 16:15
* On Wednesdays (Team 2 - Even Numero Persona), in 25.2.2 (EX D.3.2), starts at 14:30, ends at 16:15
+
  
 +
{| border="1" align="center" style="text-align:center;"
 +
|-
 +
|Date || Day || Time || Room || Teacher || Type || Topic
 +
|-
 +
|23/02/2022 || Wednesday || 12:15 - 14:15 || 26.11 || Matteo Matteucci || Lecture || Course/Robotics Intro
 +
|-
 +
|24/02/2022 || Thursday || 14:15 - 16:15 || 26.11 || Matteo Matteucci || Lecture || Actuators
 +
|-
 +
|02/03/2022 || Wednesday || 12:15 - 14:15 || 26.11 || Matteo Matteucci || Lecture || Sensors
 +
|-
 +
|03/03/2022 || Thursday || 14:15 - 16:15 || 26.11 || Paolo Cudrano || Laboratory || ROS Install
 +
|-
 +
|09/03/2022 || Wednesday || 12:15 - 14:15 || 26.11 || Matteo Matteucci || Lecture || Sensors
 +
|-
 +
|10/03/2022 || Thursday || 14:15 - 16:15 || 26.11 || Paolo Cudrano || Laboratory || ROS Basics
 +
|-
 +
|16/03/2022 || Wednesday || 12:15 - 14:15 || 26.11 || Matteo Matteucci || Lecture || Kinematics
 +
|-
 +
|17/03/2022 || Thursday || 14:15 - 16:15 || 26.11 || Paolo Cudrano || Laboratory || Pub / Sub
 +
|-
 +
|23/03/2022 || Wednesday || 12:15 - 14:15 || 26.11 || Matteo Matteucci || Lecture || Kinematics
 +
|-
 +
|24/03/2022 || Thursday || 14:15 - 16:15 || 26.11 || Paolo Cudrano || Laboratory || Services and Params
 +
|-
 +
|30/03/2022 || Wednesday || 12:15 - 14:15 || 26.11 || Matteo Matteucci || Lecture || Localization and Lidars
 +
|-
 +
|31/03/2022 || Thursday || 14:15 - 16:15 || 26.11 || Paolo Cudrano || Laboratory || TF / Rviz / Actions
 +
|-
 +
|06/04/2022 || Wednesday || 12:15 - 14:15 || 26.11 || Matteo Matteucci || Lecture || Localization and Bayes Filters
 +
|-
 +
|07/04/2022 || Thursday || 14:15 - 16:15 || 26.11 || Matteo Matteucci || Lecture || Localization and Kalman Filters
 +
|-
 +
|13/04/2022 || Wednesday || --- || --- || --- || --- || --- Prove in itinere ---
 +
|-
 +
|14/04/2022 || Thursday || 14:15 - 16:15 || 26.11 || Matteo Matteucci || Lecture || Localization and Kalman Filters
 +
|-
 +
|20/04/2022 || Wednesday || 12:15 - 14:15 || 26.11 || Matteo Matteucci || Lecture || Localization and Kalman Filters
 +
|-
 +
|21/04/2022 || Thursday || 14:15 - 16:15 || 26.11 || Simone Mentasti || Laboratory || rospy, rosbag, message filter, plotjuggler
 +
|-
 +
|27/04/2022 || Wednesday || 12:15 - 14:15 || 26.11 || Matteo Matteucci || Lecture || Localization and Kalman Filters
 +
|-
 +
|28/04/2022 || Thursday || --- || --- || --- || --- || --- Lauree ---
 +
|-
 +
|04/05/2022 || Wednesday || 12:15 - 14:15 || 26.11 || Matteo Matteucci || Lecture || Mapping and SLAM
 +
|-
 +
|05/05/2022 || Thursday || 14:15 - 16:15 || 26.11 || Simone Mentasti || Laboratory || ROS on multiple machines, time synchronization, Actionlib, latched pub, async spinner
 +
|-
 +
|11/05/2022 || Wednesday || 12:15 - 14:15 || 26.11 || Matteo Matteucci || Lecture || Mapping and SLAM
 +
|-
 +
|12/05/2022 || Thursday || 14:15 - 16:15 || 26.11 ||  Matteo Matteucci || Lecture || Algorithms for Robot Navigation
 +
|-
 +
|18/05/2022 || Wednesday || 12:15 - 14:15 || 26.11 || Simone Mentasti || Laboratory ||  Robot Navigation, Stage, Gmapping
 +
|-
 +
|19/05/2022 || Thursday || 14:15 - 16:15 || 26.11 || Simone Mentasti || Laboratory || Robot Navigation (Part II), Robot Localization, mapviz
 +
|-
 +
|25/05/2022 || Wednesday ||--- || --- || --- || --- || --- No Lecture ---
 +
|-
 +
|26/05/2022 || Thursday || 14:15 - 16:15 || 26.11 || Simone Mentasti || Laboratory || ROS2, foxglove, second project
 +
|-
 +
|01/06/2022 || Wednesday || 12:15 - 14:15 || 26.11 ||  Matteo Matteucci || Lecture || Algorithms for Robot Navigation
 +
|-
 +
|02/06/2022 || Thursday || --- || --- || --- || --- || --- No Lecture ---
 +
|-
 +
|03/06/2022 || Friday || 09:00 - 11:00 || Online ||  Matteo Matteucci || Lecture || Algorithms for Robot Navigation
 +
|}
  
 +
<!--
 
{| border="1" align="center" style="text-align:center;"
 
{| border="1" align="center" style="text-align:center;"
 
|-
 
|-
Line 212: Line 314:
 
|11/05/2021 || Tuesday || 17:15 - 19:15 || 3.0.2 (EX S.0.5) || Simone Mentasti || ROS Team 1 || Robot Navigation
 
|11/05/2021 || Tuesday || 17:15 - 19:15 || 3.0.2 (EX S.0.5) || Simone Mentasti || ROS Team 1 || Robot Navigation
 
|-
 
|-
|12/05/2021 || Wednesday || 10:15 - 13:15 || Online on webex || Matteo Matteucci || Lecture || Algorithms for Robot Navigation
+
|12/05/2021 || Wednesday || 10:15 - 13:15 || Online on webex || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=3aaa118d78b74c67b0398bf9cf5bf2e1 Robot Motion Control]
 
|-
 
|-
|12/05/2021 || Wednesday || 14:15 - 16:15 || 25.2.2 (EX D.3.2) || Simone Mentasti || ROS Team 2 || Robot Navigation
+
|12/05/2021 || Wednesday || 14:15 - 16:15 || 25.2.2 (EX D.3.2) || Simone Mentasti || ROS Team 2 || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=39ba34fc6ae649f0b308fa5630451297 Robot Navigation]
 
|-
 
|-
|18/05/2021 || Tuesday || 17:15 - 19:15 || 3.0.2 (EX S.0.5) || Simone Mentasti || ROS Team 1 || Robot Navigation
+
|18/05/2021 || Tuesday || 17:15 - 19:15 || 3.0.2 (EX S.0.5) || Simone Mentasti || ROS Team 1 || Robot Navigation (see next)
 
|-
 
|-
 
|<s>19/05/2021</s>||<s>Wednesday</s>||<s>10:15 - 13:15</s>||<s>Online on webex</s>||<s>Matteo Matteucci</s>||<s>Lecture</s>||<s>Algorithms for Robot Navigation</s>
 
|<s>19/05/2021</s>||<s>Wednesday</s>||<s>10:15 - 13:15</s>||<s>Online on webex</s>||<s>Matteo Matteucci</s>||<s>Lecture</s>||<s>Algorithms for Robot Navigation</s>
 
|-
 
|-
|19/05/2021 || Wednesday || 14:15 - 16:15 || 25.2.2 (EX D.3.2) || Simone Mentasti || ROS Team 2 || Robot Navigation
+
|19/05/2021 || Wednesday || 14:15 - 16:15 || 25.2.2 (EX D.3.2) || Simone Mentasti || ROS Team 2 || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=30436cc0892841c0adffd24cce00c467 Robot Navigation]
 
|-
 
|-
|25/05/2021 || Tuesday || 17:15 - 19:15 || 3.0.2 (EX S.0.5) || Simone Mentasti || ROS Team 1 || IMU Tools and robot localization
+
|25/05/2021 || Tuesday || 17:15 - 19:15 || 3.0.2 (EX S.0.5) || Simone Mentasti || ROS Team 1 || IMU Tools and robot localization (see next)
 
|-
 
|-
|26/05/2021 || Wednesday || 10:15 - 13:15 || Online on webex || Matteo Matteucci || Lecture || Algorithms for Robot Navigation
+
|26/05/2021 || Wednesday || 10:15 - 13:15 || Online on webex || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=da607a0ea8ee42508eeb276224ed2f54 Search-based Planning]
 
|-
 
|-
|26/05/2021 || Wednesday || 14:15 - 16:15 || 25.2.2 (EX D.3.2) || Simone Mentasti || ROS Team 2 || IMU Tools and robot localization
+
|26/05/2021 || Wednesday || 14:15 - 16:15 || 25.2.2 (EX D.3.2) || Simone Mentasti || ROS Team 2 || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=a5e18e1b729a48c4a373873e0d3ea96d IMU Tools and robot localization] + [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=f0a14f56b26445b0929a7465abb9f8b0 Project Presentation] + [https://drive.google.com/drive/folders/1uMwWmQ50iwrMXTJnpTuJdt5YNmnQkrOV?usp=sharing Project folder]
 +
|-
 +
|31/05/2021 || Monday || 13:15 - 16:15 || Online on webex || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=6fdba09c98844f5eb26b63c39f0cd997 Sampling-based Planning]
 
|}
 
|}
 
+
-->
 
<!--
 
<!--
 
{| border="1" align="center" style="text-align:center;"
 
{| border="1" align="center" style="text-align:center;"
Line 544: Line 648:
 
Lectures will be based on material from different sources, teachers will provide their slides to students as soon they are available.  
 
Lectures will be based on material from different sources, teachers will provide their slides to students as soon they are available.  
  
===Course Slides===
+
===Course Slides 2021/2022===
  
 
Slides from the lectures by Matteo Matteucci
 
Slides from the lectures by Matteo Matteucci
*[[Media:Robotics_00_2021_Course_Introduction.pdf|[2020/2021] Course Introduction]]: introductory slides of the course with useful information about the course syllabus, grading, and the course logistics.  
+
*[[Media:Robotics_00_2122_Course_Introduction.pdf|[2021/2022] Course Introduction]]: introductory slides of the course with useful information about the course syllabus, grading, and the course logistics.  
*[[Media:Robotics_01_2021_Introduction.pdf|[2020/2021] Introduction to Robotics]]: Introduction to Robotics, definitions, examples and SAP cognitive model.  
+
*[[Media:Robotics_01_2122_Introduction.pdf|[2021/2022] Introduction to Robotics]]: Introduction to Robotics, definitions, examples and SAP cognitive model.  
*[[Media:Robotics_02_2021_Sensors_Actuators.pdf |[2020/2021] Sensors and Actuators]]: an overview of most commonly used actuator and sensors in robotics, the DC motor and its characteristics, gears and torque. Sensor classification, common sensors in robotics with pros and cons.
+
*[[Media:Robotics_02_2122_Sensors_Actuators.pdf |[2021/2022] Sensors and Actuators]]: an overview of most commonly used actuator and sensors in robotics, the DC motor and its characteristics, gears and torque. Sensor classification, common sensors in robotics with pros and cons.
*[[Media:Robotics_03_2021_Odometry.pdf |[2020/2021] Robot Odometry]]: Robot Localization intro, direct and inverse kinematics, robot odometry for different kinematics (differential drive, skid steering, Ackerman, etc.).
+
*[[Media:Robotics_03_2122_Odometry.pdf |[2021/2022] Robot Odometry]]: Robot Localization intro, direct and inverse kinematics, robot odometry for different kinematics (differential drive, skid steering, Ackerman, etc.).
*[[Media:Robotics_04_2021_Localization.pdf |[2020/2021] Robot Localization]]: Sensor models, Robot Localization, Bayesian filtering, Kalman Filtering, Monte Carlo Localization.
+
*[[Media:Robotics_04_2122_Localization.pdf |[2021/2022] Robot Localization]]: Sensor models, Robot Localization, Bayesian filtering, Kalman Filtering, Monte Carlo Localization.
*[[Media:Robotics_05_2021_SLAM.pdf |[2020/2021] Simultaneous Localization and Mapping]]: Mapping with known poses, scan matching, EKF-SLAM, FAST-SLAM
+
*[[Media:Robotics_05_2122_SLAM.pdf |[2021/2022] Simultaneous Localization and Mapping]]: Mapping with known poses, scan matching, EKF-SLAM, FAST-SLAM
 
** [https://drive.google.com/drive/folders/1JO8AQIWaOYeW11d9rInox0pZPZG-fdfc?usp=sharing At this link] you can find the videos included in the slides about (simulataneous) localization and mapping  
 
** [https://drive.google.com/drive/folders/1JO8AQIWaOYeW11d9rInox0pZPZG-fdfc?usp=sharing At this link] you can find the videos included in the slides about (simulataneous) localization and mapping  
*[[Media:Robotics_06_2020_MotionControl_tmp.pdf |[2019/2020] Robot Motion Control]]: Introduction to motion control, Virtual Histogram methods, Dynamic Window Approach (+ planning algorithms)
+
*[[Media:Robotics_06_2122_MotionControl.pdf |[2021/2022] Robot Motion Control]]: Introduction to motion control, Virtual Histogram methods, Dynamic Window Approach, Search-based and Sampling-based planners ([https://politecnicomilano.webex.com/webappng/sites/politecnicomilano/recording/655c2629c53a103abfbe0050568193e1/playback here the video recording of last lecture])
 
<!--
 
<!--
 
*[[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]
Line 562: Line 666:
 
<!--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:-->
 
<!--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:-->
  
Last version of slides from the lectures by Paolo Cudrano are available [https://polimi365-my.sharepoint.com/:f:/g/personal/10457911_polimi_it/Eq7UEjxDOOtNrZtvLSKLrEUBNqIpjixIA-hirJtTuB2RBA HERE!].
+
Slide from the teaching assistant, including code examples and homework descriptions are available in their respective folders
 
+
* Last version of slides from the lectures by Paolo Cudrano are available [https://polimi365-my.sharepoint.com/:f:/g/personal/10457911_polimi_it/Eq7UEjxDOOtNrZtvLSKLrEUBKpga-uGlXx8qkZgJjXQJMg HERE!].
 +
* Last version of slides from the lectures by Simone Mentasti are available [https://drive.google.com/drive/folders/1W36wPi0H7kA7qYGiOfbyR5ikBASlyCpZ HERE!].
 +
<!--
 
Last version of slides from the lectures by Simone Mentasti are available [https://goo.gl/GonArW HERE!].  
 
Last version of slides from the lectures by Simone Mentasti are available [https://goo.gl/GonArW HERE!].  
  
Line 576: Line 682:
 
*[[Media:Robotics_L9_2019_ex.pdf|[2018/2019] Opencv/CV_BRIDGE]]: how to nterface OpenCV and ROS  
 
*[[Media:Robotics_L9_2019_ex.pdf|[2018/2019] Opencv/CV_BRIDGE]]: how to nterface OpenCV and ROS  
 
*[[Media:Robotics_L10_2019_ex.pdf|[2018/2019] Robot Localization]]: useful stuff for the course project ;-)
 
*[[Media:Robotics_L10_2019_ex.pdf|[2018/2019] Robot Localization]]: useful stuff for the course project ;-)
 +
-->
 +
 +
===Year 2020/2021 Recording===
 +
As I registered these due to pandemics, I am making them available. They DO NOT REPLACE THIS YEAR classroom lectures which are to be considered as the official material of this year, but they might be useful to double-check your notes.
 +
 +
* 24/02/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=e953e0e29b744f0fa604c2c401cb40b6 Course logistics] + [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=2068c40227aa4091a5483bb3c57af5e1 Introduction to Robotics]
 +
* 03/03/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=e74e003ef5664d849f848ff3831dd7e6 Sensors and Actuators]
 +
* 10/03/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=30df56c53c6a4ac199dafff310f1f222 Robot Sensors] and [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=4dbee67823f8417f8e3784248c4712db Intro to SLAM]
 +
* 17/03/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=d85a41c9c6404ccab84b725f902c99eb Robot Kinematics (Differential Drive)]
 +
* 31/03/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=a323ca89bbbb4fd7b30fb68b1037c10c Robot Kinematics (Continued)]
 +
* 07/04/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=ddc9aed131194c568131dd7e5c0875b3 Localization and LiDARS]
 +
* 14/04/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=53269a220d2a4b5b885c36bcc1984116 Localization and Bayes filters]
 +
* 21/04/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=fdb9155b23794cc6aac379e0cc2c0bf6 Localization with Kalman filters and Particle filters]
 +
* 05/05/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=486985ca26b04cb0962143a7a58491b6 Mapping and SLAM]
 +
* 12/05/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=3aaa118d78b74c67b0398bf9cf5bf2e1 Robot Motion Control]
 +
* 26/05/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=da607a0ea8ee42508eeb276224ed2f54 Search-based Planning]
 +
* 31/05/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=6fdba09c98844f5eb26b63c39f0cd997 Sampling-based Planning]
 +
 +
Also, labs are available, however, the organization during the pandemic was kind of different with 2 teams to reduce classroom occupancy. This is why they might resemble a kind of disconnected.
 +
 +
* 02/03/2021 - Paolo Cudrano [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=d260c9fb0aeb4963bfb3aa7be89a1632 Introduction to middleware in Robotics]
 +
* 09/03/2021 - Paolo Cudrano [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=86c7caa885764429aff9777ed5cfa322 ROS Basics]
 +
* 17/03/2021 - Paolo Cudrano [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=41a263d5283e4c5d8a16840a1277512b Publishers and Subscribers]
 +
* 24/03/2021 - Paolo Cudrano [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=3e67b96db3bb4001a3a8af5b5b12f435 Services and Parameters]
 +
* 31/03/2021 - Paolo Cudrano [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=aabb359b39a44780adc917fa1a86ebb1 TF, RVIZ (Cudrano recording)]
 +
* 13/04/2021 - Paolo Cudrano [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=e08a2c0739214339bf2ce4fb13dbb098 Bags, Message filters and rospy] + [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=fe8dba62b550480d8ab6254f2e5bc8f5 Project 1 Presentation]
 +
* 04/05/2021 - Simone Mentasti [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=7f075850e538498aa019575cdcab9eb2 ROS on Multiple Devices]
 +
* 12/05/2021 - Simone Mentasti [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=39ba34fc6ae649f0b308fa5630451297 Robot Navigation]
 +
* 26/05/2021 - Simone Mentasti [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=a5e18e1b729a48c4a373873e0d3ea96d IMU Tools and robot localization] + [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=f0a14f56b26445b0929a7465abb9f8b0 Project Presentation] + [https://drive.google.com/drive/folders/1uMwWmQ50iwrMXTJnpTuJdt5YNmnQkrOV?usp=sharing Project folder]
  
 
===Useful stuff from the web===
 
===Useful stuff from the web===
Line 599: Line 734:
 
*[http://www.iri.upc.edu/people/jsola/JoanSola/objectes/curs_SLAM/SLAM2D/SLAM%20course.pdf Simultaneous localization and mapping with the extended Kalman filter.] Joan Sola'.  
 
*[http://www.iri.upc.edu/people/jsola/JoanSola/objectes/curs_SLAM/SLAM2D/SLAM%20course.pdf Simultaneous localization and mapping with the extended Kalman filter.] Joan Sola'.  
 
*[http://robots.stanford.edu/papers/Thrun03g.pdf FastSLAM: An Efficient Solution to the Simultaneous Localization And Mapping Problem with Unknown Data Association.] Sebastian Thrun, Michael Montemerlo, Daphne Koller, Ben Wegbreit, Juan Nieto, and Eduardo Nebot.
 
*[http://robots.stanford.edu/papers/Thrun03g.pdf FastSLAM: An Efficient Solution to the Simultaneous Localization And Mapping Problem with Unknown Data Association.] Sebastian Thrun, Michael Montemerlo, Daphne Koller, Ben Wegbreit, Juan Nieto, and Eduardo Nebot.
 +
* [https://www.ri.cmu.edu/pub_files/pub1/fox_dieter_1997_1/fox_dieter_1997_1.pdf The Dynamic Window Approach to Collision Avoidance.] Dieter Fox, Wolfram Burgard, and Sebastian Thrun.
  
 
<!--
 
<!--
Line 630: Line 766:
 
===Course Projects===
 
===Course Projects===
  
Here they are the curse homework projects:
+
==== Homework 2021/2022 ====
* The first course project has been published on 14/04/2021
+
 
** The description of the first ROS Project is [https://polimi365-my.sharepoint.com/:b:/g/personal/10457911_polimi_it/Ees1RgOSL1REiK1iqBS--ZABXEwE1jC3dQdFHTmJPlyK3A?e=ahN4bx HERE]
+
* The First project con the Robotics class is available [https://polimi365-my.sharepoint.com/:f:/g/personal/10457911_polimi_it/EhsMssV_kDBKkp7gY-xGV3gBNGpBpnyoHPR_Gu5eAMebyw?e=2XCRe5 HERE!], deadline is 29/04/2022!
** The material for the project is [https://polimi365-my.sharepoint.com/:f:/g/personal/10457911_polimi_it/EjJKNz1Lxr9MqW8b5XyIepsBMNrJb7O4oqF6UoHl14758A?e=40GxFe HERE]
+
* The Second project con the Robotics class is available [https://goo.gl/GonArW HERE!], deadline is 26/06/2022!
** You have to deliver it by 16/05/2021 !!!
+
* TBD
+
  
 
==Frequently Asked Questions==
 
==Frequently Asked Questions==
Line 674: Line 808:
 
==Past Years Useful Material==  
 
==Past Years Useful Material==  
  
Here you find material from past editions of the course that you umight find useful in preparing the exam.
+
Here you find material from past editions of the course that you might find useful in preparing the exam.
  
 
===Past Exams and Sample Questions===
 
===Past Exams and Sample Questions===
Line 686: Line 820:
 
* [[Media:20160720.pdf|Exam of 20/07/2016]]
 
* [[Media:20160720.pdf|Exam of 20/07/2016]]
 
* [[Media:20160627.pdf|Exam of 27/06/2016]]
 
* [[Media:20160627.pdf|Exam of 27/06/2016]]
 +
 +
====Note on 06/07/2022 Exam====
 +
 +
This is a short note on the grading of the [[Media:20220706.pdf|06/07/2022 exam]]. On average has not been different from the others calls except one exercise you might want to know more about, i.e., exercise 1. I take this opportunity to comment on the grading of all exercises so you can get an immediate comment and if there is something missing you can then write to me.
 +
 +
* Exercise 1: the key point here is the use of a "single RGB camera", because of this, we do not have distance measurements and cannot consider the sensor as lidar, sonar, or stereo vision system. Because of this, beam or scan sensor models dedicated to range sensors are not applicable. In this case, you need to use a landmark-based sensor model getting landmarks from the vision system, e.g., a door or a fire extinguisher (examples made multiple times during lectures). As for the localization system any solution which leverages this sensor model is ok, it could be an Extended Kalman Filter, or a Monte Carlo Localization (as the soccer dog example we made in class and you find in the slides), but what is important is to motivate the system on the characteristics of the landmark sensor, not just provide a generic description of a localization algorithm.
 +
* Exercise 2: more or less all exams got the first two points correct, as for the third two options equally correct exist. A) you specify the actuator on the back wheels for forward motion and on the frontal wheels for steering and then you provide the derivation of the Ackerman kinematics; B) you specify that frontal wheels are just caster wheels for support and then you have 2 independent motors on the back deriving then the differential drive kinematics. Partial answers get partial grades. If you are curious the "real" robot is made like B)
 +
* Exercise 3: the decision on the action to choose is based on a scoring function which is different in the cases of 3.1, 3.2, and 3.3. Describing these scoring functions provides full marks, only stating they exist or mixing them up only partial mark, not mentioning these scoring functions zero mark. As for 3.4, the solution is manually (or automatically) tuning the coefficients via trial and errors possibly in simulation.
 +
* Exercise 4: not stating clearly the characteristics of topics, services and actions gives partial credit.
 +
* Exercise 5: most of you got the point, full SLAM requires to estimate the map and the full trajectory. If you want to implement it using an EKF-SLAM algorithm you need to add all the poses to the state of the EKF and estimate jointly the map and the trajectory. This makes the state grow linearly with time and the complexity quadratically with the size of the state ... if you are curios you can check SAM (Smoothing and Mapping) id does exactly this.
 +
* Exercise 6: who has applied A* got full mark, who has just searched for the path and found it by looking at the graph exploring it partially got very low mark. Intermediate marks are give because of incomplete solutions or errors in the execution.
  
 
===Past Course Project===
 
===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! ;-)  
 
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 2020/2021====
 +
 +
Here they are the curse homework projects:
 +
* The first course project has been published on 14/04/2021
 +
** The description of the first ROS Project is [https://polimi365-my.sharepoint.com/:b:/g/personal/10457911_polimi_it/Ees1RgOSL1REiK1iqBS--ZABXEwE1jC3dQdFHTmJPlyK3A?e=ahN4bx HERE]
 +
** The material for the project is [https://polimi365-my.sharepoint.com/:f:/g/personal/10457911_polimi_it/EjJKNz1Lxr9MqW8b5XyIepsBMNrJb7O4oqF6UoHl14758A?e=40GxFe HERE]
 +
** You have to deliver it by 16/05/2021 !!!
 +
* The second course project has been published on 26/05/2021
 +
** The description of the second ROS Project is [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=f0a14f56b26445b0929a7465abb9f8b0 HERE]
 +
** The material for the project is [https://drive.google.com/drive/folders/1uMwWmQ50iwrMXTJnpTuJdt5YNmnQkrOV?usp=sharing HERE]
 +
** You have to deliver it by 27/06/2021 !!!
  
 
====Homework 2019/2020====
 
====Homework 2019/2020====

Latest revision as of 01:25, 3 October 2022


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

* 02/10/2022: All grades of the 30/08/2022 call. 
* 10/09/2022: Grades for Laureandi of the 30/08/2022 call. 
* 05/08/2022: Note on the 06/07/2022 exam grading
* 05/08/2022: Grades of the 06/07/2022 call. 
* 21/07/2022: Grades of the Homeworks (updated) are out find them here!. 
* 20/07/2022: Grades of the Homeworks are out find them here!. 
* 07/07/2022: Final results of 15/06/2022 and 06/07/2022 for Laureandi. 
* 03/07/2022: Results of 15/06/2022 written exam are here. They include only the written grades, maximum is 26! 
* 03/06/2022: Updated all slides of the course, including last lecture
* 02/06/2022: Last lecture of the course will be online Friday 03/06/2022 from 09:00 to 11:00
* 01/06/2022: Slides updates and new lecture rescheduling ongoing 
* 31/05/2022: Poll for the last lecture is here!
* 19/05/2022: The second homework is out!!!! Don't forget to use the Slack channel for requests and suggestions!!! 
* 11/05/2022: Updated the detailed schedule of lectures, double check it!!!
* 11/04/2022: Corrected bags and updated slides are now available in the shared folder. New deadline: May 8 2022, 23:59 CEST
* 11/04/2022: All communications regarding the project will be though the shared folder and slack
* 04/04/2022: Hold-on! -> due to a bug in the bags an update of the homework will be available soon 
* 30/03/2022: The first homework project of the course is out!
* 06/03/2022: Added link to Paolo Cudrano slides, updated slide first two weeks Matteo Matteucci
* 06/03/2022: Added link to last year's recordings
* 23/02/2022: Detailed calendar published
* 23/02/2022: Lectures start 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 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 software exercises in simulation and on real data 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,
  • Simultaneous 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 26.11, starts at 12:15, ends at 14:15
  • On Thursday, in 26.11, starts at 14:50, ends at 16:15
Date Day Time Room Teacher Type Topic
23/02/2022 Wednesday 12:15 - 14:15 26.11 Matteo Matteucci Lecture Course/Robotics Intro
24/02/2022 Thursday 14:15 - 16:15 26.11 Matteo Matteucci Lecture Actuators
02/03/2022 Wednesday 12:15 - 14:15 26.11 Matteo Matteucci Lecture Sensors
03/03/2022 Thursday 14:15 - 16:15 26.11 Paolo Cudrano Laboratory ROS Install
09/03/2022 Wednesday 12:15 - 14:15 26.11 Matteo Matteucci Lecture Sensors
10/03/2022 Thursday 14:15 - 16:15 26.11 Paolo Cudrano Laboratory ROS Basics
16/03/2022 Wednesday 12:15 - 14:15 26.11 Matteo Matteucci Lecture Kinematics
17/03/2022 Thursday 14:15 - 16:15 26.11 Paolo Cudrano Laboratory Pub / Sub
23/03/2022 Wednesday 12:15 - 14:15 26.11 Matteo Matteucci Lecture Kinematics
24/03/2022 Thursday 14:15 - 16:15 26.11 Paolo Cudrano Laboratory Services and Params
30/03/2022 Wednesday 12:15 - 14:15 26.11 Matteo Matteucci Lecture Localization and Lidars
31/03/2022 Thursday 14:15 - 16:15 26.11 Paolo Cudrano Laboratory TF / Rviz / Actions
06/04/2022 Wednesday 12:15 - 14:15 26.11 Matteo Matteucci Lecture Localization and Bayes Filters
07/04/2022 Thursday 14:15 - 16:15 26.11 Matteo Matteucci Lecture Localization and Kalman Filters
13/04/2022 Wednesday --- --- --- --- --- Prove in itinere ---
14/04/2022 Thursday 14:15 - 16:15 26.11 Matteo Matteucci Lecture Localization and Kalman Filters
20/04/2022 Wednesday 12:15 - 14:15 26.11 Matteo Matteucci Lecture Localization and Kalman Filters
21/04/2022 Thursday 14:15 - 16:15 26.11 Simone Mentasti Laboratory rospy, rosbag, message filter, plotjuggler
27/04/2022 Wednesday 12:15 - 14:15 26.11 Matteo Matteucci Lecture Localization and Kalman Filters
28/04/2022 Thursday --- --- --- --- --- Lauree ---
04/05/2022 Wednesday 12:15 - 14:15 26.11 Matteo Matteucci Lecture Mapping and SLAM
05/05/2022 Thursday 14:15 - 16:15 26.11 Simone Mentasti Laboratory ROS on multiple machines, time synchronization, Actionlib, latched pub, async spinner
11/05/2022 Wednesday 12:15 - 14:15 26.11 Matteo Matteucci Lecture Mapping and SLAM
12/05/2022 Thursday 14:15 - 16:15 26.11 Matteo Matteucci Lecture Algorithms for Robot Navigation
18/05/2022 Wednesday 12:15 - 14:15 26.11 Simone Mentasti Laboratory Robot Navigation, Stage, Gmapping
19/05/2022 Thursday 14:15 - 16:15 26.11 Simone Mentasti Laboratory Robot Navigation (Part II), Robot Localization, mapviz
25/05/2022 Wednesday --- --- --- --- --- No Lecture ---
26/05/2022 Thursday 14:15 - 16:15 26.11 Simone Mentasti Laboratory ROS2, foxglove, second project
01/06/2022 Wednesday 12:15 - 14:15 26.11 Matteo Matteucci Lecture Algorithms for Robot Navigation
02/06/2022 Thursday --- --- --- --- --- No Lecture ---
03/06/2022 Friday 09:00 - 11:00 Online Matteo Matteucci Lecture Algorithms for Robot Navigation


Course Evaluation

Course evaluation is composed by two parts:

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

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

Course Project (i.e., the two [2] homeworks)

In the course project, you will use ROS to develop a simple autonomous mobile robot performing simple mapping, localization, and navigation task. The project requires some coding either in C++ / Python following what will be presented during the lectures (we suggest using C++ as it will be the language used in class). The project will be presented in two (2) 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 2021/2022

Slides from the lectures by Matteo Matteucci

Slide from the teaching assistant, including code examples and homework descriptions are available in their respective folders

  • Last version of slides from the lectures by Paolo Cudrano are available HERE!.
  • Last version of slides from the lectures by Simone Mentasti are available HERE!.

Year 2020/2021 Recording

As I registered these due to pandemics, I am making them available. They DO NOT REPLACE THIS YEAR classroom lectures which are to be considered as the official material of this year, but they might be useful to double-check your notes.

Also, labs are available, however, the organization during the pandemic was kind of different with 2 teams to reduce classroom occupancy. This is why they might resemble a kind of disconnected.

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

If you have problems in installing Linux on your machine you can use a USB drive distro and boot on it instead of your OS. Note: We are testing this guide these days we might have some tips and tricks for it so stay tuned!

The ROS framework is C++ based, if you want to check some C++ tutorial online you can have a look at

Useful readings

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


Course Projects

Homework 2021/2022

  • The First project con the Robotics class is available HERE!, deadline is 29/04/2022!
  • The Second project con the Robotics class is available HERE!, deadline is 26/06/2022!

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 are not as effective as a real install, but they work.

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 set up a slack group for the project you can organize autonomously. Nevertheless, you can do the project alone as well (but we advise you to do it in groups).

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

Note on 06/07/2022 Exam

This is a short note on the grading of the 06/07/2022 exam. On average has not been different from the others calls except one exercise you might want to know more about, i.e., exercise 1. I take this opportunity to comment on the grading of all exercises so you can get an immediate comment and if there is something missing you can then write to me.

  • Exercise 1: the key point here is the use of a "single RGB camera", because of this, we do not have distance measurements and cannot consider the sensor as lidar, sonar, or stereo vision system. Because of this, beam or scan sensor models dedicated to range sensors are not applicable. In this case, you need to use a landmark-based sensor model getting landmarks from the vision system, e.g., a door or a fire extinguisher (examples made multiple times during lectures). As for the localization system any solution which leverages this sensor model is ok, it could be an Extended Kalman Filter, or a Monte Carlo Localization (as the soccer dog example we made in class and you find in the slides), but what is important is to motivate the system on the characteristics of the landmark sensor, not just provide a generic description of a localization algorithm.
  • Exercise 2: more or less all exams got the first two points correct, as for the third two options equally correct exist. A) you specify the actuator on the back wheels for forward motion and on the frontal wheels for steering and then you provide the derivation of the Ackerman kinematics; B) you specify that frontal wheels are just caster wheels for support and then you have 2 independent motors on the back deriving then the differential drive kinematics. Partial answers get partial grades. If you are curious the "real" robot is made like B)
  • Exercise 3: the decision on the action to choose is based on a scoring function which is different in the cases of 3.1, 3.2, and 3.3. Describing these scoring functions provides full marks, only stating they exist or mixing them up only partial mark, not mentioning these scoring functions zero mark. As for 3.4, the solution is manually (or automatically) tuning the coefficients via trial and errors possibly in simulation.
  • Exercise 4: not stating clearly the characteristics of topics, services and actions gives partial credit.
  • Exercise 5: most of you got the point, full SLAM requires to estimate the map and the full trajectory. If you want to implement it using an EKF-SLAM algorithm you need to add all the poses to the state of the EKF and estimate jointly the map and the trajectory. This makes the state grow linearly with time and the complexity quadratically with the size of the state ... if you are curios you can check SAM (Smoothing and Mapping) id does exactly this.
  • Exercise 6: who has applied A* got full mark, who has just searched for the path and found it by looking at the graph exploring it partially got very low mark. Intermediate marks are give because of incomplete solutions or errors in the execution.

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 2020/2021

Here they are the curse homework projects:

  • The first course project has been published on 14/04/2021
    • The description of the first ROS Project is HERE
    • The material for the project is HERE
    • You have to deliver it by 16/05/2021 !!!
  • The second course project has been published on 26/05/2021
    • The description of the second ROS Project is HERE
    • The material for the project is HERE
    • You have to deliver it by 27/06/2021 !!!

Homework 2019/2020

Here they are the curse homework projects:

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