| .. |
| ******************************************************************************* |
| Copyright (c) 2021 ITK Engineering GmbH |
| |
| This program and the accompanying materials are made available under the |
| terms of the Eclipse Public License 2.0 which is available at |
| http://www.eclipse.org/legal/epl-2.0. |
| |
| SPDX-License-Identifier: EPL-2.0 |
| ******************************************************************************* |
| |
| .. _pcm_sim: |
| |
| PCM Simulation |
| ============== |
| |
| This plugin is used to configure and start a simulation based pcm data or simulation configuration sets of previous simulations. |
| |
| Simulation Input |
| ---------------- |
| |
| * **UseCase: Database** |
| |
| * Select the radio button ``PCM Database`` |
| * Select a PCM database file |
| |
| .. image:: _static/images/plugin/pcm_sim/input_db.png |
| |
| * **UseCase: Resimulation** |
| |
| * Select the radio button ``Simulation Results`` |
| * Select a folder with previous Results |
| |
| .. note:: |
| |
| The selected output folder must be different to the input folder |
| |
| .. warning:: |
| |
| To ensure that the previous results are correctly read, the folder structure of the results has to follow the structure the GUI itself generates when the simulation is started from a database. |
| Only the configuration files of the default folders are loaded. No variation is loaded and taken into account at this place. |
| |
| |
| .. image:: _static/images/plugin/pcm_sim/input_resim.png |
| |
| Simulation Output |
| ----------------- |
| |
| * In ``Result Folder`` you can select a folder where the output shall be written |
| * In ``Log Level`` you can define at what level a logging output shall be produced |
| |
| * ``Error`` - Log only Errors |
| * ``Warning`` - Log additionally warnings |
| * ``Info`` - Log additionally information |
| * ``Debug`` - Log additionally debug information |
| |
| .. image:: _static/images/plugin/pcm_sim/output.png |
| |
| |
| Simulation Configuration |
| ------------------------ |
| |
| At this point, the User is able to choose what system configuration shall be used for each agent. |
| The User can either select one or multiple system configuration files (comma separated). |
| In the case of multiple files are configured, there will be unique sets of simulation configuration files generated for each possible combination, which are placed in folders named / coded like ``<Car1_Index>-<Car2_Index>-<Other_Index>`` e.g. ``1-0-2`` |
| |
| |
| .. image:: _static/images/plugin/pcm_sim/system_config.png |
| |
| Variation |
| --------- |
| |
| * The random seed can be set to a specific initial random seed by ``using a given value`` or just by ``using the case number`` |
| * The number runs can with different random seed can be set by changing ``Variation Count`` |
| * The original trajectory can be shifted randomly by setting the ``Shift radius`` for *Car1* and *Car2* |
| |
| * Given a shift radius R for a vehicle |
| * For each position P in trajectory, it shifted position P’ is calculated by randomly generating a distance D (D<= R) and a relative angle in polar coordinate |
| |
| .. math:: |
| `x_{\text{new}}(t) = x(t) + \delta x` |
| `y_{\text{new}}(t) = x(y) + \delta y` |
| |
| .. image:: _static/images/plugin/pcm_sim/trajectory_shifting.png |
| |
| * The original velocity can be scaled randomly by setting the ``Max scale`` for *Car1* and *Car2* |
| * Given a velocity deviation :math `\delta V` for a vehicle |
| * In a trajectory, a position P_{i} is represented as |
| |
| .. math:: |
| `x(t) = x_{0} + \int_{0}^{t} v_{x} (t) dt` |
| `y(t) = y_{0} + \int_{0}^{t} v_{y} (t) dt` |
| |
| * The new position P_{i} can be represented as |
| |
| .. math:: |
| `x(t) = x_{0} + k \int_{0}^{t} v_{x} (t) dt` |
| `y(t) = y_{0} + k \int_{0}^{t} v_{y} (t) dt` |
| |
| * with a scaling factor k |
| |
| .. image:: _static/images/plugin/pcm_sim/velocity_scaling.png |
| |
| .. note:: |
| |
| The additional random seeds which are used by the variation are chosen randomly depending on the initial random seed. |
| Therefore they´re reproducible |
| |
| .. image:: _static/images/plugin/pcm_sim/variation.png |
| |
| Simulation Start |
| ---------------- |
| |
| * Select one or multiple simulation cases (by pressing the CTRL / SHIFT key) |
| |
| * Press the button ``Start Simulation`` |
| |
| .. note:: |
| |
| The User can interrupt the simulation process by pressing ``Stop Simulation``. |
| The simulation will stop after the current simulation is finished. |
| Therefore it won´t start the remaining simulations anymore. |
| |
| |
| .. image:: _static/images/plugin/pcm_sim/select.png |
| |
| Save / Load Experiment |
| ---------------------- |
| |
| Every change in the gui can be saved as in "Experiment" in an text file. |
| This file can later be loaded to retrieve the previous used configuration of the "Experiment". |
| |
| .. image:: _static/images/plugin/pcm_sim/experiment.png |
| |
| .. _result_folder_structure: |
| |
| Result Folder Structure |
| ----------------------- |
| |
| * <Result Folder Name> (e.g. *result_pcm*) |
| |
| * <Case Name> (e.g. *1000208*) |
| |
| * <System Configuration combination code> (e.g. *1-0-2*) |
| |
| * <Variation Name> (e.g. *default* or *Var_00001*) |
| |