Get ROS2 Industrial Ready Online Workshop 2022
Date: February 21 - February 23, 2022
Registration Deadline: 2022-02-17T22:59:00Z
Limited space available : Only 20 students
Registration website : www.theconstructsim.com/ros2-industrial-workshop/
Dear ROS developers,
ROS2 is expected to replace ROS1 by 2023 completely. The latest ROS2 distributions (Galactic and Foxy) are mature enough to create real-world robotics applications.
In this 3-day workshop, students learn how to create basic programs in ROS2, use the Nav2 navigation system and perceive and grasp objects using MoveIt2.
How You Will Learn
Students learn through real-time ROS expert-led explanations, along with explanatory notebooks and robotic simulations. The students will complete the exercises with simulated robots, working with the instructor. Each student is assigned their own simulated robots.
At the end of the training, what the student takes away is not “paper” skills but real, practical experience that is applicable to daily robotics development.
Who is This Workshop For?
- Robotics Developers/Researchers who want to run their robots with ROS 2
- Companies that want to equip their team with ROS 2
- Robotics teams that want to transition from ROS1 to ROS2
- Engineers or CTOs who want to build scalable robotics products, faster
At A Glance
- Basic programming knowledge in Python and C ++.
- Experience in creating applications in ROS1 for autonomous robots.
- Google Chrome or Firefox browser.
- It is not necessary to have Linux on the student’s computer. Any operating system is valid.
- It is not necessary to have ROS installed on the student’s computer.
Programming Language: Python and C++ in Linux
What You’ll Learn
How to create packages, nodes, topics, services, and actions in ROS2
Management of the new Colcon universal building system
Topic publishers and subscribers in ROS2 Python
Management of nodes in ROS2: life cycle, executors and callback groups
Hybrid applications with ROS1 and ROS2
Use of debugging tools in ROS2
ROS2 Path Planning
ROS2 + DDS
ROS2 Obstacle avoidance
ROS2 arm planning and grasping using MoveIt2
Real Robots Used In This Workshop
- RB-1 Base mobile robot (from Robotnik Automation company)
- UR3e robot arm + OnRobot Gripper
Simulated Robots Used In This Workshop
RB-1 BASE Robot Simulation
MP-400 Robot Simulation
UR3e with Gripper Robot Simulation
ROS2 Basic Concepts:
- Learn how to work with ROS2 packages
- Create your first Hello World python ROS2 program
- Create your first Hello World ROS2 launch file
- Understand the setup.py file for source installation for ROS2 python based packages
- Understand how ROS2 nodes work.
- Use environmental ROS2 variables
- Learn about all the ROS2 Topic basic commands, like listing running topics and message types.
- Publish a ROS2 topic message through the command line
- Create a ROS2 topic publisher and ROS2 topic subscriber in python.
- Learn how to create a custom ROS2 topic and use it in a python script.
- Learn how to remap topics in ROS2 in a launch file.
- Learn about the problem of using multiple callbacks in the same python script.
- Learn how CallBack groups and multithreading can solve those issues.
- Create multiple publishers, subscriber python ROS2 script, that uses multithreading and callback groups to manage all the callbacks and threads to make the robot have updated values of the laser and odometry to decide how to avoid an obstacle.
Debugging ROS2 programs
- How to use and manage different levels of Debugging messages in ROS2 python scripts.
- Learn how to visualize Camera Images, Pointclouds, TFs, robot models, and other complex data in RVIZ2.
- Learn how to generate a PDF with the TF tree structure of the current ROS2 robot-description system.
- Learn about ROS2Doctor debugging tool command, and how it can help you detect unused topics, old packages, and other system data like the RMW MIDDLEWARE used Topics list, and network setup.
ADVANCED ROS2 BASICS
Understanding DDS in ROS2
- Learn about the reasons behind using DDS in ROS2 instead of the ROS1 TCP.
- Learn the basic morphology and features of the default RMW MIDDLEWARE DDS used CycloneDDS.
- Learn about the three supported DDS implementations in Galactic.
- Learn how to change the DDS used to then execute scripts using that DDS implementation.
- Learn about what is the ROS2 Daemon and what’s its relation with DDS.
- Learn about the need for Quality of Services (QoS) systems in ROS2.
- Learn how to start publishers and subscribers with different QoS and their compatibility.
- How to change QoS in ROSbags.
- How to change QoS setup in RVIZ2
- Learn about all the ROS2 Service basic commands, like listing running services and message types.
- Learn about the ROS2 services that can be synchronous or asynchronous.
- Create your first ROS2 service server and service clients.
- Create a custom Service message and use it in a python script to control the movement of the simulated Neobotix Mp-400.
- Learn about the new update in ROS2 having actions their own space.
- Learn about all the ROS2 Action basic commands, like listing running actions and message types.
- Create your first ROS2 action server and action clients.
- Create a custom Action message and use it in a python script to control the movement of the simulated Neobotix Mp-400
- How to configure and launch a full navigation stack in ROS2
- How to create a map of the environment using SLAM-Toolbox
- How to provide the map to other applications using a map server
- How to localize the robot using the AMCL particle filter
- How to plan paths from one location to another using the planner for differential robots
- How to make the robot follow a trajectory while avoiding obstacles using the controller
- How to configure the costmaps (global and local) for effective obstacle avoidance
- How to use Behavior Trees to control the navigation behavior of the robot
- How to manage recovery behaviors
- How to manage and synchronize the navigation nodes using the BT-Navigation-Manager
- How to programmatically send requests and goals to the navigation system from external nodes using Python3
PERCEPTION & START MANIPULATION
- Identify the position of the object to pick using a depth camera
- Provide the object location to the grasping algorithm
- Create a MoveIt2 package config specific to your robot
- Port a MoveIt1 package config to MoveIt2
GRASPING USING MOVEIT2
- Arm Trajectory Planning using MoveIt2
- Open Motion Planning Library (OMPL) basic configuration
- Test different planning algorithms such as RRT* or PRM*
- Create programs to control a robot arm using the MoveIt2 C++ API
- Gripper control using the Gripper Command action server
- Bridge of action servers from ROS1 to ROS2 using the action_bridge node
- Full Pick & Place pipeline based on:
- Plan to the position of the object
- Approach the object
- Pick the object
- Lift the objet
- Plan to the release position
- Release the object
Questions? Contact us at email@example.com for all registration queries.