ROS2 for Beginners Level 2 - TF | URDF | RViz | Gazebo
What you'll learn
- Understand what TF (TransForm) is and why we need it
- Create a URDF for any robot (ex: mobile base, robotic arm)
- Simulate and control your robot in Gazebo
- Add Links, Joints, Collisions, Inertia tags in the URDF file
- Understand how to correctly specify links and joints origin
- Use Gazebo plugins to simulate the hardware control of the robot
- Improve and clean up the URDF with Xacro (properties, macros)
- Learn how to use the Robot State Publisher node to publish TF
- Visualize TFs with RViz
- Create XML and Python launch files
- Save and reuse a RViz config in a launch file
- Create a world in Gazebo
- Add a sensor in Gazebo
- Make your robot spawn in a custom Gazebo world
- Learn best practices right from the start
- Practice with additional activities and projects
- You need to have some ROS 2 basics. If you’re new to ROS 2, I suggest starting with my “ROS2 For Beginners” course (level 1)
- Ubuntu installed on your computer (best as a dual boot)
You have learned ROS2 basics and want to go to the next step?
You want to design a custom application for a robot? And maybe also create a simulation for the robot?
Or, you are already working on this, but you feel lost with TF, URDF and Gazebo?
This course is for you. At the end of the course you will be able to design a custom robot with ROS 2, and run this robot in a simulated world.
– Why this course?
I have designed myself a ROS application for a custom robot, while working on a startup project. And I started like everybody, as a beginner.
Not only learning ROS2 basics was hard, but then when adding TF, URDF, and Gazebo, it seemed impossible. It actually took me a few months/years to really be comfortable with those.
When you look at the existing online resources, it’s very hard to find any process that explains in simple terms how to start from scratch and build a project.
That’s why I’ve created this course, so you can benefit from my years of experience with ROS. I made the course I wish I had when I got started.
My goal is to make you save tons of hours and frustration, by giving you a step by step approach, with a real project that we do together, from beginning to end.
– How do I teach?
If you’ve taken other ROS 2 courses from me you know that I’m not here to waste your time.
My teaching method is quite simple:
Step by step
Going to the point
Learn while doing
Also I strongly focus on the “why” behind what you learn. The goal is not just to make you blindly repeat some steps, but to understand why those steps matter.
And don’t take my word for it - here are some reviews from fellow students/researchers/engineers/teachers who took my ROS2 courses on Udemy:
“Best course on ROS2 I’ve taken! Other courses (different sites/platforms) made it confusing but this course makes it so clear and easy to understand while letting you try on your own. I am definitely learning a lot in a painless and simple way. I should have gotten this course from the beginning.” - Miguel Martinez G.
“Overall very satisfied. I’ve a strong background in programming, but at a higher level (web mostly) and the elegant, fluent and clean approach of this course has leveraged my introduction to the ROS environment in a short amount of time, without the struggle of going through a lot of documentation” - Devis D.
“I think I learned all that I need to develop a ROS2 project from scratch. I will recommend 100% this course to anyone who wants to learn the fundamentals of ROS2.” - Javier D.
“This course is awesome. I finally get to understand the development of packages/nodes in a simple progressive way, which helps to understand how the framework works and therefore helps to get into it easily.” - Christophe K.
– What will you do and learn in the course?
This course is project based. We will start a project together, from scratch. Then, step by step, you will build the application, while learning new concepts.
Here’s a quick overview of what you’ll do (non exhaustive list):
Understand what TF is (with RViz) and why we need it.
Start the project by writing a URDF file, to describe the physical properties of a robot - we’ll start with a mobile robot.
Generate TF using the robot state publisher and the URDF.
Improve and clean the URDF using the Xacro tool.
Adapt the URDF for Gazebo, spawn the robot in Gazebo.
Control the robot with Gazebo plugins.
Simulate a sensor in Gazebo.
Create ROS2 packages and XML launch files to start the entire application with one command line.
Everything is hands-on, so you’ll practice right from the start, and I will show you every step that I do.
You also get some extra activities during the course, so you can practice even more by being challenged on key points.
And there is a big final project, where we create yet another robot (robotic arm) from scratch, using everything that you’ve learned in the course. You will also learn how to combine 2 robots together.
So, to go further with ROS2 and design custom robots and simulations, enroll in the course today!
You don’t take any risk here, because you also get a 30-day money back guarantee if you’re not fully satisfied - no questions asked.
See you in the course!
Note - this course is not for you if:
- You know nothing about ROS 2. In this case, I suggest you start with my “ROS2 for Beginners” course (level 1).
Who this course is for:
- ROS developers who know the basics and want to learn how to start building and simulating robots with ROS 2
- Engineers/Teachers/Researchers/Anyone who has started with ROS 2 and wondering what to do next
- ROS developers who are already using URDF, TF and Gazebo, but feel like they are not understanding everything they do
- Anyone lost in the ROS2 docs
Hi, I’m Edouard. I am a software engineer and robotics teacher.
I really enjoy teaching new technologies to people, and making complex stuff easy to understand. My method is simple, and contains only 3 words : Step By Step. I know how hard it can be to learn a new topic and just be lost in an ocean of information, without knowing what to do. In my courses, I make sure that you learn one step at a time, through practicing, and that you also learn the best practices.
I am passionate about robotics. I found that it’s amazing how many cool projects you can do with a robot, when you have the required programming knowledge!
I also co-founded a robotics startup in 2016, building a complete robotic arm, from scratch, with Arduino, Raspberry Pi, Ubuntu and ROS. Thus, I am aware of things that work and things that don’t work, thanks to a lot of practice. This will save you precious time and make you progress faster.