Typically, new ROS users encounter many 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 are not discussed and are left to the developer’s luck. Although there is much documentation for ROS, several are very broad, and it takes too long to grasp the concepts well. 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 not only presents the basic concepts of ROS but also addresses two essential fields in robotics: (1) motion and (2) perception. We will apply the general concepts of ROS in the context of robotic motion and perception. The course will provide you with 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 proper 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 a quick and focused introduction to ROS basics and practical tips that help them better manage their first projects with ROS in C++ and Python. In particular, developing with C++ in ROS requires special care compared to Python to configure the compilation and runtime environment well. This is presented clearly in this course.
There are mainly three majors steps in the course:
- ROS Basics and Foundation: This deals with the general ROS concepts everyone has to know, like ROS topics, Services, Messages, and 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 an excellent 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 linear, rotational, and spiral motions and how all of these can be integrated to simulate a cleaning application. This part will give you the background you need to understand robot kinematics and how motion is represented in ROS.
- 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.
- 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 must know to go further with their 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 about developing 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 in learning ROS, which contributed to pinning 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 interested to know about the basic concepts of ROS
- Curious about robotics
- Whoever wants to learn ROS without wasting time