blob: 26a714537ff16548f73ff1932e921317a503f9e8 [file] [log] [blame]
..
*******************************************************************************
Copyright (c) 2021 in-tech 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
*******************************************************************************
.. _observation_entityrepository:
Observation_EntityRepository
############################
This observer logs all entities generated for an experiment, split by run and/or persistence.
In the following, the parametrization and generated outputs of the ``Observation_EntityRepository`` observer are described.
.. _observation_entityrepository_parametrization:
Parametrization
===============
Following parameters are supported:
.. table::
:class: tight-table
======================= ============= ===============================================================================================================
Parameter Type Description
======================= ============= ===============================================================================================================
FilenamePrefix String (Optional) Prefix for the output files.
Defaults to ``Repository`` resulting e.g. in ``Repository_Run_00.csv``.
WritePersistentEntities String Defines how persistent, ie cross-run entities such as stationary objects, are logged
Options:
- **Consolidated** (default): Logged together with non persistent entities and hence duplicated for each run.
- **Separate**: Written once into ``{FilenamePrefix}_Persistent.csv``
- **Skip**: No output.
======================= ============= ===============================================================================================================
.. warning:: The visualization is searching for files with the default ``Repository`` prefix, so don't change it unless you have a reason to.
**Example**
.. literalinclude:: /../../../repo/sim/contrib/examples/Common/simulationConfig.xml
:language: xml
:start-at: <Library>Observation_EntityRepository</Library>
:end-at: </Parameters>
Output Files
============
.. _observation_entityrepository_run:
Repository_Run_###.csv
~~~~~~~~~~~~~~~~~~~~~~
This file contains information about entities, which exist only within the given run.
In other words, ``Repository_Run_000.csv`` will contain all moving objects, spawned within the first run (zero-based index).
**Example**
.. csv-table::
:file: _static/Repository_Run_000.csv
:header-rows: 1
:delim: ;
.. note:: By convention, moving objects start with id 0.
If ``WritePersistentEntities`` is set to ``Consolidated``, each file will also contain information about stationary objects, described below.
.. _observation_entityrepository_persistent:
Repository_Persistent.csv
~~~~~~~~~~~~~~~~~~~~~~~~~
This file contains information about entities, which exist in every single run.
This includes mainly both objects (starting at 100000) and road elements (starting at 200000), defined by the :ref:`scenery`.
**Example**
.. table::
====== ================ ========= ======= ============ ============= =========== =======
id group source version name secondary id type subtype
====== ================ ========= ======= ============ ============= =========== =======
100000 StationaryObject OpenDRIVE 1.6 Barrier barrier_01 obstacle
100001 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_01 railing
100002 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_01 railing
100003 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_01 railing
100004 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_01 railing
100005 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_01 railing
100006 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_02 railing
100007 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_02 railing
100008 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_02 railing
100009 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_02 railing
100010 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_02 railing
200000 Others OpenDRIVE 1.6 LaneRoadMark Solid
200001 Others OpenDRIVE 1.6 LaneRoadMark Solid
200002 Others OpenDRIVE 1.6 Lane -3 Driving
200003 Others OpenDRIVE 1.6 LaneRoadMark Broken
200004 Others OpenDRIVE 1.6 Lane -2 Driving
200005 Others OpenDRIVE 1.6 LaneRoadMark Broken
200006 Others OpenDRIVE 1.6 Lane -1 Driving
====== ================ ========= ======= ============ ============= =========== =======
Information coming from the source ``openDRIVE`` are mapped in the following manner:
.. table::
========= ============
Attribute Column
========= ============
name name
id secondary id
type type
subtype subtype
========= ============
.. note::
Repeated OpenDRIVE objects are internally split into individual objects.
E.g. a single guard rail object in openDRIVE, is split into individual openPASS objects having consecutive ids.
In the example above, the openDRIVE object with (secondary) id ``guardrail_01`` is split into 5 individual openPASS objects with the closed id range from 100001 to 100005.