Would you like to learn Robot programming with ROS 2 , This course is designed for beginners to build a real robot. In order for you to master the concepts covered in this course and use them in your projects or, why not, also in your future job, I will guide you through the learning of all the functionalities of ROS both from the theoretical and practical point of view. Each section is composed of three parts: Theoretical explanation of the concept and functionality Usage of the concept in a simple Practical example Application of the functionality in a real Robot Experiment, Develop and Test your ideas in the Robot (real or simulated in your PC) In each Section of the course, I’ll introduce you a new concept and then we will use it to add new functionalities to the robot: Introduction to the Course Setup the Environment: Install Ubuntu and ROS Noetic Introduction to ROS: What is ROS and why is so important in Robotics.Create the first ROS node ROS Publisher/Subscriber Digital Twin: Use a simulator to develop and test the functionalities of the robot without the need of any hardware device URDF Gazebo Parameters RViz2 Launch Files Control: How to create a Control System for Robot actuators Timer Services ros2_control Kinematics: Use the package MoveIt! for the Trajectory Planning TF2 MoveIt! 2 Application: Interface and make available all the functionalities of the robot to other software to create more complex applications and functionalities Actions Alexa: Use the Alexa Voice Assistant to actuate the robot with the voice Build the Robot: Build the real robot and migrate all the functionalities from a simulated robot to a real one Arduino IDE Serial Communication Conclusion and Summary of the course Requirements Basic knowledge of Python or C++ Basic knowledge of Linux No prior knowledge of ROS or ROS 2 required No prior knowledge of Robotics theory required No hardware required. All the course can be followed also using only the PC