ROS for Beginners: Basics/ Motion/ and OpenCV
About Course
Learn the fundamentals of ROS, the Robot Operating System, with this comprehensive beginner’s course. This free course is a best-seller on Udemy, taught by an experienced robotics expert with years of experience in both academic and industrial settings.
This course is designed to provide a focused and practical introduction to ROS basics, covering essential concepts like topics, services, messages, and nodes. You’ll learn to program in both C++ and Python, gaining the knowledge and skills needed to build your first ROS projects.
The course is divided into three key sections:
- ROS Basics and Foundation: Get a solid understanding of the core principles of ROS, including topics, services, messages, and nodes.
- Motion in ROS: Learn how to make robots move, develop different trajectories, and understand the basics of robot kinematics and motion representation.
- Perception in ROS: Explore the world of robotic perception with OpenCV. Discover how robots “see” their environment using cameras, collect image data, and process it using OpenCV.
In addition, you’ll learn how to use Arduino boards and sensors with ROS, allowing you to integrate them into your robotics applications.
This course provides hands-on activities and real-world examples, helping you solidify your knowledge and confidently embark on your robotics journey.
Take advantage of this opportunity to learn from a renowned ROS expert and master the essentials of this powerful robotics platform. This course is completely free, available on Theetay.
The course is available on platforms like Udemy, Udacity, Coursera, MasterClass, NearPeer, and more. This free course is your gateway to a world of robotic possibilities!
What Will You 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
Course Content
Introduction
-
A Message from the Professor
-
What is this course about
05:35 -
About the Instructor
01:18 -
Course Material Download Link
00:00
ROS How did it revolutionize robotics software development
-
Introduction
01: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:10 -
ROS Distributions (version) over Time
02:34 -
ROS Architecture
01:45 -
ROS Basic Concepts and Demo
03:46 -
ROS Communication Paradigms (TopicsServicesActionLib)
04:32 -
ROS Path Planning and Navigation
02:22 -
Limitation of ROS
02:22 -
ROS2
07:28 -
(OPTIONAL) Some Contributions to ROS
17:21
(NEW) Setting your environment with ROS Noetic
-
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
(LEGACY) Installation and Environment Setup
-
(OPTIONAL) ROS Installation Tips
12:08 -
Install a Ubuntu Virtual Machine on Mac-OS using VM-Fusion
03: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
Create a ROS Workspace and a ROS Package
-
Section Note Update
00:14 -
ROS Workspace and ROS Package (Setting up your ROS projects)
12:51 -
Wrapping up
01:28 -
(LEGACY) Setup ROS (Kinetic+Melodic) Project of the course using GitHub
05:41
(NEW) ROS Computation Graph
-
What is a ROS Computation Graph
02:41 -
ROS Computation Graph Life Cycle
01: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:48 -
The content of the motion message tutle1cmd_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:23 -
Demo What is the benefit of using ROS
00:05 -
Demo Publishing a message from a command line using rostopic pub
06:45 -
Demo rqt_graph
00:44 -
(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
-
ROS Topics Overview
04:50 -
Question what happens if ROS Master crashes
01:37 -
Guidelines to Write a Publisher and a Subscriber in ROS
02:22 -
Overview of the TalkerListener Application (ROS Hello World Example)
01:23 -
Write a Publisher Node in Python
05:48 -
Write a Subscriber Node in Python
03:50 -
(DEMO) TalkerListener in Python
03:49 -
Write a PublisherSubscriber Node in C++
11:27 -
(DEMO) TalkerListener in C++
08:09 -
Do-It-Yourself Assignment Explanation
07:56 -
(OLD-OPTIONAL) Write a ROS Publisher and Subscriber in C++
32:15 -
(OLD-OPTIONAL) Write a ROS Publisher and Subscriber in Python
10:34
ROS Messages
-
Create Custom ROS Messages Overview
08:18 -
(Demo) Create a Custom ROS Message Implementation
05:05 -
(DEMO) IoTSensor Custom Message PublisherSubscriber Applications
08:41
ROS Services
-
What is a ROS Service
02:52 -
Understand ROS Services with Turtlesim
05:09 -
(DEMO) ROS Services with Turtlesim
05:13 -
AddTwoInts Service Overview
06:08 -
Create the Service File and RequestResponse Messages
07:02 -
Write ROS Service (ClientServer) in Python
06:15 -
(DEMO) Write ROS Service (ClientServer) in Python
07:03 -
(DEMO) Writing a ROS Service (ClientService) in C++
07:05
(NEW) Motion in ROS (updated with ROS Noetic)
-
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 -
(Demo) Rotate Motion (C++Python)
04:23 -
Go-To-Goal Behavior
09:56 -
(Demo) Go-To-Goal Behavior
04:36 -
Set Desired Orientation
02:01 -
(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
Appendix Motion in ROS (old videos – but still applicable)
-
Cleaning Application Overview
03:22 -
Moving in a Straight Line
24:54 -
Rotate Left and Right
19:18 -
Go to Goal Location
07:40 -
Spiral Control and Clearning Application
09:40 -
Assignment Solution Linear Motion in ROS (Python)
08:11 -
Assignment Solution Rotation Motion in ROS (Python)
04:24 -
Assignment Solution Go-to-Goal Motion in ROS (Python)
07:02 -
Turtlebot 2 Robot Motion
08:50
ROS Tools and Utilities
-
ROS Network Configuration
11:04 -
Launch Files (Part I) Running multiple nodes with roslaunch
06:56 -
Launch Files (Part II) including a launch file and define parameters
08:46
Perception I Computer Vision in ROS with OpenCV
-
OpenCV Overview
04:18 -
Install OpenCV for ROS
02:24 -
OpenCV OpenSave Image Files (Python)
06:10 -
OpenCV Pixels and Image Structure (Python)
08:01 -
OpenCV Image Encoding (Python)
07:18 -
OpenCV Video Streams Input (Python)
04:46 -
OpenCV Drawing Shapes
02:59 -
CvBridge Bridging OpenCV and ROS
07:45 -
Simple and Adaptive Thresholding in OpenCV
09:47 -
Color Filtering in OpenCV (Tennis Ball use case)
11:17 -
Contours Detection and Processing in OpenCV
15:40 -
Tennis Ball Detection using OpenCV
09:44 -
OpenCV (C++) Video InputOutput
04:45 -
OpenCV (C++) Open and Save Images
04:24 -
OpenCV (C++) CvBridge Bridging Images between OpenCV and ROS
11:36
Perception II Laser Range Finders (Laser Scanner)
-
What is a Laser Range Finder
03:36 -
Laser Range Finders Characteristics
04:37 -
Commercial Laser Range Finder Devices
06:58 -
Laser Scanner Devices used in Demonstrations
01:12 -
Connect Asus Live Pro RGBD Camera as a Laser Scanner
16:35 -
Connect Hokuyo URG 4LX Laser Scanner with ROS
11:06 -
Save Laser Scan Messages into a Bag File and Replay Them
06:07 -
Write a ROS Node (Python) as a Subscriber to a Laser Scanner
10:16 -
Write a ROS Node (C++) as a Subscriber to a Laser Scanner
11:11
rosserial Connecting new Hardware (Arduino) with ROS
-
What is rosserial
07:04 -
What is Arduino
05:56 -
Arduino Uno Board
02:18 -
Arduino IDE Overview
05:04 -
Install and Setup Arduino IDE
02:49 -
Range Sensor and Connection Setup
06:37 -
Programming The Ultrasonic Sensor with Arduino
05:35 -
Install rosserial libraries
03:41 -
rosserial Hello World application Arduino ROS Publisher
04:55 -
rosserial Blink application Arduino ROS Subscriber
03:32 -
rosserial using Arduino Ultrasonic Range Sensor
09:42
Earn a certificate
Add this certificate to your resume to demonstrate your skills & increase your chances of getting noticed.