Introduction
  • What is this course about?
  • About the Instructor
ROS: 
How did it revolutionize robotics software development
  • 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
[NEW] Setting your environment with ROS Noetic
  • 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
  • [IMPORTANT] BEFORE START WORKING ON THE COURSE
[LEGACY] Installation and Environment Setup
  • Note about this section
  • [OPTIONAL] ROS Installation Tips
  • The Link to the Pre-Installed Virtual Machine
  • 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
Create a ROS Workspace and a ROS Package
  • 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
[NEW] ROS Computation Graph
  • 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)
ROS 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
  • [OLD-OPTIONAL] Write a ROS Publisher and Subscriber in C++
  • [OLD-OPTIONAL] Write a ROS Publisher and Subscriber in Python
ROS Messages
  • Create Custom ROS Messages: Overview
  • [Demo] Create a Custom ROS Message: Implementation
  • [DEMO] IoTSensor Custom Message Publisher/Subscriber Applications
ROS Services
  • 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)
[NEW] Motion in ROS (updated with ROS Noetic)
  • Note about this updated section
  • Cleaning Application Overview
  • Step 1. Understand Topics and Messages Used in the Application