Robot Programming 2021/22

News

2022/02/18: Round of discussions is on 2022/02/18. The discussions will be remote. Please let us know by Feb 14. For those of you that are ready, please write an email to the tutors AND the teacher in cc {digiammarino, salem, giacomini, grisetti}@diag.uniroma1.it, to reserve a slot.

2022/01/13: The next round for discussing the projects is on January 31 2022, starting at 14:30. The discussions will be remote or in presence, based on your choice. Only students enrolled on infostud for the first session of January will be admitted to the exam. To avoid. Once you finish a project, send us an email, and we will schedule a slot in that day. Should more dates be needed, we will overflow to the subsequent days.

Abstract

This course aims at providing the students with skills to develop robotic software that is not covered directly in other courses.

We assume the students are familiar with structured programming languages, as we will focus on fundamental tools when it comes to develop fast, energy efficient and robust robotic software. In this edition of the course we will operate exclusively on the Linux operating system.

We will introduce:

  • C++, a fundamental language that is behind the core aspects of real-time and on-line software and firmware

  • ROS, an operating environment for supporting the development of robotic modules. ROS is the de-facto standard when it comes to robotic middlewares.

  • Real-Time programming on embedded platforms (AtMega2560)

The course is organized in frontal lessons and programming exercises.

Docenti

Giorgio Grisetti

Luca di Giammarino

Ufficio

B115 - DIAG

B121 - DIAG

Ricevimento

Wed 11.00 / 13.00 + (anytime previous mail appointment)

(mail) appointment

IMPORTANT: For the communication concerning the course write an email to all teachers adding [RobotProgramming] at the beginning of the email subject. Not doing so decreases the priority of the email.

Prior Knowledge

A reasonable knowledge of the C programming language, Calculus and Linear Algebra.

We recommend a native installation of a Linux distro (recommend: Ubuntu 20.04 LTS). As an alternative, you can use a less efficient virtual machine.

Exam (3CFU, No Mark)

Exam Modality: Project

To pass the exam the student will develop a C++ project in ROS implementing some non-trivial algorithm. The discussion of the project can happen anytime during the academic year. The students who passed the exam will be "marked" (pass or not pass) and registered in the session immediately subsequent to the discussion.

FORM

BEFORE STARTING TO WORK ON A PROJECT, WAIT FOR OUR CONFIRMATION.

Tentative next discussions:

  • 2022/03/18, Room A2, Via Ariosto @13:00

  • 2022/05/31, Room 106 Marco Polo @14:00

  • 2022/07/11, Room B2, Via Ariosto @10:00

  • 2022/09/01, Room B2, Via Ariosto @14:00

  • 2022/10/27, room B115, Via Ariosto @ 12:00

Time and Location of the Lessons

The lessons can be attended both in presence and on this youtube channel.

Time: First Semester

Monday 11:00-15:00

Thursday 9:30-11:00

Place

Aula 24, SPV

Aula 24, SPV


Subscribing to the Course

IT IS MANDATORY to enrol to the following form. Urgent communications will be handled through the email addresses you provide.

Preliminary Program

  • On Programming languages

    • compilers/interpreters/virtual machines

    • build systems (cmake)


  • C++

    • Basics and syntax

    • Classes

    • Metaprogramming

    • Concrete Cases


  • ROS

    • Basics and build system

    • ROS-Robot Setup

    • ROS-Navigation


  • Microcontrollers and hard real time

    • arduino environment

    • reading sensors and controlling actuators