
Clarify the course scope, audience, exclusions, and how to use the material for effective ros 2 learning and applied robotics software, from fundamentals to simulation and navigation.
Learn how to install ROS 2 Jazzy on Ubuntu, verify the installation, enable repositories, install dependencies, and build a workspace with colcon to run a talker and listener demo.
Explore how ros 2 workspaces are organized and how the colcon build system compiles core packages and your own. Learn to source the workspace and prepare your first package.
Learn to structure a ROS 2 workspace, create your first package in the source folder, and understand package.xml and setup.py; build selectively with colcon and source the workspace.
Learn how to create and run your first ROS 2 node in Python, from initializing a package to writing a simple node, building, and launching with proper shutdown.
Publish and subscribe to topics in ROS 2 by creating a publisher node that sends string messages to a topic like hello topic, while subscribers receive via the same topic.
Write a ROS 2 subscriber node that listens on the hello topic and logs each received string message. This publisher-subscriber setup relies on a common topic name and message type.
Explore how to inspect and debug topics in ROS 2 using CLI tools, listing topics, viewing topic info, echoing live data, measuring publish rate, and publishing from the terminal.
Explore ROS 2 actions as long-running tasks that provide goals, continuous feedback, and final results, and place action definitions in a separate interface package for a Fibonacci action server.
Explore ros 2 parameters as runtime configuration stored in each node, separating configuration from logic, and learn to declare, retrieve, override at launch, and update the robot speed.
Launch files orchestrate multiple ros 2 nodes with a single command, parse parameters, and centralize system configuration for real robotic deployments.
Learn how to add launch arguments to a multi-node ROS 2 launch file, making robot speed and other parameters dynamic, reusable, and scalable at launch time.
Learn advanced ROS 2 launch concepts to organize large robotic systems with namespaces, group actions, and conditional launching, enabling scalable multi-robot architectures and clean startup.
Master ROS2 command line tools to inspect and debug live robotics systems by querying nodes, topics, services, actions, and parameters, and perform runtime tuning.
Organize ROS 2 projects with a clean, modular package structure that splits sensors, processing, and controllers. Emphasize validation, external configuration, and clear naming for maintainability and scalable launches.
Visualize the ROS graph for your integration with rqt graph, showing velocity_publisher under the robot_one namespace, its topic robot_one/velocity, and how nodes publish or subscribe for debugging live architecture.
Explore moving parameters from launch files to yml files by creating a config folder, defining yml params, and wiring them in the launch for velocity parameterization in ROS 2.
Discover how the ROS 2 runtime drives callbacks with a single-threaded executor. See timers, nodes, and heavy computations execute one at a time, and why spin is essential.
Explore how a multi-threaded executor lets multiple callbacks run in parallel, improving responsiveness, while highlighting potential data risk and the role of callback groups in controlling concurrency.
Explore qos fundamentals in ros 2 jazzy, reliability, history, durability, and depth for publisher-subscriber communication via dds. Understand how qos mismatch affects delivery and how transient durability supports late joiners.
Design and implement safe shutdown and error handling in ROS 2 robots, simulating failures to ensure the robot stops safely and logs exceptions for robust runtime engineering.
Discover how ROS 2 control provides a hardware abstraction layer that decouples control algorithms from hardware, enabling modular controllers, a fixed-rate update loop, and portable interfaces across simulations and robots.
Organize the monitoring system by defining interfaces, separating contracts from implementation, and structuring ROS2 packages with distinct nodes for sensor, control, safety, logger, and operator services.
Upgrade our robot system by replacing loose messages with custom rosidl messages that formalize contracts between nodes. Create box_state, belt_command, and system_error messages and generate interfaces for structured communication.
We replace generic messages with structured contracts so sensor nodes publish box state and control nodes publish belt command, enabling semantic, lifecycle-aware communication.
Orchestrate a complete ROS 2 robotic system for autonomous conveyor monitoring by configuring system params in YAML, launching multi-node orchestration, and coordinating lifecycle and QoS for safe operation.
Extend a URDF to build a differential drive robot with two wheels, add wheel joints, and visualize it in RViz via joint state publisher and robot state publisher.
Explore how tf 2 tracks relationships between coordinate frames in a robot, defining frames like base link and wheels, and building a tf tree for navigation, sensing, and visualization.
Learn how URDF links use visual, collision, and inertial blocks to define appearance and physics, then convert Jack Crow to URDF and spawn the robot in Gazebo for realistic simulation.
Automate full robot startup with ros launch files, loading zacro models, starting the robot state publisher and Gazebo, using package share paths for portability.
Explore how gazebo world, gravity, and physics engines shape realistic robot simulation, including ground plane, collision, and inertia, as the robot spawns and settles in the world.
Add a LiDAR sensor to a Gazebo robot, publish 360° scans at 10 Hz, and visualize them in RViz 2 via ROS bridge.
Explore how SLAM combines localization and mapping to build an environmental memory and an occupancy grid map, using tf and ROS 2 slam toolbox to locate the robot.
Install the slam toolbox, enable simulation time, and launch slam to generate a map from lidar scans while debugging frame names and lifecycle activation to publish the map in rviz2.
Explore odometry in ROS 2, publishing position, orientation, and velocity on /odom, and its role in TF, SLAM, localization, and navigation; real motion requires a differential drive.
Explore TF2 as the backbone of robot localization, linking map, odom, base link, and sensor frames through a dynamic transform tree.
Discover how amcl localization uses a particle filter to estimate the robot’s pose on a known map, validating guesses with sensor data, odometry, and tf.
Learn ROS 2 Jazzy step by step and build the practical foundation needed to work with modern robotics software.
This course is designed for beginners, engineering students, software developers, embedded engineers, IoT engineers, and robotics enthusiasts who want a structured path into ROS 2 and applied robotics. Instead of learning from scattered tutorials, you will move through a clear journey: from ROS 2 fundamentals to simulation, navigation, manipulation, perception, and complete multi-node robotic systems.
You will start with the core building blocks of ROS 2, including workspaces, packages, nodes, topics, services, actions, parameters, launch files, YAML configuration, and the ROS graph. Each concept is explained with practical examples, terminal commands, debugging steps, and project-style implementation.
After building the foundation, you will move into applied robotics topics such as URDF, Xacro, Gazebo / Gazebo Sim, RViz2, TF, LiDAR, camera data, SLAM, localization, Nav2 navigation, costmaps, planners, controllers, behavior trees, MoveIt2 manipulation, OpenCV-based perception, and robotics system integration.
This is a hands-on course. You will not only learn what each ROS 2 concept means, but also how to build, run, debug, and connect those concepts inside real robotic software workflows.
By the end of this course, you will have the confidence to design and understand ROS 2 systems, work with simulation tools, debug common robotics issues, and build portfolio-ready robotics projects using ROS 2 Jazzy.
What makes this course different?
Unlike short tutorials that only show isolated examples, this course follows a complete learning path. You will first understand the ROS 2 foundation, then gradually connect those concepts with real robotics workflows such as simulation, robot modeling, transforms, sensor data, mapping, navigation, manipulation, perception, and final system integration.
The course focuses on practical learning, debugging, and project-style development so that you can understand not only how to run ROS 2 commands, but also why each part exists in a robotics system.