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.
Ufficio
B115 - DIAG
B121 - DIAG
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.
BEFORE STARTING TO WORK ON A PROJECT, WAIT FOR OUR CONFIRMATION.
Tentative next discussions:
2022/03/18, Room A2, Via Ariosto @13:002022/05/31, Room 106 Marco Polo @14:002022/07/11,Room B2, Via Ariosto@10:002022/09/01, Room B2, Via Ariosto @14:002022/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