What is ROS, When to use it, and Why ?

Edouard Renard
A free video tutorial from Edouard Renard
Software engineer and entrepreneur
4.6 instructor rating • 11 courses • 16,163 students

Learn more from the full course

ROS For Beginners (ROS Noetic, Melodic, Kinetic)

Master the Key ROS (Robot Operating System) Concepts to Create Powerful and Scalable Robot Applications, Step By Step

06:07:26 of on-demand video • Updated June 2021

  • Master ROS basics
  • Create, build, run, and debug your ROS program
  • Master ROS core functionalities
  • Learn ROS best practices to make your application readable and scalable
  • Create reusable code for any robot powered by ROS
  • Write ROS code with both Python and C++
  • Learn by doing, not just watching
English [Auto] What is the common point between all those robots? Well, all the robots you see here are are can be powered by Ross. Ross means robot operating system. It is something between a middleware and a framework built especially for robotics applications. Real goal is to provide a standard for robotic software that developers can use and reuse in any robot. Once you know how to use Ros efficiently, you will be able to set up a new software for a new robot. In no time. You first need to master the basics and functionalities which you will see in this course. And then for every new robot you program, you will gain more skills that can apply to other robots. The more you know about Ros, the easiest it will be for you to program and understand the code of any robot. But is that it now, another philosophy behind Ross is don't reinvent the wheel. Reinventing the wheel is a very common problem in robotics. People always start building new software that is already existing and thus they don't have the time to work on really valuable stuff. What if instead you could build on a strong software base to directly program high level functionalities and work on new cases instead of low level technical stuff that already exist anyway? So this is the why behind Ross. Now, when to use race, maybe you've already started to program robots with an order in a world with a custom code on a computer, and what you will quickly experience is that the more sensors, tools, controllers you add on your application, the more complex it becomes until you reach a point where everything is mixed up and you can't add any code for a new sensor without having a huge headache. Ross is here to help you develop powerful and scalable robotic applications. You can use it whenever you want to create a robot software, which needs a lot of communication between its set programs or has some functionalities that go beyond a very simple use case, etc.. So for a robot that will just open a door with a seven foot when it detects a movement, maybe you don't need Ros, but for a mobile robot, which you want to control with a GPS and a camera in this case, Ross might really help you. All right. You've just seen what is the why behind Ross and when to use it. Now, what is Ross? It would be hard to describe exactly what is Ross in about two minutes, even an hour. But here are two main points that will give you an idea of the big picture. First of all, Ross provides you with a way of separating your code into reusable blocks, along with a set of communication tools to easily communicate between all your programs. Let's say that you are programming a robotic arm. You can create a program called Node for your camera, another for the motion planning, another one for the hardware driver, another for joystick and so on. And each of those independent blokes will communicate between each other in a way that is powerful and scaleable. The second main point is that thralls provides you with many plug and play libraries that will save you a huge amount of time and most importantly, that will prevent you from reinventing the wheel if we come back to the robotic arm. Imagine how difficult it can be to compute the inverse kinematic for the arm to plan a trajectory which will make the arm move smoothly and avoid any obstacle on the way. Impossible, you might think, unless you spend two years studying mathematics, motion, planning, etc., but what if I tell you this, you don't need two years, you need maybe two days to install a library and figure out how to use it. So you have great communication tools and great libraries. That's not all. Rose is said to be language agnostic. It means that you can program some parts of your application in a programming language and another part in another programming language, simply because the communication tools don't rely on a specific language. So in this case, we will not go into all the external libraries that exist for many different robots. We will mostly focus on the basics and core functionalities that will enable you to easily start any robot application powered by Eros using Python and C++, Ross is also open source with an active and growing community. So you can directly see what's going on. You can get help, share your project and even contribute if you wish to. All right. With this quick introduction, you should get some ideas about what is wrong, when to use it and why it is useful. Don't panic, though, if you don't understand everything right now, the big picture behind Ross is pretty hard to get at the beginning, but after some practice, you will start to get it. And I can guarantee you that you will quickly think that Ross is awesome.