Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA Amazon AWS CompTIA Security+ AWS Certified Developer - Associate
Graphic Design Photoshop Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Personal Development Mindfulness Meditation Personal Transformation Life Purpose Emotional Intelligence Neuroscience
Web Development JavaScript React CSS Angular PHP WordPress Node.Js Python
Google Flutter Android Development iOS Development Swift React Native Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Google Analytics
SQL Microsoft Power BI Tableau Business Analysis Business Intelligence MySQL Data Modeling Data Analysis Big Data
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Online Business Business Plan Startup Blogging Freelancing Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
30-Day Money-Back Guarantee
IT & Software Other IT & Software Robotics

ROS for Beginners: Basics, Motion, and OpenCV

Become an expert and learn robotics with Robot Operating System (ROS) in little time and don't be lost in broad docs
Bestseller
Rating: 4.3 out of 54.3 (2,511 ratings)
10,495 students
Created by Anis Koubaa
Last updated 12/2020
English
English [Auto], Italian [Auto]
30-Day Money-Back Guarantee

What you'll learn

  • Understand ROS Ecosystem (topics, nodes, messages, services, actionlib)
  • Develop simple applications to control robot motion
  • Understand how a position and orientation are represented in ROS
  • Recognize how to develop a C++/Python ROS project
  • Develop simple computer vision programs with ROS and OpenCV
Curated for the Udemy for Business collection

Requirements

  • Knowledge in C++ and/or Python Programming language.
  • Want to learn ROS
  • Eager to learn robotics

Description

News and Updates.

I course have been upgraded to the latest version of ROS, ROS Noetic, with several new videos explaining the fundamental concepts of ROS with hands-on illustrations. It will also give you the required skills to later learn ROS2 and navigation stack, as presented in my two other courses.

  • Oct 8, 2020: Adding a section on Turtlebot3 simulator and how to install it easily

  • Oct 8, 2020: I added slides for laser scanners and also an assignment using a Turtlebot 3 robot with laser scanners on ROS Noetics

  • Oct 2, 2020: update of ROS motion section with brand new tutorials and illustrations

  • Sep 17, 2020: update several videos of ROS custom message and ROS services.

  • Sep 11, 2020: Adding brand new lecture with high-quality videos and replace old videos on a detailed explanation of the ROS Computation Graph with a demo using the latest version of ROS Noetic.   

  • Aug 22, 2020: Adding instruction for installation of ROS Noetic along with the code of the course for this distribution.

Why am I  teaching this course?

Typically, new ROS users encounter a lot of difficulties when they start programming with ROS. Although there are so many tutorials, there are a  lot of tips and practical issues that could not be easily found in tutorials and not discussed and left to the developer's luckiness. In general, although there is much documentation for ROS, several are very broad and it takes too long to grasp well the concepts. This is where this course plays a role and provides an added value by providing a focused introduction to the BASICS of ROS. The course does not only presents the basic concepts of ROS but also addresses two important fields in robotics: (1) motion, (2) perception. We will apply the general concepts of ROS in the context of robotic motion and perception. The course will provide you an opportunity to learn about OpenCV, the most powerful computer vision library, that promotes robotic perception. 

My approach is to take you STEP BY STEP through the roadmap of learning ROS so that you learn the concepts in the right order and help you build an experience from one lecture to the other.

This is a course that provides the fundamental concepts and basics of the Robot Operating System (ROS). This course intends to give beginner ROS users with a quick and focused introduction on the basics of ROS, in addition to practical tips that help them manage better their first projects with ROS in C++ and Python. In particular, developing with C++ in ROS requires special care as compared to Python to configure well the compilation and runtime environment. This is presented in a clear manner in this course. 

There are mainly three majors steps in the course:

  1. ROS Basics and Foundation:  which deals with the general ROS concepts that everyone has to know, like ROS topics, Services, Messages, Nodes, ...

  2. Motion in ROS: We apply the concepts learned in Step 1 to make a robot move. We will develop a different trajectory in the context of a nice example simulating a cleaning robot. In particular, we illustrate how to represent the pose (position and orientation) of a robot in ROS, and how to send a motion control message to make the robot move. We clearly demonstrate how to implement a linear motion, a rotational motion, and spiral motion and how all of these be integrated to simulate a cleaning application. This part will you the background you need to understand robot kinematics and how motion is represented in ROS.

  3. Perception in ROS: I will introduce how a robot sees the environment using a camera, how the images are collected in ROS, and how they are processed in OpenCV. 

  4. Arduino: you will also learn how to use Arduino boards and sensors with ROS using the ROSSERIAL Arduino interface. This will allow you to integrate any Arduino sensor and board into your robot and robotics applications.

Based on my experience, these are the most important things any new ROS user has to know to be able to go further with his own robotics project. 

I also provide some hands-on activities that allow the learner to assess his understanding and push him to practice the concepts he learned. 

My experience with ROS

I have been programming with ROS for many years both in academic and industrial projects. I am very passionate to develop a program with ROS. I have also been teaching ROS at the University and providing training programs. I am the leader of the Robotics and Internet-of-Things Lab at Prince Sultan University and also a consultant for Gaitech Robotics. I have developed many ROS packages for robots and drones. I have been leading international scientific activities around ROS, and in particular, I am the editor of three volumes of books with Springer entitled Robot Operating System, The Complete Reference. I gained a lot of experience in what difficulties new users encounter to learn ROS and this contributed to pin right to the point addressing these problems through the different lectures of the course. 


Welcome to the World of ROS. 

Who this course is for:

  • Beginner ROS developers and users
  • Students at Universities learning ROS
  • Anyone interest to know about the basic concepts of ROS
  • Curious about robotics
  • Whoever wants to learn ROS without wasting time

Featured review

Bhushan Hurali
Bhushan Hurali
3 courses
3 reviews
Rating: 4.5 out of 5a month ago
I started learning ROS from this course. Before this, I had never worked on ROS. It was a very good learning from the course. Although I was comfortable using python, through this course, I got to learn a good amount of C++. I feel that, adding some more practical use cases like controlling a robot manipulator using ROS would be a nice touch and gives a better understanding about tele-operating robot by connecting its controller to workstation using ROS.

Course content

17 sections • 151 lectures • 13h 46m total length

  • Preview05:35
  • About the Instructor
    01:18

  • About this section (slides attached to resources)
    00:11
  • Preview01:37
  • Why did I decided to use ROS in my work?
    05:55
  • The Robot Life Cycle
    02:51
  • ROS Impact
    01:30
  • Self-Driving Car Use Case
    02:33
  • ROS Evolution
    01:18
  • ROS Distributions (version) over Time
    02:34
  • ROS Architecture
    01:45
  • ROS Basic Concepts and Demo
    03:46
  • ROS Communication Paradigms (Topics/Services/ActionLib)
    04:32
  • ROS Path Planning and Navigation
    02:22
  • Limitation of ROS
    02:22
  • ROS2
    07:28
  • [OPTIONAL] Some Contributions to ROS
    17:21

  • Install ROS Slides
    00:06
  • Install ROS Noetic on Ubuntu 20.04
    02:06
  • Create your catkin workspace with ROS Noetic
    01:42
  • Clone the right GitHub Repository for the ROS Noetic distribution
    02:17
  • Testing your installation with C++ nodes
    00:58
  • Testing and fixing installation with Python nodes
    01:26
  • [IMPORTANT] BEFORE START WORKING ON THE COURSE
    01:01

  • Note about this section
    00:16
  • [OPTIONAL] ROS Installation Tips
    12:08
  • The Link to the Pre-Installed Virtual Machine
    00:05
  • Install a Ubuntu Virtual Machine on Mac-OS using VM-Fusion
    Preview03:57
  • UPDATE NOTE ABOUT ROS DISTRIBUTION
    00:35
  • Install ROS (Melodic) on Ubuntu (Bionic)
    04:17
  • Which Integrated Development Environment (ID) to use with ROS?
    06:26
  • [UPDATE] Note: My recommendation of editor to use
    00:26

  • Section Note Update
    00:14
  • ROS Workspace and ROS Package (Setting up your ROS projects)
    12:51
  • Wrapping up
    01:28
  • ROS Workspace and ROS Package
    8 questions
  • Note about the next lecture
    00:11
  • [LEGACY] Setup ROS (Kinetic+Melodic) Project of the course using GitHub
    05:41

  • What is a ROS Computation Graph?
    02:41
  • Preview01:15
  • Start the ROS Master Node
    01:40
  • How to run a new node (executable) in ROS?
    01:58
  • What happens when we start a new ROS node?
    01:48
  • Adding a teleop node to make the robot move
    02:12
  • Get the information of a node and the information of a topic
    02:49
  • The content of the motion message /tutle1/cmd_vel
    02:08
  • Understand the structure of a ROS message
    02:48
  • How to show the message structure on ROS command line?
    02:17
  • Publish a message on a topic from a command line
    01:39
  • Visualize the ROS Computation Graph using ros_rqt_graph
    00:42
  • Demo: Starting Turtlesim and checking information about the nodes and topics
    01:40
  • Demo: Showing the content of ROS messages published
    03:57
  • Demo: Understand the pose topic
    01:24
  • Demo: What is the benefit of using ROS?
    00:52
  • Demo: Publishing a message from a command line using rostopic pub
    06:45
  • Demo: rqt_graph
    00:44
  • [Quiz] ROS Computation Graph
    8 questions
  • ROS Filesystem and Ecosystem
    13 questions
  • NOTE
    00:16
  • [OLD] The ROS Master Node (OPTIONAL - KEPT FOR STUDENT NOTES)
    02:53
  • [OLD] ROS Computation Graph: Nodes, Topics (OPTIONAL - KEPT FOR STUDENT NOTES)
    20:55

  • ROS Topics Overview
    04:51
  • Question: what happens if ROS Master crashes?
    01:37
  • Guidelines to Write a Publisher and a Subscriber in ROS
    02:22
  • Overview of the Talker/Listener Application (ROS Hello World Example)
    01:23
  • Write a Publisher Node in Python
    05:48
  • Write a Subscriber Node in Python
    03:50
  • [DEMO] Talker/Listener in Python
    03:49
  • Write a Publisher/Subscriber Node in C++
    11:27
  • [DEMO] Talker/Listener in C++
    08:09
  • Preview07:57
  • Do-It-Yourself: Write your First ROS Program to Control the Motion of a Robot
    4 questions
  • [OLD-OPTIONAL] Write a ROS Publisher and Subscriber in C++
    32:15
  • [OLD-OPTIONAL] Write a ROS Publisher and Subscriber in Python
    10:34

  • Create Custom ROS Messages: Overview
    08:18
  • [Demo] Create a Custom ROS Message: Implementation
    05:05
  • [DEMO] IoTSensor Custom Message Publisher/Subscriber Applications
    08:41

  • Preview02:52
  • Understand ROS Services with Turtlesim
    05:09
  • [DEMO] ROS Services with Turtlesim
    05:14
  • Do-It-Yourself: ROS Service Hands-On Practice
    10 questions
  • AddTwoInts Service Overview
    06:08
  • Create the Service File and Request/Response Messages
    07:02
  • Write ROS Service (Client/Server) in Python
    06:15
  • [DEMO] Write ROS Service (Client/Server) in Python
    07:03
  • [DEMO] Writing a ROS Service (Client/Service) in C++
    07:05
  • Rectangle Aera ROS Service (with video solution)
    10 questions

  • Note about this updated section
    00:32
  • Cleaning Application Overview
    06:55
  • Step 1. Understand Topics and Messages Used in the Application
    05:02
  • Import the Libraries in Python and C++
    01:19
  • The Divide and Conquer Approach
    01:31
  • Move Straight Line (C++/Python)
    08:40
  • [DEMO] Move Straight Line (C++/Python)
    08:03
  • Rotate Motion (C++/Python)
    06:06
  • [Demo] Rotate Motion (C++/Python)
    04:23
  • Go-To-Goal Behavior
    09:56
  • [Demo] Go-To-Goal Behavior
    04:36
  • Set Desired Orientation
    02:15
  • [Demo] Set Desired Orientation
    01:28
  • Spiral Trajectory
    00:47
  • Spiral Trajectory Demo
    02:53
  • Putting All Together: The Cleaning Application
    06:11
  • Running Multiple Nodes with a Launch File
    03:23

Instructor

Anis Koubaa
Professor of Computer Science
Anis Koubaa
  • 4.4 Instructor Rating
  • 3,529 Reviews
  • 12,424 Students
  • 6 Courses

I am Anis Koubaa, a Full Professor in Computer Science at Prince Sultan University and the Director of the Robotics and Internet-of-Things research lab. I am also R&D Director at Gaitech Robotics in China and Senior Researcher in CISTER/INESC TEC and ISEP-IPP, Porto, Portugal. I have been the Chair of the ACM Chapter in Saudi Arabia since 2014. I am also a Senior Fellow of the Higher Education Academy (HEA) in UK.

I received several distinctions and awards including the Rector Research Award in 2010 at Al-Imam Mohamed bin Saud University, and the Rector Teaching Award in 2016 at Prince Sultan University.

I have been teaching Programming courses for more than 16 years in particular Java and Web technologies, and different computer science courses. Programming is my passion for me and I have developed many software and applications. I have been also teaching robotics and developing several program with ROS in both academia and industry. 

I am the Editor of three books on Robot Operating System (ROS) with Springer publisher, which are in the top 25% of most downloaded book in Springer database. 

I have a lot of tutorials and course on the Internet provided on my YouTube Channel. I am very excited to provide my courses on Udemy to students around the world with practical hands-on activities. 

My teaching philosophy is based on Teaching by Demonstration, where I like to explain the concepts by demonstrating them  with real-world illustrations. The students will be mainly Learning by Doing. 

  • Udemy for 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
  • Featured courses
Udemy
© 2021 Udemy, Inc.