Robot Programming 2022/23

News

2023-01-09: Slides regarding the projects has been published

2022-11-21: Tomorrow, the lesson will start at 4:00 PM

2022-11-17: Lesson canceled upon student's request to prepare for the midterm of Robotics 1.

2022-11-07: The 02b_cpp_inheritance exercise and solution have been released in the repository.

2022-10-06: The virtual machine is available in the Teaching Material page

2022-10-06: The lesson on Thursday is in Room A7 (SPV)

2022-09-15: Lessons will start on Tuesday October 4 2022 at 15:00

2022-09-27: Please enroll to the CAD Google classroom to receive updates about the course of studies. HERE

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.

  • Concepts of Mobile Robot Navigation

The course is organized in frontal lessons and programming exercises.

Docenti

Giorgio Grisetti

Emanuele Giacomini

Omar Salem

Room

B115 - DIAG

B121 - DIAG

B121 - DIAG

Office Hours

Mon11.00 / 13.00 + (anytime previous mail appointment)

(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:

  • TBD

Time and Location of the Lessons

The lessons have to be attended in presence.

We will anyway publish(and link on this site in the lessons page ) snippets of the lessons when heavy live coding is involved on this youtube channel.

Time: First Semester (start on Sept 30 2022)

Tuesday 15:00-18:00

Thursday 9:30-11:00

Place

Aula 41 (San Pietro in Vincoli)

Aula 41 (San Pietro in Vincoli)


Subscribing to the Course

IT IS MANDATORY to enroll 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