|
|
**MontiSim** is an *autonomous vehicle* simulator. Its goal is to test the behavior of *autopilots* in a virtual environment.
|
|
|
|
|
|
## Autopilots
|
|
|
|
|
|
The autopilots can be programmed in Java, C++ or with *EmbeddedMontiArc* (EMA) models. The C++ and EMA autopilots benefit from *execution time simulation* through a *hardware emulator*. An autopilot can be integrated with various configurable components inside a **vehicle**. Components include *communication bus* models (CAN, FlexRay), *sensors* (position, speed, ...), *actuators* (steering, gas, brakes) and a navigation system (GPS-like).
|
|
|
|
|
|
## World
|
|
|
|
|
|
The vehicles move around in a world that can be loaded from *Open Street Maps* (OSM). These maps can be directly exported from [www.openstreetmap.org](www.openstreetmap.org) as `.osm` files and used in the simulator.
|
|
|
|
|
|
## Scenarios
|
|
|
|
|
|
A simulation is described using a *scenario file*, which can be a JSON file (quite verbose) or specialized *SimLang* and *CarLang* files. *SimLang* and *CarLang* are *Domain Specific Languages* (DSL) created (and processed) using *MontiCore*. The [simulation configuration](Simulation-Configuration.md) specifies general settings for the simulation such as which OSM map to use and global simulation constraints (maximum simulation duration, ...). The [vehicle configuration](Vehicle-Configuration.md) specifies all the components and properties for a vehicle, as well as its *objectives* (drive from A to B, ...).
|
|
|
|
|
|
## Simulation Setups
|
|
|
|
|
|
The simulator core can be set-up in different ways. The [server](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/simulators/server) project allows the setup of distributed simulation instances on different computers. This is done through *docker containers*, such as an http server for controlling the simulation, different simulator instances and different *hardware_emulator* instances. This allows the scaling up of the simulation.
|
|
|
|
|
|
A simpler and local alternative is the [basic-simulator](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/simulators/basic-simulator) project, which runs entirely on one machine and proposes different visualizations of the simulation.
|
|
|
|
|
|
---
|
|
|
Next: [The basic-simulator](The-basic_simulator.md) |
|
|
\ No newline at end of file |