Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Mastering Robotics Software Engineering with ROS: Develop and Deploy Advanced Manufacturing Solution
Module 1: ROS introduction and workspace setup
Introduction to ROS (8:53)
ROS architecture (17:06)
Install Ubuntu 20.4 on Virtual Box (14:39)
Install ROS Noetic (11:27)
Setup Visual Studio Code for ROS (4:08)
Module 2: ROS basics and tools
Create ROS workspace (9:01)
The ROS master and the nodes (23:21)
Create a node in C++ (29:19)
Create a node in Python (14:28)
Create a publisher in C++ (14:31)
Create a subscriber in C++ (19:42)
Create a publisher in Python (12:48)
Create a subscriber in Python and play with Turtlesim (23:31)
Introduction on Services (18:01)
Create a service server in C++ (20:59)
Create a service client in C++ (16:28)
Create a service server in Python (11:50)
Create a service client in Python (15:07)
Create a custom msg (18:13)
Create a custom srv (4:43)
Final Project with Turtlesim (95:59)
ROS parameters (6:08)
ROS launch file (10:58)
Module 3: World Modeling and Simulation Environment
Github repository
Introduction to Gazebo (9:45)
How to structure your project (6:50)
Start to create your world (9:40)
Create your custom model (19:12)
How to load your world via launch file (8:57)
Module 4: Robot Modeling
Introduction to URDF file (7:41)
Strategy to model your custom Robot (8:20)
Start to create a custom Robot in URDF (12:48)
Visualize the Robot in Rviz (13:44)
Joint State and Robot State Publisher (10:24)
Complete you custom robot (19:59)
How to simplify your Robot model (15:05)
How to model a gripper as end effector (22:55)
How to clone a robot model from Github (33:21)
How to clone a commercial robot: Universal Robot 5 (UR5) (25:08)
How to setup a commercial Gripper: Robotiq (30:59)
Spawn your Robot in Gazebo (11:54)
Module 5: ROS Control
Introduction to ROS Control (8:17)
How to calculate intertia values for your custom robot (22:01)
How to configure transmission for the joints of your custom robot (14:57)
How to put a Gazebo plugin (14:12)
How to create and configure controllers for your Custom Robot Joints (17:08)
How to spawn controllers of your robot joint (19:30)
How to tune PID Controllers for your Custom Robot Joints (87:26)
Forward Kinematics with Custom Robot (9:48)
How to use Transform (3:31)
Hot to grasp an object in Gazebo without slipping (26:33)
JointPositionController VS JointTrajectoryController (12:52)
Module 6: Inverse Kinematics with MoveIt and Pick and Place Application
Introduction to MoveIt (12:08)
Create a MoveIt configuration Package (19:00)
Play with Motion Planning and update the MoveIt package (36:37)
ROS Control for MoveIt (11:09)
Create an Inverse Kinematics node (28:55)
How to setup the orientation and position of the end effector (19:30)
How to make Collision Objects in Rviz (23:37)
How to code Pick and Place (51:06)
How to adapt the inverse Kinematics node to another robot (37:30)
How to code Pick and Place with Grasp Class
Module 7: Run the Application in Gazebo
Course check point and introduction to the module
The Structure of the Launch file (11:23)
Control your robot with MoveIt motion planning plugin (11:34)
Simulate a pick and place in Gazebo (25:03)
Module 8: Perception for Robotics with OpenCV
Why Computer Vision in Robotics (20:33)
Strategy to integrate perception with robotic arm (14:01)
Type of Perceptions: HSV (11:53)
Type of Perceptions: SURF (6:21)
Type of Perceptions: PCL (4:05)
How to deploy a 2D camera (23:52)
Get an Image with OpenCV (37:04)
Stream the Image with OpenCV (6:15)
Edge Detection with OpenCV (46:49)
Get the position of the object in the Image (46:03)
Convert the object position with the respect of camera_link (80:14)
Module 9: Perception for Robotics with PCL
Setup the working environment with UR5 (27:46)
How to deploy a 3D camera (26:56)
Write and Read Point Cloud data (41:39)
Use the Voxel filter (25:46)
Create a plane segmentation (27:48)
Apply a pass through filter (12:28)
Extract a cylinder and get it's position (41:22)
Module 10: Pick and Place using camera
How to tackle this project (9:13)
Adapt the Computer Vision node (16:43)
Create the service to transform data from camera_link to base_link frame (61:42)
Pick and Place with 2D camera (53:54)
Pick and Place with Grasp class (36:21)
Pick and Place with UR5 and Robotiq gripper in Gazebo / real word (38:53)
Pick and Place with UR5 Robotiq gripper and 3D camera (9:58)
Module 11: Waypoints and Optimize the Trajectory
Establish movement repetability (17:12)
What are waypoints and how to use it
How to set Joints Constraints (22:01)
How to draw a circle (19:50)
How to save waypoints and execute trajectory (30:20)
Wrap up and what's next
Module 12: ROS2 Humble
Differences between ROS and ROS2 (10:51)
ROS and ROS2 distributions
Install and setup ROS2 Humble (14:04)
Create ROS2 Workspace (9:19)
Install VS code in Ubuntu 22.04 and ROS2 setup (4:18)
Create packages and basic node in C++ (37:39)
Write a Topic Publisher Subscriber in C++ (37:30)
Create packages and basic node in Python (30:00)
Write a Topic Publisher Subscriber in Python (21:46)
Create Custom Interface (11:47)
Write a service in Python (15:38)
Write a Service in C++ (17:55)
ROS parameters in ROS2 (29:57)
Create a Launch file (30:50)
Module 13: Migrate your project from ROS1 to ROS2
Migration strategy (9:22)
Migrate custom robot description package (28:23)
ROS2 Control: understanding and deploying Joint Group Position Controller (54:23)
ROS2 Control: setup and deploy Gripper Action Controller (16:20)
ROS2 Control: setup and deploy Joint Trajectory Controller (12:19)
ROS2 Control: Control the robot sending trajectory_msgs from C++ script (11:43)
Replicate the .world from ROS1 (8:31)
Deploy depth camera and the pick object (25:45)
Create MoveIt2 configuration package for a custom robot (55:40)
How to interface Moveit2 with Gazebo (18:24)
Create an inverse kinematics node with MoveIt2 in C++ (23:39)
How to simulate grasping with LinkAttacher in Gazebo (11:38)
Pick and place with a Custom robot: Gazebo interfaced with Rviz (30:27)
Module 14: Docker for Robotics
Lessons under constructions
Module 15: Final project: Pick from a box, visual inspection, place in belt conveyor
Lessons under constructions
Additional module to be defined based on student's needs and requests
Lessons under constructions
Teach online with
Create Custom Interface
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock