WEBVTT

00:00.230 --> 00:05.420
As we have seen in the previous lesson, Ros stands for Robot Operating system.

00:05.600 --> 00:12.800
Anyway, don't let the name mislead you since to be honest, Ros isn't a proper operating system, but

00:12.800 --> 00:19.160
you can consider it more as a software that you can install on your PC and that simulates some functionalities

00:19.160 --> 00:23.330
of a real operating system, but for robotics applications.

00:24.130 --> 00:29.650
There are four main aspects of Ros that make it similar to an operating system.

00:29.980 --> 00:33.070
Among them there is the hardware abstraction.

00:33.780 --> 00:39.270
Let's start understanding the hardware abstraction with an analogy with the operating system running

00:39.270 --> 00:40.020
on your PC.

00:40.650 --> 00:47.940
Whether you are using Windows Linux or Mac OS, this operating system allows you to use the hardware

00:47.940 --> 00:55.170
of your PC independently by the processor that you are using or by the amount of memory that you have.

00:55.380 --> 01:01.790
For sure, the performance will be different if you have a better CPU or much memory available.

01:01.800 --> 01:08.730
But anyway, you can use your computer the same way whether you have an Intel CPU or an AMD.

01:08.730 --> 01:16.050
One to the point that very often you can use also a PC without even actually knowing which CPU it has.

01:16.640 --> 01:23.120
To be honest, all the hardware components are very different from each other and very often they require

01:23.120 --> 01:29.390
a different communication protocol and they also use a different logic in order to directly use the

01:29.390 --> 01:30.380
hardware of your PC.

01:30.680 --> 01:38.120
You will need to know exactly the brand of the device, its version and its communication protocol.

01:38.390 --> 01:45.110
The operating system of your PC is in charge of managing all of these for you and also provides you

01:45.110 --> 01:51.050
only a standard interface to use the hardware independently by its specifications.

01:52.460 --> 01:53.510
The same way.

01:53.510 --> 02:00.350
The operating system also offers a standard interface for the other applications that you use and that

02:00.350 --> 02:01.550
you install on your PC.

02:01.760 --> 02:03.560
To use its resources.

02:03.890 --> 02:10.610
This way, the software developers don't have to worry about the hardware specification of the PC of

02:10.610 --> 02:17.750
the users, and so they can develop a general purpose software that will work on any PC and rely on

02:17.750 --> 02:22.100
the operating system to make it work with the available resources.

02:23.200 --> 02:31.090
Likewise, Ross is in charge of managing the hardware of our robot, providing to the user a standard

02:31.090 --> 02:34.750
interface for the usage of sensors or motors.

02:36.090 --> 02:43.470
It also offers a standard interface for all the software developers of robotics applications that this

02:43.470 --> 02:49.020
way you don't have to worry about the type of motors or which communication protocol are they using,

02:49.020 --> 02:54.990
but they can only focus on the development of new functionalities for the robot and leave the interface

02:54.990 --> 02:56.670
orchestration to Ross.
