Training Module
Note
MYBOTSHOP GmbH offers robotic on-hand training as well as ROS2 training.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Important
The provided course is a general course for ROS2 Humble. It focuses on practical implementation and deployment, with less theory. Duration: 2-5 days, covering a wide range of ROS2 features and usage.
ROS2 Basics
Note
The core ROS2 basics module is typically conducted on Day 1 and Day 2. It can be extended with additional days based on the robot type and training duration. The module covers fundamental ROS2 concepts, tools, and practical exercises.
Important
( T ) = Theoretical session, ( P ) = Practical session
Introduction to ROS2
Reason for ROS2 (T)
Limitations of ROS1 (single master, weak real-time support)
Industry adoption and DDS middleware
Scalability, security, multi-robot support
Key Points (T)
Ecosystem overview
Supported platforms (Linux, Windows, macOS)
Community support and longevity
Environment Setup (T/P)
Installing ROS2 Humble on Ubuntu 22.04
Workspace structure (src, build, install)
Dependencies and ROS2 CLI tools
Builtin Features (T)
CLI tools (
ros2 topic
,ros2 node
)Logging and monitoring
Launch system improvements
New Architecture (T) * Distributed multi-node system * DDS middleware abstraction * Improved package structure
Why DDS? (T)
DDS vs TCP/UDP
Reliability and scalability
DDS QoS (latency, bandwidth, reliability)
DDS Domains (partitioning)
ROS2 Control (T, optional)
Hardware interfaces
Controller and plugin architecture
ROS2 Package Build (T/P)
Creating packages with
colcon
Building and compiling packages
Handling dependencies with
rosdep
ROS2 URDF (T/P)
Robot structure with URDF/Xacro
Adding sensors (LiDAR, Camera, GPS, IMU)
Adding actuators (Motors, Servos, Linear Actuators)
ROS2 TF (T/P)
Transformations and frames
Robot joints and frame hierarchy
Vision-based point detection
ROS2 Topics (T/P)
Publishers and subscribers
Inspecting data with CLI
Velocity control (wheeled, quadruped, drones)
Handling robot vision streams
ROS2 Time (T/P)
Simulation time vs system time
Synchronization in robotics
ROS2 Simulation (T/P)
Gazebo basics
Robot model integration
ROS2 Create Package (T/P)
Package skeleton (
ament_cmake
,ament_python
)Organizing nodes, launch files, URDF
Nodes | Launchers | Topics
ROS2 Nodes (T/P)
Writing publisher/subscriber nodes
Robot control applications
Node Lifecycle (T, optional)
States: unconfigured, inactive, active
Managed startup/shutdown
Components (T, optional)
Node composition
Shared-process execution
ROS2 Launch Files (T/P)
XML/YAML launch files
Launching multiple nodes
ROS2 Sensor Fusion (P)
Fusing IMU, LiDAR, GPS
robot_localization
package

Interfaces | Msgs | Srvs | Acts | Params
ROS2 Msgs (T/P)
Standard message types
Custom message definitions

ROS2 Services (T/P)
Request/response model
Example: robot module activation

ROS2 Actions (T/P)
Long-running task management
Action client/server implementation
ROS2 Parameters (T/P)
Node parameterization
Dynamic parameter updates
Parameter loading files (YAML)

ROS2 Stacks
Important
This module is optional and can be added based on the robot type and training duration. It is typically conducted on Day 3 or Day 4.
MoveIt (Manipulation)
Setup (P)
Install MoveIt2
Robot arm with URDF/SRDF
Planning scene configuration
Tuning (P)
Motion planning (OMPL, STOMP)
Controller configuration
Planning parameter adjustments
Debugging (P)
RViz Motion Planning Plugin
Collision debugging
Trajectory execution failures
Tools Usage (P)
MoveIt Setup Assistant
MoveIt CLI tools
RViz motion planning visualization
Perception Stack
Lidar/Depth Camera Setups (T)
Hardware introduction
ROS2 driver integration
Calibration
Lidar/Depth Camera Configuration (T)
Sensor parameter configuration
Multi-sensor synchronization
Point Cloud Processing (T/P)
Using PointCloud2
Filtering and down-sampling
Segmentation
Obstacle Detection and Segmentation (T/P)
Convert point clouds into obstacles
Integrate perception with Nav2
Example pipeline with PCL

Personal Experience (Discussion)
Issues faced during stack setup
Debugging navigation/manipulation failures
Common pitfalls and workarounds
Tools: RViz, rqt, CLI
Robot-Specific Training
Important
This module is optional and can be added based on the robot type and training duration. It is typically conducted on Day 4 or Day 5.
Note
Training is available for robots such as Clearpath, Unitree, Kinova, Universal Robots, and others.
Robot Setup and Usage
Vendor-specific ROS2 packages
Workspace configuration
Driver launch and connectivity
Sensors and Interfaces
LiDAR, depth/RGB cameras
IMU and GPS integration
Calibration and Tuning
Camera/LiDAR calibration
Joint calibration
Network time sync
Pitfalls and Challenges
Driver compatibility
Hardware limitations (bandwidth, CPU)
TF tree inconsistencies
Safety: simulation → real hardware
Useful Packages
nav2
for navigationmoveit2
for manipulationrobot_localization
for sensor fusionslam_toolbox
for mappingrqt
andrviz2
for debugging
Robot-Specific Examples
Wheeled Robots
Mobile bases with Nav2
Sensor integration (Hesai, Livox, Ouster)
SLAM and navigation demo
Quadrupeds
Walking and velocity control
Navigation with Nav2
Perception-based navigation (LiDAR + camera)
Stability and fall-recovery
Manipulator Arms
Pick-and-place with MoveIt2
Cartesian impedance control
Tool center point setup