To conclude the list of Ros two features that make it similar to an operating system.
In this lesson, we will talk about package management.
Package management refers to the organization of code and functionalities of our robot into different
packages that interact with each other and may rely on functionalities that are implemented in other
packages.
Certainly a developer could decide to implement all the functionalities of a robot within a single package
containing all the software for that robot.
Such approach, although is possible in Russia, is strongly discouraged and not advantageous.
Such code architecture or better such lack of architecture prevents code, reusability, maintainability
and also modularity.
A better approach instead is to divide the robot's functionalities into different packages, where each
package focuses on implementing a single functionality for the robot.
Then each package might contain multiple nodes, but the logic they implement relates to the same atomic
functionality.
With such an approach.
If, for example, after developing an autonomous mobile robot, you decide to develop an autonomous
drone, you can choose to reuse certain packages.
For example, you can decide to reuse the navigation and mapping packages.
If you use the same sensor for both the drone and your mobile robot.