ROS2 for Beginners

Video description

In this course, and in a few hours, I will take you step by step from a complete beginner to a ROS2 developer who writes scalable robotics applications. Are you learning ROS2 from scratch? You might be asking yourself, “Where do I start? How do I learn this material? What to do first?”

When I first started using the Robot Operating System (ROS), it was hard for me to answer those questions. Thus, learning ROS/ROS2 was difficult. But it doesn’t have to be that way if you learn with the right resources.

Also, something I noticed is that when people teach ROS2, they often make comparisons with ROS1. What if you don’t know ROS1?

I created this course so that you can properly learn ROS2 from the beginning, with no prior knowledge of ROS and without having to waste weeks or even months trying to find out what to do. After completing this course, you can say goodbye to the big learning curve everyone faces when learning ROS2.

The course is structured so that you can follow it one step at a time and get everything you need in the right order. At the end of the course, you’ll be confident enough to start your own ROS2 application.

You will have the opportunity to work on a complete project using the Turtlesim simulation. This will help you practice more on everything you’ll learn in the course. That will be your first real project from A to Z.

Along the way, you’ll also learn how to use ROS2 tools to debug your application, to monitor what’s going on, and to build your code. With everything you’ll learn, along with the best practices I’ll give you, you will be ready to start any ROS2 project with a good foundation.


Distributed by Manning Publications

This course was created independently by Edouard Renard and is distributed by Manning through our exclusive liveVideo platform.



About the Technology


About the Video


What's Inside
  • Master ROS2 core concepts
  • Build a complete ROS2 application from A to Z
  • Use ROS 2 with both Python and CPP
  • Discover ROS2 tools and how to use them
  • Best practices for ROS2 development
  • Practice with many activities and a final project
  • ROS2 nodes, topics, services, parameters, launch files, and more


About the Reader
  • Programming basics in Python and/or C++
  • Some basics of Object Oriented Programming (OOP) will be an advantage
  • You need to know how to use basic commands in a terminal


About the Author

Edouard Renard is a software engineer, entrepreneur, and robotics teacher. He enjoys teaching new technologies to people and makes complex stuff easy to understand. His method is simple and contains only three words—step by step.

He knows how hard it can be to learn a new topic and to be lost in an ocean of information without knowing what to do. In his courses, he makes sure that his students learn one step at a time through practicing and that students also learn the best practices.

Edouard is passionate about robotics. He cofounded a robotics startup in 2016, building a complete robotic arm from scratch with Arduino, Raspberry Pi, Ubuntu, and ROS. He likes building cool new robotics projects in his free time. 



Quotes

Table of contents

  1. Introduction
    1. Welcome to the Course!
    2. What ROS2 is and Why We Need to Use It and When
  2. Install ROS2 and Set Up Your Environment
    1. Introduction
    2. Which ROS2 Distribution to Use
    3. Install Ubuntu 22.04 on a Virtual Machine (If You Use ROS2 Humble)
    4. Install Ubuntu 20.04 on a Virtual Machine (If You Use ROS2 Foxy)
    5. Programming Tools Used in This Course
    6. Install ROS2 Humble on Ubuntu 22.04 (If You Use ROS2 Humble)
    7. Install ROS2 Foxy on Ubuntu 20.04 (If You Use ROS2 Foxy)
    8. Set Up Your Environment for ROS2
    9. Launch a ROS2 Program
  3. Write Your First ROS2 Program
    1. Introduction
    2. Install Colcon, the ROS2 Build Tool
    3. Create a ROS2 Workspace
    4. Create a Python Package
    5. Create a C++ Package
    6. What is a ROS2 Node?
    7. Write a Python Node (Minimal Code)
    8. Write a Python Node - With OOP
    9. Write a C++ Node (Minimal Code)
    10. Write a C++ Node With OOP
    11. OOP Template for Your Nodes
    12. More about the ROS2 Client Libraries for Different Languages
  4. Introduction to ROS2 Tools
    1. Introduction
    2. Debug and Monitor Your Nodes with ROS2 CLI
    3. Rename a Node at Run Time
    4. Colcon
    5. rqt and rqt_graph
    6. Turtlesim
    7. Activity 1: Exercise
    8. Activity 1: Solution
  5. ROS2 Topics: Make Your Nodes Communicate with Each Other
    1. Introduction
    2. What is a ROS2 Topic?
    3. Write a Python Publisher
    4. Write a Python Subscriber
    5. Write a C++ Publisher
    6. Write a C++ Subscriber
    7. Debug ROS2 Topics with Command-Line Tools
    8. Remap a Topic at Run Time
    9. Monitor Topics with rqt and rqt_graph
    10. Experiment on Topics with Turtlesim
    11. Activity 2: ROS2 Topics
    12. Activity 2: Solution, Part 1
    13. Activity 2: Solution, Part 2
  6. ROS2 Services - Client/Server Communication Between Nodes
    1. Introduction
    2. What is a ROS2 Service?
    3. Write a Python Service Server
    4. Write a Python Service Client (No OOP)
    5. Write a Python Service Client (OOP)
    6. Write a C++ Service Server
    7. Write a C++ Service Client (No OOP)
    8. Write a C++ Service Client (OOP)
    9. Debug Services with ROS2 Tools
    10. Remap a Service at Run Time
    11. Experiment on Services with Turtlesim
    12. Activity 3: ROS2 Services
    13. Activity 3: Solution
  7. Create Custom ROS2 Interfaces (Msg and Srv)
    1. Introduction
    2. What are ROS2 Interfaces?
    3. Create and Build Your First Custom Msg Interface
    4. Use Your Custom Msg in a Python Node
    5. Use Your Custom Msg in a C++ Node
    6. Create and Build Your First Custom Srv Interface
    7. Debug Msg and Srv with ROS2 Tools
    8. Activity 4: ROS2 Custom Interfaces
    9. Activity 4: Solution, Part 1
    10. Activity 4: Solution, Part 2
    11. Activity 4: Solution, Part 3
  8. Change Node Settings at Run Time with ROS2 Parameters
    1. Introduction
    2. What is a ROS2 Parameter?
    3. Declare Your Parameters
    4. Get Parameters from a Python Node
    5. Get Parameters from a C++ Node
    6. Activity 5: ROS2 Parameters
    7. Activity 5: Solution, Part 1
    8. Activity 5: Solution, Part 2
  9. Scale Your Application with ROS2 Launch Files
    1. Introduction
    2. What is a Launch File?
    3. Create and Install a Launch File
    4. Configure your Nodes in a Launch File
    5. Activity 6: Launch Files
    6. Activity 6: Solution
  10. Complete Project with Turtlesim
    1. Turtlesim Project: The Final Result
    2. Project Solution, Part 1
    3. Project Solution, Part 2
    4. Project Solution, Part 3
    5. Project Solution, Part 4
    6. Project Solution, Part 5
    7. Project Solution, Part 6
  11. Extra
    1. Save and Replay Topic Data with ROS2 Bags
  12. Conclusion
    1. What You’ve Learned
    2. What to Do Next?

Product information

  • Title: ROS2 for Beginners
  • Author(s): Edouard Renard
  • Release date: August 2022
  • Publisher(s): Manning Publications
  • ISBN: 10000DIVC2022146