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.
Room
B115 - DIAG
B121 - 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:
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