Robotics and ROS 2 - Learn by Doing! Manipulators
- Description
- Curriculum
- FAQ
- Reviews
Would you like to learn ROS 2 , the second and last version of Robot Operating System by building a real robot?
The philosophy of this course is the Learn by Doing and quoting the American writer and teacher Dale Carnegie
Learning is an Active Process. We learn by doing, only knowledge that is used sticks in your mind.
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
I almost forgot! We need one more, essential and exciting part of this course for your active learning!
-
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
To facilitate your learning and help you join the robotic world, the code lessons are available both in C++ and in Python and you can decide which language to use during the course.
Anyway, I would suggest you to follow both in order to complete your Robotics Software Developer profile!
-
12Why a Robot Operating System?Video lesson
-
13What is ROS 2Video lesson
-
14Why a NEW Robot Operating System?Video lesson
-
15ROS 2 ArchitectureVideo lesson
-
16Hardware AbstractionVideo lesson
-
17Low-Level Device ControlVideo lesson
-
18Messaging Between ProcessVideo lesson
-
19Package ManagementVideo lesson
-
20Architecture of a ROS 2 ApplicationVideo lesson
-
21Introduction to ROS 2Quiz
-
22<LAB>Create and Activate a Workspace</LAB>Video lesson
-
23<PY>Simple Publisher</PY>Video lesson
-
24<C++>Simple Publisher</C++>Video lesson
-
25<PY>Simple Subscriber</PY>Video lesson
-
26<C++>Simple Subscriber</C++>Video lesson
-
27Workspaces, Publishers, SubscribersQuiz
-
28Robot DescriptionVideo lesson
-
29URDFVideo lesson
-
30<LAB>Create the URDF Model</LAB>Video lesson
-
31<LAB>Complete the URDF Model</LAB>Video lesson
-
32RViz 2Video lesson
-
33ParametersVideo lesson
-
34<PY>Parameters</PY>Video lesson
-
35<C++>Parameters</C++>Video lesson
-
36<LAB>ROS 2 Parameter CLI</LAB>Video lesson
-
37URDF and ParametersQuiz
-
38<LAB>Visualize the Robot</LAB>Video lesson
-
39Launch FilesVideo lesson
-
40<LAB>Visualize the Robot with Launch Files</LAB>Video lesson
-
41Add an RGB Camera to your RobotText lesson
-
42GazeboVideo lesson
-
43<LAB>Simulate the Robot</LAB>Video lesson
-
44<LAB>Launch the Simulation</LAB>Video lesson
-
45Simulate an RGB Camera in GazeboText lesson
-
53Robot KinematicsVideo lesson
-
54Pose of a Robot ArmVideo lesson
-
55Translation VectorVideo lesson
-
56Elementary RotationsVideo lesson
-
57Rotation MatrixVideo lesson
-
58Transformation MatrixVideo lesson
-
59Forward KinematicsVideo lesson
-
60TF2 LibraryVideo lesson
-
61<LAB>TF2 Tools</LAB>Video lesson
-
62ROS 2 ServicesVideo lesson
-
63<PY>Service Server</PY>Video lesson
-
64<C++>Service Server</C++Video lesson
-
65Static and Dynamic TransformationsVideo lesson
-
66<PY>Service Client</PY>Video lesson
-
67<C++>Service Client</C++>Video lesson
-
68Angle RepresentationsVideo lesson
-
69Euler AnglesVideo lesson
-
70QuaternionVideo lesson
-
71<PY>Euler to Quaternion Service</PY>Video lesson
-
72<C++>Euler to Quaternion Service</C++>Video lesson
-
73Inverse KinematicsVideo lesson
-
74MoveIt! 2Video lesson
-
75<LAB>Configure MoveIt! 2</LAB>Video lesson
-
76<LAB>Launch MoveIt! 2</LAB>Video lesson
-
77Application LayerVideo lesson
-
78ROS 2 ActionsVideo lesson
-
79<PY>Create an Action Server</PY>Video lesson
-
80<C++>Create an Action Server</C++>Video lesson
To install the simple_action_server in your CMakeLists.txt
add_library(simple_action_server SHARED src/simple_action_server.cpp)
target_include_directories(simple_action_server PRIVATE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>)
target_compile_definitions(simple_action_server
PRIVATE "SIMPLE_ACTION_SERVER_CPP_BUILDING_DLL")
ament_target_dependencies(simple_action_server
"arduinobot_msgs"
"rclcpp"
"rclcpp_action"
"rclcpp_components")
rclcpp_components_register_node(simple_action_server
PLUGIN "arduinobot_cpp_examples::SimpleActionServer"
EXECUTABLE simple_action_server_node
)
-
81<PY>Create an Action Client</PY>Video lesson
-
82<C++>Create an Action Client</C++>Video lesson
-
83MoveIt! 2 APIVideo lesson
-
84<C++>MoveIt! 2 API</C++>Video lesson
-
85Task ServerVideo lesson
-
86<C++>Task Server</C++>Video lesson
External Links May Contain Affiliate Links read more