Online workshop

Get ROS2 Industrial Ready

ROS2 Basics + ROS2 Nav2 + Manipulation with Movelt2

Training dates

Aug 31 – Sep 2, 2022

9:00 – 17:00 North America Central Daylight Time (CDT)


From ROS basics to advanced ROS2 essentials



3 days, online
8 hours per day

Training fee

€2,999 EUR

€2,399 EUR

The early bird price ends on August 15

Trusted by

Be on the edge of programming industrial robots with ROS2

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 will learn how to create basic programs in ROS2, use the Nav2 navigation system and perceive and grasp objects using MoveIt2.

How you’ll 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. 


ROS Expert-led Training


Practice with Simulations & Real Robots


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



Who is this workshop for?

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

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 Localization


ROS2 Path Planning


ROS2 Mapping




ROS2 Obstacle avoidance


ROS2 arm planning and grasping using MoveIt2

Real Robots Used

You will be using the following real robots throughout the training

RB-1 BASE mobile robot

Developed by

UR3e robot arm and an OnRobot RG2 Gripper

Simulated Robots Used

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

Warehouse Real Robot Lab

A small warehouse robot lab running with an RB-1 BASE mobile industrial robot for practicing robotics applications for warehouse and logistics use cases.

Warehouse World

A small warehouse world running with a Neobotix’s MP-400 mobile industrial robot for practicing navigation.

Cobot Workbench

A workbench with a UR3e robot arm, an OnRobot RG2 gripper, and cubes for practicing perception and manipulation use cases.

3 days intensive training plan






2 hrs/day: Learn Theory


2 hrs/day: Do Exercises with Simulated Robots


3 hrs/day: Work on Real Robot Projects


1 hr/day: Apply & Debug Your Codes on Real Robots (with our support)


Miguel Angel

Miguel Angel

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

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

Rodrigo Gonzalez

Rodrigo Gonzalez

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

Roberto Zegers

Roberto Zegers

Robotics Software Developer / Creator of ROS2 Control course


What You Will Learn in 3-Day


  • 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.
  • Institution: The Construct in cooperation with Robotnik
  • Programming Language: Python and C++ in Linux
  • Language: English
Day 1 - ROS2 Basics
Day 1
Time Lesson
9:00 – 9:15 Opening
9:15 – 11:15 ROS2 Basics Session 1
11:15 – 11:30 Coffee Break
11:30 – 13:30

ROS2 Basics Session 2

13:30 – 14:00 Lunch
14:00 Real Robot Project Introduction
14:15 – 17:00 Work on real robot project


Learning content


  • 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
Day 2 - ROS2 Navigation
Day 2
Time Lesson
9:00 – 11:15 ROS2 NAV2 Session 1
11:15 – 11:30 Coffee Break
11:30 – 13:30

ROS2 NAV2 Session 2

13:30 – 14:00 Lunch
14:00 – 17:00 Work on real robot project

Learning content

  • 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
Day 3 - ROS2 Perception & Manipulation
Day 3
Time Lesson
9:00 – 11:15 ROS2 Perception
11:15 – 11:30 Coffee Break
11:30 – 13:30

ROS2 Manipulation

13:30 – 14:00 Lunch
14:00 – 14:15 Certificate Ceremony
14:15 – 17:00 Work on real robot project

Learning content

  • 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


Upon completing this training, The Construct grants participants a shareable certificate of completion. This training is graded as a pass or fail; participants must receive 75% to pass and obtain the certificate of completion.



You will get REAL, PRACTICAL experience that is APPLICABLE to your real-life robotics development.


We help you move fast!

Thank you all for your outstanding effort. It was a great training 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?

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

» Shorten time to market
ROS2 provides the robotics tools, libraries, and capabilities needed to develop your applications, allowing you to spend time on important work for your business. In addition, because it is open-source, you have the flexibility to decide where and how to use ROS2 and, the freedom to customize it to fit your needs.

» Designed for production
Based on a decade of experience establishing ROS1 as the de facto global standard for robotics R&D, ROS2 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 ROS2 are based on requirements from industry stakeholders.

» Multi-platform
ROS2 is supported and tested on Linux, Windows, and macOS, allowing seamless development and deployment of on-robot autonomy, back-end management, and user interfaces. In addition, 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 ROS1, ROS2 is ready for use across various robotics applications, from indoor to outdoor, home to automotive, underwater to space, and consumer to industrial.

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

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

» Permissive open source license
ROS2 code is licensed under the 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. ROS2 is developed by and for that community, who will be its stewards into the future.

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

» Interoperability with ROS 1
ROS2 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 ROS2 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?

To prepare 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

This is your fast track to applying ROS2.

Enroll now
Enroll now

Pin It on Pinterest