Mastering Robotics & Motion Planning With ROS2
Course Overview
FUNDAMENTAL COURSE (2-Days)
This course is designed to equip participants with the essential skills needed to develop robotics applications using ROS2 (Robot Operating System), Python, and modern software version control techniques. The course will cover the entire development workflow, from setting up the development environment on Ubuntu to mastering core ROS2 concepts such as nodes, topics, services, actions, and parameters.
​
ADVANCE COURSE (3-Days)
This course offers an in-depth introduction to motion planning with ROS2, covering essential tools, components, and applications. Participants will gain hands-on experience with MoveIt and learn to create and simulate robotic models using URDF. A "Learn-Through-Application" approach allows students to apply concepts in real-world scenarios, reinforcing their understanding of motion planning principles.
​
Course Objectives
Upon completion of this course, students will be able to:
-
Understand ROS2 fundamentals, including nodes, topics, services, and actions.
-
Master version control with Git for managing and collaborating on robotics projects.
-
Create and manipulate URDFs to model robotic systems.
-
Implement TF transformations and coordinate frames in ROS2.
-
Set up and configure MoveIt for both simulated and real robots.
-
Develop motion planning solutions and troubleshoot issues in MoveIt.
-
Apply ROS2 and MoveIt skills to real-world robotic applications and automation scenarios.
Course Curriculum
​
DAY 1 (FUNDAMENTAL)
​
Introduction to ROS2
Overview of ROS2 Architecture and Concept
​
Introduction to Version Control with Git
Understand how to manage projects using Git
-
Overview of Git and GitHub basics.
-
Creating repositories, committing changes, and collaborating with others.
-
Using branches, pull requests, and version history effectively.
ROS2 Installation and Workspace Setup
Install and configure ROS2 with a custom workspace
-
Installing ROS2 (Humble/Latest) and setting up the environment.
-
Creating and managing workspaces and understanding the ROS2 package structure.
-
Navigating the ROS2 file system and environment setup.
Nodes, Topics, Parameters and Services
Gain a solid understanding of ROS2 core communication patterns
-
Explore the structure and purpose of ROS2 nodes, topics, and services.
-
Writing a basic Python publisher and subscriber to facilitate inter-node communication
-
Create and interact with ROS2 services for task handling.
-
Work with parameters to configure and control node behavior dynamically.
Hands-on with Turtlesim
-
Apply fundamental concepts in the Turtlesim simulation environment.
-
Using Turtlesim to practice publishing, subscribing and service interactions.
DAY 2 (FUNDAMENTAL)
ROS2 Visualization Tools (rqt, rqt_graph, Rviz)
Visualize and debug the robot’s communication and behavior
-
Using rqt_graph to visualize ROS2 node connections.
-
Monitoring node outputs with rqt_console and plotting data with rqt_plot.
-
Introduction to Rviz for visualizing robot poses, PoseArray and Markers
Custom Messages, Services and Actions
Define and utilize custom communication types for specific applications
-
Creating custom messages types and service files.
-
Developing action files for complex robotics operations
-
Testing custom communications with simple simulations.
Action Servers
Learn how to control nodes and manage long-running tasks.
-
Creating action servers and clients to handle asynchronous tasks.
Recording and Playback with rosbag2
-
Log and analyze sensor data
-
Using rosbag2 to record sensor data and system interactions.
-
Playing back recorded data for debugging and testing purposes.
Practical Exercise: ROS2 Programming
-
Apply the knowledge from the day by writing functional program in ROS2
​
DAY 3 (ADVANCE)
​
URDF
-
Introduction to URDF
-
Understanding how to define and visualize individual robot links, the building blocks of a robot model.
-
Explore how to combine two links with joints, enabling movement and interaction between different robot parts.
-
Discover various joint types available in URDF and their specific applications.
-
Put it all together by completing a full URDF for a robot
Basic Robot Kinematics
-
Introduction to forward and inverse kinematics
-
Mathematical foundation and practical understanding
TF Transformation Basics
-
Overview of coordinate frames and the need for TF (Transform) in robotics
-
Understanding TF broadcasting and lookup in ROS2
-
Hand-on: Broadcasting transformations with tf2_ros and viewing them in Rviz
-
Hands-on Exercise: Create and broadcast a TF tree for your robot model
Getting Started with Moveit2
-
Installation and setup of Moveit2 with ROS2
-
Overview of the MoveIt2 Framework and tools
-
Understanding the MoveIt2 GUI and Rviz Visualization
Using MoveIt2 with Simulated Environments
​
DAY 4 (ADVANCE)
​
Robot Motion Planning with Moveit2
-
Joint Space Movement
-
Cartesian Movement
-
Cartesian Path Planning with Constraints
Understanding Pose in ROS2
-
Pose Message Structure and Usage
-
Publishing and Subscribing to Pose Messages
Introduction to PoseArray
-
Learn how to publish and subscribe to PoseArray for handling multiple positions/orientations.
-
Applications of PoseArray in waypoint motion planning.
Marker Types and Visualization Techniques
-
Introduction to visualization markers in ROS2 for RViz.
-
Use different marker types (e.g., arrows, spheres) to represent poses and paths effectively.
​
​
DAY 5 (ADVANCE)
​
ROS2 Control Framework
-
Basic, Manager and Controllers
Integrating Motion Control with Real Robot Hardware
-
Executing Planned Paths on Physical Robots with MoveIt2
-
Real World Application: Pick-and-place operations with Moveit2
Assessment (with physical robot arm)
-
Work with robot to perform tasks like object grasping or autonomous navigation
​
​
​