We may earn an affiliate commission when you visit our partners.
Course image
Edouard Renard

(Updated with ROS Noetic - This course is now valid for ROS Kinetic, ROS Melodic, and ROS Noetic)

Learning ROS is hard, and you know it. But why should it be that way?

There is a lack of structured resources for beginners. You can find some explanations and programming tutorials online about Robot Operating System, but they won’t really tell you which path to follow when you begin, where to go, what to focus on, etc.

That’s why I’ve created this course, that I wish I had when I begun. So you can learn ROS much faster than I did.

Read more

(Updated with ROS Noetic - This course is now valid for ROS Kinetic, ROS Melodic, and ROS Noetic)

Learning ROS is hard, and you know it. But why should it be that way?

There is a lack of structured resources for beginners. You can find some explanations and programming tutorials online about Robot Operating System, but they won’t really tell you which path to follow when you begin, where to go, what to focus on, etc.

That’s why I’ve created this course, that I wish I had when I begun. So you can learn ROS much faster than I did.

The goal of this course is to remove the big learning curve that you face when you start to learn ROS by yourself. I will show you, step by step, what you need to know to get started and master ROS basics.

This course is:

  • Structured in a way that is easy to follow for a beginner

  • Going through all ROS core concepts that you need, step by step

  • Going to the point. No useless and over-complicated stuff that you won’t use anyway.

  • Full of practice and challenges to make you progress faster

Now, why should you choose my course?

In the past I have developed a complete ROS software for an entire 6 axis robotic arm. I’m telling you that because by developing this robot, I learned (the hard way) what I really needed to know to build things that actually work.

My experience with ROS is not only about university work or a weekend hobby: I actually co-founded a business with a robot powered by ROS. By doing so, I had to focus on going to the point, finding what is useful, and what is not.

So today, with the practical vision that I’ve developed, I know exactly what you need to learn at the beginning if you want to get serious about building robotic applications.

What is this course about?

This course will guide you, step by step, through all the ROS core functionalities. We’ll focus on ROS basics, communication tools, and also on how to build a scalable application with Robot Operating System.

For each section, I will explain one concept in a way that is easy to understand, and then you will practice with me by writing, building, and running some code. I will show you what you need to pay attention to, what you need to focus on, and how to avoid common mistakes.

And, more importantly, I will give you some activities and challenges to make you practice on the concepts that you’ve just seen.

Note that all the code written in this course will be both in Python and C++, so you can decide to learn ROS with those 2 languages, or only one of them.

So.. Start your learning today and build awesome robotic applications with ROS .

After installing ROS on a Ubuntu OS, you will learn the following ROS key concepts :

  • Nodes

  • Topics

  • Services

  • Msg and Srv definitions

  • Parameters

  • Launch Files

  • And much more.

By mastering those concepts, you will be 100% ready to start any other robotic application and build complete software from scratch using Robot Operating System.

You will also learn how to :

  • Debug your program

  • Use command-line tools for each key concept

  • Build your application

  • Correctly set up and manage your project structure

And as I want to make you develop great (not just good, because “good” is not good enough) and scalable robotic applications, I will share with you the best practices that I’ve learned from my own experience.

UPDATE:

Note: this course targets the first version of ROS, or "ROS1". This is not a ROS2 course.

- Should you learn ROS1 or ROS2?

Well, ROS2 is the future of ROS, that's for sure. And as of today, ROS2 is stable enough, with most of the stacks and plugins ready to be used. So, as a general advice, I now recommend to start with ROS2 if you want to learn ROS.

However, learning ROS1 will allow you to work on any ROS legacy project (there are a lot), and this can be a good skillset to have for a job search. Another argument is that learning both ROS2 and ROS1 will give you a better idea of the global picture.

Finally, once you have the basics with ROS1 and a few projects under your belt, switching to ROS2 actually won't be that hard. Most of the concepts are identical for the 2 versions.

The best option would be to learn So you can work with any existing ROS project, and also work with the new framework.

All in all, don't hesitate too much: the best thing you can do is to start learning ROS today, whether it's ROS1 and ROS2.

Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Learning objectives

  • Master ros basics
  • Create, build, run, and debug your ros program
  • Master ros core functionalities
  • Learn ros best practices to make your application readable and scalable
  • Create reusable code for any robot powered by ros
  • Write ros code with both python and c++
  • Learn by doing, not just watching

Syllabus

Introduction
Welcome !
What is ROS, When to use it, and Why ?
How to get the most out of this course
Read more
Install ROS and Setup Your Environment
Intro
[UPDATE] Quick note on versions - please read
Which ROS Version to Use ? Kinetic, Melodic, Noetic ? What about ROS2?
Install Ubuntu 20.04 on a Virtual Machine
Install ROS Noetic on Ubuntu 20.04
Launch Your First ROS Master
Section Conclusion
Run Your First ROS Program
Create a Catkin Workspace
Additional Note about Setting Up your ROS Environment
Create a ROS Package
What is a Node ?
Your First Python Node
Your First C++ Node
Debug Your Nodes With Command Line Tools
Visualize Your ROS Graph With rqt_graph
Experiment on Nodes With Turtlesim
Communicate With ROS Topics
What is a Topic ?
Create a Python Publisher
Create a Python Subscriber
Create a C++ Publisher
Create a C++ Subscriber
Use Anonymous Nodes to Launch Multiple Publishers/Subscribers
Debug Topics With Command Line Tools
Visualize Topics With rqt_graph
Experiment on Topics With Turtlesim
Topic Activity
Topic Activity - Solution
Communicate With ROS Services
What is a Service ?
Create a Python Service Server
Create a Python Service Client
Create a C++ Service Server & Client
Debug Services With Command Line Tools
Experiment on Services With Turtlesim
Service Activity
Service Activity - Solution
Customize Your Application With Msg and Srv Files
What are Msg and Srv Definitions ?
Create and Build Your Own Custom Msg
Use Your Custom Msg in Your Code
Create Your Own Custom Srv
Debug Msg and Srv With Command Line Tools
Msg & Srv Activity
Msg & Srv Activity - Solution
Make Your Application Scalable With ROS Params and Launch Files
What is a ROS Parameter ?
Manipulate Parameters With Command Line Tools
Handle Parameters With Python
Handle Parameters With C++
What is a Launch File ?
Create a Launch File to Start all Your Parameters and Nodes
Extra
Replay a Topic With ROS Bags
Use OOP With ROS - Python
Use OOP With ROS - C++
Work With Multiple Catkin Workspaces
Conclusion
What You've Learned
What to Do Next ?
Useful Resources
Bonus Lecture

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops robotics system design skills and expertise, which are core skills for robotics engineers
Taught by Edouard Renard, who is recognized for their work in robotics
Uses widely adopted software and tools, including ROS, Python, and C++
Emphasizes ROS core functionalities, enabling stronger foundations
Covers ROS parameters and launch files, which are essential for building scalable applications
Provides ample opportunities for practice, reinforcement learning, and experimentation

Save this course

Save ROS For Beginners (ROS Noetic, Melodic, Kinetic) to your list so you can find it easily later:
Save

Reviews summary

Ros for beginners in noetic

According to students, ROS For Beginners (ROS Noetic, Melodic, Kinetic) is an introductory course to the Robot Operating System (ROS). Learners say that the course is generally well-structured and the instructors are engaging. However, the automatically generated subtitles are difficult to understand.
Course is well-structured.
Instructors are engaging.
Automatically generated subtitles are difficult to understand.
"The automatically generated subtitles are very weird."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in ROS For Beginners (ROS Noetic, Melodic, Kinetic) with these activities:
Understand Nodes
Reinforce the theory you have learned outside of class or in other courses
Browse courses on Nodes
Show steps
  • Read about Nodes in ROS
  • Code examples of how to use Nodes
  • Debug a simple Node
ROS Resources Compilation
Gather and organize helpful resources, such as tutorials, documentation, and community forums, to support your learning journey throughout the course.
Show steps
  • Create a list of useful ROS websites, blogs, and forums.
  • Bookmark important ROS documentation and tutorials.
Review ROS concepts
Refreshes ROS basics for application in the course.
Browse courses on ROS
Show steps
  • Review the ROS documentation for ROS core concepts.
  • Review online tutorials on ROS for practical examples.
  • Practice writing ROS code examples.
Seven other activities
Expand to see all activities and additional details
Show all ten activities
Follow ROS tutorials
Provides additional guidance and examples for practical application of ROS.
Browse courses on ROS
Show steps
  • Follow ROS tutorials on the official ROS website or other online resources.
  • Join online communities or forums for ROS users to ask questions and learn from others.
  • Attend ROS workshops or online webinars.
ROS Coding Drills
Complete a series of coding exercises to reinforce your understanding of ROS concepts and improve your programming skills.
Show steps
  • Solve coding challenges from online platforms like HackerRank or LeetCode.
  • Participate in a ROS coding competition or hackathon.
  • Work on a personal ROS project to apply your skills.
ROS Study Group
Join a study group with other students to discuss ROS concepts, work on projects together, and support each other's learning.
Show steps
  • Find or create a study group with peers who are also enrolled in the course.
  • Meet regularly to discuss course materials, share ideas, and work on assignments together.
Create a ROS tutorial or presentation
Deepens understanding by organizing and presenting information in a clear and engaging manner.
Browse courses on Content Creation
Show steps
  • Choose a specific ROS topic or concept to focus on.
  • Research and gather information from reliable sources.
  • Create a tutorial or presentation using visuals, examples, and clear explanations.
  • Share the tutorial or presentation with others for feedback and dissemination.
ROS Advanced Tutorials
Explore advanced ROS topics, such as SLAM, navigation, and perception, through guided tutorials to enhance your knowledge and skills.
Show steps
  • Follow online tutorials on specific ROS advanced topics.
  • Attend webinars or workshops on ROS advanced concepts.
  • Read research papers on ROS-related topics.
Mentor junior ROS learners
Solidifies understanding by explaining concepts to others and fostering their learning.
Browse courses on Teaching
Show steps
  • Volunteer as a mentor for beginner ROS users.
  • Answer questions and provide guidance on ROS forums or online communities.
  • Create tutorial materials or resources for others to learn ROS.
Contribute to ROS open-source projects
Enhances understanding by engaging with the ROS community and contributing to real-world projects.
Browse courses on Community Involvement
Show steps
  • Identify open-source ROS projects that align with your interests and skills.
  • Read the project documentation and codebase.
  • Contribute code, documentation, or bug fixes to the project.
  • Collaborate with other contributors and maintainers.

Career center

Learners who complete ROS For Beginners (ROS Noetic, Melodic, Kinetic) will develop knowledge and skills that may be useful to these careers:
Robotics Engineer
Robotics engineers design, build, operate, and maintain robots. Course participants who may be interested in a career as a robotics engineer will learn the fundamentals of ROS, the Robot Operating System. ROS is a widely-used framework that provides users with the tools they need to build complex robotic systems, including perception, planning, control, and navigation. By mastering ROS through this course, aspiring robotics engineers will be prepared to enter or advance their careers in this field.
Software Engineer
Software engineers design, develop, test, and maintain software systems. Course participants who may be interested in a career as a software engineer will learn the fundamentals of ROS, the Robot Operating System. ROS is a widely-used framework that provides users with the tools they need to build complex robotic systems, including perception, planning, control, and navigation. By mastering ROS through this course, aspiring software engineers will be prepared to enter or advance their careers in this field, particularly in the robotics subfield.
Systems Engineer
Systems engineers design, develop, integrate, and maintain complex systems. Course participants who may be interested in a career as a systems engineer will learn the fundamentals of ROS, the Robot Operating System. ROS is a widely-used framework that provides users with the tools they need to build complex robotic systems, including perception, planning, control, and navigation. By mastering ROS through this course, aspiring systems engineers will be prepared to enter or advance their careers in this field.
Environmental Engineer
Environmental engineers design, develop, test, and maintain environmental systems. Course participants who may be interested in a career as an environmental engineer in robotics will learn the fundamentals of ROS, the Robot Operating System. ROS is a widely-used framework that provides users with the tools they need to build complex robotic systems, including perception, planning, control, and navigation. By mastering ROS through this course, aspiring environmental engineers will be prepared to enter or advance their careers in this field.
Petroleum Engineer
Petroleum engineers design, develop, test, and maintain petroleum systems. Course participants who may be interested in a career as a petroleum engineer in robotics will learn the fundamentals of ROS, the Robot Operating System. ROS is a widely-used framework that provides users with the tools they need to build complex robotic systems, including perception, planning, control, and navigation. By mastering ROS through this course, aspiring petroleum engineers will be prepared to enter or advance their careers in this field.
Biomedical Engineer
Biomedical engineers design, develop, test, and maintain biomedical systems. Course participants who may be interested in a career as a biomedical engineer in robotics will learn the fundamentals of ROS, the Robot Operating System. ROS is a widely-used framework that provides users with the tools they need to build complex robotic systems, including perception, planning, control, and navigation. By mastering ROS through this course, aspiring biomedical engineers will be prepared to enter or advance their careers in this field.
Civil Engineer
Civil engineers design, develop, test, and maintain civil systems. Course participants who may be interested in a career as a civil engineer in robotics will learn the fundamentals of ROS, the Robot Operating System. ROS is a widely-used framework that provides users with the tools they need to build complex robotic systems, including perception, planning, control, and navigation. By mastering ROS through this course, aspiring civil engineers will be prepared to enter or advance their careers in this field.
Nuclear Engineer
Nuclear engineers design, develop, test, and maintain nuclear systems. Course participants who may be interested in a career as a nuclear engineer in robotics will learn the fundamentals of ROS, the Robot Operating System. ROS is a widely-used framework that provides users with the tools they need to build complex robotic systems, including perception, planning, control, and navigation. By mastering ROS through this course, aspiring nuclear engineers will be prepared to enter or advance their careers in this field.
Aerospace Engineer
Aerospace engineers design, develop, test, and maintain aerospace systems. Course participants who may be interested in a career as an aerospace engineer in robotics will learn the fundamentals of ROS, the Robot Operating System. ROS is a widely-used framework that provides users with the tools they need to build complex robotic systems, including perception, planning, control, and navigation. By mastering ROS through this course, aspiring aerospace engineers will be prepared to enter or advance their careers in this field.
Electrical Engineer
Electrical engineers design, develop, test, and maintain electrical systems. Course participants who may be interested in a career as an electrical engineer in robotics will learn the fundamentals of ROS, the Robot Operating System. ROS is a widely-used framework that provides users with the tools they need to build complex robotic systems, including perception, planning, control, and navigation. By mastering ROS through this course, aspiring electrical engineers will be prepared to enter or advance their careers in this field.
Industrial Engineer
Industrial engineers design, develop, test, and maintain industrial systems. Course participants who may be interested in a career as an industrial engineer in robotics will learn the fundamentals of ROS, the Robot Operating System. ROS is a widely-used framework that provides users with the tools they need to build complex robotic systems, including perception, planning, control, and navigation. By mastering ROS through this course, aspiring industrial engineers will be prepared to enter or advance their careers in this field.
Computer Engineer
Computer engineers design, develop, test, and maintain computer systems. Course participants who may be interested in a career as a computer engineer in robotics will learn the fundamentals of ROS, the Robot Operating System. ROS is a widely-used framework that provides users with the tools they need to build complex robotic systems, including perception, planning, control, and navigation. By mastering ROS through this course, aspiring computer engineers will be prepared to enter or advance their careers in this field.
Materials Engineer
Materials engineers design, develop, test, and maintain materials systems. Course participants who may be interested in a career as a materials engineer in robotics will learn the fundamentals of ROS, the Robot Operating System. ROS is a widely-used framework that provides users with the tools they need to build complex robotic systems, including perception, planning, control, and navigation. By mastering ROS through this course, aspiring materials engineers will be prepared to enter or advance their careers in this field.
Mechanical Engineer
Mechanical engineers design, develop, test, and maintain mechanical systems. Course participants who may be interested in a career as a mechanical engineer in robotics will learn the fundamentals of ROS, the Robot Operating System. ROS is a widely-used framework that provides users with the tools they need to build complex robotic systems, including perception, planning, control, and navigation. By mastering ROS through this course, aspiring mechanical engineers will be prepared to enter or advance their careers in this field.
Chemical Engineer
Chemical engineers design, develop, test, and maintain chemical systems. Course participants who may be interested in a career as a chemical engineer in robotics will learn the fundamentals of ROS, the Robot Operating System. ROS is a widely-used framework that provides users with the tools they need to build complex robotic systems, including perception, planning, control, and navigation. By mastering ROS through this course, aspiring chemical engineers will be prepared to enter or advance their careers in this field.

Reading list

We've selected 11 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in ROS For Beginners (ROS Noetic, Melodic, Kinetic).
Provides a comprehensive overview of ROS, covering topics such as robotics programming, navigation, and more. It valuable resource for anyone new to ROS or looking to expand their knowledge.
Comprehensive reference on robot motion planning. It covers all aspects of robot motion planning, from the basics to advanced topics. The book is well-written and valuable resource for anyone who wants to learn more about robot motion planning.
Tutorial on machine learning for robotics. It covers the basics of machine learning and how to use it to build robot applications. The book is well-written and valuable resource for anyone who wants to learn more about machine learning for robotics.
Practical guide to learning ROS. It starts with the basics and gradually builds up to more advanced topics. The book is easy to follow and good resource for beginners.
Guide to programming with ROS. It covers the basics of ROS programming and how to use ROS to build robot applications. The book is well-written and valuable resource for anyone who wants to learn more about ROS programming.
Tutorial on ROS for robotics programming. It covers the basics of ROS and how to use it to build robot applications. The book is well-written and valuable resource for anyone who wants to learn more about ROS robotics programming.
Is an introduction to ROS for people who are new to robotics. It covers the basics of ROS and how to use it to build robot applications.
Classic on probabilistic robotics. It covers the basics of probabilistic robotics and how to use it to build robot applications. The book is well-written and valuable resource for anyone who wants to learn more about probabilistic robotics.
Beginner-friendly introduction to ROS. It covers the basics of ROS, including topics such as nodes, topics, and services. It valuable resource for anyone new to ROS.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to ROS For Beginners (ROS Noetic, Melodic, Kinetic).
Hello (Real) World with ROS – Robot Operating System
Most relevant
Intro Robotics Developer Course - Using ROS in Python
Most relevant
Introduction to Robotic Programming
Most relevant
Robot Framework Test Automation - Level 2
Most relevant
Automated and Connected Driving Challenges
Most relevant
Self-Driving Cars with Duckietown
Most relevant
Robotics Engineering & Applications
Robotic Path Planning and Task Execution
Introducing Robotics: Build a Robot Arm
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser