Difference between revisions of "Robotics"

From Chrome
Jump to: navigation, search
(Detailed course schedule)
(544 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
__FORCETOC__
 
__FORCETOC__
  
 +
The following are last-minute news you should be aware of ;-)
 +
* 02/05/2024: Updated all slides decks up to SLAM.
 +
* 24/04/2024: Updated detailed calendar, check it!!
 +
* 08/03/2024: Updated detailed calendar, check it!!
 +
* 21/02/2024: New course edition starts!!
 +
<!--
 +
* 21/02/2024: Grades for the 12/02/2024 call with projects [[Media:Grades_20240212.pdf|here]].
 +
* 21/01/2024: Grades for the 15/01/2024 call with projects [[Media:Grades_20240115.pdf|here]].
 +
* 01/10/2023: Grades for the 29/08/2023 call with projects [[Media:Grades_20230829.pdf|here]].
 +
* 07/08/2023: Grades for the 21/07/2023 call with projects [[Media:Grades_20230721.pdf|here]].
 +
* 14/07/2023: Grades for the 14/06/2023 call + all projects with fixes [[Media:Grades_20230614_all_v2.pdf|here]].
 +
* 13/07/2023: Grades for the 14/06/2023 call + all projects published [[Media:Grades_20230614_all.pdf|here]].
 +
* 05/07/2023: First set of grades for laureadi for the 14/06/2023 call is published [[Media:Grades_20230614_laureandi.pdf|here]].
 +
* 02/06/2023: Grades of the [[Media:Grades_HW1_2223.pdf|first project are here]]!
 +
* 31/05/2023: Change of schedule and rooms for the last lectures please check!
 +
* 14/03/2023: Updates the link to Mentasti folder .. it was already there, just moved now to 2022/2023
 +
* 12/03/2023: Schedule update and a new guide for ROS Install
 +
* 03/03/2020: Lectures updates, MacOS users need to install Linux too :-(
 +
* 24/02/2023: Added a note on [https://chrome.deib.polimi.it/index.php?title=Robotics#Installing_ROS_with_Dual_Boot how to dual boot] (don't forget to backup first!), MacOS users might not need dual boot, we are double-checking
 +
* 22/02/2023: Added today's recording in the detailed schedule
 +
* 22/02/2023: Lectures stat today!
 +
* 19/02/2023: All grades of the [[Media:Grades_20230203.pdf|03/02/2023 call]].
 +
* 01/02/2023: All grades of the [[Media:Grades_20230112.pdf|12/01/2023 call]].
 +
* 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]
 +
* 14/04/2021: The first homework project is out! Check it [https://chrome.deib.polimi.it/index.php?title=Robotics#Course_Projects here]
 +
* 09/04/2021: Lab sessions will be back to presence from 20/04/2021 on (check the detailed schedule)
 +
* 09/04/2021: Added a new lecture on 21/04/2021 to recover the one missed two weeks ago
 +
* 30/03/2021: Today's lab webex room is Simone Mentasti one
 +
* 25/03/2021: Added link to the last lab video and some references about C++
 +
* 24/03/2021: This morning lecture is canceled (afternoon lab will happen as usual)
 +
* 06/03/2021: Updated video from the lab and the lectures
 +
* 05/03/2021: Added link to USB stick linux distribution [https://chrome.deib.polimi.it/index.php?title=Robotics#Useful_stuff_from_the_web here]!!!
 +
* 05/03/2021: From today until new communication lectures and labs will be online in the professor webex room
 +
* 03/03/2021: Today's lab webex room is Simone Mentasti one (for presence no change, is the normal class)
 +
* 24/02/2021: Lecture videos and slides published
 +
* 24/02/2021: Lectures start today!
 +
-->
 +
<!--
 +
* 05/10/2020: Final [[Media:Grades_20200908_hws_final.pdf|grades]] from the 08/09/2020 call
 +
* 18/07/2020: Final [[Media:Grades_20200617_hws_final.pdf|grades]] from the 17/06/2020 call
 +
* 10/07/2020: Second [[Media:Grades_20200617_hws.pdf|homework and urgent grades]] from the 17/06/2020 call
 +
* 12/06/2020: Exam rehearsal [https://polimi-it.zoom.us/j/89319381617?pwd=bE9BYi91bHRBZ2JJTTR4Qm1YaFhJQT09 zoom room] and [https://forms.office.com/Pages/ResponsePage.aspx?id=K3EXCvNtXUKAjjCd8ope6ztteKg6OERCsstxb4n43e9UMjQyRkVKQktJQzBGQ1pHQURGQTFCRU0wRy4u form to be filled]
 +
* 03/06/2020: First homework results are [[Media:Grades_2020_HW1.pdf|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!
 +
-->
 +
 +
<!--
 
The following are last minute news you should be aware of ;-)
 
The following are last minute news you should be aware of ;-)
 +
23/02/2020: [[Media:Grades_20200212.pdf|Here]] you find the scores for the 12/02/2020 exam call, they include also the homeworks
 +
08/02/2020: [[Media:Grades_20200122.pdf|Here]] you find the scores for the 22/01/2020 exam call, they include also the homeworks
 +
28/08/2019: [[Media:Grades_20190910.pdf|Here]] you find the scores for the 10/09/2019 exam call, they include also the homeworks
 +
28/08/2019: [[Media:Grades_20190724.pdf|Here]] you find the scores for the 24/07/2019 exam call, they include also the homeworks
 +
21/07/2019: [[Media:Grades_20190703.pdf|Here]] you find the scores for the 03/07/2019 exam call, they include also the homeworks
 +
25/06/2019: Deadline extension!!! Second part of the project is due by July the 8th at 23:59!!!
 +
28/05/2019: Schedule update with additional lecture
 +
12/05/2019: Project slide uploaded!!!
 +
11/05/2019: Change in the detailed schedule for Wednesday 15/05/2019 and Monday 27/5/2019
 +
07/04/2019: Updated version on slides about robot localization
 +
27/03/2019: Uploaded first version of slides on robot localization
 +
10/03/2019: Uploaded slides on mobile robot odometry
 +
05/03/2019: Swap on lecture scheduling 27/03 and 29/04
 +
26/02/2019: Course slides updated
 +
25/02/2019: Here it comes a new edition of the course!
 +
01/10/2018: [[Media:Grades_20180911.pdf|Here]] you find the scores for the third exam calls, they include also the second homework
 +
30/07/2018: [[Media:Grades_20180713.pdf|Here]] you find the scores for the first and second exam calls, they include also the second homework
 +
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.
 +
26/02/2018: Course starts today!
 +
--><!--
 +
02/10/2017: you can find here the [[Media:Grades_20170904_1.pdf|grades of the 04/09/2017 call]] including the project grades (colors do not have any meaning).
 +
12/09/2017: you can find here the [[Media:Grades_20170904.pdf|grades of the 04/09/2017 call]] for LAUREANDI including the project grades (except one).
 +
12/09/2017: the final grades of the [[Media:Grades_20170717_2.pdf|17/07/2017 call]] including the project grades are out.
 +
22/08/2017: you can find here the [[Media:Grades_20170717.pdf|grades of the 17/07/2017 call]]. Projects not included.
 +
20/08/2017: the final grades of the [[Media:Grades_20170701_3.pdf|01/07/2017 call]] with the projects are out ... the following call will come shortly
 +
25/07/2017: the deadline to deliver the second part of the homework project has been moved to Monday 07/08/2017
 +
15/07/2017: you can find here the [[Media:Grades_20170701_2.pdf|grades of the 01/07/2017 call]] with the projects for the laurandi students included.
 +
11/07/2017: you can find here the [[Media:Grades_20170701.pdf|grades of the 01/07/2017 call]]. Projects not included.
 +
11/07/2017: Update on Homework project
 +
12/06/2017: Second part of the project published
 +
05/06/2017: Sent confirmation email to students who have submitted the first part of the project 
 +
12/05/2017: "Project clinic" details published in the schedule
 +
10/05/2017: Two dates for the "Project clinic" are planned please stay tuned for details
 +
08/05/2017: Change in the course Schedule ... check the updates!
 +
18/04/2017: Fixed link in the Homework Part A assignment.
 +
15/04/2017: The Homework Part A is out!!
 +
15/04/2017: Uploaded slides from Bardaro about ROS
 +
06/03/2017: Lectures start today!!
 +
-->
 +
<!--
 +
07/10/2016: published [[Media:Grades_20160926.pdf|results of the 26/09/2016 call including projects]]
 +
12/09/2016: published [[Media:Grades_20160905.pdf|results of the 05/09/2016 call]]. '''Yellow projects still to be graded thus the final mark does not include those yet!'''
 +
09/09/2016: published [[Media:Grades_20160627_20160720.pdf|results of the first and second call including projects]]
 +
25/08/2016: published [[Media:Grades_20160720.pdf|results of the second call of the exam]], as well al [[Media:20160720.pdf|the text of the exam]] itself
 
  15/07/2016: the deadline for delivering the course project has been extendend until the end of August 2016.
 
  15/07/2016: the deadline for delivering the course project has been extendend until the end of August 2016.
 
  15/07/2016: published [[Media:Grades_20160627.pdf|results of the first call of the exam]], as well al [[Media:20160627.pdf|the text of the exam]] itself
 
  15/07/2016: published [[Media:Grades_20160627.pdf|results of the first call of the exam]], as well al [[Media:20160627.pdf|the text of the exam]] itself
Line 18: Line 165:
 
  09/03/2016: Change in course timetable, lectures start at 14:00 (sharp!) and end at 15:30 (roughly)
 
  09/03/2016: Change in course timetable, lectures start at 14:00 (sharp!) and end at 15:30 (roughly)
 
  09/03/2016: Lectures start today!!
 
  09/03/2016: Lectures start today!!
 +
-->
  
 
==Course Aim & Organization==
 
==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.
+
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===
 
===Teachers===
Line 27: Line 175:
 
The course is composed by a blending of lectures and exercises by the course teacher and a teaching assistant.
 
The course is composed by a blending of lectures and exercises by the course teacher and a teaching assistant.
  
* [http://www.dei.polimi.it/people/matteucci Matteo Matteucci]: the course teacher
+
* [https://www.deib.polimi.it/ita/personale/dettagli/267262 Matteo Matteucci]: the course teacher and this is his [HTTP://politecnicomilano.webex.com/join/matteo.matteucci webex room]
* [http://www.deib.polimi.it/ita/personale/dettagli/672100 Gianluca Bardaro]: the teaching assistant
+
* [https://www.deib.polimi.it/eng/people/details/1304888 Simone Mentasti]: the teaching assistant and this is his [HTTP://politecnicomilano.webex.com/join/simone.mentasti webex room]
 +
<!-- * [https://www.deib.polimi.it/ita/personale/dettagli/974764 Paolo Cudrano]: the teaching assistant and this is his [HTTP://politecnicomilano.webex.com/join/paolo.cudrano webex room]-->
  
 
===Course Program===
 
===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.
+
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 38: Line 187:
 
* Sensors and perception,
 
* Sensors and perception,
 
* Robot localization and map building,
 
* Robot localization and map building,
* Simultaneour Localization and Mapping (SLAM),
+
* Simultaneous Localization and Mapping (SLAM),
* Path planning and collision avoidance,
+
* Path planning and collision avoidance.
* Exploration of unknown terrain.
+
  
 
===Detailed course schedule===
 
===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!!
+
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
+
Note: Lecture timetable interpretation
* On Wednesdays, in E.G.2, starts at 14:00, ends at 15:30
+
* On Wednesday, in T2.1, starts at 12:30 ends at 14:10
* On Thursday, in D.1.1, starts at 14:00, ends at 15:30
+
* On Thursday, in 8.0.1, starts at 14:30 ends at 16:10
  
 +
{| border="1" align="center" style="text-align:center;"
 +
|-
 +
|Date || Day || Time || Room || Teacher || Type || Topic
 +
|-
 +
|21/02/2024 || Wednesday || 12:15 - 14:15 || T2.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=7eb66d2babb8e2c90f3153dff4d529ca Course/Robotics Intro]
 +
|-
 +
|22/02/2024 || Thursday || 14:15 - 16:15 || 8.0.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=0e5853d8a07195ab5d6dd0dbd6f2b85f Actuators and Sensors]
 +
|-
 +
|28/02/2024 || Wednesday || 12:15 - 14:15 || T2.1 || Simone Mentasti || Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=e7cb13495a48c3fea52fb8f41f96b593 ROS Intro / Install instructions]
 +
|-
 +
|29/02/2024 || Thursday || 14:15 - 16:15 || 8.0.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=e8fb513ac12dafa4a58242576356edd2 Sensors and Intro to Kinematics]
 +
|-
 +
|06/03/2024 || Wednesday || 12:15 - 14:15 || -- || -- || No Lecture || --
 +
|-
 +
|07/03/2024 || Thursday || 14:15 - 16:15 || 8.0.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=e8d87f29a7aa3dc35665abb5fb12ac50 Kinematics and Odometry]
 +
|-
 +
|13/03/2024 || Wednesday || 12:15 - 14:15 || -- || -- || No Lecture || --
 +
|-
 +
|14/03/2024 || Thursday || 14:15 - 16:15 || -- || -- || No Lecture || --
 +
|-
 +
|20/03/2024 || Wednesday || 12:15 - 14:15 || T2.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=bfadcc536f154082d3cbbdb18a53ae1d Kinematics]
 +
|-
 +
|21/03/2024 || Thursday || 14:15 - 16:15 || 8.0.1 || Simone Mentasti || Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=6591b8b5abe14445e8af700bf4c725a5 Docker /ROS Basics/ tools]
 +
|-
 +
|27/03/2024 || Wednesday || 12:15 - 14:15 || T2.1 || Simone Mentasti || Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=380d49a0066fff8ee7e9011d2b021632 Pub/Sub /launch messages]
 +
|-
 +
|28/03/2024 || Thursday || 14:15 - 16:15 || 8.0.1 || Simone Mentasti || Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=9e81fdf3b340bf8a6cffd8a08c264b76 Service and Params/ timers]
 +
|-
 +
|03/04/2024 || Wednesday || 12:15 - 14:15 || T2.1 || Simone Mentasti || Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=563fbe44a06b6e00c6a58b218149e6cd TF / Rviz / first project]
 +
|-
 +
|04/04/2024 || Thursday || 14:15 - 16:15 || 8.0.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=f5ce972ce2f5e74769bc725ababc8da0 Localization and LIDARs]
 +
|-
 +
|10/04/2024 || Wednesday || 12:15 - 14:15 || T2.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=54235d0afeb417d8abde7d98b25620a7 Localization and Bayes Filters]
 +
|-
 +
|11/04/2024 || Thursday || 14:15 - 16:15 || -- || -- || No Lecture || --
 +
|-
 +
|17/04/2024 || Wednesday || 12:15 - 14:15 || T2.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=b1bbccc508817d1adfdd852137e9f7ba Localization and Kalman Filters]
 +
|-
 +
|18/04/2024 || Thursday || 14:15 - 16:15 || 8.0.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=c5b1a81dee8baeef58adbf93a51848e9 Localization and Particle Filters]
 +
|-
 +
|24/04/2024 || Wednesday || 12:15 - 14:15 || T2.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=289b9fb27bd6f8ac3a1f689b51d70a23 Mapping and EKF-SLAM]
 +
|-
 +
|25/04/2024 || Thursday || 14:15 - 16:15 || -- || -- || No Lecture || --
 +
|-
 +
|01/05/2024 || Wednesday || 12:15 - 14:15 ||  -- || -- || No Lecture || --
 +
|-
 +
|02/05/2024 || Thursday || 14:15 - 16:15 || 8.0.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=4712b5560dd4e0d5cbdc86bfa301064a FastSLAM and Graph-SLAM]
 +
|-
 +
|08/05/2024 || Wednesday || 12:15 - 14:15 || T2.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=3ede4b0405e20cbd6bfe48cb1c6e7ff9 Algorithms for Robot Navigation]
 +
|-
 +
|09/05/2024 || Thursday || 14:15 - 16:15 || 8.0.1 || Simone Mentasti || Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=ba53e99e14a07c5e2de5707a758df6e0 Message filters /rospy/rosbag]
 +
|-
 +
|15/05/2024 || Wednesday || 12:15 - 14:15 || T2.1 || Simone Mentasti || Laboratory || [https://politecnicomilano.webex.com/recordingservice/sites/politecnicomilano/recording/2b555960830d45b48f753ae013506d57/playback?from_login=true ROS on Multiple Devices, actions]
 +
|-
 +
|16/05/2024 || Thursday || 14:15 - 16:15 || 8.0.1 || Simone Mentasti || Laboratory || [Robot Navigation]
 +
|-
 +
|22/05/2024 || Wednesday || 12:15 - 14:15 || T2.1 || Simone Mentasti || Laboratory || [Robot Navigation]
 +
|-
 +
|23/05/2024 || Thursday || 14:15 - 16:15 || 8.0.1 || Simone Mentasti || Laboratory || [Future of ROS, ROS2, second project]
 +
|-
 +
|29/05/2024 || Wednesday || 12:15 - 14:15 || T2.1 || Matteo Matteucci || Lecture || [Algorithms for Robot Navigation]
 +
|-
 +
|30/05/2024 || Thursday || 14:15 - 16:15 || 8.0.1 || Matteo Matteucci || Lecture || [Algorithms for Robot Navigation]
 +
|}
 +
<!--
 +
{| border="1" align="center" style="text-align:center;"
 +
|-
 +
|Date || Day || Time || Room || Teacher || Type || Topic
 +
|-
 +
|22/02/2023 || Wednesday || 12:15 - 14:15 || 26.11 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=2bd36d413c4ad37cc70745838c3af77c Course/Robotics Intro]
 +
|-
 +
|23/02/2023 || Thursday || 14:15 - 16:15 || T2.2 || -- || -- || -- No Lecture --
 +
|-
 +
|01/03/2023 || Wednesday || 12:15 - 14:15 || 26.11 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=4478575952286692cb960ed10851c833 Actuators and Sensors]
 +
|-
 +
|02/03/2023 || Thursday || 14:15 - 16:15 || T2.2 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=f0aece7d39ea116f3e42b47790cc09ef Sensors]
 +
|-
 +
|08/03/2023 || Wednesday || 12:15 - 14:15 || 26.11  || -- || -- || -- No Lecture --
 +
|-
 +
|09/03/2023 || Thursday || 14:15 - 16:15 || T2.2 || Simone Mentasti || Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=e19b8d04a14ae588c8f8660e023d5535 ROS Install]
 +
|-
 +
|15/03/2023 || Wednesday || 12:15 - 14:15 || 26.11 || Simone Mentasti || Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=54bf1709dfe25c78d2ee83e2e5f87071 ROS Basics]
 +
|-
 +
|16/03/2023 || Thursday || 14:15 - 16:15 || T2.2 || Simone Mentasti || Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=72345d0f90c0495ff633afb609fc2161 Pub / Sub]
 +
|-
 +
|22/03/2023 || Wednesday || 12:15 - 14:15 || 26.11 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=177dd25b58119b8878bf61b14bfc7230 Direct Kinematics (Part 1)]
 +
|-
 +
|23/03/2023 || Thursday || 14:15 - 16:15 || T2.2 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=4dc014d34387133462ad5a4b89c7f226 Direct Kinematics (Part 2)]
 +
|-
 +
|29/03/2023 || Wednesday || 12:15 - 14:15 || 26.11 || Simone Mentasti || Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=a4dc352bda6103039bd9e77b342d3330 Services and Params] 
 +
|-
 +
|30/03/2023 || Thursday || 14:15 - 16:15 || T2.2 || Simone Mentasti || Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=a54c6895eca1f7ce225fcab866a192a9 TF / Rviz / Actions] + [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=61f5fcc101edd314ecc2e07b2f13344f First project presentation]
 +
|-
 +
|05/04/2023 || Wednesday || 12:15 - 14:15 || 26.11 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=d38accc29bc965a19d758337b99c8112 Localization and Lidars]
 +
|-
 +
|06/04/2023 || Thursday || 14:15 - 16:15 || T2.2 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=c26d87d37bb5dd68010bf7e1a7c94542 Localization and Bayes Filters]
 +
|-
 +
|12/04/2023 || Wednesday || 12:15 - 16:15 || 26.11 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=1c7fac217deed4899a55d45db8a8e468 Localization and Kalman Filters]
 +
|-
 +
|13/04/2023 || Thursday || 14:15 - 16:15 || T2.2 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=cc766b2c306e061695276450276ad2d1 Localization and Particle Filters]
 +
|-
 +
|19/04/2023 || Wednesday || 12:15 - 14:15 || 26.11 || -- || -- || -- Sosp. Prove Itinere --
 +
|-
 +
|20/04/2023 || Thursday || 14:15 - 16:15 || T2.2 || -- || -- || -- Sosp. Prove Itinere --
 +
|-
 +
|26/04/2023 || Wednesday || 12:15 - 14:15 || 26.11 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=f191a1061181d928a34191ad40006259 Mapping and SLAM]
 +
|-
 +
|27/04/2023 || Thursday || 14:15 - 16:15 || T2.2 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=21640a4c56d1fe51cbc5ef9c441a6d1a Mapping and SLAM]
 +
|-
 +
|03/05/2023 || Wednesday || 12:15 - 14:15 || 26.11 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=5f7d3392306bce48464e7fcaf44cbe1b Algorithms for Robot Navigation - Local Planners]
 +
|-
 +
|04/05/2023 || Thursday || 14:15 - 16:15 || T2.2 || -- || -- || -- Graduation --
 +
|-
 +
|10/05/2023 || Wednesday || 12:15 - 14:15 || 26.11 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=9257d23ed3b52126e81a7f289ed22d7f Algorithms for Robot Navigation - Search Based Planning]
 +
|-
 +
|11/05/2023 || Thursday || 14:15 - 16:15 || T2.2 || Simone Mentasti || Laboratory ||  [https://politecnicomilano.webex.com/recordingservice/sites/politecnicomilano/recording/playback/7c1f0bd0d225103bbf5b2e28a80ec620 Message filters, ROS Bag, Actionlib]
 +
|-
 +
|17/05/2023 || Wednesday || 12:15 - 14:15 || 26.11 || Simone Mentasti || Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=eda5f529be0f6d81f8136051e49e2551 ROS on multiple machines, time synchronization, Actionlib, latched pub, async spinner]
 +
|-
 +
|18/05/2023 || Thursday || 14:15 - 16:15 || T2.2 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=542564e0609b5c3f43dc71f0668d96c1 Algorithms for Robot Navigation - Sampling Based Planning]
 +
|-
 +
|24/05/2023 || Wednesday ||12:15 - 14:15 || 26.11 || Simone Mentasti || Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=4888654b4f766d87e434d9cba9fc1a34 Robot Navigation, Stage, Gmapping]
 +
|-
 +
|25/05/2023 || Thursday || 14:15 - 16:15 || T2.2 || --- || --- || -- No Lecture --
 +
|-
 +
|31/05/2023 || Wednesday || 12:15 - 14:15 || 26.11 || Simone Mentasti || Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=4b7b08b0c9eabe214fba82a7745b9849 Robot Navigation (Part II), Robot Localization, mapviz] 
 +
|-
 +
|01/06/2023 || Thursday || 14:15 - 16:15 || T2.2 || Simone Mentasti || Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=ce086fa4c075d8a3f5f2ac296e6e467e ROS2, foxglove], and [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=022b792cfd0a1be10c966cc5a8af499d Second project]
 +
|-
 +
|07/06/2023 || Wednesday || 12:15 - 14:15 || -- ||  --- || --- || -- No Lecture --
 +
|-
 +
|08/06/2023 || Thursday || 14:15 - 16:15 || 25.0.1 || Matteo Matteucci || Lecture || Questions and Answering
 +
|}
 +
 +
{| 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;"
 +
|-
 +
|Date || Day || Time || Room || Teacher || Type || Topic
 +
|-
 +
|24/02/2021 || Wednesday || 10:15 - 13:15 || Online on webex || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=e953e0e29b744f0fa604c2c401cb40b6 Course logistics] + [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=2068c40227aa4091a5483bb3c57af5e1 Introduction to Robotics]
 +
|-
 +
|24/02/2021 || Wednesday || 14:15 - 16:15 || --- || --- || --- || --- No Lecture ---
 +
|-
 +
|02/03/2021 || Tuesday || 17:15 - 19:15 || 3.0.2 (EX S.0.5) || Paolo Cudrano || ROS Team 1 || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=d260c9fb0aeb4963bfb3aa7be89a1632 Introduction to middleware in Robotics]
 +
|-
 +
|03/03/2021 || Wednesday || 10:15 - 13:15 || Online on webex || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=e74e003ef5664d849f848ff3831dd7e6 Sensors and Actuators]
 +
|-
 +
|03/03/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=3196f800c2be49b88f858ca6fd96b117 Introduction to middleware in Robotics]
 +
|-
 +
|09/03/2021 || Tuesday || 17:15 - 19:15 || Online on webex || Paolo Cudrano || ROS Team 1 || ROS Basics (see next for recoding)
 +
|-
 +
|10/03/2021 || Wednesday || 10:15 - 13:15 || Online on webex || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=30df56c53c6a4ac199dafff310f1f222 Robot Sensors] and [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=4dbee67823f8417f8e3784248c4712db Intro to SLAM]
 +
|-
 +
|10/03/2021 || Wednesday || 14:15 - 16:15 || Online on webex || Paolo Cudrano || ROS Team 2 || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=86c7caa885764429aff9777ed5cfa322 ROS Basics]
 +
|-
 +
|16/03/2021 || Tuesday || 17:15 - 19:15 || Online on webex || Paolo Cudrano || ROS Team 1 || Publishers and Subscribers (see next for recording)
 +
|-
 +
|17/03/2021 || Wednesday || 10:15 - 13:15 || Online on webex || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=d85a41c9c6404ccab84b725f902c99eb Robot Kinematics (Differential Drive)]
 +
|-
 +
|17/03/2021 || Wednesday || 14:15 - 16:15 || Online on webex || Paolo Cudrano || ROS Team 2 || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=41a263d5283e4c5d8a16840a1277512b Publishers and Subscribers]
 +
|-
 +
|23/03/2021 || Tuesday || 17:15 - 19:15 || Online on webex|| Paolo Cudrano || ROS Team 1 || Services and Parameters (see next for recording)
 +
|-
 +
|<s>24/03/2021</s> || <s>Wednesday</s> || <s>10:15 - 13:15</s> || <s>Online on webex</s> || <s>Matteo Matteucci</s> || <s>Lecture</s> || <s>Robot Kinematics </s>
 +
|-
 +
|24/03/2021 || Wednesday || 14:15 - 16:15 || Online on webex || Paolo Cudrano || ROS Team 2 || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=3e67b96db3bb4001a3a8af5b5b12f435 Services and Parameters]
 +
|-
 +
|30/03/2021 || Tuesday || 17:15 - 19:15 || Online on webex|| Simone Mentasti || ROS Team 1 || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=b9eb5355185b49c4955ad3515f0e2b7f TF, RVIZ (Mentasti recording)]
 +
|-
 +
|31/03/2021 || Wednesday || 10:15 - 13:15 || Online on webex || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=a323ca89bbbb4fd7b30fb68b1037c10c Robot Kinematics (Continued)]
 +
|-
 +
|31/03/2021 || Wednesday || 14:15 - 16:15 || Online on webex || Paolo Cudrano || ROS Team 2 || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=aabb359b39a44780adc917fa1a86ebb1 TF, RVIZ (Cudrano recording)]
 +
|-
 +
|06/04/2021 || Tuesday || 17:15 - 19:15 || --- || --- || --- || --- No Lecture ---
 +
|-
 +
|07/04/2021 || Wednesday || 10:15 - 13:15 || Online on webex || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=ddc9aed131194c568131dd7e5c0875b3 Localization and LiDARS]
 +
|-
 +
|07/04/2021 || Wednesday || 14:15 - 16:15 || --- || --- || --- || --- No Lecture ---
 +
|-
 +
|13/04/2021 || Tuesday || 17:15 - 19:15 ||Online on webex|| Paolo Cudrano || ROS Team 1 || [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]
 +
|-
 +
|14/04/2021 || Wednesday || 10:15 - 13:15 || Online on webex || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=53269a220d2a4b5b885c36bcc1984116 Localization and Bayes filters]
 +
|-
 +
|14/04/2021 || Wednesday || 14:15 - 16:15 || Online on webex || Paolo Cudrano || ROS Team 2 || Bags, Message filters and rospy (see previous for recording)
 +
|-
 +
|20/04/2021 || Tuesday || 17:15 - 19:15 || --- || --- || --- || --- No Lecture ---
 +
|-
 +
|21/04/2021 || Wednesday || 10:15 - 13:15 || Online on webex || Matteo Matteucci || Lecture ||  [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=fdb9155b23794cc6aac379e0cc2c0bf6 Localization with Kalman filters and Particle filters]
 +
|-
 +
|21/04/2021 || Wednesday || 14:15 - 16:15 || --- || --- || --- || --- No Lecture ---
 +
|-
 +
|27/04/2021 || Tuesday || 17:15 - 19:15 || --- || --- || --- || --- No Lecture ---
 +
|-
 +
|28/04/2021 || Wednesday || 10:15 - 13:15 || --- || --- || --- || --- No Lecture ---
 +
|-
 +
|28/04/2021 || Wednesday || 14:15 - 16:15 || --- || --- || --- || --- No Lecture ---
 +
|-
 +
|04/05/2021 || Tuesday || 17:15 - 19:15 || 3.0.2 (EX S.0.5) || Simone Mentasti || ROS Team 1 || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=7f075850e538498aa019575cdcab9eb2 ROS on Multiple Devices]
 +
|-
 +
|05/05/2021 || Wednesday || 10:15 - 13:15 || Online on webex || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=486985ca26b04cb0962143a7a58491b6 Mapping and SLAM]
 +
|-
 +
|05/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=138182322e7a4a799e162e4c49b39a66 ROS on Multiple Devices]
 +
|-
 +
|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 || [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 || [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 (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>
 +
|-
 +
|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 (see next)
 +
|-
 +
|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 || [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;"
 +
|-
 +
|Date || Day || Time || Room || Teacher || Type || Topic
 +
|-
 +
|04/03/2020 || Wednesday || 12:15 - 14:15 || Teams Virtual Room || Lecture || Matteo Matteucci || [https://web.microsoftstream.com/video/0f7f27ac-4930-44d4-8d1c-638855a7d04b Course Logistics] and [https://web.microsoftstream.com/video/b00b4347-5e11-4e13-bbfd-404e89c73b28 Introduction to Robotics]
 +
|-
 +
|05/03/2020 || Thursday  || 14:15 - 16:15 || Teams Virtual Room || Lecture || Matteo Matteucci || [https://web.microsoftstream.com/video/c3abc791-942e-44af-9f70-c9c81e0815f0 Intro to Robot Actuators and DC Motors]
 +
|-
 +
|11/03/2020 || Wednesday || 12:15 - 14:15 || Teams Virtual Room || Lecture || Matteo Matteucci || [https://web.microsoftstream.com/video/7c980e36-9bcc-4462-a79a-ebfbd3967c7b More on Motors and Intro to Robot Sensors]
 +
|-
 +
|12/03/2020 || Thursday || 14:15 - 16:15 || Teams Virtual Room || Lecture || Matteo Matteucci || [https://web.microsoftstream.com/video/89e90ef3-9588-433f-bacd-f93fe6cfb492 Robot Sensors (continued)]
 +
|-
 +
|18/03/2020 || Wednesday || 12:15 - 14:15 || Teams Virtual Room || ROS || Simone Mentasti || [https://web.microsoftstream.com/video/2a1bb9d7-99f0-40b1-9cf0-c832cdf73e2c Middleware for robotics and ROS Installation Party]
 +
|-
 +
|19/03/2020 || Thursday || 14:15 - 16:15 || Teams Virtual Room || ROS || Simone Mentasti || [https://web.microsoftstream.com/video/cedd53c0-24e5-4071-9a4c-de01b7e59d0d Ros workspace, Publisher/subscriber, launch file]
 +
|-
 +
|25/03/2020 || Wednesday || 12:15 - 14:15 || Teams Virtual Room || Lecture || Matteo Matteucci || [https://web.microsoftstream.com/video/712641c5-ac98-4596-93db-0fb7b5aff41c Introduction to Localization and Robot Kinematics]
 +
|-
 +
|26/03/2020 || Thursday || 14:15 - 16:15 || Teams Virtual Room || Lecture || Matteo Matteucci || [https://web.microsoftstream.com/video/3da222dc-ecd9-4e09-9452-d20d606dfa23 Differential Drive Robot Kinematics and Odometry]
 +
|-
 +
|01/04/2020 || Wenesday || 12:15 - 14:15 || Teams Virtual Room || Lecture || Matteo Matteucci || [https://web.microsoftstream.com/video/ccc5ae01-48e1-489d-8f2c-b71a1a1e9cb4 Skid-Steering and Omnidrectional Robot Kinematics and Odometry]
 +
|-2
 +
|02/04/2020 || Thursday || 14:15 - 16:15 || Teams Virtual Room || Lecture || Matteo Matteucci || [https://web.microsoftstream.com/video/03ff3d93-8bdc-49d1-b9fd-3b3242bfa695 Ackerman like Robot Kinematics and Odometry]
 +
|-
 +
|08/04/2020 || Wednesday || 12:15 - 14:15 || Teams Virtual Room || ROS ||Simone Mentasti || [https://web.microsoftstream.com/video/9c83039d-32e5-4396-889e-259eeb80f6a1 Publisher, subscriber, launch file , custom messages]
 +
|-
 +
|09/04/2020 || Thursday || 14:15 - 16:15 || Teams Virtual Room || ROS || Simone Mentasti || [https://web.microsoftstream.com/video/5d2c2cf1-1369-46a8-83ad-a7c4dac24f98 Services, parameters],[https://web.microsoftstream.com/video/7e937b7a-15ac-4a3c-91fa-db16beedf7ef parameters (continued), timers, node architecture]
 +
|-
 +
|15/04/2020 || Wednesday || 12:15 - 14:15 || Teams Virtual Room || ROS ||Simone Mentasti || [https://web.microsoftstream.com/video/d454b7b3-382d-4b96-b082-d7c77bbe11ef TF, Rviz, Actionlib]
 +
|-
 +
|16/04/2020 || Thursday || 14:15 - 16:15 || Teams Virtual Room || ROS || Simone Mentasti || [https://web.microsoftstream.com/video/8ee81454-b420-4d53-ab11-b847d0ee9c46 Message filter, rospy]
 +
|-
 +
|16/04/2020 || Thursday || 14:15 - 16:15 || Teams Virtual Room || ROS || Simone Mentasti || [https://web.microsoftstream.com/video/a02ba753-bbcc-4f9d-84c1-b8d756b94425 Project presentation]
 +
|-
 +
|22/04/2020 || Wenesday || 12:15 - 14:15 || Teams Virtual Room || Lecture || Matteo Matteucci || [https://web.microsoftstream.com/video/b2d048b9-a93d-4fc7-b24b-1185ae16d9d3 Introduction to Robot Localization and LIDAR sensor modeling]
 +
|-
 +
|23/04/2020 || Thursday || 14:15 - 16:15 || Teams Virtual Room || Lecture || Matteo Matteucci || [https://web.microsoftstream.com/video/6c43fe49-74ed-4111-a2c3-fe67bb6a94dd 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 ||  [https://web.microsoftstream.com/video/df9ace9e-286d-4d7d-98dd-1218ef873a62 Robot Localization with (Extended) Kalman Filters]
 +
|-
 +
|06/05/2020 || Wednesday || 12:15 - 14:15 || Teams Virtual Room || Lecture || Matteo Matteucci|| [https://web.microsoftstream.com/video/8dcaf0c6-0508-415e-991a-322c91cc9410 Robot Localization with Particle Filters]
 +
|-
 +
|07/05/2020 || Thursday || 14:15 - 16:15 || Teams Virtual Room || Lecture || Matteo Matteucci|| [https://web.microsoftstream.com/video/13d8a902-697a-4a21-8b0e-182595b62198 Robot Mapping]
 +
|-
 +
|13/05/2020 || Wednesday || 12:15 - 14:15 ||  Teams Virtual Room || Lecture ||  Matteo Matteucci || [https://web.microsoftstream.com/video/a35eb86f-faf4-4849-b075-6c766fe35e15 Simultaneous Localization and Mapping]
 +
|-
 +
|14/05/2020 || Thursday || 14:15 - 16:15 ||  Teams Virtual Room || Lecture || Matteo Matteucci || [https://web.microsoftstream.com/video/2ee901d0-d883-477d-bcf3-9f7c93f3ab19 Simultaneous Localization and Mapping]
 +
|-
 +
|20/05/2020 || Wednesday || 12:15 - 14:15 ||  Teams Virtual Room || Lecture ||  Matteo Matteucci || [https://web.microsoftstream.com/video/10b205f8-75d9-4010-ade7-f42c0e7f8afe Robot Navigation Algorithms]
 +
|-
 +
|21/05/2020 || Thursday || 14:15 - 16:15 ||  Teams Virtual Room || Lecture || Matteo Matteucci || [https://web.microsoftstream.com/video/e798be4d-f6a3-40bd-a657-3141cc5a5342 Robot Navigation Algorithms]
 +
|-
 +
|27/05/2020 || Wednesday || 12:15 - 14:15 ||  Teams Virtual Room || ROS || Simone Mentasti || [https://web.microsoftstream.com/video/f77b9fa4-3582-495c-b9d3-4a145ec2d53f ROS on multiple devices, Actionlib]
 +
|-
 +
|28/05/2020 || Thursday || 14:15 - 16:15 ||  Teams Virtual Room || ROS || Simone Mentasti || [https://web.microsoftstream.com/video/ffb64e1b-defa-43dc-8e61-c3394fb472ec Robot Navigation (Introduction)]
 +
|-
 +
|03/06/2020 || Wednesday || 12:15 - 14:15 ||  Teams Virtual Room || ROS || Simone Mentasti || [https://web.microsoftstream.com/video/ca22b7e3-a71d-4dbe-a344-4979a3198e8b Robot simulators] and [https://web.microsoftstream.com/video/36cb2045-2e24-4b84-8773-d5c171ecf4ed Robot Navigation (Examples)]
 +
|-
 +
|04/06/2020 || Thursday || 14:15 - 16:15 ||  Teams Virtual Room || ROS || Simone Mentasti || [https://web.microsoftstream.com/video/d285b29c-df90-44d1-9df6-8ceb375654cd IMU Tools, Robot Localization]
 +
|-
 +
|04/06/2020 || Thursday || 14:15 - 16:15 ||  Teams Virtual Room || ROS || Simone Mentasti || [https://web.microsoftstream.com/video/e7e8bbbc-0387-4920-bf10-feeb29ab6c81 Second project presentation] with [[Media:Robotics_2019_2020_second_project.pdf |slides]]
 +
|-
 +
|12/06/2020 || Friday || 16:30 - 18:30 || Zoom Virtual Room || Lecture || Matteo Matteucci || Q&A + Exam Rehearsal
 +
|}
 +
-->
 +
<!--|-
 +
|13/05/2020 || Wednesday || 12:15 - 14:15 || 5.1.1 || Lecture ||  Matteo Matteucci || Simultaneous Localization and Mapping
 +
|-
 +
|14/05/2020 || Thursday || 14:15 - 16:15 || 6.0.1 || Lecture || Matteo Matteucci || Simultaneous Localization and Mapping
 +
|-
 +
|20/05/2020 || Wednesday || 12:15 - 14:15 || 5.1.1 || Lecture ||  Matteo Matteucci || Robot Navigation Algorithms
 +
|-
 +
|21/05/2020 || Thursday || 14:15 - 16:15 || 6.0.1 || Lecture || Matteo Matteucci || Robot Navigation Algorithms
 +
|-
 +
|27/05/2020 || Wednesday || 12:15 - 14:15 || 5.1.1 || ROS || Simone Mentasti || Message filters, rospy. First project presentation
 +
|-
 +
|28/05/2020 || Thursday || 14:15 - 16:15 || 6.0.1 || ROS || Simone Mentasti || ROS on multiple machines, time syncronization, stage
 +
|-
 +
|03/06/2020 || Wednesday || 12:15 - 14:15 || 5.1.1 || ROS || Simone Mentasti || Robot Navigation (Part I)
 +
|-
 +
|04/06/2020 || Thursday || 14:15 - 16:15 || 6.0.1 || ROS || Simone Mentasti || Robot Navigation (Part II)
 +
|-
 +
| -- || -- || -- || -- || -- || -- || --
 +
|-
 +
| -- || -- || -- || -- || -- || -- || --
 +
|}
 +
-->
 +
<!--
 +
{| border="1" align="center" style="text-align:center;"
 +
|-
 +
|Date || Day || Time || Room || Teacher || Topic
 +
|-
 +
|25/02/2018 || Monday || 16:15 - 18:15 || 5.0.1 || Matteo Matteucci || Course Introduction
 +
|-
 +
|27/02/2018 || Wednesday  || 12:15 - 14:15 || 5.03 || Matteo Matteucci || Robot Sensors and Actuators
 +
|-
 +
|04/03/2018 || Monday || 16:15 - 18:15 || 5.0.1 || Matteo Matteucci || -- No Lecture --
 +
|-
 +
|06/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
 +
|-
 +
|}
 +
-->
 +
<!--
 +
{| border="1" align="center" style="text-align:center;"
 +
|-
 +
|Date || Day || Time || Room || Teacher || Topic
 +
|-
 +
|06/03/2016 || Monday || 16:15 - 18:15 || T.1.1 || Matteo Matteucci || Course Introduction
 +
|-
 +
|08/03/2016 || Wednesday  || 12:15 - 14:15 || L.26.15 || Matteo Matteucci || Robot Kinematics
 +
|-
 +
|13/03/2016 || Monday || 16:15 - 18:15 || T.1.1 || Matteo Matteucci || Robot Kinematics
 +
|-
 +
|15/03/2016 || Wednesday || 12:15 - 14:15 || L.26.15 || Gianluca Bardaro || Gazebosim and URDF
 +
|-
 +
|20/03/2016 || Monday || 16:15 - 18:15 || T.1.1 || Gianluca Bardaro || Differential drive in Gazebo
 +
|-
 +
|22/03/2016 || Wednesday || 12:15 - 14:15 || L.26.15 || Gianluca Bardaro || Middleware for robotics
 +
|-
 +
|27/03/2016 || Monday || 16:15 - 18:15 || T.1.1 || Gianluca Bardaro || A gentle introduction to ROS
 +
|-
 +
|29/03/2016 || Wednesday || 12:15 - 14:15 || L.26.15 || Gianluca Bardaro || Differential drive control in ROS
 +
|-
 +
|03/04/2016 || Monday || 16:15 - 18:15 || T.1.1 || Matteo Matteucci || Robot Kinematics
 +
|-
 +
|05/04/2016 || Wednesday || 12:15 - 14:15 || L.26.15 || Matteo Matteucci || Robot Kinematics
 +
|-
 +
|10/04/2016 || Monday || 16:15 - 18:15 || T.1.1 || Matteo Matteucci || Sensors and Actuators
 +
|-
 +
|12/04/2016 || Wednesday || 12:15 - 14:15 || L.26.15 || Matteo Matteucci || Sensors and Actuators
 +
|-
 +
|17/04/2016 || Monday || 16:15 - 18:15 || - || - || No Lecture
 +
|-
 +
|19/04/2016 || Wednesday || 12:15 - 14:15 || L.26.15 || Matteo Matteucci || Robot navigation algorithms
 +
|-
 +
|24/04/2016 || Monday || 16:15 - 18:15 || - || - || No Lecture
 +
|-
 +
|26/04/2016 || Wednesday || 12:15 - 14:15 || - || - || No Lecture (suspension)
 +
|-
 +
|01/05/2016 || Monday || 16:15 - 18:15 || - || - || No Lecture
 +
|-
 +
|03/05/2016 || Wednesday || 12:15 - 14:15 || - || - || No Lecture (suspension)
 +
|-
 +
|08/05/2016 || Monday || 16:15 - 18:15 || T.1.1- || Matteo Matteucci || Robot navigation algorithms
 +
|-
 +
|10/05/2016 || Wednesday || 12:15 - 14:15 || L.26.15 || Matteo Matteucci || Trajectory planning
 +
|-
 +
|15/05/2016 || Monday || 16:15 - 18:15 || - || - || No Lecture
 +
|-
 +
|17/05/2016 || Wednesday || 12:15 - 14:15 || - || - || No Lecture
 +
|-
 +
|22/05/2016 || Monday || 16:15 - 18:15 || T.1.1 || Gianluca Bardaro || Trajectory planning and navigation in ROS
 +
|-
 +
|24/05/2016 || Wednesday || 12:15 - 14:15 || L.26.15 || Gianluca Bardaro || ROS tf + actionlib
 +
|-
 +
|25/05/2016 || Thursday || 10:00 - 12:00 || PT1 (DEIB) || Gianluca Bardaro || "Project clinic"
 +
|-
 +
|29/05/2016 || Monday || 16:15 - 18:15 || T.1.1 || Gianluca Bardaro || ROS Navigation with movebase
 +
|-
 +
|30/05/2016 || Tuesday || 10:00 - 12:00 || PT1 (DEIB) || Gianluca Bardaro || "Project clinic"
 +
|-
 +
|31/05/2016 || Wednesday || 12:15 - 14:15 || L.26.15 || Gianluca Bardaro || Ros Navigation with movebase (continued)
 +
|-
 +
|05/06/2016 || Monday || 16:15 - 18:15 || T.1.1 || Matteo Matteucci || Introduction to probability and Simultaneous Localization and Mapping (SLAM)
 +
|-
 +
|07/06/2016 || Wednesday || 12:15 - 14:15 || L.26.15 || Matteo Matteucci || Occupancy grids and Laser sensor model
 +
|-
 +
|12/06/2016 || Monday || 16:15 - 18:15 || T.1.1- || Matteo Matteucci || Mapping with known poses and scan matching
 +
|-
 +
|14/06/2016 || Wednesday || 12:15 - 14:15 || L.26.15 || Matteo Matteucci || EKF-SLAM and FAST Slam
 +
|-
 +
|19/06/2016 || Monday || 16:15 - 18:15 || T.1.1- || Matteo Matteucci || Particle filters and Monte Carlo Localization
 +
|-
 +
|}
 +
-->
 +
<!--
 
{| border="1" align="center" style="text-align:center;"
 
{| border="1" align="center" style="text-align:center;"
 
|-
 
|-
Line 115: Line 785:
 
|-
 
|-
 
|}
 
|}
 +
-->
  
 
===Course Evaluation===
 
===Course Evaluation===
Line 120: Line 791:
 
Course evaluation is composed by two parts:
 
Course evaluation is composed by two parts:
  
* A written examination covering the whole program graded up to 27/32
+
* 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 5/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.
+
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 (i.e., the two [2] homeworks)===
  
===Course Project===
+
In the course project, you will use [http://www.ros.org/ 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.
  
In the course project you will use [http://www.ros.org/ ROS] and [http://gazebosim.org/ 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.
+
We checked and found solutions to use ROS on all operating systems. We provide a recap on how you can install ROS on your machine. Keep in mind that the most user-friendly solution is to have a native ubuntu 20.04-ros Noetic installation. Nevertheless, the other solution should work fine for the course.
 +
 
 +
The first lab we will give you details on the system setup!
 +
<!--
 +
=====Linux=====
 +
If you have Ubuntu 20.04 simply install ROS Noetic using [http://wiki.ros.org/noetic/Installation/Ubuntu the official guide]
 +
If you have a different Linux distro, you can use [https://github.com/89luca89/distrobox#installation distrobox] and follow the slides.
 +
For distrobox you can use the image provided which already has most packages installed (smentasti/robotics:latest). If you get errors, you can start from clean ubuntu and then install ROS inside, following the official guide. To do so, you use the command "distrobox create robotics -i ubuntu:20.04" then enter the distrobox "distrobox enter robotics" and install ROS inside.
 +
 
 +
=====MacOS=====
 +
You can try dual-boot, and then follow Linux system instruction
 +
You can try distrobox (experimental) following instructions above
 +
You can use a pure docker system. To do so, [https://docs.docker.com/desktop/install/mac-install/ install docker] and make sure it is working by running the hello world image, using the command "docker run hello-world". Then compile the robotics course image using the provided Dockerfile (instructions on the slides)
 +
 
 +
=====Windows=====
 +
You can try dual-boot, and then follow Linux system instruction
 +
You can use a pure docker system. To do so, [https://docs.docker.com/desktop/install/windows-install/ install docker].It requires the windows linux subsystem installed. If you don't have it, when you open the Docker Desktop program you will be prompted with a message with the command you have to run in a terminal to install it, then make sure it is working by running the hello world image, using the command "docker run hello-world" in a terminal. Finally, compile the robotics course image using the provided Dockerfile (instructions on the slides)
 +
 
 +
====Installing ROS with Dual Boot====
 +
Today installing Linux (I suggest you go with a standard Ubuntu distribution) is fairly simple, and it should not be too complex. [https://itsfoss.com/install-ubuntu-1404-dual-boot-mode-windows-8-81-uefi/ You can try following this guide]
 +
 
 +
In the ideal scenario, you can skip step 4, and on step 6, you can use the first approach. So, most of the things will be handled automatically by the installer. Then, if something is not working, you can explore the additional steps.For example, you should be able to assign the space while installing, so no need to partition the disk before. Then if there are issues with this, you can try the more advanced step and do the partitioning manually.
 +
 
 +
The external SSD option was used by many students last year, and it works fine and allows you to have some more space. The only detail you have to handle properly is where grub will be placed and how the system will boot. [https://www.58bits.com/blog/2020/02/28/how-create-truly-portable-ubuntu-installation-external-usb-hdd-or-ssd Here a guide on how to do it]. The important thing with this is to buy decent disks because if they are too cheap and more similar to USB sticks than disks, they will not work well as a dual boot.
 +
-->
  
 
==Teaching Material (the textbook)==  
 
==Teaching Material (the textbook)==  
Line 135: Line 830:
 
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 2023/2024===
  
 
Slides from the lectures by Matteo Matteucci
 
Slides from the lectures by Matteo Matteucci
*''[2015/2016] 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. [[Media:Robotics_01_Introduction.pdf |(pdf)]] [https://drive.google.com/open?id=0B5eSI7n7LkDhUjRJel8yc3R0cHc (ppsx)]
+
*[[Media:Robotics_00_2324_Course_Introduction.pdf|[2023/2024] Course Introduction]]: introductory slides of the course with useful information about the course syllabus, grading, and the course logistics.  
*''[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. [[Media:Robotics_02_Sensors_Actuators.pdf |(pdf)]] [https://drive.google.com/open?id=0B5eSI7n7LkDhMmM5eHJST0tBWHc (ppsx)]
+
*[[Media:Robotics_01_2324_Introduction.pdf|[2023/2024] Introduction to Robotics]]: Introduction to Robotics, definitions, examples and SAP cognitive model.  
*''[2015/2016] Mobile Robots Kinematics'': mobile (wheeled) robot kinematics, holonomic and non holonomic constraints, differential drive model. [[Media:Robotics_03_Mobile_Robots_Kinematics.pdf |(pdf)]] [https://drive.google.com/open?id=0B5eSI7n7LkDhM3NIRGlNdktRSzA ppsx]
+
*[[Media:Robotics_02_2324_Sensors_Actuators.pdf |[2023/2024] 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.
*''[2015/2016] Robot Motion Control'': mobile robot navigation, trajectory planning, trajectory following, and obstacle avoidance. [[Media:Robotics_04_Motion_Control.pdf |(pdf)]] [https://drive.google.com/open?id=0B5eSI7n7LkDhS3BXZzByYzYxVlU (ppsx)]
+
*[[Media:Robotics_03_2324_Odometry.pdf |[2023/2024] Robot Odometry]]: Robot Localization intro, direct and inverse kinematics, robot odometry for different kinematics (differential drive, skid steering, Ackerman, etc.).
*''[2015/2016] SLAM with Lasers'': introduction to Simultaneous Localization and Mapping, EKF based SLAM, Particle Filters, and Monte Carlo Localization. [[Media:Robotics_05_SLAM_with_Lasers.pdf |(pdf)]] [https://drive.google.com/open?id=0B5eSI7n7LkDhd2FZY1NRWmpiVm8 (ppsx)]
+
*[[Media:Robotics_04_2324_Localization.pdf |[2023/2024] Robot Localization]]: Sensor models, Robot Localization, Bayesian filtering, Kalman Filtering, Monte Carlo Localization.
 +
*[[Media:Robotics_05_2324_SLAM.pdf |[2023/2024] Simultaneous Localization and Mapping]]: Mapping with known poses, scan matching, EKF-SLAM, FAST-SLAM, Graph-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
 +
*[[Media:Robotics_06_2223_MotionControl.pdf |[2022/2023] 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])-->
  
 +
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 Simone Mentasti are available [https://goo.gl/GonArW HERE!].
 +
 +
<!--
 +
*[[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_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:-->
 +
<!-- 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!].
 +
 +
Past year slides are below:
 +
*[[Media:Robotics_L1_2019_ex.pdf|[2018/2019] Middleware in Robotics]]: Middleware for robotics and ROS Installation Party
 +
*[[Media:Robotics_L2_2019_ex.pdf|[2018/2019] ROS Environment]]: Ros workspace, publisher/subscriber
 +
*[[Media:Robotics_L3_2019_ex.pdf|[2018/2019] ROS Basics]]: Messages, services, parameters,launch file
 +
*[[Media:Robotics_L4_2019_ex.pdf|[2018/2019] ROS Tools]]: Bags, tf, actionlib, rqt_tools
 +
*[[Media:Robotics_L5_2019_ex.pdf|[2018/2019] Actiolib]]: Actiolib and message filters
 +
*[[Media:Robotics_L6_2019_ex.pdf|[2018/2019] ROS on Multiple Machines]]: how to run ROS nodes on different machines 
 +
*[[Media:Robotics_L7_2019_ex.pdf|[2018/2019] Robot Navigation]]: ROS Navigation Stack, Movebase, Navcore, Gmapping
 +
*[[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 ;-)
 +
-->
 +
<!--
 +
===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===
 +
These are videos from the web which might be useful to understand better the material presented in the lectures
 +
*[https://www.youtube.com/watch?v=LAtPHANEfQo Understanding DC Brushed Motors] by Learn Engineering
 +
*[https://www.youtube.com/watch?v=bCEiOnuODac Understanding DC Brushless Motors] by Learn Engineering
 +
*[https://www.youtube.com/watch?v=eyqwLiowZiU Understanding DC Stepper Motors] by Learn Engineering
 +
 +
This blog post can be useful to better understand the EKF-SLAM idea and implementation
 +
*[https://jihongju.github.io/2019/07/06/ekfslam-hands-on-tutorial/ EKF-SLAM hands-on tutorial] by Jihong Ju
 +
 +
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!
 +
*[https://www.fosslinux.com/10212/how-to-install-a-complete-ubuntu-on-a-usb-flash-drive.htm How to install a complete ubuntu on a USB flash drive] (need to have the USB drive inserted to boot)
 +
 +
The ROS framework is C++ based, if you want to check some C++ tutorial online you can have a look at
 +
* [https://www.programiz.com/cpp-programming Simple, basic topics about C++]
 +
* [https://www.cplusplus.com/doc/tutorial/ A more detailed tutorial about C++]
 +
* [https://www.learncpp.com/ An even more detailed tutorial on C++] (you can just focus on some particular chapters. In particular, Ch. 11 seems interesting as a detailed overview of Object-Oriented Programming, if you are not familiar with it.)
 +
 +
===Useful readings===
 +
These are papers which explain some of the topics in the lecture with a higher level of details
 +
*[https://www.mdpi.com/1424-8220/15/5/9681/pdf Analysis and experimental kinematics of a skid-steering wheeled robot based on a laser scanner sensor.] Wang, Tianmiao, Yao Wu, Jianhong Liang, Chenhao Han, Jiao Chen, and Qiteng Zhao. Sensors 15, no. 5 (2015): 9681-9702.
 +
*[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.
 +
* [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.
 +
 +
<!--
 +
*[[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_Gazebosim.pdf | [2015/2016] 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.
*[[Media:Robotics_02ex_Gazebosim.pdf | [2015/2016] Gazebosim and plugins]]: more about simulation with Gazebo, modeling of a caster wheel, modeling of noise with Gazebo plugins, the GPS example.
+
*[[Media:Robotics_02ex_2017_GazeboPlugins.pdf | [2016/2017] 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_Middleware.pdf | [2015/2016] Middleware in Robotics]]: an introduction to the use of middleware for robotics, motivation and state of the art review.
+
*[[Media:Robotics_03ex_2017_Middleware.pdf | [2016/2017] Middleware in Robotics]]: an introduction to the use of middleware for robotics, motivation and state of the art review.
*[[Media:Robotics_04ex_ROSIntro.pdf | [2015/2016] ROS Introduction]]: a gentle introduction to the Robot Operating System, most used commands and utilities.
+
*[[Media:Robotics_03ex_2017_ROSInstall.pdf | [2016/2017] ROS Install]]: Introduction to the Robotic Operating System, installation and main conceptual elements
*[[Media:Robotics_05ex_ROS_Architecture.pdf | [2015/2016] ROS Architecture]]: an example of motion control architecture implemented in ROS, integration with Gazebo, introduction to tf.
+
*[[Media:Robotics_04ex_2017_ROSIntro.pdf | [2016/2017] ROS Introduction]]: Introduction to the ROS File system and overview on the most used commands
 +
*[[Media:Robotics_04ex_2017_ROSDevelopment.pdf | [2016/2017] ROS Development]]: Structure of a node and main element used in its development and building.
 +
*[[Media:Robotics_05ex_2017_ROSArchitectureExample.pdf | [2016/2017] ROS Architecture]]: Creating a simple architecture in ROS to manually control a simulated robot. See examples.zip for the source code.
 +
 
 +
Additional material from the teachers
 +
*[[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.
 
*[[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.
 
*[[Media:Robotics_07ex_Actionlib.pdf | [2015/2016] Actionlib]]: the ROS actionlib package.
 
*[[Media:Robotics_07ex_Actionlib.pdf | [2015/2016] Actionlib]]: the ROS actionlib package.
 
 
Additional material from the teachers
 
Additional material from the teachers
 
*[[Media:Robotics_willy1.zip | [2015/2016] willy1.zip]]: gazebo model for a differential drive with a caster wheel
 
*[[Media:Robotics_willy1.zip | [2015/2016] willy1.zip]]: gazebo model for a differential drive with a caster wheel
Line 158: Line 949:
 
*[[Media:lesson_pack.zip | [2015/2016] lesson_pack.zip]]: ROS nodes examples with object oriented template of talker and listener
 
*[[Media:lesson_pack.zip | [2015/2016] lesson_pack.zip]]: ROS nodes examples with object oriented template of talker and listener
 
*[[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 Projects===
 +
==== Homework 2021/2022 ====
 +
* 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 Second project con the Robotics class is available [https://goo.gl/GonArW HERE!], deadline is 26/06/2022!
 +
-->
  
===Course Project===
+
==Frequently Asked Questions==
  
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.:
+
===Course Structure===
  
* [[Media:Robotics_project_2015-2016_1_0.pdf | 2015/2016 Course Project v1.0]]
+
'''What is the biggest difference with the course 093217 ROBOTICS AND DESIGN?'''
* [https://www.dropbox.com/s/hri9tuzh3kblzol/Safer_STL.zip?dl=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.
+
* 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 [http://wiki.ros.org/IDEs list of supported ROS editors] or [https://github.com/tonyrobotics/roboware-studio 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.
 +
 
 +
* [[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]]
 +
 
 +
====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===
 +
 
 +
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====
 +
 
 +
Here they are the curse homework projects:
 +
* [https://drive.google.com/drive/folders/1bbkGsgcp7LNQX6F-uVFyqv0W1MBWH3CZ First project] deadline 8th of May 2020.
 +
* [[Media:Robotics_2019_2020_second_project.pdf |Second project presentation]] deadline 5th of July 2020.
 +
 
 +
====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
 +
* [[Media:Robotics_project_2018-2019_1.pdf | 2018/2019 Course Project Part 1]]: due on '''''Wednesday 29/05/2019''''', this is the first part of the 2018/2019 course project. 
 +
* [[Media:Robotics_project_2018-2018_2.pdf | 2018/2019 Course Project Part 2]]: due on '''''Monday 08/07/2019''''', this is the second and last part of the 2018/2019 course project.
 +
 
 +
====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
 +
* [[Media:Robotics_project_2016-2017_A02.pdf | 2016/2017 Course Project Part A v1.1]]: due on '''''Wednesday 31/05/2017''''' (6 weeks from now), this is the first part of the 2016/2017 course project. 
 +
* [[Media:Robotics_project_2016-2017_B01.pdf | 2016/2017 Course Project Part B v1.0]]: due on '''''Wednesday 28/07/2017''''' (6 weeks from now), this is the second part of the 2016/2017 course project. 
 +
* [[Media:willy3_and_hokuyo.tgz| 2016/2017 Model for Course Project part B v1.0]]: thi si the gazebo model to be used in exercise 4 in the second part of 2016/2017 course project.
 +
<!--
 +
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 [[Media:willy3_and_hokuyo_fixed.tgz| 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 [[Media:willogarage_perfect.tgz| the perfect willowgarage map here!]]
  
Some important notes:
+
Some useful fatcs:
 
* The project can be done in groups of maximum 2 people
 
* The project can be done in groups of maximum 2 people
* We have decided to follow a sort of “homework approach” so you should do the homework to better understand some key concepts from the course … indeed a few question comes from your colleague observations so blame them!
+
* 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.
+
* 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.
* Some data might be missing, some data might be useless, do not hesitate to write us by email, for instance, to ask the weight of the robot and learn that it is 14Kg.
+
  
 
Delivery procedure:
 
Delivery procedure:
* The project should be delivered by email as single compressed file to Matteo Matteucci && Gianluca Bardaro.  
+
* The project should be delivered by email as single compressed file '''''both''''' to Matteo Matteucci && Gianluca Bardaro.  
 
* The archive should contain:
 
* The archive should contain:
** The gazebo model as a directory with SDF files and a ROS package with nodes sources and corresponding launch files (put your names in the directories names)
+
** 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 report describing:
+
** A max 4 pages idiot proof report describing:
 
*** The files provided
 
*** The files provided
 
*** The installation (if any) and compilation instructions
 
*** The installation (if any) and compilation instructions
Line 184: Line 1,081:
 
* 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).
 
* 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!
  
===Past Exams and Sample Questions===
+
'''''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!
 +
-->
  
In the 2015/2016 Academic Year the course has changed significantly and the exam format as well. For this edition of the course we do not have many past exams to share with you, they will cumulate along the year tho.
+
====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.:
  
* [[Media:20160627.pdf|Exam of 27/06/2016]]
+
* [[Media:Robotics_project_2015-2016_1_0.pdf | 2015/2016 Course Project v1.0]]
 +
* [https://www.dropbox.com/s/hri9tuzh3kblzol/Safer_STL.zip?dl=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===
 
===Additional Resources===
Line 202: Line 1,103:
 
* [http://www.ros.org/ ROS]: the Robot Operating System
 
* [http://www.ros.org/ ROS]: the Robot Operating System
 
* [http://gazebosim.org/ Gazebo]: the Gazebo robot simulator
 
* [http://gazebosim.org/ Gazebo]: the Gazebo robot simulator
 
+
<!--
 
* [http://airlab.elet.polimi.it/index.php/ROS_HOWTO AIRLab ROS Howto]: a gentle introduction to ROS with node template and program examples
 
* [http://airlab.elet.polimi.it/index.php/ROS_HOWTO AIRLab ROS Howto]: a gentle introduction to ROS with node template and program examples
 +
-->

Revision as of 21:42, 15 May 2024


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

* 02/05/2024: Updated all slides decks up to SLAM. 
* 24/04/2024: Updated detailed calendar, check it!! 
* 08/03/2024: Updated detailed calendar, check it!!
* 21/02/2024: New course edition starts!!


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 T2.1, starts at 12:30 ends at 14:10
  • On Thursday, in 8.0.1, starts at 14:30 ends at 16:10
Date Day Time Room Teacher Type Topic
21/02/2024 Wednesday 12:15 - 14:15 T2.1 Matteo Matteucci Lecture Course/Robotics Intro
22/02/2024 Thursday 14:15 - 16:15 8.0.1 Matteo Matteucci Lecture Actuators and Sensors
28/02/2024 Wednesday 12:15 - 14:15 T2.1 Simone Mentasti Laboratory ROS Intro / Install instructions
29/02/2024 Thursday 14:15 - 16:15 8.0.1 Matteo Matteucci Lecture Sensors and Intro to Kinematics
06/03/2024 Wednesday 12:15 - 14:15 -- -- No Lecture --
07/03/2024 Thursday 14:15 - 16:15 8.0.1 Matteo Matteucci Lecture Kinematics and Odometry
13/03/2024 Wednesday 12:15 - 14:15 -- -- No Lecture --
14/03/2024 Thursday 14:15 - 16:15 -- -- No Lecture --
20/03/2024 Wednesday 12:15 - 14:15 T2.1 Matteo Matteucci Lecture Kinematics
21/03/2024 Thursday 14:15 - 16:15 8.0.1 Simone Mentasti Laboratory Docker /ROS Basics/ tools
27/03/2024 Wednesday 12:15 - 14:15 T2.1 Simone Mentasti Laboratory Pub/Sub /launch messages
28/03/2024 Thursday 14:15 - 16:15 8.0.1 Simone Mentasti Laboratory Service and Params/ timers
03/04/2024 Wednesday 12:15 - 14:15 T2.1 Simone Mentasti Laboratory TF / Rviz / first project
04/04/2024 Thursday 14:15 - 16:15 8.0.1 Matteo Matteucci Lecture Localization and LIDARs
10/04/2024 Wednesday 12:15 - 14:15 T2.1 Matteo Matteucci Lecture Localization and Bayes Filters
11/04/2024 Thursday 14:15 - 16:15 -- -- No Lecture --
17/04/2024 Wednesday 12:15 - 14:15 T2.1 Matteo Matteucci Lecture Localization and Kalman Filters
18/04/2024 Thursday 14:15 - 16:15 8.0.1 Matteo Matteucci Lecture Localization and Particle Filters
24/04/2024 Wednesday 12:15 - 14:15 T2.1 Matteo Matteucci Lecture Mapping and EKF-SLAM
25/04/2024 Thursday 14:15 - 16:15 -- -- No Lecture --
01/05/2024 Wednesday 12:15 - 14:15 -- -- No Lecture --
02/05/2024 Thursday 14:15 - 16:15 8.0.1 Matteo Matteucci Lecture FastSLAM and Graph-SLAM
08/05/2024 Wednesday 12:15 - 14:15 T2.1 Matteo Matteucci Lecture Algorithms for Robot Navigation
09/05/2024 Thursday 14:15 - 16:15 8.0.1 Simone Mentasti Laboratory Message filters /rospy/rosbag
15/05/2024 Wednesday 12:15 - 14:15 T2.1 Simone Mentasti Laboratory ROS on Multiple Devices, actions
16/05/2024 Thursday 14:15 - 16:15 8.0.1 Simone Mentasti Laboratory [Robot Navigation]
22/05/2024 Wednesday 12:15 - 14:15 T2.1 Simone Mentasti Laboratory [Robot Navigation]
23/05/2024 Thursday 14:15 - 16:15 8.0.1 Simone Mentasti Laboratory [Future of ROS, ROS2, second project]
29/05/2024 Wednesday 12:15 - 14:15 T2.1 Matteo Matteucci Lecture [Algorithms for Robot Navigation]
30/05/2024 Thursday 14:15 - 16:15 8.0.1 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.

We checked and found solutions to use ROS on all operating systems. We provide a recap on how you can install ROS on your machine. Keep in mind that the most user-friendly solution is to have a native ubuntu 20.04-ros Noetic installation. Nevertheless, the other solution should work fine for the course.

The first lab we will give you details on the system setup!

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 2023/2024

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 Simone Mentasti are available HERE!.


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


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