online WORKSHOP 2021

Get ROS2 Industrial Ready

Learn ROS2 Basics + ROS2 Nav2 + Manipulation with Movelt2

November 22 – 26, 2021


30 Hours of Instructor-led Training


Practice with Robot Simulators


10 Hours of Practice with a Mobile Robot RB-1 BASE & an UR3e Robot Arm


30 Days Tutor Email Support



Past attendees from

About this ROS 2 workshop

Understanding how ROS2 works is becoming a MUST. ROS2 is expected to fully replace ROS1 by 2023. The Galactic distribution released in May 2021 shows ROS2 is very mature and ready for real-world applications.

In this five-day ROS2 training, learn how to program warehouse robots with ROS 2 Foxy & Galactic, including Navigation 2 and grasping with MoveIt2.

Participants will practice with robot simulations and then with real robots to test their programs live.

Connect to real indutrial robots remotely

Click & connect!

Using technology we have developed for our remote real robot labs, you can practice by remotely connecting to real warehouse robots from any location. At the end of the training, what you take away is not “paper” skills but real, practical experience that can be applied to your daily robotics development.

At a glance
  • Prerequisites:
    • Basic Linux, Python, C++
    • Knowledge of ROS1 (recommended but not required)
  • Institution: The Construct in cooperation with Robotnik
  • Programming Language: Python (80%), C++ (20%)
  • Language: English
Who is this workshop for?
  • ROS developers that want to transition to ROS2
  • Researchers focusing their research on ROS2
  • Engineers or CTOs who want to build scalable robotics products, faster.
  • Companies that want to train engineers to use ROS 2

Expert instruction

Theory and practice with robot simulations & real robots


9 AM - 4 PM PST

5 days of training in Pacific Standard Time Zone

Only 20 spots


For the full program experience

Admissions Information

The enrollment window is now open for the November (Fall 2) session. This is the last class session of the 2021 calendar year.


Important Dates

  • November 17: €2950 Regular Registration Deadline
  • November 19: €3650 Late Registration Deadline

What you’ll learn


Creation of ROS2 Packages


Management of the new Colcon universal building system


Topic publishers and subscribers in ROS2 Python


Nodes management: life cycle, executors, and callback groups


Services and actions


Hybrid application with ROS1 and ROS2


Use of debugging tools in ROS2


ROS2 Localization


ROS2 Path Planning


ROS2 Mapping




ROS2 Object Detection in Pick & Place Task


Create and configure a MoveIt2 package for a robotic arm


Perform ROS2 Motion Planning & Grasping

Real robots used

You will be using the following real robots throughout the training

Robotnik RB-1 Base Robot


Students can use it to practice doing autonomous navigation; carrying cargo from one place to another; and recognizing environments, like tags, people or objects.

More Info

Autonomous and collaborative mobile platform

The RB-1 BASE mobile robot is a robot platform designed for indoor applications. The mobile robot can carry different loads or materials and can integrate other components or platforms such as a robotic arm or a torso.

RB-1 BASE can integrate a wide number of laser range finders with operation distances from 5 to 30-60 meters. RGBD sensors (Asus Xtion, Kinect One, etc.) can be mounted on the top of the platform for the detection of obstacles. The standard configuration integrates the UST-20LX sensor and the Orbbec Astra sensor.

The robot is able to detect obstacles in two different ways, by RGBD sensor installed and by the laser sensor that is used for navigation and positioning. In both cases, the robot can either stop or find an alternative route to avoid the obstacle and reach the next waypoint.

The software includes a control system, a tracking system laser-based, a navigation system and a user interface HMI (basic).

The location and navigation components are standard packages that are configured to suit the application. The software for the low-level control system is supplied with the platform.

As all Robotnik robots, RB-1 BASE is fully customizable and based on native ROS.

(More details:

Robotnik RB-1 Base Robot

UR3e Robot Arm

A collaborative robotic arm with a gripper and a 3D sensor for perception. Students can use it to practice manipulation, object detection, pick & place objects, and more.

More Info

A Flexible Collaborative Robot Arm

The UR3e collaborative robot is a smaller collaborative table-top robot, perfect for light assembly tasks and automated workbench scenarios. The compact table-top cobot weighs only 24.3 lbs (11 kg), but has a payload of 6.6 lbs (3 kg),  ±360-degree rotation on all wrist joints, and infinite rotation on the end joint. 

Simulated Robots used

You will use several robots in simulation and others in reality. This will allow you to see the flexibility of ROS2 with different robotic platforms.

RB-1 BASE Robot Simulation

MP-400 Robot Simulation

UR3e with Gripper Robot Simulation

Training details

Day 1 - ROS2 Fundamentals
  • 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 file for source installation for ROS2 python based packages
    • Understand how ROS2 nodes work.
    • Use environmental ROS2 variables
  • ROS2 Topics:

    • 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.
  • Managing Nodes:

    • 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.
  • 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
  • ROS2 Services

    • 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.
  • ROS2 Actions

    • 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
  • 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
  • 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

Meet your instructors

Alberto Ezquerro

Alberto Ezquerro

Head of Education @ The Construct | Creator of over 30 ROS courses | Author of ROS IN 5 DAYS book collection

Ricardo Téllez

Ricardo Téllez

CEO @ The Construct | Teacher of Robotics at La Salle University and Universitat Politècnica de Catalunya

Miguel Angel

Miguel Angel

Head of Research @ The Construct | Creator of over 10 ROS AI courses | Author of ROS IN 5 DAYS book collection

Rodrigo Gonzalez

Rodrigo Gonzalez

Robotics Engineer @ The Construct | Leader of RoBox - 24/7 Remote Real Robot Lab


Get recognized! Upon successful completion of this workshop, The Construct grants a certificate of completion to participants. This workshop is graded as a pass or fail; participants must receive 75% to pass and obtain the certificate of completion.

Thank you all for your outstanding effort, It was a great 5 days with A LOT of outcomes, thank you for bearing with me, I really appreciate your professionalism during this workshop.

Saleh Alkhamees

Systems Engineer, Advanced Electronics Company

Previous workshop recap

Frequently Asked Questions

What is ROS2? Why ROS2?

ROS 2 (Robot Operating System 2) is an open source software development kit for robotics applications. The purpose of ROS 2 is to offer a standard software platform to developers across industries that will carry them from research and prototyping through to deployment and production. ROS 2 builds on the success of ROS 1, which is used today in myriad robotics applications around the world.

» Shorten time to market
ROS 2 provides the robotics tools, libraries, and capabilities that you need to develop your applications, allowing you to spend your time on the work that is important for your business. Because it is open source, you have the flexibility to decide where and how to use ROS 2, as well as the freedom to customize it for your needs.

» Designed for production
Drawing on a decade of experience in establishing ROS 1 as the de facto global standard for robotics R&D, ROS 2 was built from the ground up to be industry-grade and used in production, including high reliability and safety critical systems. Design choices, development practices, and project governance for ROS 2 are based on requirements from industry stakeholders.

» Multi-platform
ROS 2 is supported and tested on Linux, Windows, and macOS, allowing seamless development and deployment of on-robot autonomy, back-end management, and user interfaces. The tiered support model allows for ports to new platforms, such as real-time and embedded OSs, to be introduced and promoted as they gain interest and investment.

» Multi-domain
Like ROS 1 before it, ROS 2 is ready for use across a wide array of robotics applications, from indoor to outdoor, home to automotive, underwater to space, and consumer to industrial.

» No vendor lock-in
ROS 2 is built on an abstraction layer that insulates the robotics libraries and applications from the communication technologies. Below the abstraction are multiple implementations of the communications code, including both open source and proprietary solutions. Above the abstraction, core libraries and user applications are portable.

» Built on open standards
The default communications method in ROS 2 uses industry standards like IDL, DDS, and DDS-I RTPS, which are already widely deployed in a variety of industrial applications, from factories to aerospace.

» Permissive open source license
ROS 2 code is licensed under Apache 2.0 License, with ported ROS 1 code under the 3-clause (or “new”) BSD License. Both licenses allow permissive use of the software, without implications on the user’s intellectual property.

» Global community
Over 10+ years the ROS project has produced a vast ecosystem of software for robotics by nurturing a global community of hundreds of thousands of developers and users who contribute to and improve that software. ROS 2 is developed by and for that community, who will be its stewards into the future.

» Industry support
As demonstrated by the membership of the ROS 2 Technical Steering Committee, industry support for ROS 2 is strong. Companies large and small from around the world are committing their resources to making open source contributions to ROS 2, in addition to developing products on top.

» Interoperability with ROS 1
ROS 2 includes a bridge to ROS 1 that handles bidirectional communication between the two systems. If you have an existing ROS 1 application, you can start experimenting with ROS 2 via the bridge and port your application incrementally according to your requirements and available resources.


Do I need to install ROS in advance?

No. You only need to bring your laptop and don’t need to have ROS installed. You can use Windows, Linux or macOS.

What do I need to prepare?

In order to get prepared for this online workshop, you need to know the basics of Linux, Python, and C++. This is mandatory, so in case you need it, take the following three free courses:

  1. Linux for robotics
  2. Python3 for robotics
  3. C++ for robotics

Pin It on Pinterest