blob: 092dcb9d37e455816d9edeb5a8791e1046aa30e7 [file] [log] [blame]
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Observation_Log &mdash; openPASS Documentation</title>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/tabs.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" />
<link rel="shortcut icon" href="../../_static/openPASS.ico"/>
<!--[if lt IE 9]>
<script src="../../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
<link rel="next" title="Observation_EntityRepository" href="observation_repository.html" />
<link rel="prev" title="SimulationConfig" href="../configs/simulationconfig.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home"> openPASS
<img src="../../_static/openPASS.png" class="logo" alt="Logo"/>
</a>
<div class="version">
1.0.0
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<p class="caption"><span class="caption-text">Installation Guide</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li>
</ul>
<p class="caption"><span class="caption-text">User Guides</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li>
<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../configs/profilescatalog.html">ProfilesCatalog</a></li>
<li class="toctree-l2"><a class="reference internal" href="../configs/scenario.html">Scenario</a></li>
<li class="toctree-l2"><a class="reference internal" href="../configs/scenery.html">Scenery</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../configs/simulationconfig.html">SimulationConfig</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#profilescatalog">ProfilesCatalog</a></li>
<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#experiment">Experiment</a></li>
<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#scenario">Scenario</a></li>
<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#environment">Environment</a></li>
<li class="toctree-l3 current"><a class="reference internal" href="../configs/simulationconfig.html#observations">Observations</a><ul class="current">
<li class="toctree-l4 current"><a class="current reference internal" href="#">Observation_Log</a></li>
<li class="toctree-l4"><a class="reference internal" href="observation_repository.html">Observation_EntityRepository</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#spawners">Spawners</a></li>
<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#full-example">Full Example</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../configs/staticsystemconfig.html">Static SystemConfig</a></li>
<li class="toctree-l2"><a class="reference internal" href="../configs/systemconfigblueprint.html">SystemConfigBlueprint</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li>
<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li>
</ul>
<p class="caption"><span class="caption-text">Advanced topics</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li>
</ul>
<p class="caption"><span class="caption-text">Developer Information</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li>
</ul>
<p class="caption"><span class="caption-text">Other Information</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">openPASS</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../30_configs_in_depth.html">Configs in Depth</a> &raquo;</li>
<li><a href="../configs/simulationconfig.html">SimulationConfig</a> &raquo;</li>
<li>Observation_Log</li>
<li class="wy-breadcrumbs-aside">
<a href="../../_sources/user_guide/outputs/observation_log.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="observation-log">
<span id="id1"></span><h1>Observation_Log<a class="headerlink" href="#observation-log" title="Permalink to this headline"></a></h1>
<p>This section describes the parameters and outputs of the <code class="docutils literal notranslate"><span class="pre">Observation_Log</span></code> observer.</p>
<div class="section" id="parameterization">
<span id="observationlog-parameterization"></span><h2>Parameterization<a class="headerlink" href="#parameterization" title="Permalink to this headline"></a></h2>
<p>Following parameters are supported:</p>
<table class="tight-table docutils align-default">
<colgroup>
<col style="width: 18%" />
<col style="width: 12%" />
<col style="width: 70%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Parameter</p></th>
<th class="head"><p>Type</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>OutputFilename</p></td>
<td><p>String</p></td>
<td><p>Name of the output file (normally <code class="docutils literal notranslate"><span class="pre">simulationOutput.xml</span></code>)</p></td>
</tr>
<tr class="row-odd"><td><p>LoggingCyclicsToCsv</p></td>
<td><p>Bool</p></td>
<td><p>If <code class="docutils literal notranslate"><span class="pre">true</span></code>, cyclics are written an additional file (one CSV file per run)</p></td>
</tr>
<tr class="row-even"><td><p>LoggingGroup_&lt;NAME&gt;</p></td>
<td><p>StringVector</p></td>
<td><p>Defines which columns belong to the logging group named NAME</p></td>
</tr>
<tr class="row-odd"><td><p>LoggingGroups</p></td>
<td><p>StringVector</p></td>
<td><p>Defines active logging groups</p></td>
</tr>
</tbody>
</table>
<p>The columns, defined by the <code class="docutils literal notranslate"><span class="pre">LoggingGroup_&lt;NAME&gt;</span></code> correspond to cyclic data entries written by the world and other components.
Cyclics are named data values of a single agent during a specific timestep.
Simulation components including agent components can write this values into the DataBuffer component using the PublisherInterface.
The Observation_Log can then read this values and write them into the output.</p>
<p>The world publishes the following cyclics (see source of <code class="docutils literal notranslate"><span class="pre">AgentNetwork.cpp</span></code>):</p>
<table class="tight-table docutils align-default">
<colgroup>
<col style="width: 16%" />
<col style="width: 10%" />
<col style="width: 4%" />
<col style="width: 70%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Cyclics</p></th>
<th class="head"><p>Type</p></th>
<th class="head"><p>Unit</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>XPosition</p></td>
<td><p>Double</p></td>
<td><p>m</p></td>
<td><p>Position x of the reference point (in world coordinates)</p></td>
</tr>
<tr class="row-odd"><td><p>YPosition</p></td>
<td><p>Double</p></td>
<td><p>m</p></td>
<td><p>Position y of the reference point (in world coordinates)</p></td>
</tr>
<tr class="row-even"><td><p>VelocityEgo</p></td>
<td><p>Double</p></td>
<td><p>m/s</p></td>
<td><p>Absolute velocity (length of the velocity vector) at the reference point
(including spin caused by YawRate)</p></td>
</tr>
<tr class="row-odd"><td><p>AccelerationEgo</p></td>
<td><p>Double</p></td>
<td><p>m/s²</p></td>
<td><p>Longitudinal acceleration (including angular acceleration) at the reference point.
Longitudinal refers to the angle of the vehicle regardless of the curvature of the road it is on.</p></td>
</tr>
<tr class="row-even"><td><p>YawAngle</p></td>
<td><p>Double</p></td>
<td><p>rad</p></td>
<td><p>Yaw angle w.r.t. x-axis</p></td>
</tr>
<tr class="row-odd"><td><p>YawRate</p></td>
<td><p>Double</p></td>
<td><p>rad/s</p></td>
<td><p>Yaw rate of the agent</p></td>
</tr>
<tr class="row-even"><td><p>SteeringAngle</p></td>
<td><p>Double</p></td>
<td><p>rad</p></td>
<td><p>Steering wheel angle</p></td>
</tr>
<tr class="row-odd"><td><p>TotalDistanceTraveled</p></td>
<td><p>Double</p></td>
<td><p>m</p></td>
<td><p>Total traveled distance of all agents</p></td>
</tr>
<tr class="row-even"><td><p>PositionRoute*</p></td>
<td><p>Double</p></td>
<td><p>m</p></td>
<td><p>Position of the agent’s front center in <strong>road’s</strong> s coordinate
(distance to the start of the road)</p></td>
</tr>
<tr class="row-odd"><td><p>TCoordinate*</p></td>
<td><p>Double</p></td>
<td><p>m</p></td>
<td><p>Position of the agent’s front center in <strong>lane’s</strong> t coordinate
(distance to the middle of the lane respecting intended driving direction)</p></td>
</tr>
<tr class="row-even"><td><p>Lane*</p></td>
<td><p>Integer</p></td>
<td></td>
<td><p>Id of the lane</p></td>
</tr>
<tr class="row-odd"><td><p>Road*</p></td>
<td><p>String</p></td>
<td></td>
<td><p>OpenDrive id of the road on which the agent is on (i.e. the front center).</p></td>
</tr>
<tr class="row-even"><td><p>SecondaryLanes*</p></td>
<td><p>IntegerVector</p></td>
<td></td>
<td><p>List of secondary lanes on a specific road</p></td>
</tr>
<tr class="row-odd"><td><p>AgentInFront*</p></td>
<td><p>Integer</p></td>
<td></td>
<td><p>Id of the next object on the agent’s route</p></td>
</tr>
</tbody>
</table>
<p>*Only valid when the agent has a valid route assigned in the current timestep.</p>
<p>The agent’s reference point is located at the center of the rear axle (see <a class="reference internal" href="../../advanced_topics/simulator/coordinate_systems.html#coordinatesystems"><span class="std std-ref">Coordinate Systems</span></a>).</p>
<p>Please refer to the individual components, for information about their published cyclics.</p>
<div class="admonition-todo admonition" id="id2">
<p class="admonition-title">Todo</p>
<p>We also need a way to better communicate, who is publishing what.
This should directly come out of the source code, to keep the documentation up to date.
See <a class="reference external" href="https://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/issues/148">https://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/issues/148</a></p>
</div>
<div class="admonition-wildcards-in-logginggroup-definitions admonition">
<p class="admonition-title"><strong>Wildcards in LoggingGroup definitions</strong></p>
<div class="line-block">
<div class="line">It is possible to use the wildcard character <code class="docutils literal notranslate"><span class="pre">*</span></code> in a <code class="docutils literal notranslate"><span class="pre">LoggingGroup_&lt;NAME&gt;</span></code> entry.</div>
<div class="line">The wildcard can be used only once per column reference.</div>
</div>
</div>
<p><strong>Example</strong></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span> <span class="nt">&lt;Library&gt;</span>Observation_Log<span class="nt">&lt;/Library&gt;</span>
<span class="nt">&lt;Parameters&gt;</span>
<span class="nt">&lt;String</span> <span class="na">Key=</span><span class="s">&quot;OutputFilename&quot;</span> <span class="na">Value=</span><span class="s">&quot;simulationOutput.xml&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;Bool</span> <span class="na">Key=</span><span class="s">&quot;LoggingCyclicsToCsv&quot;</span> <span class="na">Value=</span><span class="s">&quot;false&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;StringVector</span> <span class="na">Key=</span><span class="s">&quot;LoggingGroup_Trace&quot;</span> <span class="na">Value=</span><span class="s">&quot;XPosition,YPosition,YawAngle&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;StringVector</span> <span class="na">Key=</span><span class="s">&quot;LoggingGroup_RoadPosition&quot;</span> <span class="na">Value=</span><span class="s">&quot;AgentInFront,Lane,PositionRoute,Road,TCoordinate&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;StringVector</span> <span class="na">Key=</span><span class="s">&quot;LoggingGroup_RoadPositionExtended&quot;</span> <span class="na">Value=</span><span class="s">&quot;SecondaryLanes&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;StringVector</span> <span class="na">Key=</span><span class="s">&quot;LoggingGroup_Sensor&quot;</span> <span class="na">Value=</span><span class="s">&quot;Sensor*_DetectedAgents,Sensor*_VisibleAgents&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;StringVector</span> <span class="na">Key=</span><span class="s">&quot;LoggingGroup_Vehicle&quot;</span> <span class="na">Value=</span><span class="s">&quot;AccelerationPedalPosition,BrakePedalPosition,EngineMoment,Gear,SteeringAngle,TotalDistanceTraveled,YawRate&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;StringVector</span> <span class="na">Key=</span><span class="s">&quot;LoggingGroup_Visualization&quot;</span> <span class="na">Value=</span><span class="s">&quot;AccelerationEgo,BrakeLight,IndicatorState,LightStatus,VelocityEgo&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;StringVector</span> <span class="na">Key=</span><span class="s">&quot;LoggingGroups&quot;</span> <span class="na">Value=</span><span class="s">&quot;Trace,Visualization,RoadPosition,Sensor&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/Parameters&gt;</span>
</pre></div>
</div>
</div>
<div class="section" id="output-files">
<h2>Output Files<a class="headerlink" href="#output-files" title="Permalink to this headline"></a></h2>
<div class="section" id="simulationoutput">
<span id="observationlog-simout"></span><h3>SimulationOutput<a class="headerlink" href="#simulationoutput" title="Permalink to this headline"></a></h3>
<p>Every successful run (single experiment) generates a single file, normally called <code class="docutils literal notranslate"><span class="pre">simulationOutput.xml</span></code> (see :ref:’observationlog_parameterization’).
The output can contain multiple invocations of the same configuration with different random seeds.
For each invocation a RunResult is stored, which contains information about the agents and their parameters.
As well as run specific events and parameters.</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;SimulationOutput&gt;</span>
<span class="nt">&lt;RunResults&gt;</span>
<span class="nt">&lt;RunResult</span> <span class="na">RunId=</span><span class="s">&quot;0&quot;</span><span class="nt">&gt;</span>
...
<span class="nt">&lt;/RunResult&gt;</span>
<span class="nt">&lt;RunResult</span> <span class="na">RunId=</span><span class="s">&quot;1&quot;</span><span class="nt">&gt;</span>
...
<span class="nt">&lt;/RunResult&gt;</span>
<span class="nt">&lt;/RunResults&gt;</span>
<span class="nt">&lt;/SimulationOutput&gt;</span>
</pre></div>
</div>
<p>The RunResult consist out of the following parts:</p>
<ul class="simple">
<li><p><a class="reference internal" href="#observationlog-runstatistics"><span class="std std-ref">RunStatistics</span></a></p></li>
<li><p><a class="reference internal" href="#observationlog-events"><span class="std std-ref">Events</span></a></p></li>
<li><p><a class="reference internal" href="#observationlog-agents"><span class="std std-ref">Agents</span></a></p></li>
<li><p><a class="reference internal" href="#observationlog-cyclics"><span class="std std-ref">Cyclics</span></a></p></li>
</ul>
<div class="section" id="runstatistics">
<span id="observationlog-runstatistics"></span><h4>RunStatistics<a class="headerlink" href="#runstatistics" title="Permalink to this headline"></a></h4>
<p>This section contains the RandomSeed and general statistics of the invocation.</p>
<table class="tight-table docutils align-default">
<colgroup>
<col style="width: 26%" />
<col style="width: 74%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Tag</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>RandomSeed</p></td>
<td><p>Random seed used for this invocation</p></td>
</tr>
<tr class="row-odd"><td><p>VisibilityDistance</p></td>
<td><p>Visibility distance of the world</p></td>
</tr>
<tr class="row-even"><td><p>StopReason</p></td>
<td><p>Displays the reason why the simulation stopped.
Currently only due to time out.</p></td>
</tr>
<tr class="row-odd"><td><p>StopTime</p></td>
<td><p>Currently not used and set to -1</p></td>
</tr>
<tr class="row-even"><td><p>EgoAccident</p></td>
<td><p>Flag which shows whether the ego agent was involved in an accident</p></td>
</tr>
<tr class="row-odd"><td><p>TotalDistanceTraveled</p></td>
<td><p>Total traveled distance of all agents</p></td>
</tr>
<tr class="row-even"><td><p>EgoDistanceTraveled</p></td>
<td><p>Total traveled distance of ego vehicle only</p></td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="events">
<span id="observationlog-events"></span><h4>Events<a class="headerlink" href="#events" title="Permalink to this headline"></a></h4>
<p>This section contains all events that occurred during the invocation.
Event can either be triggered by an EventDetector, Manipulator or by certain vehicle components.
They are used to track special behavior in the simulation.</p>
<table class="tight-table docutils align-default">
<colgroup>
<col style="width: 21%" />
<col style="width: 79%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Attribute</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>Time</p></td>
<td><p>Time in ms when the event occurred.</p></td>
</tr>
<tr class="row-odd"><td><p>Source</p></td>
<td><p>Name of the component which created the event.
<code class="docutils literal notranslate"><span class="pre">OpenSCENARIO</span></code>, if triggered by an OpenSCENARIO condition.</p></td>
</tr>
<tr class="row-even"><td><p>Name</p></td>
<td><p>In case of an OpenSCENARIO event, a path expression Story/Act/Sequence/Maneuver/Event
using the names of the corresponding tags as described in the OpenSCENARIO file.
Otherwise determined by the triggering component.</p></td>
</tr>
<tr class="row-odd"><td><p>TriggeringEntities</p></td>
<td><p>List of entity IDs triggering this event.</p></td>
</tr>
<tr class="row-even"><td><p>AffectedEntities</p></td>
<td><p>List of entity IDs affected by this event.</p></td>
</tr>
<tr class="row-odd"><td><p>Parameters</p></td>
<td><p>List of generic key/value string pairs.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="important-events">
<h4>Important Events<a class="headerlink" href="#important-events" title="Permalink to this headline"></a></h4>
<p>Some of the Events are logged for other applications to use, for instance the <strong>openPASS</strong> Visualizer.
These Events can be identified by their Name and are listed below:</p>
<table class="tight-table docutils align-default">
<colgroup>
<col style="width: 19%" />
<col style="width: 81%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Attribute</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>TrafficLight</p></td>
<td><p>TrafficLight Events are triggered once a TrafficLightController changes the state of it’s
Trafficlight bulbs. Parameters include the traffic_light_state and the opendrive_id which
links to a dynamic signal in the scenery configuration. traffic_light_state is going to
be used by the <strong>openPASS</strong> Visualizer. The initial state of the ThreeSignalsTrafficLight is posted too.</p></td>
</tr>
</tbody>
</table>
<p>The change in the active component of longitudinal and/or lateral control is also logged as event with name “ActiveComponentChange”.</p>
</div>
<div class="section" id="agents">
<span id="observationlog-agents"></span><h4>Agents<a class="headerlink" href="#agents" title="Permalink to this headline"></a></h4>
<p>This section contains some information on how each agent is configured.</p>
<table class="tight-table docutils align-default">
<colgroup>
<col style="width: 26%" />
<col style="width: 74%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Attribute</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>Id</p></td>
<td><p>Identification number</p></td>
</tr>
<tr class="row-odd"><td><p>AgentTypeGroupName</p></td>
<td><p>The agent category. This can either be Ego, Scenario or Common</p></td>
</tr>
<tr class="row-even"><td><p>AgentTypeName</p></td>
<td><p>Name of the agent profile</p></td>
</tr>
<tr class="row-odd"><td><p>VehicleModelType</p></td>
<td><p>Name of the vehicle model</p></td>
</tr>
<tr class="row-even"><td><p>DriverProfileName</p></td>
<td><p>Name of the driver profile</p></td>
</tr>
</tbody>
</table>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Agent</span> <span class="na">Id=</span><span class="s">&quot;0&quot;</span>
<span class="na">AgentTypeGroupName=</span><span class="s">&quot;Ego&quot;</span>
<span class="na">AgentTypeName=</span><span class="s">&quot;MiddleClassCarAgent&quot;</span>
<span class="na">VehicleModelType=</span><span class="s">&quot;car_bmw_7&quot;</span>
<span class="na">DriverProfileName=</span><span class="s">&quot;Regular&quot;</span><span class="nt">&gt;</span>
</pre></div>
</div>
<p>The VehicleAttributes tag lists basic information of the vehicle parameters.</p>
<table class="tight-table docutils align-default">
<colgroup>
<col style="width: 23%" />
<col style="width: 77%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Attribute</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>Width</p></td>
<td><p>Width of the vehicles bounding box</p></td>
</tr>
<tr class="row-odd"><td><p>Length</p></td>
<td><p>Length of the vehicles bounding box</p></td>
</tr>
<tr class="row-even"><td><p>Height</p></td>
<td><p>Height of the vehicles bounding box</p></td>
</tr>
<tr class="row-odd"><td><p>LongitudinalPivotOffset</p></td>
<td><p>Distance between center of the bounding box and reference point of the agent.
Positive distances are closer to the front of the vehicle.
Negative distances are closer to the rear of the vehicle.</p></td>
</tr>
</tbody>
</table>
<p>The Components tag lists all instantiated components from the SystemProfile.</p>
<table class="tight-table docutils align-default">
<colgroup>
<col style="width: 23%" />
<col style="width: 77%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Attribute</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>Type</p></td>
<td><p>Type of the component</p></td>
</tr>
<tr class="row-odd"><td><p>Profile</p></td>
<td><p>Name of the component profile</p></td>
</tr>
</tbody>
</table>
<p>The Sensors tag lists all sensors of the agent and their parameters.</p>
<table class="tight-table docutils align-default">
<colgroup>
<col style="width: 25%" />
<col style="width: 75%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Attribute</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>Name</p></td>
<td><p>Name of the component</p></td>
</tr>
<tr class="row-odd"><td><p>Model</p></td>
<td><p>Type of the sensor</p></td>
</tr>
<tr class="row-even"><td><p>MountingPosLongitudinal</p></td>
<td><p>Relative longitudinal position of the sensor in relation to the agent</p></td>
</tr>
<tr class="row-odd"><td><p>MountingPosLateral</p></td>
<td><p>Relative lateral position of the sensor in relation to the agent</p></td>
</tr>
<tr class="row-even"><td><p>MountingPosHeight</p></td>
<td><p>Relative height of the sensor in relation to the agent</p></td>
</tr>
<tr class="row-odd"><td><p>OrientationPitch</p></td>
<td><p>Pitch rotation of the sensor in relation to the agent</p></td>
</tr>
<tr class="row-even"><td><p>OrientationYaw</p></td>
<td><p>Yaw rotation of the sensor in relation to the agent</p></td>
</tr>
<tr class="row-odd"><td><p>OpeningAngleH</p></td>
<td><p>Horizontal opening angle of the sensor</p></td>
</tr>
<tr class="row-even"><td><p>OpeningAngleV</p></td>
<td><p>Vertical opening angle of the sensor</p></td>
</tr>
<tr class="row-odd"><td><p>DetectionRange</p></td>
<td><p>Range how far the sensor reaches in m</p></td>
</tr>
</tbody>
</table>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Calculation of visual obstruction is currently supported only by the Geometric2D sensor.
See <a class="reference internal" href="../configs/systemconfigblueprint.html#systemconfigblueprint"><span class="std std-ref">SystemConfigBlueprint</span></a> for configuration.</p>
</div>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Sensor</span> <span class="na">Name=</span><span class="s">&quot;Geometric2DFront&quot;</span>
<span class="na">Model=</span><span class="s">&quot;Geometric2D&quot;</span>
<span class="na">MountingPosLongitudinal=</span><span class="s">&quot;0&quot;</span>
<span class="na">MountingPosLateral=</span><span class="s">&quot;0&quot;</span>
<span class="na">MountingPosHeight=</span><span class="s">&quot;0.5&quot;</span>
<span class="na">OrientationPitch=</span><span class="s">&quot;0&quot;</span>
<span class="na">OrientationYaw=</span><span class="s">&quot;0&quot;</span>
<span class="na">OpeningAngleH=</span><span class="s">&quot;20&quot;</span>
<span class="na">OpeningAngleV=</span><span class="s">&quot;-999&quot;</span>
<span class="na">DetectionRange=</span><span class="s">&quot;300&quot;</span> <span class="nt">/&gt;</span>
</pre></div>
</div>
</div>
<div class="section" id="cyclics">
<span id="observationlog-cyclics"></span><h4>Cyclics<a class="headerlink" href="#cyclics" title="Permalink to this headline"></a></h4>
<p>If the parameter <code class="docutils literal notranslate"><span class="pre">LoggingCyclicsToCsv</span></code> is set to <code class="docutils literal notranslate"><span class="pre">false</span></code>, this section contains all logged parameters of the agents per time step.
The tag <code class="docutils literal notranslate"><span class="pre">header</span></code> defines the layout of all samples.
Each entry of the header consists of the agent id and the name of the logged value, in the form <code class="docutils literal notranslate"><span class="pre">ID:SAMPLE_NAME</span></code>.
A sample contains all information for one specific time step.
If an agent does not exist at the current time step, the value is ‘ ‘.</p>
<p><strong>Example</strong></p>
<p>In this example exist two agents with the ids 0 and 1.
Two time steps were being tracked, one at 0 seconds and one at 100 ms.
Agent 0 has a constant velocity of 30 m/s and starts at the position X: 100 and Y: 50.
Agent 1 has a initial velocity of 40 m/s and starts at the position X: 200 and Y: 50.</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Cyclics&gt;</span>
<span class="nt">&lt;Header&gt;</span>00:VelocityEgo, 00:XPosition, 00:YPosition, 00:YawAngle, 01:VelocityEgo, 01:XPosition, 01:YPosition, 01:YawAngle<span class="nt">&lt;/Header&gt;</span>
<span class="nt">&lt;Samples&gt;</span>
<span class="nt">&lt;Sample</span> <span class="na">Time=</span><span class="s">&quot;0&quot;</span><span class="nt">&gt;</span>30, 100, 50, 0, 40, 200, 50, 0<span class="nt">&lt;/Sample&gt;</span>
<span class="nt">&lt;Sample</span> <span class="na">Time=</span><span class="s">&quot;100&quot;</span><span class="nt">&gt;</span>30, 103, 50, 0, 40, 204, 50, 0<span class="nt">&lt;/Sample&gt;</span>
<span class="nt">&lt;/Samples&gt;</span>
<span class="nt">&lt;/Cyclics&gt;</span>
</pre></div>
</div>
<p>If the parameter <code class="docutils literal notranslate"><span class="pre">LoggingCyclicsToCsv</span></code> is set to <code class="docutils literal notranslate"><span class="pre">true</span></code>, this section only contains a reference to the corresponding CSV file, e.g.</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Cyclics&gt;</span>
<span class="nt">&lt;CyclicsFile&gt;</span>Cyclics_Run_000.csv<span class="nt">&lt;/CyclicsFile&gt;</span>
<span class="nt">&lt;/Cyclics&gt;</span>
</pre></div>
</div>
<p>For each invocation, the file number of the filename is incremented, starting with <code class="docutils literal notranslate"><span class="pre">Cyclics_Run_000.csv</span></code>.</p>
</div>
</div>
<div class="section" id="cyclics-run">
<h3>Cyclics_Run_###<a class="headerlink" href="#cyclics-run" title="Permalink to this headline"></a></h3>
<p>This file contains the samples as described in :ref:’observationlog_cyclics’, but with the time step as leading column.</p>
<p><strong>Example</strong></p>
<table class="docutils align-default">
<colgroup>
<col style="width: 8%" />
<col style="width: 13%" />
<col style="width: 11%" />
<col style="width: 11%" />
<col style="width: 10%" />
<col style="width: 13%" />
<col style="width: 11%" />
<col style="width: 11%" />
<col style="width: 10%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Timestep</p></th>
<th class="head"><p>00:VelocityEgo</p></th>
<th class="head"><p>00:XPosition</p></th>
<th class="head"><p>00:YPosition</p></th>
<th class="head"><p>00:YawAngle</p></th>
<th class="head"><p>01:VelocityEgo</p></th>
<th class="head"><p>01:XPosition</p></th>
<th class="head"><p>01:YPosition</p></th>
<th class="head"><p>01:YawAngle</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>0</p></td>
<td><p>30</p></td>
<td><p>100</p></td>
<td><p>50</p></td>
<td><p>0</p></td>
<td><p>40</p></td>
<td><p>200</p></td>
<td><p>50</p></td>
<td><p>0</p></td>
</tr>
<tr class="row-odd"><td><p>100</p></td>
<td><p>30</p></td>
<td><p>103</p></td>
<td><p>50</p></td>
<td><p>0</p></td>
<td><p>40</p></td>
<td><p>204</p></td>
<td><p>50</p></td>
<td><p>0</p></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="observation_repository.html" class="btn btn-neutral float-right" title="Observation_EntityRepository" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="../configs/simulationconfig.html" class="btn btn-neutral float-left" title="SimulationConfig" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&#169; Copyright 2023 openPASS Working Group.
</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>