ROS2 Fundamentals
Your First Step into Robotics Software Development
Course Overview
Whether you've always wanted to build robots or you're moving into robotics software development, this course is where your journey begins.
You'll learn by doing: set up your own environment, understand how ROS2 systems are built and how their parts communicate, build applications in both C++ and Python, and finish with an obstacle avoidance project on TurtleBot3 in simulation.
What You'll Learn
Explain what a ROS2 Node, Package, and Workspace are, and how they fit together.
Set up Ubuntu (dual boot) and install ROS2 using a bash script.
Create a Workspace and build your first C++ and Python Packages with colcon.
Use the core ROS2 communication models: Topics (Publisher/Subscriber), Services (Client/Server), and Parameters.
Explore and control a running system with the ROS2 CLI, Turtlesim, and RQT tools such as rqt_graph and the RQT message publisher.
Review the Object-Oriented C++ concepts used in ROS2 Nodes: classes, inheritance, and std::bind, then write your first C++ Node.
Build a complete "Chatter" Publisher/Subscriber application from scratch in C++, then rebuild it in Python and compare the two.
Write Launch files in Python to run multi-Node applications with one command.
Install TurtleBot3 and run it in Gazebo simulation.
Understand how a LiDAR works, and how its data arrives as an array on the scan Topic.
Control a robot in simulation by publishing linear and angular velocity from a C++ Node.
Build a simple obstacle avoidance project with two C++ Nodes: one reads the LiDAR data and the other controls the robot's movement.
Curriculum Explorer8 Sections • 78 Lessons • Training Hours: 31h 0m
hardware Requirements
Basic understanding of programming concepts (variables, loops, and functions).
Familiarity with C++ and Python is helpful but not required. The course reviews the C++ concepts you need.
A computer where you can install Ubuntu alongside your current system (dual boot). The Setup section shows you how, step by step.
Basic familiarity with the Linux Terminal (opening it and running simple commands) is helpful.
No prior experience with ROS or robotics is required.
Your Instructor
Kyrillos Fekry
Senior Robotics Software Engineer
"Senior Robotics Software Engineer and Systems Architect with over Five years of experience leading the design, architecture, and production deployment of autonomous mobile robot platforms. Demonstrated ability to remotely lead cross-functional engineering teams, architect scalable robot software systems—from behavior engines and navigation stacks to CI/CD pipelines and mass-production workflows."
Robotics Engineering
Certificate of Completion
Official industry-recognized credential upon finishing.
