WEBVTT

00:00.200 --> 00:05.630
To conclude the list of Ros two features that make it similar to an operating system.

00:05.750 --> 00:09.530
In this lesson, we will talk about package management.

00:10.100 --> 00:16.970
Package management refers to the organization of code and functionalities of our robot into different

00:16.970 --> 00:23.870
packages that interact with each other and may rely on functionalities that are implemented in other

00:23.870 --> 00:24.590
packages.

00:25.310 --> 00:32.690
Certainly a developer could decide to implement all the functionalities of a robot within a single package

00:32.690 --> 00:35.390
containing all the software for that robot.

00:36.230 --> 00:43.010
Such approach, although is possible in Russia, is strongly discouraged and not advantageous.

00:43.280 --> 00:51.140
Such code architecture or better such lack of architecture prevents code, reusability, maintainability

00:51.140 --> 00:52.730
and also modularity.

00:53.700 --> 01:00.690
A better approach instead is to divide the robot's functionalities into different packages, where each

01:00.690 --> 01:05.520
package focuses on implementing a single functionality for the robot.

01:05.820 --> 01:13.620
Then each package might contain multiple nodes, but the logic they implement relates to the same atomic

01:13.620 --> 01:14.610
functionality.

01:15.300 --> 01:16.940
With such an approach.

01:16.950 --> 01:22.920
If, for example, after developing an autonomous mobile robot, you decide to develop an autonomous

01:22.920 --> 01:26.690
drone, you can choose to reuse certain packages.

01:26.700 --> 01:31.640
For example, you can decide to reuse the navigation and mapping packages.

01:31.650 --> 01:36.780
If you use the same sensor for both the drone and your mobile robot.
