Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation how to use multi-containerized Autoware #5182

Open
youtalk opened this issue Sep 6, 2024 · 5 comments
Open

Documentation how to use multi-containerized Autoware #5182

youtalk opened this issue Sep 6, 2024 · 5 comments
Assignees
Labels
component:openadkit Issues or Features related to Open AD Kit type:containers Docker containers, containerization of components, or container orchestration.

Comments

@youtalk
Copy link
Member

youtalk commented Sep 6, 2024

Write about how to use Autoware's multi-container in the Autoware Documentation or README.md.

@youtalk youtalk self-assigned this Sep 6, 2024
@oguzkaganozt oguzkaganozt added type:containers Docker containers, containerization of components, or container orchestration. component:openadkit Issues or Features related to Open AD Kit labels Sep 6, 2024
@oguzkaganozt
Copy link
Contributor

@youtalk -san if you can label containers and openadkit related tasks with these two labels it would be easy to find and discuss them within the WG meetings. Thanks !

@oguzkaganozt
Copy link
Contributor

  1. base:

    • Purpose: Serves as the foundation for all other images.
    • Includes: Basic system setup, ROS installation, and essential tools.
  2. rosdep-depend:

    • Purpose: Generates package dependency lists for core and common components.
    • Includes: rosdep tool and core/common source files.
  3. rosdep-universe-*-depend:

    • Purpose: Generates package dependency lists for specific Autoware components (sensing, perception, localization, mapping, planning, control, vehicle, system).
    • Includes: Source files for respective components.
  4. core-devel:

    • Purpose: Development environment for core Autoware components.
    • Includes: Core dependencies, build tools, and compiled core packages.
  5. universe-common-devel:

    • Purpose: Development environment for common Autoware Universe components.
    • Includes: Common dependencies and compiled common packages.
  6. universe-*-devel:

    • Purpose: Development environments for specific Autoware Universe components.
    • Includes: Dependencies and compiled packages for respective components.
  7. universe-devel:

    • Purpose: Complete development environment for Autoware Universe.
    • Includes: All Autoware Universe components and their dependencies.
  8. universe-*:

    • Purpose: Runtime images for specific Autoware Universe components.
    • Includes: Runtime dependencies and compiled packages for respective components.
  9. universe:

    • Purpose: Complete runtime image for Autoware Universe.
    • Includes: All runtime dependencies and compiled Autoware Universe packages.

@oguzkaganozt
Copy link
Contributor

oguzkaganozt commented Sep 23, 2024

Here are the two flavors of mermaid diagrams that I am suggesting to update the documentation with:

First one provides better readability but omits ros-depend stages from the diagram. Do you have any preference @youtalk @mitsudome-r @xmfcx @kaspermeck-arm ?

1-

flowchart TD
    %% Base Image
    A[Base]

    %% Development Stages
    subgraph Development[" "]
        B[Core Devel]
        C[Universe-Common Devel]
        subgraph Components["**Development Images**"]
            direction LR
            D[Sensing-Perception Devel]
            E[Localization-Mapping Devel ]
            F[Planning-Control Devel]
            G[Vehicle-System Devel]
        end
        H[Universe-Devel]
    end

    %% Final Images
    subgraph Final["**Runtime Images**"]
        direction LR
        I[Sensing-Perception]
        J[Localization-Mapping]
        K[Planning-Control]
        L[Vehicle-System]
        M[Universe]
    end

    %% Relationships
    A -->|FROM| B
    B -->|FROM| C
    C -->|FROM| Components
    C -->|FROM| H
    A -->|FROM| Final

    %% Component to Universe and Final Output relationships
    Components -.->|COPY| H
    Components -.->|COPY| Final

    %% Styling
    classDef base fill:#f39c12,stroke:#333,stroke-width:3px;
    classDef dev fill:#85c1e9,stroke:#1f618d,stroke-width:3px;
    classDef modular fill:#58d68d,stroke:#229954,stroke-width:3px,stroke-dasharray: 5 5;
    classDef monolithic fill:#58d68d,stroke:#229954,stroke-width:3px;


    class A base;
    class B,C,D,E,F,G,H dev;
    class I,J,K,L modular;
    class M monolithic;

    linkStyle default stroke:#34495e,stroke-width:2px,stroke-opacity:0.7;
Loading

2-

flowchart TD
    %% Relationships
    Base -->|FROM| Rosdep
    Base -->|FROM| Dev
    Base -->|FROM| Runtime

    %% Rosdep Details
    subgraph Rosdep
        RD[Rosdep-Depend]
        RU[Rosdep-Universe-Depend]
        subgraph RC[Component-Specific Rosdep]
            direction LR
            RSP[Sensing-Perception]
            RLM[Localization-Mapping]
            RPC[Planning-Control]
            RVS[Vehicle-System]
        end
    end

    %% Development Details
    subgraph Dev
        CD[Core-Devel]
        UCD[Universe-Common-Devel]
        subgraph CompDev[Component-Specific Devel]
            direction LR
            DSP[Sensing-Perception Devel]
            DLM[Localization-Mapping Devel]
            DPC[Planning-Control Devel]
            DVS[Vehicle-System Devel]
        end
        UD[Universe-Devel]
    end

    %% Runtime Details
    subgraph Runtime
        SP[Sensing-Perception]
        LM[Localization-Mapping]
        PC[Planning-Control]
        VS[Vehicle-System]
        U[Universe]
    end

    %% Additional Relationships
    RD -.->|COPY| CD
    RU -.->|COPY| UCD
    RC -.->|COPY| CompDev
    CD -.->|FROM| UCD
    UCD -->|FROM| CompDev
    CompDev -->|FROM| UD
    DSP -.->|COPY| SP
    DLM -.->|COPY| LM
    DPC -.->|COPY| PC
    DVS -.->|COPY| VS
    UD -.->|COPY| U

    %% Styling
    classDef default fill:#f9f9f9,stroke:#333,stroke-width:2px;
    classDef main fill:#f0f0f0,stroke:#333,stroke-width:3px;
    classDef base fill:#f39c12,stroke:#333,stroke-width:3px;
    classDef rosdep fill:#f1948a,stroke:#c0392b,stroke-width:2px;
    classDef dev fill:#85c1e9,stroke:#1f618d,stroke-width:2px;
    classDef runtime fill:#58d68d,stroke:#229954,stroke-width:2px;

    class Base base;
    class Rosdep,Dev,Runtime main;
    class RD,RU,RSP,RLM,RPC,RVS rosdep;
    class CD,UCD,DSP,DLM,DPC,DVS,UD dev;
    class SP,LM,PC,VS,U runtime;

    linkStyle default stroke:#666,stroke-width:2px;
Loading

@kaspermeck-arm
Copy link

@oguzkaganozt

The first option is a lot easier to comprehend and if you make a statement saying that the flow is simplified and doesn't contain Rosdep-Depend dependencies, that should be fine. Thanks!

@oguzkaganozt
Copy link
Contributor

@oguzkaganozt

The first option is a lot easier to comprehend and if you make a statement saying that the flow is simplified and doesn't contain Rosdep-Depend dependencies, that should be fine. Thanks!

Thanks for the feedback !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:openadkit Issues or Features related to Open AD Kit type:containers Docker containers, containerization of components, or container orchestration.
Projects
None yet
Development

No branches or pull requests

3 participants