Hands-on Training

Get ROS2 Industrial Ready

ROS2 Basics + ROS2 Nav2 + Manipulation with Movelt2

Training dates

12 – 14 October, 2022

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

Training format

Online with Remote Robots

}

Duration

3 days, online
8 hours per day

level

From ROS basics to advanced ROS2 essentials

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. 

N

ROS Expert-led Training

N

Practice with Simulations & Real Robots

N

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

N

Certificate

Who Is This Training For?

This intensive training is an ideal launchpad if you want to apply ROS to robots fast or to chart a path forward for your team’s robotics project. Including:

  • CTOs who are evaluating ROS for their projects.
  • Technical Leads who want to build scalable robotics products, faster
  • Consultants who need a general understanding of how ROS works to provide advanced software solutions for your clients

What You’ll Learn

N

How to create packages, nodes, topics, services, and actions in ROS2

N

Management of the new Colcon universal building system

N

Topic publishers and subscribers in ROS2 Python

N

Management of nodes in ROS2: life cycle, executors and callback groups

N

Hybrid applications with ROS1 and ROS2

N

Use of debugging tools in ROS2

N

ROS2 Localization

N

ROS2 Path Planning

N

ROS2 Mapping

N

ROS2 + DDS

N

ROS2 Obstacle avoidance

N

ROS2 arm planning and grasping using MoveIt2

Learn ROS by programming several robots

In this course, you will program several robots. You will learn ROS through real-time instructor-led explanations and apply the same concepts to robots.

The following robots will be used in the course:

    Real Robots Used

    You will use 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 to practice navigation.

    Cobot Workbench

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

    3 days intensive training plan

    8

    hours

    per

    day

    N

    2 hrs/day: Learn Theory

    N

    2 hrs/day: Do Exercises with Simulated Robots

    N

    3 hrs/day: Work on Real Robot Projects

    N

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

    Instructors

    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

    Syllabus

    What You Will Learn in 3-Day

    Prerequisites:

    • 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 setup.py 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

    Certified!

    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.

    R

    100% PRACTICAL

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

    FOR THOSE WHO WANT TO APPLY ROS TO ROBOTS, FAST

    We help you move fast!

    – They’re ROS ready –

    Thanks to TheConstruct for the outstanding workshop. The course was really interesting, valuable and helpful!

    During the workshop, we completed several projects. We were able to apply many advanced topics…and had the chance to deploy them on a real robot!

    Thanks to TheConstruct providing deep knowledge and understanding of many ROS tools, and delivering such a professional experience!

    – 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.

    (source: https://docs.ros.org/en/galactic/index.html)

    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

    Early Registration Only €2399

    GET ROS2 Industrial Ready TODAY!

    €2999 Starting September 14

    This is your fast track to applying ROS2.

    Enroll now
    Enroll now

    Pin It on Pinterest