|
## Projects overview
|
|
## Projects and sub-projects
|
|
|
|
|
|
- Commons
|
|
These are the main maven/git projects that are used for the simulator.
|
|
- Simulation
|
|
|
|
- Environment
|
|
- [commons](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/simulators/commons)
|
|
- EESimulator
|
|
- [simulation](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/simulators/simulation)
|
|
- Vehicle
|
|
- **environment**: Has a representation for *Worlds* in which the cars can drive. Those worlds can be loaded from *OSM* maps. The World contains roads, buildings and other static objects.
|
|
- EEComponents
|
|
- **eesimulator**: Contains the *EE-System* that handles the communication between *EE-Components* (through event based messages). "EE" comes from "Electrical & Electronic Systems". The sub-project defines the interfaces for such components and also contains implementations for *Buses*, *Actuators*, *Sensors* and *Bridges* (all EE-Components).
|
|
- Simulator
|
|
- **vehicle**: Contains the description of a *Vehicle*, its properties, its powertrain and the physics models used to simulate them.
|
|
- hardware_emulator
|
|
- **eecomponents**: Contains the implementations of additional EE-Components such as the *Navigation* component and Java *Autopilots*.
|
|
- basic-simulator
|
|
- **simulator**: Contains the main simulation container that holds a *World* and multiple *Vehicles* (and other simulation objects).
|
|
- server
|
|
- [hardware_emulator](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/simulators/hardware_emulator): Contains a *computer-hardware simulator* to virtually run and simulate the code of autopilots.
|
|
- visualization
|
|
- [basic-simulator](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/simulators/basic-simulator): A simple GUI that runs the simulator and allows visualization.
|
|
|
|
- [server](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/simulators/server): Different projects for running simulation in a distributed setup. (WIP)
|
|
|
|
- [visualization](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/simulators/visualization): A web-based visualization for simulations. (Out-of-date)
|
|
|
|
|
|
## Overview Diagram
|
|
## Overview Diagram
|
|
|
|
|
|
The following diagram shows the main classes of the simulator, how they interact and in which project they are located (or sub-project for `simulation`).
|
|
The following diagram shows the main classes of the simulator, how they interact and in which project they are located (or sub-project for `simulation`).
|
|
|
|
|
|
The relations between the classes **are illustrative**. They intent to give an overview of the main interactions, but are not formally defined and **not exhaustive**. Also **not represented** is how the simulator can be used in the context of the `server` project.
|
|
The relations between the classes are *illustrative*. They intent to give an overview of the main interactions, but are not formally defined and *not exhaustive*. Also *not* represented is how the simulator can be used in the context of the `server` project.
|
|
|
|
|
|
![Interaction and location of the main classes in the simulation](/img/dev-docs/overview.svg)
|
|
![Interaction and location of the main classes in the simulation](/img/dev-docs/overview.svg)
|
|
|
|
|
|
|
|
## Dependencies
|
|
|
|
|
|
|
|
Be sure to respect the "dependency tree" when implementing new features, since maven projects cannot have cyclic dependencies:
|
|
|
|
|
|
|
|
![Projects dependency structure](/img/dev-docs/dependencies.svg) |