Learn ROS2 as a ROS1 Developer and Migrate Your ROS Projects

  • Course provided by Udemy
  • Study type: Online
  • Starts: Anytime
  • Price: See latest price on Udemy
Udemy

Course Description

At the end of this course - starting from your ROS1 knowledge - you will be able to create complete ROS2 applications, and migrate a ROS1 code base in ROS2.

!!! IMPORTANT !!! If you’re a complete beginner and have no ROS1 knowledge at all, please don’t take this course. You must know how to work with core concepts (nodes, services, parameters, launch files) to understand the course.

Please read the entire description to understand what to expect from this course :)


→ Why this course?


Well, if you already know ROS1, you might want to start learning ROS2, but not from scratch.

Or if you have to work with a ROS1 project, you might be looking into a way to port it to ROS2.

I myself was a ROS1 developer before learning ROS2. What I was looking for was simply some documentation of how I could quickly get up to speed with ROS2, as I already knew ROS1. I didn’t find any good resources, so I had to go through all of the beginner documentation for ROS2. After doing all that, I’m now using ROS2 and I can see the differences. In this course I won’t start from the very beginning of each ROS concept, since you already know them. I’ll just focus on the most important points that will allow you to write ROS2 applications in no time, thanks to your pre-existing ROS1 knowledge.

And I understand the need to know what to do with an existing ROS1 project, now that ROS2 is starting to get bigger and more stable. So, again, what I’ll teach you is what I personally do with my own projects. I don’t “invent” a method, I create it from real practical needs I have and other people have.


→ Structure of the course: what can you get from the course.


This course is divided into 2 main parts.

1. First, you’re going to learn how to write ROS2 programs, using your ROS1 experience. We’ll start from an existing ROS1 application, and step by step, we’ll go through every core concept and see how to translate the app in ROS2. Note that we won’t dive into advanced functionalities, we’ll stick to the ROS2 core functionalities.

2. Then, it’s migration time! If you already have some basics in ROS2, you might go quickly with the first part, and then focus on this migration part.

I will explain to you:

  • When to switch to ROS2.

  • Which ROS1 and ROS2 distribution to use now and in the near future.

I will give you a step-by-step process to migrate your ROS1 code base in ROS2. Also you’ll see how to run a ROS1 application along with a ROS2 application, communicating between them thanks to the ros1_bridge package.

And finally: a complete project for you to practice on migrating a code base and writing ROS2 code. I’ll give you a project I made with Turtlesim in ROS1, and you’ll migrate it to ROS2.


→ What if you already know ROS1 and some ROS2 basics?


Well, you can still benefit from the course. You can skim through the first part (as a refresher) and then go to the second part, which can be seen as a complete mini-course by itself.

This second part + the final project will give you the answers you need to start working with both ROS1 and ROS2, and also to migrate your own code base.


→ How do I teach?

My method is quite simple:

  • Step by step

  • Going to the point

  • Practice over theory, though a little bit of theory doesn’t hurt when combined with practice

My experience with Robot Operating System is very practical. I actually used it to build a robotic arm that is now on the market. So I had no other choice than being practical and going to the point. And that’s the way I want to teach you.


This course is not for you if:

  • You don’t have any knowledge in ROS1

  • You’re already an expert in both ROS1 and ROS2.

  • You’re just getting started with programming and Linux.

Who this course is for:

  • Students, Engineers, Researchers, Teachers, Developers, Hobbyists.
  • ROS1 developers who want to learn ROS2, not from scratch, but by comparing ROS2 with ROS1
  • ROS1/ROS2 developers who want to migrate a ROS1 codebase into ROS2
  • ROS developers who want to be able to work with both ROS1 and ROS2.

Expected Outcomes

  1. Most important differences between ROS1 and ROS2 for a Developer Install and setup ROS2 on Ubuntu Write complete applications with ROS2 Communicate between ROS1 and ROS2 using the ros1_bridge package Migrate a ROS1 project to ROS2 Practice with a complete migration project Requirements You have a fair understanding in ROS1 and can write simple ROS1 programs Ubuntu 20.04 installed on your computer (dual boot or virtual machine) + you know how to use basic commands in a terminal Programming basics in Python and/or C++ Some basics in Object Oriented Programming (OOP) are welcome, although not 100% mandatory Description At the end of this course - starting from your ROS1 knowledge - you will be able to create complete ROS2 applications, and migrate a ROS1 code base in ROS2. !!! IMPORTANT !!! If you’re a complete beginner and have no ROS1 knowledge at all, please don’t take this course. You must know how to work with core concepts (nodes, services, parameters, launch files) to understand the course. Please read the entire description to understand what to expect from this course :) → Why this course? Well, if you already know ROS1, you might want to start learning ROS2, but not from scratch. Or if you have to work with a ROS1 project, you might be looking into a way to port it to ROS2. I myself was a ROS1 developer before learning ROS2. What I was looking for was simply some documentation of how I could quickly get up to speed with ROS2, as I already knew ROS1. I didn’t find any good resources, so I had to go through all of the beginner documentation for ROS2. After doing all that, I’m now using ROS2 and I can see the differences. In this course I won’t start from the very beginning of each ROS concept, since you already know them. I’ll just focus on the most important points that will allow you to write ROS2 applications in no time , thanks to your pre-existing ROS1 knowledge. And I understand the need to know what to do with an existing ROS1 project, now that ROS2 is starting to get bigger and more stable. So, again, what I’ll teach you is what I personally do with my own projects. I don’t “invent” a method, I create it from real practical needs I have and other people have. → Structure of the course: what can you get from the course. This course is divided into 2 main parts. 1. First, you’re going to learn how to write ROS2 programs, using your ROS1 experience. We’ll start from an existing ROS1 application, and step by step, we’ll go through every core concept and see how to translate the app in ROS2 . Note that we won’t dive into advanced functionalities, we’ll stick to the ROS2 core functionalities. 2. Then, it’s migration time! If you already have some basics in ROS2, you might go quickly with the first part, and then focus on this migration part. I will explain to you: When to switch to ROS2. Which ROS1 and ROS2 distribution to use now and in the near future. I will give you a step-by-step process to migrate your ROS1 code base in ROS2 . Also you’ll see how to run a ROS1 application along with a ROS2 application, communicating between them thanks to the ros1_bridge package. And finally: a complete project for you to practice on migrating a code base and writing ROS2 code. I’ll give you a project I made with Turtlesim in ROS1, and you’ll migrate it to ROS2. → What if you already know ROS1 and some ROS2 basics? Well, you can still benefit from the course. You can skim through the first part (as a refresher) and then go to the second part, which can be seen as a complete mini-course by itself. This second part + the final project will give you the answers you need to start working with both ROS1 and ROS2, and also to migrate your own code base. → How do I teach? My method is quite simple: Step by step Going to the point Practice over theory, though a little bit of theory doesn’t hurt when combined with practice My experience with Robot Operating System is very practical . I actually used it to build a robotic arm that is now on the market. So I had no other choice than being practical and going to the point. And that’s the way I want to teach you. This course is not for you if: You don’t have any knowledge in ROS1 You’re already an expert in both ROS1 and ROS2. You’re just getting started with programming and Linux. Who this course is for: Students, Engineers, Researchers, Teachers, Developers, Hobbyists. ROS1 developers who want to learn ROS2, not from scratch, but by comparing ROS2 with ROS1 ROS1/ROS2 developers who want to migrate a ROS1 codebase into ROS2 ROS developers who want to be able to work with both ROS1 and ROS2. Show more Show less Course content 7 sections • 50 lectures • 6h 42m total length Expand all sections Introduction 4 lectures • 12min Welcome! Preview 03:19 When to Switch to ROS2? Preview 05:57 How to get the most out of this course 01:14 Setup for the course 01:36 Install ROS2 and Discover the Main Differences with ROS1 4 lectures • 20min Introduction 00:19 Install ROS2 Foxy (Ubuntu 20.04) and Setup Your Environment 05:50 Start a ROS2 Node and Get Familiar with ROS2 Tools Preview 07:00 ROS1 vs ROS2: First Differences (quick overview) 07:09 Re-write a ROS1 Application in ROS2 (PART A) 12 lectures • 1hr 33min Introduction 00:35 Install ROS1 Noetic to Test the ROS1 App 06:25 The ROS1 App We'll Use 12:09 Install colcon 03:08 Create a ROS2 Workspace 04:04 Create a Package (Python) 07:03 Create a Package (C++) 03:10 Create a Node (Python) 15:27 Create a Node (Python) with OOP Preview 10:11 Create a Node (C++) 13:58 Create a Node (C++) with OOP 08:14 Template for Your OOP Nodes 08:53 Re-write a ROS1 Application in ROS2 (PART B) 11 lectures • 2hr Write a Topic Publisher/Subscriber (Python) Preview 16:20 Write a Topic Publisher/Subscriber (C++) 14:30 Create Custom Interfaces (Msg/Srv) 12:50 Write a Service (Python) 10:03 Write a Service (C++) 12:04 Remappings in ROS2 04:49 ROS2 Parameters - What Has Changed? 03:41 Declare Your Parameters (Python/C++) 13:23 Get Parameters From Your Code (Python) 06:54 Get Parameters From Your Code (C++) 05:42 Create a Launch File 19:43 Use ros1_bridge + Migration Guide 8 lectures • 1hr 9min Introduction 00:57 Steps to Migrate a Codebase Using ros1_bridge Preview 04:57 Install and Test ros1_bridge Preview 10:44 Bridge Custom Messages [1/4] - Why + Setup 08:38 Bridge Custom Messages [2/4] - Installation Process 06:18 Bridge Custom Messages [3/4] - Running your App with ROS1 and ROS2 06:56 Bridge Custom Messages [4/4] - Mapping Rules 15:46 Use ros1_bridge with our Number App 15:10 Migration Project ROS1 -> ROS2 9 lectures • 1hr 24min Project Intro - Discover the ROS1 App Preview 10:57 Project Intro - Project Steps 03:18 Step 0 - Port the Code to ROS1 Noetic 05:28 [DONT MISS THAT] Before going further - Download the seed for the ROS2 project 05:37 Step 1 - Migrate Custom Messages and Setup ros1_bridge 18:31 Step 2 - Port Target Publisher Node 15:15 Step 3 - Port Turtle Controller Node 15:46 Step 4 - Create a Launch File 07:57 Project Conclusion + Improvements 01:16 Conclusion 2 lectures • 4min What to do next 02:04 Bonus Lecture 01:28 Instructor Edouard Renard Software engineer and entrepreneur 4.6 Instructor Rating 3,119 Reviews 15,033 Students 11 Courses Hi, I’m Edouard. I am a software engineer, entrepreneur, 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. Show more Show less Udemy Business Teach on Udemy Get the app About us Contact us Careers Blog Help and Support Affiliate Impressum Kontakt Terms Privacy policy Cookie settings Sitemap © 2021 Udemy, Inc. window.handleCSSToggleButtonClick = function (event) { var target = event.currentTarget; var cssToggleId = target && target.dataset && target.dataset.cssToggleId; var input = cssToggleId && document.getElementById(cssToggleId); if (input) { if (input.dataset.type === 'checkbox') { input.dataset.checked = input.dataset.checked ? '' : 'checked'; } else { input.dataset.checked = input.dataset.allowToggle && input.dataset.checked ? '' : 'checked'; var radios = document.querySelectorAll('[name="' + input.dataset.name + '"]'); for (var i = 0; i (function(){window['__CF$cv$params']={r:'677ed7078975069a',m:'0eb33b61695765e9f6144eb91904797c3528b469-1627818534-1800-ASO3UGInG7sSB13PYdvBn43QA3g4/QXxgshHQ5II0/XjhA/mecK6EclzdcwbTj3QHgyAVqaSL1rSlMIHRbRwYaKOVvqEMfksAFShBTinK1TB0EWEYOk0HKaNDbgA3JY+W4O4Qq156/wTvtLZoxA/wo/rTSz75TgTWqQS+5mNmz6f54B/jXg6nYjJ5LtVr7hGs7OXxCmFrxN/CSoKMU9EE7s=',s:[0x9cacd6fdb8,0x2b7910be9f],}})();
  2. Install and setup ROS2 on Ubuntu Write complete applications with ROS2 Communicate between ROS1 and ROS2 using the ros1_bridge package Migrate a ROS1 project to ROS2 Practice with a complete migration project Requirements You have a fair understanding in ROS1 and can write simple ROS1 programs Ubuntu 20.04 installed on your computer (dual boot or virtual machine) + you know how to use basic commands in a terminal Programming basics in Python and/or C++ Some basics in Object Oriented Programming (OOP) are welcome, although not 100% mandatory Description At the end of this course - starting from your ROS1 knowledge - you will be able to create complete ROS2 applications, and migrate a ROS1 code base in ROS2. !!! IMPORTANT !!! If you’re a complete beginner and have no ROS1 knowledge at all, please don’t take this course. You must know how to work with core concepts (nodes, services, parameters, launch files) to understand the course. Please read the entire description to understand what to expect from this course :) → Why this course? Well, if you already know ROS1, you might want to start learning ROS2, but not from scratch. Or if you have to work with a ROS1 project, you might be looking into a way to port it to ROS2. I myself was a ROS1 developer before learning ROS2. What I was looking for was simply some documentation of how I could quickly get up to speed with ROS2, as I already knew ROS1. I didn’t find any good resources, so I had to go through all of the beginner documentation for ROS2. After doing all that, I’m now using ROS2 and I can see the differences. In this course I won’t start from the very beginning of each ROS concept, since you already know them. I’ll just focus on the most important points that will allow you to write ROS2 applications in no time , thanks to your pre-existing ROS1 knowledge. And I understand the need to know what to do with an existing ROS1 project, now that ROS2 is starting to get bigger and more stable. So, again, what I’ll teach you is what I personally do with my own projects. I don’t “invent” a method, I create it from real practical needs I have and other people have. → Structure of the course: what can you get from the course. This course is divided into 2 main parts. 1. First, you’re going to learn how to write ROS2 programs, using your ROS1 experience. We’ll start from an existing ROS1 application, and step by step, we’ll go through every core concept and see how to translate the app in ROS2 . Note that we won’t dive into advanced functionalities, we’ll stick to the ROS2 core functionalities. 2. Then, it’s migration time! If you already have some basics in ROS2, you might go quickly with the first part, and then focus on this migration part. I will explain to you: When to switch to ROS2. Which ROS1 and ROS2 distribution to use now and in the near future. I will give you a step-by-step process to migrate your ROS1 code base in ROS2 . Also you’ll see how to run a ROS1 application along with a ROS2 application, communicating between them thanks to the ros1_bridge package. And finally: a complete project for you to practice on migrating a code base and writing ROS2 code. I’ll give you a project I made with Turtlesim in ROS1, and you’ll migrate it to ROS2. → What if you already know ROS1 and some ROS2 basics? Well, you can still benefit from the course. You can skim through the first part (as a refresher) and then go to the second part, which can be seen as a complete mini-course by itself. This second part + the final project will give you the answers you need to start working with both ROS1 and ROS2, and also to migrate your own code base. → How do I teach? My method is quite simple: Step by step Going to the point Practice over theory, though a little bit of theory doesn’t hurt when combined with practice My experience with Robot Operating System is very practical . I actually used it to build a robotic arm that is now on the market. So I had no other choice than being practical and going to the point. And that’s the way I want to teach you. This course is not for you if: You don’t have any knowledge in ROS1 You’re already an expert in both ROS1 and ROS2. You’re just getting started with programming and Linux. Who this course is for: Students, Engineers, Researchers, Teachers, Developers, Hobbyists. ROS1 developers who want to learn ROS2, not from scratch, but by comparing ROS2 with ROS1 ROS1/ROS2 developers who want to migrate a ROS1 codebase into ROS2 ROS developers who want to be able to work with both ROS1 and ROS2. Show more Show less Course content 7 sections • 50 lectures • 6h 42m total length Expand all sections Introduction 4 lectures • 12min Welcome! Preview 03:19 When to Switch to ROS2? Preview 05:57 How to get the most out of this course 01:14 Setup for the course 01:36 Install ROS2 and Discover the Main Differences with ROS1 4 lectures • 20min Introduction 00:19 Install ROS2 Foxy (Ubuntu 20.04) and Setup Your Environment 05:50 Start a ROS2 Node and Get Familiar with ROS2 Tools Preview 07:00 ROS1 vs ROS2: First Differences (quick overview) 07:09 Re-write a ROS1 Application in ROS2 (PART A) 12 lectures • 1hr 33min Introduction 00:35 Install ROS1 Noetic to Test the ROS1 App 06:25 The ROS1 App We'll Use 12:09 Install colcon 03:08 Create a ROS2 Workspace 04:04 Create a Package (Python) 07:03 Create a Package (C++) 03:10 Create a Node (Python) 15:27 Create a Node (Python) with OOP Preview 10:11 Create a Node (C++) 13:58 Create a Node (C++) with OOP 08:14 Template for Your OOP Nodes 08:53 Re-write a ROS1 Application in ROS2 (PART B) 11 lectures • 2hr Write a Topic Publisher/Subscriber (Python) Preview 16:20 Write a Topic Publisher/Subscriber (C++) 14:30 Create Custom Interfaces (Msg/Srv) 12:50 Write a Service (Python) 10:03 Write a Service (C++) 12:04 Remappings in ROS2 04:49 ROS2 Parameters - What Has Changed? 03:41 Declare Your Parameters (Python/C++) 13:23 Get Parameters From Your Code (Python) 06:54 Get Parameters From Your Code (C++) 05:42 Create a Launch File 19:43 Use ros1_bridge + Migration Guide 8 lectures • 1hr 9min Introduction 00:57 Steps to Migrate a Codebase Using ros1_bridge Preview 04:57 Install and Test ros1_bridge Preview 10:44 Bridge Custom Messages [1/4] - Why + Setup 08:38 Bridge Custom Messages [2/4] - Installation Process 06:18 Bridge Custom Messages [3/4] - Running your App with ROS1 and ROS2 06:56 Bridge Custom Messages [4/4] - Mapping Rules 15:46 Use ros1_bridge with our Number App 15:10 Migration Project ROS1 -> ROS2 9 lectures • 1hr 24min Project Intro - Discover the ROS1 App Preview 10:57 Project Intro - Project Steps 03:18 Step 0 - Port the Code to ROS1 Noetic 05:28 [DONT MISS THAT] Before going further - Download the seed for the ROS2 project 05:37 Step 1 - Migrate Custom Messages and Setup ros1_bridge 18:31 Step 2 - Port Target Publisher Node 15:15 Step 3 - Port Turtle Controller Node 15:46 Step 4 - Create a Launch File 07:57 Project Conclusion + Improvements 01:16 Conclusion 2 lectures • 4min What to do next 02:04 Bonus Lecture 01:28 Instructor Edouard Renard Software engineer and entrepreneur 4.6 Instructor Rating 3,119 Reviews 15,033 Students 11 Courses Hi, I’m Edouard. I am a software engineer, entrepreneur, 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. Show more Show less Udemy Business Teach on Udemy Get the app About us Contact us Careers Blog Help and Support Affiliate Impressum Kontakt Terms Privacy policy Cookie settings Sitemap © 2021 Udemy, Inc. window.handleCSSToggleButtonClick = function (event) { var target = event.currentTarget; var cssToggleId = target && target.dataset && target.dataset.cssToggleId; var input = cssToggleId && document.getElementById(cssToggleId); if (input) { if (input.dataset.type === 'checkbox') { input.dataset.checked = input.dataset.checked ? '' : 'checked'; } else { input.dataset.checked = input.dataset.allowToggle && input.dataset.checked ? '' : 'checked'; var radios = document.querySelectorAll('[name="' + input.dataset.name + '"]'); for (var i = 0; i (function(){window['__CF$cv$params']={r:'677ed7078975069a',m:'0eb33b61695765e9f6144eb91904797c3528b469-1627818534-1800-ASO3UGInG7sSB13PYdvBn43QA3g4/QXxgshHQ5II0/XjhA/mecK6EclzdcwbTj3QHgyAVqaSL1rSlMIHRbRwYaKOVvqEMfksAFShBTinK1TB0EWEYOk0HKaNDbgA3JY+W4O4Qq156/wTvtLZoxA/wo/rTSz75TgTWqQS+5mNmz6f54B/jXg6nYjJ5LtVr7hGs7OXxCmFrxN/CSoKMU9EE7s=',s:[0x9cacd6fdb8,0x2b7910be9f],}})();
  3. Write complete applications with ROS2 Communicate between ROS1 and ROS2 using the ros1_bridge package Migrate a ROS1 project to ROS2 Practice with a complete migration project Requirements You have a fair understanding in ROS1 and can write simple ROS1 programs Ubuntu 20.04 installed on your computer (dual boot or virtual machine) + you know how to use basic commands in a terminal Programming basics in Python and/or C++ Some basics in Object Oriented Programming (OOP) are welcome, although not 100% mandatory Description At the end of this course - starting from your ROS1 knowledge - you will be able to create complete ROS2 applications, and migrate a ROS1 code base in ROS2. !!! IMPORTANT !!! If you’re a complete beginner and have no ROS1 knowledge at all, please don’t take this course. You must know how to work with core concepts (nodes, services, parameters, launch files) to understand the course. Please read the entire description to understand what to expect from this course :) → Why this course? Well, if you already know ROS1, you might want to start learning ROS2, but not from scratch. Or if you have to work with a ROS1 project, you might be looking into a way to port it to ROS2. I myself was a ROS1 developer before learning ROS2. What I was looking for was simply some documentation of how I could quickly get up to speed with ROS2, as I already knew ROS1. I didn’t find any good resources, so I had to go through all of the beginner documentation for ROS2. After doing all that, I’m now using ROS2 and I can see the differences. In this course I won’t start from the very beginning of each ROS concept, since you already know them. I’ll just focus on the most important points that will allow you to write ROS2 applications in no time , thanks to your pre-existing ROS1 knowledge. And I understand the need to know what to do with an existing ROS1 project, now that ROS2 is starting to get bigger and more stable. So, again, what I’ll teach you is what I personally do with my own projects. I don’t “invent” a method, I create it from real practical needs I have and other people have. → Structure of the course: what can you get from the course. This course is divided into 2 main parts. 1. First, you’re going to learn how to write ROS2 programs, using your ROS1 experience. We’ll start from an existing ROS1 application, and step by step, we’ll go through every core concept and see how to translate the app in ROS2 . Note that we won’t dive into advanced functionalities, we’ll stick to the ROS2 core functionalities. 2. Then, it’s migration time! If you already have some basics in ROS2, you might go quickly with the first part, and then focus on this migration part. I will explain to you: When to switch to ROS2. Which ROS1 and ROS2 distribution to use now and in the near future. I will give you a step-by-step process to migrate your ROS1 code base in ROS2 . Also you’ll see how to run a ROS1 application along with a ROS2 application, communicating between them thanks to the ros1_bridge package. And finally: a complete project for you to practice on migrating a code base and writing ROS2 code. I’ll give you a project I made with Turtlesim in ROS1, and you’ll migrate it to ROS2. → What if you already know ROS1 and some ROS2 basics? Well, you can still benefit from the course. You can skim through the first part (as a refresher) and then go to the second part, which can be seen as a complete mini-course by itself. This second part + the final project will give you the answers you need to start working with both ROS1 and ROS2, and also to migrate your own code base. → How do I teach? My method is quite simple: Step by step Going to the point Practice over theory, though a little bit of theory doesn’t hurt when combined with practice My experience with Robot Operating System is very practical . I actually used it to build a robotic arm that is now on the market. So I had no other choice than being practical and going to the point. And that’s the way I want to teach you. This course is not for you if: You don’t have any knowledge in ROS1 You’re already an expert in both ROS1 and ROS2. You’re just getting started with programming and Linux. Who this course is for: Students, Engineers, Researchers, Teachers, Developers, Hobbyists. ROS1 developers who want to learn ROS2, not from scratch, but by comparing ROS2 with ROS1 ROS1/ROS2 developers who want to migrate a ROS1 codebase into ROS2 ROS developers who want to be able to work with both ROS1 and ROS2. Show more Show less Course content 7 sections • 50 lectures • 6h 42m total length Expand all sections Introduction 4 lectures • 12min Welcome! Preview 03:19 When to Switch to ROS2? Preview 05:57 How to get the most out of this course 01:14 Setup for the course 01:36 Install ROS2 and Discover the Main Differences with ROS1 4 lectures • 20min Introduction 00:19 Install ROS2 Foxy (Ubuntu 20.04) and Setup Your Environment 05:50 Start a ROS2 Node and Get Familiar with ROS2 Tools Preview 07:00 ROS1 vs ROS2: First Differences (quick overview) 07:09 Re-write a ROS1 Application in ROS2 (PART A) 12 lectures • 1hr 33min Introduction 00:35 Install ROS1 Noetic to Test the ROS1 App 06:25 The ROS1 App We'll Use 12:09 Install colcon 03:08 Create a ROS2 Workspace 04:04 Create a Package (Python) 07:03 Create a Package (C++) 03:10 Create a Node (Python) 15:27 Create a Node (Python) with OOP Preview 10:11 Create a Node (C++) 13:58 Create a Node (C++) with OOP 08:14 Template for Your OOP Nodes 08:53 Re-write a ROS1 Application in ROS2 (PART B) 11 lectures • 2hr Write a Topic Publisher/Subscriber (Python) Preview 16:20 Write a Topic Publisher/Subscriber (C++) 14:30 Create Custom Interfaces (Msg/Srv) 12:50 Write a Service (Python) 10:03 Write a Service (C++) 12:04 Remappings in ROS2 04:49 ROS2 Parameters - What Has Changed? 03:41 Declare Your Parameters (Python/C++) 13:23 Get Parameters From Your Code (Python) 06:54 Get Parameters From Your Code (C++) 05:42 Create a Launch File 19:43 Use ros1_bridge + Migration Guide 8 lectures • 1hr 9min Introduction 00:57 Steps to Migrate a Codebase Using ros1_bridge Preview 04:57 Install and Test ros1_bridge Preview 10:44 Bridge Custom Messages [1/4] - Why + Setup 08:38 Bridge Custom Messages [2/4] - Installation Process 06:18 Bridge Custom Messages [3/4] - Running your App with ROS1 and ROS2 06:56 Bridge Custom Messages [4/4] - Mapping Rules 15:46 Use ros1_bridge with our Number App 15:10 Migration Project ROS1 -> ROS2 9 lectures • 1hr 24min Project Intro - Discover the ROS1 App Preview 10:57 Project Intro - Project Steps 03:18 Step 0 - Port the Code to ROS1 Noetic 05:28 [DONT MISS THAT] Before going further - Download the seed for the ROS2 project 05:37 Step 1 - Migrate Custom Messages and Setup ros1_bridge 18:31 Step 2 - Port Target Publisher Node 15:15 Step 3 - Port Turtle Controller Node 15:46 Step 4 - Create a Launch File 07:57 Project Conclusion + Improvements 01:16 Conclusion 2 lectures • 4min What to do next 02:04 Bonus Lecture 01:28 Instructor Edouard Renard Software engineer and entrepreneur 4.6 Instructor Rating 3,119 Reviews 15,033 Students 11 Courses Hi, I’m Edouard. I am a software engineer, entrepreneur, 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. Show more Show less Udemy Business Teach on Udemy Get the app About us Contact us Careers Blog Help and Support Affiliate Impressum Kontakt Terms Privacy policy Cookie settings Sitemap © 2021 Udemy, Inc. window.handleCSSToggleButtonClick = function (event) { var target = event.currentTarget; var cssToggleId = target && target.dataset && target.dataset.cssToggleId; var input = cssToggleId && document.getElementById(cssToggleId); if (input) { if (input.dataset.type === 'checkbox') { input.dataset.checked = input.dataset.checked ? '' : 'checked'; } else { input.dataset.checked = input.dataset.allowToggle && input.dataset.checked ? '' : 'checked'; var radios = document.querySelectorAll('[name="' + input.dataset.name + '"]'); for (var i = 0; i (function(){window['__CF$cv$params']={r:'677ed7078975069a',m:'0eb33b61695765e9f6144eb91904797c3528b469-1627818534-1800-ASO3UGInG7sSB13PYdvBn43QA3g4/QXxgshHQ5II0/XjhA/mecK6EclzdcwbTj3QHgyAVqaSL1rSlMIHRbRwYaKOVvqEMfksAFShBTinK1TB0EWEYOk0HKaNDbgA3JY+W4O4Qq156/wTvtLZoxA/wo/rTSz75TgTWqQS+5mNmz6f54B/jXg6nYjJ5LtVr7hGs7OXxCmFrxN/CSoKMU9EE7s=',s:[0x9cacd6fdb8,0x2b7910be9f],}})();
  4. Communicate between ROS1 and ROS2 using the ros1_bridge package Migrate a ROS1 project to ROS2 Practice with a complete migration project Requirements You have a fair understanding in ROS1 and can write simple ROS1 programs Ubuntu 20.04 installed on your computer (dual boot or virtual machine) + you know how to use basic commands in a terminal Programming basics in Python and/or C++ Some basics in Object Oriented Programming (OOP) are welcome, although not 100% mandatory Description At the end of this course - starting from your ROS1 knowledge - you will be able to create complete ROS2 applications, and migrate a ROS1 code base in ROS2. !!! IMPORTANT !!! If you’re a complete beginner and have no ROS1 knowledge at all, please don’t take this course. You must know how to work with core concepts (nodes, services, parameters, launch files) to understand the course. Please read the entire description to understand what to expect from this course :) → Why this course? Well, if you already know ROS1, you might want to start learning ROS2, but not from scratch. Or if you have to work with a ROS1 project, you might be looking into a way to port it to ROS2. I myself was a ROS1 developer before learning ROS2. What I was looking for was simply some documentation of how I could quickly get up to speed with ROS2, as I already knew ROS1. I didn’t find any good resources, so I had to go through all of the beginner documentation for ROS2. After doing all that, I’m now using ROS2 and I can see the differences. In this course I won’t start from the very beginning of each ROS concept, since you already know them. I’ll just focus on the most important points that will allow you to write ROS2 applications in no time , thanks to your pre-existing ROS1 knowledge. And I understand the need to know what to do with an existing ROS1 project, now that ROS2 is starting to get bigger and more stable. So, again, what I’ll teach you is what I personally do with my own projects. I don’t “invent” a method, I create it from real practical needs I have and other people have. → Structure of the course: what can you get from the course. This course is divided into 2 main parts. 1. First, you’re going to learn how to write ROS2 programs, using your ROS1 experience. We’ll start from an existing ROS1 application, and step by step, we’ll go through every core concept and see how to translate the app in ROS2 . Note that we won’t dive into advanced functionalities, we’ll stick to the ROS2 core functionalities. 2. Then, it’s migration time! If you already have some basics in ROS2, you might go quickly with the first part, and then focus on this migration part. I will explain to you: When to switch to ROS2. Which ROS1 and ROS2 distribution to use now and in the near future. I will give you a step-by-step process to migrate your ROS1 code base in ROS2 . Also you’ll see how to run a ROS1 application along with a ROS2 application, communicating between them thanks to the ros1_bridge package. And finally: a complete project for you to practice on migrating a code base and writing ROS2 code. I’ll give you a project I made with Turtlesim in ROS1, and you’ll migrate it to ROS2. → What if you already know ROS1 and some ROS2 basics? Well, you can still benefit from the course. You can skim through the first part (as a refresher) and then go to the second part, which can be seen as a complete mini-course by itself. This second part + the final project will give you the answers you need to start working with both ROS1 and ROS2, and also to migrate your own code base. → How do I teach? My method is quite simple: Step by step Going to the point Practice over theory, though a little bit of theory doesn’t hurt when combined with practice My experience with Robot Operating System is very practical . I actually used it to build a robotic arm that is now on the market. So I had no other choice than being practical and going to the point. And that’s the way I want to teach you. This course is not for you if: You don’t have any knowledge in ROS1 You’re already an expert in both ROS1 and ROS2. You’re just getting started with programming and Linux. Who this course is for: Students, Engineers, Researchers, Teachers, Developers, Hobbyists. ROS1 developers who want to learn ROS2, not from scratch, but by comparing ROS2 with ROS1 ROS1/ROS2 developers who want to migrate a ROS1 codebase into ROS2 ROS developers who want to be able to work with both ROS1 and ROS2. Show more Show less Course content 7 sections • 50 lectures • 6h 42m total length Expand all sections Introduction 4 lectures • 12min Welcome! Preview 03:19 When to Switch to ROS2? Preview 05:57 How to get the most out of this course 01:14 Setup for the course 01:36 Install ROS2 and Discover the Main Differences with ROS1 4 lectures • 20min Introduction 00:19 Install ROS2 Foxy (Ubuntu 20.04) and Setup Your Environment 05:50 Start a ROS2 Node and Get Familiar with ROS2 Tools Preview 07:00 ROS1 vs ROS2: First Differences (quick overview) 07:09 Re-write a ROS1 Application in ROS2 (PART A) 12 lectures • 1hr 33min Introduction 00:35 Install ROS1 Noetic to Test the ROS1 App 06:25 The ROS1 App We'll Use 12:09 Install colcon 03:08 Create a ROS2 Workspace 04:04 Create a Package (Python) 07:03 Create a Package (C++) 03:10 Create a Node (Python) 15:27 Create a Node (Python) with OOP Preview 10:11 Create a Node (C++) 13:58 Create a Node (C++) with OOP 08:14 Template for Your OOP Nodes 08:53 Re-write a ROS1 Application in ROS2 (PART B) 11 lectures • 2hr Write a Topic Publisher/Subscriber (Python) Preview 16:20 Write a Topic Publisher/Subscriber (C++) 14:30 Create Custom Interfaces (Msg/Srv) 12:50 Write a Service (Python) 10:03 Write a Service (C++) 12:04 Remappings in ROS2 04:49 ROS2 Parameters - What Has Changed? 03:41 Declare Your Parameters (Python/C++) 13:23 Get Parameters From Your Code (Python) 06:54 Get Parameters From Your Code (C++) 05:42 Create a Launch File 19:43 Use ros1_bridge + Migration Guide 8 lectures • 1hr 9min Introduction 00:57 Steps to Migrate a Codebase Using ros1_bridge Preview 04:57 Install and Test ros1_bridge Preview 10:44 Bridge Custom Messages [1/4] - Why + Setup 08:38 Bridge Custom Messages [2/4] - Installation Process 06:18 Bridge Custom Messages [3/4] - Running your App with ROS1 and ROS2 06:56 Bridge Custom Messages [4/4] - Mapping Rules 15:46 Use ros1_bridge with our Number App 15:10 Migration Project ROS1 -> ROS2 9 lectures • 1hr 24min Project Intro - Discover the ROS1 App Preview 10:57 Project Intro - Project Steps 03:18 Step 0 - Port the Code to ROS1 Noetic 05:28 [DONT MISS THAT] Before going further - Download the seed for the ROS2 project 05:37 Step 1 - Migrate Custom Messages and Setup ros1_bridge 18:31 Step 2 - Port Target Publisher Node 15:15 Step 3 - Port Turtle Controller Node 15:46 Step 4 - Create a Launch File 07:57 Project Conclusion + Improvements 01:16 Conclusion 2 lectures • 4min What to do next 02:04 Bonus Lecture 01:28 Instructor Edouard Renard Software engineer and entrepreneur 4.6 Instructor Rating 3,119 Reviews 15,033 Students 11 Courses Hi, I’m Edouard. I am a software engineer, entrepreneur, 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. Show more Show less Udemy Business Teach on Udemy Get the app About us Contact us Careers Blog Help and Support Affiliate Impressum Kontakt Terms Privacy policy Cookie settings Sitemap © 2021 Udemy, Inc. window.handleCSSToggleButtonClick = function (event) { var target = event.currentTarget; var cssToggleId = target && target.dataset && target.dataset.cssToggleId; var input = cssToggleId && document.getElementById(cssToggleId); if (input) { if (input.dataset.type === 'checkbox') { input.dataset.checked = input.dataset.checked ? '' : 'checked'; } else { input.dataset.checked = input.dataset.allowToggle && input.dataset.checked ? '' : 'checked'; var radios = document.querySelectorAll('[name="' + input.dataset.name + '"]'); for (var i = 0; i (function(){window['__CF$cv$params']={r:'677ed7078975069a',m:'0eb33b61695765e9f6144eb91904797c3528b469-1627818534-1800-ASO3UGInG7sSB13PYdvBn43QA3g4/QXxgshHQ5II0/XjhA/mecK6EclzdcwbTj3QHgyAVqaSL1rSlMIHRbRwYaKOVvqEMfksAFShBTinK1TB0EWEYOk0HKaNDbgA3JY+W4O4Qq156/wTvtLZoxA/wo/rTSz75TgTWqQS+5mNmz6f54B/jXg6nYjJ5LtVr7hGs7OXxCmFrxN/CSoKMU9EE7s=',s:[0x9cacd6fdb8,0x2b7910be9f],}})();
  5. Migrate a ROS1 project to ROS2 Practice with a complete migration project Requirements You have a fair understanding in ROS1 and can write simple ROS1 programs Ubuntu 20.04 installed on your computer (dual boot or virtual machine) + you know how to use basic commands in a terminal Programming basics in Python and/or C++ Some basics in Object Oriented Programming (OOP) are welcome, although not 100% mandatory Description At the end of this course - starting from your ROS1 knowledge - you will be able to create complete ROS2 applications, and migrate a ROS1 code base in ROS2. !!! IMPORTANT !!! If you’re a complete beginner and have no ROS1 knowledge at all, please don’t take this course. You must know how to work with core concepts (nodes, services, parameters, launch files) to understand the course. Please read the entire description to understand what to expect from this course :) → Why this course? Well, if you already know ROS1, you might want to start learning ROS2, but not from scratch. Or if you have to work with a ROS1 project, you might be looking into a way to port it to ROS2. I myself was a ROS1 developer before learning ROS2. What I was looking for was simply some documentation of how I could quickly get up to speed with ROS2, as I already knew ROS1. I didn’t find any good resources, so I had to go through all of the beginner documentation for ROS2. After doing all that, I’m now using ROS2 and I can see the differences. In this course I won’t start from the very beginning of each ROS concept, since you already know them. I’ll just focus on the most important points that will allow you to write ROS2 applications in no time , thanks to your pre-existing ROS1 knowledge. And I understand the need to know what to do with an existing ROS1 project, now that ROS2 is starting to get bigger and more stable. So, again, what I’ll teach you is what I personally do with my own projects. I don’t “invent” a method, I create it from real practical needs I have and other people have. → Structure of the course: what can you get from the course. This course is divided into 2 main parts. 1. First, you’re going to learn how to write ROS2 programs, using your ROS1 experience. We’ll start from an existing ROS1 application, and step by step, we’ll go through every core concept and see how to translate the app in ROS2 . Note that we won’t dive into advanced functionalities, we’ll stick to the ROS2 core functionalities. 2. Then, it’s migration time! If you already have some basics in ROS2, you might go quickly with the first part, and then focus on this migration part. I will explain to you: When to switch to ROS2. Which ROS1 and ROS2 distribution to use now and in the near future. I will give you a step-by-step process to migrate your ROS1 code base in ROS2 . Also you’ll see how to run a ROS1 application along with a ROS2 application, communicating between them thanks to the ros1_bridge package. And finally: a complete project for you to practice on migrating a code base and writing ROS2 code. I’ll give you a project I made with Turtlesim in ROS1, and you’ll migrate it to ROS2. → What if you already know ROS1 and some ROS2 basics? Well, you can still benefit from the course. You can skim through the first part (as a refresher) and then go to the second part, which can be seen as a complete mini-course by itself. This second part + the final project will give you the answers you need to start working with both ROS1 and ROS2, and also to migrate your own code base. → How do I teach? My method is quite simple: Step by step Going to the point Practice over theory, though a little bit of theory doesn’t hurt when combined with practice My experience with Robot Operating System is very practical . I actually used it to build a robotic arm that is now on the market. So I had no other choice than being practical and going to the point. And that’s the way I want to teach you. This course is not for you if: You don’t have any knowledge in ROS1 You’re already an expert in both ROS1 and ROS2. You’re just getting started with programming and Linux. Who this course is for: Students, Engineers, Researchers, Teachers, Developers, Hobbyists. ROS1 developers who want to learn ROS2, not from scratch, but by comparing ROS2 with ROS1 ROS1/ROS2 developers who want to migrate a ROS1 codebase into ROS2 ROS developers who want to be able to work with both ROS1 and ROS2. Show more Show less Course content 7 sections • 50 lectures • 6h 42m total length Expand all sections Introduction 4 lectures • 12min Welcome! Preview 03:19 When to Switch to ROS2? Preview 05:57 How to get the most out of this course 01:14 Setup for the course 01:36 Install ROS2 and Discover the Main Differences with ROS1 4 lectures • 20min Introduction 00:19 Install ROS2 Foxy (Ubuntu 20.04) and Setup Your Environment 05:50 Start a ROS2 Node and Get Familiar with ROS2 Tools Preview 07:00 ROS1 vs ROS2: First Differences (quick overview) 07:09 Re-write a ROS1 Application in ROS2 (PART A) 12 lectures • 1hr 33min Introduction 00:35 Install ROS1 Noetic to Test the ROS1 App 06:25 The ROS1 App We'll Use 12:09 Install colcon 03:08 Create a ROS2 Workspace 04:04 Create a Package (Python) 07:03 Create a Package (C++) 03:10 Create a Node (Python) 15:27 Create a Node (Python) with OOP Preview 10:11 Create a Node (C++) 13:58 Create a Node (C++) with OOP 08:14 Template for Your OOP Nodes 08:53 Re-write a ROS1 Application in ROS2 (PART B) 11 lectures • 2hr Write a Topic Publisher/Subscriber (Python) Preview 16:20 Write a Topic Publisher/Subscriber (C++) 14:30 Create Custom Interfaces (Msg/Srv) 12:50 Write a Service (Python) 10:03 Write a Service (C++) 12:04 Remappings in ROS2 04:49 ROS2 Parameters - What Has Changed? 03:41 Declare Your Parameters (Python/C++) 13:23 Get Parameters From Your Code (Python) 06:54 Get Parameters From Your Code (C++) 05:42 Create a Launch File 19:43 Use ros1_bridge + Migration Guide 8 lectures • 1hr 9min Introduction 00:57 Steps to Migrate a Codebase Using ros1_bridge Preview 04:57 Install and Test ros1_bridge Preview 10:44 Bridge Custom Messages [1/4] - Why + Setup 08:38 Bridge Custom Messages [2/4] - Installation Process 06:18 Bridge Custom Messages [3/4] - Running your App with ROS1 and ROS2 06:56 Bridge Custom Messages [4/4] - Mapping Rules 15:46 Use ros1_bridge with our Number App 15:10 Migration Project ROS1 -> ROS2 9 lectures • 1hr 24min Project Intro - Discover the ROS1 App Preview 10:57 Project Intro - Project Steps 03:18 Step 0 - Port the Code to ROS1 Noetic 05:28 [DONT MISS THAT] Before going further - Download the seed for the ROS2 project 05:37 Step 1 - Migrate Custom Messages and Setup ros1_bridge 18:31 Step 2 - Port Target Publisher Node 15:15 Step 3 - Port Turtle Controller Node 15:46 Step 4 - Create a Launch File 07:57 Project Conclusion + Improvements 01:16 Conclusion 2 lectures • 4min What to do next 02:04 Bonus Lecture 01:28 Instructor Edouard Renard Software engineer and entrepreneur 4.6 Instructor Rating 3,119 Reviews 15,033 Students 11 Courses Hi, I’m Edouard. I am a software engineer, entrepreneur, 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. Show more Show less Udemy Business Teach on Udemy Get the app About us Contact us Careers Blog Help and Support Affiliate Impressum Kontakt Terms Privacy policy Cookie settings Sitemap © 2021 Udemy, Inc. window.handleCSSToggleButtonClick = function (event) { var target = event.currentTarget; var cssToggleId = target && target.dataset && target.dataset.cssToggleId; var input = cssToggleId && document.getElementById(cssToggleId); if (input) { if (input.dataset.type === 'checkbox') { input.dataset.checked = input.dataset.checked ? '' : 'checked'; } else { input.dataset.checked = input.dataset.allowToggle && input.dataset.checked ? '' : 'checked'; var radios = document.querySelectorAll('[name="' + input.dataset.name + '"]'); for (var i = 0; i (function(){window['__CF$cv$params']={r:'677ed7078975069a',m:'0eb33b61695765e9f6144eb91904797c3528b469-1627818534-1800-ASO3UGInG7sSB13PYdvBn43QA3g4/QXxgshHQ5II0/XjhA/mecK6EclzdcwbTj3QHgyAVqaSL1rSlMIHRbRwYaKOVvqEMfksAFShBTinK1TB0EWEYOk0HKaNDbgA3JY+W4O4Qq156/wTvtLZoxA/wo/rTSz75TgTWqQS+5mNmz6f54B/jXg6nYjJ5LtVr7hGs7OXxCmFrxN/CSoKMU9EE7s=',s:[0x9cacd6fdb8,0x2b7910be9f],}})();
  6. Practice with a complete migration project Requirements You have a fair understanding in ROS1 and can write simple ROS1 programs Ubuntu 20.04 installed on your computer (dual boot or virtual machine) + you know how to use basic commands in a terminal Programming basics in Python and/or C++ Some basics in Object Oriented Programming (OOP) are welcome, although not 100% mandatory Description At the end of this course - starting from your ROS1 knowledge - you will be able to create complete ROS2 applications, and migrate a ROS1 code base in ROS2. !!! IMPORTANT !!! If you’re a complete beginner and have no ROS1 knowledge at all, please don’t take this course. You must know how to work with core concepts (nodes, services, parameters, launch files) to understand the course. Please read the entire description to understand what to expect from this course :) → Why this course? Well, if you already know ROS1, you might want to start learning ROS2, but not from scratch. Or if you have to work with a ROS1 project, you might be looking into a way to port it to ROS2. I myself was a ROS1 developer before learning ROS2. What I was looking for was simply some documentation of how I could quickly get up to speed with ROS2, as I already knew ROS1. I didn’t find any good resources, so I had to go through all of the beginner documentation for ROS2. After doing all that, I’m now using ROS2 and I can see the differences. In this course I won’t start from the very beginning of each ROS concept, since you already know them. I’ll just focus on the most important points that will allow you to write ROS2 applications in no time , thanks to your pre-existing ROS1 knowledge. And I understand the need to know what to do with an existing ROS1 project, now that ROS2 is starting to get bigger and more stable. So, again, what I’ll teach you is what I personally do with my own projects. I don’t “invent” a method, I create it from real practical needs I have and other people have. → Structure of the course: what can you get from the course. This course is divided into 2 main parts. 1. First, you’re going to learn how to write ROS2 programs, using your ROS1 experience. We’ll start from an existing ROS1 application, and step by step, we’ll go through every core concept and see how to translate the app in ROS2 . Note that we won’t dive into advanced functionalities, we’ll stick to the ROS2 core functionalities. 2. Then, it’s migration time! If you already have some basics in ROS2, you might go quickly with the first part, and then focus on this migration part. I will explain to you: When to switch to ROS2. Which ROS1 and ROS2 distribution to use now and in the near future. I will give you a step-by-step process to migrate your ROS1 code base in ROS2 . Also you’ll see how to run a ROS1 application along with a ROS2 application, communicating between them thanks to the ros1_bridge package. And finally: a complete project for you to practice on migrating a code base and writing ROS2 code. I’ll give you a project I made with Turtlesim in ROS1, and you’ll migrate it to ROS2. → What if you already know ROS1 and some ROS2 basics? Well, you can still benefit from the course. You can skim through the first part (as a refresher) and then go to the second part, which can be seen as a complete mini-course by itself. This second part + the final project will give you the answers you need to start working with both ROS1 and ROS2, and also to migrate your own code base. → How do I teach? My method is quite simple: Step by step Going to the point Practice over theory, though a little bit of theory doesn’t hurt when combined with practice My experience with Robot Operating System is very practical . I actually used it to build a robotic arm that is now on the market. So I had no other choice than being practical and going to the point. And that’s the way I want to teach you. This course is not for you if: You don’t have any knowledge in ROS1 You’re already an expert in both ROS1 and ROS2. You’re just getting started with programming and Linux. Who this course is for: Students, Engineers, Researchers, Teachers, Developers, Hobbyists. ROS1 developers who want to learn ROS2, not from scratch, but by comparing ROS2 with ROS1 ROS1/ROS2 developers who want to migrate a ROS1 codebase into ROS2 ROS developers who want to be able to work with both ROS1 and ROS2. Show more Show less Course content 7 sections • 50 lectures • 6h 42m total length Expand all sections Introduction 4 lectures • 12min Welcome! Preview 03:19 When to Switch to ROS2? Preview 05:57 How to get the most out of this course 01:14 Setup for the course 01:36 Install ROS2 and Discover the Main Differences with ROS1 4 lectures • 20min Introduction 00:19 Install ROS2 Foxy (Ubuntu 20.04) and Setup Your Environment 05:50 Start a ROS2 Node and Get Familiar with ROS2 Tools Preview 07:00 ROS1 vs ROS2: First Differences (quick overview) 07:09 Re-write a ROS1 Application in ROS2 (PART A) 12 lectures • 1hr 33min Introduction 00:35 Install ROS1 Noetic to Test the ROS1 App 06:25 The ROS1 App We'll Use 12:09 Install colcon 03:08 Create a ROS2 Workspace 04:04 Create a Package (Python) 07:03 Create a Package (C++) 03:10 Create a Node (Python) 15:27 Create a Node (Python) with OOP Preview 10:11 Create a Node (C++) 13:58 Create a Node (C++) with OOP 08:14 Template for Your OOP Nodes 08:53 Re-write a ROS1 Application in ROS2 (PART B) 11 lectures • 2hr Write a Topic Publisher/Subscriber (Python) Preview 16:20 Write a Topic Publisher/Subscriber (C++) 14:30 Create Custom Interfaces (Msg/Srv) 12:50 Write a Service (Python) 10:03 Write a Service (C++) 12:04 Remappings in ROS2 04:49 ROS2 Parameters - What Has Changed? 03:41 Declare Your Parameters (Python/C++) 13:23 Get Parameters From Your Code (Python) 06:54 Get Parameters From Your Code (C++) 05:42 Create a Launch File 19:43 Use ros1_bridge + Migration Guide 8 lectures • 1hr 9min Introduction 00:57 Steps to Migrate a Codebase Using ros1_bridge Preview 04:57 Install and Test ros1_bridge Preview 10:44 Bridge Custom Messages [1/4] - Why + Setup 08:38 Bridge Custom Messages [2/4] - Installation Process 06:18 Bridge Custom Messages [3/4] - Running your App with ROS1 and ROS2 06:56 Bridge Custom Messages [4/4] - Mapping Rules 15:46 Use ros1_bridge with our Number App 15:10 Migration Project ROS1 -> ROS2 9 lectures • 1hr 24min Project Intro - Discover the ROS1 App Preview 10:57 Project Intro - Project Steps 03:18 Step 0 - Port the Code to ROS1 Noetic 05:28 [DONT MISS THAT] Before going further - Download the seed for the ROS2 project 05:37 Step 1 - Migrate Custom Messages and Setup ros1_bridge 18:31 Step 2 - Port Target Publisher Node 15:15 Step 3 - Port Turtle Controller Node 15:46 Step 4 - Create a Launch File 07:57 Project Conclusion + Improvements 01:16 Conclusion 2 lectures • 4min What to do next 02:04 Bonus Lecture 01:28 Instructor Edouard Renard Software engineer and entrepreneur 4.6 Instructor Rating 3,119 Reviews 15,033 Students 11 Courses Hi, I’m Edouard. I am a software engineer, entrepreneur, 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. Show more Show less Udemy Business Teach on Udemy Get the app About us Contact us Careers Blog Help and Support Affiliate Impressum Kontakt Terms Privacy policy Cookie settings Sitemap © 2021 Udemy, Inc. window.handleCSSToggleButtonClick = function (event) { var target = event.currentTarget; var cssToggleId = target && target.dataset && target.dataset.cssToggleId; var input = cssToggleId && document.getElementById(cssToggleId); if (input) { if (input.dataset.type === 'checkbox') { input.dataset.checked = input.dataset.checked ? '' : 'checked'; } else { input.dataset.checked = input.dataset.allowToggle && input.dataset.checked ? '' : 'checked'; var radios = document.querySelectorAll('[name="' + input.dataset.name + '"]'); for (var i = 0; i (function(){window['__CF$cv$params']={r:'677ed7078975069a',m:'0eb33b61695765e9f6144eb91904797c3528b469-1627818534-1800-ASO3UGInG7sSB13PYdvBn43QA3g4/QXxgshHQ5II0/XjhA/mecK6EclzdcwbTj3QHgyAVqaSL1rSlMIHRbRwYaKOVvqEMfksAFShBTinK1TB0EWEYOk0HKaNDbgA3JY+W4O4Qq156/wTvtLZoxA/wo/rTSz75TgTWqQS+5mNmz6f54B/jXg6nYjJ5LtVr7hGs7OXxCmFrxN/CSoKMU9EE7s=',s:[0x9cacd6fdb8,0x2b7910be9f],}})();