A Package describes a single ROS package and its associated meta-data. This includes the Package’s author, license, and other specific data related to the use-case and capabilities of the Package.
A Component is composed of multiple Packages. A Component describes a more complex concept or capability that is beyond the scope of a single package. The requirements for these capabilities can be optionally outlined or required by linking an Interface to the Component. For more information regarding Interfaces please see the next section.
Interfaces are a detailed manifest of capabilities. Each Interface definition contains specific ROS services, topics, messages, and actions. An Interface can be linked to a Component in order to describe specific data required by or made available by that Component. Alternatively Interfaces can be combined to create Profiles that can be linked to Instantiations. For more information regarding Instantiations and Profiles please see the following sections.
An Instantiation is constructed from multiple Components. It represents a mature capability that requires the coordination of multiple sub-capabilities. It may also have an associated Profile. For more information regarding Profiles, please see the next section.
Profiles are a collection of Interfaces. An Instantiation definition can optionally require up to one Profile. The Profile directly corresponds to the minimum requirements the Instantiation’s aggregated Components’ Interfaces should meet
Lists are a collection different content types. They can contain Packages, Components, and Instantiations.