WEBVTT

00:00.080 --> 00:05.570
In this lesson, you will learn a bit more about the Ros2 architecture so you can understand the different

00:05.570 --> 00:08.600
client libraries you can use for different languages.

00:08.630 --> 00:14.960
So for now in Python you have used CLP, and for Cplusplus you have used rcl, cpp.

00:15.110 --> 00:21.920
You might wonder where do those libraries come from and why do they both start with RCL?

00:21.950 --> 00:27.680
Well, RCL is a ros2 library and it means Ros client library.

00:27.710 --> 00:33.470
RCL is a pure C library which contains all the core functionalities under RCL.

00:33.500 --> 00:39.560
You have the Ros2 middleware with DS and DS means data distributed services.

00:39.560 --> 00:43.010
This will handle all the communications in your application.

00:43.010 --> 00:45.080
I won't give more details about that.

00:45.080 --> 00:51.440
For now, all you need to know is that RCL is basically the lowest Ros2 client library you can use,

00:51.440 --> 00:54.350
and it is the bridge with the Ros2 middleware.

00:54.350 --> 00:59.120
So RCL is the base library for Ros2, but you won't use it directly.

00:59.120 --> 01:04.340
Instead, you will use other client libraries that are built on top of RCL.

01:04.370 --> 01:08.720
For example RCL, cpp which you have seen before in this section.

01:08.750 --> 01:16.720
RCL TCP is a Cplusplus client library which basically provides a binding with RCL functionalities.

01:16.720 --> 01:22.120
In your code, you will simply use RCL, cpp and the same thing for Python.

01:22.120 --> 01:29.470
The CLP client library is built on top of RCL and then you use CLP in your Python code.

01:29.470 --> 01:35.770
It means that whether you program with C plus, plus or Python, well the base library is the same,

01:35.770 --> 01:38.800
so the functionalities are the same.

01:38.830 --> 01:45.010
C plus, plus and Python are the two most supported languages, but as you probably guessed, we can

01:45.010 --> 01:48.190
add any other language on top of the RCL library.

01:48.190 --> 01:56.410
In fact, some of them already exist, for example RCL, Node.js for Node.js, RCL, Java for Java,

01:56.440 --> 02:02.860
etc. apart from C plus, plus and Python, most of the other client libraries for other languages are

02:02.860 --> 02:05.140
supported by the open source community.

02:05.140 --> 02:12.670
So it means that unfortunately, they might not be as complete and not as well supported as RCL Pi and

02:12.670 --> 02:16.630
RCL CPP well, and that's about it for Ros2 client libraries.

02:16.630 --> 02:22.660
That's a very simplified view, but this should help you understand why we are using Lclc-rp for C plus

02:22.660 --> 02:25.390
plus and CLP for Python.
