ROS 2 from Scratch
Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.
ROS 2 from Scratch
Included with
Learn more
Recommended experience
Recommended experience
What you'll learn
Build a strong foundation in ROS 2 with practical, real-world applications.
Learn to create scalable applications using Python and C++.
Follow a structured process to design and simulate a custom robot.
Skills you'll gain
Tools you'll learn
Details to know
April 2026
14 assignments
See how employees at top companies are mastering in-demand skills
There are 14 modules in this course
In the world of robotics, ROS 2 is the backbone for creating scalable, efficient systems that interact with physical and virtual environments. This course provides an in-depth look at ROS 2, from the basics to more advanced concepts, preparing you to develop robust robotic applications.
Through this course, learners will gain hands-on experience with the key components of ROS 2, including node creation, message passing, and service handling. By exploring real-world applications like robot simulation and TFs, you'll strengthen your understanding and gain practical skills. What sets this course apart is its combination of theory with interactive, real-world exercises. From building and sending messages between nodes to simulating robots in Gazebo, this course provides a comprehensive learning experience. This course is perfect for robotics enthusiasts and professionals looking to dive into ROS 2. While prior programming experience is helpful, no specific robotics knowledge is required to start.
In this section, we explore ROS 2 fundamentals, including core concepts, terminology, and differences from ROS 1, while identifying prerequisites for effective robotics development.
What's included
2 videos3 readings1 assignment
2 videosβ’Total 2 minutes
- Course Overview Videoβ’1 minute
- Introduction to ROS 2 - What Is ROS 2? - Overview Videoβ’1 minute
3 readingsβ’Total 35 minutes
- Introductionβ’10 minutes
- What is ROS?β’10 minutes
- ROS 1 versus ROS 2β’15 minutes
1 assignmentβ’Total 10 minutes
- ROS 2 Fundamentals and Core Conceptsβ’10 minutes
In this section, we guide through selecting a ROS 2 distribution, installing Ubuntu, and setting up the ROS 2 environment for effective robotics development.
What's included
1 video5 readings1 assignment
1 videoβ’Total 1 minute
- Installing and Setting Up ROS 2 - Overview Videoβ’1 minute
5 readingsβ’Total 70 minutes
- Introductionβ’10 minutes
- How to Choose a ROS Distributionβ’10 minutes
- Creating a New VMβ’15 minutes
- Guest Additions CD Imageβ’15 minutes
- Installing ROS 2 Packagesβ’20 minutes
1 assignmentβ’Total 10 minutes
- ROS 2 Installation and Configuration Fundamentalsβ’10 minutes
In this section, we cover ROS 2 core concepts like nodes, topics, services, actions, parameters, and launch files for practical implementation.
What's included
1 video6 readings1 assignment
1 videoβ’Total 1 minute
- Uncovering ROS 2 Core Concepts - Overview Videoβ’1 minute
6 readingsβ’Total 95 minutes
- Introductionβ’15 minutes
- Running a 2D Robot Simulationβ’15 minutes
- More Experimentation with Topicsβ’10 minutes
- Servicesβ’20 minutes
- Recap Servicesβ’15 minutes
- Sending a Goal from the Terminalβ’20 minutes
1 assignmentβ’Total 10 minutes
- ROS 2 Core Concepts Overviewβ’10 minutes
In this section, we explore creating ROS 2 workspaces, packages, and nodes in Python and C++. Learners gain hands-on skills to build, run, and introspect nodes for robotic applications.
What's included
1 video8 readings1 assignment
1 videoβ’Total 1 minute
- Writing and Building a ROS 2 Node - Overview Videoβ’1 minute
8 readingsβ’Total 120 minutes
- Introductionβ’15 minutes
- Sourcing the Workspaceβ’15 minutes
- Building a Packageβ’10 minutes
- Creating a Python Nodeβ’20 minutes
- Building the Nodeβ’15 minutes
- Creating a C++ Nodeβ’15 minutes
- Building and Running the Nodeβ’15 minutes
- Introspecting Your Nodesβ’15 minutes
1 assignmentβ’Total 10 minutes
- ROS 2 Node Fundamentalsβ’10 minutes
In this section, we explore ROS 2 topics for node communication, covering publishers, subscribers, and custom interfaces to enable message exchange in robotic systems.
What's included
1 video8 readings1 assignment
1 videoβ’Total 1 minute
- Topics - Sending and Receiving Messages between Nodes - Overview Videoβ’1 minute
8 readingsβ’Total 165 minutes
- Introductionβ’20 minutes
- Multiple Publishers and Subscribers Inside One Nodeβ’30 minutes
- Creating a Node with a Publisher and a Timerβ’30 minutes
- Writing a C++ Subscriberβ’20 minutes
- Changing a Topic Name at Runtimeβ’15 minutes
- Creating a Custom Interface for a Topicβ’15 minutes
- Creating a New Topic Interfaceβ’15 minutes
- Using Your Custom Message in Your Codeβ’20 minutes
1 assignmentβ’Total 10 minutes
- ROS 2 Communication Fundamentalsβ’10 minutes
In this section, we explore ROS 2 services, focusing on creating custom interfaces, writing servers and clients, and using tools for service analysis in node communication.
What's included
1 video8 readings1 assignment
1 videoβ’Total 1 minute
- Client/Server Interaction between Nodes - Overview Videoβ’1 minute
8 readingsβ’Total 135 minutes
- Introductionβ’10 minutes
- Wrapping Things Upβ’30 minutes
- Writing a Service Serverβ’15 minutes
- Validating the Requestβ’20 minutes
- Writing a Service Clientβ’15 minutes
- Writing a C++ Service Clientβ’20 minutes
- Service Challenge Client and Serverβ’5 minutes
- Challengeβ’20 minutes
1 assignmentβ’Total 10 minutes
- Client-Server Communication in ROS 2β’10 minutes
In this section, we explore ROS 2 actions, focusing on implementing servers, clients, and custom interfaces with feedback and cancel mechanisms.
What's included
1 video8 readings1 assignment
1 videoβ’Total 1 minute
- Actions - When Services Are Not Enough - Overview Videoβ’1 minute
8 readingsβ’Total 155 minutes
- Introductionβ’10 minutes
- How Do Actions Work?β’10 minutes
- Wrapping Things Upβ’20 minutes
- Writing an Action Serverβ’15 minutes
- Executing the Goalβ’20 minutes
- Implementing the Callbacksβ’20 minutes
- Writing a C++ Action Clientβ’30 minutes
- Understanding the Problem with Cancel and Spinβ’30 minutes
1 assignmentβ’Total 10 minutes
- ROS 2 Actions and Communicationβ’10 minutes
In this section, we explore how to make ROS 2 nodes more dynamic using parameters, including loading from YAML files and updating with callbacks for real-time adaptability.
What's included
1 video1 reading1 assignment
1 videoβ’Total 1 minute
- Parameters - Making Nodes More Dynamic - Overview Videoβ’1 minute
1 readingβ’Total 50 minutes
- Parameters - Making Nodes More Dynamic - The Readingβ’50 minutes
1 assignmentβ’Total 10 minutes
- Dynamic Node Configuration and Parameter Managementβ’10 minutes
In this section, we explore ROS 2 launch files for scaling applications, covering XML and Python implementations, node configuration, and parameter management for efficient node orchestration.
What's included
1 video5 readings1 assignment
1 videoβ’Total 1 minute
- Launch Files - Starting All Your Nodes at Once - Overview Videoβ’1 minute
5 readingsβ’Total 100 minutes
- Introductionβ’20 minutes
- Writing an XML Launch Fileβ’20 minutes
- Including a Launch File Inside Another Launch Fileβ’20 minutes
- Installing and Loading a YAML Param File in a Launch Fileβ’20 minutes
- Specifying a Namespace in a Launch Fileβ’20 minutes
1 assignmentβ’Total 10 minutes
- ROS 2 Launch File Fundamentalsβ’10 minutes
In this section, we introduce TFs and RViz for visualizing robot coordinate transformations and analyzing their relationships.
What's included
1 video3 readings1 assignment
1 videoβ’Total 1 minute
- Discovering TFs with RViz - Overview Videoβ’1 minute
3 readingsβ’Total 45 minutes
- Introductionβ’15 minutes
- The Relationship Between Two Frames (Arrow in RViz)β’15 minutes
- Visualizing the TF Treeβ’15 minutes
1 assignmentβ’Total 10 minutes
- Exploring Transform Frames and Robot Structuresβ’10 minutes
In this section, we explore creating URDF files to model robot links and joints using TFs, with Xacro for dynamic improvements, focusing on practical robot simulation and design.
What's included
1 video9 readings1 assignment
1 videoβ’Total 1 minute
- Creating a URDF for a Robot - Overview Videoβ’1 minute
9 readingsβ’Total 135 minutes
- Introductionβ’20 minutes
- Modifying the Origin of the Visualβ’10 minutes
- The Process of Assembling Links and Jointsβ’15 minutes
- Fixing the Joint Originβ’15 minutes
- Recap the process to follow every timeβ’10 minutes
- Right Wheelβ’15 minutes
- Left Wheelβ’15 minutes
- Improving the URDF with Xacroβ’20 minutes
- Xacro Macrosβ’15 minutes
1 assignmentβ’Total 10 minutes
- URDF Modeling Fundamentalsβ’10 minutes
In this section, we explore packaging URDF files and publishing TFs in ROS 2, focusing on creating launch files and organizing robot data for real-world applications.
What's included
1 video4 readings1 assignment
1 videoβ’Total 1 minute
- Publishing TFs and Packaging the URDF - Overview Videoβ’1 minute
4 readingsβ’Total 80 minutes
- Introductionβ’15 minutes
- Publishing the TFs from the Terminalβ’15 minutes
- Creating a Package to Install the URDFβ’20 minutes
- Installing the RViz Configurationβ’30 minutes
1 assignmentβ’Total 10 minutes
- ROS 2 Robot Modeling and Transformation Fundamentalsβ’10 minutes
In this section, we simulate a robot in Gazebo using ROS 2, adapt URDF with inertial and collision tags, and control the robot with plugins and launch files.
What's included
1 video9 readings1 assignment
1 videoβ’Total 1 minute
- Simulating a Robot in Gazebo - Overview Videoβ’1 minute
9 readingsβ’Total 125 minutes
- Introductionβ’10 minutes
- Starting Gazeboβ’15 minutes
- How Gazebo Works with ROS 2β’15 minutes
- Including the Inertial Macros in the Linksβ’10 minutes
- How to Define a Collision Elementβ’10 minutes
- Spawning the Robot in Gazeboβ’20 minutes
- Controlling the Robot in Gazeboβ’15 minutes
- Acceleration and Velocity Min and Maxβ’15 minutes
- Starting the Gazebo Bridge with the Configurationβ’15 minutes
1 assignmentβ’Total 10 minutes
- Robot Simulation Fundamentalsβ’10 minutes
In this section, we explore advanced ROS 2 applications, focusing on real-world project planning, dynamic node communication, and robot simulation setup using TF and URDF.
What's included
1 video4 readings1 assignment
1 videoβ’Total 1 minute
- What to Do Next - Overview Videoβ’1 minute
4 readingsβ’Total 45 minutes
- Introductionβ’10 minutes
- Navigation 2 Stackβ’10 minutes
- Coming Back to the Basicsβ’10 minutes
- Learning for a Specific Goalβ’15 minutes
1 assignmentβ’Total 10 minutes
- Navigating ROS 2 Learning and Applicationβ’10 minutes
Instructor
Offered by
Explore more from Software Development
- Status: Free Trial
- Status: Free Trial
Course
- Status: Free Trial
- Status: Free Trial
Specialization
Why people choose Coursera for their career
Frequently asked questions
Yes, you can preview the first video and view the syllabus before you enroll. You must purchase the course to access content not included in the preview.
If you decide to enroll in the course before the session start date, you will have access to all of the lecture videos and readings for the course. Youβll be able to submit assignments once the session starts.
Once you enroll and your session begins, you will have access to all videos and other resources, including reading items and the course discussion forum. Youβll be able to view and submit practice assessments, and complete required graded assignments to earn a grade and a Course Certificate.
More questions
Financial aid available,
