Course Highlights
  • 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
Curriculum

3 Topics
What is this course about?
[IMPORTANT] What is you face errors and need to debug and find solutions?
About the Instructor

15 Topics
About this section (slides attached to resources)
Introduction
Why did I decided to use ROS in my work?
The Robot Life Cycle
ROS Impact
Self-Driving Car Use Case
ROS Evolution
ROS Distributions (version) over Time
ROS Architecture
ROS Basic Concepts and Demo
ROS Communication Paradigms (Topics/Services/ActionLib)
ROS Path Planning and Navigation
Limitation of ROS
ROS2
[OPTIONAL] Some Contributions to ROS

8 Topics
Install ROS Slides
Install ROS Noetic on Ubuntu 20.04
Create your catkin workspace with ROS Noetic
Clone the right GitHub Repository for the ROS Noetic distribution
Testing your installation with C++ nodes
Testing and fixing installation with Python nodes
[UPDATE] Note: My recommendation for the editor to use
[IMPORTANT] BEFORE START WORKING ON THE COURSE

7 Topics
Note about this section
[OPTIONAL] ROS Installation Tips
Install a Ubuntu Virtual Machine on Mac-OS using VM-Fusion
UPDATE NOTE ABOUT ROS DISTRIBUTION
Install ROS (Melodic) on Ubuntu (Bionic)
Which Integrated Development Environment (ID) to use with ROS?
[UPDATE] Note: My recommendation of editor to use

6 Topics
Section Note Update
ROS Workspace and ROS Package (Setting up your ROS projects)
Wrapping up
ROS Workspace and ROS Package
Note about the next lecture
[LEGACY] Setup ROS (Kinetic+Melodic) Project of the course using GitHub

23 Topics
What is a ROS Computation Graph?
ROS Computation Graph Life Cycle
Start the ROS Master Node
How to run a new node (executable) in ROS?
What happens when we start a new ROS node?
Adding a teleop node to make the robot move
Get the information of a node and the information of a topic
The content of the motion message /tutle1/cmd_vel
Understand the structure of a ROS message
How to show the message structure on ROS command line?
Publish a message on a topic from a command line
Visualize the ROS Computation Graph using ros_rqt_graph
Demo: Starting Turtlesim and checking information about the nodes and topics
Demo: Showing the content of ROS messages published
Demo: Understand the pose topic
Demo: What is the benefit of using ROS?
Demo: Publishing a message from a command line using rostopic pub
Demo: rqt_graph
[Quiz] ROS Computation Graph
ROS Filesystem and Ecosystem
NOTE
[OLD] The ROS Master Node (OPTIONAL - KEPT FOR STUDENT NOTES)
[OLD] ROS Computation Graph: Nodes Topics (OPTIONAL - KEPT FOR STUDENT NOTES)

14 Topics
ROS Topics Overview
Question: what happens if ROS Master crashes?
Guidelines to Write a Publisher and a Subscriber in ROS
Overview of the Talker/Listener Application (ROS Hello World Example)
Write a Publisher Node in Python
Write a Subscriber Node in Python
[DEMO] Talker/Listener in Python
Write a Publisher/Subscriber Node in C++
[DEMO] Talker/Listener in C++
Do-It-Yourself Assignment Explanation
Do-It-Yourself: Write your First ROS Program to Control the Motion of a Robot
About the next two lectures
[OLD-OPTIONAL] Write a ROS Publisher and Subscriber in C++
[OLD-OPTIONAL] Write a ROS Publisher and Subscriber in Python

3 Topics
Create Custom ROS Messages: Overview
[Demo] Create a Custom ROS Message: Implementation
[DEMO] IoTSensor Custom Message Publisher/Subscriber Applications

10 Topics
What is a ROS Service?
Understand ROS Services with Turtlesim
[DEMO] ROS Services with Turtlesim
Do-It-Yourself: ROS Service Hands-On Practice
AddTwoInts Service Overview
Create the Service File and Request/Response Messages
Write ROS Service (Client/Server) in Python
[DEMO] Write ROS Service (Client/Server) in Python
[DEMO] Writing a ROS Service (Client/Service) in C++
Rectangle Aera ROS Service (with video solution)

17 Topics
Note about this updated section
Cleaning Application Overview
Step 1. Understand Topics and Messages Used in the Application
Import the Libraries in Python and C++
The Divide and Conquer Approach
Move Straight Line (C++/Python)
[DEMO] Move Straight Line (C++/Python)
Rotate Motion (C++/Python)
[Demo] Rotate Motion (C++/Python)
Go-To-Goal Behavior
[Demo] Go-To-Goal Behavior
Set Desired Orientation
[Demo] Set Desired Orientation
Spiral Trajectory
Spiral Trajectory Demo
Putting All Together: The Cleaning Application
Running Multiple Nodes with a Launch File

3 Topics
ROS Network Configuration
Launch Files (Part I): Running multiple nodes with roslaunch
Launch Files (Part II): including a launch file and define parameters

3 Topics
Install Turtlebot3 Simulator
Overview of Turtlebot3 Simulation Environment
[Demo] Simple Demo with Turtlebot3

18 Topics
OpenCV Overview
[BEFORE ROS-NOETIC] Install OpenCV for ROS (Melodic/Kinetic)
[New] Install OpenCV for ROS Noetic
Additional Note about OpenCV installation
OpenCV: Open/Save Image Files (Python)
OpenCV: Pixels and Image Structure (Python)
OpenCV: Image Encoding (Python)
OpenCV: Video Streams Input (Python)
OpenCV: Drawing Shapes
CvBridge: Bridging OpenCV and ROS
Simple and Adaptive Thresholding in OpenCV
Color Filtering in OpenCV (Tennis Ball use case)
Contours Detection and Processing in OpenCV
Tennis Ball Detection using OpenCV
OpenCV (C++) Video Input/Output
OpenCV (C++) Open and Save Images
OpenCV (C++) CvBridge: Bridging Images between OpenCV and ROS
Computer Vision Project: Ball Tracking with OpenCV and ROS

11 Topics
What is a Laser Range Finder?
Laser Range Finders Characteristics
Laser Range Finders Quiz
Commercial Laser Range Finder Devices
Laser Scanner Devices used in Demonstrations
Connect Asus Live Pro RGBD Camera as a Laser Scanner
Connect Hokuyo URG 4LX Laser Scanner with ROS
Save Laser Scan Messages into a Bag File and Replay Them
Write a ROS Node (Python) as a Subscriber to a Laser Scanner
Write a ROS Node (C++) as a Subscriber to a Laser Scanner
Hands on-Activity on Laser Scanner

11 Topics
What is rosserial?
What is Arduino?
Arduino Uno Board
Arduino IDE Overview
Install and Setup Arduino IDE
Range Sensor and Connection Setup
Programming The Ultrasonic Sensor with Arduino
Install rosserial libraries
rosserial Hello World application: Arduino ROS Publisher
rosserial Blink application: Arduino ROS Subscriber
rosserial using Arduino Ultrasonic Range Sensor

1 Topic
What is next?

10 Topics
Cleaning Application Overview
Moving in a Straight Line
Rotate Left and Right
Go to Goal Location
Spiral Control and Clearning Application
Turtlesim Motion in Python
Assignment Solution: Linear Motion in ROS (Python)
Assignment Solution: Rotation Motion in ROS (Python)
Assignment Solution: Go-to-Goal Motion in ROS (Python)
Turtlebot 2 Robot Motion

  Write a Review

ROS for Beginners: Basics, Motion, and OpenCV

Go to Paid Course