PROGRAMMAZIONE DI SISTEMI ROBOTICI AUTONOMI E LABORATORIO

Academic Year 2019/2020 - 1° Year - Curriculum Data Science
Teaching Staff Credit Value: 9
Taught classes: 36 hours
Exercise: 24 hours
Laboratories: 12 hours
Term / Semester:

Learning Objectives

  • Robotic Systems Programming
    1. Knowledge and understanding. The course "Robotic Systems Programming" has the objective of providing the students with the knowledge on the principles, models, techniques and tools to program robotic systems and autonomous system in general. The lectures are based on teaching the principles of dyamic system modeling, automated control, control algorithms, and techniques and languages to program the autonomous behaviour of a robot. Laboratory activities have the aim of testing, in practice, all the topics dealt with in the classroom lectures.
    2. Applying knowledge and understanding. By means of the analysis of various case-study and with many laboratory exercises, the course allows students to obtain the capability of applying the techniques learnt during classroom lessons in applicative contexts based on robotic systems. Students will also able to unsterstand how to design and tune robotic control algorithms the specific application in which they it will be employed.
    3. Making judgements. The lectures and, above all, the laboratory activities are organised in a way such as to include a critical analysis of some case-studies, with the relevant solutions considered with possibile variations, and pro and cons of them; the aim is to let the student acquire an adequate autonomy in the evaluation of technical choices.
    4. Communication skills.The communication skills will be considered above all during the exams, here the student will be asked to expose her/his implementation choices providing suitable motivations for them.
    5. Learning skills. Learning skills will be evaluated during the laboratory. The aim is to test how and how much students have understood the basics of robotic systems and whether they are able to design and develop software for such kind of systems. The evaluatin of the learning skills will be then exploited to elaborate (if needed) the arguments that are revealed as the hardest.
  • Robotic Systems Programming
    1. Knowledge and understanding. The course "Robotic Systems Programming" has the objective of providing the students with the knowledge on the principles, models, techniques and tools to program robotic systems and autonomous system in general. The lectures are based on teaching the principles of dyamic system modeling, automated control, control algorithms, and techniques and languages to program the autonomous behaviour of a robot. Laboratory activities have the aim of testing, in practice, all the topics dealt with in the classroom lectures.
    2. Applying knowledge and understanding. By means of the analysis of various case-study and with many laboratory exercises, the course allows students to obtain the capability of applying the techniques learnt during classroom lessons in applicative contexts based on robotic systems. Students will also able to unsterstand how to design and tune robotic control algorithms the specific application in which they it will be employed.
    3. Making judgements. The lectures and, above all, the laboratory activities are organised in a way such as to include a critical analysis of some case-studies, with the relevant solutions considered with possibile variations, and pro and cons of them; the aim is to let the student acquire an adequate autonomy in the evaluation of technical choices.
    4. Communication skills.The communication skills will be considered above all during the exams, here the student will be asked to expose her/his implementation choices providing suitable motivations for them.
    5. Learning skills. Learning skills will be evaluated during the laboratory. The aim is to test how and how much students have understood the basics of robotic systems and whether they are able to design and develop software for such kind of systems. The evaluatin of the learning skills will be then exploited to elaborate (if needed) the arguments that are revealed as the hardest.

Course Structure

  • Robotic Systems Programming

    Lessons are carried out in the classroom using a frontal approach by including also examples and exercises and by using both slides and the traditional backboard.

  • Robotic Systems Programming

    Lessons are carried out in laboratory as specific experiences that students must mandatorily conduct and complete. Students can also form groups of at most 3 people.


Detailed Course Content

  • Robotic Systems Programming

    Course contents are reported at the link and summarised in the following:

    1. Introduction to robotic systems. Robotic system concept. The "feedback" control model. Overview of control models. Software layer of an autonomous robot.
    2. Dynamic Systems. Model of dynamic system. Representation with differential equation and integration examples. Discretization. Canonical Inputs. Impulse response. Step response. Equilibrium. Simple and asymptotic stability. Instable systems. Composition of dynamic systems.
    3. Basics of automated control. Feedback control schema. PID controllers.
    4. Speed and position control of a DC motor. PWM and H-Bridge driving. Reading of position and speed with encoders. Speed loop. Position loop.
    5. Position control of a wheeled mobile robot. Cinematic model. Odometry. Control schemas.
    6. Mobile robot navigation. Navigation algorithms. Obstacle avoidance. Path planning.
    7. Behaviour of an autonomous root. Rule production systems. Knowledge and reasoning. Planning.
  • Robotic Systems Programming

    Course contents are reported at the link and summarised in the following:

    1. Software implementation of dynamic systems. First-order discretisation. Simulation algorithm of a dynamic system with various input signals. Output trend.
    2. High-order dynamic systems. Discretisation and simulation.
    3. Basics of automated control. PID discretisation. PID implementation. PID tuning.
    4. Speed and position control of a DC motor. Speed loop. Position loop.
    5. Behaviour of an autonomous root. Software tools for planning and reasoning.

Textbook Information

  • Robotic Systems Programming
    • R. Siegwart, I. R. Nourbakhsh, Introduction to Autonomous Mobile Robots, The MIT Press
    • Peter Corke, Robotics, Vision and Control: Fundamental Algorithms in MATLAB, Springer
    • Course slides
  • Robotic Systems Programming
    • R. Siegwart, I. R. Nourbakhsh, Introduction to Autonomous Mobile Robots, The MIT Press
    • Peter Corke, Robotics, Vision and Control: Fundamental Algorithms in MATLAB, Springer
    • Course slides