blob: 6d136d88ab43b947d4a9d0f83f54a5e88269d45c [file] [log] [blame]
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Scenario &mdash; OpenPASS Documentation</title>
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" />
<link rel="stylesheet" href="../../_static/tabs.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 data-url_root="../../" id="documentation_options" 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 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="Scenery" href="scenery.html" />
<link rel="prev" title="ProfilesCatalog" href="profilescatalog.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">
0.9.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="Navigation menu">
<p class="caption" role="heading"><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/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" role="heading"><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"><a class="reference internal" href="../30_gui_plugins.html">GUI Plugins</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../40_configs_in_depth.html">Configs in Depth</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="profilescatalog.html">ProfilesCatalog</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Scenario</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="#parameterdeclarations">ParameterDeclarations</a></li>
<li class="toctree-l3"><a class="reference internal" href="#catalogs">Catalogs</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#vehiclecatalog">VehicleCatalog</a></li>
<li class="toctree-l4"><a class="reference internal" href="#pedestriancatalog">PedestrianCatalog</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#roadnetwork">RoadNetwork</a></li>
<li class="toctree-l3"><a class="reference internal" href="#entities">Entities</a></li>
<li class="toctree-l3"><a class="reference internal" href="#storyboard">Storyboard</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#init">Init</a></li>
<li class="toctree-l4"><a class="reference internal" href="#story">Story</a></li>
<li class="toctree-l4"><a class="reference internal" href="#stoptrigger">StopTrigger</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="scenery.html">Scenery</a></li>
<li class="toctree-l2"><a class="reference internal" href="simulationconfig.html">SimulationConfig</a></li>
<li class="toctree-l2"><a class="reference internal" href="staticsystemconfig.html">Static SystemConfig</a></li>
<li class="toctree-l2"><a class="reference internal" href="systemconfigblueprint.html">SystemConfigBlueprint</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../50_outputs_in_depth.html">Outputs in Depth</a></li>
<li class="toctree-l1"><a class="reference internal" href="../60_scenario_simulation.html">Simulator</a></li>
</ul>
<p class="caption" role="heading"><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" role="heading"><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>
</ul>
<p class="caption" role="heading"><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_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="Mobile navigation menu" >
<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="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../40_configs_in_depth.html">Configs in Depth</a> &raquo;</li>
<li>Scenario</li>
<li class="wy-breadcrumbs-aside">
<a href="../../_sources/user_guide/configs/scenario.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">
<section id="scenario">
<span id="id1"></span><h1>Scenario<a class="headerlink" href="#scenario" title="Permalink to this headline"></a></h1>
<section id="overview">
<span id="scenario-overview"></span><h2>Overview<a class="headerlink" href="#overview" title="Permalink to this headline"></a></h2>
<p>The scenario configuration file describes all dynamic configuration of a simulation run, i.e. the position of an agent as well as conditional events that alter the behavior of the simulation during the run.
It adheres to the <strong>ASAM OpenSCENARIO 1.0</strong> standard, although we support only a subset of the features of the standard.</p>
<p>The different parts of the scenario configuration are described in the following chapters.</p>
</section>
<section id="parameterdeclarations">
<span id="scenario-parameterdeclaration"></span><h2>ParameterDeclarations<a class="headerlink" href="#parameterdeclarations" title="Permalink to this headline"></a></h2>
<p>The tag <code class="docutils literal notranslate"><span class="pre">ParameterDeclarations</span></code> allow to define generic parameters, which can be referenced later the file by its name, prefixed with <code class="docutils literal notranslate"><span class="pre">$</span></code>.</p>
<p><strong>Example declaration</strong></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;ParameterDeclarations&gt;</span>
<span class="nt">&lt;ParameterDeclaration</span> <span class="na">name=</span><span class="s">&quot;OP_OSC_SchemaVersion&quot;</span> <span class="na">parameterType=</span><span class="s">&quot;string&quot;</span> <span class="na">value=</span><span class="s">&quot;0.4.0&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/ParameterDeclarations&gt;</span>
</pre></div>
</div>
<p><strong>Example usage</strong></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;SimulationTimeCondition</span> <span class="na">value=</span><span class="s">&quot;30.0&quot;</span> <span class="na">rule=</span><span class="s">&quot;greaterThan&quot;</span><span class="nt">/&gt;</span>
</pre></div>
</div>
<p><strong>Supported parameterTypes</strong></p>
<ul class="simple">
<li><p>string</p></li>
<li><p>integer</p></li>
<li><p>double</p></li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Only <code class="docutils literal notranslate"><span class="pre">string</span></code> allows empty values.</p>
</div>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>The parameter <code class="docutils literal notranslate"><span class="pre">OP_OSC_SchemaVersion</span></code> is used to check for schema compatibility and is mandatory within <strong>openPASS</strong>.</p>
</div>
</section>
<section id="catalogs">
<span id="scenario-catalogs"></span><h2>Catalogs<a class="headerlink" href="#catalogs" title="Permalink to this headline"></a></h2>
<p>The <code class="docutils literal notranslate"><span class="pre">Catalogs</span></code> tag defines references to various other files containing sub features of OpenSCENARIO (and written in the same format).</p>
<p>The following catalogs interpreted:</p>
<ul class="simple">
<li><p>Mandatory: <a class="reference internal" href="#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a></p></li>
<li><p>Mandatory: <a class="reference internal" href="#scenario-pedestrianmodels"><span class="std std-ref">PedestrianCatalog</span></a></p></li>
<li><p>Optional: TrajectoryCatalog for the case that a <em>FollowTrajectory action</em> is defined</p></li>
</ul>
<p><strong>Example</strong></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;CatalogLocations&gt;</span>
<span class="nt">&lt;VehicleCatalog&gt;</span>
<span class="nt">&lt;Directory</span> <span class="na">path=</span><span class="s">&quot;VehicleModelsCatalog.xosc&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/VehicleCatalog&gt;</span>
<span class="nt">&lt;PedestrianCatalog&gt;</span>
<span class="nt">&lt;Directory</span> <span class="na">path=</span><span class="s">&quot;PedestrianModelsCatalog.xosc&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/PedestrianCatalog&gt;</span>
<span class="nt">&lt;ControllerCatalog&gt;</span>
<span class="nt">&lt;Directory</span> <span class="na">path=</span><span class="s">&quot;&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/ControllerCatalog&gt;</span>
<span class="nt">&lt;ManeuverCatalog&gt;</span>
<span class="nt">&lt;Directory</span> <span class="na">path=</span><span class="s">&quot;&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/ManeuverCatalog&gt;</span>
<span class="nt">&lt;MiscObjectCatalog&gt;</span>
<span class="nt">&lt;Directory</span> <span class="na">path=</span><span class="s">&quot;&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/MiscObjectCatalog&gt;</span>
<span class="nt">&lt;EnvironmentCatalog&gt;</span>
<span class="nt">&lt;Directory</span> <span class="na">path=</span><span class="s">&quot;&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/EnvironmentCatalog&gt;</span>
<span class="nt">&lt;TrajectoryCatalog&gt;</span>
<span class="nt">&lt;Directory</span> <span class="na">path=</span><span class="s">&quot;&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/TrajectoryCatalog&gt;</span>
<span class="nt">&lt;RouteCatalog&gt;</span>
<span class="nt">&lt;Directory</span> <span class="na">path=</span><span class="s">&quot;&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/RouteCatalog&gt;</span>
<span class="nt">&lt;/CatalogLocations&gt;</span>
</pre></div>
</div>
<section id="vehiclecatalog">
<span id="scenario-vehiclemodels"></span><h3>VehicleCatalog<a class="headerlink" href="#vehiclecatalog" title="Permalink to this headline"></a></h3>
<p>This file is mandatory.
It contains the available vehicle models for the simulation.
For each vehicle the physical parameters are stored here.</p>
<p><strong>Supported models:</strong></p>
<ul class="simple">
<li><p>car_bmw_i3</p></li>
<li><p>car_bmw_3</p></li>
<li><p>car_bmw_7_1</p></li>
<li><p>car_bmw_7_2</p></li>
<li><p>car_mini_cooper</p></li>
<li><p>bus</p></li>
<li><p>truck</p></li>
<li><p>bicycle</p></li>
</ul>
<p><strong>Full Example:</strong> <a class="reference download internal" download="" href="../../_downloads/0965737f605655fed8aac44efd5903a6/VehicleModelsCatalog.xosc"><code class="xref download docutils literal notranslate"><span class="pre">/../../../tuev/sim/contrib/examples/Common/VehicleModelsCatalog.xosc</span></code></a></p>
</section>
<section id="pedestriancatalog">
<span id="scenario-pedestrianmodels"></span><h3>PedestrianCatalog<a class="headerlink" href="#pedestriancatalog" title="Permalink to this headline"></a></h3>
<p>This file is mandatory.
It contains the available pedestrian models for the simulation.
For each pedestrian the physical parameters are stored here.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Currently, pedestrian models are internally handled the same way as vehicle models, i.e. they behave like simplified vehicles.
For convenience, <strong>openPASS</strong> internally sets <em>meaningless</em> parameters, such as <em>number of gears</em>, to operational defaults.</p>
</div>
<p><strong>Supported models:</strong></p>
<ul class="simple">
<li><p>pedestrian_child</p></li>
<li><p>pedestrian_adult</p></li>
</ul>
<p><strong>Full Example:</strong> <a class="reference download internal" download="" href="../../_downloads/85825bd0d23525c6407fa4bf464a1ca3/PedestrianModelsCatalog.xosc"><code class="xref download docutils literal notranslate"><span class="pre">/../../../tuev/sim/contrib/examples/Common/PedestrianModelsCatalog.xosc</span></code></a></p>
</section>
</section>
<section id="roadnetwork">
<span id="scenario-roadnetwork"></span><h2>RoadNetwork<a class="headerlink" href="#roadnetwork" title="Permalink to this headline"></a></h2>
<p>The <code class="docutils literal notranslate"><span class="pre">RoadNetwork</span></code> tag contains the mandatory reference to the OpenDRIVE <a class="reference internal" href="scenery.html#scenery"><span class="std std-ref">Scenery</span></a>.</p>
<p><strong>Example</strong></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;RoadNetwork&gt;</span>
<span class="nt">&lt;LogicFile</span> <span class="na">filepath=</span><span class="s">&quot;SceneryConfiguration.xodr&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;SceneGraphFile</span> <span class="na">filepath=</span><span class="s">&quot;&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/RoadNetwork&gt;</span>
</pre></div>
</div>
<p>Furthermore the controllers of the traffic lights are defined in this section.
Each controller defines the phases of a set of linked traffic lights (e.g. one junction).
The state must be one of the following: “red”, “yellow”, “green”, “red yellow”.</p>
<p>Example</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;TrafficSignals&gt;</span>
<span class="nt">&lt;TrafficSignalController</span> <span class="na">name=</span><span class="s">&quot;&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;Phase</span> <span class="na">duration=</span><span class="s">&quot;3&quot;</span> <span class="na">name=</span><span class="s">&quot;Phase1&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;TrafficSignalState</span> <span class="na">state=</span><span class="s">&quot;green&quot;</span> <span class="na">trafficSignalId=</span><span class="s">&quot;1&quot;</span> <span class="nt">/&gt;</span>
<span class="nt">&lt;/Phase&gt;</span>
<span class="nt">&lt;Phase</span> <span class="na">duration=</span><span class="s">&quot;3&quot;</span> <span class="na">name=</span><span class="s">&quot;Phase2&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;TrafficSignalState</span> <span class="na">state=</span><span class="s">&quot;yellow&quot;</span> <span class="na">trafficSignalId=</span><span class="s">&quot;1&quot;</span> <span class="nt">/&gt;</span>
<span class="nt">&lt;/Phase&gt;</span>
<span class="nt">&lt;Phase</span> <span class="na">duration=</span><span class="s">&quot;3&quot;</span> <span class="na">name=</span><span class="s">&quot;Phase3&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;TrafficSignalState</span> <span class="na">state=</span><span class="s">&quot;red&quot;</span> <span class="na">trafficSignalId=</span><span class="s">&quot;1&quot;</span> <span class="nt">/&gt;</span>
<span class="nt">&lt;/Phase&gt;</span>
<span class="nt">&lt;Phase</span> <span class="na">duration=</span><span class="s">&quot;3&quot;</span> <span class="na">name=</span><span class="s">&quot;Phase4&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;TrafficSignalState</span> <span class="na">state=</span><span class="s">&quot;red yellow&quot;</span> <span class="na">trafficSignalId=</span><span class="s">&quot;1&quot;</span> <span class="nt">/&gt;</span>
<span class="nt">&lt;/Phase&gt;</span>
<span class="nt">&lt;/TrafficSignalController&gt;</span>
<span class="nt">&lt;/TrafficSignals&gt;</span>
</pre></div>
</div>
<p>Currently these states are supported</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 100%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p>off</p></td>
</tr>
<tr class="row-even"><td><p>red</p></td>
</tr>
<tr class="row-odd"><td><p>yellow</p></td>
</tr>
<tr class="row-even"><td><p>green</p></td>
</tr>
<tr class="row-odd"><td><p>red yellow</p></td>
</tr>
<tr class="row-even"><td><p>yellow flashing</p></td>
</tr>
</tbody>
</table>
</section>
<section id="entities">
<span id="scenario-entities"></span><h2>Entities<a class="headerlink" href="#entities" title="Permalink to this headline"></a></h2>
<p>The <code class="docutils literal notranslate"><span class="pre">Entities</span></code> tag defines all agents that are present at the start of the simulation at predefined positions.
There may be any number of these so called <strong>Scenario Agents</strong> (also zero).
Each entity is described by a name and a reference to a vehicle profile within the <a class="reference internal" href="profilescatalog.html#profilescatalog"><span class="std std-ref">ProfilesCatalog</span></a>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This deviates from the OpenSCENARIO standard.</p>
</div>
<div class="admonition-todo admonition" id="id2">
<p class="admonition-title">Todo</p>
<p>In what way do scenario agents deviate from the standard?</p>
</div>
<p>To specify an entity as the <strong>Ego Agent</strong>, the it must be named “Ego”.</p>
<p>Entities can also be grouped into selections.</p>
<div class="admonition-todo admonition" id="id3">
<p class="admonition-title">Todo</p>
<p>What is an EntitySelection?</p>
</div>
<p><strong>Example</strong></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Entities&gt;</span>
<span class="nt">&lt;ScenarioObject</span> <span class="na">name=</span><span class="s">&quot;Ego&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;CatalogReference</span> <span class="na">catalogName=</span><span class="s">&quot;ProfilesCatalog.xml&quot;</span> <span class="na">entryName=</span><span class="s">&quot;MiddleClassCarAgent&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/ScenarioObject&gt;</span>
<span class="nt">&lt;EntitySelection</span> <span class="na">name=</span><span class="s">&quot;ScenarioAgents&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;Members/&gt;</span>
<span class="nt">&lt;/EntitySelection&gt;</span>
<span class="nt">&lt;/Entities&gt;</span>
</pre></div>
</div>
<p><strong>Overriding Parameters</strong></p>
<p>Parameters defined in the VehicleCatalog can be assigned inside the CatalogReference element.
In this case the assigned parameter will overwrite the definition in the VehicleCatalog.
Otherwise the value defined in the VehicleCatalog is used.
The type of the parameter must match that in the VehicleCatalog.</p>
<p><strong>Example</strong></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;CatalogReference</span> <span class="na">catalogName=</span><span class="s">&quot;ProfilesCatalog.xml&quot;</span> <span class="na">entryName=</span><span class="s">&quot;MiddleClassCarAgent&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;ParameterAssignments&gt;</span>
<span class="nt">&lt;ParameterAssignment</span> <span class="na">parameterRef=</span><span class="s">&quot;Length&quot;</span> <span class="na">value=</span><span class="s">&quot;4.0&quot;</span> <span class="nt">/&gt;</span>
<span class="nt">&lt;/ParameterAssignments&gt;</span>
<span class="nt">&lt;/CatalogReference&gt;</span>
</pre></div>
</div>
<div class="admonition-agentprofile-vs-vehiclemodel admonition">
<p class="admonition-title">AgentProfile vs. VehicleModel</p>
<p><strong>OpenPASS</strong> references AgentProfiles instead of a VehicleModels.
Such an AgentProfile may have a stochastic distribution of different VehicleModels, each with potentially different parameters.
After the random selection of the vehicle model, some parameters may not be available and are therefore not assigned (ignored).</p>
</div>
</section>
<section id="storyboard">
<span id="scenario-storyboard"></span><h2>Storyboard<a class="headerlink" href="#storyboard" title="Permalink to this headline"></a></h2>
<p>The <code class="docutils literal notranslate"><span class="pre">Storyboard</span></code> tag contains the initial setup of the scenario and manipulator actions.
These actions control the behavior of the simulation at runtime based on predefined conditions.</p>
<section id="init">
<span id="scenario-init"></span><h3>Init<a class="headerlink" href="#init" title="Permalink to this headline"></a></h3>
<p>The content of the <code class="docutils literal notranslate"><span class="pre">Init</span></code> tag is forwarded to the SpawnPoint and define <em>if</em> and <em>where</em> it should place the ego and scenario agents.
The position can either be defined as global coordinates (x and y) with the <code class="docutils literal notranslate"><span class="pre">World</span></code> tag or as lane coordinates (s and t) with the <code class="docutils literal notranslate"><span class="pre">Lane</span></code> tag.</p>
<p>The schema is defined as follows:</p>
<table class="tight-table docutils align-default">
<colgroup>
<col style="width: 26%" />
<col style="width: 24%" />
<col style="width: 32%" />
<col style="width: 18%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Tag</p></th>
<th class="head"><p>Parent</p></th>
<th class="head"><p>Attributes</p></th>
<th class="head"><p>Occurrences</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>Actions</p></td>
<td><p>Init</p></td>
<td><p><em>none</em></p></td>
<td><p>1</p></td>
</tr>
<tr class="row-odd"><td><p>Private</p></td>
<td><p>Actions</p></td>
<td><p>entityRef</p></td>
<td><p>1 per entity</p></td>
</tr>
<tr class="row-even"><td><p>PrivateAction</p></td>
<td><p>Private</p></td>
<td><p><em>none</em></p></td>
<td><p>1+</p></td>
</tr>
<tr class="row-odd"><td><p>TeleportAction</p></td>
<td><p>PrivateAction</p></td>
<td><p><em>none</em></p></td>
<td><p>1</p></td>
</tr>
<tr class="row-even"><td><p>Position</p></td>
<td><p>TeleportAction</p></td>
<td><p><em>none</em></p></td>
<td><p>1</p></td>
</tr>
<tr class="row-odd"><td><p>LanePosition</p></td>
<td><p>Position</p></td>
<td><p>roadId, laneId, s, offset</p></td>
<td><p>0 or 1</p></td>
</tr>
<tr class="row-even"><td><p>WorldPosition</p></td>
<td><p>Position</p></td>
<td><p>x, y, h</p></td>
<td><p>0 or 1</p></td>
</tr>
<tr class="row-odd"><td><p>Orientation</p></td>
<td><p>LanePosition</p></td>
<td><p>type, h</p></td>
<td><p>0 or 1</p></td>
</tr>
<tr class="row-even"><td><p>LongitudinalAction</p></td>
<td><p>PrivateAction</p></td>
<td><p><em>none</em></p></td>
<td><p>1</p></td>
</tr>
<tr class="row-odd"><td><p>SpeedAction</p></td>
<td><p>LongitudinalAction</p></td>
<td><p><em>none</em></p></td>
<td><p>1</p></td>
</tr>
<tr class="row-even"><td><p>SpeedActionDynamics</p></td>
<td><p>SpeedAction</p></td>
<td><p>rate, dynamicsShape</p></td>
<td><p>1</p></td>
</tr>
<tr class="row-odd"><td><p>SpeedActionTarget</p></td>
<td><p>SpeedAction</p></td>
<td><p><em>none</em></p></td>
<td><p>1</p></td>
</tr>
<tr class="row-even"><td><p>AbsoluteTargetSpeed</p></td>
<td><p>SpeedActionTarget</p></td>
<td><p>value</p></td>
<td><p>1</p></td>
</tr>
<tr class="row-odd"><td><p>RoutingAction</p></td>
<td><p>PrivateAction</p></td>
<td><p><em>none</em></p></td>
<td><p>0 or 1</p></td>
</tr>
<tr class="row-even"><td><p>AssignRouteAction</p></td>
<td><p>RoutingAction</p></td>
<td><p><em>none</em></p></td>
<td><p>1</p></td>
</tr>
<tr class="row-odd"><td><p>Route</p></td>
<td><p>AssignRouteAction</p></td>
<td><p><em>none</em></p></td>
<td><p>1</p></td>
</tr>
<tr class="row-even"><td><p>Waypoint</p></td>
<td><p>Route</p></td>
<td><p><em>none</em></p></td>
<td><p>1+</p></td>
</tr>
<tr class="row-odd"><td><p>Position</p></td>
<td><p>Waypoint</p></td>
<td><p><em>none</em></p></td>
<td><p>1</p></td>
</tr>
<tr class="row-even"><td><p>RoadPosition</p></td>
<td><p>Position</p></td>
<td><p>roadId, t</p></td>
<td><p>1</p></td>
</tr>
<tr class="row-odd"><td><p>VisibilityAction</p></td>
<td><p>PrivateAction</p></td>
<td><p>traffic</p></td>
<td><p>1</p></td>
</tr>
</tbody>
</table>
<p>All listed attributes are required.
The attributes have the following meaning:</p>
<table class="tight-table docutils align-default">
<colgroup>
<col style="width: 15%" />
<col style="width: 14%" />
<col style="width: 71%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Tag</p></th>
<th class="head"><p>Attribute</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>Private</p></td>
<td><p>entityRef</p></td>
<td><p>name of the entity for which the initial values are described in the sub-tags</p></td>
</tr>
<tr class="row-odd"><td><p>LanePosition</p></td>
<td><p>roadId</p></td>
<td><p>Id of the road in the Scenery</p></td>
</tr>
<tr class="row-even"><td><p>LanePosition</p></td>
<td><p>laneId</p></td>
<td><p>Id of the lane in the Scenery</p></td>
</tr>
<tr class="row-odd"><td><p>LanePosition</p></td>
<td><p>s</p></td>
<td><p>start position on the lane (i.e. distance from the start of the road) of the reference point</p></td>
</tr>
<tr class="row-even"><td><p>LanePosition</p></td>
<td><p>offset</p></td>
<td><p>lateral distance of the reference point to the middle of the road (i.e. t coordinate)</p></td>
</tr>
<tr class="row-odd"><td><p>WorldPosition</p></td>
<td><p>x</p></td>
<td><p>x coordinate of the reference point</p></td>
</tr>
<tr class="row-even"><td><p>WorldPosition</p></td>
<td><p>y</p></td>
<td><p>y coordinate of the reference point</p></td>
</tr>
<tr class="row-odd"><td><p>WorldPosition</p></td>
<td><p>h</p></td>
<td><p>heading</p></td>
</tr>
<tr class="row-even"><td><p>Orientation</p></td>
<td><p>type</p></td>
<td><p>has to be “relative”</p></td>
</tr>
<tr class="row-odd"><td><p>Orientation</p></td>
<td><p>h</p></td>
<td><p>heading angle in radiant relative to the lane</p></td>
</tr>
<tr class="row-even"><td><p>SpeedActionDynamics</p></td>
<td><p>rate</p></td>
<td><p>acceleration</p></td>
</tr>
<tr class="row-odd"><td><p>SpeedActionDynamics</p></td>
<td><p>dynamicsShape</p></td>
<td><p>“linear” for constant acceleration, “step” for immediate transition</p></td>
</tr>
<tr class="row-even"><td><p>SpeedActionDynamics</p></td>
<td><p>dynamicsDimension</p></td>
<td><p>has to be “rate”</p></td>
</tr>
<tr class="row-odd"><td><p>AbsoluteTargetSpeed</p></td>
<td><p>value</p></td>
<td><p>velocity</p></td>
</tr>
<tr class="row-even"><td><p>RoadPosition</p></td>
<td><p>roadId</p></td>
<td><p>Id of the road in the Scenery</p></td>
</tr>
<tr class="row-odd"><td><p>RoadPosition</p></td>
<td><p>t</p></td>
<td><p>negative for driving in roadDirection (i.e on lanes with negative Id) else positive</p></td>
</tr>
<tr class="row-even"><td><p>RoadPosition</p></td>
<td><p>s</p></td>
<td><p>ignored</p></td>
</tr>
<tr class="row-odd"><td><p>VisibilityAction</p></td>
<td><p>traffic</p></td>
<td><p>Flag deciding if the scenario agent will be spawned (true = spawned, false = not spawned)</p></td>
</tr>
</tbody>
</table>
<p><strong>Defining a Position</strong></p>
<p><strong>OpenPASS</strong> only supports <code class="docutils literal notranslate"><span class="pre">LanePosition</span></code> and <code class="docutils literal notranslate"><span class="pre">WorldPosition</span></code> from the OpenSCENARIO standard.</p>
<p><strong>Controlling Visibility</strong></p>
<p>VisibilityAction is an optional attribute, which allows easy parameterization of certain entities, e.g. via <a class="reference internal" href="#scenario-parameterdeclaration"><span class="std std-ref">ParameterDeclarations</span></a>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If VisibilityAction <strong>is not defined</strong> the according entity agent <strong>will be spawned</strong>.</p>
</div>
<p><strong>Follow Route Action</strong></p>
<p>This action is defined here in the init part of the Storyboard. See <a class="reference internal" href="#scenario-followrouteaction"><span class="std std-ref">FollowRouteAction</span></a></p>
<p><strong>Stochastic Values</strong></p>
<p>Unlike OpenSCENARIO, <strong>openPASS</strong> allows some of the aforementioned values to be stochastic.
This is achieved by using the sub-tag <code class="docutils literal notranslate"><span class="pre">Stochastics</span></code> within the tags <code class="docutils literal notranslate"><span class="pre">LanePosition</span></code> or <code class="docutils literal notranslate"><span class="pre">SpeedAction</span></code>:</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Stochastics</span> <span class="na">value=</span><span class="s">&quot;...&quot;</span> <span class="na">stdDeviation=</span><span class="s">&quot;...&quot;</span> <span class="na">lowerBound=</span><span class="s">&quot;...&quot;</span> <span class="na">upperBound=</span><span class="s">&quot;...&quot;</span><span class="nt">/&gt;</span>
</pre></div>
</div>
<p>The stochastics tag normally defines a normal distribution, but it is up to each component to interpret its values.
Here, value is a selector, which can be either <code class="docutils literal notranslate"><span class="pre">s</span></code>, <code class="docutils literal notranslate"><span class="pre">offset</span></code> (if inside LanePosition), <code class="docutils literal notranslate"><span class="pre">velocity</span></code> or <code class="docutils literal notranslate"><span class="pre">rate</span></code> (if inside SpeedAction).
Depending on the selected type, the actual mean value is then taken from the attribute of the corresponding tag <code class="docutils literal notranslate"><span class="pre">LanePosition</span></code>, <code class="docutils literal notranslate"><span class="pre">SpeedActionDynamics</span></code>, or <code class="docutils literal notranslate"><span class="pre">AbsoluteTargetSpeed</span></code>.</p>
<p><strong>Full Example</strong></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Init&gt;</span>
<span class="nt">&lt;Actions&gt;</span>
<span class="nt">&lt;Private</span> <span class="na">entityRef=</span><span class="s">&quot;Ego&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;PrivateAction&gt;</span>
<span class="nt">&lt;TeleportAction&gt;</span>
<span class="nt">&lt;Position&gt;</span>
<span class="nt">&lt;LanePosition</span> <span class="na">roadId=</span><span class="s">&quot;1&quot;</span> <span class="na">s=</span><span class="s">&quot;20.0&quot;</span> <span class="na">laneId=</span><span class="s">&quot;-2&quot;</span> <span class="na">offset=</span><span class="s">&quot;0.0&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;Orientation</span> <span class="na">type=</span><span class="s">&quot;relative&quot;</span> <span class="na">h=</span><span class="s">&quot;0.2&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;Stochastics</span> <span class="na">value=</span><span class="s">&quot;s&quot;</span> <span class="na">stdDeviation=</span><span class="s">&quot;5.0&quot;</span> <span class="na">lowerBound=</span><span class="s">&quot;10.0&quot;</span>
<span class="na">upperBound=</span><span class="s">&quot;30.0&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/LanePosition&gt;</span>
<span class="nt">&lt;/Position&gt;</span>
<span class="nt">&lt;/TeleportAction&gt;</span>
<span class="nt">&lt;/PrivateAction&gt;</span>
<span class="nt">&lt;PrivateAction&gt;</span>
<span class="nt">&lt;LongitudinalAction&gt;</span>
<span class="nt">&lt;SpeedAction&gt;</span>
<span class="nt">&lt;SpeedActionDynamics</span> <span class="na">rate=</span><span class="s">&quot;0.0&quot;</span> <span class="na">dynamicsShape=</span><span class="s">&quot;linear&quot;</span>
<span class="na">dynamicsDimension=</span><span class="s">&quot;rate&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;SpeedActionTarget&gt;</span>
<span class="nt">&lt;AbsoluteTargetSpeed</span> <span class="na">value=</span><span class="s">&quot;10.0&quot;</span> <span class="nt">/&gt;</span>
<span class="nt">&lt;/SpeedActionTarget&gt;</span>
<span class="nt">&lt;Stochastics</span> <span class="na">value=</span><span class="s">&quot;velocity&quot;</span> <span class="na">stdDeviation=</span><span class="s">&quot;2.0&quot;</span> <span class="na">lowerBound=</span><span class="s">&quot;5.0&quot;</span>
<span class="na">upperBound=</span><span class="s">&quot;15.0&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/SpeedAction&gt;</span>
<span class="nt">&lt;/LongitudinalAction&gt;</span>
<span class="nt">&lt;/PrivateAction&gt;</span>
<span class="nt">&lt;PrivateAction&gt;</span>
<span class="nt">&lt;RoutingAction&gt;</span>
<span class="nt">&lt;AssignRouteAction&gt;</span>
<span class="nt">&lt;Route&gt;</span>
<span class="nt">&lt;Waypoint&gt;</span>
<span class="nt">&lt;Position&gt;</span>
<span class="nt">&lt;RoadPosition</span> <span class="na">roadId=</span><span class="s">&quot;1&quot;</span> <span class="na">t=</span><span class="s">&quot;-1.0&quot;</span> <span class="na">s=</span><span class="s">&quot;0&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/Position&gt;</span>
<span class="nt">&lt;/Waypoint&gt;</span>
<span class="nt">&lt;Waypoint&gt;</span>
<span class="nt">&lt;Position&gt;</span>
<span class="nt">&lt;RoadPosition</span> <span class="na">roadId=</span><span class="s">&quot;2&quot;</span> <span class="na">t=</span><span class="s">&quot;-1.0&quot;</span> <span class="na">s=</span><span class="s">&quot;0&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/Position&gt;</span>
<span class="nt">&lt;/Waypoint&gt;</span>
<span class="nt">&lt;/Route&gt;</span>
<span class="nt">&lt;/AssignRouteAction&gt;</span>
<span class="nt">&lt;/RoutingAction&gt;</span>
<span class="nt">&lt;/PrivateAction&gt;</span>
<span class="nt">&lt;/Private&gt;</span>
<span class="nt">&lt;Private</span> <span class="na">entityRef=</span><span class="s">&quot;ScenarioAgent&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;PrivateAction&gt;</span>
<span class="nt">&lt;TeleportAction&gt;</span>
<span class="nt">&lt;Position&gt;</span>
<span class="nt">&lt;LanePosition</span> <span class="na">roadId=</span><span class="s">&quot;1&quot;</span> <span class="na">s=</span><span class="s">&quot;50.0&quot;</span> <span class="na">laneId=</span><span class="s">&quot;-3&quot;</span> <span class="na">offset=</span><span class="s">&quot;0.0&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/Position&gt;</span>
<span class="nt">&lt;/TeleportAction&gt;</span>
<span class="nt">&lt;/PrivateAction&gt;</span>
<span class="nt">&lt;PrivateAction&gt;</span>
<span class="nt">&lt;LongitudinalAction&gt;</span>
<span class="nt">&lt;SpeedAction&gt;</span>
<span class="nt">&lt;SpeedActionDynamics</span> <span class="na">rate=</span><span class="s">&quot;0.0&quot;</span> <span class="na">dynamicsShape=</span><span class="s">&quot;linear&quot;</span>
<span class="na">dynamicsDimension=</span><span class="s">&quot;rate&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;SpeedActionTarget&gt;</span>
<span class="nt">&lt;AbsoluteTargetSpeed</span> <span class="na">value=</span><span class="s">&quot;10.0&quot;</span> <span class="nt">/&gt;</span>
<span class="nt">&lt;/SpeedActionTarget&gt;</span>
<span class="nt">&lt;/SpeedAction&gt;</span>
<span class="nt">&lt;/LongitudinalAction&gt;</span>
<span class="nt">&lt;/PrivateAction&gt;</span>
<span class="nt">&lt;/Private&gt;</span>
<span class="nt">&lt;/Actions&gt;</span>
<span class="nt">&lt;/Init&gt;</span>
</pre></div>
</div>
</section>
<section id="story">
<span id="scenario-story"></span><h3>Story<a class="headerlink" href="#story" title="Permalink to this headline"></a></h3>
<p>The tag <code class="docutils literal notranslate"><span class="pre">Story</span></code> is optional and defines all conditional interventions during runtime.
The story consists of multiple acts, which itself can consist of multiple <code class="docutils literal notranslate"><span class="pre">ManeuverGroup</span></code> tags.
A maneuver groups must consist of exactly one <code class="docutils literal notranslate"><span class="pre">Actors</span></code> tag and one <code class="docutils literal notranslate"><span class="pre">Maneuver</span></code> tag.
The <code class="docutils literal notranslate"><span class="pre">maximumExecutionCount</span></code> attribute states the maximum number of times that each maneuver will by triggered.
To trigger an maneuver for an unlimited number of times, set the value to <code class="docutils literal notranslate"><span class="pre">-1,</span></code>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>While multiple stories can be added, grouping of maneuver groups into acts currently has no effect in the simulator.</p>
</div>
<p><strong>Example</strong></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Story</span> <span class="na">name=</span><span class="s">&quot;MyStory&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;Act</span> <span class="na">name=</span><span class="s">&quot;Act1&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;ManeuverGroup</span> <span class="na">name=</span><span class="s">&quot;MySequence&quot;</span> <span class="na">maximumExecutionCount=</span><span class="s">&quot;-1&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;Actors&gt;</span>
...
<span class="nt">&lt;/Actors&gt;</span>
<span class="nt">&lt;Maneuver</span> <span class="na">name=</span><span class="s">&quot;MyManeuver&quot;</span><span class="nt">&gt;</span>
...
<span class="nt">&lt;/Maneuver&gt;</span>
<span class="nt">&lt;/ManeuverGroup&gt;</span>
<span class="nt">&lt;/Act&gt;</span>
<span class="nt">&lt;/Story&gt;</span>
</pre></div>
</div>
<section id="actors">
<span id="scenario-actors"></span><h4>Actors<a class="headerlink" href="#actors" title="Permalink to this headline"></a></h4>
<p>The <code class="docutils literal notranslate"><span class="pre">Actors</span></code> tag defines the agents that are mainly affected by this sequence.
These agents can either be defined directly by stating their name within a sub-tag <code class="docutils literal notranslate"><span class="pre">&lt;EntityRef</span> <span class="pre">entityRef=&quot;entityName&quot;/&gt;</span></code> or as the agent that triggered the event itself via <code class="docutils literal notranslate"><span class="pre">&lt;Actors</span> <span class="pre">selectTriggeringEntities=&quot;true&quot;/&gt;</span></code>.</p>
</section>
<section id="maneuver">
<span id="scenario-maneuver"></span><h4>Maneuver<a class="headerlink" href="#maneuver" title="Permalink to this headline"></a></h4>
<p>The <code class="docutils literal notranslate"><span class="pre">Maneuver</span></code> tag defines the conditions, when an action shall take place.
It contains one or more events, each consisting of <strong>one</strong> action and <strong>one or more</strong> start conditions.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Only a single action is currently supported, although the standard allows several.</p>
</div>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Due to internal handling, event names must be unique.</p>
</div>
<p><strong>Example</strong></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Maneuver</span> <span class="na">name=</span><span class="s">&quot;MyManeuver&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;Event</span> <span class="na">name=</span><span class="s">&quot;MyEvent&quot;</span> <span class="na">priority=</span><span class="s">&quot;overwrite&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;Action</span> <span class="na">name=</span><span class="s">&quot;MyManipulator&quot;</span><span class="nt">&gt;</span>
...
<span class="nt">&lt;/Action&gt;</span>
<span class="nt">&lt;StartTrigger&gt;</span>
<span class="nt">&lt;ConditionGroup&gt;</span>
<span class="nt">&lt;Condition</span> <span class="na">name=</span><span class="s">&quot;Conditional&quot;</span><span class="nt">&gt;</span>
...
<span class="nt">&lt;/Condition&gt;</span>
<span class="nt">&lt;/ConditionGroup&gt;</span>
<span class="nt">&lt;/StartTrigger&gt;</span>
<span class="nt">&lt;/Event&gt;</span>
<span class="nt">&lt;/Maneuver&gt;</span>
</pre></div>
</div>
<section id="conditions">
<span id="scenario-conditions"></span><h5>Conditions<a class="headerlink" href="#conditions" title="Permalink to this headline"></a></h5>
<p><strong>OpenPASS</strong> support different kind of conditions, belonging either to <code class="docutils literal notranslate"><span class="pre">ByValueCondition</span></code> or <code class="docutils literal notranslate"><span class="pre">ByEntityCondition</span></code>.
While a <strong>by value condition</strong> trigger based on a specified value and is unrelated to any specific agent, a <strong>by entity condition</strong> is bound to an triggering agent, defined by a mandatory section <code class="docutils literal notranslate"><span class="pre">TriggeringEntities</span></code>.
Entities can be either ego or scenario agents, or all agents if the section is left blank.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>OpenSCENARIO specifies that a rule should be applied to the <code class="docutils literal notranslate"><span class="pre">TriggeringEntities</span></code> element.
Currently, only the rule <code class="docutils literal notranslate"><span class="pre">any</span></code> is supported, so any of the listed entities may satisfy the condition independent of the others.</p>
</div>
<table class="docutils align-default">
<colgroup>
<col style="width: 72%" />
<col style="width: 28%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Condition</p></th>
<th class="head"><p>Triggered By</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><a class="reference internal" href="#scenario-simulationtime"><span class="std std-ref">SimulationTime</span></a></p></td>
<td><p>Value</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#scenario-relativelaneposition"><span class="std std-ref">RelativeLanePosition</span></a></p></td>
<td><p>Entity</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#scenario-roadposition"><span class="std std-ref">RoadPosition</span></a></p></td>
<td><p>Entity</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#scenario-relativelaneposition"><span class="std std-ref">RelativeLanePosition</span></a></p></td>
<td><p>Entity</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#scenario-relativespeed"><span class="std std-ref">RelativeSpeed</span></a></p></td>
<td><p>Entity</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#scenario-timetocollision"><span class="std std-ref">TimeToCollision</span></a></p></td>
<td><p>Entity</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#scenario-timeheadway"><span class="std std-ref">TimeHeadway</span></a></p></td>
<td><p>Entity</p></td>
</tr>
</tbody>
</table>
<section id="simulationtime">
<span id="scenario-simulationtime"></span><h6>SimulationTime<a class="headerlink" href="#simulationtime" title="Permalink to this headline"></a></h6>
<p>Defines, when the simulation ends.
Triggers at a specified time value, given in seconds.
The rule is required and only <code class="docutils literal notranslate"><span class="pre">greaterThan</span></code> is currently supported.</p>
<p><strong>Example</strong></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Condition</span> <span class="na">name=</span><span class="s">&quot;EndTime&quot;</span> <span class="na">delay=</span><span class="s">&quot;0&quot;</span> <span class="na">conditionEdge=</span><span class="s">&quot;rising&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;ByValueCondition&gt;</span>
<span class="nt">&lt;SimulationTimeCondition</span> <span class="na">value=</span><span class="s">&quot;30.0&quot;</span> <span class="na">rule=</span><span class="s">&quot;greaterThan&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/ByValueCondition&gt;</span>
<span class="nt">&lt;/Condition&gt;</span>
</pre></div>
</div>
</section>
<section id="relativelaneposition">
<span id="scenario-relativelaneposition"></span><h6>RelativeLanePosition<a class="headerlink" href="#relativelaneposition" title="Permalink to this headline"></a></h6>
<p>Triggers if an entity is within a relative lane position with respect to the specified object.
Here, <em>ds</em> (s-delta) and <em>dLane</em> (lane-delta) are applied to a reference <em>object</em>, e.g. <code class="docutils literal notranslate"><span class="pre">referenceEntity.s</span> <span class="pre">+</span> <span class="pre">ds</span></code>.
The tolerance is then added and subtracted from the resulting s-coordinate to form a triggering zone.
The condition is satisfied, if a TriggeringEntity touches this zone.</p>
<p><strong>Example</strong></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Condition</span> <span class="na">name=</span><span class="s">&quot;RelativeLanePosition&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;ByEntityCondition&gt;</span>
<span class="nt">&lt;TriggeringEntities</span> <span class="na">triggeringEntitiesRule=</span><span class="s">&quot;any&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;EntityRef</span> <span class="na">entityRef=</span><span class="s">&quot;Ego&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/TriggeringEntities&gt;</span>
<span class="nt">&lt;EntityCondition&gt;</span>
<span class="nt">&lt;ReachPositionCondition</span> <span class="na">tolerance=</span><span class="s">&quot;15.0&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;Position&gt;</span>
<span class="nt">&lt;RelativeLanePosition</span> <span class="na">entityRef=</span><span class="s">&quot;StandingAgent&quot;</span> <span class="na">dLane=</span><span class="s">&quot;-1&quot;</span> <span class="na">ds=</span><span class="s">&quot;20.0&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/Position&gt;</span>
<span class="nt">&lt;/ReachPositionCondition&gt;</span>
<span class="nt">&lt;/EntityCondition&gt;</span>
<span class="nt">&lt;/ByEntityCondition&gt;</span>
<span class="nt">&lt;/Condition&gt;</span>
</pre></div>
</div>
</section>
<section id="roadposition">
<span id="scenario-roadposition"></span><h6>RoadPosition<a class="headerlink" href="#roadposition" title="Permalink to this headline"></a></h6>
<p>This Condition evaluates if a TriggeringEntity touches a given s-coordinate, <em>s</em>, on a specified road, given by <em>roadId</em>.
Note that the tolerance is added and subtracted from the s-coordinate to form a triggering zone.
The condition is satisfied, if a TriggeringEntity touches this zone.</p>
<p><strong>Example</strong></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Condition</span> <span class="na">name=</span><span class="s">&quot;RoadPosition&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;ByEntityCondition&gt;</span>
<span class="nt">&lt;TriggeringEntities</span> <span class="na">triggeringEntitiesRule=</span><span class="s">&quot;any&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;EntityRef</span> <span class="na">entityRef=</span><span class="s">&quot;Ego&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/TriggeringEntities&gt;</span>
<span class="nt">&lt;EntityCondition&gt;</span>
<span class="nt">&lt;ReachPositionCondition</span> <span class="na">tolerance=</span><span class="s">&quot;3.0&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;Position&gt;</span>
<span class="nt">&lt;RoadPosition</span> <span class="na">roadId=</span><span class="s">&quot;0&quot;</span> <span class="na">s=</span><span class="s">&quot;110.0&quot;</span> <span class="na">t=</span><span class="s">&quot;0.0&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/Position&gt;</span>
<span class="nt">&lt;/ReachPositionCondition&gt;</span>
<span class="nt">&lt;/EntityCondition&gt;</span>
<span class="nt">&lt;/ByEntityCondition&gt;</span>
<span class="nt">&lt;/Condition&gt;</span>
</pre></div>
</div>
</section>
<section id="relativespeed">
<span id="scenario-relativespeed"></span><h6>RelativeSpeed<a class="headerlink" href="#relativespeed" title="Permalink to this headline"></a></h6>
<p>This condition evaluates if the relative velocity (<img class="math" src="../../_images/math/fcf1e10911eacf44f57a43c7f8b190228aba5320.png" alt="v_{rel}"/>) between a TriggeringEntity and a reference entity, is <em>lessThan</em>, <em>equalTo</em>, or <em>greaterThan</em>, a specified value, where <img class="math" src="../../_images/math/d17927d945626222b572588e9b810bd91a62f7bb.png" alt="v_{rel} = v_{trig} - v_{ref}"/>.</p>
<p><strong>Example</strong></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Condition</span> <span class="na">name=</span><span class="s">&quot;RelativeSpeed&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;ByEntityCondition&gt;</span>
<span class="nt">&lt;TriggeringEntities</span> <span class="na">triggeringEntitiesRule=</span><span class="s">&quot;any&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;EntityRef</span> <span class="na">entityRef=</span><span class="s">&quot;Ego&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/TriggeringEntities&gt;</span>
<span class="nt">&lt;EntityCondition&gt;</span>
<span class="nt">&lt;RelativeSpeedCondition</span> <span class="na">entityRef=</span><span class="s">&quot;StandingAgent&quot;</span> <span class="na">value=</span><span class="s">&quot;10.0&quot;</span> <span class="na">rule=</span><span class="s">&quot;greaterThan&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/EntityCondition&gt;</span>
<span class="nt">&lt;/ByEntityCondition&gt;</span>
<span class="nt">&lt;/Condition&gt;</span>
</pre></div>
</div>
</section>
<section id="timetocollision">
<span id="scenario-timetocollision"></span><h6>TimeToCollision<a class="headerlink" href="#timetocollision" title="Permalink to this headline"></a></h6>
<p>This condition evaluates if the <em>Time To Collision</em> (TTC) between a TriggeringEntity and a reference entity is <em>lessThan</em>, <em>equalTo</em>, or <em>greaterThan</em> a specified value.
The TTC is determined by projecting the movement of the entities using steps of 0.1 seconds and returning the first time step, at which their bounding boxes intersect.</p>
<p><strong>Example</strong></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Condition</span> <span class="na">name=</span><span class="s">&quot;TimeToCollision&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;ByEntityCondition&gt;</span>
<span class="nt">&lt;TriggeringEntities</span> <span class="na">triggeringEntitiesRule=</span><span class="s">&quot;any&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;EntityRef</span> <span class="na">entityRef=</span><span class="s">&quot;Ego&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/TriggeringEntities&gt;</span>
<span class="nt">&lt;EntityCondition&gt;</span>
<span class="nt">&lt;TimeToCollisionCondition</span> <span class="na">value=</span><span class="s">&quot;3.0&quot;</span> <span class="na">rule=</span><span class="s">&quot;lessThan&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;TimeToCollisionConditionTarget&gt;</span>
<span class="nt">&lt;EntityRef</span> <span class="na">entityRef=</span><span class="s">&quot;StandingAgent&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/TimeToCollisionConditionTarget&gt;</span>
<span class="nt">&lt;/TimeToCollisionCondition&gt;</span>
<span class="nt">&lt;/EntityCondition&gt;</span>
<span class="nt">&lt;/ByEntityCondition&gt;</span>
<span class="nt">&lt;/Condition&gt;</span>
</pre></div>
</div>
</section>
<section id="timeheadway">
<span id="scenario-timeheadway"></span><h6>TimeHeadway<a class="headerlink" href="#timeheadway" title="Permalink to this headline"></a></h6>
<p>This condition evaluates if the <em>Time Headway</em> (THW) between a TriggeringEntity and a reference entity is <em>lessThan</em>, <em>equalTo</em>, or <em>greaterThan</em> a specified value.
If <code class="docutils literal notranslate"><span class="pre">freespace=&quot;true&quot;</span></code> the net distance of the bounding boxes is considered, otherwise the distance of the reference points.
The <code class="docutils literal notranslate"><span class="pre">alongRoute</span></code> attribute must be <code class="docutils literal notranslate"><span class="pre">true</span></code>.</p>
<p><strong>Example</strong></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Condition</span> <span class="na">name=</span><span class="s">&quot;TimeHeadway&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;ByEntityCondition&gt;</span>
<span class="nt">&lt;TriggeringEntities</span> <span class="na">triggeringEntitiesRule=</span><span class="s">&quot;any&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;EntityRef</span> <span class="na">entityRef=</span><span class="s">&quot;Ego&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/TriggeringEntities&gt;</span>
<span class="nt">&lt;EntityCondition&gt;</span>
<span class="nt">&lt;TimeHeadwayCondition</span> <span class="na">value=</span><span class="s">&quot;3.0&quot;</span>
<span class="na">rule=</span><span class="s">&quot;lessThan&quot;</span>
<span class="na">entityRef=</span><span class="s">&quot;StandingAgent&quot;</span>
<span class="na">freespace=</span><span class="s">&quot;true&quot;</span>
<span class="na">alongRoute=</span><span class="s">&quot;true&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/EntityCondition&gt;</span>
<span class="nt">&lt;/ByEntityCondition&gt;</span>
<span class="nt">&lt;/Condition&gt;</span>
</pre></div>
</div>
</section>
</section>
<section id="actions">
<span id="scenario-actions"></span><h5>Actions<a class="headerlink" href="#actions" title="Permalink to this headline"></a></h5>
<p>Actions define what happens if all conditions of the maneuver are fulfilled and are applied on the actors defined for this maneuver.</p>
<p>The following openSCENARIO actions are supported:</p>
<ul class="simple">
<li><p><a class="reference internal" href="#scenario-followrouteaction"><span class="std std-ref">FollowRouteAction</span></a></p></li>
<li><p><a class="reference internal" href="#scenario-lanechange"><span class="std std-ref">LaneChange</span></a></p></li>
<li><p><a class="reference internal" href="#scenario-followtrajectory"><span class="std std-ref">Follow Trajectory</span></a></p></li>
<li><p><a class="reference internal" href="#scenario-acquireposition"><span class="std std-ref">Acquire Position</span></a></p></li>
<li><p><a class="reference internal" href="#scenario-removeagent"><span class="std std-ref">Remove Agent</span></a></p></li>
<li><p><a class="reference internal" href="#scenario-speedaction"><span class="std std-ref">SpeedAction</span></a></p></li>
</ul>
<p>In addition, the following user defined actions are interpreted:</p>
<ul class="simple">
<li><p><a class="reference internal" href="#scenario-componentstatechange"><span class="std std-ref">UserDefinedAction: Component State Change</span></a></p></li>
<li><p><a class="reference internal" href="#scenario-defaultcustomcommandaction"><span class="std std-ref">UsedDefinedAction: DefaultCustomCommandAction</span></a></p></li>
</ul>
<div class="admonition-todo admonition" id="id4">
<p class="admonition-title">Todo</p>
<p>Write a paragraph about the concept “Trajectories, OSC Actions, and so” in the developer zone.</p>
</div>
<section id="followrouteaction">
<span id="scenario-followrouteaction"></span><h6>FollowRouteAction<a class="headerlink" href="#followrouteaction" title="Permalink to this headline"></a></h6>
<p>The FollowRouteAction is a private Action which is added to the Init part of the Storyboard. It defines Waypoints,
which are located by road_id and further with s and t coordinates.
The Agent will try to follow the specified points.</p>
<p><strong>Example</strong> <em>Right turn, by specifying three waypoints</em></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span> <span class="nt">&lt;RoutingAction&gt;</span>
<span class="nt">&lt;AssignRouteAction&gt;</span>
<span class="nt">&lt;Route&gt;</span>
<span class="nt">&lt;Waypoint&gt;</span>
<span class="nt">&lt;Position&gt;</span>
<span class="nt">&lt;RoadPosition</span> <span class="na">roadId=</span><span class="s">&quot;1472558076&quot;</span> <span class="na">t=</span><span class="s">&quot;-1.0&quot;</span> <span class="na">s=</span><span class="s">&quot;230&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/Position&gt;</span>
<span class="nt">&lt;/Waypoint&gt;</span>
<span class="nt">&lt;Waypoint&gt;</span>
<span class="nt">&lt;Position&gt;</span>
<span class="nt">&lt;RoadPosition</span> <span class="na">roadId=</span><span class="s">&quot;3083973&quot;</span> <span class="na">t=</span><span class="s">&quot;0&quot;</span> <span class="na">s=</span><span class="s">&quot;8.5&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/Position&gt;</span>
<span class="nt">&lt;/Waypoint&gt;</span>
<span class="nt">&lt;Waypoint&gt;</span>
<span class="nt">&lt;Position&gt;</span>
<span class="nt">&lt;RoadPosition</span> <span class="na">roadId=</span><span class="s">&quot;2015840166&quot;</span> <span class="na">t=</span><span class="s">&quot;-0.2&quot;</span> <span class="na">s=</span><span class="s">&quot;100&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/Position&gt;</span>
<span class="nt">&lt;/Waypoint&gt;</span>
<span class="nt">&lt;/Route&gt;</span>
<span class="nt">&lt;/AssignRouteAction&gt;</span>
<span class="nt">&lt;/RoutingAction&gt;</span>
</pre></div>
</div>
</section>
<section id="lanechange">
<span id="scenario-lanechange"></span><h6>LaneChange<a class="headerlink" href="#lanechange" title="Permalink to this headline"></a></h6>
<p>If this action trigger, the actor is forced to perform a trajectory, calculated at the time of triggering.
The target lane be given either absolute or with respect to another entity.
The trajectory can either have a fixed length (in s) or a fixed time.</p>
<p>Currently, “sinusoidal” is the only supported type.</p>
<p><strong>Example</strong> <em>with absolute target and fixed length</em></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Action</span> <span class="na">name=</span><span class="s">&quot;LaneChange&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;PrivateAction&gt;</span>
<span class="nt">&lt;LateralAction&gt;</span>
<span class="nt">&lt;LaneChangeAction&gt;</span>
<span class="nt">&lt;LaneChangeActionDynamics</span> <span class="na">value=</span><span class="s">&quot;2.0&quot;</span> <span class="na">dynamicsShape=</span><span class="s">&quot;sinusoidal&quot;</span> <span class="na">dynamicsDimension=</span><span class="s">&quot;time&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;LaneChangeTarget&gt;</span>
<span class="nt">&lt;AbsoluteTargetLane</span> <span class="na">value=</span><span class="s">&quot;-4&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/LaneChangeTarget&gt;</span>
<span class="nt">&lt;/LaneChangeAction&gt;</span>
<span class="nt">&lt;/LateralAction&gt;</span>
<span class="nt">&lt;/PrivateAction&gt;</span>
<span class="nt">&lt;/Action&gt;</span>
</pre></div>
</div>
<p><strong>Example</strong> <em>with relative target and fixed time</em></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Action</span> <span class="na">name=</span><span class="s">&quot;LaneChange&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;PrivateAction&gt;</span>
<span class="nt">&lt;LateralAction&gt;</span>
<span class="nt">&lt;LaneChangeAction&gt;</span>
<span class="nt">&lt;LaneChangeActionDynamics</span> <span class="na">value=</span><span class="s">&quot;2.0&quot;</span> <span class="na">dynamicsShape=</span><span class="s">&quot;sinusoidal&quot;</span> <span class="na">dynamicsDimension=</span><span class="s">&quot;time&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;LaneChangeTarget&gt;</span>
<span class="nt">&lt;RelativeTargetLane</span> <span class="na">entityRef=</span><span class="s">&quot;Ego&quot;</span> <span class="na">value=</span><span class="s">&quot;+1&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/LaneChangeTarget&gt;</span>
<span class="nt">&lt;/LaneChangeAction&gt;</span>
<span class="nt">&lt;/LateralAction&gt;</span>
<span class="nt">&lt;/PrivateAction&gt;</span>
<span class="nt">&lt;/Action&gt;</span>
</pre></div>
</div>
</section>
<section id="follow-trajectory">
<span id="scenario-followtrajectory"></span><h6>Follow Trajectory<a class="headerlink" href="#follow-trajectory" title="Permalink to this headline"></a></h6>
<p>If triggered, the defined trajectory is relayed as signal to listening components.
The trajectory can be defined either directly in the story or as separate TrajectoryCatalog.
For the points (vertices) of the trajectory only world coordinates, given as <code class="docutils literal notranslate"><span class="pre">openScenario::WorldPosition</span></code>, are supported.
Right now, the mandatory attributes <em>z</em>, <em>pitch</em> and <em>roll</em> are ignored.</p>
<p><strong>Example</strong></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Action</span> <span class="na">name=</span><span class="s">&quot;Trajectory&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;PrivateAction&gt;</span>
<span class="nt">&lt;RoutingAction&gt;</span>
<span class="nt">&lt;FollowTrajectoryAction&gt;</span>
<span class="nt">&lt;Trajectory</span> <span class="na">name=</span><span class="s">&quot;LaneChange&quot;</span> <span class="na">closed=</span><span class="s">&quot;false&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;Shape&gt;</span>
<span class="nt">&lt;Polyline&gt;</span>
<span class="nt">&lt;Vertex</span> <span class="na">time=</span><span class="s">&quot;0&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;Position&gt;</span>
<span class="nt">&lt;WorldPosition</span> <span class="na">x=</span><span class="s">&quot;100&quot;</span> <span class="na">y=</span><span class="s">&quot;3&quot;</span> <span class="na">z=</span><span class="s">&quot;0&quot;</span> <span class="na">h=</span><span class="s">&quot;1.570796326&quot;</span> <span class="na">p=</span><span class="s">&quot;0&quot;</span> <span class="na">r=</span><span class="s">&quot;0&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/Position&gt;</span>
<span class="nt">&lt;/Vertex&gt;</span>
<span class="nt">&lt;Vertex</span> <span class="na">time=</span><span class="s">&quot;5&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;Position&gt;</span>
<span class="nt">&lt;WorldPosition</span> <span class="na">x=</span><span class="s">&quot;100&quot;</span> <span class="na">y=</span><span class="s">&quot;8&quot;</span> <span class="na">z=</span><span class="s">&quot;0&quot;</span> <span class="na">h=</span><span class="s">&quot;1.570796326&quot;</span> <span class="na">p=</span><span class="s">&quot;0&quot;</span> <span class="na">r=</span><span class="s">&quot;0&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/Position&gt;</span>
<span class="nt">&lt;/Vertex&gt;</span>
<span class="nt">&lt;/Polyline&gt;</span>
<span class="nt">&lt;/Shape&gt;</span>
<span class="nt">&lt;/Trajectory&gt;</span>
<span class="nt">&lt;TimeReference&gt;</span>
<span class="nt">&lt;None/&gt;</span>
<span class="nt">&lt;/TimeReference&gt;</span>
<span class="nt">&lt;TrajectoryFollowingMode</span> <span class="na">followingMode=</span><span class="s">&quot;position&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/FollowTrajectoryAction&gt;</span>
<span class="nt">&lt;/RoutingAction&gt;</span>
<span class="nt">&lt;/PrivateAction&gt;</span>
<span class="nt">&lt;/Action&gt;</span>
</pre></div>
</div>
<p><strong>Example</strong> <em>using a TrajectoryCatalog</em></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Action</span> <span class="na">name=</span><span class="s">&quot;FollowTrajectory&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;Private&gt;</span>
<span class="nt">&lt;Routing&gt;</span>
<span class="nt">&lt;FollowTrajectoryAction&gt;</span>
<span class="nt">&lt;CatalogReference</span> <span class="na">catalogName=</span><span class="s">&quot;TrajectoryCatalog.xosc&quot;</span> <span class="na">entryName=</span><span class="s">&quot;TrajectoryA&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;/FollowTrajectoryAction&gt;</span>
<span class="nt">&lt;/Routing&gt;</span>
<span class="nt">&lt;/Private&gt;</span>
<span class="nt">&lt;/Action&gt;</span>
</pre></div>
</div>
</section>
<section id="acquire-position">
<span id="scenario-acquireposition"></span><h6>Acquire Position<a class="headerlink" href="#acquire-position" title="Permalink to this headline"></a></h6>
<p>If triggered, the defined position is relayed as signal to listening components.
Currently only “WorldPosition” and “RelativeObjectPosition” are supported.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Currently, this is only supported by the component <em>FMU_Wrapper</em> and for OSMP messages.</p>
</div>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>An FMU might contain routing logic not visible to the OpenPASS simulation core.
For that reason, an equivalent <cite>RoutingAction</cite> should be set when using <cite>AcquirePosition</cite>.
Otherwise the simulation output might contain missing data for fields depending on the localization along the route (<cite>PositionRoute</cite>, <cite>TCoordinate</cite>, <cite>AgentInFront</cite>, …).</p>
</div>
<p><strong>Example</strong> <em>(WorldPosition)</em></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Action</span> <span class="na">name=</span><span class="s">&quot;AcquirePosition&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;PrivateAction&gt;</span>
<span class="nt">&lt;RoutingAction&gt;</span>
<span class="nt">&lt;AcquirePositionAction&gt;</span>
<span class="nt">&lt;Position&gt;</span>
<span class="nt">&lt;WorldPosition</span> <span class="na">x=</span><span class="s">&quot;1.0&quot;</span> <span class="na">y=</span><span class="s">&quot;2.0&quot;</span> <span class="na">z=</span><span class="s">&quot;0.0&quot;</span> <span class="na">h=</span><span class="s">&quot;3.1415&quot;</span> <span class="na">p=</span><span class="s">&quot;0.0&quot;</span> <span class="na">r=</span><span class="s">&quot;0.0&quot;</span> <span class="nt">/&gt;</span>
<span class="nt">&lt;/Position&gt;</span>
<span class="nt">&lt;/AcquirePositionAction&gt;</span>
<span class="nt">&lt;/RoutingAction&gt;</span>
<span class="nt">&lt;/PrivateAction&gt;</span>
<span class="nt">&lt;/Action&gt;</span>
</pre></div>
</div>
<p><strong>Example</strong> <em>(RelativeObjectPosition)</em></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Action</span> <span class="na">name=</span><span class="s">&quot;AcquirePosition&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;PrivateAction&gt;</span>
<span class="nt">&lt;RoutingAction&gt;</span>
<span class="nt">&lt;AcquirePositionAction&gt;</span>
<span class="nt">&lt;Position&gt;</span>
<span class="nt">&lt;RelativeObjectPosition</span> <span class="na">dx=</span><span class="s">&quot;1.0&quot;</span> <span class="na">dy=</span><span class="s">&quot;1.0&quot;</span> <span class="na">entityRef=</span><span class="s">&quot;S1&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/Position&gt;</span>
<span class="nt">&lt;/AcquirePositionAction&gt;</span>
<span class="nt">&lt;/RoutingAction&gt;</span>
<span class="nt">&lt;/PrivateAction&gt;</span>
<span class="nt">&lt;/Action&gt;</span>
</pre></div>
</div>
</section>
<section id="remove-agent">
<span id="scenario-removeagent"></span><h6>Remove Agent<a class="headerlink" href="#remove-agent" title="Permalink to this headline"></a></h6>
<p>The RemoveAgentsManipulator removes the specified entity at the time of triggering.</p>
<p><strong>Example</strong></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Action</span> <span class="na">name=</span><span class="s">&quot;RemoveAgents&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;GlobalAction&gt;</span>
<span class="nt">&lt;EntityAction</span> <span class="na">entityRef=</span><span class="s">&quot;&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;DeleteEntityAction/&gt;</span>
<span class="nt">&lt;/EntityAction&gt;</span>
<span class="nt">&lt;/GlobalAction&gt;</span>
<span class="nt">&lt;/Action&gt;</span>
</pre></div>
</div>
</section>
<section id="speedaction">
<span id="scenario-speedaction"></span><h6>SpeedAction<a class="headerlink" href="#speedaction" title="Permalink to this headline"></a></h6>
<p>The SpeedAction adjusts the velocity of an entity based on parameters of the SpeedAction.
Both variants, “RelativeTargetSpeed” and “AbsoluteTargetSpeed”, are supported, but with restrictions:</p>
<ul class="simple">
<li><p>The SpeedActionDynamics attribute “dynamicsShape” only supports “linear” and “step”.</p></li>
<li><p>The SpeedActionDynamics attribute “dynamicsDimension” only supports “rate”.</p></li>
<li><p>The RelativeTargetSpeed attribute “continuous” is ignored.</p></li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Values defined in the SpeedAction might not reflect actual values used by the simulator due to physical boundaries of the simulator.</p>
</div>
<p><strong>Example</strong> <em>AbsoulteTargetSpeed</em></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Action</span> <span class="na">name=</span><span class="s">&quot;SpeedAction&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;PrivateAction&gt;</span>
<span class="nt">&lt;LongitudinalAction&gt;</span>
<span class="nt">&lt;SpeedAction&gt;</span>
<span class="nt">&lt;SpeedActionDynamics</span> <span class="na">dynamicsShape=</span><span class="s">&quot;step&quot;</span> <span class="na">value=</span><span class="s">&quot;0.0&quot;</span> <span class="na">dynamicsDimension=</span><span class="s">&quot;rate&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;SpeedActionTarget&gt;</span>
<span class="nt">&lt;AbsoluteTargetSpeed</span> <span class="na">value=</span><span class="s">&quot;20&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/SpeedActionTarget&gt;</span>
<span class="nt">&lt;/SpeedAction&gt;</span>
<span class="nt">&lt;/LongitudinalAction&gt;</span>
<span class="nt">&lt;/PrivateAction&gt;</span>
<span class="nt">&lt;/Action&gt;</span>
</pre></div>
</div>
<p><strong>Example</strong> <em>RelativeTargetSpeed</em></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Action</span> <span class="na">name=</span><span class="s">&quot;SpeedAction&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;PrivateAction&gt;</span>
<span class="nt">&lt;LongitudinalAction&gt;</span>
<span class="nt">&lt;SpeedAction&gt;</span>
<span class="nt">&lt;SpeedActionDynamics</span> <span class="na">dynamicsShape=</span><span class="s">&quot;step&quot;</span> <span class="na">value=</span><span class="s">&quot;0.0&quot;</span> <span class="na">dynamicsDimension=</span><span class="s">&quot;rate&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;SpeedActionTarget&gt;</span>
<span class="nt">&lt;RelativeTargetSpeed</span> <span class="na">entityRef=</span><span class="s">&quot;ScenarioAgent&quot;</span> <span class="na">value=</span><span class="s">&quot;10&quot;</span>
<span class="na">speedTargetValueType=</span><span class="s">&quot;delta&quot;</span> <span class="na">continuous=</span><span class="s">&quot;false&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/SpeedActionTarget&gt;</span>
<span class="nt">&lt;/SpeedAction&gt;</span>
<span class="nt">&lt;/LongitudinalAction&gt;</span>
<span class="nt">&lt;/PrivateAction&gt;</span>
<span class="nt">&lt;/Action&gt;</span>
</pre></div>
</div>
</section>
<section id="useddefinedaction-defaultcustomcommandaction">
<span id="scenario-defaultcustomcommandaction"></span><h6>UsedDefinedAction: DefaultCustomCommandAction<a class="headerlink" href="#useddefinedaction-defaultcustomcommandaction" title="Permalink to this headline"></a></h6>
<div class="admonition-todo admonition" id="id5">
<p class="admonition-title">Todo</p>
<p>Write a paragraph in the developer zone about the concept “wrapping FMUs” and the “OSMP FMU”</p>
</div>
<p>This is <strong>the</strong> default custom command, and is always selected, if <strong>the first WORD</strong> (Keyword) in the command string is <strong>not</strong> registered as a special custom command.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">DefaultCustomCommandAction</span></code> adds an event to the <code class="docutils literal notranslate"><span class="pre">EventNetwork</span></code>, which is relayed as a string (<code class="docutils literal notranslate"><span class="pre">StringSignal</span></code>) by the component``OSCActions``.</p>
<div class="admonition-fmu-wrapper-component-for-osmp-messages-only admonition">
<p class="admonition-title">FMU_Wrapper component for OSMP messages only</p>
<p>The linked string signal is set as custom action of the TrafficCommand.</p>
</div>
<p><strong>Example</strong></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Action</span> <span class="na">name=</span><span class="s">&quot;CustomParameters&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;UserDefinedAction&gt;</span>
<span class="nt">&lt;CustomCommandAction&gt;</span>Arbitrary String, e.g. { &quot;hello&quot;: &quot;world&quot;}<span class="nt">&lt;/CustomCommandAction&gt;</span>
<span class="nt">&lt;/UserDefinedAction&gt;</span>
<span class="nt">&lt;/Action&gt;</span>
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Here, “Arbitrary” is first checked, if it matches any other available Keyword for used defined actions, such as <a class="reference internal" href="#scenario-componentstatechange"><span class="std std-ref">UserDefinedAction: Component State Change</span></a>.</p>
</div>
</section>
<section id="userdefinedaction-component-state-change">
<span id="scenario-componentstatechange"></span><h6>UserDefinedAction: Component State Change<a class="headerlink" href="#userdefinedaction-component-state-change" title="Permalink to this headline"></a></h6>
<p>Command Keyword: SetComponentState</p>
<div class="admonition-todo admonition" id="id6">
<p class="admonition-title">Todo</p>
<p>Write a paragraph in the developer zone about the concept “Component State Change”</p>
</div>
<p>The ComponentStateChangeManipulator influences the maximum reachable state of an agent component that is handled by the ComponentController, i.e. it can either activate or deactivate a component.</p>
<p><strong>Example</strong></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;Action</span> <span class="na">name=</span><span class="s">&quot;ComponentStateChange&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;UserDefinedAction&gt;</span>
<span class="nt">&lt;CustomCommandAction&gt;</span>SetComponentState Dynamics_TrajectoryFollower Acting<span class="nt">&lt;/CustomCommandAction&gt;</span>
<span class="nt">&lt;/UserDefinedAction&gt;</span>
<span class="nt">&lt;/Action&gt;</span>
</pre></div>
</div>
</section>
</section>
</section>
</section>
<section id="stoptrigger">
<span id="scenario-stoptrigger"></span><h3>StopTrigger<a class="headerlink" href="#stoptrigger" title="Permalink to this headline"></a></h3>
<p>Here, end conditions for the simulation are defined.</p>
<p>Right now, only SimulationTime is supported, given in seconds, with the fixed <code class="docutils literal notranslate"><span class="pre">rule=&quot;greaterThan&quot;</span></code>.</p>
<p><strong>Example</strong></p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span> <span class="nt">&lt;StopTrigger&gt;</span>
<span class="nt">&lt;ConditionGroup&gt;</span>
<span class="nt">&lt;Condition</span> <span class="na">name=</span><span class="s">&quot;EndTime&quot;</span> <span class="na">delay=</span><span class="s">&quot;0&quot;</span> <span class="na">conditionEdge=</span><span class="s">&quot;rising&quot;</span><span class="nt">&gt;</span>
<span class="nt">&lt;ByValueCondition&gt;</span>
<span class="nt">&lt;SimulationTimeCondition</span> <span class="na">value=</span><span class="s">&quot;30.0&quot;</span> <span class="na">rule=</span><span class="s">&quot;greaterThan&quot;</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/ByValueCondition&gt;</span>
<span class="nt">&lt;/Condition&gt;</span>
<span class="nt">&lt;/ConditionGroup&gt;</span>
<span class="nt">&lt;/StopTrigger&gt;</span>
</pre></div>
</div>
</section>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="profilescatalog.html" class="btn btn-neutral float-left" title="ProfilesCatalog" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="scenery.html" class="btn btn-neutral float-right" title="Scenery" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2022 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>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>