Robotics

From Chrome
Revision as of 02:16, 15 July 2016 by Matteo (Talk | contribs)

Jump to: navigation, search


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

15/07/2016: the deadline for delivering the course project has been extendend until the end of August 2016.
15/07/2016: published results of the first call of the exam, as well al the text of the exam itself
23/06/2016: Published the slides also in ppsx format
15/06/2016: Published the updated and final version of the project description
13/06/2016: Deadline for the course project is July, fixed on the course webpage
23/05/2016: Course schedule change on 24-25/5 and 8-9/6
16/05/2016: Some updates on the detailed course schedule ...
12/05/2016: Published course project description v0.9
04/05/2016: Published slides about SLAM with Laser and SLAM
04/05/2016: Published slides about ROS robot architecture for navigation and code examples
14/04/2016: Change in course detailed schedule: no lecture on 27/04/2016 and swap of teachers between 20/04 and 28/04
14/04/2016: Published slides about Kinematics and Motion Control (draft) by Matteucci
13/04/2016: Published slides about Middlewares and ROS by Bardaro
19/03/2016: Published slides about Sensors, Actuators (Matteucci) and Gazebosim (Bardaro)
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!!

Course Aim & Organization

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

Teachers

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

Course Program

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

Among other topics, we will discuss:

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

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 Wednesdays, in E.G.2, starts at 14:00, ends at 15:30
* On Thursday, in D.1.1, starts at 14:00, ends at 15:30
Date Day Time Room Teacher Topic
09/03/2016 Wednesday 14:00 - 15:30 EG3 Matteo Matteucci Course Introduction
10/03/2016 Thursday 14:00 - 15:30 D11 Matteo Matteucci Sensors and Actuators
16/03/2016 Wednesday 14:00 - 15:30 EG3 Matteo Matteucci Sensors and Actuators
17/03/2016 Thursday 14:00 - 15:30 D11 Gianluca Bardaro Gazebosim and URDF
23/03/2016 Wednesday 14:00 - 15:30 EG3 Gianluca Bardaro Differential drive in Gazebo
24/03/2016 Thursday 14:00 - 15:30 -- -- No Classes
30/03/2016 Wednesday 14:00 - 15:30 EG3 Matteo Matteucci Sensors and Actuators
31/03/2016 Thursday 14:00 - 15:30 D11 Matteo Matteucci Robot kinematics
06/04/2016 Wednesday 14:00 - 15:30 EG3 Gianluca Bardaro Middleware for robotics
07/04/2016 Thursday 14:00 - 15:30 D11 Gianluca Bardaro A gentle introduction to ROS
13/04/2016 Wednesday 14:00 - 15:30 EG3 Matteo Matteucci Robot kinematics
14/04/2016 Thursday 14:00 - 15:30 D11 Matteo Matteucci Robot navigation algorithms
20/04/2016 Wednesday 14:00 - 15:30 EG3 Matteo Matteucci Trajectory planning introduction
21/04/2016 Thursday 14:00 - 15:30 D11 Gianluca Bardaro Differential drive control in ROS
27/04/2016 Wednesday 14:00 - 15:30 -- -- No Classes
28/04/2016 Thursday 14:00 - 15:30 D11 Gianluca Bardaro Trajectory planning and navigation in ROS
04/05/2016 Wednesday 14:00 - 15:30 EG3 Matteo Matteucci Trajectory planning (continued)
05/05/2016 Thursday 14:00 - 15:30 D11 Matteo Matteucci Introduction to probability and Simultaneous Localization and Mapping (SLAM)
11/05/2016 Wednesday 14:00 - 15:30 EG3 Matteo Matteucci Occupancy grids and Laser sensor model
12/05/2016 Thursday 14:00 - 15:30 D11 Matteo Matteucci Mapping with known poses and scan matching + Project presentation
18/05/2016 Wednesday 14:00 - 15:30 EG3 Matteo Matteucci EKF-SLAM and FAST Slam
19/05/2016 Thursday 14:00 - 15:30 D11 Matteo Matteucci Particle filters and Monte Carlo Localization
25/05/2016 Wednesday -- -- -- No Classes
26/05/2016 Thursday -- -- -- No Classes
01/06/2016 Wednesday 14:00 - 15:30 EG3 Gianluca Bardaro ROS tf + actionlib
02/06/2016 Thursday -- -- -- No Classes
08/06/2016 Wednesday 14:00 - 15:30 EG3 Gianluca Bardaro ROS Navigation with movebase
09/06/2016 Thursday 14:00 - 15:30 D11 Gianluca Bardaro Ros Navigation with movebase (continued)
15/06/2016 Wednesday 14:00 - 15:30 EG3 Matteo Matteucci Questions and answers about theory
16/06/2016 Wednesday 14:00 - 15:30 EG3 Gianluca Bardaro Questions and answers about project and exercises

Course Evaluation

Course evaluation is composed by two parts:

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

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

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

Course Project

In the course project you will use ROS and Gazebo to develop a simple autonomous mobile robot performin a simple task. The project requires some coding either in C++ / Python following what will be presented during the lectures. The project will be presented mid May and you will have until the end of July to complete it.

Teaching Material (the textbook)

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

Course Slides

Slides from the lectures by Matteo Matteucci

  • [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. (pdf) (ppsx)
  • [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. (pdf) (ppsx)
  • [2015/2016] Mobile Robots Kinematics: mobile (wheeled) robot kinematics, holonomic and non holonomic constraints, differential drive model. (pdf) ppsx
  • [2015/2016] Robot Motion Control: mobile robot navigation, trajectory planning, trajectory following, and obstacle avoidance. (pdf) (ppsx)
  • [2015/2016] SLAM with Lasers: introduction to Simultaneous Localization and Mapping, EKF based SLAM, Particle Filters, and Monte Carlo Localization. (pdf) (ppsx)

Slides from the lectures by Gianluca Bardaro (you can find material under preparation at this link)

Additional material from the teachers

Course Project

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.

Some important notes:

  • 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!
  • 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.
  • 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:

  • The project should be delivered by email as single compressed file to Matteo Matteucci && Gianluca Bardaro.
  • 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)
    • A max 4 pages report describing:
      • The files provided
      • The installation (if any) and compilation instructions
      • Instruction to configure the execution (e.g., parameter setting)
      • The instructions to execute the code and check that all the above has been done successfully
  • The evaluation will be performed by following your instructions, if these do not work, we assume the course project does not work (we suggest you to have someone else testing the whole on his/her computer before submitting the project).


Past Exams and Sample Questions

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.

Additional Resources

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

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

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