Vinaora Nivo Slider 3.x

Robotics Lab

CFU: 6

Prerequisites

Basic knowledge of the Linux operating system and object-oriented programming.

Preliminary Courses

None.

Learning Goals 

The course aims to provide to the students the knowledge of the tools commonly used to program advanced robotic systems, with a particular interest in mobile robots (ground and aerial) and robotic manipulators. During the lectures, the students will learn the basic programming techniques to implement the classic robotic paradigm: “sense-plan-act” to control one or more robots simultaneously. Finally, during the course, realistic and dynamic simulation systems will be presented and deeply explored.

Expected Learning Outcomes 

Knowledge and understanding

The course will provide to the students the methodology to implement robotic control algorithms in C++ language programming, considering mobile and industrial robotic platforms. The students must be able to simulate their algorithms in a realistic simulation environment running on Linux machines. Initially, the basic principles of robotics programming will be introduced, along with a set of software libraries dedicated to this scope. Then, the ROS and ROS2 (Robot Operating System) frameworks will be deeply studied in order to learn their philosophy, their usage and integration with simulated robotic systems. The student needs to demonstrate to have acquired the knowledge about the basic requirements needed to develop high-level control algorithms for specific robotic platforms. In addition, the student must demonstrate the capabilities to use the main software tools commonly used to program robots operating in dynamic and complex environments.

Applying knowledge and understanding

The student must demonstrate to have the capacity to implement a robotic control system programmed in C++ using the Robot Operating System framework, to handle the actions of a robotic system during the execution of a service robotic task. This control system must be developed starting from initial operative specifications. In addition, the student must demonstrate to have the capabilities to set up the simulation environment and the simulated robotic platform.

Course Content - Syllabus 

  • Introduction to Linux operating system
    • Introduction to system configuration and basic Linux commands
  • Introduction to programming
    • Object-oriented programming
    • Dynamic structure in C++
    • Compilation and linking of external shared libraries
    • Development of multi-threading algorithms
    • Development of “sense-plan-act” paradigm
  • Usage of version control programs
    • Maintain code using Git
  • Robot Operating System (ROS)
    • ROS philosophy and basic concepts
    • ROS installation and configuration
    • Message-passing in ROS
    • Publish/subscribe and client/server communication paradigms
    • Common robotic sensors
    • Digital cameras
    • LIDARs
    • Depth sensors
  • Dynamic simulators for robotics
    • Gazebo
    • CoppeliaSim and MuJoCo
  • Actuator controllers for robots
    • Position/velocity/efford controllers
    • Simulate robot controllers in gazebo environment
  • Control algorithm for industrial robots
    • Forward and inverse kinematics automatic solutions
    • Forward and inverse dynamics automatic solutions
  • Navigation with differential drive mobile robots
    • Localization using LIDAR sensor
    • Simultaneous localization and mapping (SLAM) in 2D
    • Path planning with obstacle avoidance in 2D
    • Motion control of differential drive robots
  • Aerial robotics
    • Simulation of vertical takeoff and landing platforms
    • Localization and mapping in 3D
    • Path planning with obstacle avoidance in 3D
    • Pixhawk autopilots and Px4 flight stack simulation in Gazebo environment
  • Robot Operating System 2 (ROS2)
    • Introduction to ROS2
    • Changes between ROS and ROS2
    • Porting programs from ROS to ROS2
    • Real-time execution and Quality of Service communication in ROS2
  • Distributed control system
    • Multi-robot control system
    • Multi-resource control system
  • Robot control and machine learning
    • Model-free deep reinforcement learning

Readings/Bibliography

 

Teacher lecture notes

J. Lentin, J. Cacace, Mastering Ros for Robotics Programming - Third edition. Packt Publishing, 2021

Teaching Method

The teaching activities will be organized in form of lectures for all the amount of the course. During each lesson, brief practical exercises will be performed with the use of a personal computer.

Examination/Evaluation criteria

Exam type

The knowledge of the student will be verified via an oral evaluation consisting in the discussion of a technical project, made in autonomy by him/her. Moreover, during the oral examination, the aim is also to assess the knowledge of all the concepts and contents given during the course lectures.

Evaluation pattern 

The correct evaluation of the technical project is mandatory to access to the oral examination. The evaluation of the technical project represents the 70% of the final evaluation.

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.