# epflxplore/ros_software_assignement architecture

> Architecture diagram of the GitHub repository epflxplore/ros_software_assignement, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/epflxplore/ros_software_assignement
- Repository: https://github.com/epflxplore/ros_software_assignement

## Overview

Xplore is a hands-on ROS Humble assignment, not a rover application: learners set up Docker/ROS, practice package creation and publisher–subscriber communication, then build and integrate a custom service. The README documents these stages and links to their instructions. The tree also contains a custom_msg ROS package, but its interface-generation list is empty and no message or service definitions are present. Relationships for the assignment stages follow the README; implementation details of the level instructions and Docker files were not sampled.

Main entry points: [`README.md`](https://github.com/epflxplore/ros_software_assignement/blob/master/README.md) (Assignment overview), [`docs/Level3.md`](https://github.com/epflxplore/ros_software_assignement/blob/master/docs/Level3.md) (Service integration), [`docker_humble_desktop/Dockerfile`](https://github.com/epflxplore/ros_software_assignement/blob/master/docker_humble_desktop/Dockerfile) (ROS Docker image), [`docs/Level1.md`](https://github.com/epflxplore/ros_software_assignement/blob/master/docs/Level1.md) (ROS introduction)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_assignment["Assignment workflow"]
  node_overview["Assignment overview<br/>[README.md]"]
  node_level1["ROS introduction<br/>[Level1.md]"]
  node_level2["Package and topics<br/>[Level2.md]"]
  node_level3["Service integration<br/>[Level3.md]"]
end

subgraph group_environment["Environment setup"]
  node_install_linux["Linux install guide<br/>[InstallLinux.md]"]
  node_install_mac["Mac install guide<br/>[InstallMac.md]"]
  node_install_windows["Windows install guide<br/>[InstallWindows.md]"]
  node_docker_env["ROS Docker image"]
  node_docker_build["Build launcher<br/>[build.sh]"]
  node_docker_run["Run launcher<br/>[run.sh]"]
end

subgraph group_ros_package["ROS package"]
  node_custom_package["Custom message package<br/>[CMakeLists.txt]"]
  node_message_defs["Message definitions"]
end

node_learner(("Learner"))

node_learner -->|"reads"| node_overview
node_overview -->|"introduces"| node_level1
node_overview -->|"introduces"| node_level2
node_overview -->|"introduces"| node_level3
node_overview -->|"links installation"| node_install_linux
node_overview -->|"links installation"| node_install_mac
node_overview -->|"links installation"| node_install_windows
node_level1 -->|"uses Docker ROS"| node_docker_env
node_level2 -->|"advances to"| node_level3
node_level3 -->|"creates service"| node_custom_package
node_custom_package -->|"generates interfaces from"| node_message_defs
node_docker_build -->|"builds"| node_docker_env
node_docker_run -->|"runs"| node_docker_env

click node_overview "https://github.com/epflxplore/ros_software_assignement/blob/master/README.md"
click node_level1 "https://github.com/epflxplore/ros_software_assignement/blob/master/docs/Level1.md"
click node_level2 "https://github.com/epflxplore/ros_software_assignement/blob/master/docs/Level2.md"
click node_level3 "https://github.com/epflxplore/ros_software_assignement/blob/master/docs/Level3.md"
click node_install_linux "https://github.com/epflxplore/ros_software_assignement/blob/master/docs/InstallLinux.md"
click node_install_mac "https://github.com/epflxplore/ros_software_assignement/blob/master/docs/InstallMac.md"
click node_install_windows "https://github.com/epflxplore/ros_software_assignement/blob/master/docs/InstallWindows.md"
click node_docker_env "https://github.com/epflxplore/ros_software_assignement/blob/master/docker_humble_desktop/Dockerfile"
click node_docker_build "https://github.com/epflxplore/ros_software_assignement/blob/master/docker_humble_desktop/build.sh"
click node_docker_run "https://github.com/epflxplore/ros_software_assignement/blob/master/docker_humble_desktop/run.sh"
click node_custom_package "https://github.com/epflxplore/ros_software_assignement/blob/master/custom_msg/CMakeLists.txt"
click node_message_defs "https://github.com/epflxplore/ros_software_assignement/tree/master/custom_msg/msg"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_overview,node_level1,node_level2,node_level3 toneBlue
class node_install_linux,node_install_mac,node_install_windows,node_docker_env,node_docker_build,node_docker_run toneAmber
class node_custom_package,node_message_defs toneMint
class node_learner toneIndigo
```

## Components

### Assignment workflow

- [Assignment overview](https://github.com/epflxplore/ros_software_assignement/blob/master/README.md): `README.md`
- [ROS introduction](https://github.com/epflxplore/ros_software_assignement/blob/master/docs/Level1.md): `docs/Level1.md`
- [Package and topics](https://github.com/epflxplore/ros_software_assignement/blob/master/docs/Level2.md): `docs/Level2.md`
- [Service integration](https://github.com/epflxplore/ros_software_assignement/blob/master/docs/Level3.md): `docs/Level3.md`

### Environment setup

- [Linux install guide](https://github.com/epflxplore/ros_software_assignement/blob/master/docs/InstallLinux.md): `docs/InstallLinux.md`
- [Mac install guide](https://github.com/epflxplore/ros_software_assignement/blob/master/docs/InstallMac.md): `docs/InstallMac.md`
- [Windows install guide](https://github.com/epflxplore/ros_software_assignement/blob/master/docs/InstallWindows.md): `docs/InstallWindows.md`
- [ROS Docker image](https://github.com/epflxplore/ros_software_assignement/blob/master/docker_humble_desktop/Dockerfile): `docker_humble_desktop/Dockerfile`
- [Build launcher](https://github.com/epflxplore/ros_software_assignement/blob/master/docker_humble_desktop/build.sh): `docker_humble_desktop/build.sh`
- [Run launcher](https://github.com/epflxplore/ros_software_assignement/blob/master/docker_humble_desktop/run.sh): `docker_humble_desktop/run.sh`

### ROS package

- [Custom message package](https://github.com/epflxplore/ros_software_assignement/blob/master/custom_msg/CMakeLists.txt): `custom_msg/CMakeLists.txt`
- [Message definitions](https://github.com/epflxplore/ros_software_assignement/tree/master/custom_msg/msg): `custom_msg/msg`

### Other components

- **Learner**

## Connections

- Learner → Assignment overview: reads
- Assignment overview → ROS introduction: introduces
- Assignment overview → Package and topics: introduces
- Assignment overview → Service integration: introduces
- Assignment overview → Linux install guide: links installation
- Assignment overview → Mac install guide: links installation
- Assignment overview → Windows install guide: links installation
- ROS introduction → ROS Docker image: uses Docker ROS
- Package and topics → Service integration: advances to
- Service integration → Custom message package: creates service
- Custom message package → Message definitions: generates interfaces from
- Build launcher → ROS Docker image: builds
- Run launcher → ROS Docker image: runs
