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
News and Updates.
I course have been upgraded to the latest version of ROS, ROSNoetic, 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: Iadded slides for laser scanners and also an assignment using a Turtlebot 3 robot with laser scanners on ROSNoetics
Oct 2, 2020: update of ROSmotion 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 ROSComputation 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 iswhere this course plays a role and provides an added value by providinga 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 BYSTEP through the roadmap of learning ROS so that you learn the concepts in the right order and help youbuild an experience from one lecture to the other.
This is acourse that provides the fundamental concepts and basics of the Robot Operating System (ROS). This course intends to give beginnerROS 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:
ROS Basics and Foundation: which deals with the general ROS concepts that everyone has to know, like ROS topics, Services, Messages, Nodes, ...
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 inROS.
Perception in ROS: Iwill introduce how a robot sees the environment using a camera, how the images are collected in ROS, and how they are processed in OpenCV.
Arduino: you will also learn how to use Arduino boards and sensors with ROS using the ROSSERIALArduino 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 ROSuser has to know to be able to go further with his own robotics project.
Ialso 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
Ihave been programming with ROS for many years both in academic and industrial projects. Iam very passionate to develop a program with ROS. Ihave also been teaching ROS at the University and providing training programs. Iam the leader of the Robotics and Internet-of-Things Lab at Prince Sultan University and also a consultant for Gaitech Robotics. Ihave developed many ROS packages for robots and drones. Ihave 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. Igained 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.