openPASS: Simulation

openPASS
  • openPASS
  • Simulation
  • Developer Information
Simulation

Table of Contents

  • Introduction

Introduction

This documentation contains all information about the simulation of openPASS.

The purpose of the architecture document is to explain the organization of the code and to identify major system components and describe their static attributes and dynamic patterns of interaction.

The development description is a guide for developers how to install the framework, which technologies are used and explain each module with important concepts.

Doxygen is an automatically generated description of the C++ sources of openPASS. It gives an overview of all classes and functions of the framework.

In section "Tests" different types of tests (e.g. Unittests, Integrationtests) which are used in openPass inclusive specifications and guidelines of them are written down.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Development

  • Developer Information
Development

Table of Contents

  • Technologies
  • Concepts
    • Module Composition
    • Coordinate Systems
      • World Coordinate System
      • Road Coordinate System
      • Agent Coordinate System
  • Tools
    • Time to collision / Time to brake

Technologies

The OpenPASS Slave is written in C++11 and has the following dependencies:

Simulation Core:

  • Qt (v5.12.2) – mainly XML reading, dynamic library access methods, file writing
  • Boost Geometry (v1.63)
  • Open system interface (v3.0.1)
  • Protocol Buffers (v3.6.1)
  • ZeroMQ (v5.1.2)

Additional dependencies (Simulation Core Tests):

  • Boost system and filesystem (v1.63)
  • gtest/gmock (v1.8.1)

Concepts

This section gives an overview of the fundamental concepts of the OpenPASS Slave and gives valuable entrypoints to the related chapters of the documentation.

Module Composition

An agent in openPASS is composed of multiple modules, which are connected by corresponding signals. As shown in the next figure, the modules can be roughly divided into the groups drivers, vehicle components, algorithms, dynamic modules, and prioritizers. Thereby, the modules themself can consist of several submodules, such as sensor (reading from an interface) and action (writing to an interface).

Modules for longitudinal and lateral dynamics

For information on the content of the signals, please refer to the correspondig developer documentation:

  • AccelerationSignal
  • DynamicsSignal
  • LateralSignal
  • LongitudinalSignal
  • SteeringSignal

By statistic means, based on corresponding probabilites defined in the slaveConfig.xml, each individual agent is composed from a superset of all possible (valid) combinations, which is defined by the systemConfigBlueprint.xml (see also the corresponding sections within Input & Output). This config defines all available framework modules and agent modules and connects them by corresponding channels, which in turn have a specific signal type (refer to section Channel IDs and Signal Prioritizer for more information).

The next figure gives an exhautive overview over the current superset:

Components and channel communication

For detailed information on the individual modules refer to the sections systemConfigBlueprint.xml, Framework Modules, and Agent Modules.

Coordinate Systems

OpenPass uses 3 different coordinate systems. All systems rotate counterclockwise and use radian.

World Coordinate System

The world coordinate system is absolute. It is the parent coordinate system and all other systems are relative to the world coordinate system. This system consists of x, y and z (z is currently unused).

World Coordinate System

Road Coordinate System

The road coordinate system is relative to the position of the road in the world coordinate system. It is split into s and t coordinates, where s describes the longitudinal position along the road. At the beginning of the road s=0, increasing with the downstream direction of the road. The coordinate t describes the lateral position relative to the center of the road, where t>0 indicates left side and t<0 right side of the road with respect to the road direction.

Road Coordinate System

Agent Coordinate System

The agent coordinate system is relative to the position of the agent in the world coordinate system. It uses longitudinal, lateral and height (height currently unused). The system originates at the reference point, which is located at the center of the rear axle. The longitudinal-Axis is parallel to the length of the car and the lateral-Axis is parallel to the width of the car.

Agent Coordinate System

Tools

OpenPASS offer several common tools to prevent "reinventing the wheel". Please refer to the inline documentation for an exhaustive list. In addition, this section gives additional insights on part, which cannot be easily explained.

Time to collision / Time to brake

For a given opponent (vehicle in front) with respect to the current ego vehicle, the method TrafficHelperFunctions::WillCrash calculates if a collision is imminent. Thereby, it is assumend that the acceleration of the opponent stays constant and that the ego slows down with a given braking deceleration.

Sequence:

  1. Check for a collision during the reaction time of the ego driver.
  2. Call TrafficHelperFunctions::WillCrashDuringBrake to check for a collision during brake. This is done by intersecting the braking trajectory of both vehicles, given by s(t)=s_0+t*v_0+t^2*a/2. A collision occurs when there is an intersection point between t=0 and the time until the ego vehicle stops.
Braking trajectory for v_Ego=30, a_Ego=-8, v_Front=9, a_Front=-3
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Execution

Execution

Table of Contents

    • OpenPassMaster
      • Command Line Arguments
      • Master Configuration
    • OpenPassSlave
      • Command Line Arguments
      • Library Selection

The master can be configured by applying the following command line argument. If it is unspecified it will be defaulted (default values in []).

The master supports the following argument:

  • -c / --config [masterConfig.xml] The configuration for calling the slaves.

Example: ```bash OpenPassMaster -c/–config [masterConfig.xml] ```

The following snippet shows the masterConfig.xml with the default values for the optional tags.

```xml <masterConfig>

<logLevel>0</logLevel>

<logFileMaster>OpenPassMaster.log</logFileMaster>

<slave>OpenPassSlave</slave>

<libraries>lib</libraries> <slaveConfigs>

<slaveConfig>

<logFileSlave>OpenPassSlave.log</logFileSlave>

<configurations>configs</configurations>

<results>results</results> </slaveConfig>

<slaveConfig>
  ...
<slaveConfig>

</slaveConfigs> </masterConfig> ``` Comments:

  1. Note that the level is set for the master as well as the the slaves it calls.
  2. Note that the path to the libraries is relative to the path of the executable unless specified by an absolute path.

The given configuration will lead to the following equivalent output: ```bash

first slave instance

OpenPassSlave –logLevel 0 –logFile OpenPassSlave.log –lib lib –results results –configs configs

second slave instance

OpenPassSlave ... ```

Minimum Configuration: All values can be defaulted, so the minimum configuration would simply contain: ```xml <masterConfig> <slaveConfigs> <slaveConfig> <slaveConfigs> <masterConfig> ```

Equivalent Output: ```bash OpenPassSlave –logLevel 0 –logFile OpenPassSlave.log –lib lib –configs configs –results results ```

Note that this is identical to a call to OpenPassSlave without arguments, so calling the master without any configuration is not allowed.

The slave can be configured by applying the following command line arguments. Unspecified arguments will be defaulted (default values in []).

The slave supports the following arguments:

  • --logLevel [0] Logging level between 0 (minimum) and 5 (maximum - debug core)
  • --logFile [OpenPassSlave.log] Name of the log file
  • --lib [lib] Path of the libraries (relative or absolute)
  • --configs [configs] Path for writing outputs (relative or absolute)
  • --results [results] Path for writing outputs (relative or absolute)

The slave uses the following core libraries:

  • EventDetector
  • Manipulator
  • Stochastics
  • World
  • Observation

The core retrieves this information from the <Libraries> tag in the slaveConfig.xml located in the specified configuration path:

```xml <slaveConfig> ... <ExperimentConfig> <Libraries> <EventDetectorLibrary>EventDetector</EventDetectorLibrary> <ManipulatorLibrary>Manipulator</ManipulatorLibrary> <StochasticsLibrary>Stochastics</StochasticsLibrary> <WorldLibrary>World</WorldLibrary> <ObservationLibrary>Observation</ObservationLibrary> </Libraries> </ExperimentConfig> ... </slaveConfig> ```

If a mandatory library is missing, the slave tries to load a defaulted one, which is for e.g. <WorldLibrary> World.dll under Windows or libWorld.so under Linux, respectively. In such cases, a warning will be pushed to the log each.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Framework Modules

Framework Modules

Table of Contents

  • AgentFactory
  • AgentBlueprintProvider
    • Sequence
  • DataStore
  • EventDetectors
    • CollisionDetector
    • ConditionalEventDetector
  • EventNetwork
  • Manipulators
    • CollisionManipulator
    • ComponentStateChangeManipulator
    • CustomLaneChangeManipulator
    • GazeFollowerManipulator
  • ObservationLog
  • Sampler
  • SpawnPoint
  • Stochastics
  • World
    • Interfaces and Adapter
    • Sampling of World Geometries
    • Localization
    • Traffic Signs and Road Markings
    • Lane Markings
    • GetObstruction

The modules of openPASS are split the two major categories Framework Modules and Agent Modules and defined within SystemConfigBlueprint. Framework Modules are instantiated once for the entire simulation and all of them are necessary. Agent Modules are instantiated individually for each agent and as such, it depends on the agents configuration which are necessary.

This section covers the Framework Modules, the Agent Modules can be found here.

AgentFactory

The AgentFactory instantiates and manages all Agent instances. When a SpawnPoint wants to create a new Agent, it forwards an AgentBlueprint to the AgentFactory. This AgentBlueprint is then forwarded to the AgentFactory, which instantiates the Agent and all its components. In order to instantiate an Agent, all required Channels and Components which are stored in the AgentBlueprint, need to be instantiated. After the Channels and Components are created, the AgentFactory establishes the links between the different components.

AgentBlueprintProvider

The AgentBlueprintProvider is responsible for configuring agents and gathering the required components based on the ProfilesCatalog and stochastic values.

When creating a new Agent the SpawnPoint is responsible for filling out the first part of the AgentBlueprint. Initially the SpawnPoint determines in which lane the agent is supposed to be spawned. After that, the SpawnPoint calls the AgentBlueprintProvider to fill out the second part of the AgentBlueprint.

Sequence

First the AgentProfilesSampler samples the name of the AgentProfile. An AgentProfile can either be static or dynamic. In the case of a static AgentProfile the components and channels of the agent are defined by a system config. In this cause the AgentBlueprintProvider loads the specified system via fileName and system id. Additionally the AgentProfile defines the VehicleModel.

In the case of a dynamic AgentProfile additional profiles need to be sampled. This is handled by the DynamicProfileSampler. After that the DynamicParameterSampler samples probabilistic parameters like sensor latencies. Then the AgentType with the components and channels is build by the DynamicAgentTypeGenerator. The VehicleModel is in this case defined via the VehicleProfile.

AgentBlueprintProviderSequenceDiagram

DataStore

The DataStore accepts arbitrary values from different components (from framework as well as agents). The stored values if cyclic and acyclic type are associated with an timestamp, entity id and a key (topic). Static values are only associated with a key.

Typically, Observers are using the DataStore to retrieve information about the simulation. This can happen during the simulation run and/or at the end of a run. For the keys, a generic datatype is used (strings). For the values, a set of predefined datatypes is used (bool, char, int, size_t, float, double, string). A value can also hold a vector of one of the mentioned datatypes.

For information about the usage, please refer to the implementation's inline documentation.

EventDetectors

  • ConditionalEventDetector
  • CollisionDetector

EventDetectors are used to trigger Manipulators. They are waiting for specific behaviors or settings during the simulation. Once an Event occurs it is forwarded to the related Manipulator.

EventDetectors can be specified to only trigger for certain Agents in the Scenario.xosc.

```xml <Actors> <Entity name="Ego"> </Actors> ```

The "Actors"-tag is mandatory, but the "Entity"-tags are optional. If no Actors are specified, the Event is triggered for all Agents.

With the "name"-Attribute of an "Entity" a specific Agent can be targeted by the event. This attribute relates to the Ego and Scenario Agents defined in the Scenario.xosc.

The class structure of the EventDetectors is showed in the following diagram:

EventDetectors

CollisionDetector

  • Description: Checks if a collision occured. It is always activated and cannot be deactivated.
  • Trigger: Always active, with cycle time 100 [ms]
  • Configuration:
ParameterName | Type | Description
- | - | -
  • Event: CollisionEvent (CollisionEvent) Parameter:
Name | Description
CollisionWithAgent | Determines whether this collision involved two agents or one agent and one traffic object.
CollisionAgentId | Agent id of the first agent.
CollisionOpponentId | Id of either the second agent or the traffic object.

ConditionalEventDetector

For a detailed description on ConditionalEventDetectors, and the Conditions which trigger them, please refer to the Scenario page.

EventNetwork

The EventNetwork is the central module which manages all Events. It makes the Events available for multiple other framework modules. All new Events are passed to the EventNetwork where they are stored as active events. After each time step the EventNetwork archives the currently active events. Additionally the EventNetwork offers several methods and filters to access the events.

List of Modules which use the EventNetwork:

  1. ObservationLog
  2. EventDetector
  3. Manipulator
  4. VehicleControlUnit
EventNetwork

Manipulators

  • CollisionManipulator
  • ComponentStateChangeManipulator
  • GazeFollowerManipulator
  • * CustomLaneChangeManipulator

The class structure of the Manipulators is showed in the following diagram:

Manipulators

CollisionManipulator

  • Description: This manipulator notifies the two collided agents and recursively all of their other collisionspartners about the new collision
  • Trigger: This manipulator is always triggered by CollisionDetector.
  • Event: -
  • Configuration:
ParameterName | Type | Description
- | - | -

ComponentStateChangeManipulator

  • Description: This manipulator modifies the state of a vehicle component.
  • Trigger: This manipulator can be triggered by any detector. This has to be parameterized in scenario configuration (see Input/Output documentation).
  • Event: Creates an event of type ComponentStateChangeEvent for the specified component name.
  • Configuration: ```xml <Action name="ExampleComponentStateChangeManipulator"> <UserDefined> <Command>SetComponentState DynamicsTrajectoryFollower Acting</Command> </UserDefined> </Action> ```
ElementName | Attribute | Type | Description
Command | - | string | This string must be formatted as "SetComponentState <TargetComponent> <DesiredState>", where <TargetComponent> is the target component name and <DesiredState> is one of "Acting", "Armed", or "Disabled".

CustomLaneChangeManipulator

  • Description: This manipulator sets a custom lane change for an agent.
  • Trigger: This manipulator can be triggered by any detector. This has to be parameterized in scenario configuration (see Input/Output documentation).
  • Event: Creates an event of type CustomLaneChangeEvent.
  • Configuration: ```xml <Action name="ExampleCustomLaneChangeManipulator"> <UserDefined> <Command>SetCustomLaneChange DeltaLaneId</Command> </UserDefined> </Action> ```
    ElementName Attribute Type Description
    Command - string This string must be formatted as "SetCustomLaneChange" <DeltaLaneId>, where <DeltaLaneId> indicates the number of lanes over which the lane change should take place.

GazeFollowerManipulator

  • Description: This manipulator influences the gaze behaviour of an agent.
  • Trigger: This manipulator can be triggered by any detector. This has to be parameterized in scenario configuration (see Input/Output documentation).
  • Event: Creates an event of type GazeFollowerEvent.
  • Configuration: ```xml <Action name="ExampleGazeFollowerManipulator"> <UserDefined> <Command>SetGazeFollower ActivityState GazeFollowerFileName</Command> </UserDefined> </Action> ```
    ElementName Attribute Type Description
    Command - string This string must be formatted as "SetGazeFollower" <ActivityState> <GazeFollowerFileName>, where <ActivityState> is either "Active" or "Inactive". <GazeFollowerFileName> is the file name relative to the config directory with its corresponding file type [.txt, .csv, etc.] that contains the gaze information.

ObservationLog

The ObservationLog is responsible for generating the simulation output. This module handles the file stream to the output file. Which parameters are logged in the cyclics tag is specified by the LoggingGroups tag in the SlaveConfig

The output is initially written into a temporary simulation output file. The temporary output is updated at the end of every invocation. Once all invocations completed successfully the temporary file is renamed to SimulationOutput.xml.

All information which needs to be written into the log is forwarded to an instance of ObservationInterface. This includes RunStatistics, Events and Agent parameters. Additionally to the logging the ObservationLog is also used by other modules to add their Events to the EventNetwork.

Sampler

The Sampler contains the entire stochastic functionality of the AgentBlueprintProvider and the SpawnPoint. Additionally it prepares the World-Parameters, which are defined based on probabilities in the SlaveConfig. The AgentBlueprintProvider uses this module to pick values based on a set of probabilities, which are defined in the SlaveConfig. The SpawnPoint uses this module to generate values based on different distributions.

The Sampler uses the Stochastics module to generate random values.

Sampler

SpawnPoint

For information on the current SpawnPoints, please refer the SpawnPoint documentation.

Stochastics

The Stochastics Module is used to created random numbers. A random seed is used to initialize a Mersenne Twister 19937 generator. Afterwards numbers are drawn from said generator.

The following types of random numbers are currently available:

  • Uniform: Expects upper and lower boundary
  • Normal: Expects means and standard deviation
  • Binomial: Expects upper range number and probability
  • Exponential: Expects lambda
  • Gamma: Expects mean and standard deviation
  • LogNormal: Expects mean and standard deviation
  • RandomCdfLogNormal: Expects mean and standard deviation
  • PercentileLogNormal: Expects mean, standard deviation and probability
Stochastics

World

Interfaces and Adapter

World Interfaces and Adapter

Sampling of World Geometries

Roads are described following the OpenDRIVE specification. There the geometry of a road is defined algebraically as lines, clothoids and by means of cubic polynomials, whereby primarily only one reference line is defined. The lanes can be understood as a stack of parallel lanes, which are given by the width and the offset, now in relation to this reference line, which acts as the underlying coordinate system ('s/t' road coordinates with s along the road). Here, too, width and offset are defined algebraically, which means that almost any boundary lines can be defined.

When the world is initialized, these boundary definitions (i.e. algebraic geometries) are converted into piecewise linear elements, which is called sampling. The road is scanned at a constant interval along 's', which leads to four-sided (quadrangular) sections of the lanes at common 's' coordinates, so-called lane elements (see LaneElement). The scanning is carried out at a scanning rate of 10 centimeters with the aim of achieving a total scanning error of less than 5 centimeters, as required by the representation used internally (c.f. open simulation interface). Note that this error is only guaranteed if geometries do not exhibit extreme curvatures, i.e. a deviation of more than 5 cm within two sampling points (10 cm along s). The scanned points define so-called joints, which contain all scanned points at an 's' coordinate across all lane boundaries of the given road. The number of these joints is reduced by a Ramer-Douglas-Peucker algorithm, which ensures that the maximum lateral error of each individual point within a joint is less than 5 cm compared to the originally scanned points. Note that (a) the boundary points of geometries are always retained and (b) additional points for lane marking transitions are also retained to ensure the maximum accuracy of these edge cases. The lane elements are generated with two successive connections, which are ultimately used in the localization at runtime (see below).

Internally, each lane element receives a constant direction, which is defined by the direction of the vector spanned between the centers of the corresponding connections. Each joint also holds the corresponding curvature of the road, so that the curvature can be interpolated linearly within a lane element along the 's' coordinate.

Localization

Generally, the position of an agent is stored with respect to world coordinates (x,y). As queries on the world operates in road coordinates (s,t), the position of the agent needs to be transformed. The transformation is performed by the localization algorithm.

Traffic Signs and Road Markings

The world currently supports a variety of traffic signs and road markings. Both are defined in OpenDRIVE as "RoadSignal". At the moment it can only interpret traffic signs according to the German regulations "StVo". Traffic signs can contain optional supplementary traffic signs. Supplementary signs are dependent on a main traffic sign and contain additional information. The following traffic signs are supported:

TrafficSign | StVo Type | Subtype | Value and Units
GiveWay | 205 | - | -
Stop | 206 | - | -
DoNotEnter | 267 | - | -
EnvironmentalZoneBegin | 270.1 | - | -
EnvironmentalZoneEnd | 270.2 | - | -
MaximumSpeedLimit | 274 | X | The subtype "X" is used to define the speedlimit in km/h. Afterwards the world converts it to m/s.
SpeedLimitZoneBegin | 274.1 | -/20 | The subtype is used to define the speedlimit in km/h. Afterwards the world converts it to m/s. No subtype = 30km/h, 20 = 20km/h
SpeedLimitZoneEnd | 274.2 | -/20 | The subtype is used to define the speedlimit in km/h. Afterwards the world converts it to m/s. No subtype = 30km/h, 20 = 20km/h
MinimumSpeedLimit | 275 | X | The subtype is used to define the speedlimit in km/h. Afterwards the world converts it to m/s.
OvertakingBanBegin | 276 | - | -
OvertakingBanTrucksBegin | 277 | - | -
EndOfMaximumSpeedLimit | 278 | X | The subtype "X" is used to define the speedlimit in km/h. Afterwards the world converts it to m/s.
EndOfMinimumSpeedLimit | 279 | X | The subtype "X" is used to define the speedlimit in km/h. Afterwards the world converts it to m/s.
OvertakingBanEnd | 280 | - | -
OvertakingBanTrucksEnd | 281 | - | -
EndOffAllSpeedLimitsAndOvertakingRestrictions | 282 | - | -
RightOfWayNextIntersection | 301 | - | -
RightOfWayBegin | 306 | - | -
RightOfWayEnd | 307 | - | -
TownBegin | 310 | - | This sign contains a text describing the name of the town
TownEnd | 311 | - | This sign contains a text describing the name of the town
TrafficCalmedDistrictBegin | 325.1 | - | -
TrafficCalmedDistrictEnd | 325.2 | - | -
HighWayBegin | 330.1 | - | -
HighWayEnd | 330.2 | - | -
HighWayExit | 333 | - | -
AnnounceHighwayExit | 448 | - | -
HighwayExitPole | 450 | 50/51/52 | The subtype describes the distance to the highway exit in m. 50 = 100m, 51 = 200m, 52 = 300m
AnnounceRightLaneEnd | 531 | 10/11/12/13 | The subtype describes the number of continuing lanes after the right lane ends. 10 = 1 lane, 11 = 2 lanes, 12 = 3 lanes, 13 = 4 lanes
AnnounceLeftLaneEnd | 531 | 20/21/22/23 | The subtype describes the number of continuing lanes after the left lane ends. 10 = 1 lane, 11 = 2 lanes, 12 = 3 lanes, 13 = 4 lanes
DistanceIndication | 1004 | 30/31/32 | For subtype 30 the value describes the distance in m. For subtype 31 the value describes the distance in km. Subtype 32 has a STOP in 100m

The following road markings are supported:

RoadMarking | StVo Type | Subtype | Value and Units
Stop line | 294 | - | -

Lane Markings

The world also supports lane markings (i.e. printed lines between two lanes) according to the OpenDRIVE standard. The following attributes of the "roadMark" tag in the scenery file are stored in the world and can be retrieved by the GetLaneMarkings query: sOffset, type, weight, color. The weight is converted into a width in meter: 0.15 for standard and 0.3 for bold. Lane markings are also converted to OSI LaneBoundaries. For the OpenDRIVE type "solid solid", "solid broken", "broken solid", and "broken broken" two LaneBoundaries are created in OSI with a fixed lateral distance of 0.15m.

GetObstruction

The GetObstruction function calculates the lateral distance an agent must travel in order to align with either the left or right boundary of a target object occupying the same lane.

The calculation adheres to the following process:

  1. Project the agent's MainLaneLocator along the lane to the nearest and furthest s-coordinate of the target object, capturing the projected points
  2. Create a straight line from the two captured points
  3. Calculate the Euclidean distance of each of the target object's corners to the created line
  4. Return the left-most and right-most points with respect to the created line
Example for the calculation of GetObstruction
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Spawners

Spawners

Table of Contents

  • Framework
  • ScenarioSpawnPoint
  • PreRunSpawnPoint
  • RuntimeSpawnPoint

Framework

The current Spawner setup allows users to generically add or remove Spawners. The SpawnPointNetwork can hold multiple SpawnerLibraries. These SpawnerLibraries can generate multiple Spawner instances. All Spawner instances are instantiated before each invocation.

Spawner Classes

The Spawners are responsible for interacting directly with the Spawner dependencies (e.g. World, AgentFactory) in order to instantiate new Agents. The Spawners are configured through the corresponding section of the SlaveConfig file. If the Profile tag is existing, the related Spawner profile with the specified name from the ProfilesCatalog is passed to the Spawner as a ParameterInterface. If the Profile tag does not exist, the Scenario file is passed to the SpawnPoint instead.

Spawner Dependencies

Example Spawner Config (within slaveConfig.xml):

```xml <Spawners> <Spawner> <Library>SpawnPointScenario</Library> <Type>PreRun</Type> <Priority>1</Priority> </Spawner> <Spawner> <Library>SpawnPointPreRunCommon</Library> <Type>PreRun</Type> <Priority>0</Priority> <Profile>ExamplePreRunProfile</Profile> </Spawner> <Spawner> <Library>SpawnPointRuntimeCommon</Library> <Type>Runtime</Type> <Priority>0</Priority> <Profile>ExampleRuntimeProfile</Profile> </Spawner> </Spawners> ```

Name | Description
Library | Library name of the Spawner
Type | Either "PreRun" or "RunTime". PreRun triggers only once before the invocation starts. RunTime continuously triggers during the run.
Priority | Determines the order in which Spawners are triggered. Spawners with higher priority are triggered first. Greater values equal higher priority.
Profile | Required only for the PreRunCommon and RuntimeCommon Spawners. Do not define for the Scenario SpawnPoint.

There are 3 types of Spawners:

  1. Scenario
  2. PreRunCommon
  3. RuntimeCommon

ScenarioSpawnPoint

The Scenario SpawnPoint (included in library "SpawnPointScenario") is responsible for spawning Ego and Scenario vehicles as defined in the Scenario configuration file. It is only called once initially and is recommended for each simulation. This SpawnPoint should trigger before any other SpawnPoints. A position and velocity are required for each Ego and Scenario agent in the scenario file. The portion of the Scenario file relevant to this SpawnPoint can be found here.

PreRunSpawnPoint

The PreRun Spawnpoint (included in library "SpawnPointPreRunCommon") is responsible for populating the scenery/world with Common-Agents before the simulator starts. This SpawnPoint only acts once before the simulator starts and not during the simulation run. A traffic config is required for each PreRun SpawnPoint.

The PreRunCommon SpawnPoint requires a Spawner-Profile in the ProfilesCatalog. The SpawnerProfile contains information specifying the SpawnAreas and TrafficGroups

```xml <ProfileGroup type="TrafficGroup"> <Profile name="ExampleTrafficGroup">

<ListItem> <String key="Name" value="LuxuryClassCarAgent"> <Double key="Weight" value="0.4"> </ListItem> <ListItem> <String key="Name" value="MiddleClassCarAgent"> <Double key="Weight" value="0.6"> </ListItem> <ListItem> <String key="Name" value="TruckAgent"> <Double key="Weight" value="0.0"> </ListItem>

<NormalDistribution key="Velocity" max="68.5" mean="43.5" min="18.5" sd="5.0"> <LogNormalDistribution key="TGap" max="0.5" min="0.5" mu="0.5" sigma="0.5"> <DoubleVector key="Homogeneity" value="0.8, 0.7"> <Bool key="RightLaneOnly" value="true"> </Profile> </ProfileGroup> <ProfileGroup type="Spawner"> <Profile name="ExamplePreRunSpawner">

<ListItem> <StringVector key="Roads" value="1"> <IntVector key="Lanes" value="-1,-2,-3,-4,-5"> <Double key="SStart" value="0.0"> <Double key="SEnd" value="1000.0"> </ListItem>

<ListItem> <Double key="Weight" value="1"> <Reference type="TrafficGroup" name="ExampleTrafficGroup"> </ListItem>

</Profile> </ProfileGroup> ```

The SpawnAreas are defined by the following parameter:

Name | Description
Roads | The RoadIDs of the Roads on which to spawn Agents
Lanes | The LaneIDs of the Lanes of the Road on which to spawn Agents
SStart | The S position specifying the minimum S for the range within which to spawn Agents
SEnd | The S position specifying the maximum S for the range within which to spawn Agents

The TrafficGroups are defined by the following parameter:

Name | Description
AgentProfiles | A set of <ListItem>s which define potential AgentProfile values for the Agents spawned in the SpawnArea and the probability at which the TrafficVolume will be selected
Velocity | A stochastic distribution describing the velocity in m/s of the spawned Agents
TGap | A stochastic distribution describing the gap in seconds between spawned Agents
Homogeneity | OPTIONAL: A vector describing the velocity increments for left lanes
RightLaneOnly | OPTIONAL: A flag determining whether this TrafficGroup can only be applied to the right most lane

The PreRunCommon SpawnPoint will spawn common agents on the specified Lanes of the specified Road from the s position S-Start to the s position S-End based on the parameters of the TrafficGroups. The following restrictions apply:

  • If the Scenario Spawn Point spawned Scenario Agents (including the Ego agent) before this Spawn Point is triggered (in the intended order of these Spawn Points), ranges between the Scenario Agents are invalid for spawning by this Spawn Point. The spawn ranges will only be augmented by Scenario Agents on the same Road and Lane. As such, there are 7 different potential scenarios that may arise in terms of how the spawn point's valid spawn ranges may be impacted:
    1. Two Scenario Agents on the same Road and Lane - one before S-Start position and one after S-End position
      • This invalidates the entirety of the spawning range; no agents may be spawned here
    1. Two Scenario Agents on the same Road and Lane - one between S-Start position and S-End position and one either before S-Start or after S-End
      • The only valid spawn range is that on the opposite side of the in-specified-range Agent from the outside-specified-range agent
    1. Two Scenario Agents on the same Road and Lane - both within the specified S-Start and S-End positions
      • The valid spawn ranges are between S-Start and the first car and between the second car and S-End
    1. Two Scenario Agents on the same Road and Lane - both outside the specified S-Start and S-End positions on the same side (both before S-Start or both after S-End)
      • The specified spawn range is entirely valid
    1. One Scenario Agent on the same Road and Lane - within specified S-Start and S-End positions
      • The valid spawn ranges include all but the bounds of the Agent within the specified S-Start and S-End positions
    1. One Scenario Agent on the same Road and Lane - outside specified S-Start and S-End positions
      • The specified spawn range is entirely valid
    1. No Scenario Agents on the same Road and Lane
      • The specified spawn range is entirely valid
  • If a non-existent road is specified, no spawning will occur
  • If only non-existent lanes for an existent road are specified, no spawning will occur
  • If some specified lanes exist and some are non-existent for an existent road, spawning will occur for the lanes which do exist
  • If the specified S-Start and S-End positions are either beyond or before the S positions at which the specified Road and Lane combination exists, no spawning will occur
  • In the situation where a section of a Road adds a new lane to the left of the currently existing lanes, one should be aware that the laneId "-1" will shift to the newest left lane and should adjust SpawnPoint profiles with this in mind

Once the spawning ranges are determined the PreRun SpawnPoint will spawn for each spawning area based on the following logic:

  • First the agentprofile needs to be determined. If the current spawn position evaluate to a right lane, the pool from which the agentprofile is drafted is extended by all traffic groups which contain the RightLaneOnly flag set to true.
  • Then the time gap between the new agent and the closest existing agent is sampled.
  • Afterwards the velocity of the new agent is being sampled under consideration of the homogeneity.
  • The gap and velocity are used to calculate the distance between the new agent and the next agent in this spawnarea. Here a minimum distance of 5m between agents is required.
  • Based on the distance and the velocity the TTC (2s) conditions are evaluated.If the TTC is critical the spawn velocity is reduced to fullfill the TTC requriements.
  • As a final step the spawnpoint evaluates the spawncoordinates. If they are valid the agent is created, else the spawnpoint moves on to the next spawning range.

RuntimeSpawnPoint

The Runtime SpawnPoint (included in library "SpawnPointRuntimeCommon") is responsible for maintaining a populated scenery throughout the simulation runtime. This SpawnPoint acts at each timestep throughout the simulation run and attempts to spawn Common Agents at the specified location(s).

The RunTimeCommon SpawnPoint requires a Spawner-Profile to be defined in the ProfilesCatalog. The Spawner-Profile contains all SpawnPoints and all possible TrafficGroups:

```xml <ProfileGroup type="TrafficGroup"> <Profile name="ExampleTrafficGroup">

<ListItem> <String key="Name" value="LuxuryClassCarAgent"> <Double key="Weight" value="0.4"> </ListItem> <ListItem> <String key="Name" value="MiddleClassCarAgent"> <Double key="Weight" value="0.6"> </ListItem> <ListItem> <String key="Name" value="TruckAgent"> <Double key="Weight" value="0.0"> </ListItem>

<NormalDistribution key="Velocity" max="68.5" mean="43.5" min="18.5" sd="5.0"> <LogNormalDistribution key="TGap" max="0.5" min="0.5" mu="0.5" sigma="0.5"> <DoubleVector key="Homogeneity" value="0.8, 0.7"> <Bool key="RightLaneOnly" value="true"> </Profile> </ProfileGroup> <ProfileGroup type="Spawner"> <Profile name="ExamplePreRunSpawner">

<ListItem> <StringVector key="Roads" value="1"> <IntVector key="Lanes" value="-1,-2,-3,-4,-5"> <Double key="SCoordinate" value="0.0"> </ListItem>

<ListItem> <Double key="Weight" value="1"> <Reference type="TrafficGroup" name="ExampleTrafficGroup"> </ListItem>

</Profile> </ProfileGroup> ```

The SpawnPoints are defined by the following parameter:

Name | Description
Roads | The RoadIDs of the Roads on which to spawn Agents
Lanes | The LaneIDs of the Lanes of the Road on which to spawn Agents
S-Position | The S position specifying at which point to spawn Agents

The TrafficGroups are defined by the following parameter:

Name | Description
AgentProfiles | A set of <ListItem>s which define potential AgentProfile values for the Agents spawned in the SpawnArea and the probability at which the TrafficVolume will be selected
Velocity | A stochastic distribution describing the velocity in m/s of the spawned Agents
TGap | A stochastic distribution describing the gap in seconds between spawned Agents
Homogeneity | OPTIONAL: A vector describing the velocity increments for left lanes
RightLaneOnly | OPTIONAL: A flag determining whether this TrafficGroup can only be applied to the right most lane

The RuntimeCommon SpawnPoint will spawn based on the following logic:

  • First the agentprofile needs to be determined. If the current spawn position evaluates to a right lane, the pool from which the agentprofile is drafted is extended by all traffic groups which contain the RightLaneOnly flag set to true.
  • Then the time gap between the new agent and the closest existing agent is sampled.
  • Afterwards the velocity of the new agent is being sampled under consideration of the homogeneity.
  • Once the timely gap expires, the spawnpoint evaluate if the TTC (2s) conditions and a minimum required distance between agents (5m) are met. If the TTC is critical the spawn velocity is reduced to fullfill the TTC requriements. If the minimum distance is not fullfilled, the agent will be held back.
  • If all requirements were fullfilled the agent is spawned.
SpawnLogic
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Agent Modules

Agent Modules

Table of Contents

  • Action_LongitudinalDriver
  • Action_SecondaryDriver
  • Advanced Driver Assistance System
  • AgentFollowingDriverModel
  • AgentUpdater
  • Algorithm_Lateral
  • Algorithm_Longitudinal
  • Dynamics_TrajectoryFollower
  • Dynamics_Collision
  • Dynamics_RegularDriving
  • FMU wrapper
    • FMU package format
    • Architectural overview
    • Configuration
    • OSMP FMU
  • LimiterAccelerationVehicleComponents
  • OpenScenarioActions
  • Parameters_Vehicle
  • Sensor_Driver
  • Sensor_OSI
    • Function
    • Cases
    • Visual Obstruction
  • SensorFusionOSI
  • SignalPrioritizer
    • Existing prioritizer modules
  • ComponentController
    • Overview
    • State handling inside Vehicle Component
    • Used signals

The modules of openPASS are split the two major categories Framework Modules and Agent Modules and defined within SystemConfigBlueprint. Framework Modules are instantiated once for the entire simulation and all of them are necessary. Agent Modules are instantiated individually for each agent and as such, it depends on the agents configuration which are necessary.

This section covers the Agent Modules, the Framework Modules can be found here.

Action_LongitudinalDriver

Updates the agents pedal positions and gear. The input for this module is prepared by the AlgorithmLongitudinal Module.

Action_SecondaryDriver

Updates the agents BrakingLight, Indicator, Horn and all Lightswitches (Headlight, HighBeam, Flasher). The input for this module is prepared by the driver module.

Advanced Driver Assistance System

The simulator currently has multiple advanced driver assistance systems. For details see here: ADAS

AgentFollowingDriverModel

The AgentFollowingDriver is a driver module, which tries to follow the agent in front of it. It only adjusts the acceleration to prevent crashing into the previous agent. This module does not change the lane. If there is no agent in front of it the module tries to drive with a velocity of 120 km/h.

AgentUpdater

The AgentUpdater executes all Set-Methods of the agent dynamics after the DynamicsPrioritizer. This includes position, velocity, acceleration and rotation.

Algorithm_Lateral

This module converts the lateral input of the driver module into a steeringwheel angle.

Algorithm_Longitudinal

This module converts the acceleration input of the driver module into pedal positions and gear.

Dynamics_TrajectoryFollower

This module forces agents to drive according to a specific trajectory. The trajectory is defined in the scenario. This module is disabled by default and is activated if a trajectory from openSCENARIO is triggered. It is always important that the trajectories matches the current scenery file, otherwise the Agent could be placed outside of valid lanes. If the agent gets placed on a invalid position, it will be deleted.

The following attributes must be defined for these module:

Attribute | Type | Description
AutomaticDeactivation | Bool | If true, the trajectory follower relinquishes control of the vehicle after the final instruction in the TrajectoryFile.
EnforceTrajectory | Bool | If true, the trajectory follower overrides external input related to the vehicle's travel.

Examples:

An example VehicleComponentProfile for the TrajectoryFollower defining these attributes would look as follows:

```xml <ProfileGroup type="Dynamics_TrajectoryFollower"> <Profile type="DynamicsTrajectoryFollower" name="BasicTrajectoryFollower"> <Bool key="AutomaticDeactivation" value="true"> <Bool key="EnforceTrajectory" value="true"> </Profile> </ProfileGroup> ```

An example of a Scenario Sequence to activate the TrajectoryFollower would look as shown below.

```xml <ManeuverGroup name="TrajectorySequence" maximumexecutioncount="1"> <Actors selecttriggeringentities="false"> <EntityRef entityref="TF"> </Actors> <Maneuver name="StateChangeManeuver"> <Event name="StateChangeEvent" priority="overwrite"> <Action name="ComponentStateChangeManipulator"> <PrivateAction> <RoutingAction> <FollowTrajectoryAction> <Trajectory name="LaneChange" closed="false"> <Shape> <Polyline> <Vertex time="0"> <Position> <WorldPosition x="76.17" y="5.625" z="0" h="0.0" p="0" r="0"> </Position> </Vertex> <Vertex time="0.1"> <Position> <WorldPosition x="79.17" y="5.62485" z="0" h="-0.00005" p="0" r="0"> </Position> </Vertex> <Vertex time="0.2"> <Position> <WorldPosition x="82.17" y="5.6247" z="0" h="-0.00005" p="0" r="0"> </Position> </Vertex> </Polyline> </Shape> </Trajectory> </FollowTrajectoryAction> </RoutingAction> </PrivateAction> </Action> <StartConditions> <ConditionGroup> <Condition name="Conditional"> <ByValue> <SimulationTime value="0.0" rule="greater_than"> </ByValue> </Condition> </ConditionGroup> </StartConditions> </Event> </Maneuver> </Sequence> ```

Dynamics_Collision

If the number of collision partners of the agent is bigger than in the previous timestep, the DynamicsCollision module calculates the collision. Currently the collision is implemented fully inelastic, i.e. all agents will have the same velocity after the collision, while the momentum is conserved. After the collision the agents slow down with a fixed deceleration until fully stopped.

Dynamics_RegularDriving

The module takes care that the motion of the agent fit to the physical limitations, such as friction or maximum possible acceleration based on the current gear. This module uses both the world friction and the vehiclemodelparameter friction. Thereby it calculates the dynamics of the agents in every time step. The currently covered dynamics are Acceleration, Velocity, and consequently Position, Yaw angle and Yaw rate. The input for this module is the steeringwheel angle and the new acceleration of the vehicle.

FMU wrapper

The FMU Wrapper provides a connection to arbitrary FMUs (Functional Mock-up Unit). A FMU has to be compatible with the FMI 1.0 or FMI 2.0 specification (Functional Mock-up Interface) and has to be ABI (Application Binary Interface) compatible with the OpenPassSlave binary.

Additional reading about FMI is provided by the FMI standard website at https://fmi-standard.org/. For interfacing the FMUs in openPASS, the Modelon FMI Library is used, which is recommended on the FMI standard website. See https://jmodelica.org/.

FMU package format

FMI defines a packaging format for FMUs. The used container format is ZIP. It basically contains - among other parts - the compiled FMU code (as *.dll or *.so, depending on the platform) and the modelDescription.xml. Latter provides meta-data about the FMU, i. e.

  • Author information
  • Model name, identifier and description
  • Generation timestamp
  • Name and datatype of model variables (inputs and outputs)

Architectural overview

The wrapper is instantiated as a component of an agent. It instantiates an implementation of the FmuHandlerInterface, which is a specialization depending on the type of the FMU. Currently the only such FmuHandler is the OsmpFmuHandler

Configuration

Some Parameter are always required for the FmuWrapper. Depending on the FmuHandler additional parameters may be needed.

```xml <ProfileGroup type="FMU1"> <Profile name="OSMP"> <String key="FmuPath" value="resources/OSMP.fmu"> <Bool key="Logging" value="true"> <Bool key="CsvOutput" value="true"> <Bool key="UnzipOncePerInstance" value="false"> <String key="FmuType" value="OSMP"> </Profile> </ProfileGroup> ```

Key | Type | Description
FmuPath | string | Path to FMU file. Relative and absolute paths are supported.
Logging | bool | If set to true, FMU initialization and execution task are logged to a text file.
CsvOutput | bool | If set to true, FMI outputs are logged to a CSV file.
UnzipOncePerInstance | bool | If set to true, unpack the FMU once for each running instance, instead of once per FMU file (forced to true on Linux systems)
FmuType | string | Type of the FMU (currently only "OSMP" supported")

Upon instantiation of the FMU wrapper, it will extract the FMU ZIP file to a subfolder "Unzip", located at the same path as the FMU file itself. Then the modelDescription.xml is parsed and the FMU is checked for compatibility.

If CsvOutput is set to true, a subfolder "Output" will be created in the path of the FMU file. FMI output data will be logged to files inside this directory, with the agent id appended in the filename. This output can then be used for visualization in a spreadsheet application or it may be processed in any other way.

Same goes for Logging with the folder "Log".

If UnzipOncePerInstance is set to true, an integer number will be appended to these subdirectories names.

OSMP FMU

OSMP is currently the only supported type of FMU. It allows the pass input to the FMU as OSI messages as well as recieve output as OSI message. For more information on OSMP see https://github.com/OpenSimulationInterface/osi-sensor-model-packaging.

The OsmpFmuHandler has the following additional (optional) parameters:

Key | Type | Description
Input_SensorView | string | Name of the FMU variable to which the SensorView is sent
Input_TrafficCommand | string | Name of the FMU variable to which the TrafficCommand is sent
Init_Groundtruth | string | Name of the FMU variable to which the Groundtruth is sent during the initialization
Output_SensorData | string | Name of the FMU variable from where a SensorData should be recieved
Output_TrafficUpdate | string | Name of the FMU variable from where a TrafficUpdate should be recieved
WriteSensorViewOutput | bool | If true the SensorView is written into a JSON file
WriteTrafficCommandOutput | bool | If true the TrafficCommand is written into a JSON file
WriteGroundtruthOutput | bool | If true the Groundtruth is written into a JSON file
WriteSensorDataOutput | bool | If true the SensorData is written into a JSON file
WriteTrafficUpdateOutput | bool | If true the TrafficUpdate is written into a JSON file
EnforceDoubleBuffering | bool | If true the wrapper will throw an error if FMU doesn't use double buffering. Defaults to false.

The type of OSI messages the OsmpFmuHandler sends an recieves is defined by its parameters. Only messages for which a FMU variable is given in the configuration are sent/recieved. An additional parameter defines whether the message should be logged as JSON file for every agent and every timestep (see table above).

Currently these messages are supported:

  • SensorView: SensorView generated from the Groundtruth with this agent is host vehicle
  • TrafficCommand: Trajectory from openSCENARIO, that will be converted into a TrafficCommand
  • SensorData: Output of a sensor, that can be send to other modules as SensorDataSignal
  • TrafficUpdate: Will be converted to a DynamicsSignal

LimiterAccelerationVehicleComponents

This module limits the AccelerationSignal from the PrioritizerAccelerationVehicleComponents to the constraints given by the vehicle. The DynamicsTrajectoryFollower can then use this signal to calculate a trajectory.

The limit is calculated by alim = ( Fwheel - Froll - Fair ) / mveh, where the symbols meanings are:

Symbol | Decription
alim | Resulting acceleration limit [m/s2]
Fwheel | Force at wheel (provided by drivetrain) [N]
Froll | Force resulting from rolling resistance [N]
Fair | Force resulting from air drag [N]
mveh | Mass of the vehicle [kg]

The components are calculated as follows:

Driving force

Fwheel = Tengine * raxle / rwheel

Symbol | Decription
Tengine | Resulting torque from drivetrain at current velocity (assumung best gearing selected) [Nm]
raxle | Axle transmission ratio [1]
rwheel | Static radius of the wheels [m]

The engine torque Tengine is calculated by a simple model, where the torque scales proportional with the current engine speed between 1350 and 5000 rpm, up to maximum engine torque. From minimum engine speed up to 1350 rpm the torque scales proportional with the engine speed up to half the maximum torque. From 5000 rpm up to maximum engine speed, the torque scales with 5000 / maxEngineSpeed, up to maximum torque.

Rolling resistance

Froll = mveh * cfric * 1g

Symbol | Decription
mveh | Mass of the vehicle [kg]
cfric | Rolling friction coefficient (constant 0.015) [1]

Air drag

Fair = rhoair / 2 * Afront * cw * v2

Symbol | Decription
rhoair | Densitiy of air [kg/m3]
Afront | Vehicle front surface area [m2]
cw | Drag coefficient [1]
v | Vehicle's current velocity [m/s]

OpenScenarioActions

As defined by openSCENARIO, OpenScenarioActions is the relaying module for:

  • Trajectory-actions
  • LaneChange-actions
  • CustomLaneChange-actions
  • UserDefined-actions.

If a

  • TrajectoryManipulator
  • LaneChangeManipulator
  • CustomLaneChangeManipulator or a
  • GazeFollowerManipulator

raises such an event for the specified agent, the module forwards it as signal to all interested module of the corresponding agent. The modules can than react on the signals content without time delay.

Parameters_Vehicle

The ParametersVehicle module forwards the VehicleModelParamters to all other moduls that need them via the ParametersVehicleSignal

Sensor_Driver

The SensorDriver performs queries on the AgentInterface to gather information about the own agent and its surroundings. These are forwarded to the driver modules and the Algorithm modules, which use them for their calculations.

Sensor_OSI

This module is a representation of various sensors and uses OSI for its input and output. Currently it only has one type of sensor (SensorGeometric2D) which detects all objects in sector with specified range and opening angle. The input of the sensor is a OSI SensorView generated by the OSI World and its output is a OSI SensorData structure.

For generation of the SensorView, a SensorViewConfiguration has to be provided by the sensor to the OSI World. See image for a visualization of the dataflow.

OSI SensorView dataflow

From OSI development perspective, the OSI World would have to send back a SensorViewConfiguration to the sensor, with the contents describing the actual configuration of the SensorView (since the World is maybe notable to provide the requested information). As we have full control over the simulation environment, this back-channel is skipped and SensorView according to the sensor'S SensorView configuration will always be provided.

To test whether an object is inside our sector we check

  1. if it is inside the circle around the sensor with radius the detection range and
  2. if it intersects a suitable polygon

Depending on the opening-angle the polygon in 2) has either four (angle < 180°) or five corners (angle >= 180°).

four-corner kite polygon for angle lower than 180°
Object | intersects circle | intersects polygon | detected
A | true | false | false
B | true | true | true
C | false | true | false
D | false | false | false
E | true | true | true
five-corner polygon for angle greater or equal 180° and greater 360°
Object | intersects circle | intersects polygon | detected
A | false | true | false
B | true | true | true
C | true | true | true
D | true | false | false
E | false | false | false

For convex BBoxes the above will give correct detection results.

Both polygons are constructed from corner-points consisting out of the intersection between the opening-angle boundaries at maximum detection range and their corresponding tangents.

Function

  1. Construct the polygon based on the opening-angle
  2. Check if detection-field (polygon) intersects with any BBox (object-detection)
  3. Calculate the distance between sensor and object
  4. if (dist <= range && isIntersecting) -> object is in circular sector (object validation)

Cases

  • For angles < 1.0 * pi a four-corner (kite) polygon can be constructed out of two radiuses and two tangents.
  • For angles > = 1.0 * pi and < 2.0 * pi a five-corner polygon can be constructed of two radiusas an three tangents.
  • For opening-angle of exactly 2.0 * pi the distance information suffices. No polygon is needed.

Visual Obstruction

Objects in front of others block the sensors line of sight. If an object is large enough it might visually obstruct others.

To check if one or multiple objects in combination "shadow" other objects the EnableVisualObstruction - flag can be set.

Also the minimum required percentage of the visible area of an object to be detected can be specified.

The implemented algorithm uses the concept of shadow-casting.

The sensor can be pictured as a light source. Every object in the detection field of the sensor will therefore cast a shadow and reduce the overall detection area behind it.

If an object is shadowed too much (e.g. the visible area is below a specified threshold) it is removed from the list of DetectedObject's and considered undetected.

Example of shadow-casting

As depicted in the figure above, inside the initial bright area (approximated as ciruclar sector) the following steps are taken:

  1. calculate the shadow polygon of each object inside the detection field and remove the casted shadow from the bright area
  2. check for each object the remaining area inside the bright area polygon. If (covered object area / total object area) < threshold - remove object from the list of detected objects.

After all shadows are removed the "real" detection field polygon (yellow area) remains. Objects in green and blue are detected. The red object is completly covered by shadows and therefore not detected.

SensorFusionOSI

The SensorFusionOSI module allows unsorted aggregation of any data provided by sensors. All sampled detected objects can then be broadcasted to connected ADAS.

It collects all SensorDataSignals and merges them into a single SensorDataSignal.

SignalPrioritizer

All channels can only have one source. If one modul can have the same input type from multiple sources a prioritizer modul is needed in between. All sources then get an output channel to the prioritizer modul and the prioritizer gets an output to the modul, which uses this signal. If more than an component sends an active signal during the same timestep, the prioritizer forwards only the signal from the input channel with the highest priority. These priorities are set as parameters in the systemConfigBlueprint.xml:

```xml <Component name="[Name of the SignalPrioritizer]" init="false" priority="[Priority]" offsettime="0" responsetime="0" cycletime="[CycleTime]" library="SignalPrioritizer"> <ComponentInputs> <ComponentInput id="0" channelref="[InputChannel Id 1]"> <ComponentInput id="1" channelref="[InputChannel Id 2]"> <ComponentInput id="2" channelref="[InputChannel Id 3]"> [...] </ComponentInputs> <ComponentOutputs> <ComponentOutput id="0" channelref="[OutputChannel Id]"> </ComponentOutputs> <ComponentParameterSets> <ComponentParameterSet name="Regular"> <Int key="0" value="[Priority sender 1]"> <Int key="1" value="[Priority sender 2]"> <Int key="2" value="[Priority sender 3]"> [...] </ComponentParameterSet> </ComponentParameterSets> <ComponentObservations> </Component> ```

Parameter | Description
[Name of the SignalPrioritizer] | unique name, ideally ends with "...SignalPrioritizer"
[Priority] | The priority has to be between all input and output components. The higher the priority, the earlier will this fusion module be executed. e.g. inputA = 150, inputB = 200; 100 <= outputs → 100 < Prioritizer < 150;
[InputChannel Id] | Specify all input channels
[OutputChannel Id] | Specify output channel
[Priority sender n] | Gives the priority of the signal from sender n. The higher the value, then the more important the sender.

One prioritizer modul can only handle signals of the same type. If there is no signal in one timestep, then the signal of the previos timestep is hold.

  1. Adapt file AgentSampler.h
    • add name of the new SignalPrioritizer to list of vehicleComponentNames

Existing prioritizer modules

  • PrioritizerAccelerationVehicleComponents
  • PrioritizerSteeringVehicleComponents
  • PrioritizerLongitudinal
  • PrioritizerSteering
  • DynamicsPrioritizer

Also refer to the Components and channels communication diagram.

ComponentController

Overview

The ComponentControoler (CC) is used to configure and handle dependencies between other vehicle components.

Example use cases could be:

  • Cruise control:
    • driver requesting higher acceleration than cruise control overrides the latter
    • driver braking deactivates cruise control
  • Lane keeping assistant:
    • cannot be activated by driver, if emergency braking is currently active
    • stays active, when emergency braking occours (i. e. by other ADAS)

The responsibilies of the CC are:

  • Handling of all dependencies between VehicleComponents in case a component wants to activate
  • Make information about driver, TrajectoryFollower and other VehicleComponents available to each other
  • Determine the highest allowed activation state of a component and notify the affected component about this state

To achieve this tasks, each component is assigned a maximum allowed state in each timestep. This state is of type ComponentState, which defines Disabled, Armed or Active as allowed states. Drivers can be in a state of either Active or Passive.

State handling inside Vehicle Component

Within a vehicle component, the information flow should be implemented as follows:

  1. The vehicle component retrieves the information of other components and the current maximum allowed state from the CC. Other components include drivers, trajectory followers and all other vehicle components connected to the CC.
  2. Based on that information the vehicle component determines its current desired state.
  3. The desired state is sent to the CC.

The CC handles all the dependencies between different components and determines the maximum allowed state for each component based on the configuration of the CC.

Used signals

The CC communicates with the controlled components via framework signals. An overview of the connections and signal flow is shown below.

Vehicle components signal flow

Inputs to the ComponentController:

Source | Contents | Signal
TrajectoryFollower | Current state | ComponentStateSignal
Driver | Current state, pedal activity | DriverStateSignal
VehicleComponent | Current state, desired state, generic ADAS parameters | VehicleCompToCompCtrlSignal

Output to other components:

Destination | Contents | Signal
TrajectoryFollower | Current max. reachable state | ComponentStateSignal
Driver | List of all ADAS with names, stati and types | AdasStateSignal
VehicleComponent | Current max. reachable state, list of all ADAS with names, stati and types | CompCtrlToVehicleCompSignal
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Scheduling

Scheduling

Table of Contents

  • Scheduler
    • Executing phases
    • Task type description
    • Task priorities
    • Class diagram
    • Scheduler Procedure
    • SpawnControl

Scheduler

The Scheduler handles the sequence of agent based and common tasks before, during and after simulation.

Executing phases

Each simulation run splits up into 6 phases: Bootstrap, Common, NonRecurring, Recurring, FinalizeRecurring and Finalize tasks. With the exception of recurring and non-recurring tasks the phases are immutable, once set up.

Scheduler phases
  1. Initial task are grouped within the bootstrap tasks and are executed first and only once.
  2. After this Common, NonRecurring, Recurring and FinalizeRecurring Tasks are processed at each timestamp. Thereby, the common phase is a recurring initialization phase for the whole simulator, such as spawning, event detection and observation logging. Whenever a new agent is spawned, all its components are parsed to trigger and update tasks, grouped and sorted by execution time as non-recurring and recurring tasks. Non-recurring tasks are executed just once and will be deleted afterwards (init flag in ComponentRepository). Whenever an agent is spawned or removed, the non-recurring and recurring tasks are updated. Right after execution of all agent-based tasks, the FinalizeRecurring phase synchronizes all changes to the world.
  3. The last phase is finalizing task, executed when an end condition is reached, such as end of simulation duration. Within this phase all event detectors and manipulators are triggered and the observation module is updated one last time.

Task type description

The scheduler handles 8 different task types:

  • Spawning - triggers agent spawning
  • EventDetector - execute event detector
  • Manipulator - execute manipulator
  • Observation - update observation modules
  • Trigger - execute trigger function of connected component
  • Update - execute update output of connected component and resulting input
  • UpdateGlobalDrivingView - create global driving view
  • SyncGlobalData - update global data

The following table gives an overview to all phases.

Phase | Changeable | Task types | Notes
Bootstrap | no | Spawning, Observation | PreRun Spawning occurs here
Common | no | Spawning, EventDetector, Manipulator, Observation | Runtime Spawning occurs here
Non recurring | yes | Trigger, Update |
Recurring | yes | Trigger, Update |
Finalize recurring | no | SyncGlobalData | Update the state of the agents and the virtual world (e.g. due to agent movements).
Finalize | no | EventDetector, Manipulator, Observation |

Task priorities

The order of the tasks within one phase depends on component priority and task type. All tasks for a given timestamp are ordered by the SchedulerTasks priority, and divided into the aformentioned phases.

The following table shows the priorities for the non-component task types:

Task type | Priority | Notes
Spawning | 4 | Highest priority, nothing can happen before any agent is instantiated.
EventDetector | 3 |
Manipulator | 2 | The manipulator task uses the event detector tasks as input. Therefore it is called afterwards.
SyncGlobalData | 1 |
Observation | 0 | Observation tasks have to be execute at the end.

The priority of trigger and update tasks depend on the priority within the ComponentRepository. They are independent of non-component priorities. Since trigger tasks prepare output signals, output tasks are be called after the corresponding trigger tasks.

Class diagram

The scheduler contains the logical process of each simulation. At the beginning of each run the task builder will create all fix tasks.

Class diagram Scheduler

The class SchedulerTasks manages all existing tasks and returns filtered tasks for each timestamp. (Except Bootstrap and Finalize tasks, they are executed once and do not have to be filtered.) SchedulerTasks calculates with the help of cycletime and delay if the task has to be execute in an given timestamp. All tasks are managed in multisets to order them automatically by component priority and task type.

The scheduler requests all tasks for the current timestamp and execute them.

Scheduler Procedure

For each simulation run the following steps are made:

  1. Instantiate TaskBuilder and create Bootstrap, Common, FinaliuzeRecurring and Finalize tasks.
  2. Instantiate and fill SchedulerTasks with built task lists.
  3. Initial spawning
  4. Execute bootstrap tasks
  5. Execute common tasks
  6. Update SchedulerTasks (spawning/removing change component tasks)
  7. execute component tasks (non recurring, recurring, finalize recurring)
  8. make timestep
  9. Repeat steps 5 till 8 until end condition is reached
  10. Execute finalize tasks

SpawnControl

SpawnControl triggers for each SpawnPoint spawning of given next spawn time. Spawning includes generating an AgentBlueprint, which is processed in SpawnPoint, and instantiate the given agent.

Before setting a common agent into the world, SpawnControl checks the distance to the next front agent and validates time to brake. If this violates ttb regulation, the velocity of the agent will be adapted, until ttb criterion is met.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Localization

Localization

Table of Contents

  • Basics
  • Localization sequence

This page describes the translation of coorindates (x,y) of an agent into RoadCoordinate (s,t), whereas the notion of (s,t) comes from the OpenDRIVE standard. For more information, please refer to the OpenDRIVE Format Specification.

Basics

The following image depics the basic principes of the localization which is rooted on the specifics of the OSI World Layer (aka OWL).

Localization Basics

Given is a point P in cartesian coordinates (x/y). The task is to assign the point to a lane, defined by a general road geometry and calculate the transformed Point P' in road coordinates (s/t).

Road geometry (based on OpenDRIVE):

  • A road consists of several sections
  • Each section consists of several lanes
  • Within a section, the number of lanes is constant
  • Lanes can have one predecessor and one successor
  • The road follows a reference line, which is the reference for the s-coordinate. The t-coordinate is perpendicular to this line.

OWL specifics:

  • All lanes are sampled, generating a stream of generic quadrilaterals (LaneGeometryElements).
  • Within a section, the number of quads per lane is equal, and all lanes have the same length in s.
  • This is realized by a variable sampling width, determined by a constant sampling width along the longest arc.
  • Consequently, points perpendicular to the reference line (t-axis) have the same s-coordinate.

Note, that the final t-coorindate is calculated with respect to a virtual reference line for each lane. This means, that points on the center of a lane have t-coordinate of 0.

Localization sequence

An r-tree is used to store each LaneGeometryElement. Thereby, due to the nature of the r-tree, the bounding box of the LaneGeometryElement is described by its maximum Cartesian coordinates (x_min, x_max, y_min, y_max). Objects are located by retrieving all intersecting bounding boxes from the r-tree. The picture below shows an example of an agent (blue) with the corresponding Cartesian bounding box, and all located LaneGeometryElements.

Example of bounding boxes of LaneGeometryElements and agent

As the true boundary polygon may be smaller, the actual intersection polygon of the object and each LaneGeometryElement is calculated. For each point of a non-empty intersection polygon, the s and t coordinates are calculated and aggregated with respect to the underlying lane. For each touched lane, the minimum and maximum s coordinate, and the minimum and maximum lane remainder (delta t) is stored.

Example for the calculation of s_min, s_max and delta_left

In addition, if the reference point (i.e. the middle of the rear axle) or the mainLaneLocator (i.e. the middle of the agent front) are located within a LaneGeometryElement, s/t/yaw is calculated of each point, respectively. Further aggregation is done with respect to each road by calculating the minimum and maximum s for each road the agent intersects with. For the current route of an agent, the following information is stored: s/t/yaw of the reference point and mainLaneLocator on the route (roads along a route are not allowed to intersect), distance from the lane boundary to the left and right for the road(s) along the route, and OpenDRIVE Ids of the lanes on the route that the agent touches. The results also holds information wether both the reference point and the mainLaneLocator lay on the route. In the currently implementation, these points must be located - otherwise the agent is despawened, as the agent cannot execute distance queries without a relation to its current route.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Advanced Driver Assistance Systems

Advanced Driver Assistance Systems

Table of Contents

  • Autonomous Emergency Braking (AEB)

Autonomous Emergency Braking (AEB)

The Autonomous Emergency Braking system checks if a collision is likely to occur in the near future and, if necessary, brakes to avoid the collision. In the ProfilesCatalog, there are several parameters (see the corresponding section of the Input Output documentation):

  • TTC (sec): TTC Threshold for the stage to activate
  • Acceleration (m/s²): Maximum breaking acceleration for this the stage
  • CollisionDetectionLongitudinalBoundary (m): Additional length added to the vehicle boundary when checking for collision detection
  • CollisionDetectionLateralBoundary (m): Additional width added to the vehicle boundary when checking for collision detection

In each timestep, the system evaluates all objects detected by the SensorGeometric2D and calculates the time to collision (TTC) for this object based on the perceived movement of the object. If, for any object, the TTC is lower than the threshold of the component, then the component gets activated. The system deactivates if the TTC is larger than 1,5 times the threshold of the component.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Input & Output

Input & Output

Table of Contents

  • Input
    • systemConfigBlueprint.xml
      • Priorities
      • Channel-Ids
      • Parameters
    • slaveConfig.xml
      • Experiment
      • Scenario
      • Environment
      • Observations
        • Observation_Log
      • Spawners
    • ProfilesCatalog.xml
      • AgentProfiles
      • VehicleProfiles
        • Components
        • Sensors
      • ProfileGroups
      • DriverProfiles
        • AlgorithmAgentFollowingDriverModel
      • VehicleComponentProfiles
        • AEB
        • DynamicsTrajectoryFollower
      • SensorGeometric2D
    • Scenario.xosc
    • SceneryConfiguration.xodr
    • VehicleModelsCatalog.xosc
    • PedestrianModelsCatalog.xosc
    • systemConfig.xml
  • Output
    • simulationOutput.xml
      • RunStatistics
      • Events
      • Agents
      • Cyclics
    • LogSlave.txt

Input

In this section all input files and their contents are described. All input files need to be placed in the "/configs" subfolder. Several tags of some input files are optional. But all attributes related to a tag are required, if this tag is used.

Obligatory input files are: systemConfigBlueprint.xml, slaveConfig.xml, ProfilesCatalog.xml, Scenario.xosc, SceneryConfigruation.xodr, VehicleModelsCatalog.xosc and PedestrianModelsCatalog.xosc.

Optional input files are: SystemConfig files and Trajectory files (only required if specified in the slaveConfig.xml).

For demonstration purposes all files of an AEB scenario have been added as an example.

  • systemConfigBlueprint.xml
  • slaveConfig.xml
  • ProfilesCatalog.xml
  • Scenario.xosc
  • SceneryConfiguration.xodr
  • VehicleModelsCatalog.xosc
  • PedestrianModelsCatalog.xosc
  • System Configuration

systemConfigBlueprint.xml

This file contains the possible agent modules and channels of a dynamically generated agent. The content of this file should only be adjusted by experienced users with knowledge of the simulation architecture. The SystemConfigBlueprint is a special SystemConfig and has the same schema. Only the system with id 0 is used for generating dynamic agents. If the simulation uses only statically configured agents (AgentProfile Type attribute is "Static"), this file isn't required.

AgentComponents All components are listed here. An agent consists of a subset of this components.

Attribute | Description
Id | Used as key by the simulation to find the component
Priority | The module with the highest priority value gets executed first by the scheduler
Offset | Delay for the trigger method of each component in ms
Cycle | Interval in which the component gets triggered by the scheduler in ms
Response | Delay for the UpdateOutput method of each component in ms
Library | Library name of this component
Parameters | Parameters used by the component

Example: This example describes the Sensor_Driver module.

```xml <component> <id>Sensor_Driver</id> <schedule> <priority>490</priority> <offset>0</offset> <cycle>100</cycle> <response>0</response> </schedule> <library>Sensor_Driver</library> <parameters> </component> ```

Priorities

Please refer to the [Components and channel communication diagram]]Module Composition) for assignment of a proper priority. Based on the signal flow, input relevant components like sensors need to be executed first. They provide data for consuming components (algorithms) like ADAS and drivers. Data is then handled by algorithms like Algorithm_Lateral. Output-relevant modules like dynamics and actions are executed last.

Prioritizer can be applied on different levels depending on the modules/data they need to handle levels as following can be defined: Level 1 describes data produced by ADAS and drivers. Level 2 describes data output by vehicle dynamic controllers. Level 3 describes data delivered by dynamics.

Priorities can be grouped (coarse) as following: Highest number indicates highest priority.

Scope | Range
Parameters | 500
OpenScenarioActions | 400
Sensor | 350...399
Event | 330
DriverModels | 310
ADAS | 250...299
ComponentController | 200
Prioritizer (Lvl. 1) | 150...199
VehicleDynamicsControllers | 100...149
Prioritizer (Lvl. 2) | 75...99
Dynamics | 50...74
Prioritizer (Lvl. 3) | 25...49
Updater | 0...24

The table below can be used as orientation when a new module is introduced.

Name | Library | Priority | Scope | Note
ParametersAgentModules | ParametersAgent | 500 | Parameters | Sets all init-data and is updated cyclically
OpenScenarioActions | OpenScenarioActions | 400 | ADAS | Reads events from OpenScenario Actions and forwards them to other components
AlgorithmAgentFollowingDriverModel | AlgorithmAgentFollowingDriverModel | 310 | DriverModels | -
AEB | AlgorithmAutonomousEmergencyBraking | 250 | ADAS | -
ComponentController | ComponentController | 200 | ADAS | Manages vehicle component states with regard to other vehicle component states and conditions and in response to events.
PrioritizerLaterDriver | SignalPrioritizer | 150 | Prioritizer | -
PrioritizerAccelerationDriver | SignalPrioritizer | 150 | Prioritizer | -
PrioritizerTurningIndicator | SignalPrioritizer | 150 | Prioritizer | -
PrioritizerSteeringVehicleComponents | SignalPrioritizer | 150 | Prioritizer | -
PrioritizerAccelerationVehicleComponents | SignalPrioritizer | 150 | Prioritizer | -
LimiterAccelerationVehicleComponents | LimiterAccelerationVehicleComponents | 120 | VehicleDynamicsControllers | -
AlgorithmLateralDriver | AlgorithmLateralDriver | 100 | VehicleDynamicsControllers | -
AlgorithmLongitudinalVehicleComponents | AlgorithmLongitudinalVehicleComponents | 100 | VehicleDynamicsControllers | -
AlgorithmLongitudinalDriver | AlgorithmLongitudinalDriver | 100 | VehicleDynamicsControllers | -
PrioritizerSteering | SignalPrioritizer | 75 | Prioritizer | -
PrioritizerLongitudinal | SignalPrioritizer | 75 | Prioritizer | -
DynamicsCollision | DynamicsCollision | 50 | Dynamics | -
DynamicsRegularDriving | DynamicsRegularDriving | 50 | Dynamics | -
DynamicsTrajectoryFollower | DynamicsTrajectoryFollower | 50 | Dynamics | -
ProritizerDynamics | SignalPrioritizer | 25 | Prioritizer | -
SensorRecordStateModule | SensorRecordState | 2 | Updater | Since values are "frozen" f. current time step, logging can be placed anywhere
ActionLongitudinalDriverModules | ActionLongitudinalDriver | 3 | Updater | Will be expanded to ActionPrimaryDriverTasks
ActionSecondaryDriverTasksModules | ActionSecondaryDriverTasks | 3 | Updater | -
AgentUpdater | AgentUpdater | 1 | Updater | -

Channel-Ids

Channels allow components to communicate with each other. The signalflow is set explicitly via a channel-Id of 4 digits (see also Components and channels communication diagram).

The first two numbers define the sending module (XX 00). The other two digits define the type of signal that is sent (00 XX).

Signals as well as modules can be grouped to allow explicit numbering (see tables below).

Channel-Ids between Sensor and SensorFusion are an exception to this rule. For sensor/sensor fusion communication channel-ids are 9900 + x (incremented for every new sensor)

Example: PrioritizerAccelerationDriver -> AlgorithmLongitudinalDriver with signal of type AccelerationSignal: 1813.

Ids for Modules (first two digits)

Index range for module groups:

Group | Id
Dynamics | 1...10
Algorithm | 11...30
DriverTasks | 31...40
Driver | 41...50
VehicleComponent | 51...80
Special | 81...89
Sensor | 91...99

With corresponding defined indices :

Module | Group | Id
AgentUpdater | Dynamics | 1
Dynamics_TrajectoryFollower | Dynamics | 2
Dynamics_RegularDriving | Dynamics | 3
Dynamics_Collision | Dynamics | 4
PrioritizerDynamics | Dynamics | 5
Algorithm_LongitudinalVehicleComponent | Algorithm | 11
Algorithm_LongitudinalAfdm | Algorithm | 12
Algorithm_SteeringVehicleComponent | Algorithm | 14
Algorithm_LateralVehicleAfdm | Algorithm | 15
LimiterVehicleLongitudinal | Algorithm | 17
PrioritizerLongitudinal | Algorithm | 21
PrioritizerSteering | Algorithm | 22
PrioritizerAccelerationVehicleComponents | Algorithm | 23
PrioritizerSteeringVehicleComponents | Algorithm | 24
Action_LongitudinalDriver | DriverTasks | 31
Action_SecondaryDriverTasks | DriverTasks | 32
PrioritizerTurningIndicator | DriverTasks | 33
AlgorithmAgentFollowingDriver | Driver | 41
AEB | VehicleComponent | 52
ComponentController | Special | 83
OpenScenarioActions | Special | 84
Parameter_Vehicle | Sensor | 92
Sensor_Driver | Sensor | 95

Ids for Signals (last two digits)

Index range for signal groups:

Group | Id
Dynamics | 1...10
Algorithm | 11...30
OpenScenarioActions | 61...70
Special | 71...80
Sensor | 81...90
Parameters | 91...99

With corresponding defined indices :

Signal | Group | Id
Dynamics | Dynamics | 01
Longitudinal | Algorithm | 11
Steering | Algorithm | 12
Acceleration | Algorithm | 13
Lateral | Algorithm | 14
SecondaryDriverTasks | Algorithm | 19
Trajectory | OpenScenarioActions | 71
SensorDriver | Sensor | 81
ParametersVehicle | Parameters | 92

Parameters

For more information on the type of parameters (escpecially stochastic distributions), please refer to the ProfilesGroup section.

Important Note: The syntax for defining parameters in the SystemConfigBlueprint file differs from the ProfilesCatalog syntax. See the following example:

```xml <parameters> <parameter> <id>StringParameter</id> <type>string</type> <unit>

Lorem ipsum

</parameter> <parameter> <id>RandomParameter</id> <type>normalDistribution</type> <unit>

<mean>15.0</mean> <sd>2.5</sd> <min>10.0</min> <max>20.0</max>

</parameter> </parameters> ```

slaveConfig.xml

This file is necessary for the simulation to work. It describes all user configurable parameters of the experiment. Several parameters depend on probabilities. Each invocation then rolls for said probabilities. All probabilities need to add up to 1.0.

The slaveConfig.xml consists of the following parts:

  • Experiment
  • Scenario
  • Environment
  • Observations
  • Spawners

Experiment

This section contains information about the general experiment setup. These values are not specific to a single invocation.

Tag | Description | Dependence
ExperimentId | Id of the experiment | Obligatory
NumberOfInvocations | Number of invocation in the experiment. For each invocation probabilities are rerolled | Obligatory
RandomSeed | Random seed for the entire experiment. The seed must be within the bounds of unsigned integers | Obligatory
Libraries | Name of the core module Libraries to use. If a name is not specified the default name is assumed | Obligatory

Example: This experiment has the id 0. During this experiment the simulation runs 10 invocations and the first invocation starts with the random seed 5327.

```xml <ExperimentConfig> <ExperimentID>0</ExperimentID> <NumberOfInvocations>10</NumberOfInvocations> <RandomSeed>5327</RandomSeed> <Libraries> <WorldLibrary>World_OSI</WorldLibrary> </Libraries> </ExperimentConfig> ```

Scenario

This section contains information about the scenario setup for the experiment. This information does not change between invocations.

Tag | Description | Dependence
OpenScenarioFile | Name of the scenario file | Obligatory

Example: This experiment uses the "HighwayScenario.xosc" scenario file. ```xml <ScenarioConfig name="Default"> <OpenScenarioFile>HighwayScenario.xosc</OpenScenarioFile> </ScenarioConfig> ```

Environment

This section contains information about the world and the general environment inside the simulation. Every invocation re-rolls the environment probabilities. All probabilities need to add up to 1.0.

Tag | Description | Dependence
TimeOfDay | Number representing the time of day in hours ranging from 1-24. Currently not used. | At least one entry is required
VisibilityDistance | Range agents can see in m | At least one entry is required
Friction | Friction on the road. Used by the LimiterAccelerationVehicleComponents & DynamicsRegularDriving | At least one entry is required
Weather | Weather as string. Currently not used | At least one entry is required

Example: Every invocation has the time set to 15:00. In 70% of all invocation drivers can see 125 meter and for the other 30% of invocations the drivers can see 250 meter. Every invocation has a friction of 0.3. Every invocation has sunny weather.

```xml <EnvironmentConfig name="Default"> <TimeOfDays> <TimeOfDay value="15" probability="1.0"> </TimeOfDays> <VisibilityDistances> <VisibilityDistance value="125" probability="0.7"> <VisibilityDistance value="250" probability="0.3"> </VisibilityDistances> <Frictions> <Friction value="0.3" probability="1.0"> </Frictions> <Weathers> <Weather value="Sunny" probability="1.0"> </Weathers> </EnvironmentConfig> ```

Observations

In this section all observation libraries are defined with their parameters. A specific library is loaded by adding an entry to the Observations tag in the slaveConfig.xml (see example below). The Library tag contains the name of the library. The Parameters tag provides an optional list of keys/values. These parameters are specific to each type of observation libraries.

```xml <Observations> <Observation> <Library>Observation_Log</Library> <Parameters> <String key="OutputFilename" value="simulationOutput.xml"> <Bool key="LoggingCyclicsToCsv" value="false"> <StringVector key="LoggingGroup_Trace" value="XPosition,YPosition,YawAngle"> <StringVector key="LoggingGroup_Sensor" value="Sensor*_DetectedAgents,Sensor*_VisibleAgents"> <StringVector key="LoggingGroups" value="Trace,Sensor"> </Parameters> </Observation> </Observations> ```

Observation_Log

This is the standard observation module, that writes the simulationOutput.xml. It has the following parameters:

Parameter | Description
OutputFilename | Name of the output file
LoggingCyclicsToCsv | If true, the cyclics are written into a separate CSV file for every run
LoggingGroup_<NAME> | Defines which columns belong to the logging group named NAME
LoggingGroups | Defines which logging groups are active

LoggingGroup definitions using wildcards

In addition to specifying logging column names by stating their full names, it is allowed to use the wildcard character * in a LoggingGroup_NAME entry. The wildcard can be used at most one time in each column reference.

For an example, please see the slaveConfig.xml snippet above.

Spawners

In this section the spawners are defined with their Profile (defined in the ProfilesCatalog). The same library can be loaded multiple times with different profiles. A spawner is either of type "PreRun", meaning it is triggered only once at the start of the simulation, or "Runtime", meaning it is triggered in every timestep. If different spawners are to be triggered at the same time the spawner with the highest priority is triggered first.

```xml <Spawners> <Spawner> <Library>SpawnPointScenario</Library> <Type>PreRun</Type> <Priority>1</Priority> </Spawner> <Spawner> <Library>SpawnPointPreRunCommon</Library> <Type>PreRun</Type> <Priority>0</Priority> <Profile>DefaultPreRunCommon</Profile> </Spawner> <Spawner> <Library>SpawnPointRuntimeCommon</Library> <Type>Runtime</Type> <Priority>0</Priority> <Profile>DefaultRuntimeCommon</Profile> </Spawner> </Spawners> ```

ProfilesCatalog.xml

The ProfilesCatalog contains all AgentProfiles, VehicleProfiles and generic ProfileGroups and Profiles. Depending on the configuration the simulator could require a "Driver"-ProfileGroup, a "Spawner"- and "TrafficGroup"-ProfileGroup , or sensor and vehiclecomponent specific ProfileGroups.

  • AgentProfiles
  • VehicleProfiles
  • ProfileGroups
  • Driver-ProfileGroup
  • VehicleComponent-ProfileGroups
  • TrafficGroup-ProfileGroup
  • Spawner-ProfileGroup

AgentProfiles

In this section all AgentProfiles are defined. An AgentProfile is either static or dynamic. A static AgentProfile consists of a SystemConfig and a VehicleModel. A dynamic AgentProfile specifies the composition of the agent according to certain probabilities. Here the initial driver and the vehicle profile of an agent get specified. At least one AgentProfile is required. But every AgentProfile referenced in the used Scenario.xosc file or TrafficConfig must exist. All probabilities must add up to 1.0.

Tag | Description | Dependence
DriverProfile | Name of the DriverProfile | At least one entry is required
VehicleProfiles | All different ADASProfiles can be referenced here. For further information see VehicleProfiles | Optional

Example: In this experiment the ego agent is defined by the system with Id 0 in systemConfig.xml and the VehicleModel car_bmw_7. Every LuxuryClassCarAgent has the driver profile "AgentFollowingDriver". Regarding the vehicle profile 50% have a MINI Cooper and the other 50% drive a BMW 7.

```xml <AgentProfiles> <AgentProfile name="EgoAgent" type="Static"> <System> <File>systemConfig.xml</File> <Id>0</Id> </System> <VehicleModel>car_bmw_7</VehicleModel> </AgentProfile> <AgentProfile name="LuxuryClassCarAgent" type="Dynamic"> <DriverProfiles> <DriverProfile name="AgentFollowingDriver" probability="1.0"> </DriverProfiles> <VehicleProfiles> <VehicleProfile name="MINI Cooper" probability="0.5"> <VehicleProfile name="BMW 7" probability="0.5"> </VehicleProfiles> </AgentProfile> </AgentProfiles> ```

VehicleProfiles

This sections contains all vehicle profiles. Every VehicleProfile used by AgentProfiles must be listed here.

```xml <VehicleProfiles> <VehicleProfile name="BMW 7"> <Model name="car_bmw_7"> <Components> <Component type="AEB"> <Profiles> <Profile name="aeb" probability="0.5"> </Profiles> <SensorLinks> <SensorLink sensorid="0" inputid="Camera"> </SensorLinks> </Component> </Components> <Sensors> <Sensor id="0"> <Position name="Default" longitudinal="0.0" lateral="0.0" height="0.5" pitch="0.0" yaw="0.0" roll="0.0"> <Profile type="Geometric2D" name="Standard"> </Sensor> </Sensors> </VehicleProfile> ... </VehicleProfiles> ```

Attribute | Description
Name | Name of the vehicle profile
Components | Lists all ADAS and other components in the vehicle
Sensors | Lists all sensors in the vehicle

Components

Attribute | Description
Type | Type of the component. Must be identical to the component name in the SystemConfigBlueprint
Profile | All possible profiles of the component with probabilities. Probabilities do not need to add up to 1.
SensorLinks | Defines which sensor this component uses as input

If the probabilities of the profiles do not add up to 1, it means that the vehicle possibly does not have this type of component

Sensors

Attribute | Description
Id | Identifier for the sensor used by the SensorLink definition of the components
Position | Position of the sensor in the vehicle in relative coordinates
Profile | All possible profiles of the sensor with probabilities.

ProfileGroups

A ProfileGroup defines all the possible profiles of a component. A single profile is a set of parameters that are passed to the component in the same way as the parameters in the SystemConfig. Note: For components that have their parameters defined in the ProfilesCatalog the parameters in the SystemConfigBlueprint are ignored. Parameters can either be simple or stochastic. Simple parameters only have one value, while stochastic parameters have a minimum and maximum value as well as distribution specific parameters. Which parameters are needed/supported depends on the component.

```xml <ProfileGroup type="ComponentName"> <Profile name="ExampleProfile"> <String key="StringParameter" value="Lorem ipsum"> <DoubleVector key="DoubleParameter" value="12.3,4.56,78.9"> <NormalDistribution key="RandomParameter" mean="4.5" sd="0.5" min="3.5" max="10.0"> </Profile> <Profile name="AnotherProfile"> ... </Profile> </ProfileGroup> ```

There are the following types of simple parameters:

  • Bool
  • Int
  • Double
  • String
  • IntVector
  • DoubleVector
  • StringVector

If a parameter is stochastic it can be defined as any to be drawn from any of the following distributions:

Distribution | Additional attributes
NormalDistribution | (Mean and SD) or (Mu and Sigma) (equivalent)
LogNormalDistributio | (Mean and SD) or (Mu and Sigma) (not equivalent)
UniformDistribution | -
ExponentialDistribution | Lambda or Mean (Mean = 1 / Lambda)
GammaDistribution | (Mean and SD) or (Shape and Scale)

Additionally there is the list type. The list contains any number of list items which itself contain a list of parameters. Lists can be nested at most two times.

```xml

<ListItem> <String key="Name" value="LuxuryClassCarAgent"> <Double key="Weight" value="0.4"> </ListItem> <ListItem> <String key="Name" value="MiddleClassCarAgent"> <Double key="Weight" value="0.6"> </ListItem>

```

A Profile can also reference another Profile in another ProfileGroup. In these case the importer handles the reference as if it was substituted by all subelements of the referenced Profile. References may not be nested.

```xml <Reference type="GroupType" name="ProfileName"> ```

DriverProfiles

This section contains all driver profiles used by the simulation. At least one driver profile is required.

  • AlgorithmAgentFollowingDriverModel

AlgorithmAgentFollowingDriverModel

This driver type adapts its velocity to an agent in front and holds a desired velocity if there's no front agent available (like adaptive cruise control). The lateral guidance always keeps the agent in the middle of the lane.

```xml <ProfileGroup type="Driver"> <Profile name="AgentFollowingDriver"> <String key="Type" value="AlgorithmAgentFollowingDriverModel"> <String key="AlgorithmLateralModule" value="AlgorithmLateralAfdm"> <String key="AlgorithmLongitudinalModule" value="AlgorithmLongitudinalAfdm"> <Double key="VelocityWish" value="35.0"> <Double key="Delta" value="4.0"> <Double key="TGapWish" value="1.5"> <Double key="MinDistance" value="2.0"> <Double key="MaxAcceleration" value="1.4"> <Double key="MaxDeceleration" value="2.0"> </Profile> </ProfileGroup> ```

Parameter | Description | Dependence
AlgorithmLateralModule | Sets the driver behaviour model that generates the steering wheel angle of the driver | Obligatory
AlgorithmLongitudinalModule | Sets the driver behaviour model that generates the accelerator and brake pedal position and the current gear of the driver | Obligatory
VelocityWish | Desired speed | Optional (default: 120 [km/h]/ 33.33 [m/s])
Delta | Free acceleration exponent characterizing how the acceleration decreases with velocity (1: linear, infinity: constant) | Optional (default: 4.0)
TGapWish | Desired time gap between ego and front agent | Optional (default: 1.5)
MinDistance | Minimum distance between ego and front (used at slow speeds); Also called jam distance | Optional (default: 2.0)
MaxAcceleration | Maximum acceleration in satisfactory way, not vehicle possible acceleration | Optional (default: 1.4)
MaxDeceleration | Desired deceleration | Optional (default: 2.0)

VehicleComponentProfiles

This sections contains all driver assistance systems and other vehicle components and their parameter sets. Every VehicleComponentProfile used by AgentProfiles must be listed here. Currently there are three VehicleComponents:

  • AEB
  • DynamicsTrajectoryFollower
  • SensorGeometric2D

AEB

For details about the system go to AEB - Module.

Attribute | Description
CollisionDetectionLongitudinalBoundary | Additional length in m added the vehicle boundary when checking for collision detection
CollisionDetectionLateralBoundary | Additional width in m added the vehicle boundary when checking for collision detection
TTC | Time to collision which is used to trigger AEB in seconds
Acceleration | Braking acceleration when activated

```xml <ProfileGroup type="AEB"> <Profile type="AEB" name="AEB1"> <Double key="CollisionDetectionLongitudinalBoundary" value="4.0"> <Double key="CollisionDetectionLateralBoundary" value="1.5"> <Double key="TTC" value="2.0"> <Double key="Acceleration" value="-2"> </Profile> ... </ProfileGroup> ```

DynamicsTrajectoryFollower

This vehicle component aligns the vehicle to a certain trajectory. Every vehicle component profile of this type needs a Trajectory file.

All attributes are required. The profile name may be chosen freely.

Attribute | Description
TrajectoryFile | The file defining the Trajectory to follow
AutomaticDeactivation | If true, the trajectory follower relinquishes control of the vehicle after the final instruction in the TrajectoryFile.
EnforceTrajectory | If true, the trajectory follower overrides external input related to the vehicle's travel.

```xml <ProfileGroup type="DynamicsTrajectoryFollower"> <Profile name="BasicTrajectoryFollower"> <String key="TrajectoryFile" value="Trajectory.xml"> <Bool key="AutomaticDeactivation" value="true"> <Bool key="EnforceTrajectory" value="true"> </Profile> </ProfileGroup> ```

SensorGeometric2D

Parameter | Description
LatencyMean | Mean value of the latency
LatencySD | Standard deviation of the latency
LatencyMin | Minimum value of the latency
LatencyMax | Maximum value of the latency
FailureProbability | How likely the sensor fails to detected an object
DetectionRange | Range in which the sensor can detect objects
OpeningAngleH | Angle of the circular sector
EnableVisualObstruction | Wether this sensor uses visual obstruction

|RequiredPercentageOfVisibleArea|Fraction of the area of an object that has to be in the sensor detection field in order for being detected|Geometric2D|

```xml <ProfileGroup type="Geometric2D"> <Profile name="Standard"> <Double key="OpeningAngleH" value="0.35"> <Double key="DetectionRange" value="300"> <Double key="LatencyMean" value="0"> <Double key="LatencySD" value="0"> <Double key="LatencyMin" value="0"> <Double key="LatencyMax" value="0"> <Double key="FailureProbability" value="0"> <Bool key="EnableVisualObstruction" value="false"> <Double key="RequiredPercentageOfVisibleArea" value="0.001"> </Profile> </ProfileGroup> ```

Scenario.xosc

This file is necessary for the simulation to work. It describes the initial setup of the scenario.

For further information see the Scenario.xosc documentation.

SceneryConfiguration.xodr

This file is necessary for the simulation to work. It describes the road network and the objects of the road for the simulation run. The file is structured according to the OpenDRIVE standard. The file name can be adjusted as long as it's referred to in the ScenarioConfig of the slaveConfig.xml. But the Visualization can only load files called "SceneryConfiguration.xodr". If the objects are not openDrive conform the simulation is aborted. The simulator has some additional requirements on top of the openDrive standard, if objects don´t meet the requirements of the simulator they will be ingored.

Those requirements are:

  • length must be greater than 0.
  • width must be greater than 0.
  • radius must be 0.

VehicleModelsCatalog.xosc

This file is necessary for the simulation to work. It contains all currently available vehicle models for the simulation. For each vehicle the physical parameters are stored here. The name of this file needs has to be specified in the scenario configuration file (see io_input_slaveconfig_scenarioconfig).

PedestrianModelsCatalog.xosc

This file is necessary for the simulation to work. It contains all currently available pedestrian models for the simulation. For each pedestrian the physical parameters are stored here. The name of this file needs has to be specified in the scenario configuration file (see io_input_slaveconfig_scenarioconfig).

Note
Currently, pedestrian models are internally handled the same way as vehicle models. Vehicle specific parameters are set to their default values.

systemConfig.xml

SystemConfig files are optional. They discribe static configurations of agents and are therefore an alternative to the dynamic sampling of an agent during runtime. The schema is the same as for the SystemConfigBlueprint.

Output

In this section the simulation output files and their contents are described.

  1. simulationOutput.xml
  1. LogSlave.txt

simulationOutput.xml

Every successful run generates a simulation output. 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.

```xml <SimulationOutput> <RunResults> <RunResult runid="0"> ... </RunResult> <RunResult runid="1"> ... </RunResult> </RunResults> </SimulationOutput> ```

The RunResult consist out of the following parts:

  • RunStatistics
  • Events
  • Agents
  • Cyclics

RunStatistics

This section contains the RandomSeed and general statistics of the invocation.

Tag | Description
RandomSeed | Random seed used for this invocation
VisibilityDistance | Visibility distance of the world
StopReason | Displays the reason why the simulation stopped. Currently only due to time out
StopTime | Currently not used and set to -1
EgoAccident | Flag which shows whether the ego agent was involved in an accident
TotalDistanceTraveled | Total traveled distance of all agents
EgoDistanceTraveled | Total traveled distance of ego vehicle only

Events

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.

Attribute | Description
Time | Time in ms when the event occured.
Source | Name of the component which created the event. OpenSCENARIO, if triggered by an OpenSCENARIO condition.
Name | In case of an OpenSCENARIO event, a path expression trough Story, Act, Sequence, Maneuver and Event (as described in OpenSCENARIO file). Otherwise determined by the triggering component.
TriggeringEntities | List of entity IDs triggering this event.
AffectedEntities | List of entity IDs affected by this event.
Parameters | List of generic key/value string pairs.

Agents

This section contains some information on how each agent is configured.

Attribute | Description
Id | Identification number
AgentTypeGroupName | The agent category. This can either be Ego, Scenario or Common
AgentTypeName | Name of the agent profile
VehicleModelType | Name of the vehicle model
DriverProfileName | Name of the driver profile

```xml <Agent id="0" agenttypegroupname="Ego" agenttypename="MiddleClassCarAgent" vehiclemodeltype="car_bmw_7" driverprofilename="Regular"> ```

The VehicleAttributes tag lists basic information of the vehicle parameters.

Attribute | Description
Width | Width of the vehicles bounding box
Length | Length of the vehicles bounding box
Height | Height of the vehicles bounding box
LongitudinalPivotOffset | Distance between the center of the bounding box and the reference point of the agent. Positive distances are closer to the front and Negative distances are closer to the rear of the vehicle.

The Sensors tag lists all sensors of the agent and their parameters.

Attribute | Description
Name | Name of the component
Model | Type of the sensor
MountingPosLongitudinal | Relative longitudinal position of the sensor in relation to the agent
MountingPosLateral | Relative lateral position of the sensor in relation to the agent
MountingPosHeight | Relative height of the sensor in relation to the agent
OrientationPitch | Pitch rotation of the sensor in relation to the agent
OrientationYaw | Yaw rotation of the sensor in relation to the agent
OpeningAngleH | Horizontal opening angle of the sensor
OpeningAngleV | Vertical opening angle of the sensor
DetectionRange | Range how far the sensor reaches in m

Note: Calculation of visual obstruction is currently supported by the Geometric2D sensor. See file for configuration.

```xml <Sensor name="Geometric2DFront" model="Geometric2D" mountingposlongitudinal="0" mountingposlateral="0" mountingposheight="0.5" orientationpitch="0" orientationyaw="0" openingangleh="20" openinganglev="-999" detectionrange="300"> ```

Cyclics

This section contains all logged parameters of the agents per timestep. The Header tag defines the layout of all samples. Each entry of the Header tag consists of the agent id and the name of the logged value. A Sample is contains all information for one specific time step. The values in Sample are ordered according to the definition in Header. If a value is undefined, because an agent did not exist yet or got removed the value is ' '.

Example: In this example exist two agents with the ids 0 and 1. Two timesteps 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.

```xml <Cyclics> <Header>00:VelocityEgo, 00:XPosition, 00:YPosition, 00:YawAngle, 01:VelocityEgo, 01:XPosition, 01:YPosition, 01:YawAngle</Header> <Samples> <Sample time="0">30, 100, 50, 0, 40, 200, 50, 0</Sample> <Sample time="100">30, 103, 50, 0, 40, 204, 50, 0</Sample> </Samples> </Cyclics> ```

LogSlave.txt

In this log file errors and warnings of the slave are noted. In a run without any issues this file should be empty.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Scenario Configuration

Scenario Configuration

Table of Contents

  • Overview
  • ParameterDeclaration
  • Catalogs
  • RoadNetwork
  • Entities
  • Storyboard
    • Init
    • Story
      • Actors
      • Maneuver
        • Conditions
        • ByEntityConditions
        • ByValueConditions
        • Actions
    • EndConditions

Overview

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 behaviour of the simulation during the run. It adheres to the OpenSCENARIO standard, although we support only a subset of the features of the standard. The different parts of the scenario configuration are described in the following chapters:

ParameterDeclaration

In the ParameterDeclarations section parameters of different type may be declared, that are later referenced by their name prefixed with "$". The type can be "string", "integer" or "double". In case of "string" the value may be empty. The parameter "OP_OSC_SchemaVersion" is mandatory. It is used to check if the schema of the scenario is supported by this version of OpenPASS.

Example ```xml <ParameterDeclarations> <ParameterDeclaration name="OP_OSC_SchemaVersion" parametertype="string" value="0.4.0"> <ParameterDeclaration name="EgoSCoordinate" type="double" value="50.0"> </ParameterDeclarations> ```

Example use of a parameter ```xml <LanePosition roadid="1" s="$EgoSCoordinate" laneid="-2" offset="0.0"> ```

Catalogs

The <CatalogsLocations> tag defines references to various other files that describe sub features of OpenSCENARIO. We currently support only three of these references: the VehicleCatalog, which defines the vehicle models, and the PedestrianCatalog, which defines the pedestrian models. For the FollowTrajectory action one can also use a TrajectoryCatalog.

Example ```xml <CatalogsLocations> <VehicleCatalog> <Directory path="VehicleModelsCatalog.xosc"> </VehicleCatalog> <PedestrianCatalog> <Directory path="PedestrianModelsCatalog.xosc"> </PedestrianCatalog> <PedestrianControllerCatalog> <Directory path=""> </PedestrianControllerCatalog> <DriverCatalog> <Directory path=""> </DriverCatalog> <ManeuverCatalog> <Directory path=""> </ManeuverCatalog> <MiscObjectCatalog> <Directory path=""> </MiscObjectCatalog> <EnvironmentCatalog> <Directory path=""> </EnvironmentCatalog> <TrajectoryCatalog> <Directory path=""> </TrajectoryCatalog> <RouteCatalog> <Directory path=""> </RouteCatalog> </CatalogLocations> ```

RoadNetwork

The <RoadNetwork> tag contains the reference to the OpenDrive SceneryConfiguration.

Example ```xml <RoadNetwork> <LogicFile filepath="SceneryConfiguration.xodr"> <SceneGraphFile filepath=""> </RoadNetwork> ```

Entities

The <Entities> tag defines all agents that are present at the start of the simulation at a predefined position. There may be any arbitrary number of Scenario Agents (zero Scenario Agents is valid). Each agent is described by a name and a reference to a vehicle profile in the ProfilesCatalog (Important Note: This deviates from the OpenSCENARIO standard). To specify a Scenario Agent as the Ego Agent, the Agent must be named "Ego". Entities can also be grouped into selections. The selection called "ScenarioAgents" is special: The SpawnPoint will only spawn scenario agents that are part of this selection. The Ego Agent need not be included in the "ScenarioAgents" selection; it will always be spawned.

Example ```xml <Entities> <ScenarioObject name="Ego"> <CatalogReference catalogname="ProfilesCatalog.xml" entryname="MiddleClassCarAgent"> </ScenarioObject> <ScenarioObject name="ScenarioAgent1"> <CatalogReference catalogname="ProfilesCatalog.xml" entryname="MiddleClassCarAgent"> </ScenarioObject> <ScenarioObject name="ScenarioAgent2"> <CatalogReference catalogname="ProfilesCatalog.xml" entryname="MiddleClassCarAgent"> </ScenarioObject> <EntitySelection name="ScenarioAgents"> <Members> <EntityRef entityref="ScenarioAgent1"> <EntityRef entityref="ScenarioAgent2"> </Members> </EntitySelection> </Entities> ```

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 those in the VehicleCatalog.

Example ```xml <CatalogReference catalogname="ProfilesCatalog.xml" entryname="MiddleClassCarAgent"> <ParameterAssignments> <ParameterAssignment parameterref="Length" value="4.0"> </ParameterAssignments> </CatalogReference> ```

Note: In OpenPASS we reference an AgentProfile instead of a VehicleModel. An AgentProfile may have a stochastic distribution of different VehicleModel with different parameters. In this case some assigned parameters may only be used if a certain VehicleModel is drawn in the random selection.

Storyboard

The <Storyboard> tag contains the initial setup of the scenario as well as manipulator actions that affect the behaviour of the simulation during runtime if predefined conditions are met.

Init

The content of the <Init> tag is forwarded to the SpawnPoint to define if and where it should place the ego and scenario agents. The position can either be defined as global coordinates (x and y) with the World tag or as lane coordinates (s and t) with the Lane tag. The schema is as follows:

tag | parent | attributes | multiplicity
Actions | Init | - | 1
Private | Actions | entityRef | 1 per entity
PrivateAction | Private | - | at least 1
TeleportAction | PrivateAction | - | 1
Position | TeleportAction | - | 1
LanePosition | Position | roadId, laneId, s, offset | 0 or 1
WorldPosition | Position | x, y, h | 0 or 1
Orientation | LanePosition | type, h | 0 or 1
LongitudinalAction | PrivateAction | - | 1
SpeedAction | LongitudinalAction | - | 1
SpeedActionDynamics | SpeedAction | rate, dynamicsShape | 1
SpeedActionTarget | SpeedAction | - | 1
AbsoluteTargetSpeed | SpeedActionTarget | value | 1
RoutingAction | PrivateAction | - | 0 or 1
AssignRouteAction | RoutingAction | - | 1
Route | AssignRouteAction | - | 1
Waypoint | Route | - | at least 1
Position | Waypoint | - | 1
RoadPosition | Position | roadId, t | 1
VisibilityAction | PrivateAction | traffic | 1

All listed attributes are required. The attributes have the following meaning:

tag | attribute | meaning
Private | entityRef | name of the entity for which the initial values are described in the subtags
LanePosition | roadId | Id of the road in the Scenery
LanePosition | laneId | Id of the lane in the Scenery
LanePosition | s | start position on the lane (i.e. distance from the start of the road) of the reference point
LanePosition | offset | lateral distance of the reference point to the middle of the road (i.e. t coordinate)
WorldPosition | x | x coordinate of the reference point
WorldPosition | y | y coordinate of the reference point
WorldPosition | h | heading
Orientation | type | has to be "relative"
Orientation | h | heading angle in radiant relative to the lane
SpeedActionDynamics | rate | acceleration
SpeedActionDynamics | dynamicsShape | "linear" for constant acceleration, "step" for immediate transition
SpeedActionDynamics | dynamicsDimension | has to be "rate"
AbsoluteTargetSpeed | value | velocity
RoadPosition | roadId | Id of the road in the Scenery
RoadPosition | t | negative for driving in roadDirection (i.e on lanes with negative Id) else positive
RoadPosition | s | ignored
VisibilityAction | traffic | Flag deciding if the scenario agent will be spawned (true = spawned, false = not spawned)

Although OpenSCENARIO also states other ways for defining a position, we currently only support position via the <LanePosition> or the <WorldPosition> tag. Unlike OpenSCENARIO we also allow some of these values to be stochastic. This is marked by adding a subtag <Stochastics value="valuetype" stddeviation="value" lowerbound="value" upperbound="value"> to the <LanePosition> or <SpeedAction> tag. The stochastics tag is intended to be used as NormalDistribution, but it is up to each module using it to define the actual usage. The valuetype can either be s, offset, velocity or rate. The value defined as attribute of the LanePosition/SpeedActionDynamics/AbsoluteTargetSpeed tag is then taken as mean value. The VisibilityAction is optional. If VisibilityAction is not defined the agent will be spawned.

Example ```xml <Init> <Actions> <Private entityref="Ego"> <PrivateAction> <TeleportAction> <Position> <LanePosition roadid="1" s="20.0" laneid="-2" offset="0.0"> <Orientation type="relative" h="0.2"> <Stochastics value="s" stddeviation="5.0" lowerbound="10.0" upperbound="30.0"> </LanePosition> </Position> </TeleportAction> </PrivateAction> <PrivateAction> <LongitudinalAction> <SpeedAction> <SpeedActionDynamics rate="0.0" dynamicsshape="linear" dynamicsdimension="rate"> <SpeedActionTarget> <AbsoluteTargetSpeed value="10.0"> </SpeedActionTarget> </SpeedAction> </LongitudinalAction> </PrivateAction> <PrivateAction> <RoutingAction> <AssignRouteAction> <Route> <Waypoint> <Position> <RoadPosition roadid="1" t="-1.0" s="0"> </Position> </Waypoint> <Waypoint> <Position> <RoadPosition roadid="2" t="-1.0" s="0"> </Position> </Waypoint> </Route> </AssignRouteAction> </RoutingAction> </PrivateAction> </Private> <Private entityref="ScenarioAgent"> <PrivateAction> <TeleportAction> <Position> <LanePosition roadid="1" s="50.0" laneid="-3" offset="0.0"> </Position> </TeleportAction> </PrivateAction> <PrivateAction> <LongitudinalAction> <SpeedAction> <SpeedActionDynamics rate="0.0" dynamicsshape="linear" dynamicsdimension="rate"> <SpeedActionTarget> <AbsoluteTargetSpeed value="10.0"> </SpeedActionTarget> </SpeedAction> </LongitudinalAction> </PrivateAction> </Private> </Actions> </Init> ```

Story

Inside the (optional) <Story> tag all conditional interventions into the simulation during runtime are defined. When importing this tag, its content is translated into EventDetectors and Manipulators. An EventDetector checks in every timestep if its condition is fullfilled. In this case it writes an event into the EventNetwork, which then triggers the associated Manipulator. The story consists of multiple acts, which itself can consist of multiple maneuvergroups. The grouping of maneuvergroups into acts currently has no effect in the simulator. A maneuvergroups must consist of exactly one <Actors> tag and one <Maneuver> tag. The maximumExecutionCount attribute states the maximum number of times that each maneuver will by triggered. If the maximumExecutionCount is -1 then the maneuver can triggered an unlimited number of times. Multiple stories can be added.

Example ```xml <Story name="MyStory"> <Act name="Act1"> <ManeuverGroup name="MySequence" maximumexecutioncount="-1"> <Actors> ... </Actors> <Maneuver name="MyManeuver"> ... </Maneuver> </ManeuverGroup> </Act> </Story> ```

Actors

The <Actors> tag defines the agents that are mainly affected by this sequence. These agents can either be defined directly by stating their name via subtags <EntityRef entityref="entityName"> or as the agent that triggered the event via <Actors selecttriggeringentities="true">

Maneuver

The <Maneuver> tag defines the conditions for the EventDetector and the resulting action in the simulator. It contains one or more events each consisting of one action (Note: OpenSCENARIO allows more than one action, but we support only a single action) and one or more start conditions. The EventDetector Manipulator pair is currently being tied together through the event name. Therefore unique event names are required.

Example ```xml <Maneuver name="MyManeuver"> <Event name="MyEvent" priority="overwrite"> <Action name="MyManipulator"> ... </Action> <StartTrigger> <ConditionGroup> <Condition name="Conditional"> ... </Condition> </ConditionGroup> </StartTrigger> </Event> </Maneuver> ```

Conditions

The conditions are internally represented as EventDetector (the ConditionalEventDetector). If all conditions are met the EventDetector writes an event into the EventNetwork. OpenPASS supports five different kinds of condition. Conditions are either ByEntityConditions or ByValueConditions.

ByEntityConditions

All ByEntityConditions require triggering agents. Ego and Scenario agents can be specified as triggering agents in the TriggeringEntities section of the ByEntity-Condition. If no agents are specified in the TriggeringEntities section, all agents will be used as triggering agents. OpenScenario specifies that a rule be applied to the TriggeringEntities element; currently, only "any" is supported (indicating that any of the listed entities may satisfy the condition independent of the others).

RelativeLanePosition

This Condition evaluates specifically if an entity is within a relative lane position with regard to the specified object

Uses an object, lane-delta (dLane), and s-delta (ds) for evaluation

To evaluate this Condition, the s-delta is applied to the s-coordinate and the lane-delta is applied to the lane of the referenceObject (e.g referenceObject.s + ds), then the tolerance is applied to the s-coordinate both forward and backward to form an area within which triggeringEntities would satisfy this condition.

Example ```xml <Condition name="Conditional"> <ByEntity> <TriggeringEntities triggeringentitiesrule="any"> <EntityRef entityref="Agent"> </TriggeringEntities> <EntityCondition> <ReachPositionCondition tolerance="3.0"> <Position> <RelativeLanePosition object="referenceEntity" dlane="-1" ds="-50.0"> </Position> </ReachPositionCondition> </EntityCondition> </ByEntity> </Condition> ```

RoadPosition

This Condition evaluates specifically if a TriggeringEntity is within range of a particular s-coordinate on a specifed road.

Uses the roadId and the s-Coordinate for evaluation.

The EventDetector verifies if a TriggeringEntity is on the specified road and if the agent's s-coordinate is within the tolerance range.

The tolerance is applied both forward and backward.

Example ```xml <Condition name="Conditional"> <ByEntity> <TriggeringEntities triggeringentitiesrule="any"> <EntityRef entityref="Agent"> </TriggeringEntities> <EntityCondition> <ReachPositionCondition tolerance="3.0"> <Position> <RoadPosition roadid="road1" s="50.0" t="0.0"> </Position> </ReachPositionCondition> </EntityCondition> </ByEntity> </Condition> ```

RelativeSpeed

This condition evaluates if the relative velocity of a TriggeringEntity with regard to a specified referenceEntity is less than, equal to, or greater than, a specified value.

When calculating the relative velocity, we use referenceEntity as the "static" point.

Below, if the TriggeringEntity has a velocity of 30.0 and the referenceEntity has a velocity of 10.0, the calculated relative velocity is 30.0 - 10.0 = 20.0; therefore, the condition is satisfied. If the velocities are reversed, the calculated relative velocity is 10.0 - 30.0 = -20.0, leaving the condition unsatisfied.

Example ```xml <Condition name="Conditional"> <ByEntity> <TriggeringEntities triggeringentitiesrule="any"> <EntityRef entityref="Agent"> </TriggeringEntities> <EntityCondition> <RelativeSpeedCondition entityref="referenceEntity" value="10.0" rule="greaterThan"> </EntityCondition> </ByEntity> </Condition> ```

TimeToCollision

The TimeToCollisionCondition evaluates the Time To Collision (TTC) between the specified Triggering Entities and the specified reference Entity. When the comparison of the calculated TTC to the specified TTC value using the provided rule is true, this Condition is satisfied.

The TTC is determined by projecting the movement of the agents in timesteps of 0.1s and taking the first timestep, at which the bounding boxes intersect.

Example ```xml <Condition name="Conditional"> <ByEntity> <TriggeringEntities triggeringentitiesrule="any"> <EntityRef entityref="Agent"> </TriggeringEntities> <EntityCondition> <TimeToCollisionCondition value="2.0" rule="lessThan"> <TimeToCollisionConditionTarget> <EntityRef entityref="referenceAgent"> </TimeToCollisionConditionTarget> </TimeToCollisionCondition> </EntityCondition> </ByEntity> </Condition> ```

TimeHeadway

The TimeHeadwayCondition evaluates the TimeHeadway (THW) between the specified Triggering Entities and the specified reference Entity. When the comparison of the calculated THW to the specified THW value using the provided rule is true, this Condition is satisfied.

The TTC is calculated by dividing the s distance of the agents by the velocity of the triggering agent. If the freespace attribute is set to true the net distance of the bounding boxes is considered, otherwise the distance of the reference points. The alongRoute attribute has to be true (i.e. distance is calculated by following the road = s coordinate distance)

Example ```xml <Condition name="Conditional"> <ByEntity> <TriggeringEntities triggeringentitiesrule="any"> <EntityRef entityref="Agent"> </TriggeringEntities> <EntityCondition> <TimeHeadwayCondition value="2.0" rule="lessThan" entityref="referenceAgent" freespace="true" alongroute="true"> </EntityCondition> </ByEntity> </Condition> ```

ByValueConditions

All ByValueConditions trigger based on a specified value and are unrelated to any specific agent.

SimulationTime Triggers at a specified time value, configured by the detector parameters in the Scenario File. Time is specified in seconds. The rule is required and only "greaterThan" is accepted as valid.

Example ```xml <Condition name="Conditional"> <ByValueCondition> <SimulationTimeCondition value="5.0" rule="greaterThan"> </ByValueCondition> </Condition> ```

Actions

The actions define what happens if all conditions of the maneuver are fullfilled. These act on the actors defined for this maneuver. Depending on the type of the action a different Manipulator is created, that becomes active if it the EventNetwork contains an event of the associated EventDetector.

LaneChange

The LaneChangeManipulator writes an event to the EventNetwork that is read by the OpenScenarioActions module and converted into a trajectory that performs a lange change. The target lane be given either absolute or relative to a specific entity. The trajectory can either have a fixed length (in s) or a fixed time. Currently, "sinusoidal" is the only type supported.

Example with absolute target and fixed length ```xml <Action name="LaneChange"> <PrivateAction> <LateralAction> <LaneChangeAction> <LaneChangeActionDynamics value="100.0" dynamicsshape="sinusoidal" dynamicsdimension="distance"> <LaneChangeTarget> <AbsoluteTargetLane value="-1"> </Target> </LaneChangeAction> </LateralAction> </PrivateAction> </Action> ```

Example with relative target and fixed time ```xml <Action name="LaneChange"> <PrivateAction> <LateralAction> <LaneChangeAction> <LaneChangeActionDynamics value="2.0" dynamicsshape="sinusoidal" dynamicsdimension="time"> <LaneChangeTarget> <RelativeTargetLane entityref="Ego" value="0"> </LaneChangeTarget> </LaneChangeAction> </LateralAction> </PrivateAction> </Action> ``` Custom Lane Change

The Custom Lane Change triggers a custom lane change for an agent. The execution of the lane change is performed by an arbitrary agent component.

Note: The regular lane change action is performed according to the defined shape (see above). The custom lane change is only forwarded to agent components, as defined in the signal architecture of the systemConfigBlueprint.xml. The way of execution is left to the agent component in the later case.

The command consists of two parts:

  1. "SetCustomLaneChange": The first command instantiates the CustomLaneChange and is set by default. This command does not need to be changed.
  2. "DeltaLaneId": The second command indicates the number of lanes over which the lane change should take place.

Example ```xml <Action name="CustomLaneChange"> <UserDefinedAction> <CustomCommandAction>SetCustomLaneChange -1</CustomCommandAction> </UserDefinedAction> </Action> ```

Follow Trajectory

The TrajectoryManipulator also an event to the EventNetwork which tells the Driver that he should a given trajectory. The trajectory can be defined either directly in the story or in a separate TrajectoryCatalog. For the points (vertices) of the trajectory we support only World position (and ignore z, pitch and roll).

Example ```xml <Action name="FollowTrajectory"> <PrivateAction> <RoutingAction> <FollowTrajectoryAction> <Trajectory name="TrajectoryA" closed="false" domain="time"> <Vertex reference="0.0"> <Position> <World x="1.0" y="2.0" z="0.0" h="0.0" p="0.0" r="0.0"> </Position> <Shape> <Polyline> </Shape> </Vertex> <Vertex reference="1.0"> <Position> <World x="2.0" y="3.0" z="0.0" h="0.1" p="0.0" r="0.0"> </Position> <Shape> <Polyline> </Shape> </Vertex> </Trajectory> </FollowTrajectoryAction> </RoutingAction> </PrivateAction> </Action> ```

Example using TrajectoryCatalog ```xml <Action name="FollowTrajectory"> <Private> <Routing> <FollowTrajectory> <CatalogReference catalogname="TrajectoryCatalog.xosc" entryname="TrajectoryA"> <Longitudinal> <None> </Longitudinal> <Lateral purpose="position"> </FollowTrajectory> </Routing> </Private> </Action> ```

Remove Agent

The RemoveAgentsManipulator simply removes the specifed agent from the simulation run.

Example ```xml <Action name="RemoveAgent"> <GlobalAction> <EntityAction entityref=""> <DeleteEntityAction> </EntityAction> </GlobalAction> </Action> ```

Component State Change

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.

Example ```xml <Action name="ComponentStateChange"> <UserDefinedAction> <CustomCommandAction>SetComponentState Dynamics_TrajectoryFollower Acting</CustomCommandAction> </UserDefinedAction> </Action> ```

Gaze Follower

The GazeFollower influences the gaze behaviour of an agent. The command consists of three parts:

  1. "SetGazeFollower": The first command instantiates the GazeFollower and is set by default. This command does not need to be changed.
  2. "Activity State": The second command describes the activity state in which the GazeFollower should be put. The activity state is supposed to be "Active" or "Inactive".
  3. "GazeFollowerFileName": The last command needs to be replaced by the file that contains the gaze information. Here, the file name relative to the config directory with its corresponding file type [.txt, .csv, etc.] need to be provided.

Example ```xml <Action name="GazeFollower"> <UserDefinedAction> <CustomCommandAction>SetGazeFollower Active GazeFollowerFileName.csv</CustomCommandAction> </UserDefinedAction> </Action> ```

SpeedAction

The SpeedAction adjusts the velocity of an agent based on parameters of the SpeedAction. Both variants RelativeTargetSpeed and AbsoluteTargetSpeed are supported. The SpeedActionDynamics attribute "dynamicsShape" currently only supports "linear" & "step". The SpeedActionDynamics attribute "dynamicsDimension" currently only supports "rate". The RelativeTargetSpeed attribute "continuous" is ignored.

Note: Values defined in the SpeedAction might not reflect actual values used by the simulator due to physical boundaries of the simulator.

Example AbsoulteTargetSpeed ```xml <Action name="Adjust speed"> <PrivateAction> <LongitudinalAction> <SpeedAction> <SpeedActionDynamics dynamicsshape="" value="" dynamicsdimension=""> <AbsoluteTargetSpeed value="10.0"> </SpeedAction> </LongitudinalAction> </PrivateAction> </Action> ```

Example RelativeTargetSpeed ```xml <Action name="Adjust speed"> <PrivateAction> <LongitudinalAction> <SpeedAction> <SpeedActionDynamics dynamicsshape="" value="" dynamicsdimension=""> <SpeedActionTarget> <RelativeTargetSpeed entityref="refAgent" value="10.0" speedtargetvaluetype="delta" continuous="false"> </SpeedActionTarget> </SpeedAction> </LongitudinalAction> </PrivateAction> </Action> ```

EndConditions

Here the end conditions for the simulation are defined. One SimulationTime condition is required, which is the time in seconds, and the rule has to be "greaterThan". Any other or additional conditions are not supported.

Example:

```xml <StopTrigger> <ConditionGroup> <Condition name="EndTime" rule="greaterThan" edge="rising"> <ByValueCondition> <SimulationTimeCondition value="30.0" rule="greaterThan"> </ByValueCondition> </Condition> </ConditionGroup> </StopTrigger> ```

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Developer Information

  • Modules
  • Class List
Developer Information
  • Modules
  • Namespace List
  • Class List
  • File List
  • Examples
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: Modules

Modules
Here is a list of all modules:
[detail level 12]
▼ Collision post crash model |
Retrieve collision partners |
Post crash fading out |
▼ Two-track vehicle model |
Initialization |
Entry |
Process |
Output |
Event |
▼ openPASS components basic |
Action_BrakeLight_Basic | Sets the brake light
Algorithm_CruiseControlByDistance | Models the lateral controller of the driver
Dynamics_Longitudinal_Basic | Calculate the next velocity and position of the agent in the next timestep based on the acceleration in longitudinal direction
Sensor_Distance | Basic module to sense the current state of an agent
Action_LongitudinalDriver | Sets the longitudinal values
Action_SecondaryDriverTasks | Controls secondary driver tasks
Agent_Updater | This module gets the final values for the dynamic parameters of the agent and updates the agent accordingly
Algorithm_AEB | This module represents a simple autonomous emergency braking system (AEB)
Algorithm_Lateral | Models the lateral controller of the driver
Algorithm_Longitudinal | Models the longitudinal controller of the driver
ComponentController | This module
Dynamics_Collision | This modules calculates all dynaimcs of the agent in case of a collision
Dynamics_CollisionPostCrash | Collision component that calculates post-crash dynamics
Dynamics_RegularDriving | Models the longitudinal and lateral dynamics of the vehicle coresponding to the pedal and steering inputs
Dynamics_RegularTwoTrack | Dynamic component to model the dynamic of a two track vehicle
Dynamics_TrajectoryFollower | Makes an agent strictly follow a predefined path
LimiterAccelerationVehicleComponents | Limits the acceleration output from all vehicle components
Parameters_Vehicle | Defines and distributes parameters (constants and stochasitc variables) for all components of an agent
Sensor_Driver | Collect and distribute Data from the WorldInterface and AgentInterface concerning the own vehicle, traffic rule information, lane geometry and surrounding objects
SensorObjectDetector | This file models the SensorObjectDetectors
SensorFusion | This file models the SensorFusion
SignalPrioritizer | Collects signals of same kind and relays the one with highest priority
OpenPassMaster |
EventNetwork |
EventDetector | This file contains the basic EventDetector functionality
Manipulator | This file contains the basic Manipulator functionality
▼ openPASS CoreModules basic |
Observation_State | Logs the current X position of every agent at each time step
Observation_Ttc | Logs the time to collision (ttc) of all agents
SpawnPoint_Start | Spawn agents at the beginning of road
World_Basic | Implementation of a world interface
SpawnPoint | This SpawnPointPreRunCommon populates the current World with Common Agents
Stochastics | Implementation of StochasticsInterface
World | Implementation of a world interface
OpenPassSlave |
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: Collision post crash model

Modules
Collision post crash model
Collaboration diagram for Collision post crash model:

Modules

Retrieve collision partners
Post crash fading out

Detailed Description

The dynamics after a collision is modelled.

Definition of original collision angles at time of first contact

The transformed collision angles HCPA and OCPA are scaled such that width and length of the vehicle are 1. For more information see http://indexsmart.mirasmart.com/26esv/PDFfiles/26ESV-000177.pdf

Calculation of post crash dynamics takes place after penetration time
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Retrieve collision partners

Retrieve collision partners
Collision post crash model
Collaboration diagram for Retrieve collision partners:
  • For the given host agent, retrieve the list of collision partners from the simulation core.
  • Iterate over collision partners.
  • Trigger calculation of post crash dynamics.
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Post crash fading out

Post crash fading out
Collision post crash model
Collaboration diagram for Post crash fading out:

In case the collision has occurred before:

  • Calculate a dynamics signal for fading out.
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Two-track vehicle model

Modules
Two-track vehicle model
Collaboration diagram for Two-track vehicle model:

Modules

Initialization
Entry
Process
Output

Detailed Description

The dynamics of the vehicle is modelled in 2 dimensions. In the sub items the principle function is described in order of execution.

Abbreviations:

  • COG = center-of-gravity
  • CS = coordinate system
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Initialization

Initialization
Two-track vehicle model
Collaboration diagram for Initialization:

Define vehicle's body and engine characteristics:

  • total mass
  • power
  • maximum brake torque

Define vehicle's geometry:

  • set the height of the COG
  • set the longitudinal position of the COG
  • set the wheelbase
  • set the track width

Define vehicle's tire properties:

  • set initial velocity
  • set peak tire force
  • set force at full slide
  • set the slip corresponding to peak tire force
  • set the radius of the tire
  • set the road/tire friction coefficient
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Entry

Entry
Two-track vehicle model
Collaboration diagram for Entry:

Read and update previous vehicle's state:

  • global position (cartesian coordinates)
  • direction of vehicle's longitudinal axes (angle in polar coordinates)
  • vehicle's longitudinal and lateral velocity in vehicle's CS
  • vehicle's rotational velociy
  • vehicle's longitudinal and lateral acceleration in vehicle's CS
  • vehicle's rotational acceleration
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Process

Process
Two-track vehicle model
Collaboration diagram for Process:

Apply acceleration/deceleration intentions:

  • calculate tire torques due to engine
  • calculate tire torques due to braking by
    • driver (pedal state)
    • assistant systems (selective single wheel braking)

Apply tire forces at the tire/road interface:

  • calculate longitudinal tire slips and forces
  • calculate lateral tire slips and forces
  • calculate friction forces

Combine local tire forces to a global force at the vehicle's body:

  • total longitudinal force
  • total lateral force
  • air drag
  • total rotational momentum
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Output

Output
Two-track vehicle model
Collaboration diagram for Output:

Perform a translational Euler step:

  • calculate next vehicle's position from prevoius velocity values
  • calculate new velocity from previous acceleration values
  • calculate new acceleration from global forces

Perform a rotational Euler step:

  • calculate vehicle's orientation from previous rotational velocity
  • calculate vehicle's rotational velocity from previous rotational acceleration
  • calculate vehicle's rotational acceleration from the total rotational momentum

Write actual vehicle's state:

  • global position (cartesian coordinates)
  • direction of vehicle's longitudinal axes (angle in polar coordinates)
  • vehicle's longitudinal and lateral velocity in vehicle's CS
  • vehicle's rotational velociy
  • vehicle's longitudinal and lateral acceleration in vehicle's CS
  • vehicle's rotational acceleration
  • inertia forces on vehicle's COG
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Event

Files | Classes
Event

Files

file basicEvent.h
This file contains all basic functionality of events.

Classes

class | BasicEvent< EventCategory >
class | ComponentStateChangeEvent
class | LaneChangeEvent
class | SpeedActionEvent
class | TrajectoryEvent

Detailed Description

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: BasicEvent< EventCategory > Class Template Reference

  • Class Index
  • Class Hierarchy
  • Class Members
  • openpass
  • events
  • BasicEvent
List of all members
BasicEvent< EventCategory > Class Template Reference
Event

Detailed Description

template<EventDefinitions::EventCategory EventCategory>
class openpass::events::BasicEvent< EventCategory >

Signal This class contains all functionality of the BasicEvent.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: ComponentStateChangeEvent Class Reference

  • openpass
  • events
  • ComponentStateChangeEvent
List of all members
ComponentStateChangeEvent Class Reference
Event

Detailed Description

This class hold information about a Component State Change Event

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: LaneChangeEvent Class Reference

  • openpass
  • events
  • LaneChangeEvent
List of all members
LaneChangeEvent Class Reference
Event

Detailed Description

This class implements all functionality of the LaneChangeEvent.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: SpeedActionEvent Class Reference

  • openpass
  • events
  • SpeedActionEvent
List of all members
SpeedActionEvent Class Reference
Event

Detailed Description

This class implements all functionality of the SpeedActionEvent.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: TrajectoryEvent Class Reference

  • openpass
  • events
  • TrajectoryEvent
List of all members
TrajectoryEvent Class Reference
Event

Detailed Description

This class implements all functionality of the Trajectory Event.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: openPASS components basic

Modules
openPASS components basic
Collaboration diagram for openPASS components basic:

Modules

Action_BrakeLight_Basic
sets the brake light
Algorithm_CruiseControlByDistance
models the lateral controller of the driver
Dynamics_Longitudinal_Basic
Calculate the next velocity and position of the agent in the next timestep based on the acceleration in longitudinal direction.
Sensor_Distance
basic module to sense the current state of an agent

Detailed Description

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Action_BrakeLight_Basic

Classes
Action_BrakeLight_Basic
openPASS components basic

sets the brake light More...

Collaboration diagram for Action_BrakeLight_Basic:

Classes

class Action_BrakeLight_Basic_Implementation
sets the brake light More...

Detailed Description

sets the brake light

This component sets the brake light to on if the acceleration of the vehicle is negative and lower the coasting deceleration.

Inputs

Input variables:

name | meaning
in_aVehicle | The acceleration of the agent in m/s^2.
in_aCoasting | The deceleration caused by the air.

Input channel IDs:

Input ID | signal class | contained variables
0 | double | in_aVehicle
1 | double | in_aCoasting

Init Inputs

none

Outputs

none

External parameters

none

Internal paramters

none

Parameters to be specified in agentConfiguration.xml

none

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Action_BrakeLight_Basic_Implementation Class Reference

Public Member Functions | List of all members
Action_BrakeLight_Basic_Implementation Class Reference
openPASS components basic » Action_BrakeLight_Basic

sets the brake light More...

Public Member Functions

virtual void | UpdateInput (int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)
Update Inputs. More...
virtual void | UpdateOutput (int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
Update outputs. More...
virtual void | Trigger (int time)
Process data within component. More...

Detailed Description

sets the brake light

This class sets the brake light to on if the acceleration of the vehicle is negative and lower the coasting deceleration.

Member Function Documentation

void UpdateInput | ( | int | localLinkId,
 |  | const std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update Inputs.

Function is called by framework when another component delivers a signal over a channel to this component (scheduler calls update taks of other component).

Refer to module description for input channels and input ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentInput"
[in] | data | Referenced signal (copied by sending component)
[in] | time | Current scheduling time
18 {
19 Q_UNUSED(time);
20
21 std::stringstream log;
22 log << COMPONENTNAME << " (component " << GetComponentId() << ", agent " << GetAgent()->GetAgentId() << ", input data for local link " << localLinkId << ": ";
23 LOG(CbkLogLevel::Debug, log.str());
24
25 if (localLinkId == 0)
26 {
27 const std::shared_ptr<DoubleSignal const> signal = std::dynamic_pointer_cast<DoubleSignal const>(data);
28 if(!signal)
29 {
30 const std::string msg = COMPONENTNAME + " invalid signaltype";
31 LOG(CbkLogLevel::Debug, msg);
32 throw std::runtime_error(msg);
33 }
34
35 in_aVehicle = signal->value;
36 }
37 else if (localLinkId == 1)
38 {
39 const std::shared_ptr<DoubleSignal const> signal = std::dynamic_pointer_cast<DoubleSignal const>(data);
40 if(!signal)
41 {
42 const std::string msg = COMPONENTNAME + " invalid signaltype";
43 LOG(CbkLogLevel::Debug, msg);
44 throw std::runtime_error(msg);
45 }
46
47 in_aCoasting = signal->value;
48 }
49 else if (localLinkId == 2)
50 {
51 const std::shared_ptr<BrakingSignal const> signal = std::dynamic_pointer_cast<BrakingSignal const>(data);
52 if(!signal)
53 {
54 const std::string msg = COMPONENTNAME + " invalid signaltype";
55 LOG(CbkLogLevel::Debug, msg);
56 throw std::runtime_error(msg);
57 }
58
59 in_aVehicle = signal->acceleration;
60 }
61 else
62 {
63 const std::string msg = COMPONENTNAME + " invalid link";
64 LOG(CbkLogLevel::Debug, msg);
65 throw std::runtime_error(msg);
66 }
67 }
DoubleSignal
Primitive signal class for double values.
Definition: primitiveSignals.h:26
void UpdateOutput | ( | int | localLinkId,
 |  | std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update outputs.

Function is called by framework when this component has to deliver a signal over a channel to another component (scheduler calls update task of this component).

Refer to module description for output channels and output ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentOutput"
[out] | data | Referenced signal (copied by this component)
[in] | time | Current scheduling time
70 {
71 Q_UNUSED(localLinkId);
72 Q_UNUSED(data);
73 Q_UNUSED(time);
74
75 std::runtime_error("invalid link");
76 }
void Trigger ( int time )
virtual

Process data within component.

Function is called by framework when the scheduler calls the trigger task of this component.

Refer to module description for information about the module's task.

Parameters
[in] time Current scheduling time
79 {
80 Q_UNUSED(time);
81
82 GetAgent()->SetBrakeLight( in_aVehicle < -in_aCoasting );
83 }
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Algorithm_CruiseControlByDistance

Classes
Algorithm_CruiseControlByDistance
openPASS components basic

models the lateral controller of the driver More...

Collaboration diagram for Algorithm_CruiseControlByDistance:

Classes

class Algorithm_CruiseControlByDistance_Implementation
models the lateral controller of the driver More...

Detailed Description

models the lateral controller of the driver

This component models the lateral controller of the driver. It calculates a desired acceleration based on the desired velocity and a safety distance which is numerically half of the velocity (km/h) in m.

Inputs

Input variables:

name | meaning
in_distance2NextAgent | Distance to next agent in front.
in_velocity | Current velocity of agent.

Input channel IDs:

Input ID | signal class | contained variables
0 | DoubleSignal | in_distance2NextAgent
1 | DoubleSignal | in_velocity

Init Inputs

none

Outputs

Output variables:

name | meaning
out_desiredAcceleration | The desired acceleration based on the desired velocity and distance to next agent in front.
out_aCoasting | The deceleration caused by the air.

Output channel IDs:

Output Id | signal class | contained variables
0 | DoubleSignal | out_desiredAcceleration
1 | DoubleSignal | out_aCoasting

External parameters

name | value | meaning
Par_desiredVelocity | 20 | Desired velocity in m/s.
Par_reactionTime | 0.3 | The reaction time of the driver.

Internal paramters

name | value | meaning
_standardCycleTimeSecond | 0.1 | standard cycle time for spawning, update, trigger tasks (in s)
_cw | 0.5 | air drag coefficient
_airDensity | 1.2 | air density at 20°C
_carHeight | 1.5 | height
_carWidth | 1.8 | width
_carWeight | 1300 | weight
_airDragCoefficent | 0 | Coefficent of car and enviromental constants to calculate the acceleration depending on current the velocity of the car.
_accelerationMax | 3 | maximal plausilbe acceleration [m/s^2]
_decelerationMax | 15 | maximal plausible deceleration [m/s^2]

Parameters to be specified in agentConfiguration.xml

type | id | meaning | corresponding external paramter
double | 0 | a | Par_desiredVelocity
double | 1 | a | Par_reactionTime
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Algorithm_CruiseControlByDistance_Implementation Class Reference

Public Member Functions | List of all members
Algorithm_CruiseControlByDistance_Implementation Class Reference
openPASS components basic » Algorithm_CruiseControlByDistance

models the lateral controller of the driver More...

Public Member Functions

void | UpdateInput (int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)
Update Inputs. More...
void | UpdateOutput (int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
Update outputs. More...
void | Trigger (int time)
Process data within component. More...

Detailed Description

models the lateral controller of the driver

This component models the lateral controller of the driver. It calculates a acceleration based on the desired velocity and a safety distance which is numerically half of the velocity (km/h) in m.

Member Function Documentation

void UpdateInput | ( | int | localLinkId,
 |  | const std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |

Update Inputs.

Function is called by framework when another component delivers a signal over a channel to this component (scheduler calls update taks of other component).

Refer to module description for input channels and input ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentInput"
[in] | data | Referenced signal (copied by sending component)
[in] | time | Current scheduling time
17 {
18 Q_UNUSED(time);
19
20 if (localLinkId==0)
21 {
22 const std::shared_ptr<DoubleSignal const> signal = std::dynamic_pointer_cast<DoubleSignal const>(data);
23 if(!signal)
24 {
25 const std::string msg = COMPONENTNAME + " invalid signaltype";
26 LOG(CbkLogLevel::Debug, msg);
27 throw std::runtime_error(msg);
28 }
29 in_distance2NextAgent = signal->value;
30 }
31 else if (localLinkId==1)
32 {
33 const std::shared_ptr<DoubleSignal const> signal = std::dynamic_pointer_cast<DoubleSignal const>(data);
34 if(!signal)
35 {
36 const std::string msg = COMPONENTNAME + " invalid signaltype";
37 LOG(CbkLogLevel::Debug, msg);
38 throw std::runtime_error(msg);
39 }
40 in_velocity = signal->value;
41 }
42 else
43 {
44 const std::string msgDefault = COMPONENTNAME + " invalid link";
45 LOG(CbkLogLevel::Debug, msgDefault);
46 throw std::runtime_error(msgDefault);
47 }
48
49 }
DoubleSignal
Primitive signal class for double values.
Definition: primitiveSignals.h:26
void UpdateOutput | ( | int | localLinkId,
 |  | std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |

Update outputs.

Function is called by framework when this component has to deliver a signal over a channel to another component (scheduler calls update task of this component).

Refer to module description for output channels and output ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentOutput"
[out] | data | Referenced signal (copied by this component)
[in] | time | Current scheduling time
52 {
53 Q_UNUSED(time);
54
55 if(localLinkId == 0)
56 {
57 try {
58 data = std::make_shared<DoubleSignal const>(out_desiredAcceleration);
59 }
60 catch(const std::bad_alloc&)
61 {
62 const std::string msg = COMPONENTNAME + " could not instantiate signal";
63 LOG(CbkLogLevel::Debug, msg);
64 throw std::runtime_error(msg);
65 }
66 }else if(localLinkId == 1)
67 {
68 try {
69 data = std::make_shared<DoubleSignal const>(out_aCoasting);
70 }catch(const std::bad_alloc&)
71 {
72 const std::string msg = COMPONENTNAME + " could not instantiate signal";
73 LOG(CbkLogLevel::Debug, msg);
74 throw std::runtime_error(msg);
75 }
76 }
77 else
78 {
79 const std::string msg = COMPONENTNAME + " invalid link";
80 LOG(CbkLogLevel::Debug, msg);
81 throw std::runtime_error(msg);
82 }
83 }
void Trigger ( int time )

Process data within component.

Function is called by framework when the scheduler calls the trigger task of this component.

Refer to module description for information about the module's task.

Parameters
[in] time Current scheduling time
86 {
87
88
89 out_desiredAcceleration = 0;
90 if(time > 0)
91 {
92 out_aCoasting = -_airDragCoefficent * pow(in_velocity,2); // negative acceleration caused by the air
93
94 double gapMin = in_velocity * 3.6 / 2; // The desired gap shall be half the velocity in km/h
95
96 if((in_distance2NextAgent > gapMin))
97 { //nobody is in front or Sensor is mistaken OR distance to next agent is bigger than the desired gap
98 if(in_velocity > Par_desiredVelocity)
99 {// Check the desired velocity
100 out_desiredAcceleration = out_aCoasting; // Don't brake, just roll out.
101 }
102 else
103 {
104 out_desiredAcceleration = (Par_desiredVelocity - in_velocity) / _standardCycleTimeSecond ; // Accelerate maximally
105 }
106 }
107 else
108 {
109 double ttc = _standardCycleTimeSecond;
110 out_desiredAcceleration = 2*(in_distance2NextAgent - gapMin) / ((ttc + Par_reactionTime) * _standardCycleTimeSecond); //Decelerate maximally
111 }
112 }
113
114 out_desiredAcceleration = PlausibleTestAcceleration(out_desiredAcceleration);
115
116 previousDistance = in_distance2NextAgent;
117 }
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Dynamics_Longitudinal_Basic

Classes
Dynamics_Longitudinal_Basic
openPASS components basic

Calculate the next velocity and position of the agent in the next timestep based on the acceleration in longitudinal direction. More...

Collaboration diagram for Dynamics_Longitudinal_Basic:

Classes

class Dynamics_Longitudinal_Basic_Implementation
Calculate the next velocity and position of the agent in the next timestep based on the acceleration in longitudinal direction. More...

Detailed Description

Calculate the next velocity and position of the agent in the next timestep based on the acceleration in longitudinal direction.

This component gets a desired acceleration and calculates the position and velocity of the next timestep of the agent.

Inputs

Input variables:

name | meaning
in_aVehicle | The acceleration of the agent in m/s^2.

Input channel IDs:

Input ID | signal class | contained variables
0 | DoubleSignal | in_aVehicle

Init Inputs

none

Outputs

none

External parameters

none

Parameters to be specified in agentConfiguration.xml

none

Internal paramters

name | value | meaning
_VLowerLimit | 0 | The minimal velocity of the agent in m/s.
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Dynamics_Longitudinal_Basic_Implementation Class Reference

Public Member Functions | List of all members
Dynamics_Longitudinal_Basic_Implementation Class Reference
openPASS components basic » Dynamics_Longitudinal_Basic

Calculate the next velocity and position of the agent in the next timestep based on the acceleration in longitudinal direction. More...

Public Member Functions

virtual void | UpdateInput (int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)
Update Inputs. More...
virtual void | UpdateOutput (int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
Update outputs. More...
virtual void | Trigger (int time)
Process data within component. More...

Detailed Description

Calculate the next velocity and position of the agent in the next timestep based on the acceleration in longitudinal direction.

This component gets a desired acceleration and calculates the position and velocity of the next timestep of the agent.

Member Function Documentation

void UpdateInput | ( | int | localLinkId,
 |  | const std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update Inputs.

Function is called by framework when another component delivers a signal over a channel to this component (scheduler calls update taks of other component).

Refer to module description for input channels and input ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentInput"
[in] | data | Referenced signal (copied by sending component)
[in] | time | Current scheduling time
18 {
19 Q_UNUSED(time);
20
21 if (localLinkId == 0)
22 {
23 // from Algorithm_MergeDriverIBrake
24 const std::shared_ptr<DoubleSignal const> signal = std::dynamic_pointer_cast<DoubleSignal const>(data);
25 if (!signal)
26 {
27 const std::string msg = COMPONENTNAME + " invalid signaltype";
28 LOG(CbkLogLevel::Debug, msg);
29 throw std::runtime_error(msg);
30 }
31
32 in_aVehicle = signal->value;
33 }
34 else
35 {
36 const std::string msg = COMPONENTNAME + " invalid link";
37 LOG(CbkLogLevel::Debug, msg);
38 throw std::runtime_error(msg);
39 }
40 }
DoubleSignal
Primitive signal class for double values.
Definition: primitiveSignals.h:26
void UpdateOutput | ( | int | localLinkId,
 |  | std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update outputs.

Function is called by framework when this component has to deliver a signal over a channel to another component (scheduler calls update task of this component).

Refer to module description for output channels and output ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentOutput"
[out] | data | Referenced signal (copied by this component)
[in] | time | Current scheduling time
43 {
44 Q_UNUSED(localLinkId);
45 Q_UNUSED(data);
46 Q_UNUSED(time);
47
48 std::runtime_error("invalid link");
49
50 }
void Trigger ( int time )
virtual

Process data within component.

Function is called by framework when the scheduler calls the trigger task of this component.

Refer to module description for information about the module's task.

Parameters
[in] time Current scheduling time
53 {
54 Q_UNUSED(time);
55
56 double v = GetAgent()->GetVelocityX() + in_aVehicle*GetCycleTime()/1000.;
57
58 if (v >= _VLowerLimit)
59 {
60 GetAgent()->SetVelocityX(v);
61 GetAgent()->SetAccelerationX(in_aVehicle);
62 GetAgent()->SetPositionX(GetAgent()->GetPositionX() + v * GetCycleTime() / 1000.0);
63 }
64 else
65 {
66 GetAgent()->SetVelocityX(_VLowerLimit);
67 GetAgent()->SetAccelerationX(0);
68 GetAgent()->SetPositionX(GetAgent()->GetPositionX() + _VLowerLimit * GetCycleTime() / 1000.0);
69 }
70 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Sensor_Distance

Classes
Sensor_Distance
openPASS components basic

basic module to sense the current state of an agent More...

Collaboration diagram for Sensor_Distance:

Classes

class Sensor_Distance_Implementation
This module is a basic module to sense the current state of an agent. More...

Detailed Description

basic module to sense the current state of an agent

This module provides information about the distance of the agent to the agent in front and the current velocity of the agent.

Inputs

none

Init Inputs

none

Outputs

Output variables:

name | meaning
distance2NextAgent | The distance between this agent and agent in front
out_agentVelocity | The velocity of the agent

Output channel IDs:

Output Id | signal class | contained variables
0 | DoubleSignal | distance2NextAgent
1 | DoubleSignal | out_agentVelocity

External parameters

none

Parameters to be specified in agentConfiguration.xml

none

Internal paramters

none

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Sensor_Distance_Implementation Class Reference

Public Member Functions | List of all members
Sensor_Distance_Implementation Class Reference
openPASS components basic » Sensor_Distance

This module is a basic module to sense the current state of an agent. More...

Public Member Functions

virtual void | UpdateInput (int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)
Update Inputs. More...
virtual void | UpdateOutput (int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
Update outputs. More...
virtual void | Trigger (int time)
Process data within component. More...

Detailed Description

This module is a basic module to sense the current state of an agent.

This module provides information about the distance of the agent to the agent in front and the current velocity of the agent.

Member Function Documentation

void UpdateInput | ( | int | localLinkId,
 |  | const std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update Inputs.

Function is called by framework when another component delivers a signal over a channel to this component (scheduler calls update taks of other component).

Refer to module description for input channels and input ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentInput"
[in] | data | Referenced signal (copied by sending component)
[in] | time | Current scheduling time
45 {
46 Q_UNUSED(localLinkId);
47 Q_UNUSED(data);
48 Q_UNUSED(time);
49
50 std::runtime_error("invalid link");
51
52 }
void UpdateOutput | ( | int | localLinkId,
 |  | std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update outputs.

Function is called by framework when this component has to deliver a signal over a channel to another component (scheduler calls update task of this component).

Refer to module description for output channels and output ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentOutput"
[out] | data | Referenced signal (copied by this component)
[in] | time | Current scheduling time
55 {
56 Q_UNUSED(time);
57
58 std::stringstream log;
59 log << COMPONENTNAME << " (component " << GetComponentName() << ", agent " << GetAgent()->GetAgentId() << ", agentTypeId " << GetAgent()->GetAgentTypeId() << " output data for local link " << localLinkId << ": ";
60 LOG(CbkLogLevel::Debug, log.str());
61
62 double value;
63
64 if (localLinkId==0)
65 {
66 value = out_distanceToNextAgent;
67 try
68 {
69 data = std::make_shared<DoubleSignal const>(value);
70 }
71 catch(const std::bad_alloc&)
72 {
73 const std::string msgEx = COMPONENTNAME + " could not instantiate signal";
74 LOG(CbkLogLevel::Debug, msgEx);
75 throw std::runtime_error(msgEx);
76 }
77 }
78 else if (localLinkId==1)
79 {
80 value = out_agentVelocity;
81 try
82 {
83 data = std::make_shared<DoubleSignal const>(value);
84 }
85 catch(const std::bad_alloc&)
86 {
87 const std::string msgEx = COMPONENTNAME + " could not instantiate signal";
88 LOG(CbkLogLevel::Debug, msgEx);
89 throw std::runtime_error(msgEx);
90 }
91 }
92 else
93 {
94 const std::string msgDefault = COMPONENTNAME + " invalid link";
95 LOG(CbkLogLevel::Debug, msgDefault);
96 throw std::runtime_error(msgDefault);
97 }
98
99 }
void Trigger ( int time )
virtual

Process data within component.

Function is called by framework when the scheduler calls the trigger task of this component.

Refer to module description for information about the module's task.

Parameters
[in] time Current scheduling time
102 {
103 Q_UNUSED(time);
104
105 out_distanceToNextAgent = GetAgent()->GetDistanceToFrontAgent(0);
106 out_agentVelocity = GetAgent()->GetVelocityX();
107 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Action_LongitudinalDriver

Classes
Action_LongitudinalDriver

Sets the longitudinal values. More...

Classes

class ActionLongitudinalDriverImplementation

Detailed Description

Sets the longitudinal values.

This component sets pedal positions and gear

Inputs

Input variables:

name | meaning
in_accPedalPos | Acceleration pedal position
in_brakePedalPos | Brake pedal position
in_gear | Gear

Input channel IDs:

Input ID | signal class | contained variables
0 | LongitudinalSignal | in_accPedalPos, in_brakePedalPos, in_gear
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: ActionLongitudinalDriverImplementation Class Reference

Public Member Functions | List of all members
ActionLongitudinalDriverImplementation Class Reference
Action_LongitudinalDriver

Public Member Functions

virtual void | UpdateInput (int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)
Update Inputs. More...
virtual void | UpdateOutput (int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
Update outputs. More...
virtual void | Trigger (int time)
Process data within component. More...

Member Function Documentation

void UpdateInput | ( | int | localLinkId,
 |  | const std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update Inputs.

Function is called by framework when another component delivers a signal over a channel to this component (scheduler calls update taks of other component).

Refer to module description for input channels and input ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentInput"
[in] | data | Referenced signal (copied by sending component)
[in] | time | Current scheduling time
23 {
24 Q_UNUSED(time);
25
26 std::stringstream log;
27 log << COMPONENTNAME << " (component " << GetComponentName() << ", agent " << GetAgent()->GetId() << ", input data for local link " << localLinkId << ": ";
28 LOG(CbkLogLevel::Debug, log.str());
29
30 if(localLinkId == 0)
31 {
32 const std::shared_ptr<LongitudinalSignal const> signal = std::dynamic_pointer_cast<LongitudinalSignal const>(data);
33 if (!signal)
34 {
35 const std::string msg = COMPONENTNAME + " invalid signaltype";
36 LOG(CbkLogLevel::Debug, msg);
37 throw std::runtime_error(msg);
38 }
39
40 in_accPedalPos = signal->accPedalPos; // percent value [0-1]
41 in_brakePedalPos = signal->brakePedalPos;
42 in_gear = signal->gear;
43 }
44 else
45 {
46 const std::string msg = COMPONENTNAME + " invalid link";
47 LOG(CbkLogLevel::Debug, msg);
48 throw std::runtime_error(msg);
49 }
50 }
LongitudinalSignal
Definition: longitudinalSignal.h:24
void UpdateOutput | ( | int | localLinkId,
 |  | std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update outputs.

Function is called by framework when this Component.has to deliver a signal over a channel to another component (scheduler calls update task of this component).

Refer to module description for output channels and output ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentOutput"
[out] | data | Referenced signal (copied by this component)
[in] | time | Current scheduling time
53 {
54 Q_UNUSED(localLinkId);
55 Q_UNUSED(data);
56 Q_UNUSED(time);
57
58 std::runtime_error("invalid link");
59 }
void Trigger ( int time )
virtual

Process data within component.

Function is called by framework when the scheduler calls the trigger task of this component.

Refer to module description for information about the module's task.

Parameters
[in] time Current scheduling time

Set position of the accecaleration pedal position in percent.

Set position of the brake pedal position in percent.

Set gear

62 {
63 Q_UNUSED(time);
64
66 GetAgent()->SetEffAccelPedal(in_accPedalPos);
68 GetAgent()->SetEffBrakePedal(in_brakePedalPos);
70 GetAgent()->SetGear(in_gear);
71
72 GetPublisher()->Publish("AccelerationPedalPosition", in_accPedalPos);
73 GetPublisher()->Publish("BrakePedalPosition", in_brakePedalPos);
74 GetPublisher()->Publish("Gear", in_gear);
75 }
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Action_SecondaryDriverTasks

Action_SecondaryDriverTasks

controls secondary driver tasks More...

controls secondary driver tasks

This component sets the brake light to on if the acceleration of the vehicle is smaller than the coasting acceleration, sets the indicator and other switches the driver uses during driving.

Inputs

Input variables:

name | meaning
in_IndicatorState | State of the turning indicator (left, center/off, right).
in_hornSwitch | Horn activation (true/false)
in_headLightSwitch | Light activation (true/false)
in_highBeamLightSwitch | HighBeamLight activation (true/false)
in_flasherSwitch | Flasher activation (true/false)

Input channel IDs:

Input ID | signal class | contained variables
0 | SecondaryDriverTasksSignal | in_IndicatorState, in_hornSwitch, in_headLightSwitch, in_highBeamLightSwitch, in_flasherSwitch

Outputs

none

InternalParameters

none

ExternalParameters

none

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Agent_Updater

Agent_Updater

This module gets the final values for the dynamic parameters of the agent and updates the agent accordingly. More...

This module gets the final values for the dynamic parameters of the agent and updates the agent accordingly.

Inputs

Input variables:

name | meaning
acceleration | Acceleration of the agent in m/s.
velocity | Velocity of the agent in m/s.
positionX | X position of the agent.
positionY | Y position of the agent.

Input channel IDs:

Input ID | signal class | contained variables
0 | DynamicsSignal | acceleration, velocity, positionX, positionY
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Algorithm_AEB

Algorithm_AEB

This module represents a simple autonomous emergency braking system (AEB). More...

This module represents a simple autonomous emergency braking system (AEB).

Utility class for AEB to predict the bounding box of objects in future timesteps.

This module represents a simple autonomous emergency braking system (AEB). If the predicted time to collision (TTC) with an other object detected by a sensor is below a certain treshold it brake with a constant deceleration. The module deactivates again if the TTC is above 1.5 times the treshold

Inputs

name | meaning
detectedMovingObjects | moving objects detected by a sensor
detectedStationaryObjects | stationary objects detected by a sensor

Outputs

name | meaning
activeAcceleration | current acceleration of this module
componentState | current state of this module
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Algorithm_Lateral

Algorithm_Lateral

models the lateral controller of the driver More...

models the lateral controller of the driver

This component models the lateral controller of the driver. It calculates a steering wheel angle wish of the driver that tries to diminish the lateral offset to the current or target lane in a lane change. This wish depends also on the intensity of a lane change.

Inputs

Input variables:

name | meaning
in_LatDisplacement | The current control deviation of lateral displacment in m.
in_lateralDeviation | The lateral deviation from the lane change or swerving trajectory [m].
in_headingError | The heading error regarding the lane change or swerving trajectory [rad].
in_gainLateralDeviation | Gain for lateral deviation control in AlgorithmLateralDriver [rad/s^2].
in_gainHeadingError | Gain for heading error control in AlgorithmLateralDriver [1/s].
in_kappaSet | Set value for trajectory curvature [1/m].
velocity | Current velocity
steeringWheelAngle | Current steering wheel angle

Input channel IDs:

Input ID | signal class | contained variables
0 | LateralSignal | laneWidth, lateralDeviation, gainLateralDeviation, headingError, gainHeadingError, kappaSet
101 | SensorDriverSignal | used from signal: velocity, steeringWheelAngle

Init Inputs

Init input variables:

name | meaning
in_steeringRatio | The steering ratio of the vehicle.
in_steeringMax | The maximum possible steering wheel angle in both directions in degree.
in_wheelBase | The wheel base of the vehicle in m.

Note that these variables are only used implicetly by the component without assigning the values to variable names.

Init input channel IDs:

Input Id | signal class | contained variables
100 | ParametersVehicleSignal | used from signal: steeringRatio, steeringMax, wheelbase

Outputs

Output variables:

name | meaning
out_desiredSteeringWheelAngle | The steering wheel angle wish of the driver in degree.

Output channel IDs:

Output Id | signal class | contained variables
0 | SteeringSignal | out_desiredSteeringWheelAngle

External parameters

none

Internal paramters

name | value | meaning --—|----—|---—.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Algorithm_Longitudinal

Classes | Variables
Algorithm_Longitudinal

models the longitudinal controller of the driver. More...

Classes

class | AlgorithmLongitudinalImplementation
class | AlgorithmLongitudinalCalculations
This class does all the calculations in the Algorithm_Longitudinal module. More...

Variables

const std::string COMPONENTNAME = "AlgorithmLongitudinal"
Name of the current component.

Detailed Description

models the longitudinal controller of the driver.

This component models the longitudinal controller of the driver / some ADAS. It calculates the positions of the acceleration pedal and the brake pedal, as well as the chosen gear and models the actuation of the pedals.

Inputs

Input variables:

name | meaning
accelerationWish | wish acceleration
velocity | current velocity

Input channel IDs:

Input ID | signal class | contained variables
0 | AccelerationSignal | accelerationWish
101 | SensorDriverSignal | used from signal: velocity

Init Inputs

Init input variables:

name | meaning
vehicleModelParameters | VehicleModelParameters

Init input channel IDs:

Input Id | signal class | contained variables
100 | ParametersVehicleSignal | vehicleModelParameters

Outputs

Output variables:

name | meaning
out_desiredSteeringWheelAngle | The steering wheel angle wish of the driver in degree.

Output channel IDs:

Output Id | signal class | contained variables
0 | SteeringSignal | out_desiredSteeringWheelAngle

External parameters

none

Internal paramters

name | value | meaning --—|----—|---—.

This component models the longitudinal controller of the driver / some ADAS. It calculates the positions of the acceleration pedal and the brake pedal, as well as the chosen gear and models the actuation of the pedals.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: AlgorithmLongitudinalImplementation Class Reference

Public Attributes | List of all members
AlgorithmLongitudinalImplementation Class Reference
Algorithm_Longitudinal

Public Attributes

const std::string COMPONENTNAME = "AlgorithmLongitudinal"
Name of the current component.
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: AlgorithmLongitudinalCalculations Class Reference

Public Member Functions | List of all members
AlgorithmLongitudinalCalculations Class Reference
Algorithm_Longitudinal

This class does all the calculations in the Algorithm_Longitudinal module. More...

Public Member Functions

AlgorithmLongitudinalCalculations (double velocity, double accelerationWish, const VehicleModelParameters &vehicleModelParameters)
void | CalculateGearAndEngineSpeed ()
Calculates the necessary gear and engine to achieve the desired acceleration at the current velocity.
void | CalculatePedalPositions ()
Calculates the necessary accelerator pedal and brake pedal position to achieve desired acceleration depending on the gear. Therefor CalculateGearAndEngineSpeed needs to be called first.
double | GetBrakePedalPosition () const
double | GetAcceleratorPedalPosition () const
double | GetEngineSpeed () const
int | GetGear () const
double | GetAccFromEngineTorque (double engineTorque, int chosenGear)
Calculates the acceleration that will result from the engineTorque at the given gear.
double | GetEngineSpeedByVelocity (double velocity, int gear)
Calculates the engine speed required to drive with the given velocity at the specified gear.
bool | isWithinEngineLimits (int gear, double engineSpeed, double acceleration)
Checks wether the engineSpeed and acceleration/torque can be achieved by the engine.
double | GetEngineTorqueMin (double engineSpeed)
Returns the maximum possible engineTorque for the given engineSpeed.
double | GetEngineTorqueMax (double engineSpeed)
Returns the minimum engineTorque (i.e. maximum drag) for the given engineSpeed.
double | GetEngineTorqueAtGear (int gear, double acceleration)
Calculates the engine torque required to achieve the given acceleration at the specified gear.

Detailed Description

This class does all the calculations in the Algorithm_Longitudinal module.

Based on the current velocity of the agent and a desired acceleration, this class calculates the gear and the pedal positions required to achieve this acceleration. The AlgorithmLongitudinal constructs an instance of this class with the parameters, then calls the calculate functions and then acquires the results be calling the respective getter.

Constructor & Destructor Documentation

AlgorithmLongitudinalCalculations | ( | double | velocity,
 |  | double | accelerationWish,
 |  | const VehicleModelParameters & | vehicleModelParameters
 | ) |  |
Parameters
velocity | current velocity of the agent
accelerationWish | desired acceleration (can be negative)
vehicleModelParameters | parameters of the vehicle model
26 :
27 velocity(xVel),
28 accelerationWish(in_aVehicle),
29 vehicleModelParameters(vehicleModelParameters)
30 {
31 }

Member Function Documentation

double GetBrakePedalPosition ( ) const
Returns
Calculated position of brake pedal in percent
34 {
35 return brakePedalPosition;
36 }
double GetAcceleratorPedalPosition ( ) const
Returns
Calculated position of accelerator pedal in percent
39 {
40 return acceleratorPedalPosition;
41 }
double GetEngineSpeed ( ) const
Returns
Calculated engine speed
44 {
45 return engineSpeed;
46 }
int GetGear ( ) const
Returns
Calculated gear
49 {
50 return gear;
51 }
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: ComponentController

Classes
ComponentController

This module. More...

Classes

class ComponentControllerImplementation

Detailed Description

This module.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: ComponentControllerImplementation Class Reference

Public Member Functions | List of all members
ComponentControllerImplementation Class Reference
ComponentController

Public Member Functions

virtual void | UpdateInput (int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)
Update Inputs. More...
virtual void | UpdateOutput (int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
Update outputs. More...
virtual void | Trigger (int time)
Process data within component. More...

Member Function Documentation

void UpdateInput | ( | int | localLinkId,
 |  | const std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update Inputs.

Function is called by framework when another component delivers a signal over a channel to this component (scheduler calls update taks of other component).

Refer to module description for input channels and input ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentInput"
[in] | data | Referenced signal (copied by sending component)
[in] | time | Current scheduling time
54 {
55 const auto signal = SignalCast<AgentCompToCompCtrlSignal>(data, localLinkId);
56
57 if (stateManager.LocalLinkIdIsRegistered(localLinkId))
58 {
59 stateManager.UpdateComponentCurrentState(localLinkId, signal->GetCurrentState());
60 }
61 else
62 {
63 std::shared_ptr<ComponentStateInformation> componentStateInformation;
64
65 ComponentType componentType = signal->GetComponentType();
66 if(componentType == ComponentType::VehicleComponent)
67 {
68 const auto castedSignal = SignalCast<VehicleCompToCompCtrlSignal>(signal, localLinkId);
69 componentStateInformation = std::make_shared<AdasComponentStateInformation>(castedSignal->GetComponentType(),
70 castedSignal->GetAgentComponentName(),
71 castedSignal->GetCurrentState(),
72 castedSignal->GetAdasType());
73 }
74 else
75 {
76 componentStateInformation = std::make_shared<ComponentStateInformation>(signal->GetComponentType(),
77 signal->GetAgentComponentName(),
78 signal->GetCurrentState());
79 }
80
81 stateManager.AddComponent(localLinkId, componentStateInformation);
82 }
83
84 const auto warnings = signal->GetComponentWarnings();
85 if (!warnings.empty())
86 {
87 const auto warningComponent = stateManager.GetComponent(localLinkId);
88
89 driverWarnings.try_emplace(warningComponent->GetComponentName(), warnings);
90 }
91 }
ComponentControl::StateManager::UpdateComponentCurrentState
void UpdateComponentCurrentState(const int localLinkId, const ComponentState currentState)
UpdateComponentCurrentState updates the current state of the component as represented in the Componen...
Definition: stateManager.cpp:64
ComponentControl::StateManager::GetComponent
std::shared_ptr< ComponentStateInformation > GetComponent(const int localLinkId) const
GetComponent gets a registered component by its local link id.
Definition: stateManager.cpp:31
ComponentControl::StateManager::LocalLinkIdIsRegistered
bool LocalLinkIdIsRegistered(const int localLinkId) const
LocalLinkIdIsRegistered.
Definition: stateManager.cpp:154
ComponentControl::StateManager::AddComponent
void AddComponent(const int localLinkId, std::shared_ptr< ComponentStateInformation > componentStateInformation)
Adds a new component which has dependencies to other components.
Definition: stateManager.cpp:17

Here is the call graph for this function:

void UpdateOutput | ( | int | localLinkId,
 |  | std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update outputs.

Function is called by framework when this component has to deliver a signal over a channel to another component (scheduler calls update task of this component).

Refer to module description for output channels and output ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentOutput"
[out] | data | Referenced signal (copied by this component)
[in] | time | Current scheduling time
94 {
95 ComponentState maxReachableState = ComponentState::Undefined;
96
97 if (stateManager.LocalLinkIdIsRegistered(localLinkId))
98 {
99 const auto componentAtLocalLinkId = stateManager.GetComponent(localLinkId);
100 maxReachableState = stateManager.GetComponent(localLinkId)->GetMaxReachableState();
101
102 if (componentAtLocalLinkId->GetComponentType() == ComponentType::Driver)
103 {
104 data = std::make_shared<CompCtrlToDriverCompSignal const>(maxReachableState,
105 stateManager.GetVehicleComponentNamesToTypeAndStateMap(),
106 driverWarnings);
107 // clear all warnings to forward to avoid unwanted repeats
108 driverWarnings.clear();
109 }
110 else
111 {
112 data = std::make_shared<CompCtrlToAgentCompSignal const>(maxReachableState, stateManager.GetVehicleComponentNamesToTypeAndStateMap());
113 }
114 }
115 else
116 {
117 data = std::make_shared<CompCtrlToAgentCompSignal const>(maxReachableState, stateManager.GetVehicleComponentNamesToTypeAndStateMap());
118 }
119 }
ComponentControl::StateManager::GetComponent
std::shared_ptr< ComponentStateInformation > GetComponent(const int localLinkId) const
GetComponent gets a registered component by its local link id.
Definition: stateManager.cpp:31
ComponentControl::StateManager::LocalLinkIdIsRegistered
bool LocalLinkIdIsRegistered(const int localLinkId) const
LocalLinkIdIsRegistered.
Definition: stateManager.cpp:154
ComponentControl::StateManager::GetVehicleComponentNamesToTypeAndStateMap
std::map< std::string, std::pair< ComponentType, ComponentState > > GetVehicleComponentNamesToTypeAndStateMap()
GetVehicleComponentNameToTypesAndStatesMap.
Definition: stateManager.cpp:159

Here is the call graph for this function:

void Trigger ( int time )
virtual

Process data within component.

Function is called by framework when the scheduler calls the trigger task of this component

Parameters
[in] time Current scheduling time
132 {
133 // get the event list and filter by ComponentStateChangeEvents and this agent's id
134 const auto stateChangeEventList = GetEventNetwork()->GetTrigger(openpass::events::ComponentStateChangeEvent::TOPIC);
135
136 std::vector<openpass::events::ComponentStateChangeEvent const *> componentStateChanges;
137
138 // filter state change event list by this agentid
139 for (const auto &stateChangeEvent : stateChangeEventList)
140 {
141 const auto componentStateChangeEvent = dynamic_cast< openpass::events::ComponentStateChangeEvent const *>(stateChangeEvent);
142 if (componentStateChangeEvent && IsAgentAffectedByEvent(componentStateChangeEvent))
143 {
144 componentStateChanges.push_back(componentStateChangeEvent);
145 }
146 }
147
148 // Instruct the stateManager to updateMaxReachableStates
149 // - this prioritizes the provided event list for event-triggered max reachable states
150 // - this also uses registered conditions to determine each component's max reachable
151 // state dependent on each other component's current state
152 stateManager.UpdateMaxReachableStatesForRegisteredComponents(componentStateChanges);
153 }
openpass::events::ComponentStateChangeEvent
Definition: componentStateChangeEvent.h:24
ComponentControl::StateManager::UpdateMaxReachableStatesForRegisteredComponents
void UpdateMaxReachableStatesForRegisteredComponents(std::vector< openpass::events::ComponentStateChangeEvent const * > &componentStateChanges)
UpdateMaxReachableStatesForRegisteredComponents Calculates and updates the max reachable states for t...
Definition: stateManager.cpp:104

Here is the call graph for this function:

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Dynamics_Collision

Dynamics_Collision

This modules calculates all dynaimcs of the agent in case of a collision. More...

This modules calculates all dynaimcs of the agent in case of a collision.

This module becomes active after the agent was involved in a collision. Once it is active the agent decelerates with a constant deceleration of -10.0 m/s^2 in a linear trajectory until it comes to a stop. At the moment of the collision the velocities and the yaw angle of the ego and the collision partner are adjusted based on a inelastic collision algorithm. If the agent collides with a static object, it immediately comes to a fullstop.

Outputs

Output variables:

name | meaning
dynamicsSignal | Signal containing all dynamics information

Output channel IDs:

Output ID | signal class | contained variables
0 | DynamicsSignal | dynamicsSignal
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Dynamics_CollisionPostCrash

Classes
Dynamics_CollisionPostCrash

Collision component that calculates post-crash dynamics. More...

Classes

class DynamicsPostCrashImplementation

Detailed Description

Collision component that calculates post-crash dynamics.

The algorithms for collision detection and calculation of the post-crash dynamics are based on algorithms provided by Harald Kolk (TU Graz).

The algorithm for collision dection is based on the Sutherland–Hodgman algorithm for polygon clipping.

The algorithm for calculating the post-crash-dynamics is based on conservation of momentum and angular momentum. It works in 2D and is only valid for non-sliding collisions.

Note that this module is provisional regarding several aspect. openPASS needs to be changed in order to improve the following:

  • The post-crash dynamics is currently only calculated and written to the log-file since openPASS does not allow to forward the results to dynamic-components and observation modules, currently.
  • This module needs several parameters (coeffRest, interFriction and timeOfPenetration). openPASS currently does not allow to set parameters for this module in the config files. Therefore, these parameters are hard-coded.
  • The calculation of the post-crash dynamics is based on the assumptions that the time where the collision starts is known since the post-crash dynamics shall be calculated a certain time ( given by the parameter timeOfPenetration ) after the first contact of the vehicles. Currently, this module does not know anything about sample rates etc. which makes it difficult to find the correct time to calculate the post-crash dynamics.
  • The algorithm for the post-crash dynamics uses the pre-crash yaw velocities of both agents. Since the yaw velocity is not available for the agents currently, the yaw velocities are set to zero here.

Note:

  • The method GetVertexTypes in collisionDetection assumes that the intersection of the two vehicles is rather small. It has not been checked if the method covers all possible cases for bigger intersections which are possible in openPASS depending on the cycle times.

Outputs

Output variables:

name | meaning
dynamicsSignal | Signal containing all dynamics information

Output channel IDs:

Output ID | signal class | contained variables
0 | DynamicsSignal | dynamicsSignal
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: DynamicsPostCrashImplementation Class Reference

Public Member Functions | List of all members
DynamicsPostCrashImplementation Class Reference
Dynamics_CollisionPostCrash

Public Member Functions

virtual void | UpdateInput (int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)
Update Inputs. More...
virtual void | UpdateOutput (int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
Update outputs. More...
virtual void | Trigger (int time)
Process data within component. More...

Member Function Documentation

void UpdateInput | ( | int | localLinkId,
 |  | const std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update Inputs.

Function is called by framework when another component delivers a signal over a channel to this component (scheduler calls update taks of other component).

Refer to module description for input channels and input ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentInput"
[in] | data | Referenced signal (copied by sending component)
[in] | time | Current scheduling time
71 {
72 Q_UNUSED(localLinkId);
73 Q_UNUSED(data);
74 Q_UNUSED(time);
75 }
void UpdateOutput | ( | int | localLinkId,
 |  | std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update outputs.

Function is called by framework when this component has to deliver a signal over a channel to another component (scheduler calls update task of this component).

Refer to module description for output channels and output ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentOutput"
[out] | data | Referenced signal (copied by this component)
[in] | time | Current scheduling time
78 {
79 Q_UNUSED(time);
80
81 if(localLinkId == 0)
82 {
83 try
84 {
85 data = std::make_shared<DynamicsSignal const>(dynamicsSignal);
86 }
87 catch(const std::bad_alloc&)
88 {
89 const std::string msg = COMPONENTNAME + " could not instantiate signal";
90 LOG(CbkLogLevel::Debug, msg);
91 throw std::runtime_error(msg);
92 }
93 }
94 else
95 {
96 const std::string msg = COMPONENTNAME + " invalid link";
97 LOG(CbkLogLevel::Debug, msg);
98 throw std::runtime_error(msg);
99 }
100 }
virtual void Trigger ( int time )
virtual

Process data within component.

Function is called by framework when the scheduler calls the trigger task of this component

Parameters
[in] time Current scheduling time
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Dynamics_RegularDriving

Classes
Dynamics_RegularDriving

models the longitudinal and lateral dynamics of the vehicle coresponding to the pedal and steering inputs More...

Classes

class DynamicsRegularDrivingImplementation

Detailed Description

models the longitudinal and lateral dynamics of the vehicle coresponding to the pedal and steering inputs

This component models the reaction of the vehicle based on the pedal and steering wheel operation of the driver. It calculates velocity and position of the agent according to his acceleration and his collision state. If no collision took place in the previous time step where the agent was the rear opponent, the velocity and position of the agent is calculated according to his acceleration wish. If the agent was the rear opponent in a collision, its velocity is set to the one of the front agent. The position is calculated according to this velocity. Additionaly the maximum change of steering wheel angle according to the desired steering wheel angle is calculated.

Inputs

Input variables:

name | meaning
in_accPedalPos | Position of the gas pedal in percent
in_brakePedalPos | Position of the brake pedal in percent
in_gear | Current gear
in_steeringWheelAngle | Steering wheel angle of the agent

Input channel IDs:

Input ID | signal class | contained variables
1 | LongitudinalSignal | in_accPedalPos, in_brakePedalPos, in_gear
2 | SteeringSignal | in_steeringWheelAngle

Init Inputs

Init input variables:

name | meaning
vehicleModelParameters | VehicleModelParameters
  • Init input channel IDs:
    Input Id | signal class | contained variables
    100 | ParametersVehicleSignal | vehicleModelParameters

Outputs

Output variables:

name | meaning
acceleration | Acceleration of the current agent coresponding to the pedalpositions [m/s²]
velocity | The driven curvature of the car coresponding to the steering wheel angle based on Ackermann [radiant]
positionX | new inertial x-position [m]
positionY | new inertial y-position [m]
yaw | new yaw angle in current time step [radiant]
yawRate | change of yaw angle due to ds and curvature [radiant]
steeringWheelAngle | new angle of the steering wheel angle [degree]
travelDistance | distance traveled by the agent during this timestep [m]

Output channel IDs:

Output Id | signal class | contained variables
0 | DynamicsSignal | acceleration, velocity, positionX, positionY, yaw, yawRate, steeringWheelAngle, travelDistance

External parameters

none

Internal paramters

name | value | meaning
VLowerLimit | 0 | The minimal velocity of the agent in m/s.
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: DynamicsRegularDrivingImplementation Class Reference

Public Member Functions | Public Attributes | List of all members
DynamicsRegularDrivingImplementation Class Reference
Dynamics_RegularDriving

Public Member Functions

virtual void | UpdateInput (int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)
Update Inputs. More...
virtual void | UpdateOutput (int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
Update outputs. More...
virtual void | Trigger (int time)
Process data within component. More...

Public Attributes

const std::string COMPONENTNAME = "DynamicRegularDriving"
Name of the current component.

Member Function Documentation

void UpdateInput | ( | int | localLinkId,
 |  | const std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update Inputs.

Function is called by framework when another component delivers a signal over a channel to this component (scheduler calls update taks of other component).

Refer to module description for input channels and input ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentInput"
[in] | data | Referenced signal (copied by sending component)
[in] | time | Current scheduling time
32 {
33 Q_UNUSED(time);
34
35 if (localLinkId == 0)
36 {
37 const std::shared_ptr<ComponentStateSignalInterface const> stateSignal = std::dynamic_pointer_cast<ComponentStateSignalInterface const>(data);
38 if(stateSignal->componentState == ComponentState::Acting)
39 {
40 const std::shared_ptr<LongitudinalSignal const> signal = std::dynamic_pointer_cast<LongitudinalSignal const>(data);
41 if (!signal)
42 {
43 const std::string msg = COMPONENTNAME + " invalid signaltype";
44 LOG(CbkLogLevel::Debug, msg);
45 throw std::runtime_error(msg);
46 }
47 in_accPedalPos = signal->accPedalPos;
48 in_brakePedalPos = signal->brakePedalPos;
49 ApplyPedalPositionLimits();
50 in_gear = signal->gear;
51 ApplyGearLimit();
52 }
53 }
54 else if (localLinkId == 1)
55 {
56 const std::shared_ptr<ComponentStateSignalInterface const> stateSignal = std::dynamic_pointer_cast<ComponentStateSignalInterface const>(data);
57 if(stateSignal->componentState == ComponentState::Acting)
58 {
59 const std::shared_ptr<SteeringSignal const> signal = std::dynamic_pointer_cast<SteeringSignal const>(data);
60 if (!signal)
61 {
62 const std::string msg = COMPONENTNAME + " invalid signaltype";
63 LOG(CbkLogLevel::Debug, msg);
64 throw std::runtime_error(msg);
65 }
66 in_steeringWheelAngle = signal->steeringWheelAngle;
67 }
68 }
69 else if (localLinkId == 100)
70 {
71 // from ParametersAgent
72 const std::shared_ptr<ParametersVehicleSignal const> signal = std::dynamic_pointer_cast<ParametersVehicleSignal const>(data);
73 if (!signal)
74 {
75 const std::string msg = COMPONENTNAME + " invalid signaltype";
76 LOG(CbkLogLevel::Debug, msg);
77 throw std::runtime_error(msg);
78 }
79
80 vehicleModelParameters = signal->vehicleParameters;
81 }
82 else
83 {
84 const std::string msg = COMPONENTNAME + " invalid link";
85 LOG(CbkLogLevel::Debug, msg);
86 throw std::runtime_error(msg);
87 }
88 }
SteeringSignal
Signal class.
Definition: steeringSignal.h:27
LongitudinalSignal
Definition: longitudinalSignal.h:24
DynamicsRegularDrivingImplementation::COMPONENTNAME
const std::string COMPONENTNAME
Name of the current component.
Definition: regularDriving.h:105
ParametersVehicleSignal
Provides all vehicle parameters for the driver.
Definition: parametersVehicleSignal.h:32
void UpdateOutput | ( | int | localLinkId,
 |  | std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update outputs.

Function is called by framework when this component has to deliver a signal over a channel to another component (scheduler calls update task of this component).

Refer to module description for output channels and output ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentOutput"
[out] | data | Referenced signal (copied by this component)
[in] | time | Current scheduling time
91 {
92 Q_UNUSED(time);
93
94 if(localLinkId == 0)
95 {
96 try {
97 data = std::make_shared<DynamicsSignal const>(dynamicsSignal);
98 }
99 catch(const std::bad_alloc&)
100 {
101 const std::string msg = COMPONENTNAME + " could not instantiate signal";
102 LOG(CbkLogLevel::Debug, msg);
103 throw std::runtime_error(msg);
104 }
105 }
106 else
107 {
108 const std::string msg = COMPONENTNAME + " invalid link";
109 LOG(CbkLogLevel::Debug, msg);
110 throw std::runtime_error(msg);
111 }
112 }
DynamicsRegularDrivingImplementation::COMPONENTNAME
const std::string COMPONENTNAME
Name of the current component.
Definition: regularDriving.h:105
void Trigger ( int time )
virtual

Process data within component.

Function is called by framework when the scheduler calls the trigger task of this component

Parameters
[in] time Current scheduling time
255 {
256 Q_UNUSED(time);
257
258 const auto agent = GetAgent();
259
260 //Lateral behavior
261 double maxDecel = _oneG * GetFrictionCoefficient() * -1;
262 agent->SetMaxDeceleration(maxDecel);
263
264 double v;
265 double yawAngle = agent->GetYaw();
266
267 double accVehicle = GetAccVehicle(in_accPedalPos, in_brakePedalPos, in_gear, time);
268
269 v = agent->GetVelocity() + accVehicle*GetCycleTime()/1000.;
270
271 if(v < VLowerLimit)
272 {
273 accVehicle = 0.0;
274 v = VLowerLimit;
275 }
276
277 // change of path coordinate since last time step [m]
278 double ds = v * GetCycleTime() * 0.001;
279 // change of inertial x-position due to ds and yaw [m]
280 double dx = ds * std::cos(yawAngle);
281 // change of inertial y-position due to ds and yaw [m]
282 double dy = ds * std::sin(yawAngle);
283 // new inertial x-position [m]
284 double x = agent->GetPositionX() + dx;
285 // new inertial y-position [m]
286 double y = agent->GetPositionY() + dy;
287
288 dynamicsSignal.acceleration = accVehicle;
289 dynamicsSignal.velocity = v;
290 dynamicsSignal.positionX = x;
291 dynamicsSignal.positionY = y;
292 dynamicsSignal.travelDistance = ds;
293
294 // convert steering wheel angle to steering angle of front wheels [degree]
295 double steering_angle_degrees = TrafficHelperFunctions::ValueInBounds(-vehicleModelParameters.maximumSteeringWheelAngleAmplitude, in_steeringWheelAngle, vehicleModelParameters.maximumSteeringWheelAngleAmplitude) / vehicleModelParameters.steeringRatio;
296 dynamicsSignal.steeringWheelAngle = TrafficHelperFunctions::ValueInBounds(-vehicleModelParameters.maximumSteeringWheelAngleAmplitude, in_steeringWheelAngle, vehicleModelParameters.maximumSteeringWheelAngleAmplitude);
297 GetPublisher()->Publish("SteeringAngle", steering_angle_degrees);
298 // calculate curvature (Ackermann model; reference point of yawing = rear axle!) [radiant]
299 double steeringCurvature = std::tan(DegreeToRadiant * steering_angle_degrees) / vehicleModelParameters.wheelbase;
300 // change of yaw angle due to ds and curvature [radiant]
301 double dpsi = std::atan(steeringCurvature*ds);
302 dynamicsSignal.yawRate = dpsi / (GetCycleTime() * 0.001);
303 dynamicsSignal.centripetalAcceleration = dynamicsSignal.yawRate * v;
304 // new yaw angle in current time step [radiant]
305 double psi = agent->GetYaw() + dpsi;
306 dynamicsSignal.yaw = psi;
307 }
TrafficHelperFunctions::ValueInBounds
static T ValueInBounds(const T &low, const T &value, const T &high)
Limits a value between a lower and an upper limit.
Definition: commonTools.h:227

Here is the call graph for this function:

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Dynamics_RegularTwoTrack

Classes
Dynamics_RegularTwoTrack

Dynamic component to model the dynamic of a two track vehicle. More...

Classes

class DynamicsRegularTwoTrackImplementation

Detailed Description

Dynamic component to model the dynamic of a two track vehicle.

Simple open-loop two-track model.

Inputs

Input variables:

name | meaning
in_accPedalPos | Position of the gas pedal in percent
in_brakePedalPos | Position of the brake pedal in percent
in_gear | Current gear
in_steeringWheelAngle | Steering wheel angle of the agent

Input channel IDs:

Input ID | signal class | contained variables
1 | LongitudinalSignal | in_accPedalPos, in_brakePedalPos, in_gear
2 | SteeringSignal | in_steeringWheelAngle

Outputs

Output variables:

name | meaning
acceleration | Acceleration of the current agent coresponding to the pedalpositions [m/s²]
velocity | The driven curvature of the car coresponding to the steering wheel angle based on Ackermann [radiant]
positionX | new inertial x-position [m]
positionY | new inertial y-position [m]
yaw | new yaw angle in current time step [radiant]
yawRate | change of yaw angle due to ds and curvature [radiant]
steeringWheelAngle | new angle of the steering wheel angle [degree]
travelDistance | distance traveled by the agent during this timestep [m]

Output channel IDs:

Output Id | signal class | contained variables
0 | DynamicsSignal | acceleration, velocity, positionX, positionY, yaw, yawRate, steeringWheelAngle, travelDistance
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: DynamicsRegularTwoTrackImplementation Class Reference

Public Member Functions | Public Attributes | List of all members
DynamicsRegularTwoTrackImplementation Class Reference
Dynamics_RegularTwoTrack

Public Member Functions

virtual void | UpdateInput (int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)
Update Inputs. More...
virtual void | UpdateOutput (int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
Update outputs. More...
virtual void | Trigger (int time)
Process data within component. More...

Public Attributes

const std::string COMPONENTNAME = "DynamicRegularTwoTrack"
Name of the current component.

Member Function Documentation

void UpdateInput | ( | int | localLinkId,
 |  | const std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update Inputs.

Function is called by framework when another component delivers a signal over a channel to this component (scheduler calls update taks of other component).

Refer to module description for input channels and input ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentInput"
[in] | data | Referenced signal (copied by sending component)
[in] | time | Current scheduling time
63 {
64 Q_UNUSED(time);
65
66 if (localLinkId == 0)
67 {
68 const std::shared_ptr<ComponentStateSignalInterface const> stateSignal = std::dynamic_pointer_cast<ComponentStateSignalInterface const>(data);
69 if(stateSignal->componentState == ComponentState::Acting)
70 {
71 const std::shared_ptr<LongitudinalSignal const> signal = std::dynamic_pointer_cast<LongitudinalSignal const>(data);
72 if (!signal)
73 {
74 const std::string msg = COMPONENTNAME + " invalid signaltype";
75 LOG(CbkLogLevel::Debug, msg);
76 throw std::runtime_error(msg);
77 }
78 throttlePedal.SetDefaultValue(signal->accPedalPos);
79 brakePedal.SetDefaultValue(signal->brakePedalPos);
80 }
81 }
82 else if (localLinkId == 1)
83 {
84 const std::shared_ptr<ComponentStateSignalInterface const> stateSignal = std::dynamic_pointer_cast<ComponentStateSignalInterface const>(data);
85 if(stateSignal->componentState == ComponentState::Acting)
86 {
87 const std::shared_ptr<SteeringSignal const> signal = std::dynamic_pointer_cast<SteeringSignal const>(data);
88 if (!signal)
89 {
90 const std::string msg = COMPONENTNAME + " invalid signaltype";
91 LOG(CbkLogLevel::Debug, msg);
92 throw std::runtime_error(msg);
93 }
94 angleTireFront.SetDefaultValue(signal->steeringWheelAngle * M_PI / 180);
95 }
96 }
97 else if (localLinkId == 100)
98 {
99 // from ParametersAgent
100 const std::shared_ptr<ParametersVehicleSignal const> signal = std::dynamic_pointer_cast<ParametersVehicleSignal const>(data);
101 if (!signal)
102 {
103 const std::string msg = COMPONENTNAME + " invalid signaltype";
104 LOG(CbkLogLevel::Debug, msg);
105 throw std::runtime_error(msg);
106 }
107
108 }
109 else
110 {
111 const std::string msg = COMPONENTNAME + " invalid link";
112 LOG(CbkLogLevel::Debug, msg);
113 throw std::runtime_error(msg);
114 }
115 }
SteeringSignal
Signal class.
Definition: steeringSignal.h:27
LongitudinalSignal
Definition: longitudinalSignal.h:24
DynamicsRegularTwoTrackImplementation::COMPONENTNAME
const std::string COMPONENTNAME
Name of the current component.
Definition: dynamics_regularTwoTrackImpl.h:81
ParametersVehicleSignal
Provides all vehicle parameters for the driver.
Definition: parametersVehicleSignal.h:32
void UpdateOutput | ( | int | localLinkId,
 |  | std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update outputs.

Function is called by framework when this component has to deliver a signal over a channel to another component (scheduler calls update task of this component).

Refer to module description for output channels and output ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentOutput"
[out] | data | Referenced signal (copied by this component)
[in] | time | Current scheduling time
118 {
119 Q_UNUSED(time);
120
121 if(localLinkId == 0)
122 {
123 try {
124 data = std::make_shared<DynamicsSignal const>(dynamicsSignal);
125 }
126 catch(const std::bad_alloc&)
127 {
128 const std::string msg = COMPONENTNAME + " could not instantiate signal";
129 LOG(CbkLogLevel::Debug, msg);
130 throw std::runtime_error(msg);
131 }
132 }
133 else
134 {
135 const std::string msg = COMPONENTNAME + " invalid link";
136 LOG(CbkLogLevel::Debug, msg);
137 throw std::runtime_error(msg);
138 }
139 }
DynamicsRegularTwoTrackImplementation::COMPONENTNAME
const std::string COMPONENTNAME
Name of the current component.
Definition: dynamics_regularTwoTrackImpl.h:81
virtual void Trigger ( int time )
virtual

Process data within component.

Function is called by framework when the scheduler calls the trigger task of this component

Parameters
[in] time Current scheduling time
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Dynamics_TrajectoryFollower

Classes
Dynamics_TrajectoryFollower

makes an agent strictly follow a predefined path More...

Classes

class TrajectoryFollowerImplementation
Makes an agent strictly follow a predefined path. More...

Detailed Description

makes an agent strictly follow a predefined path

The path is defined in a file that is loaded in the importer into a map. The module simply reads the coordinates defined in the map every step and forces the agent to move to that position. The vehicle is in this mode very simplified (there is no driver, no logic or any intelligence). It's basically a "playback" of the trajectory.

Inputs

Input variables:

name | meaning
inputAcceleration | acceleration from some vehicle component, if any
velocity | current velocity
maxReachableState | max ComponentState for this module is given by ComponentController

Input channel IDs:

Input ID | signal class | contained variables
0 | SteeringSignal | componentState
1 | AccelerationSignal | inputAcceleration, componentState
2 | TrajectorySignal | trajectory

Outputs

Output variables:

name | meaning
acceleration | Acceleration of the current agent coresponding to the pedalpositions [m/s²]
velocity | The driven curvature of the car coresponding to the steering wheel angle based on Ackermann [radiant]
positionX | new inertial x-position [m]
positionY | new inertial y-position [m]
yaw | new yaw angle in current time step [radiant]
yawRate | change of yaw angle due to ds and curvature [radiant]
steeringWheelAngle | new angle of the steering wheel angle [degree]
travelDistance | distance traveled by the agent during this timestep [m]

Output channel IDs:

Output Id | signal class | contained variables
0 | DynamicsSignal | acceleration, velocity, positionX, positionY, yaw, yawRate, steeringWheelAngle, travelDistance
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: TrajectoryFollowerImplementation Class Reference

Public Member Functions | List of all members
TrajectoryFollowerImplementation Class Reference
Dynamics_TrajectoryFollower

Makes an agent strictly follow a predefined path. More...

Public Member Functions

void | UpdateInput (int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time) override
Update Inputs. More...
void | UpdateOutput (int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) override
Update outputs. More...
void | Trigger (int time) override
Process data within component. More...
void | CalculateNextTimestep ()
Calculates dynamics for next timestep. More...

Detailed Description

Makes an agent strictly follow a predefined path.

Member Function Documentation

void UpdateInput | ( | int | localLinkId,
 |  | const std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
override

Update Inputs.

Function is called by framework when another component delivers a signal over a channel to this component (scheduler calls update taks of other component).

Refer to module description for input channels and input ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentInput"
[in] | data | Referenced signal (copied by sending component)
[in] | time | Current scheduling time
82 {
83 Q_UNUSED(time);
84
85 if (localLinkId == 0)
86 {
87 if (!enforceTrajectory)
88 {
89 const std::shared_ptr<ComponentStateSignalInterface const> stateSignal =
90 std::dynamic_pointer_cast<ComponentStateSignalInterface const>(data);
91 if (stateSignal != nullptr && stateSignal->componentState == ComponentState::Acting)
92 {
93 const std::shared_ptr<SteeringSignal const> signal = std::dynamic_pointer_cast<SteeringSignal const>(data);
94 if (!signal)
95 {
96 ThrowInvalidSignalTypeError();
97 }
98
99 if (signal->componentState == ComponentState::Acting)
100 {
101 UpdateState(ComponentState::Disabled);
102 }
103 }
104 }
105 }
106 else if (localLinkId == 1)
107 {
108 if (!enforceTrajectory)
109 {
110 const std::shared_ptr<ComponentStateSignalInterface const> stateSignal =
111 std::dynamic_pointer_cast<ComponentStateSignalInterface const>(data);
112 if (stateSignal != nullptr && stateSignal->componentState == ComponentState::Acting)
113 {
114 const std::shared_ptr<AccelerationSignal const> signal = std::dynamic_pointer_cast<AccelerationSignal const>(data);
115 if (!signal)
116 {
117 ThrowInvalidSignalTypeError();
118 }
119
120 inputAccelerationActive = true;
121 inputAcceleration = signal->acceleration;
122 }
123 else
124 {
125 inputAcceleration = 0;
126 }
127 }
128 }
129 else if (localLinkId == 2)
130 {
131 const auto trajectorySignal = std::dynamic_pointer_cast<TrajectorySignal const>(data);
132 if (trajectorySignal && trajectorySignal->componentState == ComponentState::Acting)
133 {
134 trajectory = trajectorySignal->trajectory;
135 UpdateState(ComponentState::Acting);
136 previousTrajectoryIterator = trajectory.points.begin();
137 nextTrajectoryIterator = previousTrajectoryIterator + 1;
138 }
139 }
140 else
141 {
142 const std::string msg = std::string(COMPONENTNAME) + " invalid signaltype";
143 LOG(CbkLogLevel::Error, msg);
144 throw std::runtime_error(msg);
145 }
146 }
SteeringSignal
Signal class.
Definition: steeringSignal.h:27
AccelerationSignal
Signal class.
Definition: accelerationSignal.h:27
TrajectorySignal
Signal class.
Definition: trajectorySignal.h:27
void UpdateOutput | ( | int | localLinkId,
 |  | std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
override

Update outputs.

Function is called by framework when this component has to deliver a signal over a channel to another component (scheduler calls update task of this component).

Refer to module description for output channels and output ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentOutput"
[out] | data | Referenced signal (copied by this component)
[in] | time | Current scheduling time
149 {
150 Q_UNUSED(time);
151
152 if (localLinkId == 0)
153 {
154 try
155 {
156 dynamicsOutputSignal.componentState = componentState;
157 data = std::make_shared<DynamicsSignal const>(dynamicsOutputSignal);
158 }
159 catch (const std::bad_alloc &)
160 {
161 ThrowCouldNotInstantiateSignalError();
162 }
163 }
164 else
165 {
166 const std::string msg = std::string(COMPONENTNAME) + " invalid link";
167 LOG(CbkLogLevel::Debug, msg);
168 throw std::runtime_error(msg);
169 }
170 }
void Trigger ( int time )
override

Process data within component.

Function is called by framework when the scheduler calls the trigger task of this component

Parameters
[in] time Current scheduling time
173 {
174 CalculateNextTimestep();
175 }
TrajectoryFollowerImplementation::CalculateNextTimestep
void CalculateNextTimestep()
Calculates dynamics for next timestep.
Definition: tfImplementation.cpp:352
void CalculateNextTimestep ( )

Calculates dynamics for next timestep.

Parameters
[in] time Current scheduling time
353 {
354 lastCoordinateTimestamp = currentTime;
355 currentTime += GetCycleTime() / 1000.0;
356
357 if (GetState() == ComponentState::Disabled)
358 {
359 return;
360 }
361
362 if (CheckEndOfTrajectory())
363 {
364 HandleEndOfTrajectory();
365 }
366 else
367 {
368 if(inputAccelerationActive)
369 {
370 TriggerWithActiveAccelerationInput();
371 }
372 else
373 {
374 TriggerWithInactiveAccelerationInput();
375 }
376 }
377 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: LimiterAccelerationVehicleComponents

LimiterAccelerationVehicleComponents

Limits the acceleration output from all vehicle components. More...

Limits the acceleration output from all vehicle components.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Parameters_Vehicle

Classes
Parameters_Vehicle

defines and distributes parameters (constants and stochasitc variables) for all components of an agent More...

Classes

class ParametersVehicleImplementation
defines constants or creates stochastic values that are used in more than one module More...

Detailed Description

defines and distributes parameters (constants and stochasitc variables) for all components of an agent

This component defines parameters for all other components of an agent. It includes constants and stochastic variables, which are divided into driver and vehicle parameters in the components output data structs.

Inputs

none

Init Inputs

none

Outputs

Output variables:

Information in output data struct out_vehicleParameters

name | meaning
airDragCoefficient | The air drag coefficient of the vehicle
axleRatio | The ratio of the axle gear
decelerationFromPowertrainDrag | The deceleration caused by the overall powertrain drag torque in m/s2
distanceReferencePointToFrontAxle | The distance between the vehicle coordinate system's reference point (rear axle) and the front axle in m
distanceReferencePointToLeadingEdge | The distance between the vehicle coordinate system's reference point (rear axle) and the front bumper in m
frictionCoeff | The friction coefficient between road and the vehicles tires
frontSurface | The projected front surface of the vehicle in m2
gearRatios | The ratios of all gears in the gearbox (no reverse gear)
height | The maximum height of the vehicle in m
heightCOG | The height of the center of gravity above ground in m
length | The maximum length of the vehicle in m
maxCurvature | The maximum curavture the vehicle is able to drive in 1/m
maximumEngineSpeed | The maximum engine speed in 1/min
maximumEngineTorque | The maximum torque of the engine in Nm
maximumSteeringWheelAngleAmplitude | The maximum amplitude of the steering wheel angle in degree
maxVelocity | The maximum velocity of the vehicle in m/s
minimumEngineSpeed | The idle speed of the engine in 1/min
minimumEngineTorque | The drag torque of the engine in Nm
momentInertiaPitch | The moment of inertia along the vehicle's lateral axes in kgm2
momentInertiaRoll | The moment of inertia along the vehicle's longtudinal axes in kgm2
momentInertiaYaw | The moment of inertia along the vehicle's vertical axes in kgm2
numberOfGears | The number of gears in the gearbox (no reverse gear)
staticWheelRadius | The static wheel radius in m
steeringRatio | The ratio of the steering gear
trackwidth | The trackwidth of the vehicle in m (for all axles)
vehicleType | The type of the driver's vehicle
weight | The overall mass of the vehicle in kg
wheelbase | The wheelbase of the vehicle in m
width | The maximum width of the vehicle in m

Output channel IDs:

Output Id | signal class | contained variables
1 | VehicleParameterSignal | out_vehicleParameters
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: ParametersVehicleImplementation Class Reference

List of all members
ParametersVehicleImplementation Class Reference
Parameters_Vehicle

defines constants or creates stochastic values that are used in more than one module More...

Detailed Description

defines constants or creates stochastic values that are used in more than one module

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Sensor_Driver

Sensor_Driver

Collect and distribute Data from the WorldInterface and AgentInterface concerning the own vehicle, traffic rule information, lane geometry and surrounding objects. More...

Collect and distribute Data from the WorldInterface and AgentInterface concerning the own vehicle, traffic rule information, lane geometry and surrounding objects.

This component creates a data struct to store the world and agent data of the own vehicle, traffic rule information, lane geometry and surrounding vehicles. Own vehicle data examples are ID, velocity, heading angle, yaw angle, ... for the ego vehicle. Traffic rule information are traffic signs for each lane. Lane geometry is visibility distance and lane specifics like lane curvature, lane width, ... Surrounding object data (vehicles or statics) is for example distance, velocity ... for different positions around the agent.

Inputs

name | meaning
agent | This interface provides access to agent parameters, properties, attributes and dynamic states
callbacks | Interface for callbacks to framework
componentId | Id of the component
cycleTime | Cycle time of this components trigger task [ms]
data | Referenced signal (copied by sending component)
isInit | Query whether the component was just initialized
localLinkId | Corresponds to "id" of "ComponentInput"
publisher | Publishing instance provided by the framework
offsetTime | Offset time of the component
parameters | Interface provides access to the configuration parameters
priority | Priority of the component
responseTime | Response time of the component
stochastics | Provides access to the stochastics functionality of the framework
time | Current scheduling time
world | Provides access to world representation

Outputs

name | meaning -|- none

Output channel IDs:

Output Id | signal class | contained variables
0 | SensorDriverSignal | ownVehicleInformation, trafficRuleInformation, geometryInformation, surroundingObjects
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: SensorObjectDetector

Classes
SensorObjectDetector

This file models the SensorObjectDetectors. More...

Classes

class | ObjectDetectorBase
This class is the common base for all SensorObjectDetectors. More...
class | SensorGeometric2D
This file models a sensor which only detects agents in a 2D area (x/y) in front of the agent. More...

Detailed Description

This file models the SensorObjectDetectors.

This file models the SensorObjectDetectors which can be part of an agent. The SensorObjectDetectors represent sensor which can detect other WorldObjects around the agent. Those sensor have different approaches in detecting other WorldObjects. The detected Objects can then be sent to the corresponding ADAS which uses them.

Outputs

Output variables:

name | meaning
out_detectedObjects | Vector of all detected objects.

Output channel IDs:

Output Id | signal class | contained variables
0 | SensorObjectDetectorToAdasSignal | out_detectedObjects

External parameters

name | meaning
sensorParameters | All parameters which describe the sensor.
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: ObjectDetectorBase Class Reference

Public Member Functions | Protected Member Functions | Static Protected Member Functions | List of all members
ObjectDetectorBase Class Referenceabstract
SensorObjectDetector

This class is the common base for all SensorObjectDetectors. More...

Public Member Functions

ObjectDetectorBase (std::string componentName, bool isInit, int priority, int offsetTime, int responseTime, int cycleTime, StochasticsInterface *stochastics, WorldInterface *world, const ParameterInterface *parameters, PublisherInterface *const publisher, const CallbackInterface *callbacks, AgentInterface *agent)
ObjectDetectorBase.cpp.
virtual void | UpdateInput (int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)=0
Update Inputs. More...
void | UpdateOutput (int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
Update outputs. More...
virtual void | Trigger (int time)=0
Process data within component. More...
const osi3::SensorData & | getSensorData ()

Protected Member Functions

Position GetAbsolutePosition ()
Returns the absolute position of the sensor. More...
osi3::SensorData | ApplyLatency (int time, osi3::SensorData currentSensorData)
Apply the predefined latency to the detected results. More...
bool | HasDetectionError ()
Rolls for the failure chance of the sensor. More...
double | ApplyMeasurementError (double value)
Applies a measurement error to a given value. More...
virtual osi3::SensorViewConfiguration | GenerateSensorViewConfiguration ()
Generates the basic SensorViewConfiguration. More...
polygon_t | TransformPolygonToGlobalCoordinates (polygon_t polygon, point_t sensorPositionGlobal, double yaw) const
Translates the polygon from local coordinates to global coordinates. More...
virtual point_t | TransformPointToLocalCoordinates (point_t point, point_t sensorPositionGlobal, double yaw)
Translates a point from global coordinates to local coordinates. More...
point_t | CalculateGlobalSensorPosition (point_t vehiclePosition, double yaw) const
Calculates the position of the sensor in global coordinates. More...
virtual point_t | CalculateRelativeVector (const point_t absolute, const point_t own, double yaw)
Calculates the relative velocity or acceleration between this vehicle and another in local vehicle coordinates. More...

Static Protected Member Functions

static polygon_t CalculateBoundingBox (const osi3::Dimension3d dimension, const osi3::Vector3d position, const osi3::Orientation3d orientation)
Calculates the bounding box of an object from the osi information. More...

Detailed Description

This class is the common base for all SensorObjectDetectors.

This class is the common base for all SensorObjectDetectors. It provides the basic functionality for all object detectors.

Member Function Documentation

virtual void UpdateInput | ( | int | localLinkId,
 |  | const std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
pure virtual

Update Inputs.

Function is called by framework when another component delivers a signal over a channel to this component (scheduler calls update taks of other component).

Refer to module description for input channels and input ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentInput"
[in] | data | Referenced signal (copied by sending component)
[in] | time | Current scheduling time
void UpdateOutput | ( | int | localLinkId,
 |  | std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |

Update outputs.

Function is called by framework when this Component.has to deliver a signal over a channel to another component (scheduler calls update task of this component).

Refer to module description for output channels and output ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentOutput"
[out] | data | Referenced signal (copied by this component)
[in] | time | Current scheduling time
76 {
77 Q_UNUSED(time);
78
79 std::stringstream log;
80 log << COMPONENTNAME << " (component " << GetComponentName() << ", agent " << GetAgent()->GetId() <<
81 ", output data for local link " << localLinkId << ": ";
82 LOG(CbkLogLevel::Debug, log.str());
83
84 if (localLinkId == 0)
85 {
86 // to SensorFusion
87 try
88 {
89 data = std::make_shared<SensorDataSignal const>(
90 sensorData);
91 }
92 catch (const std::bad_alloc&)
93 {
94 const std::string msg = COMPONENTNAME + " could not instantiate signal";
95 LOG(CbkLogLevel::Debug, msg);
96 throw std::runtime_error(msg);
97 }
98 }
99 else
100 {
101 const std::string msg = COMPONENTNAME + " invalid link";
102 LOG(CbkLogLevel::Debug, msg);
103 throw std::runtime_error(msg);
104 }
105 }
virtual void Trigger ( int time )
pure virtual

Process data within component.

Function is called by framework when the scheduler calls the trigger task of this component.

Refer to module description for information about the module's task.

Parameters
[in] time Current scheduling time
const osi3::SensorData& getSensorData ( )
inline

For testing

130 {
131 return sensorData;
132 }
Position GetAbsolutePosition ( )
protected

Returns the absolute position of the sensor.

This method calculates and returns the absolute position of the sensor by adding the agent's position to the sensor's mounting position (and taking the yaw angle into account).

Returns
The absolute position and yaw of the sensor with respect to world coordinates
108 {
109 Position absolutePosition;
110
111 double posX = GetAgent()->GetPositionX();
112 double posY = GetAgent()->GetPositionY();
113 double yaw = GetAgent()->GetYaw();
114
115 absolutePosition.xPos = posX + position.longitudinal * std::cos(yaw) - position.lateral * std::sin(yaw);
116 absolutePosition.yPos = posY + position.longitudinal * std::sin(yaw) + position.lateral * std::cos(yaw);
117 absolutePosition.yawAngle = yaw;
118
119 return absolutePosition;
120 }
Position
Definition: globalDefinitions.h:160
osi3::SensorData ApplyLatency | ( | int | time,
 |  | osi3::SensorData | currentSensorData
 | ) |  |
protected

Apply the predefined latency to the detected results.

The base implementation can be overriden in derived classes

Parameters
[in] | time
[in] | list | of detected objects
123 {
124 detectedObjectsBuffer.push_back({time + latencyInMs, currentSensorData});
125
126 osi3::SensorData detectedObjectsByLatency;
127
128 while (!detectedObjectsBuffer.empty() && time >= detectedObjectsBuffer.front().first)
129 {
130 detectedObjectsByLatency = detectedObjectsBuffer.front().second;
131 detectedObjectsBuffer.pop_front();
132 }
133
134 return detectedObjectsByLatency;
135 }
bool HasDetectionError ( )
protected

Rolls for the failure chance of the sensor.

Returns
true if the sensor failed. false otherwise.
138 {
139 if (failureProbability == 0.0)
140 {
141 return false;
142 }
143 return GetStochastics()->GetUniformDistributed(0, 1) < failureProbability;
144 }
double ApplyMeasurementError ( double value )
protected

Applies a measurement error to a given value.

Parameters
[in] value Value to which the error gets applied.
Returns
New value including the measurement error.
147 {
148 if (failureProbability == 0.0)
149 {
150 return value;
151 }
152 return value * GetStochastics()->GetLogNormalDistributed(1.0, failureProbability);
153 }
osi3::SensorViewConfiguration GenerateSensorViewConfiguration ( )
protectedvirtual

Generates the basic SensorViewConfiguration.

Returns
SensorViewConfiguration for parametrization of Sensorview

Reimplemented in SensorGeometric2D.

156 {
157 osi3::SensorViewConfiguration viewConfiguration;
158
159 viewConfiguration.mutable_sensor_id()->set_value(static_cast<unsigned int>(id));
160
161 viewConfiguration.mutable_mounting_position()->mutable_orientation()->set_pitch(position.pitch);
162 viewConfiguration.mutable_mounting_position()->mutable_orientation()->set_roll(position.roll);
163 viewConfiguration.mutable_mounting_position()->mutable_orientation()->set_yaw(position.yaw);
164
165 viewConfiguration.mutable_mounting_position()->mutable_position()->set_x(position.longitudinal);
166 viewConfiguration.mutable_mounting_position()->mutable_position()->set_y(position.lateral);
167 viewConfiguration.mutable_mounting_position()->mutable_position()->set_z(position.height);
168
169 return viewConfiguration;
170 }

Here is the caller graph for this function:

polygon_t CalculateBoundingBox | ( | const osi3::Dimension3d | dimension,
 |  | const osi3::Vector3d | position,
 |  | const osi3::Orientation3d | orientation
 | ) |  |
staticprotected

Calculates the bounding box of an object from the osi information.

Parameters
[in] | dimension | osi dimension
[in] | position | osi position
[in] | orientation | osi orientation
[in] | distanceReferencePointToFront | distance from the reference point to the front
Returns
bounding box of object
173 {
174 double halfLength = dimension.length() / 2.0;
175 double halfWidth = dimension.width() / 2.0;
176 double rotation = orientation.yaw();
177
178 double x = position.x();
179 double y = position.y();
180
181
182 point_t boxPoints[]
183 {
184 {-halfLength, -halfWidth},
185 {-halfLength, halfWidth},
186 {halfLength, halfWidth},
187 {halfLength, -halfWidth},
188 {-halfLength, -halfWidth}
189 };
190
191 polygon_t box;
192 polygon_t boxTemp;
193 bg::append(box, boxPoints);
194
195 bt::translate_transformer<double, 2, 2> translate(x, y);
196
197 // rotation in mathematical negativ order (boost) -> invert to match
198 bt::rotate_transformer<bg::radian, double, 2, 2> rotate(-rotation);
199
200 bg::transform(box, boxTemp, rotate);
201 bg::transform(boxTemp, box, translate);
202 bg::correct(box);
203
204 return box;
205 }
polygon_t TransformPolygonToGlobalCoordinates | ( | polygon_t | polygon,
 |  | point_t | sensorPositionGlobal,
 |  | double | yaw
 | ) |  | const
 protected

Translates the polygon from local coordinates to global coordinates.

Parameters
[in] | polygon | polygon in local coordinates
[in] | sensorPositionGlobal | position of the sensor in global coordinates
[in] | yaw | yaw of the sensor in global coordinates
Returns
polygon in global coordinates
220 {
221 polygon_t tempBox;
222 polygon_t polygonGlobal;
223 bt::rotate_transformer<bg::radian, double, 2, 2> sensorRotation(-position.yaw - yaw);
224 bg::transform(polygon, tempBox, sensorRotation);
225 bt::translate_transformer<double, 2, 2> sensorPositionTranslate(sensorPositionGlobal.x(), sensorPositionGlobal.y());
226 bg::transform(tempBox, polygonGlobal, sensorPositionTranslate);
227
228 return polygonGlobal;
229 }
point_t TransformPointToLocalCoordinates | ( | point_t | point,
 |  | point_t | sensorPositionGlobal,
 |  | double | yaw
 | ) |  |
protectedvirtual

Translates a point from global coordinates to local coordinates.

Parameters
[in] | point | point in global coordinates
[in] | sensorPositionGlobal | position of the sensor in global coordinates
[in] | yaw | yaw of the sensor in global coordinates
Returns
point in local coordinates
208 {
209 point_t tempPoint;
210 point_t pointLocal;
211 bt::translate_transformer<double, 2, 2> sensorPositionTranslate(-sensorPositionGlobal.x(), -sensorPositionGlobal.y());
212 bg::transform(point, tempPoint, sensorPositionTranslate);
213 bt::rotate_transformer<bg::radian, double, 2, 2> sensorRotation(position.yaw + yaw);
214 bg::transform(tempPoint, pointLocal, sensorRotation);
215
216 return pointLocal;
217 }
point_t CalculateGlobalSensorPosition | ( | point_t | vehiclePosition,
 |  | double | yaw
 | ) |  | const
 protected

Calculates the position of the sensor in global coordinates.

Parameters
[in] | vehiclePosition | position of the vehicle in global coordinates
[in] | yaw | yaw of the vehicle in global coordinates
Returns
position of the sensor in global coordinates
232 {
233 point_t sensorPositionVehicle{position.longitudinal, position.lateral};
234 point_t sensorPositionGlobal;
235 point_t tempPoint;
236 bt::rotate_transformer<bg::radian, double, 2, 2> vehicleRotation(-yaw);
237 bg::transform(sensorPositionVehicle, tempPoint, vehicleRotation);
238 bt::translate_transformer<double, 2, 2> vehicleTranslate(vehiclePosition.x(), vehiclePosition.y());
239 bg::transform(tempPoint, sensorPositionGlobal, vehicleTranslate);
240
241 return sensorPositionGlobal;
242 }
point_t CalculateRelativeVector | ( | const point_t | absolute,
 |  | const point_t | own,
 |  | double | yaw
 | ) |  |
protectedvirtual

Calculates the relative velocity or acceleration between this vehicle and another in local vehicle coordinates.

Parameters
[in] | absolute | absolute velocity/acceleration of other vehicle in global coordinates
[in] | own | absolute velocity/acceleration of own vehicle in global coordinates
[in] | yaw | yaw of own vehicle in global coordinates
Returns
relative velocity/acceleration of other vehicle in vehicle coordinates
245 {
246 point_t difference{absolute};
247 bg::subtract_point(difference, own);
248 point_t result;
249 bt::rotate_transformer<bg::radian, double, 2, 2> sensorRotation(position.yaw + yaw);
250 bg::transform(difference, result, sensorRotation);
251 return result;
252 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: SensorGeometric2D Class Reference

Public Member Functions | Protected Member Functions | List of all members
SensorGeometric2D Class Reference
SensorObjectDetector

This file models a sensor which only detects agents in a 2D area (x/y) in front of the agent. More...

Public Member Functions

SensorGeometric2D (std::string componentName, bool isInit, int priority, int offsetTime, int responseTime, int cycleTime, StochasticsInterface *stochastics, WorldInterface *world, const ParameterInterface *parameters, PublisherInterface *const publisher, const CallbackInterface *callbacks, AgentInterface *agent)
SensorGeometric2D.cpp.
SensorDetectionResults DetectObjects ()
Calculate which objects are inside the detection field. More...
- Public Member Functions inherited from ObjectDetectorBase
ObjectDetectorBase (std::string componentName, bool isInit, int priority, int offsetTime, int responseTime, int cycleTime, StochasticsInterface *stochastics, WorldInterface *world, const ParameterInterface *parameters, PublisherInterface *const publisher, const CallbackInterface *callbacks, AgentInterface *agent)
ObjectDetectorBase.cpp.
void | UpdateOutput (int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
Update outputs. More...
const osi3::SensorData & | getSensorData ()

Protected Member Functions

osi3::SensorViewConfiguration | GenerateSensorViewConfiguration () override
Generates the SensorViewConfiguration to send the world data for filtering of the SensorView. More...
- Protected Member Functions inherited from ObjectDetectorBase
Position GetAbsolutePosition ()
Returns the absolute position of the sensor. More...
osi3::SensorData | ApplyLatency (int time, osi3::SensorData currentSensorData)
Apply the predefined latency to the detected results. More...
bool | HasDetectionError ()
Rolls for the failure chance of the sensor. More...
double | ApplyMeasurementError (double value)
Applies a measurement error to a given value. More...
polygon_t | TransformPolygonToGlobalCoordinates (polygon_t polygon, point_t sensorPositionGlobal, double yaw) const
Translates the polygon from local coordinates to global coordinates. More...
virtual point_t | TransformPointToLocalCoordinates (point_t point, point_t sensorPositionGlobal, double yaw)
Translates a point from global coordinates to local coordinates. More...
point_t | CalculateGlobalSensorPosition (point_t vehiclePosition, double yaw) const
Calculates the position of the sensor in global coordinates. More...
virtual point_t | CalculateRelativeVector (const point_t absolute, const point_t own, double yaw)
Calculates the relative velocity or acceleration between this vehicle and another in local vehicle coordinates. More...

Additional Inherited Members

- Static Protected Member Functions inherited from ObjectDetectorBase
static polygon_t CalculateBoundingBox (const osi3::Dimension3d dimension, const osi3::Vector3d position, const osi3::Orientation3d orientation)
Calculates the bounding box of an object from the osi information. More...

Detailed Description

This file models a sensor which only detects agents in a 2D area (x/y) in front of the agent.

This sensor does not consider height.

Member Function Documentation

SensorDetectionResults DetectObjects ( )

Calculate which objects are inside the detection field.

For further explanation of the calculation see the documentation

264 {
265 SensorDetectionResults results;
266 osi3::SensorViewConfiguration sensorViewConfig = GenerateSensorViewConfiguration();
267 auto sensorView = static_cast< OWL::Interfaces::WorldData*>(world->GetWorldData())->GetSensorView(sensorViewConfig, GetAgent()->GetId());
268
269 const auto hostVehicle = FindHostVehicleInSensorView(*sensorView);
270
271 const auto [sensorPositionGlobal, detectionField] = CreateSensorDetectionField(hostVehicle);
272 const auto [movingObjectsInDetectionField, stationaryObjectsInDetectionField] = GetObjectsInDetectionAreaFromSensorView(*sensorView,
273 sensorPositionGlobal,
274 detectionField);
275 if (enableVisualObstruction)
276 {
277 multi_polygon_t brightArea{CalcInitialBrightArea(sensorPositionGlobal)};
278 bg::correct(brightArea);
279
280 //Remove shadows from brightArea
281 ApplyVisualObstructionToDetectionArea(brightArea,
282 sensorPositionGlobal,
283 movingObjectsInDetectionField);
284 ApplyVisualObstructionToDetectionArea(brightArea,
285 sensorPositionGlobal,
286 stationaryObjectsInDetectionField);
287
288 std::tie(results.visibleMovingObjects, results.detectedMovingObjects) = CalcVisualObstruction(movingObjectsInDetectionField, brightArea);
289 std::tie(results.visibleStationaryObjects, results.detectedStationaryObjects) = CalcVisualObstruction(stationaryObjectsInDetectionField, brightArea);
290 }
291 else
292 {
293 std::transform(movingObjectsInDetectionField.begin(),
294 movingObjectsInDetectionField.end(),
295 std::back_inserter(results.visibleMovingObjects),
296 [](const auto movingObject) -> osi3::MovingObject
297 {
298 return *movingObject;
299 });
300 results.detectedMovingObjects = results.visibleMovingObjects;
301 std::transform(stationaryObjectsInDetectionField.begin(),
302 stationaryObjectsInDetectionField.end(),
303 std::back_inserter(results.visibleStationaryObjects),
304 [](const auto stationaryObject) -> osi3::StationaryObject
305 {
306 return *stationaryObject;
307 });
308 results.detectedStationaryObjects = results.visibleStationaryObjects;
309 }
310
311 const auto ownPosition = GetHostVehiclePosition(hostVehicle);
312 const auto yaw = hostVehicle->base().orientation().yaw();
313 const auto yawRate = hostVehicle->base().orientation_rate().yaw();
314 const point_t ownVelocity{hostVehicle->base().velocity().x(), hostVehicle->base().velocity().y()};
315 const point_t ownAcceleration{hostVehicle->base().acceleration().x(), hostVehicle->base().acceleration().y()};
316
317 for (const auto& object : results.detectedMovingObjects)
318 {
319 AddMovingObjectToSensorData(object, ownVelocity, ownAcceleration, ownPosition, yaw, yawRate);
320 }
321 for (const auto& object : results.detectedStationaryObjects)
322 {
323 AddStationaryObjectToSensorData(object, ownPosition, yaw);
324 }
325
326 return results;
327 }
SensorDetectionResults
Definition: sensorGeometric2D.h:33
SensorGeometric2D::GenerateSensorViewConfiguration
osi3::SensorViewConfiguration GenerateSensorViewConfiguration() override
Generates the SensorViewConfiguration to send the world data for filtering of the SensorView...
Definition: sensorGeometric2D.cpp:385
OWL::Interfaces::WorldData
This class contains the entire road network and all objects in the world.
Definition: WorldData.h:83

Here is the call graph for this function:

osi3::SensorViewConfiguration GenerateSensorViewConfiguration ( )
overrideprotectedvirtual

Generates the SensorViewConfiguration to send the world data for filtering of the SensorView.

Returns
SensorViewConfiguration for parametrization of Sensorview

Reimplemented from ObjectDetectorBase.

386 {
387 // The sensor has to specify an area which contains all objects of interest. To take objects on the edge of this area into account,
388 // an arbitrary margin is added deliberately, as no other specification is available at the moment.
389 constexpr double rangeBuffer = 20.0;
390 constexpr double fieldOfViewBuffer = 0.2;
391
392 osi3::SensorViewConfiguration viewConfiguration = ObjectDetectorBase::GenerateSensorViewConfiguration();
393 viewConfiguration.set_field_of_view_horizontal(openingAngleH + fieldOfViewBuffer);
394 viewConfiguration.set_range(detectionRange + rangeBuffer);
395
396 return viewConfiguration;
397 }
ObjectDetectorBase::GenerateSensorViewConfiguration
virtual osi3::SensorViewConfiguration GenerateSensorViewConfiguration()
Generates the basic SensorViewConfiguration.
Definition: objectDetectorBase.cpp:155

Here is the call graph for this function:

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SensorFusion

Classes
SensorFusion

This file models the SensorFusion. More...

Classes

class SensorFusionImplementation
This class is the SensorFusion module. More...

Detailed Description

This file models the SensorFusion.

This file models the SensorFusion which can be part of an agent. This module gets OSI SensorData of all sensors of the vehicle and forwards a combined SensorData to the driver assistance systems.

Inputs

Input variables:

name | meaning
sensorData | SensorData of a single sensor.

Input channel IDs:

Input Id | signal class | contained variables
0 | SensorDataSignal | sensorData

Outputs

Output variables:

name | meaning
out_sensorData | Combined SensorData from all sensors.

Output channel IDs:

Output Id | signal class | contained variables
0 | SensorDataSignal | out_sensorData
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: SensorFusionImplementation Class Reference

Public Member Functions | List of all members
SensorFusionImplementation Class Reference
SensorFusion

This class is the SensorFusion module. More...

Public Member Functions

SensorFusionImplementation (std::string componentName, bool isInit, int priority, int offsetTime, int responseTime, int cycleTime, StochasticsInterface *stochastics, WorldInterface *world, const ParameterInterface *parameters, PublisherInterface *const publisher, const CallbackInterface *callbacks, AgentInterface *agent)
SensorFusion.cpp.
virtual void | UpdateInput (int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)
Update Inputs. More...
void | UpdateOutput (int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
Update outputs. More...
virtual void | Trigger (int time)
Process data within component. More...

Detailed Description

This class is the SensorFusion module.

This class contains all logic regarding the sensor fusion.

Member Function Documentation

void UpdateInput | ( | int | localLinkId,
 |  | const std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update Inputs.

Function is called by framework when another component delivers a signal over a channel to this component (scheduler calls update taks of other component).

Refer to module description for input channels and input ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentInput"
[in] | data | Referenced signal (copied by sending component)
[in] | time | Current scheduling time
48 {
49 if(time != previousTimeStamp) {
50 out_sensorData.Clear();
51 previousTimeStamp = time;
52 }
53
54 std::stringstream log;
55 log << COMPONENTNAME << " (component " << GetComponentName() << ", agent " << GetAgent()->GetId() << ", input data for local link " << localLinkId << ": ";
56 LOG(CbkLogLevel::Debug, log.str());
57
58 const std::shared_ptr<SensorDataSignal const> signal = std::dynamic_pointer_cast<SensorDataSignal const>(data);
59 if(!signal)
60 {
61 const std::string msg = COMPONENTNAME + " invalid signaltype";
62 LOG(CbkLogLevel::Debug, msg);
63 throw std::runtime_error(msg);
64 }
65
66 out_sensorData.MergeFrom(signal->sensorData);
67 }
SensorDataSignal
Definition: sensorDataSignal.h:23
void UpdateOutput | ( | int | localLinkId,
 |  | std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |

Update outputs.

Function is called by framework when this Component.has to deliver a signal over a channel to another component (scheduler calls update task of this component).

Refer to module description for output channels and output ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentOutput"
[out] | data | Referenced signal (copied by this component)
[in] | time | Current scheduling time
70 {
71 Q_UNUSED(time);
72
73 std::stringstream log;
74 log << COMPONENTNAME << " (component " << GetComponentName() << ", agent " << GetAgent()->GetId() << ", output data for local link " << localLinkId << ": ";
75 LOG(CbkLogLevel::Debug, log.str());
76
77
78 if(localLinkId == 0)
79 {
80 // to any ADAS
81 try
82 {
83 data = std::make_shared<SensorDataSignal const>(
84 out_sensorData);
85 }
86 catch(const std::bad_alloc&)
87 {
88 const std::string msg = COMPONENTNAME + " could not instantiate signal";
89 LOG(CbkLogLevel::Debug, msg);
90 throw std::runtime_error(msg);
91 }
92 }
93 else
94 {
95 const std::string msg = COMPONENTNAME + " invalid link";
96 LOG(CbkLogLevel::Debug, msg);
97 throw std::runtime_error(msg);
98 }
99 }
void Trigger ( int time )
virtual

Process data within component.

Function is called by framework when the scheduler calls the trigger task of this component.

Refer to module description for information about the module's task.

Parameters
[in] time Current scheduling time
102 {
103 Q_UNUSED(time);
104 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SignalPrioritizer

Classes | Functions
SignalPrioritizer

Collects signals of same kind and relays the one with highest priority. More...

Classes

class SignalPrioritizerImplementation
This class manages the routing of signals to the sepcific components. More...

Functions

void | UpdateInput (int localLinkId, const Signal &signal, int time) override
Holds the signal if there are other with higher priority. More...
void | UpdateOutput (int localLinkId, Signal &signal, int time) override
Changes the signal to a signal on hold if there is still on on hold in the current time step. More...

Detailed Description

Collects signals of same kind and relays the one with highest priority.

This components acts as intersection between multiple modules, potentially setting the same signals. In such a case, the signal with the highest priority will be hold until UpdateOutput is invoked.

Example: UpdateInput (t=0): BrakeSignal SenderId=2, Priority=2 UpdateInput (t=0): BrakeSignal SenderId=3, Priority=5 UpdateInput (t=0): BrakeSignal SenderId=1, Priority=1 UpdateOutput (t=0): Transmit BrakeSignal SenderId=3

The priorities are set by means of the parameter interface providing a map of "ModuleIds" (sender) and "Priority" (largest priority wins).

Function Documentation

void UpdateInput | ( | int | localLinkId,
 |  | const Signal & | signal,
 |  | int | time
 | ) |  |
override

Holds the signal if there are other with higher priority.

Parameters
[in] | signal | Signal.
[in] | time | Timestamp in milliseconds.
58 {
59 Q_UNUSED(time);
60
61 const std::shared_ptr<ComponentStateSignalInterface const> componentSignal =
62 std::dynamic_pointer_cast<ComponentStateSignalInterface const>(signal);
63
64 if (componentSignal == nullptr)
65 {
66 // no input signal available
67 return;
68 }
69
70 if (senderPriorities.find(localLinkId) == senderPriorities.end())
71 {
72 Error("sender with id " + std::to_string(localLinkId) + " not registered in priority list");
73 }
74
75 holdSignals[localLinkId] = componentSignal;
76 }
void UpdateOutput | ( | int | localLinkId,
 |  | Signal & | signal,
 |  | int | time
 | ) |  |
override

Changes the signal to a signal on hold if there is still on on hold in the current time step.

Parameters
[out] | signal | Signal.
[in] | time | Timestamp in milliseconds.
100 {
101 Q_UNUSED(localLinkId);
102 Q_UNUSED(time);
103
104 std::shared_ptr<SignalInterface const> outputSignal = GetSignalWithHighestPriority();
105
106 if (outputSignal != nullptr)
107 {
108 signal = outputSignal;
109 }
110 else
111 {
112 signal = std::make_shared<ComponentStateSignal>(ComponentState::Undefined);
113 }
114 }
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: SignalPrioritizerImplementation Class Reference

Public Member Functions | List of all members
SignalPrioritizerImplementation Class Reference
SignalPrioritizer

This class manages the routing of signals to the sepcific components. More...

Public Member Functions

void | UpdateInput (int localLinkId, const Signal &signal, int time) override
Holds the signal if there are other with higher priority. More...
void | UpdateOutput (int localLinkId, Signal &signal, int time) override
Changes the signal to a signal on hold if there is still on on hold in the current time step. More...

Detailed Description

This class manages the routing of signals to the sepcific components.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: OpenPassMaster

OpenPassMaster

Detailed Description

This is the master module of the framework and it contains the main entry point of the framework.

These executeable is started by the GUI with or without an argument to set the masterConfig.xml file. It reads the masterConfig.xml and saves all options and information. Following this a slave executable is started with the options and information as agrument.

arguments

arguments | meaning
–config | Path to master configuration file. Working directory and "masterConfig.xml" by default.

files

file | description
OpenPassMaster.log | Default name for file containing all log messages (depending on the logLevel). Path and name are specified in masterConfig.xml.
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: EventNetwork

Files | Classes
EventNetwork

Files

file eventNetwork.h
The EventNetwork manages events and can trigger functions in different framework modules.

Classes

class EventNetwork
Implements the functionality of the interface. More...

Detailed Description

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: EventNetwork Class Reference

  • SimulationSlave
  • EventNetwork
Public Member Functions | List of all members
EventNetwork Class Referencefinal
EventNetwork

Implements the functionality of the interface. More...

Public Member Functions

virtual EventContainer | GetEvents (const EventDefinitions::EventCategory eventCategory) override
Returns the active events of a specific category. More...
virtual void | InsertEvent (SharedEvent event) override
Inserts an event for the manipulators. More...
virtual void | Clear () override
Clears the event maps and resets pointers.
virtual void | AddCollision (const int agentId) override
Adds a collision id to the RunResult. More...
virtual void | Initialize (RunResultInterface *runResult) override
Initalizes the EventNetwork. More...
void | InsertTrigger (const std::string &topic, std::unique_ptr< EventInterface > event) override
Add a trigger, which is being relayed to the components. More...
std::vector< EventInterface const * > | GetTrigger (const std::string &topic) const override
Returns a collection of active trigger. More...

Detailed Description

Implements the functionality of the interface.

Member Function Documentation

EventContainer GetEvents ( const EventDefinitions::EventCategory eventCategory )
overridevirtual

Returns the active events of a specific category.

Returns
List of active events.
24 {
25 if (auto iter = events.find(eventCategory); iter != events.end())
26 {
27 return iter->second;
28 }
29 return {};
30 }
void InsertEvent ( SharedEvent event )
overridevirtual

Inserts an event for the manipulators.

Parameters
[in] event Shared pointer of the event.
52 {
53 events[event->GetCategory()].push_back(event);
54 publisher.Publish(EventDefinitions::utils::GetAsString(event->GetCategory()),
55 openpass::publisher::LogEntry::FromEvent(event));
56 }
void AddCollision ( const int agentId )
overridevirtual

Adds a collision id to the RunResult.

Adds a collision id to the RunResult

Parameters
[in] agentId Id of the collision agent
65 {
66 if (runResult != nullptr)
67 {
68 runResult->AddCollisionId(agentId);
69 }
70 }
void Initialize ( RunResultInterface * runResult )
overridevirtual

Initalizes the EventNetwork.

Initalizes the EventNetwork.

Parameters
[in] runResult Pointer to the runResult.
73 {
74 this->runResult = runResult;
75 }
void InsertTrigger | ( | const std::string & | topic,
 |  | std::unique_ptr< EventInterface > | event
 | ) |  |
override

Add a trigger, which is being relayed to the components.

Parameters
topic | for identification of the specific trigger
event | The according event, which is being sent
47 {
48 trigger[identifier].push_back(std::move(event));
49 }
std::vector< EventInterface const * > GetTrigger ( const std::string & topic ) const
override

Returns a collection of active trigger.

Parameters
topic for identification of the specific triggers
Returns
Collection of active trigger
33 {
34 std::vector<EventInterface const *> matching_trigger;
35
36 if (auto iter = trigger.find(topic); iter != trigger.end())
37 {
38 const auto &found_trigger = iter->second;
39 matching_trigger.reserve(found_trigger.size());
40 std::transform(found_trigger.begin(), found_trigger.end(),
41 std::back_inserter(matching_trigger), [](const auto &t) { return t.get(); });
42 }
43 return matching_trigger;
44 }
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: EventDetector

Classes
EventDetector

This file contains the basic EventDetector functionality. More...

Classes

class | CollisionDetector
This class detectes wether a collision happen in the simulation. More...
class | EventDetectorCommonBase
This is the parent class for all EventDetectors providing the basic functionality. More...

Detailed Description

This file contains the basic EventDetector functionality.

This file contains the basic EventDetector functionality. An EventDetector acts as Trigger for specific events. Those events are then forwarded to the EventNetwork. The EventDetector uses its access to the world and the framework to find events. Each EventDetector can have its own cycle time.

External parameters

name | meaning
triggeringAgents | Determines what agents can trigger the EventDetector.
sequenceName | Name of the sequence the EventDetector belongs to.
agentGroupName | In case there are no triggeringAgents an EventDetector can trigger to a ceratin agent group.
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: CollisionDetector Class Reference

Public Member Functions | List of all members
CollisionDetector Class Reference
EventDetector

This class detectes wether a collision happen in the simulation. More...

Public Member Functions

virtual void | Trigger (int time)
Triggers the functionality of this class. More...
void | CalculateWorldObjectGeometry (const WorldObjectInterface *worldObject, const Common::Vector2d &position, std::array< Common::Vector2d, 4 > &resultCorners, std::array< Common::Vector2d, 2 > &resultNormals)
CalculateAgentGeometry Calculate the geometry of an agent and provide geometrical vectors. More...
void | GetWorldObjectGeometry (const WorldObjectInterface *worldObject, std::array< Common::Vector2d, 4 > &resultCorners, std::array< Common::Vector2d, 2 > &resultNormals)
GetAgentGeometry Retrieve geometrical vectors of the agent. More...
void | GetMinMax4 (std::array< double, 4 > &input, double &maxValue, double &minValue)
GetMinMax4 Retrieve the max and min value of an array of four. More...
void | GetMinMax2 (std::array< double, 2 > &input, double &maxValue, double &minValue)
GetMinMax2 Retrieve the max and min value of an array of two. More...
bool | CalculateDistOnBorder (const WorldObjectInterface *worldObject, int corner, double cornerDistance, double &result)
bool | CalculateIntersectionPoints (const WorldObjectInterface *agent, const WorldObjectInterface *other, bool &intersected, Common::Vector2d &intersectionPoint, double &otherDistanceFromCorner, int &otherFromCorner, double &agentDistanceFromInitial, Common::Vector2d &agentReferencePoint, Common::Vector2d &otherReferencePoint, size_t &agentPenetratingCorner)
bool | CalculatePointOfContact (AgentInterface *agent, const WorldObjectInterface *other, double &resultAgentDistOnBorder, double &resultOtherDistOnBorder, Common::Vector2d &resultAgentReferencePoint, Common::Vector2d &resultOtherReferencePoint)
bool | DetectCollision (const WorldObjectInterface *other, AgentInterface *agent, std::array< Common::Vector2d, NumberCorners > agentCorners, std::array< Common::Vector2d, NumberNormals > agentNormals)
- Public Member Functions inherited from EventDetectorCommonBase
virtual int | GetCycleTime () override
Returns the cycle time. More...
virtual void | Reset () override
Resets the initial state of the EventDetector.

Additional Inherited Members

- Protected Member Functions inherited from EventDetectorCommonBase
void Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message)
Log Provides callback to LOG() macro. More...

Detailed Description

This class detectes wether a collision happen in the simulation.

This class detects wether an agent collided with either another agent or a traffic object. In case a collision happend an event is created.

Member Function Documentation

void Trigger ( int time )
virtual

Triggers the functionality of this class.

Trigger gets called each cycle timestep. This function is repsonsible for creating events

Parameters
[in] time Current time.

Implements EventDetectorCommonBase.

538 {
539 // accumulate collisions
540 for (auto it = agents->cbegin(); it != agents->cend(); ++it)
541 {
542 AgentInterface *agent = it->second;
543 assert(agent != nullptr);
544
545 // calculate agent corners and normals
546 std::array<Common::Vector2d, NumberCorners> agentCorners;
547 std::array<Common::Vector2d, NumberNormals> agentNormals;
548 GetWorldObjectGeometry(agent, agentCorners, agentNormals);
549
550 for (auto otherIt = std::next(it); otherIt != agents->cend(); ++otherIt)
551 {
552 AgentInterface *other = otherIt->second;
553 if (!DetectCollision(other, agent, agentCorners, agentNormals))
554 {
555 continue;
556 }
557 else
558 {
559 // no separations given on any axis -> collision
560 DetectedCollisionWithAgent(time, agent, other);
561 }
562 }
563
564 // second loop to avoid comparing traffic objects with traffic objects
565 for (auto trafficObjectIt = trafficObjects->begin(); trafficObjectIt != trafficObjects->end(); ++trafficObjectIt)
566 {
567 const TrafficObjectInterface *otherObject = *trafficObjectIt;
568 if (!otherObject)
569 {
570 LOG(CbkLogLevel::Warning, "collision detection aborted");
571 throw std::runtime_error("Invalid other worldObject. Collision detection cancled.");
572 }
573 if (!DetectCollision(otherObject, agent, agentCorners, agentNormals))
574 {
575 continue;
576 }
577 else
578 {
579 DetectedCollisionWithObject(time, agent, otherObject);
580 }
581 }
582 }
583 }
CollisionDetector::GetWorldObjectGeometry
void GetWorldObjectGeometry(const WorldObjectInterface *worldObject, std::array< Common::Vector2d, 4 > &resultCorners, std::array< Common::Vector2d, 2 > &resultNormals)
GetAgentGeometry Retrieve geometrical vectors of the agent.
Definition: CollisionDetector.cpp:77
CollisionDetector::DetectCollision
bool DetectCollision(const WorldObjectInterface *other, AgentInterface *agent, std::array< Common::Vector2d, NumberCorners > agentCorners, std::array< Common::Vector2d, NumberNormals > agentNormals)
Definition: CollisionDetector.cpp:591

Here is the call graph for this function:

void CalculateWorldObjectGeometry | ( | const WorldObjectInterface * | worldObject,
 |  | const Common::Vector2d & | position,
 |  | std::array< Common::Vector2d, 4 > & | resultCorners,
 |  | std::array< Common::Vector2d, 2 > & | resultNormals
 | ) |  |

CalculateAgentGeometry Calculate the geometry of an agent and provide geometrical vectors.

Parameters
[in] | agent | agent reference
[out] | position | position vector
[out] | resultCorners | vector of corners
[out] | resultNormals | vector of normals
44 {
45 double agentLength = worldObject->GetLength();
46 double agentWidthHalf = worldObject->GetWidth() / 2;
47 double agentDistanceLeadingEdge = worldObject->GetDistanceReferencePointToLeadingEdge();
48 double agentAngle = worldObject->GetYaw();
49
50 // upper left corner if angle == 0
51 resultCorners[UpperLeft].x = agentDistanceLeadingEdge - agentLength;
52 resultCorners[UpperLeft].y = agentWidthHalf;
53
54 // upper right corner if angle == 0
55 resultCorners[UpperRight].x = agentDistanceLeadingEdge;
56 resultCorners[UpperRight].y = agentWidthHalf;
57
58 // lower right corner if angle == 0
59 resultCorners[LowerRight].x = agentDistanceLeadingEdge;
60 resultCorners[LowerRight].y = -agentWidthHalf;
61
62 // lower left corner if angle == 0
63 resultCorners[LowerLeft].x = agentDistanceLeadingEdge - agentLength;
64 resultCorners[LowerLeft].y = -agentWidthHalf;
65
66 // transform corners
67 for (size_t i = 0; i < NumberCorners; ++i)
68 {
69 resultCorners[i].Rotate(agentAngle);
70 resultCorners[i].Translate(position.x, position.y);
71 }
72
73 resultNormals[Right] = resultCorners[LowerRight] - resultCorners[LowerLeft]; // pointing right if angle == 0
74 resultNormals[Up] = resultCorners[UpperLeft] - resultCorners[LowerLeft]; // pointing up if angle == 0
75 }

Here is the caller graph for this function:

void GetWorldObjectGeometry | ( | const WorldObjectInterface * | worldObject,
 |  | std::array< Common::Vector2d, 4 > & | resultCorners,
 |  | std::array< Common::Vector2d, 2 > & | resultNormals
 | ) |  |

GetAgentGeometry Retrieve geometrical vectors of the agent.

Parameters
[in] | agent | agent reference
[out] | resultCorners | vector of corners
[out] | resultNormals | vector of normals
80 {
81 Common::Vector2d agentPosition(worldObject->GetPositionX(), worldObject->GetPositionY());
82 CalculateWorldObjectGeometry(worldObject, agentPosition, resultCorners, resultNormals);
83 }
CollisionDetector::CalculateWorldObjectGeometry
void CalculateWorldObjectGeometry(const WorldObjectInterface *worldObject, const Common::Vector2d &position, std::array< Common::Vector2d, 4 > &resultCorners, std::array< Common::Vector2d, 2 > &resultNormals)
CalculateAgentGeometry Calculate the geometry of an agent and provide geometrical vectors...
Definition: CollisionDetector.cpp:40
Common::Vector2d
Definition: vector2d.h:26

Here is the call graph for this function:

Here is the caller graph for this function:

void GetMinMax4 | ( | std::array< double, 4 > & | input,
 |  | double & | maxValue,
 |  | double & | minValue
 | ) |  |

GetMinMax4 Retrieve the max and min value of an array of four.

Parameters
[in] | input | input array with four double values
[out] | maxValue | maximal value
[out] | minValue | minimal value
88 {
89 maxValue = input[0];
90 minValue = input[0];
91
92 for (size_t index = 1; index < 4; ++index)
93 {
94 if (input[index] > maxValue)
95 {
96 maxValue = input[index];
97 }
98
99 if (input[index] < minValue)
100 {
101 minValue = input[index];
102 }
103 }
104 }
void GetMinMax2 | ( | std::array< double, 2 > & | input,
 |  | double & | maxValue,
 |  | double & | minValue
 | ) |  |

GetMinMax2 Retrieve the max and min value of an array of two.

Parameters
[in] | input | input array with two double values
[out] | maxValue | maximal value
[out] | minValue | minimal value
109 {
110 maxValue = std::max(input[0], input[1]);
111 minValue = std::min(input[0], input[1]);
112 }
bool CalculateDistOnBorder | ( | const WorldObjectInterface * | worldObject,
 |  | int | corner,
 |  | double | cornerDistance,
 |  | double & | result
 | ) |  |

Calculates distance of point of impact based on agent geometry.

Parameters
[in] | agent | pointer to agent
[in] | corner | corner from which cornerDistance is measured (clockwise)
[in] | cornerDistance | distance from previous corner to point of impact
[out] | result | distance from upper left corner on agent border to point of impact
Returns
true for success
118 {
119 double distance = 0;
120
121 if (UpperLeft < corner)
122 {
123 distance += worldObject->GetLength();
124 }
125 else
126 {
127 distance += cornerDistance * worldObject->GetLength();
128 result = distance;
129 return true;
130 }
131
132 if (UpperRight < corner)
133 {
134 distance += worldObject->GetWidth();
135 }
136 else
137 {
138 distance += cornerDistance * worldObject->GetWidth();
139 result = distance;
140 return true;
141 }
142
143 if (LowerRight < corner)
144 {
145 distance += worldObject->GetLength();
146 }
147 else
148 {
149 distance += cornerDistance * worldObject->GetLength();
150 result = distance;
151 return true;
152 }
153
154 assert(LowerLeft >= corner);
155
156 distance += cornerDistance * worldObject->GetWidth();
157 result = distance;
158 return true;
159 }

Here is the caller graph for this function:

bool CalculateIntersectionPoints | ( | const WorldObjectInterface * | agent,
 |  | const WorldObjectInterface * | other,
 |  | bool & | intersected,
 |  | Common::Vector2d & | intersectionPoint,
 |  | double & | otherDistanceFromCorner,
 |  | int & | otherFromCorner,
 |  | double & | agentDistanceFromInitial,
 |  | Common::Vector2d & | agentReferencePoint,
 |  | Common::Vector2d & | otherReferencePoint,
 |  | size_t & | agentPenetratingCorner
 | ) |  |

Calculates parameters of intersection point

The velocity of the first agent is transformed relatively to the second agent whose position is kept constant. After this transformation each corner of the fist agent is tested for collision separately. The corner which penetrates first into the body of the second agent determines the result.

Parameters
[in] | agent | pointer to first agent
[in] | other | pointer to second agent
[out] | intersectionPoint | point of intersection
[out] | intersected | indicates if intersection occurred
[out] | otherDistanceFromCorner | indicates distance on border of second agent where first agent penetrated (measured clockwise from previous corner)
[out] | otherFromCorner | number of start corner of edge where first agent penetrated (counted clockwise)
[out] | agentDistanceFromInitial | scaling value of direction vector until first agent penetrates into second agent (measured from initial position of first agent after relative transformation)
[out] | agentReferencePoint | position of reference point of first agent at point of collision
[out] | otherReferencePoint | position of reference point of second agent at point of collision
[out] | agentPenetratingCorner | corner of first agent which penetrated into second agent
Returns
indicates if intersection point could be calculated correctly
172 {
173 // reduce problem of two moving agents into problem of one moving agent:
174 // add translation of other agent relative to translation of first agent
175 // and assume no movement of other agent
176 Common::Vector2d otherVelocityLongitudinal(other->GetVelocity(), 0);
177 Common::Vector2d otherVelocityLateral(0, 0);
178 double otherYawAngle = other->GetYaw();
179 otherVelocityLongitudinal.Rotate(otherYawAngle);
180 otherVelocityLateral.Rotate(otherYawAngle);
181 Common::Vector2d otherVelocity = otherVelocityLongitudinal + otherVelocityLateral;
182
183 Common::Vector2d agentVelocityLongitudinal(agent->GetVelocity(), 0);
184 Common::Vector2d agentVelocityLateral(0, 0);
185 double agentYawAngle = agent->GetYaw();
186 agentVelocityLongitudinal.Rotate(agentYawAngle);
187 agentVelocityLateral.Rotate(agentYawAngle);
188 Common::Vector2d agentVelocity = agentVelocityLongitudinal + agentVelocityLateral;
189 Common::Vector2d agentRelativeVelocity = agentVelocity;
190
191 if (0 == otherVelocity.x && 0 == otherVelocity.y && 0 == agentRelativeVelocity.x && 0 == agentRelativeVelocity.y)
192 {
193 LOG(CbkLogLevel::Warning, +"calculation of point of contact not possible since velocities of both agents are 0"
194 " (this could happen for example if agents are spawned with overlaps)");
195 return false;
196 }
197
198 agentRelativeVelocity.Sub(otherVelocity);
199
200 if (agentRelativeVelocity.Length() == 0)
201 {
202 LOG(CbkLogLevel::Warning, +"calculation of point of contact not possible since velocities of both agents are the same"
203 " (this could happen for example if agents are spawned with overlaps)");
204 return false;
205 }
206
207 // agentRelativeVelocity now represents the normed moving direction of the first
208 // agent to relative the second agent.
209
210 // calculate points of intersection (moving first agent only)
211
212 // calculate (arbitrary) initial position where still no collision occurs
213 double otherLength = other->GetLength();
214 double otherWidth = other->GetWidth();
215 double agentLength = agent->GetLength();
216 double agentWidth = agent->GetWidth();
217 double distanceLength = otherLength + otherWidth + agentLength + agentWidth;
218 double distanceTime = distanceLength / agentRelativeVelocity.Length();
219
220 Common::Vector2d otherInitialPosition(other->GetPositionX(), other->GetPositionY());
221 Common::Vector2d agentPosition(agent->GetPositionX(), agent->GetPositionY());
222 Common::Vector2d agentInitialPosition = agentPosition - agentRelativeVelocity * distanceTime;
223 // otherInitialPosition and agentInitialPosition now represent the initial starting
224 // position prior to collision
225 // agentPosition now represents the position at the time of collision detection
226
227 std::array<Common::Vector2d, NumberCorners> otherInitialCorners;
228 std::array<Common::Vector2d, NumberNormals> otherInitialNormals;
229 CalculateWorldObjectGeometry(other, otherInitialPosition, otherInitialCorners, otherInitialNormals);
230
231 std::array<Common::Vector2d, NumberCorners> agentInitialCorners;
232 std::array<Common::Vector2d, NumberNormals> agentInitialNormals;
233 CalculateWorldObjectGeometry(agent, agentInitialPosition, agentInitialCorners, agentInitialNormals);
234
235 /*
236 * calculation of intersection point
237 * trajectory line of first agent = (ax, ay) * s + (bx, by)
238 * edge of second other agent = (cx, cy) * t + (dx, dy)
239 *
240 * |ax -cx| * |s| = |dx - bx|
241 * |ay -cy| * |t| = |dy - by|
242 * -> rule of cramer:
243 * det = cx*ay - cy*ax
244 * s = ((dy-by)*cx - (dx-bx)*cy) / det
245 * t = ((dy-by)*ax - (dx-bx)*ay) / det
246 *
247 * ax, ay: agentDirection.x/.y
248 * bx, by: agentInitialCorners[].x/.y
249 * cx, cy: otherEdgeDirection.x/.y
250 * dx, dy: otherInitialCorners[].x/.y
251 */
252 Common::Vector2d agentDirection = agentPosition - agentInitialPosition;
253 Common::Vector2d otherEdgeDirection;
254 double det;
255
256 intersected = false;
257 agentDistanceFromInitial = std::numeric_limits<double>::max();
258
259 for (size_t corner = 0; corner < NumberCorners; ++corner) // for each corner in agentInitialCorners[]
260 {
261 // intersection point with upper edge
262 otherEdgeDirection = otherInitialCorners[UpperRight] - otherInitialCorners[UpperLeft];
263 det = otherEdgeDirection.x * agentDirection.y - otherEdgeDirection.y * agentDirection.x;
264 if (0 != det)
265 {
266 double s = ((otherInitialCorners[UpperLeft].y - agentInitialCorners[corner].y) * otherEdgeDirection.x -
267 (otherInitialCorners[UpperLeft].x - agentInitialCorners[corner].x) * otherEdgeDirection.y) /
268 det;
269 double t = ((otherInitialCorners[UpperLeft].y - agentInitialCorners[corner].y) * agentDirection.x -
270 (otherInitialCorners[UpperLeft].x - agentInitialCorners[corner].x) * agentDirection.y) /
271 det;
272 if (0.0 <= s && 1.0 >= s && 0.0 <= t && 1.0 >= t) // within bounds of edge
273 {
274 double tmpDistance = (agentDirection * s).Length();
275 if (agentDistanceFromInitial > tmpDistance)
276 {
277 intersected = true;
278 agentDistanceFromInitial = tmpDistance;
279 agentPenetratingCorner = corner;
280 otherDistanceFromCorner = t;
281 otherFromCorner = UpperLeft;
282
283 // calculate untransformed point of impact
284 double fraction = (agentDirection.Length() - tmpDistance) / agentDirection.Length();
285 agentReferencePoint = agentPosition - agentVelocity * distanceTime * fraction;
286 otherReferencePoint = otherInitialPosition - otherVelocity * distanceTime * fraction;
287
288 // calculate intersection point
289 std::array<Common::Vector2d, NumberCorners> otherIntersectionCorners;
290 std::array<Common::Vector2d, NumberNormals> otherIntersectionNormals;
291 CalculateWorldObjectGeometry(other, otherReferencePoint, otherIntersectionCorners, otherIntersectionNormals);
292 intersectionPoint = otherIntersectionCorners[UpperLeft] + otherEdgeDirection * t; // yaw angle is kept constant
293 }
294 }
295 }
296
297 // intersection point with right edge
298 otherEdgeDirection = otherInitialCorners[LowerRight] - otherInitialCorners[UpperRight];
299 det = otherEdgeDirection.x * agentDirection.y - otherEdgeDirection.y * agentDirection.x;
300 if (0 != det)
301 {
302 double s = ((otherInitialCorners[UpperRight].y - agentInitialCorners[corner].y) * otherEdgeDirection.x -
303 (otherInitialCorners[UpperRight].x - agentInitialCorners[corner].x) * otherEdgeDirection.y) /
304 det;
305 double t = ((otherInitialCorners[UpperRight].y - agentInitialCorners[corner].y) * agentDirection.x -
306 (otherInitialCorners[UpperRight].x - agentInitialCorners[corner].x) * agentDirection.y) /
307 det;
308 if (0.0 <= s && 1.0 >= s && 0.0 <= t && 1.0 >= t) // within bounds of edge
309 {
310 double tmpDistance = (agentDirection * s).Length();
311 if (agentDistanceFromInitial > tmpDistance)
312 {
313 intersected = true;
314 agentDistanceFromInitial = tmpDistance;
315 agentPenetratingCorner = corner;
316 otherDistanceFromCorner = t;
317 otherFromCorner = UpperRight;
318
319 // calculate untransformed point of impact
320 double fraction = (agentDirection.Length() - tmpDistance) / agentDirection.Length();
321 agentReferencePoint = agentPosition - agentVelocity * distanceTime * fraction;
322 otherReferencePoint = otherInitialPosition - otherVelocity * distanceTime * fraction;
323
324 // calculate intersection point
325 std::array<Common::Vector2d, NumberCorners> otherIntersectionCorners;
326 std::array<Common::Vector2d, NumberNormals> otherIntersectionNormals;
327 CalculateWorldObjectGeometry(other, otherReferencePoint, otherIntersectionCorners, otherIntersectionNormals);
328 intersectionPoint = otherIntersectionCorners[UpperRight] + otherEdgeDirection * t; // yaw angle is kept constant
329 }
330 }
331 }
332
333 // intersection point with lower edge
334 otherEdgeDirection = otherInitialCorners[LowerLeft] - otherInitialCorners[LowerRight];
335 det = otherEdgeDirection.x * agentDirection.y - otherEdgeDirection.y * agentDirection.x;
336 if (0 != det)
337 {
338 double s = ((otherInitialCorners[LowerRight].y - agentInitialCorners[corner].y) * otherEdgeDirection.x -
339 (otherInitialCorners[LowerRight].x - agentInitialCorners[corner].x) * otherEdgeDirection.y) /
340 det;
341 double t = ((otherInitialCorners[LowerRight].y - agentInitialCorners[corner].y) * agentDirection.x -
342 (otherInitialCorners[LowerRight].x - agentInitialCorners[corner].x) * agentDirection.y) /
343 det;
344 if (0.0 <= s && 1.0 >= s && 0.0 <= t && 1.0 >= t) // within bounds of edge
345 {
346 double tmpDistance = (agentDirection * s).Length();
347 if (agentDistanceFromInitial > tmpDistance)
348 {
349 intersected = true;
350 agentDistanceFromInitial = tmpDistance;
351 agentPenetratingCorner = corner;
352 otherDistanceFromCorner = t;
353 otherFromCorner = LowerRight;
354
355 // calculate untransformed point of impact
356 double fraction = (agentDirection.Length() - tmpDistance) / agentDirection.Length();
357 agentReferencePoint = agentPosition - agentVelocity * distanceTime * fraction;
358 otherReferencePoint = otherInitialPosition - otherVelocity * distanceTime * fraction;
359
360 // calculate intersection point
361 std::array<Common::Vector2d, NumberCorners> otherIntersectionCorners;
362 std::array<Common::Vector2d, NumberNormals> otherIntersectionNormals;
363 CalculateWorldObjectGeometry(other, otherReferencePoint, otherIntersectionCorners, otherIntersectionNormals);
364 intersectionPoint = otherIntersectionCorners[LowerRight] + otherEdgeDirection * t; // yaw angle is kept constant
365 }
366 }
367 }
368
369 // intersection point with left edge
370 otherEdgeDirection = otherInitialCorners[UpperLeft] - otherInitialCorners[LowerLeft];
371 det = otherEdgeDirection.x * agentDirection.y - otherEdgeDirection.y * agentDirection.x;
372 if (0 != det)
373 {
374 double s = ((otherInitialCorners[LowerLeft].y - agentInitialCorners[corner].y) * otherEdgeDirection.x -
375 (otherInitialCorners[LowerLeft].x - agentInitialCorners[corner].x) * otherEdgeDirection.y) /
376 det;
377 double t = ((otherInitialCorners[LowerLeft].y - agentInitialCorners[corner].y) * agentDirection.x -
378 (otherInitialCorners[LowerLeft].x - agentInitialCorners[corner].x) * agentDirection.y) /
379 det;
380 if (0.0 <= s && 1.0 >= s && 0.0 <= t && 1.0 >= t) // within bounds of edge
381 {
382 double tmpDistance = (agentDirection * s).Length();
383 if (agentDistanceFromInitial > tmpDistance)
384 {
385 intersected = true;
386 agentDistanceFromInitial = tmpDistance;
387 agentPenetratingCorner = corner;
388 otherDistanceFromCorner = t;
389 otherFromCorner = LowerLeft;
390
391 // calculate untransformed point of impact
392 double fraction = (agentDirection.Length() - tmpDistance) / agentDirection.Length();
393 agentReferencePoint = agentPosition - agentVelocity * distanceTime * fraction;
394 otherReferencePoint = otherInitialPosition - otherVelocity * distanceTime * fraction;
395
396 // calculate intersection point
397 std::array<Common::Vector2d, NumberCorners> otherIntersectionCorners;
398 std::array<Common::Vector2d, NumberNormals> otherIntersectionNormals;
399 CalculateWorldObjectGeometry(other, otherReferencePoint, otherIntersectionCorners, otherIntersectionNormals);
400 intersectionPoint = otherIntersectionCorners[LowerLeft] + otherEdgeDirection * t; // yaw angle is kept constant
401 }
402 }
403 }
404 } // for each corner
405
406 return true;
407 }
Common::Vector2d::Length
double Length() const noexcept
Definition: vector2d.h:167
CollisionDetector::CalculateWorldObjectGeometry
void CalculateWorldObjectGeometry(const WorldObjectInterface *worldObject, const Common::Vector2d &position, std::array< Common::Vector2d, 4 > &resultCorners, std::array< Common::Vector2d, 2 > &resultNormals)
CalculateAgentGeometry Calculate the geometry of an agent and provide geometrical vectors...
Definition: CollisionDetector.cpp:40
Common::Vector2d
Definition: vector2d.h:26
Common::Vector2d::Sub
constexpr void Sub(const Vector2d &in) noexcept
Definition: vector2d.h:110

Here is the call graph for this function:

Here is the caller graph for this function:

bool CalculatePointOfContact | ( | AgentInterface * | agent,
 |  | const WorldObjectInterface * | other,
 |  | double & | resultAgentDistOnBorder,
 |  | double & | resultOtherDistOnBorder,
 |  | Common::Vector2d & | resultAgentReferencePoint,
 |  | Common::Vector2d & | resultOtherReferencePoint
 | ) |  |

Calculates parameters of point of contact

Parameters
[in] | agent | pointer to agent
[in] | other | pointer to other agent
[out] | resultAgentDistOnBorder | distance of point of contact on agent border (counted clockwise from upper left corner)
[out] | resultOtherDistOnBorder | distance of point of contact on other agents border (counted clockwise from upper left corner)
[out] | resultAgentReferencePoint | position of center of gravity of agent at point of contact
[out] | resultOtherReferencePoint | position of center of gravity of agent at point of contact
Returns
indicates if impact parameters could be calculated correctly
415 {
416 bool agentIntersected; // is agent intersected at all
417 Common::Vector2d agentIntersectionPoint; // coordinates of intersection point
418 double agentDistanceFromCorner; // distance from previous corner of intersected edge
419 int agentFromCorner; // starting corner for measuring distance on edge
420 double otherDistanceFromInitial; // distance of other moving agent from it's non-colliding start position
421 size_t otherPenetratingCorner; // corner of other agent which penetrated first
422 Common::Vector2d movingOtherReferencePoint; // ReferencePoint of agent at point of collision
423 Common::Vector2d penetratedAgentReferencePoint; // ReferencePoint of other at point of collision
424
425 if (!CalculateIntersectionPoints(other,
426 agent,
427 agentIntersected,
428 agentIntersectionPoint,
429 agentDistanceFromCorner,
430 agentFromCorner,
431 otherDistanceFromInitial,
432 movingOtherReferencePoint,
433 penetratedAgentReferencePoint,
434 otherPenetratingCorner))
435 {
436 return false;
437 }
438
439 bool otherIntersected;
440 Common::Vector2d otherIntersectionPoint;
441 double otherDistanceFromCorner;
442 int otherFromCorner;
443 double agentDistanceFromInitial;
444 size_t agentPenetratingCorner;
445 Common::Vector2d movingAgentReferencePoint;
446 Common::Vector2d penetratedOtherReferencePoint;
447
448 if (!CalculateIntersectionPoints(agent,
449 other,
450 otherIntersected,
451 otherIntersectionPoint,
452 otherDistanceFromCorner,
453 otherFromCorner,
454 agentDistanceFromInitial,
455 movingAgentReferencePoint,
456 penetratedOtherReferencePoint,
457 agentPenetratingCorner))
458 {
459 return false;
460 }
461
462 if (agentIntersected == 0 && otherIntersected == 0)
463 {
464 assert(agentIntersected || otherIntersected);
465 }
466
467 if (agentIntersected && !otherIntersected)
468 {
469 if (!CalculateDistOnBorder(agent, agentFromCorner, agentDistanceFromCorner, resultAgentDistOnBorder))
470 {
471 return false;
472 }
473
474 if (!CalculateDistOnBorder(other, otherPenetratingCorner, 0, resultOtherDistOnBorder))
475 {
476 return false;
477 }
478
479 resultAgentReferencePoint = penetratedAgentReferencePoint;
480 resultOtherReferencePoint = movingOtherReferencePoint;
481 }
482 else if (!agentIntersected && otherIntersected)
483 {
484 if (!CalculateDistOnBorder(agent, agentPenetratingCorner, 0, resultAgentDistOnBorder))
485 {
486 return false;
487 }
488
489 if (!CalculateDistOnBorder(other, otherFromCorner, otherDistanceFromCorner, resultOtherDistOnBorder))
490 {
491 return false;
492 }
493
494 resultAgentReferencePoint = movingAgentReferencePoint;
495 resultOtherReferencePoint = penetratedOtherReferencePoint;
496 }
497 else
498 {
499 // decide which agent entered first into body of other agent
500 if (agentDistanceFromInitial < otherDistanceFromInitial)
501 {
502 // agent corner penetrated first into body of other
503 if (!CalculateDistOnBorder(agent, agentPenetratingCorner, 0, resultAgentDistOnBorder))
504 {
505 return false;
506 }
507
508 if (!CalculateDistOnBorder(other, otherFromCorner, otherDistanceFromCorner, resultOtherDistOnBorder))
509 {
510 return false;
511 }
512
513 resultAgentReferencePoint = movingAgentReferencePoint;
514 resultOtherReferencePoint = penetratedOtherReferencePoint;
515 }
516 else
517 {
518 // other corner penetrated first into body of agent
519 if (!CalculateDistOnBorder(agent, agentFromCorner, agentDistanceFromCorner, resultAgentDistOnBorder))
520 {
521 return false;
522 }
523
524 if (!CalculateDistOnBorder(other, otherPenetratingCorner, 0, resultOtherDistOnBorder))
525 {
526 return false;
527 }
528
529 resultAgentReferencePoint = penetratedAgentReferencePoint;
530 resultOtherReferencePoint = movingOtherReferencePoint;
531 }
532 }
533
534 return true;
535 }
Common::Vector2d
Definition: vector2d.h:26
CollisionDetector::CalculateDistOnBorder
bool CalculateDistOnBorder(const WorldObjectInterface *worldObject, int corner, double cornerDistance, double &result)
Definition: CollisionDetector.cpp:114
CollisionDetector::CalculateIntersectionPoints
bool CalculateIntersectionPoints(const WorldObjectInterface *agent, const WorldObjectInterface *other, bool &intersected, Common::Vector2d &intersectionPoint, double &otherDistanceFromCorner, int &otherFromCorner, double &agentDistanceFromInitial, Common::Vector2d &agentReferencePoint, Common::Vector2d &otherReferencePoint, size_t &agentPenetratingCorner)
Definition: CollisionDetector.cpp:162

Here is the call graph for this function:

bool DetectCollision | ( | const WorldObjectInterface * | other,
 |  | AgentInterface * | agent,
 |  | std::array< Common::Vector2d, NumberCorners > | agentCorners,
 |  | std::array< Common::Vector2d, NumberNormals > | agentNormals
 | ) |  |

Check For Collision between worldObjects

Parameters
[in] | other | pointer to worldObject
[in] | agent | pointer to agent
[in] | agentCorners | agent corners
[in] | agentNormals | agent normals
Returns
true when collision detected
599 {
600 if (IsInVector(agent->GetCollisionPartners(), std::make_pair(other->GetType(), other->GetId())))
601 {
602 return false;
603 }
604
605 // calculate other corners and normals
606 std::array<Common::Vector2d, NumberCorners> otherCorners;
607 std::array<Common::Vector2d, NumberNormals> otherNormals;
608 GetWorldObjectGeometry(other, otherCorners, otherNormals);
609
610 // quick check
611 double quickDistance = agent->GetLength() + agent->GetWidth() + other->GetLength() + other->GetWidth();
612 if (fabs(agentCorners[UpperLeft].x - otherCorners[UpperLeft].x) > quickDistance ||
613 fabs(agentCorners[UpperLeft].y - otherCorners[UpperLeft].y) > quickDistance)
614 {
615 return false;
616 }
617
618 return DetectIntersectionOfTwoWorldObjects(agent, agentNormals, agentCorners, other, otherNormals, otherCorners);
619 }
CollisionDetector::GetWorldObjectGeometry
void GetWorldObjectGeometry(const WorldObjectInterface *worldObject, std::array< Common::Vector2d, 4 > &resultCorners, std::array< Common::Vector2d, 2 > &resultNormals)
GetAgentGeometry Retrieve geometrical vectors of the agent.
Definition: CollisionDetector.cpp:77

Here is the call graph for this function:

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: EventDetectorCommonBase Class Reference

Public Member Functions | Protected Member Functions | List of all members
EventDetectorCommonBase Class Referenceabstract
EventDetector

This is the parent class for all EventDetectors providing the basic functionality. More...

Public Member Functions

void | Trigger (int time) override=0
Triggers the functionality of this class. More...
virtual int | GetCycleTime () override
Returns the cycle time. More...
virtual void | Reset () override
Resets the initial state of the EventDetector.

Protected Member Functions

void Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message)
Log Provides callback to LOG() macro. More...

Detailed Description

This is the parent class for all EventDetectors providing the basic functionality.

Member Function Documentation

void Trigger ( int time )
overridepure virtual

Triggers the functionality of this class.

Trigger gets called each cycle timestep. This function is repsonsible for creating events

Parameters
[in] time Current time.

Implemented in CollisionDetector.

int GetCycleTime ( )
overridevirtual

Returns the cycle time.

Returns
cycle time.
18 {
19 return cycleTime;
20 }
void Log | ( | CbkLogLevel | logLevel,
 |  | const char * | file,
 |  | int | line,
 |  | const std::string & | message
 | ) |  |
protected

Log Provides callback to LOG() macro.

Parameters
[in] | logLevel | Importance of log
[in] | file | Name of file where log is called
[in] | line | Line within file where log is called
[in] | message | Message to log
31 {
32 if(callbacks)
33 {
34 callbacks->Log(logLevel,
35 file,
36 line,
37 message);
38 }
39 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Manipulator

Classes
Manipulator

This file contains the basic Manipulator functionality. More...

Classes

class | CollisionManipulator
This class notifies all relevant modules about the collision. More...
class | ComponentStateChangeManipulator
This class toggles an assistance system. More...
class | LaneChangeManipulator
This class removes an agent. More...
class | ManipulatorCommonBase
This is the parent class for all Manipulators providing the basic functionality. More...
class | NoOperationManipulator
This class is a manipulator, that doesn't trigger any action and solely returns the event. It existes to met the OpenSCENARIO conventions. More...
class | RemoveAgentsManipulator
This class removes an agent. More...
class | SpeedActionManipulator
This class emits the SpeedActionEvent. More...
class | CollisionDetectionPostCrash
Collision component that calculates post-crash dynamics. More...
class | TrajectoryManipulator
This manipulator sets a trajectory for an agent. More...

Detailed Description

This file contains the basic Manipulator functionality.

This file contains the basic Manipulator functionality. A Manipulator acts upon a specific event. The Manipulator usually influences agents or framework modules. Each Manipulator can have its own cycle time.

External parameters

name | meaning
eventTypes | Event types which trigger the manipulator.
actorNames | Names of acting agents.
sequenceName | Name of the sequence the Manipulator belongs to.
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: CollisionManipulator Class Reference

Classes | Public Member Functions | List of all members
CollisionManipulator Class Reference
Manipulator

This class notifies all relevant modules about the collision. More...

Public Member Functions

virtual void | Trigger (int time) override
Triggers the functionality of this class. More...
- Public Member Functions inherited from ManipulatorCommonBase
virtual int | GetCycleTime ()
Returns the cycle time. More...

Additional Inherited Members

- Protected Member Functions inherited from ManipulatorCommonBase
void Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message)
Log Provides callback to LOG() macro. More...

Detailed Description

This class notifies all relevant modules about the collision.

This class notifies the event network and the colliding agents about the collision.

Member Function Documentation

void Trigger ( int time )
overridevirtual

Triggers the functionality of this class.

Trigger gets called each cycle timestep. This function is repsonsible for creating events

Parameters
[in] time Current time.

Implements ManipulatorCommonBase.

34 {
35 for (std::shared_ptr<EventInterface> eventInterface : GetEvents())
36 {
37 if (auto event = std::dynamic_pointer_cast<openpass::events::CollisionEvent>(eventInterface))
38 {
39 AgentInterface *collisionAgent = world->GetAgent(event->collisionAgentId);
40
41 eventNetwork->AddCollision(event->collisionAgentId);
42
43 if (event->collisionWithAgent)
44 {
45 AgentInterface *collisionOpponent = world->GetAgent(event->collisionOpponentId);
46 UpdateCollision(collisionAgent, collisionOpponent);
47 eventNetwork->AddCollision(event->collisionOpponentId);
48
49 const auto crashInfo = CalculateCrash(collisionAgent, collisionOpponent);
50 PublishCrash(event, crashInfo);
51 }
52 else
53 {
54 const auto pair = std::make_pair(ObjectTypeOSI::Object, event->collisionOpponentId);
55 for (auto partner : collisionAgent->GetCollisionPartners())
56 {
57 if (partner.first == ObjectTypeOSI::Vehicle)
58 {
59 AgentInterface *partnerAgent = world->GetAgent(partner.second);
60 partnerAgent->UpdateCollision(pair);
61 }
62 }
63
64 collisionAgent->UpdateCollision(pair);
65 }
66 }
67 }
68 }
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: ComponentStateChangeManipulator Class Reference

Public Member Functions | List of all members
ComponentStateChangeManipulator Class Reference
Manipulator

This class toggles an assistance system. More...

Public Member Functions

virtual void | Trigger (int time) override
Triggers the functionality of this class. More...
- Public Member Functions inherited from ManipulatorCommonBase
virtual int | GetCycleTime ()
Returns the cycle time. More...

Additional Inherited Members

- Protected Member Functions inherited from ManipulatorCommonBase
void Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message)
Log Provides callback to LOG() macro. More...

Detailed Description

This class toggles an assistance system.

This manipulator toggles the max state of a component Therefore it needs the name of the component and the state in which it should be put.

Member Function Documentation

void Trigger ( int time )
overridevirtual

Triggers the functionality of this class.

Trigger gets called each cycle timestep. This function is repsonsible for creating events

Parameters
[in] time Current time.

Implements ManipulatorCommonBase.

75 {
76 for (const auto &eventInterface : GetEvents())
77 {
78 const auto &triggeringEvent = std::dynamic_pointer_cast<openpass::events::OpenScenarioEvent>(eventInterface);
79
80 auto trigger = std::make_unique<openpass::events::ComponentStateChangeEvent>(time, eventName, COMPONENTNAME,
81 triggeringEvent->triggeringAgents,
82 triggeringEvent->actingAgents,
83 componentName, componentState);
84
85 eventNetwork->InsertTrigger(openpass::events::ComponentStateChangeEvent::TOPIC, std::move(trigger));
86 }
87 }
openpass::events::BasicEvent
Definition: basicEvent.h:35
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: LaneChangeManipulator Class Reference

Public Member Functions | List of all members
LaneChangeManipulator Class Reference
Manipulator

This class removes an agent. More...

Public Member Functions

virtual void | Trigger (int time) override
Triggers the functionality of this class. More...
- Public Member Functions inherited from ManipulatorCommonBase
virtual int | GetCycleTime ()
Returns the cycle time. More...

Additional Inherited Members

- Protected Member Functions inherited from ManipulatorCommonBase
void Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message)
Log Provides callback to LOG() macro. More...

Detailed Description

This class removes an agent.

This class removes the agent.

Member Function Documentation

void Trigger ( int time )
overridevirtual

Triggers the functionality of this class.

Trigger gets called each cycle timestep. This function is repsonsible for creating events

Parameters
[in] time Current time.

Implements ManipulatorCommonBase.

34 {
35 for (const auto &eventInterface : GetEvents())
36 {
37 auto triggeringEvent = std::dynamic_pointer_cast<openpass::events::OpenScenarioEvent>(eventInterface);
38
39 for (const auto actorId : triggeringEvent->actingAgents.entities)
40 {
41 auto trigger = std::make_unique<openpass::events::LaneChangeEvent>(time, eventName, COMPONENTNAME, actorId, action.laneChangeParameter);
42 eventNetwork->InsertTrigger(openpass::events::LaneChangeEvent::TOPIC, std::move(trigger));
43 }
44 }
45 }
openpass::events::BasicEvent
Definition: basicEvent.h:35
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: ManipulatorCommonBase Class Reference

Public Member Functions | Protected Member Functions | List of all members
ManipulatorCommonBase Class Referenceabstract
Manipulator

This is the parent class for all Manipulators providing the basic functionality. More...

Public Member Functions

virtual void | Trigger (int time)=0
Triggers the functionality of this class. More...
virtual int | GetCycleTime ()
Returns the cycle time. More...

Protected Member Functions

void | Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message)
Log Provides callback to LOG() macro. More...
virtual EventContainer | GetEvents ()=0
Returns all current triggering events. More...

Detailed Description

This is the parent class for all Manipulators providing the basic functionality.

Member Function Documentation

virtual void Trigger ( int time )
pure virtual

Triggers the functionality of this class.

Trigger gets called each cycle timestep. This function is repsonsible for creating events

Parameters
[in] time Current time.

Implemented in ComponentStateChangeManipulator, CollisionManipulator, SpeedActionManipulator, LaneChangeManipulator, RemoveAgentsManipulator, and TrajectoryManipulator.

int GetCycleTime ( )
virtual

Returns the cycle time.

Returns
cycle time.
29 {
30 return cycleTime;
31 }
void Log | ( | CbkLogLevel | logLevel,
 |  | const char * | file,
 |  | int | line,
 |  | const std::string & | message
 | ) |  |
protected

Log Provides callback to LOG() macro.

Parameters
[in] | logLevel | Importance of log
[in] | file | Name of file where log is called
[in] | line | Line within file where log is called
[in] | message | Message to log
38 {
39 if(callbacks)
40 {
41 callbacks->Log(logLevel,
42 file,
43 line,
44 message);
45 }
46 }
virtual EventContainer GetEvents ( )
protectedpure virtual

Returns all current triggering events.

Returns all triggering events which are currently in the event network. Filters according to the defined event types.

param[in] manipulated event

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: NoOperationManipulator Class Reference

List of all members
NoOperationManipulator Class Reference
Manipulator

This class is a manipulator, that doesn't trigger any action and solely returns the event. It existes to met the OpenSCENARIO conventions. More...

Additional Inherited Members

- Public Member Functions inherited from ManipulatorCommonBase
virtual int | GetCycleTime ()
Returns the cycle time. More...
- Protected Member Functions inherited from ManipulatorCommonBase
void | Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message)
Log Provides callback to LOG() macro. More...

Detailed Description

This class is a manipulator, that doesn't trigger any action and solely returns the event. It existes to met the OpenSCENARIO conventions.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: RemoveAgentsManipulator Class Reference

Public Member Functions | List of all members
RemoveAgentsManipulator Class Reference
Manipulator

This class removes an agent. More...

Public Member Functions

virtual void | Trigger (int time) override
Triggers the functionality of this class. More...
- Public Member Functions inherited from ManipulatorCommonBase
virtual int | GetCycleTime ()
Returns the cycle time. More...

Additional Inherited Members

- Protected Member Functions inherited from ManipulatorCommonBase
void Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message)
Log Provides callback to LOG() macro. More...

Detailed Description

This class removes an agent.

This class removes the agent.

Member Function Documentation

void Trigger ( int time )
overridevirtual

Triggers the functionality of this class.

Trigger gets called each cycle timestep. This function is repsonsible for creating events

Parameters
[in] time Current time.

Implements ManipulatorCommonBase.

33 {
34 for (const auto &eventInterface : GetEvents())
35 {
36 auto triggeringEvent = std::dynamic_pointer_cast<openpass::events::OpenScenarioEvent>(eventInterface);
37
38 for (const auto actorId : triggeringEvent->actingAgents.entities)
39 {
40 world->QueueAgentRemove(world->GetAgent(actorId));
41 }
42 }
43 }
openpass::events::BasicEvent
Definition: basicEvent.h:35
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: SpeedActionManipulator Class Reference

Public Member Functions | List of all members
SpeedActionManipulator Class Reference
Manipulator

This class emits the SpeedActionEvent. More...

Public Member Functions

virtual void | Trigger (int time)
Triggers the functionality of this class. More...
- Public Member Functions inherited from ManipulatorCommonBase
virtual int | GetCycleTime ()
Returns the cycle time. More...

Additional Inherited Members

- Protected Member Functions inherited from ManipulatorCommonBase
void Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message)
Log Provides callback to LOG() macro. More...

Detailed Description

This class emits the SpeedActionEvent.

This class emits the SpeedActionEvent which allows for an acceleration manipulation of actors.

Member Function Documentation

void Trigger ( int time )
virtual

Triggers the functionality of this class.

Trigger gets called each cycle timestep. This function is repsonsible for creating events

Parameters
[in] time Current time.

Implements ManipulatorCommonBase.

34 {
35 for (const auto &eventInterface : GetEvents())
36 {
37 const auto &triggeringEvent = std::dynamic_pointer_cast<openpass::events::OpenScenarioEvent>(eventInterface);
38
39 for (const auto actorId : triggeringEvent->actingAgents.entities)
40 {
41 auto trigger = std::make_unique<openpass::events::SpeedActionEvent>(time, eventName, COMPONENTNAME, actorId, action);
42 eventNetwork->InsertTrigger(openpass::events::SpeedActionEvent::TOPIC, std::move(trigger));
43 }
44 }
45 }
openpass::events::BasicEvent
Definition: basicEvent.h:35
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: CollisionDetectionPostCrash Class Reference

Public Member Functions | Protected Member Functions | List of all members
CollisionDetectionPostCrash Class Reference
Manipulator

Collision component that calculates post-crash dynamics. More...

Public Member Functions

bool | CreatePostCrashDynamics (const AgentInterface *agent1, const AgentInterface *agent2, PostCrashDynamic *postCrashDynamic1, PostCrashDynamic *postCrashDynamic2, int &timeOfFirstContact)
Calculate and store collision data Calculates collision time and post-crash dynamics. More...
CollisionAngles GetCollisionAngles ()
Retrieve collision angles. More...
void | SetCollisionAngles (double OYA, double HCPAo, double OCPAo, double HCPA, double OCPA)
Sets collision angles as defined in http://indexsmart.mirasmart.com/26esv/PDFfiles/26ESV-000177.pdf. More...

Protected Member Functions

void Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message)
logs messages Provides callback to LOG() macro More...

Detailed Description

Collision component that calculates post-crash dynamics.

  • The algorithms for collision detection and calculation of the post-crash dynamics are based on algorithms provided by Harald Kolk (TU Graz).

The algorithm for collision dection is based on the Sutherland–Hodgman algorithm for polygon clipping.

The algorithm for calculating the post-crash-dynamics is based on conservation of momentum and angular momentum. It works in 2D and is only valid for non-sliding collisions.

Note that this module is provisional regarding several aspect. openPASS needs to be changed in order to improve the following:

  • The post-crash dynamics is currently only calculated and written to the log-file since openPASS does not allow to forward the results to dynamic-components and observation modules, currently.
  • This module needs several parameters (coeffRest, interFriction and timeOfPenetration). openPASS currently does not allow to set parameters for this module in the config files. Therefore, these parameters are hard-coded.
  • The calculation of the post-crash dynamics is based on the assumptions that the time where the collision starts is known since the post-crash dynamics shall be calculated a certain time ( given by the parameter timeOfPenetration ) after the first contact of the vehicles. Currently, this module does not know anything about sample rates etc. which makes it difficult to find the correct time to calculate the post-crash dynamics.
  • The algorithm for the post-crash dynamics uses the pre-crash yaw velocities of both agents. Since the yaw velocity is not available for the agents currently, the yaw velocities are set to zero here.

Note:

  • The method GetVertexTypes in collisionDetection assumes that the intersection of the two vehicles is rather small. It has not been checked if the method covers all possible cases for bigger intersections which are possible in openPASS depending on the cycle times.

Member Function Documentation

bool CreatePostCrashDynamics | ( | const AgentInterface * | agent1,
 |  | const AgentInterface * | agent2,
 |  | PostCrashDynamic * | postCrashDynamic1,
 |  | PostCrashDynamic * | postCrashDynamic2,
 |  | int & | timeOfFirstContact
 | ) |  |

Calculate and store collision data Calculates collision time and post-crash dynamics.

Parameters
[in] | agent1 | 1st agent
[in] | agent2 | 2nd agent
[out] | postCrashDynamic1 | postCrashDynamic for first agent
[out] | postCrashDynamic2 | postCrashDynamic for second agent
Returns
true if postCrashDynamics are created successfully
598 {
599 timeOfFirstContact = 0;
600 if (!GetFirstContact(agent1, agent2, timeOfFirstContact)) {
601 return false;
602 }
603 //
604 CalculateCollisionAngles(agent1, agent2, timeOfFirstContact);
605
606 Common::Vector2d resultAgent1COG = Common::Vector2d(-1, -1);
607 Common::Vector2d resultAgent2COG = Common::Vector2d(-1, -1);
608 Common::Vector2d pointOfImpact;
609 double phi;
610
611 // position of agents after penetrationTime given by algorithm
612 if (!GetCollisionPosition(agent1, agent2, resultAgent1COG, resultAgent2COG, pointOfImpact, phi, timeOfFirstContact + penetrationTime)) {
613 LOG(CbkLogLevel::Error, "Could not get collision position parameters.");
614 return false;
615 }
616
617 if (!CalculatePostCrashDynamic(resultAgent1COG, agent1,
618 resultAgent2COG, agent2,
619 pointOfImpact, phi,
620 postCrashDynamic1, postCrashDynamic2)) {
621 LOG(CbkLogLevel::Error, "Could not calculate post crash dynamic");
622 return false;
623 }
624 return true;
625 }
Common::Vector2d
Definition: vector2d.h:26
CollisionAngles GetCollisionAngles ( )

Retrieve collision angles.

Returns
collision angles
628 {
629 return collAngles;
630 }
void SetCollisionAngles | ( | double | OYA,
 |  | double | HCPAo,
 |  | double | OCPAo,
 |  | double | HCPA,
 |  | double | OCPA
 | ) |  |

Sets collision angles as defined in http://indexsmart.mirasmart.com/26esv/PDFfiles/26ESV-000177.pdf.

Parameters
[in] | OYA | opponent yaw angle relative to host yaw angle
[in] | HCPAo | original host collision point angle
[in] | OCPAo | original opponent collision point angle
[in] | HCPA | transformed host collision point angle
[in] | OCPA | transformed opponent collision point angle
633 {
634 this->collAngles.OYA = OYA;
635 this->collAngles.HCPAo = HCPAo;
636 this->collAngles.OCPAo = OCPAo;
637 this->collAngles.HCPA = HCPA;
638 this->collAngles.OCPA = OCPA;
639 }
CollisionAngles::HCPAo
double HCPAo
original host collision point angle
Definition: globalDefinitions.h:579
CollisionAngles::OYA
double OYA
opponent yaw angle
Definition: globalDefinitions.h:578
CollisionAngles::OCPA
double OCPA
transformed opponent collision point angle
Definition: globalDefinitions.h:582
CollisionAngles::HCPA
double HCPA
transformed host collision point angle
Definition: globalDefinitions.h:581
CollisionAngles::OCPAo
double OCPAo
original opponent collision point angle
Definition: globalDefinitions.h:580
void Log | ( | CbkLogLevel | logLevel,
 |  | const char * | file,
 |  | int | line,
 |  | const std::string & | message
 | ) |  |
inlineprotected

logs messages Provides callback to LOG() macro

Parameters
[in] | logLevel | Importance of log
[in] | file | Name of file where log is called
[in] | line | Line within file where log is called
[in] | message | Message to log
130 {
131 if (callbacks)
132 {
133 callbacks->Log(logLevel,
134 file,
135 line,
136 message);
137 }
138 }
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: TrajectoryManipulator Class Reference

Public Member Functions | List of all members
TrajectoryManipulator Class Reference
Manipulator

This manipulator sets a trajectory for an agent. More...

Public Member Functions

virtual void | Trigger (int time) override
Triggers the functionality of this class. More...
- Public Member Functions inherited from ManipulatorCommonBase
virtual int | GetCycleTime ()
Returns the cycle time. More...

Additional Inherited Members

- Protected Member Functions inherited from ManipulatorCommonBase
void Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message)
Log Provides callback to LOG() macro. More...

Detailed Description

This manipulator sets a trajectory for an agent.

This manipulator sets a trajectory for an agent.

Member Function Documentation

void Trigger ( int time )
overridevirtual

Triggers the functionality of this class.

Trigger gets called each cycle timestep. This function is repsonsible for creating events

Parameters
[in] time Current time.

Implements ManipulatorCommonBase.

34 {
35 for (const auto &eventInterface : GetEvents())
36 {
37 auto triggeringEvent = std::dynamic_pointer_cast<openpass::events::OpenScenarioEvent>(eventInterface);
38
39 for (const auto actorId : triggeringEvent->actingAgents.entities)
40 {
41 auto trigger = std::make_unique<openpass::events::TrajectoryEvent>(time, eventName, COMPONENTNAME, actorId, action.trajectory);
42 eventNetwork->InsertTrigger(openpass::events::TrajectoryEvent::TOPIC, std::move(trigger));
43 }
44 }
45 }
openpass::events::BasicEvent
Definition: basicEvent.h:35
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: openPASS CoreModules basic

Modules
openPASS CoreModules basic
Collaboration diagram for openPASS CoreModules basic:

Modules

Observation_State
logs the current X position of every agent at each time step.
Observation_Ttc
logs the time to collision (ttc) of all agents
SpawnPoint_Start
Spawn agents at the beginning of road.
World_Basic
implementation of a world interface

Detailed Description

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Observation_State

Classes
Observation_State
openPASS CoreModules basic

logs the current X position of every agent at each time step. More...

Collaboration diagram for Observation_State:

Classes

class Observation_State_Implementation
logs the current X position of every agent at each time step. More...

Detailed Description

logs the current X position of every agent at each time step.

This component logs the states of the agents that are necessary for the visualisation or the evaluation into a file.

The file format is xml to easily access time series or statistics data in an arbitrary editor.

This component in this version is just for debug purpose.

Inputs

none

Outputs

none

Parameters to be specified in runConfiguration.xml

type | id | meaning | corresponding external paramter
string | 0 | folder where simulation output shall be stored | Par_folder
string | 1 | filename for temporary simulation output | Par_tmpFilename
string | 2 | filename for final simulation output (*.xml) | Par_finalFilename
bool | 0 | flag if visualization data shall be written to file | Par_WriteOutputForVisualisation
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Observation_State_Implementation Class Reference

Public Member Functions | List of all members
Observation_State_Implementation Class Reference
openPASS CoreModules basic » Observation_State

logs the current X position of every agent at each time step. More...

Public Member Functions

virtual void | MasterPreHook ()
Called by framework in master before each simulation run starts.
virtual void | MasterPostHook (const std::string &filename)
virtual void | SlavePreRunHook ()
Called by framework in slave before each simulation run starts.
virtual void | SlaveUpdateHook (int time, RunResultInterface &runResult)
virtual void | SlavePostRunHook (const RunResultInterface &runResult)
virtual void | SlavePostHook ()
Called by framework in slave after all simulation runs end.
virtual const std::string | SlaveResultFile ()

Detailed Description

logs the current X position of every agent at each time step.

This component logs the states of the agents that are necessary for the visualisation or the evaluation into a file.

The file format is xml to easily access time series or statistics data in an arbitrary editor.

This component in this version is just for debug purpose.

Member Function Documentation

virtual void MasterPostHook ( const std::string & filename )
inlinevirtual

Called by framework in master after each simulation run ends

Parameters
[in] filename Name of file containing the simulation run results from the slave
94 {
95 Q_UNUSED(filename)
96 }
void SlaveUpdateHook | ( | int | time,
 |  | RunResultInterface & | runResult
 | ) |  |
virtual

Called by framework in slave at each time step. Observation module can indicate end of simulation run here.

Parameters
[in] | time | Current scheduling time
[in,out] | runResult | Reference to run result
142 {
143 Q_UNUSED(runResult);
144
145 RecordAllAgents(time);
146 }
void SlavePostRunHook ( const RunResultInterface & runResult )
virtual

Called by framework in slave after each simulation run ends. Observation module can observe the current simulation run here.

Parameters
[in] runResult Reference to run result
149 {
150 Q_UNUSED(runResult);
151
152 fileStream->writeStartElement(RunResultTag);
153 fileStream->writeAttribute(RunIdAttribute, QString::number(runNumber));
154
155 if(Par_WriteOutputForVisualisation)
156 {
157 std::stringstream ss;
158 ss << COMPONENTNAME << " append log to file: " << tmpPath;
159 LOG(CbkLogLevel::Debug, ss.str());
160
161 // write CyclicsTag
162 fileStream->writeStartElement(CyclicsTag);
163
164 // write header
165 fileStream->writeStartElement(HeaderTag);
166
167 std::stringstream headerLine;
168 for(std::map<std::string, std::vector<std::string>>::iterator it = channels.begin(); it != channels.end(); ++it)
169 {
170 if(it != channels.begin())
171 {
172 headerLine << ", ";
173 }
174
175 headerLine << it->first;
176 }
177
178 fileStream->writeCharacters(QString::fromStdString(headerLine.str()));
179
180 // close HeaderTag
181 fileStream->writeEndElement();
182
183 // write SamplesTag
184 fileStream->writeStartElement(SamplesTag);
185 for(unsigned int timeIndex = 0; timeIndex < timeChannel.size(); ++timeIndex)
186 {
187 std::stringstream sampleLine;
188 for(std::map<std::string, std::vector<std::string>>::iterator it = channels.begin(); it != channels.end(); ++it)
189 {
190 std::vector<std::string> values = it->second;
191
192 if(it != channels.begin())
193 {
194 sampleLine << ", ";
195 }
196
197 // not all channels are sampled until end of simulation time
198 if(timeIndex < values.size())
199 {
200 sampleLine << values.at(timeIndex);
201 }
202 }
203
204 fileStream->writeStartElement(SampleTag);
205 fileStream->writeAttribute(TimeAttribute, QString::number(timeChannel.at(timeIndex)));
206 fileStream->writeCharacters(QString::fromStdString(sampleLine.str()));
207
208 // close SampleTag
209 fileStream->writeEndElement();
210 }
211
212 // close SamplesTag
213 fileStream->writeEndElement();
214
215 // close CyclicsTag
216 fileStream->writeEndElement();
217 }
218 // close RunResultTag
219 fileStream->writeEndElement();
220
221 // close RunResultsTag
222 fileStream->writeEndElement();
223
224 // close SimulationOutputTag
225 fileStream->writeEndElement();
226
227 fileStream->writeEndDocument();
228 file->flush();
229 file->close();
230
231 // finalize results
232 file->rename(QString::fromStdString(finalPath));
233
234 //Write Agents position to csv
235 WriteAgentPositionsToCSV();
236
237 ++runNumber;
238 }
virtual const std::string SlaveResultFile ( )
inlinevirtual

Called by framework in slave after all simulation runs end to transfer the observation module results to the master.

Returns
File to be transferred
134 {
135 return ""; //dummy
136 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Observation_Ttc

Classes
Observation_Ttc
openPASS CoreModules basic

logs the time to collision (ttc) of all agents More...

Collaboration diagram for Observation_Ttc:

Classes

class Observation_Ttc_Implementation
logs the time to collision (ttc) of all agents More...

Detailed Description

logs the time to collision (ttc) of all agents

This component logs the time to collision (ttc) of all agents.

The file format is csv to easily access ttc data. Output data is the minimal ttc and the ttc at each time step of each agent.

Inputs

none

Outputs

none

Parameters to be specified in runConfiguration.xml

type | id | meaning | corresponding external paramter
string | 0 | folder where simulation output shall be stored | foldername for the result file
string | 1 | filename for temporary simulation output | file name for the temporary file
string | 2 | filename for final simulation output (*.xml) | file name for final result file
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Observation_Ttc_Implementation Class Reference

Public Member Functions | List of all members
Observation_Ttc_Implementation Class Reference
openPASS CoreModules basic » Observation_Ttc

logs the time to collision (ttc) of all agents More...

Public Member Functions

virtual void | MasterPreHook ()
Called by framework in master before each simulation run starts.
virtual void | MasterPostHook (const std::string &filename)
virtual void | SlavePreHook (const std::string &path)
virtual void | SlavePreRunHook ()
Called by framework in slave before each simulation run starts.
virtual void | SlaveUpdateHook (int time, RunResultInterface &runResult)
virtual void | SlavePostRunHook (const RunResultInterface &runResult)
virtual void | SlavePostHook ()
Called by framework in slave after all simulation runs end.
virtual const std::string | SlaveResultFile ()
int | findFrontAgentID (int ownID)

Detailed Description

logs the time to collision (ttc) of all agents

This component logs the time to collision (ttc) of all agents.

The file format is csv to easily access ttc data. Output data is the minimal ttc and the ttc at each time step of each agent.

Member Function Documentation

virtual void MasterPostHook ( const std::string & filename )
inlinevirtual

Called by framework in master after each simulation run ends

Parameters
[in] filename Name of file containing the simulation run results from the slave
90 {
91 Q_UNUSED(filename)
92 } //dummy
void SlavePreHook ( const std::string & path )
virtual

Called by framework in slave before all simulation runs start

Parameters
[in] path Directory where simulation results will be stored
44 {
45 Q_UNUSED(path);
46 QString resultFolderName = QString::fromStdString(Par_resultFolderName);
47 if(!QDir().exists(resultFolderName))
48 {
49 QDir().mkdir(resultFolderName);
50 }
51
52 fullResultFilePath = Par_resultFolderName + "/" + Par_finalFileName;
53
54 if(QFile().exists(QString::fromStdString(fullResultFilePath))){
55 QFile::remove(QString::fromStdString(fullResultFilePath));
56 }
57 }
void SlaveUpdateHook | ( | int | time,
 |  | RunResultInterface & | runResult
 | ) |  |
virtual

Called by framework in slave at each time step. Observation module can indicate end of simulation run here.

Parameters
[in] | time | Current scheduling time
[in,out] | runResult | Reference to run result
68 {
69 Q_UNUSED(runResult);
70
71 //fill time vector
72 //While Initializing the framework this update function is called twice.
73 //time = 0 would be twice in vector
74 //Check for duplicates
75 if(timeVector.size() == 0 || timeVector.back() != time)
76 {
77 timeVector.push_back(time);
78 }
79
80 //calculate ttc for all agents
81 for(uint id = 0; id < GetWorld()->GetAgents().size(); id++)
82 {
83 int frontID = findFrontAgentID(id);
84 if(frontID < 0){ //if nobody is in front, then continue
85 continue;
86 }
87
88 const AgentInterface *agent = GetWorld()->GetAgent(id);
89 const AgentInterface *frontAgent = GetWorld()->GetAgent(frontID);
90
91 double deltaX = frontAgent->GetPositionX() - agent->GetPositionX();
92 double deltaV = frontAgent->GetVelocityX() - agent->GetVelocityX();
93
94 double ttc = - deltaX / deltaV;
95
96 if(ttc < 0){// a negative ttc means that there will never be a collision
97 ttc = INFINITY;
98 }
99
100 // save the minimal ttc
101 std::map<int, double>::iterator agentsMinIterator = agentsMinTtc.find(id);
102 if(agentsMinIterator == agentsMinTtc.end()){
103 agentsMinTtc.emplace(std::make_pair(id, ttc));
104 }else{
105 if(agentsMinIterator->second > ttc){
106 agentsMinIterator->second = ttc;
107 }
108 }
109
110 //save all ttc
111 std::map<int, std::map<int, double>>::iterator agentIterator = agentsTtc.find(id);
112 if(agentIterator != agentsTtc.end()){
113 agentIterator->second.emplace(time, ttc);
114 }else{
115 std::map<int, double> agentTtc;
116 agentTtc.emplace(std::make_pair(time, ttc));
117 agentsTtc.emplace(std::make_pair(id, agentTtc));
118 }
119 }
120 }
Observation_Ttc_Implementation::findFrontAgentID
int findFrontAgentID(int ownID)
Definition: observation_ttc_implementation.cpp:176

Here is the call graph for this function:

void SlavePostRunHook ( const RunResultInterface & runResult )
virtual

Called by framework in slave after each simulation run ends. Observation module can observe the current simulation run here.

Parameters
[in] runResult Reference to run result
123 {
124 Q_UNUSED(runResult);
125
126 std::ofstream resultFile;
127 resultFile.open(fullResultFilePath, std::ofstream::out | std::ofstream::app);
128
129 if(!resultFile.is_open())
130 {
131 LOG(CbkLogLevel::Debug, "result File could not be opened");
132 return;
133 }
134 std::string sep = ";";
135 std::string endLine = "\n";
136
137 //header
138 resultFile << "RunID" << sep
139 << "AgentID" << sep
140 << "minimal TTC" << sep;
141
142 // write fist line all time steps
143 for(uint i = 0; i < timeVector.size(); ++i){
144 resultFile << timeVector.at(i) << sep;
145 }
146 resultFile << endLine;
147
148 resultFile << runID; // write runID in first column
149 //data
150 for(auto const &agentID : agentsTtc){
151 resultFile << sep; // leave first column always empty (reserved for runID)
152 resultFile << agentID.first << sep; //write ID of agent
153 resultFile << agentsMinTtc.find(agentID.first)->second << sep; //write minimal ttc of this agent
154 for(uint i = 0; i < timeVector.size(); ++i){ //write all ttc at every specific time step
155 std::map<int, double> agentTtcs = agentID.second;
156 std::map<int, double>::iterator it = agentTtcs.find(timeVector.at(i));
157 if(it != agentTtcs.end() ){// if ttc is found at specific time step, then write it
158 resultFile << it->second;
159 }// else leave blank
160 resultFile << sep;
161 }
162 resultFile << endLine;
163 }
164 resultFile << endLine;
165
166 resultFile.close();
167
168 runID++;
169 }
virtual const std::string SlaveResultFile ( )
inlinevirtual

Called by framework in slave after all simulation runs end to transfer the observation module results to the master.

Returns
File to be transferred
137 {
138 return ""; //dummy
139 }
int findFrontAgentID ( int ownID )

Finds the ID of the agent that is exactly in front of the agent.

Returns
ID of agent in front
177 {
178 const AgentInterface *agent = GetWorld()->GetAgent(ownID);
179 double posX = agent->GetPositionX();
180 double minDistance = INFINITY;
181 int frontID = -1;
182
183 for (const auto &it: GetWorld()->GetAgents()){
184 const AgentInterface *otherAgent = it.second;
185 double posXother = otherAgent->GetPositionX();
186 if ((otherAgent->GetAgentId() != ownID) && (posX < posXother))
187 {
188 double distance = posXother - posX;
189 if(minDistance > distance){
190 minDistance = distance;
191 frontID = otherAgent->GetAgentId();
192 }
193 }
194 }
195
196 return frontID;
197 }

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: SpawnPoint_Start

Classes
SpawnPoint_Start
openPASS CoreModules basic

Spawn agents at the beginning of road. More...

Collaboration diagram for SpawnPoint_Start:

Classes

class SpawnPoint_Start_Implementation
Spawn agents at the beginning of road. More...

Detailed Description

Spawn agents at the beginning of road.

This SpawnPoint module implements a basic SpawnPointInterface which is used by the framework. It used to spawn several agents at the beginning of the road with random position and velocity.

External parameters

name | value | meaning
Par_NSpawnCars | 10 | The maximum number of vehicles that will be spawned on the road. However, the simulation of each situation might stop before this amount is reached. The amount of spawned vehicles might therefore vary between different situations of the same simulation.
Par_demandHighway | 900 | The traffic demand of the simulated road. The number states how many vehicles pass a point on the road per hour.
Par_vMean | 25 | mean velocity in m/s
Par_vSd | 3 | velocity standard deviation

Parameters to be specified in runConfiguration.xml

type | id | meaning | corresponding external paramter
int | 0 | Number of spawned cars | Par_NSpawnCars
double | 0 | demand of highway in cars/hour | Par_demandHighway
double | 1 | mean velocity in m/s | Par_vMean
double | 2 | minimal velocity in m/s | Par_vMin
double | 3 | velocity standard deviation | Par_vSd

Internal paramters

name | value | meaning
standardCycleTime | 100 | standard time for one cycle in ms
See also
SpawnPointInterface
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: SpawnPoint_Start_Implementation Class Reference

List of all members
SpawnPoint_Start_Implementation Class Reference
openPASS CoreModules basic » SpawnPoint_Start

Spawn agents at the beginning of road. More...

Detailed Description

Spawn agents at the beginning of road.

This SpawnPoint module implements a basic SpawnPointInterface which is used by the framework. It used to spawn several agents at the beginning of the road with random position and velocity.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: World_Basic

Classes
World_Basic
openPASS CoreModules basic

implementation of a world interface More...

Collaboration diagram for World_Basic:

Classes

class World_Basic_Implementation
Implementation of a WorldInterface. More...

Detailed Description

implementation of a world interface

The World module implements a WorldInterface which is used by the framework and the agents. It is used to set up a basic simulated world with static objects like roads, intersection and curves and dynamic objects like cars, bicycles and pedastrians.

The World handles all simulated objects.

Inputs

name | meaning
callbacks | CallbackInterface to send log information to the framework

Outputs

name | meaning
*WoldInterface | Provides a reference to an implementation of a WorldInterface to the framework.

Parameters to be specified in runConfiguration.xml

tag | meaning
World | Name of World library. "World" by default.
See also
WorldInterface
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: World_Basic_Implementation Class Reference

Protected Member Functions | List of all members
World_Basic_Implementation Class Reference
openPASS CoreModules basic » World_Basic

Implementation of a WorldInterface. More...

Protected Member Functions

void Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message)

Detailed Description

Implementation of a WorldInterface.

This class implements all function of the WorldInterface. It is responsible for all dynamic and static objects in a given scenery.

Member Function Documentation

void Log | ( | CbkLogLevel | logLevel,
 |  | const char * | file,
 |  | int | line,
 |  | const std::string & | message
 | ) |  |
inlineprotected

Provides callback to LOG() macro

Parameters
[in] | logLevel | Importance of log
[in] | file | Name of file where log is called
[in] | line | Line within file where log is called
[in] | message | Message to log
156 {
157 if (callbacks)
158 {
159 callbacks->Log(logLevel,
160 file,
161 line,
162 message);
163 }
164 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SpawnPoint

SpawnPoint

This SpawnPointPreRunCommon populates the current World with Common Agents. More...

This SpawnPointPreRunCommon populates the current World with Common Agents.

The SpawnPointRuntimeCommon keeps the World populated with Common Agents by spawning new Agents according to the provided Traffic Parameters.

This SpawnPointPreRunCommon generates random Common Agents and places them in the World based on the specified spawning area of the configuration. This SpawnPointPreRunCommon also checks that no cars are spawned in between Ego/Scenario agents.

The SpawnPointRuntimeCommon continuously checks a specified road location for a valid spawn opportunity and spawns Common Agents when such an opportunity is found. This keeps traffic ever-flowing within the world.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Stochastics

Classes
Stochastics

implementation of StochasticsInterface More...

Classes

class StochasticsImplementation
implementation of StochasticsInterface More...

Detailed Description

implementation of StochasticsInterface

The Stochastics module implements a StochasticsInterface which is used by all agents to create a random behavior.

Inputs

name | meaning
callbacks | CallbackInterface to send log information to the framework

Outputs

name | meaning
*StochasticsInterface | Provides a reference to an implementation of a StochasticsInterface to the framework.
See also
StochasticsInterface
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: StochasticsImplementation Class Reference

Protected Member Functions | List of all members
StochasticsImplementation Class Reference
Stochastics

implementation of StochasticsInterface More...

Protected Member Functions

void Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message)

Detailed Description

implementation of StochasticsInterface

The Stochastics module implements a StochasticsInterface which is used by all agents to create a random behavior.

Member Function Documentation

void Log | ( | CbkLogLevel | logLevel,
 |  | const char * | file,
 |  | int | line,
 |  | const std::string & | message
 | ) |  |
inlineprotected

Provides callback to LOG() macro

Parameters
[in] | logLevel | Importance of log
[in] | file | Name of file where log is called
[in] | line | Line within file where log is called
[in] | message | Message to log
113 {
114 if(callbacks)
115 {
116 callbacks->Log(logLevel,
117 file,
118 line,
119 message);
120 }
121 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: World

Classes
World

implementation of a world interface More...

Classes

class WorldImplementation
Implementation of a WorldInterface. More...

Detailed Description

implementation of a world interface

The World module implements a WorldInterface which is used by the framework and the agents. It is used to set up a basic simulated world with static objects like roads, intersection and curves and dynamic objects like cars, bicycles and pedastrians.

The World handles all simulated objects.

Inputs

name | meaning
callbacks | CallbackInterface to send log information to the framework

Outputs

name | meaning
*WoldInterface | Provides a reference to an implementation of a WorldInterface to the framework.

Parameters to be specified in runConfiguration.xml

tag | meaning
World | Name of World library. "World" by default.
See also
WorldInterface
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: WorldImplementation Class Reference

Protected Member Functions | List of all members
WorldImplementation Class Reference
World

Implementation of a WorldInterface. More...

Protected Member Functions

void Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message)

Detailed Description

Implementation of a WorldInterface.

This class implements all function of the WorldInterface. It is responsible for all dynamic and static objects in a given scenery.

Member Function Documentation

void Log | ( | CbkLogLevel | logLevel,
 |  | const char * | file,
 |  | int | line,
 |  | const std::string & | message
 | ) |  |
inlineprotected

Provides callback to LOG() macro

Parameters
[in] | logLevel | Importance of log
[in] | file | Name of file where log is called
[in] | line | Line within file where log is called
[in] | message | Message to log
294 {
295 if (callbacks)
296 {
297 callbacks->Log(logLevel,
298 file,
299 line,
300 message);
301 }
302 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: OpenPassSlave

Classes
OpenPassSlave

Classes

class | AgentParser
convert agent to taskItems for Scheduling More...
class | RunResult
stores run results for output data More...
class | Scheduler
execute all tasks for an simulation run More...
class | SchedulerTasks
managing timing of all given tasks More...
class | TaskBuilderInterface
interface of taskBuilder More...
class | TaskBuilder
handles fix tasks of scheduler More...
class | TaskItem
handles data to store scheduler tasks More...
class | Tasks
stores taskItems in multiset More...

Detailed Description

Detailed Description

This is the slave module of the framework and it contains the main entry point of the simulation process.

It is started by a master module with or without arguments. Following this the slave reads all configuration files and sets up the program parameters and the framework infrastructure. After that the simulation starts and stores its results in a prespecified file.

arguments

arguments | meaning
-libraryPath | Path to all libraries. Working directory by default.
-observationResultPath | Path where the simulation results are stored. Working directory by default.
-agentConfiguration | Path and name of agent configuration file. "agentConfiguration.xml" by default.
-sceneryConfiguration | Path and name of scenery configuration file. "sceneryConfiguration.xml" by default.
-runConfiguration | Path and name of run configuration file. "runConfiguration.xml" by default.
-logFile | Path and name were the log is stored. Working directory and "logSlave.txt" by default.
-logLevel | Level at which the log messages are stored. "0" by default.

files

file | description
logSlave.txt | Default name for file containing all log messages (depending on the logLevel). Path and name are specified in slaveConfig.xml.
simulationOutput.xml | This file contains the simulation results. Path is specified in frameworkConfig.xml and name in runConfig.xml.
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: AgentParser Class Reference

  • openpass
  • scheduling
  • AgentParser
Public Member Functions | List of all members
AgentParser Class Reference
OpenPassSlave

convert agent to taskItems for Scheduling More...

Public Member Functions

void Parse (const SimulationSlave::Agent &agent)
Parse. More...

Detailed Description

convert agent to taskItems for Scheduling

Member Function Documentation

void Parse ( const SimulationSlave::Agent & agent )

Parse.

function is called when spawning agent and provides tasks for each component of the agent

Parameters
[in] Agent new agent
28 {
29 for (const auto &componentMap : agent.GetComponents())
30 {
31 std::list<TaskItem> taskItems;
32
33 ComponentInterface *component = componentMap.second;
34
35 auto priority = component->GetPriority();
36 auto cycleTime = component->GetCycleTime();
37 auto triggerDelay = component->GetOffsetTime();
38 auto updateDelay = component->GetResponseTime();
39 auto agentId = agent.GetId();
40
41 std::function<bool()> triggerFunc = std::bind(&ComponentInterface::TriggerCycle, component, std::ref(currentTime));
42 taskItems.push_back(
43 {TriggerTaskItem(agentId, priority, cycleTime, triggerDelay, triggerFunc)});
44 // std::cout << "Trigger Task: AgentId: " << agentId << " prio: " << priority <<
45 // " cycleTime: " << cycleTime << " delay: " << triggerDelay << std::endl;
46
47 for (auto &channel : component->GetOutputLinks())
48 {
49 int outputLinkId = channel.first;
50
51 std::function<bool()> updateFunc = std::bind(&ComponentInterface::AcquireOutputData, component, outputLinkId, std::ref(currentTime));
52 taskItems.push_back(
53 {UpdateTaskItem(agentId, priority, cycleTime, updateDelay, updateFunc)});
54 // std::cout << "UpdateOUT Task: AgentId: " << agentId << " prio: " << priority <<
55 // " cycleTime: " << cycleTime << " delay: " << updateDelay << std::endl;
56
57 for (auto &target : channel.second->GetTargets())
58 {
59 int targetLinkId = std::get<static_cast<size_t>(Channel::TargetLinkType::LinkId)>(target);
60 ComponentInterface *targetComponent = std::get<static_cast<size_t>(Channel::TargetLinkType::Component)>(target);
61
62 std::function<bool()> updateInFunc = std::bind(&ComponentInterface::UpdateInputData, targetComponent, targetLinkId, std::ref(currentTime));
63 taskItems.push_back(
64 {UpdateTaskItem(agentId, priority, cycleTime, updateDelay, updateInFunc)});
65 // std::cout << "UpdateIN Task: AgentId: " << agentId << " prio: " << priority <<
66 // " cycleTime: " << cycleTime << " delay: " << updateDelay << std::endl;
67 }
68 }
69
70 if (component->GetInit())
71 {
72 nonRecurringTasks.insert(nonRecurringTasks.end(),
73 std::make_move_iterator(taskItems.begin()),
74 std::make_move_iterator(taskItems.end()));
75 }
76 else
77 {
78 recurringTasks.insert(recurringTasks.end(),
79 std::make_move_iterator(taskItems.begin()),
80 std::make_move_iterator(taskItems.end()));
81 }
82 }
83 }

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: RunResult Class Reference

  • SimulationSlave
  • RunResult
Public Member Functions | List of all members
RunResult Class Reference
OpenPassSlave

stores run results for output data More...

Public Member Functions

void AddCollisionId (const int agentId)
AddCollisionId. More...

Detailed Description

stores run results for output data

Member Function Documentation

void AddCollisionId ( const int agentId )

AddCollisionId.

add agent id to list of collided agents

Parameters
[in] int id of collided agent
25 {
26 //SetCollision
27 result |= maskCollision;
28
29 //Insert new collision ids
30 if(std::find(collisionIds.begin(), collisionIds.end(), agentId) == collisionIds.end())
31 {
32 collisionIds.push_back(agentId);
33 }
34 }
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Scheduler Class Reference

  • openpass
  • scheduling
  • Scheduler
Public Member Functions | List of all members
Scheduler Class Reference
OpenPassSlave

execute all tasks for an simulation run More...

Public Member Functions

bool | Run (int startTime, int endTime, SimulationSlave::RunResult &runResult, SimulationSlave::EventNetworkInterface &eventNetwork)
Run. More...
void | ScheduleAgentTasks (SchedulerTasks &taskList, const SimulationSlave::Agent &agent)
ScheduleAgentTasks. More...

Detailed Description

execute all tasks for an simulation run

The scheduler triggers TaskBuilder to build up common tasks and SchedulerTasks to manage sorting of all tasks. Each timestep all given tasks are executed.

Member Function Documentation

bool Run | ( | int | startTime,
 |  | int | endTime,
 |  | SimulationSlave::RunResult & | runResult,
 |  | SimulationSlave::EventNetworkInterface & | eventNetwork
 | ) |  |

Run.

execute all tasks for one simulation run

Parameters
[in] | startTime | simulation start
[in] | endTime | simulation end
[out] | runResult | RunResult
[in,out] | EventNetwork | EventNetwork
Returns
true if simulation ends withuot error
42 {
43 if (startTime > endTime)
44 {
45 LOG_INTERN(LogLevel::Error) << "start time greater than end time";
46 return Scheduler::FAILURE;
47 }
48
49 currentTime = startTime;
50
51 TaskBuilder taskBuilder(currentTime,
52 runResult,
53 FRAMEWORK_UPDATE_RATE,
54 &world,
55 &spawnPointNetwork,
56 &observationNetwork,
57 &eventDetectorNetwork,
58 &manipulatorNetwork);
59
60 auto bootstrapTasks = taskBuilder.CreateBootstrapTasks();
61 auto spawningTasks = taskBuilder.CreateSpawningTasks();
62 auto preAgentTasks = taskBuilder.CreatePreAgentTasks();
63 auto synchronizeTasks = taskBuilder.CreateSynchronizeTasks();
64 auto finalizeTasks = taskBuilder.CreateFinalizeTasks();
65
66 auto taskList = SchedulerTasks(
67 bootstrapTasks,
68 spawningTasks,
69 preAgentTasks,
70 synchronizeTasks,
71 finalizeTasks,
72 FRAMEWORK_UPDATE_RATE);
73
74 if (ExecuteTasks(taskList.GetBootstrapTasks()) == false)
75 {
76 return Scheduler::FAILURE;
77 }
78
79 while (currentTime <= endTime)
80 {
81 if (!ExecuteTasks(taskList.GetSpawningTasks(currentTime)))
82 {
83 return Scheduler::FAILURE;
84 }
85
86 UpdateAgents(taskList, world);
87
88 if (!ExecuteTasks(taskList.GetPreAgentTasks(currentTime)) ||
89 !ExecuteTasks(taskList.ConsumeNonRecurringAgentTasks(currentTime)) ||
90 !ExecuteTasks(taskList.GetRecurringAgentTasks(currentTime)) ||
91 !ExecuteTasks(taskList.GetSynchronizeTasks(currentTime)))
92 {
93 return Scheduler::FAILURE;
94 }
95
96 currentTime = taskList.GetNextTimestamp(currentTime);
97
98 if (runResult.IsEndCondition())
99 {
100 LOG_INTERN(LogLevel::DebugCore) << "Scheduler: End of operation (end condition reached)";
101 return Scheduler::SUCCESS;
102 }
103
104 eventNetwork.Clear();
105 }
106
107 if (!ExecuteTasks(taskList.GetFinalizeTasks()))
108 {
109 return Scheduler::FAILURE;
110 }
111
112 LOG_INTERN(LogLevel::DebugCore) << "Scheduler: End of operation (end time reached)";
113 return Scheduler::SUCCESS;
114 }

Here is the call graph for this function:

void ScheduleAgentTasks | ( | SchedulerTasks & | taskList,
 |  | const SimulationSlave::Agent & | agent
 | ) |  |

ScheduleAgentTasks.

schedule all tasks of an new agent e.g. for respawning

Parameters
[in] | taskList | current task list
[in] | Agent | new agent
146 {
147 AgentParser agentParser(currentTime);
148 agentParser.Parse(agent);
149
150 taskList.ScheduleNewRecurringTasks(agentParser.GetRecurringTasks());
151 taskList.ScheduleNewNonRecurringTasks(agentParser.GetNonRecurringTasks());
152 }

Here is the call graph for this function:

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: SchedulerTasks Class Reference

  • openpass
  • scheduling
  • SchedulerTasks
Public Member Functions | List of all members
SchedulerTasks Class Reference
OpenPassSlave

managing timing of all given tasks More...

Public Member Functions

void | ScheduleNewRecurringTasks (std::list< TaskItem > newTasks)
ScheduleNewRecurringTasks. More...
void | ScheduleNewNonRecurringTasks (std::list< TaskItem > newTasks)
ScheduleNewNonRecurringTasks. More...
void | DeleteAgentTasks (std::list< int > &agents)
DeleteAgentTasks. More...
void | DeleteAgentTasks (int agentId)
DeleteAgentTasks. More...
int | GetNextTimestamp (int timestamp)
GetNextTimestamp. More...
std::list< TaskItem > | GetTasks (int timestamp)
GetTasks. More...
std::list< TaskItem > | GetSpawningTasks (int timestamp)
GetCommonTasks. More...
std::list< TaskItem > | ConsumeNonRecurringAgentTasks (int timestamp)
ConsumeNonRecurringTasks. More...
void | PullNonRecurringTasks (int timestamp, std::list< TaskItem > &currentTasks)
PullNonRecurringTasks. More...
std::list< TaskItem > | GetRecurringAgentTasks (int timestamp)
GetRecurringTasks. More...
std::multiset< TaskItem > | GetBootstrapTasks ()
GetBootstrapTasks. More...
std::multiset< TaskItem > | GetFinalizeTasks ()
GetFinalizeTasks. More...

Detailed Description

managing timing of all given tasks

The SchedulerTasks class sorts tasks for each phase (bbootstrap, common, nonrecurring, recurring, finalize recurring, finalize) Returns all tasks for given timestamp.

Member Function Documentation

void ScheduleNewRecurringTasks ( std::list< TaskItem > newTasks )

ScheduleNewRecurringTasks.

insert given tasks to intern recurring tasks

Parameters
[in] list of TaskItems new tasks
45 {
46 ScheduleNewTasks(recurringAgentTasks, std::move(newTasks));
47 }

Here is the caller graph for this function:

void ScheduleNewNonRecurringTasks ( std::list< TaskItem > newTasks )

ScheduleNewNonRecurringTasks.

insert given tasks to intern nonrecurring tasks

Parameters
[in] list of TaskItems new tasks
50 {
51 ScheduleNewTasks(nonRecurringAgentTasks, newTasks);
52 }

Here is the caller graph for this function:

void DeleteAgentTasks ( std::list< int > & agents )

DeleteAgentTasks.

filter all tasks to remove tasks of given agent id

Parameters
[in] list of int agent ids to remove from tasks
236 {
237 for (const auto &agentId : agentIds)
238 {
239 recurringAgentTasks.DeleteTasks(agentId);
240 nonRecurringAgentTasks.DeleteTasks(agentId); //if agent immediately will be removed after spawning
241 }
242
243 if (!agentIds.empty())
244 {
245 CreateNewScheduledTimestamps();
246 }
247 }
openpass::scheduling::Tasks::DeleteTasks
void DeleteTasks(int agentId)
DeleteTasks.
Definition: tasks.cpp:24

Here is the call graph for this function:

Here is the caller graph for this function:

void DeleteAgentTasks ( int agentId )

DeleteAgentTasks.

filter all tasks to remove tasks of given agent id

Parameters
[in] int agentId
230 {
231 std::list<int> agentIds{agentId};
232 DeleteAgentTasks(agentIds);
233 }
openpass::scheduling::SchedulerTasks::DeleteAgentTasks
void DeleteAgentTasks(std::list< int > &agents)
DeleteAgentTasks.
Definition: schedulerTasks.cpp:235

Here is the call graph for this function:

int GetNextTimestamp ( int timestamp )

GetNextTimestamp.

calculates with scheduledTimestamps next timestamp

Parameters
[in] int timestamp
Returns
int next timestamp
113 {
114 ExpandUpperBoundary(timestamp);
115
116 for (const auto &scheduledTimestamp : scheduledTimestamps)
117 {
118 if (scheduledTimestamp > timestamp)
119 {
120 return scheduledTimestamp;
121 }
122 }
123
124 throw std::runtime_error("Can not handle given timestamp. Please check validity.");
125 }
std::list< TaskItem > GetTasks ( int timestamp )

GetTasks.

Parameters
[in] int timestamp
Returns
list of TaskItems all tasks for given timestamp
156 {
157 std::list<TaskItem> currentTasks{};
158
159 ExpandUpperBoundary(timestamp);
160 if (scheduledTimestamps.find(timestamp) == scheduledTimestamps.end())
161 {
162 return currentTasks;
163 }
164
165 GetTasks(timestamp, spawningTasks.tasks, currentTasks);
166 PullNonRecurringTasks(timestamp, currentTasks);
167 GetTasks(timestamp, recurringAgentTasks.tasks, currentTasks);
168 GetTasks(timestamp, synchronizeTasks.tasks, currentTasks);
169
170 return currentTasks;
171 }
openpass::scheduling::SchedulerTasks::PullNonRecurringTasks
void PullNonRecurringTasks(int timestamp, std::list< TaskItem > &currentTasks)
PullNonRecurringTasks.
Definition: schedulerTasks.cpp:208
openpass::scheduling::SchedulerTasks::GetTasks
std::list< TaskItem > GetTasks(int timestamp)
GetTasks.
Definition: schedulerTasks.cpp:155

Here is the call graph for this function:

Here is the caller graph for this function:

std::list< TaskItem > GetSpawningTasks ( int timestamp )

GetCommonTasks.

Parameters
[in] int timestamp
Returns
list of TaskItems all common tasks for given timestamp
174 {
175 std::list<TaskItem> currentTasks;
176 GetTasks(timestamp, spawningTasks.tasks, currentTasks);
177 return currentTasks;
178 }
openpass::scheduling::SchedulerTasks::GetTasks
std::list< TaskItem > GetTasks(int timestamp)
GetTasks.
Definition: schedulerTasks.cpp:155

Here is the call graph for this function:

std::list< TaskItem > ConsumeNonRecurringAgentTasks ( int timestamp )

ConsumeNonRecurringTasks.

calls PullNonRecurringTasks

Parameters
[in] int timestamp
Returns
list of TaskItems all init tasks for given timestamp
188 {
189 std::list<TaskItem> currentTasks;
190 PullNonRecurringTasks(timestamp, currentTasks);
191 return currentTasks;
192 }
openpass::scheduling::SchedulerTasks::PullNonRecurringTasks
void PullNonRecurringTasks(int timestamp, std::list< TaskItem > &currentTasks)
PullNonRecurringTasks.
Definition: schedulerTasks.cpp:208

Here is the call graph for this function:

void PullNonRecurringTasks | ( | int | timestamp,
 |  | std::list< TaskItem > & | currentTasks
 | ) |  |

PullNonRecurringTasks.

clear all init tasks after returning them

Parameters
[in] | int | timestamp
[out] | list | of TaskItems all init tasks for given timestamp
209 {
210 GetTasks(timestamp, nonRecurringAgentTasks.tasks, currentTasks);
211 ClearNonrecurringTasks();
212 }
openpass::scheduling::SchedulerTasks::GetTasks
std::list< TaskItem > GetTasks(int timestamp)
GetTasks.
Definition: schedulerTasks.cpp:155

Here is the call graph for this function:

Here is the caller graph for this function:

std::list< TaskItem > GetRecurringAgentTasks ( int timestamp )

GetRecurringTasks.

Parameters
[in] int timestamp
Returns
list of TaskItems all recurring tasks for given timestamp
195 {
196 std::list<TaskItem> currentTasks;
197 GetTasks(timestamp, recurringAgentTasks.tasks, currentTasks);
198 return currentTasks;
199 }
openpass::scheduling::SchedulerTasks::GetTasks
std::list< TaskItem > GetTasks(int timestamp)
GetTasks.
Definition: schedulerTasks.cpp:155

Here is the call graph for this function:

std::multiset< TaskItem > GetBootstrapTasks ( )

GetBootstrapTasks.

Parameters
[in] int timestamp
Returns
list of TaskItems all bootstrap tasks for given timestamp
215 {
216 return bootstrapTasks.tasks;
217 }
std::multiset< TaskItem > GetFinalizeTasks ( )

GetFinalizeTasks.

Parameters
[in] int timestamp
Returns
list of TaskItems all finalize tasks for given timestamp
220 {
221 return finalizeTasks.tasks;
222 }
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: TaskBuilderInterface Class Reference

  • openpass
  • scheduling
  • TaskBuilderInterface
List of all members
TaskBuilderInterface Class Referenceabstract
OpenPassSlave

interface of taskBuilder More...

Detailed Description

interface of taskBuilder

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: TaskBuilder Class Reference

  • openpass
  • scheduling
  • TaskBuilder
Public Member Functions | List of all members
TaskBuilder Class Reference
OpenPassSlave

handles fix tasks of scheduler More...

Public Member Functions

std::list< TaskItem > | CreateBootstrapTasks () override
CreateBootstrapTasks. More...
std::list< TaskItem > | CreateSpawningTasks () override
CreateCommonTasks. More...
std::list< TaskItem > | CreateSynchronizeTasks () override
CreateFinalizeRecurringTasks. More...
std::list< TaskItem > | CreateFinalizeTasks () override
CreateFinalizeTasks. More...

Detailed Description

handles fix tasks of scheduler

Member Function Documentation

std::list< TaskItem > CreateBootstrapTasks ( )
overridevirtual

CreateBootstrapTasks.

Creates tasks with all tasks of bootstrap phase. Bootstrap tasks can not be changed.

Returns
tasks final tasks of bootstrap phase

Implements TaskBuilderInterface.

47 {
48 return {
49 ObservationTaskItem(frameworkUpdateRate, [&] { return observationNetwork->UpdateTimeStep(currentTime, runResult); }),
50 SpawningTaskItem(frameworkUpdateRate, [&] { return spawnPointNetwork->TriggerPreRunSpawnPoints(); }),
51 };
52 }

Here is the caller graph for this function:

std::list< TaskItem > CreateSpawningTasks ( )
overridevirtual

CreateCommonTasks.

Creates tasks with all tasks of common phase. Common tasks can not be changed.

Returns
tasks final tasks of common phase

Implements TaskBuilderInterface.

55 {
56 return {
57 SpawningTaskItem(frameworkUpdateRate, [&] { return spawnPointNetwork->TriggerRuntimeSpawnPoints(currentTime); }),
58 ObservationTaskItem(frameworkUpdateRate, [&] { return observationNetwork->UpdateTimeStep(currentTime, runResult); })};
59 }

Here is the caller graph for this function:

std::list< TaskItem > CreateSynchronizeTasks ( )
overridevirtual

CreateFinalizeRecurringTasks.

Creates tasks with all tasks of finalizeRecurring phase. FinalizeRecurring tasks can not be changed.

Returns
tasks final tasks of finalizeRecurring phase

Implements TaskBuilderInterface.

73 {
74 return {SyncWorldTaskItem(ScheduleAtEachCycle, [&] { world->SyncGlobalData(); })};
75 }

Here is the caller graph for this function:

std::list< TaskItem > CreateFinalizeTasks ( )
overridevirtual

CreateFinalizeTasks.

Creates tasks with all tasks of finalize phase. Finalize tasks can not be changed.

Returns
tasks final tasks of finalize phase

Implements TaskBuilderInterface.

78 {
79 std::list<TaskItem> items{};
80
81 std::copy(std::begin(eventDetectorTasks), std::end(eventDetectorTasks), std::back_inserter(items));
82 std::copy(std::begin(manipulatorTasks), std::end(manipulatorTasks), std::back_inserter(items));
83
84 items.emplace_back(ObservationTaskItem(frameworkUpdateRate, [&] { return observationNetwork->UpdateTimeStep(currentTime, runResult); }));
85
86 return items;
87 }

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: TaskItem Class Reference

  • openpass
  • scheduling
  • TaskItem
List of all members
TaskItem Class Reference
OpenPassSlave

handles data to store scheduler tasks More...

Detailed Description

handles data to store scheduler tasks

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Tasks Class Reference

  • openpass
  • scheduling
  • Tasks
Public Member Functions | List of all members
Tasks Class Reference
OpenPassSlave

stores taskItems in multiset More...

Public Member Functions

void | AddTask (const TaskItem &newTask)
AddTask. More...
void | DeleteTasks (int agentId)
DeleteTasks. More...

Detailed Description

stores taskItems in multiset

Member Function Documentation

void AddTask ( const TaskItem & newTask )

AddTask.

add given taskItem to intern multiset tasks

Parameters
[in] TaskItem subclass of taskItem
20 {
21 tasks.insert(newTask);
22 }
void DeleteTasks ( int agentId )

DeleteTasks.

add given taskItem to intern multiset tasks

Parameters
[in] int id of removed agent to filter it out of tasks
25 {
26 auto it = tasks.begin();
27 while (it != tasks.end())
28 {
29 if ((*it).agentId == agentId)
30 {
31 it = tasks.erase(it);
32 }
33 else
34 {
35 ++it;
36 }
37 }
38 }

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Namespace Members

  • Namespace Members
  • All
  • Functions
  • Variables
Here is a list of all documented namespace members with links to the namespaces they belong to:
  • AddPointsToWorld() : GeometryConverter
  • BuildRoadPolygons() : GeometryConverter
  • CalculateBorderPoints() : GeometryConverter
  • CalculateCoordZ() : GeometryConverter
  • CalculateGeometry() : GeometryConverter
  • CalculateGeometryOffsetEnd() : GeometryConverter
  • CalculateGeometryOffsetStart() : GeometryConverter
  • CalculateIntersectionInfoForRoadPolygons() : GeometryConverter
  • CalculateIntersections() : GeometryConverter
  • CalculateJoints() : GeometryConverter
  • CalculateJunctionIntersectionsFromRoadPolygons() : GeometryConverter
  • CalculateLaneBorder() : GeometryConverter
  • CalculateLaneWidth() : GeometryConverter
  • CalculateRoads() : GeometryConverter
  • CalculateSection() : GeometryConverter
  • CalculateSectionBetweenRoadMarkChanges() : GeometryConverter
  • CalculateSlope() : GeometryConverter
  • CalculateSlopeAtRoadPosition() : GeometryConverter
  • CalculateWidthAtSectionPosition() : GeometryConverter
  • Convert() : GeometryConverter
  • CreateBuildPolygonFromLaneGeometryFunction : GeometryConverter
  • GetRelativeRank() : GeometryConverter
  • GetRelevantRoadElevation() : GeometryConverter
  • GetRelevantRoadLaneWidth() : GeometryConverter
  • IsEqual() : GeometryConverter
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: Namespace Members

  • Namespace Members
  • All
  • Functions
  • Variables
  • AddPointsToWorld() : GeometryConverter
  • BuildRoadPolygons() : GeometryConverter
  • CalculateBorderPoints() : GeometryConverter
  • CalculateCoordZ() : GeometryConverter
  • CalculateGeometry() : GeometryConverter
  • CalculateGeometryOffsetEnd() : GeometryConverter
  • CalculateGeometryOffsetStart() : GeometryConverter
  • CalculateIntersectionInfoForRoadPolygons() : GeometryConverter
  • CalculateIntersections() : GeometryConverter
  • CalculateJoints() : GeometryConverter
  • CalculateJunctionIntersectionsFromRoadPolygons() : GeometryConverter
  • CalculateLaneBorder() : GeometryConverter
  • CalculateLaneWidth() : GeometryConverter
  • CalculateRoads() : GeometryConverter
  • CalculateSection() : GeometryConverter
  • CalculateSectionBetweenRoadMarkChanges() : GeometryConverter
  • CalculateSlope() : GeometryConverter
  • CalculateSlopeAtRoadPosition() : GeometryConverter
  • CalculateWidthAtSectionPosition() : GeometryConverter
  • Convert() : GeometryConverter
  • GetRelativeRank() : GeometryConverter
  • GetRelevantRoadElevation() : GeometryConverter
  • GetRelevantRoadLaneWidth() : GeometryConverter
  • IsEqual() : GeometryConverter
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: Namespace Members

  • Namespace Members
  • All
  • Functions
  • Variables
  • CreateBuildPolygonFromLaneGeometryFunction : GeometryConverter
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: Class List

Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 1234]
►N Common | This file implements a generic 2D vector
C Line
C Vector2d
C Vector3d
►N CommonTrafficSign
C Entity
►N ComponentControl
C AdasComponentStateInformation
C ComponentStateEquality | This Condition is fullfilled if two ComponentStateExpressions are evaluated to the same value
C ComponentStateExpression | This class represents an expression that can be evaluated as ComponentState
C ComponentStateInformation | The ComponentStateConfiguration class handles the dependencies of a single component
C Condition | This class represents a Condition based on all the information the ComponentController has gathered
C FixedComponentStateExpression | The FixedComponentStateExpression is a ComponentStateExpression that always evaluates to the same ComponentState
C StateManager | Handles the dependencies of all components
C VehicleComponentStateExpression | The VehicleComponentStateExpression is a ComponentStateExpression that evaluates to the current state of some fixed component
►N Configuration
C ConfigurationContainer | This class imports and stores all configurations
C Scenario
C Scenery | Class representing a scenery as a list of roads
C SlaveConfig | Container class for the slave configuration
C SystemConfig
C VehicleModels
►N Importer
C EventDetectorImporter
C ProfilesImporter
C ScenarioImporter
C SceneryImporter
C SlaveConfigImporter | This class povides the import functionality
C SystemConfigImporter | Class handles importing an agent system configuration
C VehicleModelsImporter | Provides methods for importing vehicle models from OpenSCENARIO catalog files
►N Internal
C ConversionStatus
►N LaneMarking
C Entity
►N openpass
►N common
►C RuntimeInformation
C Directories
C Versions
C Version
►N core
C Directories
►N events
C BasicEvent
C CollisionEvent
C ComponentStateChangeEvent
C LaneChangeEvent
C SpeedActionEvent
C TrajectoryEvent
►N parameter
►N internal
C VisitParameterElement | Switches between flat parameters and parameter lists
C ExponentialDistribution
C GammaDistribution
C LogNormalDistribution
C NormalDistribution
C UniformDistribution
►N publisher
C AgentDataPublisher | ! Interface which has to be provided by observation modules
C CoreDataPublisher | ! Interface which has to be provided by observation modules
C LogEntry
C LogEntryBase | Base class for logging of acyclic events in the datastore
►N scheduling
C AgentParser | Convert agent to taskItems for Scheduling
C EventDetectorTaskItem | TaskItem for eventDetector task
C ManipulatorTaskItem | TaskItem for manipulator task
C ObservationTaskItem | TaskItem for observation task
C Scheduler | Execute all tasks for an simulation run
C SchedulerTasks | Managing timing of all given tasks
C SpawningTaskItem | TaskItem for spawning task
C SyncWorldTaskItem | TaskItem for synchronize world task
C TaskBuilder | Handles fix tasks of scheduler
C TaskBuilderInterface | Interface of taskBuilder
C TaskItem | Handles data to store scheduler tasks
C Tasks | Stores taskItems in multiset
C TimeKeeper | Allows core components to access the current schedule time without need for a direct reference
C TriggerTaskItem | TaskItem for triggering task
C UpdateGlobalDrivingViewTaskItem | TaskItem for update global driving view task
C UpdateTaskItem | TaskItem for update task
►N sensors
C Parameter
C Position
C Profile
►N type
C AffectedEntities | Contains the affected entities of an acyclic
C NamedType
C TriggeringEntities | Contains the triggering entities of an acyclic
►N openScenario
►N transformation
C LaneChange
C SpeedAction
C Trajectory
C TransformerBase | CRTP Base class for Transformer
C AbsoluteTargetSpeed
C ActorInformation
C ByEntityCondition
C ByValueCondition
C ConditionalEventDetectorInformation | Event specific information collected from an openSCENARIO story
C CustomCommandAction
C EntityAction
C FollowTrajectoryAction
C LaneChangeAction
C LaneChangeParameter
C LanePosition
C ManipulatorInformation
C Orientation
C ParameterizedAttribute | Attribute in a catalog that is not yet resolved
C ReachPositionCondition
C RelativeLanePosition
C RelativeSpeedCondition
C RelativeTargetSpeed
C RoadPosition
C ScenarioImporterHelper
C SimulationTimeCondition
C SpeedAction
C StochasticAttribute
C TimeHeadwayCondition
C TimeToCollisionCondition
C Trajectory
C TrajectoryPoint
C TransitionDynamics
C VisibilityAction
C WorldPosition
►N OWL
►N Fakes
C Junction
C Lane
C LaneBoundary
C MovingObject
C Road
C RoadMarking
C Section
C StationaryObject
C TrafficSign
C WorldData
►N Implementation
C InvalidLane
C InvalidRoad
C InvalidSection
C Junction
C Lane
C LaneBoundary
C MovingObject
C Road
C RoadMarking
C Section
C StationaryObject
C TrafficSign
C Vehicle
►N Interfaces
C Junction | This class represents a junction in the world
C Lane | This class represents a single lane inside a section
C LaneBoundary | This class represents the boundary between two lanes
C MovingObject
C Road | This class represents a road in the world
C RoadMarking | This class represents a traffic sign that is painted on the road surface
C Section | This class represents one section of a road
C StationaryObject
C TrafficSign | This class represents a static traffic sign
C WorldData | This class contains the entire road network and all objects in the world
C WorldObject
►N Primitive
C AbsAcceleration
C AbsCoordinate
C AbsOrientation
C AbsOrientationRate
C AbsPosition
C AbsVelocity
C Dimension
C LaneAcceleration
►C LaneGeometryElement
C Joints
►C LaneGeometryJoint
C Points | Tripple describing the sampled points of the lane
C LaneOrientation
C LaneOrientationRate
C LanePosition
C LaneVelocity
C RoadAcceleration
C RoadCoordinate
C RoadOrientationRate
C RoadVelocity
C IntersectionInfo
C Lazy
C NonExistentOsiRef
C WorldData
►N RelativeWorldView
C Junction
C Lane
C LanesInterval
►N SimulationCommon
C Callbacks | Callback implementation within framework
C ModelParameters
C ObservationParameters
C Parameters
C SpawnPointParameters
C WorldParameters
►N SimulationMaster
►N Configuration
C MasterConfig | Used as value storage of parsed configuration parameters
C MasterConfigImporter
C SlaveConfig
►N SimulationSlave
C Agent
C AgentFactory
C AgentType
C Channel
C ChannelBuffer
C Component
C ComponentType
C DataStore
C DataStoreBinding
C DataStoreLibrary
C EventDetector
C EventDetectorBinding
C EventDetectorLibrary
C EventDetectorNetwork
C EventNetwork | Implements the functionality of the interface
C FrameworkModuleContainer
C Manipulator
C ManipulatorBinding
C ManipulatorLibrary
C ManipulatorNetwork
C ModelBinding
C ModelLibrary
C ObservationBinding
C ObservationLibrary
C ObservationModule
C ObservationNetwork
C RunInstantiator
C RunResult | Stores run results for output data
C SpawnItemParameter
C SpawnPoint
C SpawnPointBinding
C SpawnPointLibrary
C SpawnPointNetwork
C Stochastics
C StochasticsBinding
C StochasticsLibrary
C World
C WorldBinding
C WorldLibrary
►N SpawnPointDefinitions
C AgentProfileLaneMaps
C SpawningAgentProfile
►N SpawnPointPreRunCommonDefinitions
C PreRunSpawnerParameters
C SpawnArea
►N SpawnPointRuntimeCommonDefinitions
C SpawnDetails
C SpawnPointRuntimeCommonParameters
C SpawnPosition
►N World
►N Localization
C LaneIntersection | This struct describes the intersection of an object with a lane
C LocalizationElement | This struct contains all the information about a LaneGeometryElement that is needed by the Localizer
C Localizer
C LocatedObject
C PointQuery
C Result
C WorldToRoadCoordinateConverter
C AccelerationSignal | Signal class
C Action_BrakeLight_Basic_Implementation | Sets the brake light
C ActionLongitudinalDriverImplementation
C ActionSecondaryDriverTasksImplementation | Controls secondary driver tasks
C ActionTransformRepository | Use this class as mixed set for fixed and auto registering transformations
C AcyclicResult
C AgentAdapter | The AgentAdapter class This class is a adapter for the communication between the framework and world
C AgentBlueprint | This class stores all information which is required to instantiate an agent
C AgentBlueprintProvider
C AgentBuildInformation | The AgentBuildInformation struct contains all information that the AgentBlueprintProvider needs to fill out the AgentBlueprint for a dynamic AgentProfile
C AgentCompToCompCtrlSignal
C AgentNetwork | Network of agents
C AgentSpawnItem | Representation of an agent as defined in the run configuration
C AgentUpdaterImplementation | The class which is responsible for updating the agent in each time step
C Algorithm_CruiseControlByDistance_Implementation | Models the lateral controller of the driver
C Algorithm_FmuWrapper
C AlgorithmAgentFollowingDriverModelImplementation
C AlgorithmAutonomousEmergencyBrakingImplementation
C AlgorithmFmuWrapperImplementation
C AlgorithmLateralImplementation | Models the lateral controller of the driver
C AlgorithmLongitudinalCalculations | This class does all the calculations in the Algorithm_Longitudinal module
C AlgorithmLongitudinalImplementation
C BasicDataStoreImplementation | This class implements a basic version of a data store
C BoolSignal | Primitive signal class for boolean values
C BorderPoint | This lane represents the outer boundary points of a lane at one s coordinate
C BorderPoints | This struct represents the boundary points of all lanes (including lane 0) at one s coordinate (i.e. one joint)
C BoundingBoxCalculation
C cmplx
C cmplxl
C CollisionAngles
C CollisionDetectionPostCrash | Collision component that calculates post-crash dynamics
C CollisionDetector | This class detectes wether a collision happen in the simulation
C CollisionManipulator | This class notifies all relevant modules about the collision
C CommandLineArguments
C CommandLineOption
C CommandLineParser
C CompCtrlToAgentCompSignal Facilitates communication with the agent component, defining the max reachable state of the component as well as the states of other components connected to the

ComponentController

C CompCtrlToDriverCompSignal Facilitates communication with the driver component, allowing for warnings to be forwarded to the driver

alongside standard agent component information.

C ComponentControllerImplementation
C ComponentPort | A Class to manage ports of a component
C ComponentStateChangeManipulator | This class toggles an assistance system
C ComponentStateSignal | Primitive signal class for componentState values
C ConditionalEventDetector
C ConditionCommonBase
C ConditionMetaInformation
C ConfigurationFiles
C Connection
C CSVParser
C CustomCommandFactory | Use this class as static auto registering factory for custom commands
C CyclicResult
C DefaultComponents | Defines the default components that all agents need
C DoubleSignal | Primitive signal class for double values
C DynamicAgentTypeGenerator | Used to build the AgentBuildInformation struct in particular the AgentType
C DynamicParameters
C DynamicParameterSampler
C DynamicProfileSampler | Responsible for sampling all profile names (except AgentProfile which is sampled by the AgentProfilesSampler)
C Dynamics_Longitudinal_Basic_Implementation | Calculate the next velocity and position of the agent in the next timestep based on the acceleration in longitudinal direction
C DynamicsCollisionImplementation
C DynamicsPostCrashImplementation
C DynamicsRegularDrivingImplementation
C DynamicsRegularTwoTrackImplementation
C DynamicsSignal | Signal class
C EgoAgent
C EventDetectorCommonBase | This is the parent class for all EventDetectors providing the basic functionality
C externalParameter
C FakeLaneManager
C fmi1_csv_input_t
C fmi2_csv_input_t
C fmu_check_data_t
C FrameworkModules
C GeometryInformation | This struct contains infrastructure information of surrounding lanes that describe its geometric features
C GlobalRoadPosition | Position of a point in the road network
C InputPort
C IntersectingConnection | Information regarding a connecting road intersecting another
C IntSignal | Primitive signal class for integer values
C Joint | This struct contains all information calculated by the JointBuilder for one joint
C JointsBuilder
C Junction
C JunctionConnection
C JunctionConnectorPriority
C LaneChangeManipulator | This class removes an agent
C LaneGeometryPolygon
C LaneInformationGeometry | This struct is used to transport data of a lane concerning its geometric features as seen by the driver
C LaneInformationTrafficRules | This struct is used to trasport data of a lane concerning traffic rules as seen by the driver
C LaneJoint | This struct contains all information calculated by the JointBuilder for one joint and one lane
C LateralDynamicConstants | Calulaction parameters for the lateral acceleration wish [m/s]
C LateralSignal
C LimiterAccelerationVehicleComponentsImplementation | This class implements the set limit
C Log | Coordinates logging
C LogOutputPolicy | Handles access of file
C LongitudinalDistance | Longitudinal distance (i.e. along s) between two objects on the same road
C LongitudinalSignal
C ManipulatorCommonBase | This is the parent class for all Manipulators providing the basic functionality
►C MultiStream
C Node
C NoOperationManipulator | This class is a manipulator, that doesn't trigger any action and solely returns the event. It existes to met the OpenSCENARIO conventions
C ObjectDetectorBase | This class is the common base for all SensorObjectDetectors
C ObjectInformation | This struct is used to transport data of an object as seen be the driver
C ObjectPosition | Position of an object in the road network
C ObjectView
C Observation_State_Implementation | Logs the current X position of every agent at each time step
C Observation_Ttc_Implementation | Logs the time to collision (ttc) of all agents
C ObservationCyclics | The ObservationCyclics stores the samples which are logged by various modules and written into the cyclics tag of the simulationOutput.xml
C ObservationFileHandler | Provides the basic logging and observer functionality
C ObservationInstance | Wrapper for building an ObservationInstance
C ObservationLogImplementation | This class adds the RunStatistic information to the simulation output
C Obstruction | Describes the obstruction of an opposing object within the driving lanes
C OpenScenarioActionsImplementation | Relays triggered OpenScenario actions as signals to other components
C OscActionsCalculation | This class makes calculations for the OpenScenarioActions module
C OsmpFmuHandler
C OutputAttributes
C OutputPort
C OutputTags
C overload
C OwnVehicleInformation | Data about the lane to left (in driving direction) of the mainLane
C ParametersVehicleImplementation | Defines constants or creates stochastic values that are used in more than one module
C ParametersVehicleSignal | Provides all vehicle parameters for the driver
C Polygon | Polygon in 2d
C Position
C PostCrashDynamic | Class to store post-crash dynamics data Used to store information about the dynamic after a collision
C PostCrashVelocity
C ProcessManager
C Profiles
C ReachPositionCondition
C Remainder | This struct describes how much space an agent has to next lane boundary on both sides
C RemoveAgentsManipulator | This class removes an agent
C Road | Class representing a road
C RoadGeometry
C RoadGeometryArc | Class representing a road arc as a RoadGeometry
C RoadGeometryLine | Class representing a road line as a RoadGeometry
C RoadGeometryParamPoly3 | Class representing a road form defined via a parametric cubic polynomial as a RoadGeometry
C RoadGeometryPoly3 | Class representing a road form defined via a cubic polynomial as a RoadGeometry
C RoadGeometrySpiral | Class representing a spiral road (clothoid) as a RoadGeometry
C RoadInterval | Interval on a specific road
C RoadLane | Class representing a road lane
C RoadLaneSection | Class representing a road lane section that can contain several road lanes
C RoadLink | Class representing a link to a road
C RoadNetworkBuilder
C RoadNetworkElement
C RoadObject
C RoadPosition | Position of a point on a specific lane
C RoadSignal | Class representing a road signal
C RouteElement | This represents one node on the road network graph of the world or in the routing graph of an agent
C RunStatistic
C RunStatisticCalculation | Helper functions for run statistic analysis
C SampledGeometry | This struct is the result of the geometry sampling of one road section
C SampledProfiles | The SampledProfiles struct constains the name of all profiles sampled by the DynamicProfileSampler. With this the DynamicAgentTypeGenerator can generate an AgentType
C SceneryConverter
C SecondaryDriverTasksSignal
C Sensor_Distance_Implementation | This module is a basic module to sense the current state of an agent
C SensorDataSignal
C SensorDetectionResults
C SensorDriverCalculations | Utility class for the sensor driver
C SensorDriverImplementation
C SensorDriverSignal
C SensorFusionHelperFunctions
C SensorFusionImplementation | This class is the SensorFusion module
C SensorGeometric2D | This file models a sensor which only detects agents in a 2D area (x/y) in front of the agent
C SensorRecordStateImplementation | Records the state of the agent
C SignalPrioritizerImplementation | This class manages the routing of signals to the sepcific components
C SignalVector | Primitive signal class for vectors
C SimulationTimeCondition
C SpawnPoint_Start_Implementation | Spawn agents at the beginning of road
C SpawnPointDependencies
C SpawnPointLibraryInfo
C SpawnPointPreRunCommon | Spawns agents for all scenarios
C SpawnPointRuntimeCommon
C SpawnPointScenario | Spawns agents for all scenarios
C SpeedActionManipulator | This class emits the SpeedActionEvent
C SpeedActionSignal | Signal class
C STCoordinates
C SteeringController
C SteeringSignal | Signal class
C StochasticsImplementation | Implementation of StochasticsInterface
C Stream
C StreamInfo
C SurroundingObjects
C Tire | Static tire model based on TMEASY by Rill et al
C TrafficHelperFunctions | Containing general static functions to evaluate traffic situations
C TrafficObjectAdapter
C TrafficRuleInformation | This struct contains infrastructure information of surrounding lanes that are used to establish traffic rules
C TrajectoryFollowerImplementation | Makes an agent strictly follow a predefined path
C TrajectoryManipulator | This manipulator sets a trajectory for an agent
C TrajectorySignal | Signal class
►C TtcCalculations | Containing functions to calculate time to collision of two objects
C TtcParameters | Structure to hold all necessary world object parameters for TTC calculation
C VehicleCompToCompCtrlSignal
C VehicleModelParameters
C VehicleSimpleTT | Simple STATIC two-track vehicle model
C World_Basic_Implementation | Implementation of a WorldInterface
C WorldAnalyzer | This class provides utility functions for spawners to query information about the world
C WorldDataQuery | Helper class for complex queries on the world data
C WorldImplementation | Implementation of a WorldInterface
C WorldObjectAdapter
C WorldParameter
C WorldParameterOSI
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: Common Namespace Reference

  • Namespace Members
Classes
Common Namespace Reference

This file implements a generic 2D vector. More...

Classes

struct | Line
class | Vector2d
class | Vector3d

Detailed Description

This file implements a generic 2D vector.

This file implements a generic 3D vector.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Line Struct Reference

  • Common
  • Line
List of all members
Line Struct Reference
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Vector2d Class Reference

  • Common
  • Vector2d
Public Member Functions | Friends | List of all members
Vector2d Class Referencefinal

Public Member Functions

constexpr | Vector2d (double x=0, double y=0) noexcept
constexpr void | Translate (double x, double y) noexcept
constexpr void | Translate (Vector2d translationVector) noexcept
Translate translation of vector via another vector. More...
void | Rotate (double angle) noexcept
constexpr void | Scale (double scale) noexcept
constexpr void | Add (const Vector2d &in) noexcept
constexpr void | Sub (const Vector2d &in) noexcept
constexpr double | Dot (const Vector2d &in) const noexcept
constexpr double | Cross (const Vector2d &in) const noexcept
bool | Norm ()
double | Length () const noexcept
double | Angle () const noexcept
Angle returns the angle of the vector [-pi,+pi]. More...
constexpr bool | operator== (const Vector2d &in) const noexcept
Comparison operator taking EPSILON of 1e-9 into account. More...
constexpr bool | operator!= (const Vector2d &in) const noexcept
Inequality operator taking EPSILON of 1e-9 into account. More...

Friends

std::ostream & operator<< (std::ostream &os, const Vector2d &vector)
Overload << operator for Vector2d.

Detailed Description

class for 2d vectors in cartesian coordinate system

Constructor & Destructor Documentation

constexpr Vector2d | ( | double | x = 0,
 |  | double | y = 0
 | ) |  |
inlinenoexcept

create 2d vector from pair (x,y)

Parameters
[in] | x | x-value
[in] | y | y-value
45 : x(x), y(y) {}

Member Function Documentation

constexpr void Translate | ( | double | x,
 |  | double | y
 | ) |  |
inlinenoexcept

translation of vector

Parameters
[in] | x | x-value of displacement vector
[in] | y | y-value of displacement vector
54 {
55 this->x += x;
56 this->y += y;
57 }
constexpr void Translate ( Vector2d translationVector )
inlinenoexcept

Translate translation of vector via another vector.

Parameters
[in] translationVector vector of translation
65 {
66 this->x += translationVector.x;
67 this->y += translationVector.y;
68 }
void Rotate ( double angle )
inlinenoexcept

rotates vector by angle

Parameters
[in] angle angle, in radians
76 {
77 double cosAngle = std::cos(angle);
78 double sinAngle = std::sin(angle);
79 *this = Vector2d(x * cosAngle - y * sinAngle,
80 x * sinAngle + y * cosAngle);
81 }

Here is the caller graph for this function:

constexpr void Scale ( double scale )
inlinenoexcept

scales vector by a factor

Parameters
[in] scale scaling factor
89 {
90 x *= scale;
91 y *= scale;
92 }

Here is the caller graph for this function:

constexpr void Add ( const Vector2d & in )
inlinenoexcept

adds a vector

Parameters
[in] in added 2d vector
100 {
101 x += in.x;
102 y += in.y;
103 }

Here is the caller graph for this function:

constexpr void Sub ( const Vector2d & in )
inlinenoexcept

subtracts a vector

Parameters
[in] in subtracted 2d vector
111 {
112 x -= in.x;
113 y -= in.y;
114 }

Here is the caller graph for this function:

constexpr double Dot ( const Vector2d & in ) const
inlinenoexcept

scalar product / dot product

Parameters
[in] in 2d vector
Returns
returns dot product of the 2 vectors
123 {
124 return x * in.x + y * in.y;
125 }
constexpr double Cross ( const Vector2d & in ) const
inlinenoexcept

cross product with Z=0

Parameters
[in] in 2d vector
Returns
returns z-component of the cross product
134 {
135 return x * in.y - y * in.x;
136 }

Here is the caller graph for this function:

bool Norm ( )
inline

Normalizes the 2d vector

Each component of the vector is devided by the length of the vector.

In case of a vector with length 0, the vector cannot be normalized and false is returned.

Returns
returns true if vector could be normalized, false otherwise
148 {
149 double length = Length();
150
151 if (std::abs(length) < EPSILON)
152 {
153 return false;
154 }
155
156 x /= length;
157 y /= length;
158
159 return true;
160 }
Common::Vector2d::Length
double Length() const noexcept
Definition: vector2d.h:167

Here is the caller graph for this function:

double Length ( ) const
inlinenoexcept

returns length of the vector

Returns
length of the vector
168 {
169 return std::hypot(x, y);
170 }

Here is the caller graph for this function:

double Angle ( ) const
inlinenoexcept

Angle returns the angle of the vector [-pi,+pi].

Returns
angle of vector
178 {
179 return atan2(y, x);
180 }

Here is the caller graph for this function:

constexpr bool operator== ( const Vector2d & in ) const
inlinenoexcept

Comparison operator taking EPSILON of 1e-9 into account.

Parameters
in[in] Vector to compare to
Returns
true if vectors are considered equal, false otherwise
205 {
206 return (std::abs(x - in.x) < EPSILON) &&
207 (std::abs(y - in.y) < EPSILON);
208 }
constexpr bool operator!= ( const Vector2d & in ) const
inlinenoexcept

Inequality operator taking EPSILON of 1e-9 into account.

Parameters
in[in] Vector to compare to
Returns
false if vectors are considered equal, true otherwise
218 {
219 return !operator==(in);
220 }
Common::Vector2d::operator==
constexpr bool operator==(const Vector2d &in) const noexcept
Comparison operator taking EPSILON of 1e-9 into account.
Definition: vector2d.h:204
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Vector3d Class Reference

  • Common
  • Vector3d
Public Member Functions | List of all members
Vector3d Class Reference

Public Member Functions

Vector3d (double x=0, double y=0, double z=0)
void | Translate (double x, double y, double z)
void | Scale (double scale)
void | Add (const Vector3d &in)
void | Sub (const Vector3d &in)
bool | Norm ()
double | Length () const

Detailed Description

class for 3d vectors in cartesian coordinate system

Constructor & Destructor Documentation

Vector3d | ( | double | x = 0,
 |  | double | y = 0,
 |  | double | z = 0
 | ) |  |

create 2d vector from pair (x, y, z)

Parameters
[in] | x | x-value
[in] | y | y-value
[in] | z | z-value
17 : x(x), y(y), z(z)
18 {}

Member Function Documentation

void Translate | ( | double | x,
 |  | double | y,
 |  | double | z
 | ) |  |

translation of vector

Parameters
[in] | x | x-value of displacement vector
[in] | y | y-value of displacement vector
[in] | z | z-value of displacement vector
21 {
22 this->x += x;
23 this->y += y;
24 this->z += z;
25 }
void Scale ( double scale )

scales vector by a factor

Parameters
[in] scale scaling factor
28 {
29 x *= scale;
30 y *= scale;
31 z *= scale;
32 }
void Add ( const Vector3d & in )

adds a vector

Parameters
[in] in added 3d vector
35 {
36 x += in.x;
37 y += in.y;
38 z += in.z;
39 }
void Sub ( const Vector3d & in )

subtracts a vector

Parameters
[in] in subtracted 3d vector
42 {
43 x -= in.x;
44 y -= in.y;
45 z -= in.z;
46 }
bool Norm ( )

Normalizes the 3d vector

Each component of the vector is devided by the length of the vector.

In case of a vector with length 0, the vector cannot be normalized and false is returned.

Returns
returns true if vector could be normalized, false otherwise
49 {
50 double length = std::sqrt(x*x + y*y + z*z);
51 if(0 == length)
52 {
53 return false;
54 }
55
56 x /= length;
57 y /= length;
58 z /= length;
59
60 return true;
61 }
double Length ( ) const

returns length of the vector

Returns
length of the vector
64 {
65 return std::sqrt(x*x + y*y + z*z);
66 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Entity Struct Reference

  • CommonTrafficSign
  • Entity
List of all members
Entity Struct Reference
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: AdasComponentStateInformation Class Reference

  • ComponentControl
  • AdasComponentStateInformation
Public Member Functions | List of all members
AdasComponentStateInformation Class Reference

Public Member Functions

AdasType | GetAdasType () const
GetAdasType gets the adas type of the contained component information. More...
ComponentState | DetermineDefaultMaximumComponentStateByType () const
DetermineDefaultMaximumComponentStateByType determines the default max reachable state by adas type of this component. More...
- Public Member Functions inherited from ComponentStateInformation
ComponentType | GetComponentType () const
GetComponentType Gets the component type of the contained component information. More...
std::string | GetComponentName () const
GetComponentName gets the component name of the contained component information. More...
ComponentState | GetCurrentState () const
GetCurrentState gets the current state of the contained component information. More...
void | SetCurrentState (const ComponentState currentState)
SetCurrentState sets the current state of the contained component information. More...
void | SetDesiredState (const ComponentState desiredState)
SetDesiredState sets the desired state of the contained component information. More...
ComponentState | GetMaxReachableState () const
GetMaxReachableState gets the max reachable state of the contained component information. More...
void | SetMaxReachableState (const ComponentState maxReachableState)
SetMaxReachableState sets the max reachable state of the contained component information. More...
bool | GetMaxReachableStateSetByEvent () const
GetMaxReachableStateSetByEvent gets the flag indicating whether the max reachable state was set by an event. More...
void | SetMaxReachableStateSetByEvent (const bool maxReachableStateSetByEvent)
SetMaxReachableStateSetByEvent sets the flag indicating whether the max reachable state was set by an event. More...
void | AddStateCondition (std::shared_ptr< Condition > condition, const ComponentState state)
Adds a conditional state to the bottom of the list of conditional states. More...
const std::vector< std::pair< std::shared_ptr< Condition >, ComponentState > > & | GetStateConditions () const
GetStateConditions gets a const ref to the std::vector containing pairs of Conditions to ComponentStates which define max reachable states given fulfillment of conditions. More...

Member Function Documentation

AdasType GetAdasType ( ) const

GetAdasType gets the adas type of the contained component information.

Returns
Gets the ADAS type of the contained component information as an AdasType
96 {
97 return adasType;
98 }
ComponentState DetermineDefaultMaximumComponentStateByType ( ) const

DetermineDefaultMaximumComponentStateByType determines the default max reachable state by adas type of this component.

Returns
the default max reachable component state for the adas type of this component
101 {
102 ComponentState maxState = ComponentState::Undefined;
103
104 if (adasType == AdasType::Safety)
105 {
106 maxState = ComponentState::Acting;
107 }
108 else if (adasType == AdasType::Comfort)
109 {
110 maxState = ComponentState::Disabled;
111 }
112
113 return maxState;
114 }

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: ComponentStateEquality Class Reference

  • ComponentControl
  • ComponentStateEquality
List of all members
ComponentStateEquality Class Reference

This Condition is fullfilled if two ComponentStateExpressions are evaluated to the same value. More...

Additional Inherited Members

Detailed Description

This Condition is fullfilled if two ComponentStateExpressions are evaluated to the same value.

The ComponentStateEquality is used either to check, wether the state of two components is the same, or to check of the state of some component is equal to some fixed value (e.g. Acting).

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: ComponentStateExpression Class Reference

  • ComponentControl
  • ComponentStateExpression
Public Member Functions | List of all members
ComponentStateExpression Class Referenceabstract

This class represents an expression that can be evaluated as ComponentState. More...

Public Member Functions

virtual ComponentState Get (const StateMapping &componentNameToComponentTypeAndStateMap) const =0
Evaluates this expression. More...

Detailed Description

This class represents an expression that can be evaluated as ComponentState.

A ComponentStateExpression is either a fixed value or the ComponentState of some named component.

Member Function Documentation

virtual ComponentState Get ( const StateMapping & componentNameToComponentTypeAndStateMap ) const
pure virtual

Evaluates this expression.

Parameters
componentNameToComponentTypeAndStatesMap Information the ComponentController has gathered
Returns
ComponentState this expression evaluates to
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: ComponentStateInformation Class Reference

  • ComponentControl
  • ComponentStateInformation
Public Member Functions | List of all members
ComponentStateInformation Class Reference

The ComponentStateConfiguration class handles the dependencies of a single component. More...

Public Member Functions

ComponentType | GetComponentType () const
GetComponentType Gets the component type of the contained component information. More...
std::string | GetComponentName () const
GetComponentName gets the component name of the contained component information. More...
ComponentState | GetCurrentState () const
GetCurrentState gets the current state of the contained component information. More...
void | SetCurrentState (const ComponentState currentState)
SetCurrentState sets the current state of the contained component information. More...
void | SetDesiredState (const ComponentState desiredState)
SetDesiredState sets the desired state of the contained component information. More...
ComponentState | GetMaxReachableState () const
GetMaxReachableState gets the max reachable state of the contained component information. More...
void | SetMaxReachableState (const ComponentState maxReachableState)
SetMaxReachableState sets the max reachable state of the contained component information. More...
bool | GetMaxReachableStateSetByEvent () const
GetMaxReachableStateSetByEvent gets the flag indicating whether the max reachable state was set by an event. More...
void | SetMaxReachableStateSetByEvent (const bool maxReachableStateSetByEvent)
SetMaxReachableStateSetByEvent sets the flag indicating whether the max reachable state was set by an event. More...
void | AddStateCondition (std::shared_ptr< Condition > condition, const ComponentState state)
Adds a conditional state to the bottom of the list of conditional states. More...
const std::vector< std::pair< std::shared_ptr< Condition >, ComponentState > > & | GetStateConditions () const
GetStateConditions gets a const ref to the std::vector containing pairs of Conditions to ComponentStates which define max reachable states given fulfillment of conditions. More...

Detailed Description

The ComponentStateConfiguration class handles the dependencies of a single component.

The ComponentStateConfiguration consist of an ordered list of conditional states and a default state. The conditions of the list are evaluated from top to bottom and the first fullfilled condition defines the maxReachableState of the component. If no condition is fullfilled then the defaultState is the maxReachableState.

Member Function Documentation

ComponentType GetComponentType ( ) const

GetComponentType Gets the component type of the contained component information.

Returns
Gets the component type of the contained component information as a ComponentType
26 {
27 return componentType;
28 }
std::string GetComponentName ( ) const

GetComponentName gets the component name of the contained component information.

Returns
Gets the component name of the contained component information as a std::string
31 {
32 return componentName;
33 }
ComponentState GetCurrentState ( ) const

GetCurrentState gets the current state of the contained component information.

Returns
Gets the current state of the contained component information as a ComponentState
36 {
37 return currentState;
38 }
void SetCurrentState ( const ComponentState currentState )

SetCurrentState sets the current state of the contained component information.

Parameters
currentState The new current state of the contained component information as a ComponentState
41 {
42 this->currentState = currentState;
43 }
void SetDesiredState ( const ComponentState desiredState )

SetDesiredState sets the desired state of the contained component information.

Parameters
desiredState The new desired state of the contained component information as a ComponentState
46 {
47 this->desiredState = desiredState;
48 }
ComponentState GetMaxReachableState ( ) const

GetMaxReachableState gets the max reachable state of the contained component information.

Returns
the max reachable state of the contained component information
51 {
52 return maxReachableState;
53 }
void SetMaxReachableState ( const ComponentState maxReachableState )

SetMaxReachableState sets the max reachable state of the contained component information.

Parameters
the new max reachable state of the contained component information
56 {
57 this->maxReachableState = maxReachableState;
58 }
bool GetMaxReachableStateSetByEvent ( ) const

GetMaxReachableStateSetByEvent gets the flag indicating whether the max reachable state was set by an event.

Returns
the flag indicating whether the max reachable state was set by an event
61 {
62 return maxReachableStateSetByEvent;
63 }
void SetMaxReachableStateSetByEvent ( const bool maxReachableStateSetByEvent )

SetMaxReachableStateSetByEvent sets the flag indicating whether the max reachable state was set by an event.

Parameters
the new value for the flag indicating whether the max reachable state was set by an event
66 {
67 this->maxReachableStateSetByEvent = maxReachableStateSetByEvent;
68 }
void AddStateCondition | ( | std::shared_ptr< Condition > | condition,
 |  | const ComponentState | state
 | ) |  |

Adds a conditional state to the bottom of the list of conditional states.

Parameters
condition | - the condition for which the state should be selected
state | - the state which should be selected, given the condition
71 {
72 std::pair<std::shared_ptr<Condition>,ComponentState> pair(std::move(condition), state);
73 conditionalStates.push_back(std::move(pair));
74 }
const std::vector< std::pair< std::shared_ptr< Condition >, ComponentState > > & GetStateConditions ( ) const

GetStateConditions gets a const ref to the std::vector containing pairs of Conditions to ComponentStates which define max reachable states given fulfillment of conditions.

Returns
a const ref to a std::vector containing pairs of conditions and their related states
77 {
78 return conditionalStates;
79 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Condition Class Reference

  • ComponentControl
  • Condition
Public Member Functions | List of all members
Condition Class Referenceabstract

This class represents a Condition based on all the information the ComponentController has gathered. More...

Public Member Functions

virtual bool IsFullfilled (const StateMapping &componentNameToComponentTypeAndStatesMap) const =0
Returns wether this Condition is fullfilled. More...

Detailed Description

This class represents a Condition based on all the information the ComponentController has gathered.

The Statemanager uses this to decide which maxReachableState a component has. The different kinds of conditions are subclasses of this class

Member Function Documentation

virtual bool IsFullfilled ( const StateMapping & componentNameToComponentTypeAndStatesMap ) const
pure virtual

Returns wether this Condition is fullfilled.

Parameters
componentNameToComponentTypeAndStatesMap Information the ComponentController has gathered
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: FixedComponentStateExpression Class Reference

  • ComponentControl
  • FixedComponentStateExpression
Public Member Functions | List of all members
FixedComponentStateExpression Class Reference

The FixedComponentStateExpression is a ComponentStateExpression that always evaluates to the same ComponentState. More...

Public Member Functions

FixedComponentStateExpression (ComponentState value)

Detailed Description

The FixedComponentStateExpression is a ComponentStateExpression that always evaluates to the same ComponentState.

Constructor & Destructor Documentation

FixedComponentStateExpression ( ComponentState value )
inline
Parameters
value The fixed ComponentState
71 :
72 value(value)
73 {
74 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: StateManager Class Reference

  • ComponentControl
  • StateManager
Public Member Functions | List of all members
StateManager Class Reference

The StateManager class handles the dependencies of all components. More...

Public Member Functions

void | AddComponent (const int localLinkId, std::shared_ptr< ComponentStateInformation > componentStateInformation)
Adds a new component which has dependencies to other components. More...
std::shared_ptr< ComponentStateInformation > | GetComponent (const int localLinkId) const
GetComponent gets a registered component by its local link id. More...
ComponentState | GetMaxReachableStateOfComponentAtLocalLinkId (const int localLinkId) const
GetMaxReachableStateOfComponentAtLocalLinkId gets the current max reachable state for a component registered at localLinkId. More...
int | GetComponentLocalLinkIdByName (const std::string &componentName) const
GetComponentLocalLinkIdByName gets the localLinkId registered for a specified component name. More...
void | UpdateComponentCurrentState (const int localLinkId, const ComponentState currentState)
UpdateComponentCurrentState updates the current state of the component as represented in the ComponentController. More...
void | UpdateComponentDesiredState (const int localLinkId, ComponentState desiredState)
UpdateComponentDesiredState updates the desired state of the component as represented in the ComponentController. More...
void | UpdateComponentMaxReachableState (const int localLinkId, ComponentState maxReachableState)
UpdateComponentMaxReachableState updates the max reachable state of the component as represented in the ComponentController. More...
std::map< std::string, std::pair< ComponentType, ComponentState > > | GetVehicleComponentNamesToTypeAndStateMap ()
GetVehicleComponentNameToTypesAndStatesMap. More...
bool | LocalLinkIdIsRegistered (const int localLinkId) const
LocalLinkIdIsRegistered. More...
void | FlagComponentMaxReachableStateSetByEvent (const int localLinkId)
FlagComponentMaxReachableStateSetByEvent sets the flag noting that the component's max reachable state was set by an event. More...
void | UpdateMaxReachableStatesForRegisteredComponents (std::vector< openpass::events::ComponentStateChangeEvent const * > &componentStateChanges)
UpdateMaxReachableStatesForRegisteredComponents Calculates and updates the max reachable states for the registered components using the provided event list (filtered to include only ComponentStateChangeEvents and only for the agentId of the ComponentController owning the statemanager) and registered Condition-state pairs. More...

Detailed Description

The StateManager class handles the dependencies of all components.

Member Function Documentation

void AddComponent | ( | const int | localLinkId,
 |  | std::shared_ptr< ComponentStateInformation > | componentStateInformation
 | ) |  |

Adds a new component which has dependencies to other components.

Parameters
name | name of the component
config | dependencies of the component
Returns
true if there is not already a component of this name, false otherwise
19 {
20 // If the component is already registered, throw an error
21 if (vehicleComponentStateInformations.find(localLinkId) != vehicleComponentStateInformations.cend())
22 {
23 throw std::invalid_argument("ComponentController - StateManager: AddComponent() failed. A component has already been registered to local link id "
24 + std::to_string(localLinkId));
25 }
26
27 // If the component is not yet registered, register it
28 vehicleComponentStateInformations.insert({localLinkId, componentStateInformation});
29 }

Here is the caller graph for this function:

std::shared_ptr< ComponentStateInformation > GetComponent ( const int localLinkId ) const

GetComponent gets a registered component by its local link id.

Parameters
localLinkId the localLinkId representing the local channel to which the desired component was registered
Returns
The information regarding the component as a ComponentStateInformation
32 {
33 auto vehicleComponentIter = vehicleComponentStateInformations.find(localLinkId);
34
35 if (vehicleComponentIter != vehicleComponentStateInformations.cend())
36 {
37 return vehicleComponentIter->second;
38 }
39
40 throw std::out_of_range("Specified Link Id is not registered in ComponentController");
41 }

Here is the caller graph for this function:

ComponentState GetMaxReachableStateOfComponentAtLocalLinkId ( const int localLinkId ) const

GetMaxReachableStateOfComponentAtLocalLinkId gets the current max reachable state for a component registered at localLinkId.

Parameters
localLinkId the id for the interesting component
Returns
the current max reachable state of the component as a ComponentState type
44 {
45 const auto componentAtLocalLinkId = GetComponent(localLinkId);
46 return componentAtLocalLinkId->GetMaxReachableState();
47 }
ComponentControl::StateManager::GetComponent
std::shared_ptr< ComponentStateInformation > GetComponent(const int localLinkId) const
GetComponent gets a registered component by its local link id.
Definition: stateManager.cpp:31

Here is the call graph for this function:

int GetComponentLocalLinkIdByName ( const std::string & componentName ) const

GetComponentLocalLinkIdByName gets the localLinkId registered for a specified component name.

Parameters
componentName the name of the registered component
Returns
The localLinkId for the component
50 {
51 for (const auto& localLinkIdToComponentStateInformation : vehicleComponentStateInformations)
52 {
53 const auto componentStateInformation = localLinkIdToComponentStateInformation.second;
54
55 if (componentStateInformation->GetComponentName() == componentName)
56 {
57 return localLinkIdToComponentStateInformation.first;
58 }
59 }
60
61 throw std::out_of_range("Statemanager could not find the localLinkId for " + componentName + ".");
62 }

Here is the caller graph for this function:

void UpdateComponentCurrentState | ( | const int | localLinkId,
 |  | const ComponentState | currentState
 | ) |  |

UpdateComponentCurrentState updates the current state of the component as represented in the ComponentController.

Parameters
localLinkId | the localLinkId of the component
currentState | the new state of the component
65 {
66 auto vehicleComponentStateInformationIterator = vehicleComponentStateInformations.find(localLinkId);
67
68 if (vehicleComponentStateInformationIterator != vehicleComponentStateInformations.end())
69 {
70 vehicleComponentStateInformationIterator->second->SetCurrentState(currentState);
71 }
72 }

Here is the caller graph for this function:

void UpdateComponentDesiredState | ( | const int | localLinkId,
 |  | ComponentState | desiredState
 | ) |  |

UpdateComponentDesiredState updates the desired state of the component as represented in the ComponentController.

Parameters
localLinkId | the localLinkId of the component
desiredState | the new desired state of the component
75 {
76 auto vehicleComponentStateInformationIterator = vehicleComponentStateInformations.find(localLinkId);
77
78 if (vehicleComponentStateInformationIterator != vehicleComponentStateInformations.end())
79 {
80 vehicleComponentStateInformationIterator->second->SetDesiredState(desiredState);
81 }
82 }
void UpdateComponentMaxReachableState | ( | const int | localLinkId,
 |  | ComponentState | maxReachableState
 | ) |  |

UpdateComponentMaxReachableState updates the max reachable state of the component as represented in the ComponentController.

Parameters
localLinkId | the localLinkId of the component
maxReachableState | the new maxReachableState of the component
85 {
86 auto vehicleComponentStateInformationIterator = vehicleComponentStateInformations.find(localLinkId);
87
88 if (vehicleComponentStateInformationIterator != vehicleComponentStateInformations.end())
89 {
90 vehicleComponentStateInformationIterator->second->SetMaxReachableState(maxReachableState);
91 }
92 }

Here is the caller graph for this function:

std::map< std::string, std::pair< ComponentType, ComponentState > > GetVehicleComponentNamesToTypeAndStateMap ( )

GetVehicleComponentNameToTypesAndStatesMap.

Returns
a std::map of component names to a pair containing their respective ADAS type and ComponentState as represented in the ComponentController
160 {
161 std::map<std::string, std::pair<ComponentType, ComponentState>> vehicleComponentStates;
162
163 for (const auto &vehicleComponentStateInformationIterator : vehicleComponentStateInformations)
164 {
165 const auto &vehicleComponentStateInformation = vehicleComponentStateInformationIterator.second;
166 vehicleComponentStates.insert({vehicleComponentStateInformation->GetComponentName(),
167 {vehicleComponentStateInformation->GetComponentType(), vehicleComponentStateInformation->GetCurrentState()}});
168 }
169
170 return vehicleComponentStates;
171 }

Here is the caller graph for this function:

bool LocalLinkIdIsRegistered ( const int localLinkId ) const

LocalLinkIdIsRegistered.

Parameters
localLinkId the localLinkId to test for registration
Returns
whether or not the localLinkId is registered
155 {
156 return (vehicleComponentStateInformations.find(localLinkId) != vehicleComponentStateInformations.end());
157 }

Here is the caller graph for this function:

void FlagComponentMaxReachableStateSetByEvent ( const int localLinkId )

FlagComponentMaxReachableStateSetByEvent sets the flag noting that the component's max reachable state was set by an event.

Parameters
localLinkId the localLinkId of the component for which the flag shoule be set
95 {
96 auto vehicleComponentStateInformationIterator = vehicleComponentStateInformations.find(localLinkId);
97
98 if (vehicleComponentStateInformationIterator != vehicleComponentStateInformations.end())
99 {
100 vehicleComponentStateInformationIterator->second->SetMaxReachableStateSetByEvent(true);
101 }
102 }

Here is the caller graph for this function:

void UpdateMaxReachableStatesForRegisteredComponents ( std::vector< openpass::events::ComponentStateChangeEvent const * > & componentStateChanges )

UpdateMaxReachableStatesForRegisteredComponents Calculates and updates the max reachable states for the registered components using the provided event list (filtered to include only ComponentStateChangeEvents and only for the agentId of the ComponentController owning the statemanager) and registered Condition-state pairs.

Parameters
componentStateChanges the event list from the event network, filtered to include only those events related to the agentId of the controlling ComponentController and only including ComponentStateChangeEvents
105 {
106 for (const auto& stateChangeEvent : componentStateChanges)
107 {
108 try
109 {
110 const auto localLinkId = GetComponentLocalLinkIdByName(stateChangeEvent->componentName);
111 UpdateComponentMaxReachableState(localLinkId, stateChangeEvent->componentState);
112 FlagComponentMaxReachableStateSetByEvent(localLinkId);
113 }
114 catch (const std::out_of_range& error)
115 {
116 const std::string errorMessage = error.what();
117 const std::string warning = errorMessage + " The event will be ignored.";
118 LOG(CbkLogLevel::Warning, warning);
119 }
120 }
121
122 const auto componentNameToTypeAndStateMap = GetVehicleComponentNamesToTypeAndStateMap();
123 for (auto& vehicleComponentLocalLinkIdToStateInformationPair : vehicleComponentStateInformations)
124 {
125 auto& vehicleComponentStateInformation = vehicleComponentLocalLinkIdToStateInformationPair.second;
126 // only update max reachable state if it was not previously set by an event
127 if (!(vehicleComponentStateInformation->GetMaxReachableStateSetByEvent()))
128 {
129 const auto& conditionalStates = vehicleComponentStateInformation->GetStateConditions();
130 ComponentState calculatedMaxReachableState = ComponentState::Undefined;
131
132 // try to cast vehicleComponentStateInformation to AdasComponentStateInformation type
133 // if successful, calculate max reachable state with appropriate function call
134 std::shared_ptr<AdasComponentStateInformation> adasComponentStateInformation =
135 std::dynamic_pointer_cast<AdasComponentStateInformation>(vehicleComponentStateInformation);
136 if (adasComponentStateInformation)
137 {
138 calculatedMaxReachableState = adasComponentStateInformation->DetermineDefaultMaximumComponentStateByType();
139 }
140
141 for (const auto& conditionalState : conditionalStates)
142 {
143 if (conditionalState.first->IsFullfilled(componentNameToTypeAndStateMap))
144 {
145 calculatedMaxReachableState = conditionalState.second;
146 break;
147 }
148 }
149 vehicleComponentStateInformation->SetMaxReachableState(calculatedMaxReachableState);
150 }
151 }
152 }
ComponentControl::AdasComponentStateInformation
Definition: componentStateInformation.h:128
ComponentControl::StateManager::FlagComponentMaxReachableStateSetByEvent
void FlagComponentMaxReachableStateSetByEvent(const int localLinkId)
FlagComponentMaxReachableStateSetByEvent sets the flag noting that the component's max reachable stat...
Definition: stateManager.cpp:94
ComponentControl::AdasComponentStateInformation::DetermineDefaultMaximumComponentStateByType
ComponentState DetermineDefaultMaximumComponentStateByType() const
DetermineDefaultMaximumComponentStateByType determines the default max reachable state by adas type o...
Definition: componentStateInformation.cpp:100
ComponentControl::StateManager::GetComponentLocalLinkIdByName
int GetComponentLocalLinkIdByName(const std::string &componentName) const
GetComponentLocalLinkIdByName gets the localLinkId registered for a specified component name...
Definition: stateManager.cpp:49
ComponentControl::StateManager::UpdateComponentMaxReachableState
void UpdateComponentMaxReachableState(const int localLinkId, ComponentState maxReachableState)
UpdateComponentMaxReachableState updates the max reachable state of the component as represented in t...
Definition: stateManager.cpp:84
ComponentControl::StateManager::GetVehicleComponentNamesToTypeAndStateMap
std::map< std::string, std::pair< ComponentType, ComponentState > > GetVehicleComponentNamesToTypeAndStateMap()
GetVehicleComponentNameToTypesAndStatesMap.
Definition: stateManager.cpp:159

Here is the call graph for this function:

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: VehicleComponentStateExpression Class Reference

  • ComponentControl
  • VehicleComponentStateExpression
Public Member Functions | List of all members
VehicleComponentStateExpression Class Reference

The VehicleComponentStateExpression is a ComponentStateExpression that evaluates to the current state of some fixed component. More...

Public Member Functions

VehicleComponentStateExpression (const std::string &component)

Detailed Description

The VehicleComponentStateExpression is a ComponentStateExpression that evaluates to the current state of some fixed component.

Constructor & Destructor Documentation

VehicleComponentStateExpression ( const std::string & component )
inline
Parameters
component Name of the component of which the state is evaluated
92 :
93 component(component)
94 {
95 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: ConfigurationContainer Class Reference

  • Configuration
  • ConfigurationContainer
Public Member Functions | List of all members
ConfigurationContainer Class Reference

This class imports and stores all configurations. More...

Public Member Functions

bool | ImportAllConfigurations () override
This functions imports all confiugrations. More...
std::shared_ptr< SystemConfigInterface > | GetSystemConfigBlueprint () override
Returns a pointer to the SystemConfigBlueprint. More...
SlaveConfigInterface * | GetSlaveConfig () override
Returns a pointer to the SlaveConfig. More...
ProfilesInterface * | GetProfiles () override
Returns a pointer to the Profiles. More...
SceneryInterface * | GetScenery () override
Returns a pointer to the Scenery. More...
ScenarioInterface * | GetScenario () override
Returns a pointer to the Scenario. More...
std::map< std::string, std::shared_ptr< SystemConfigInterface > > & | GetSystemConfigs () override
Returns imported systemConfigs. More...
VehicleModelsInterface * | GetVehicleModels () override
Returns a pointer to the VehicleModels. More...
const openpass::common::RuntimeInformation & | GetRuntimeInformation () const override
Returns the RunTimeInformation. More...

Detailed Description

This class imports and stores all configurations.

Member Function Documentation

bool ImportAllConfigurations ( )
override

This functions imports all confiugrations.

This function imports all configurations and stores them.

Returns
true, if successful
21 {
22 //Import SystemConfigBlueprint
23 systemConfigBlueprint = std::make_shared<SystemConfig>();
24 if (!SystemConfigImporter::Import(configurationFiles.systemConfigBlueprintFile, systemConfigBlueprint))
25 {
26 LOG_INTERN(LogLevel::Info) << "could not import systemConfigBlueprint.";
27 systemConfigBlueprint = nullptr;
28 }
29
30 //Import SlaveConfig
31 if (!SlaveConfigImporter::Import(configurationFiles.configurationDir,
32 configurationFiles.slaveConfigFile,
33 slaveConfig))
34 {
35 LOG_INTERN(LogLevel::Error) << "could not import slave configuration '" << configurationFiles.slaveConfigFile << "'";
36 return false;
37 }
38
39 //Import ProfilesCatalog
40 if (!ProfilesImporter::Import(slaveConfig.GetProfilesCatalog(), profiles))
41 {
42 LOG_INTERN(LogLevel::Error) << "could not import profiles catalog";
43 return false;
44 }
45
46 //Import Scenario
47 if (!ScenarioImporter::Import(slaveConfig.GetScenarioConfig().scenarioPath, &scenario))
48 {
49 LOG_INTERN(LogLevel::Error) << "could not import scenario";
50 return false;
51 }
52
53 //Import Scenery
54 if (!SceneryImporter::Import(openpass::core::Directories::Concat(configurationFiles.configurationDir, scenario.GetSceneryPath()),
55 &scenery))
56 {
57 LOG_INTERN(LogLevel::Error) << "could not import scenery";
58 return false;
59 }
60
61 //Import VehicleModels
62 if (!VehicleModelsImporter::Import(
63 openpass::core::Directories::Concat(configurationFiles.configurationDir, scenario.GetVehicleCatalogPath()),
64 openpass::core::Directories::Concat(configurationFiles.configurationDir, scenario.GetPedestrianCatalogPath()),
65 vehicleModels))
66 {
67 LOG_INTERN(LogLevel::Error) << "could not import vehicle models";
68 return false;
69 }
70
71 std::set<std::string> systemConfigFiles;
72 std::transform(profiles.GetAgentProfiles().begin(), profiles.GetAgentProfiles().end(), std::inserter(systemConfigFiles, systemConfigFiles.begin()),
73 [](const auto& agentProfile){return agentProfile.second.systemConfigFile;});
74
75 //Import SystemConfigs
76 for (const auto& systemConfigFile : systemConfigFiles)
77 {
78 if (systemConfigFile == "")
79 {
80 continue;
81 }
82 auto systemConfig = std::make_shared<SystemConfig>();
83
84 if(!SystemConfigImporter::Import(openpass::core::Directories::Concat(configurationFiles.configurationDir, systemConfigFile), systemConfig))
85 {
86 LOG_INTERN(LogLevel::Error) << "could not import system configs";
87 return false;
88 }
89 systemConfigs.insert(std::make_pair(systemConfigFile, systemConfig));
90 }
91
92 return true;
93 }
ConfigurationFiles::configurationDir
const std::string configurationDir
directory of the configuration files
Definition: configurationFiles.h:37
Configuration::Scenario::GetPedestrianCatalogPath
const std::string & GetPedestrianCatalogPath() override
Getter for pedestrian catalog path.
Definition: scenario.cpp:26
Configuration::Scenario::GetVehicleCatalogPath
const std::string & GetVehicleCatalogPath() override
Getter for vehicle catalog path.
Definition: scenario.cpp:16
openpass::core::Directories::Concat
static const std::string Concat(const std::string &path, const std::string &file)
!< directory for outputs
Definition: directories.cpp:41
ConfigurationFiles::systemConfigBlueprintFile
const std::string systemConfigBlueprintFile
absolute path of the systemConfigBlueprintFile
Definition: configurationFiles.h:38
Configuration::Scenario::GetSceneryPath
const std::string & GetSceneryPath() override
Getter for scenery path.
Definition: scenario.cpp:46
ConfigurationFiles::slaveConfigFile
const std::string slaveConfigFile
absolute path of the slaveConfigFile
Definition: configurationFiles.h:39

Here is the call graph for this function:

std::shared_ptr< SystemConfigInterface > GetSystemConfigBlueprint ( )
override

Returns a pointer to the SystemConfigBlueprint.

Returns
SystemConfigBlueprint pointer
96 {
97 return systemConfigBlueprint;
98 }
SlaveConfigInterface * GetSlaveConfig ( )
override

Returns a pointer to the SlaveConfig.

Returns
SlaveConfig pointer
101 {
102 return &slaveConfig;
103 }
ProfilesInterface * GetProfiles ( )
override

Returns a pointer to the Profiles.

Returns
Profiles pointer
106 {
107 return &profiles;
108 }
SceneryInterface * GetScenery ( )
override

Returns a pointer to the Scenery.

Returns
Scenery pointer
111 {
112 return &scenery;
113 }
ScenarioInterface * GetScenario ( )
override

Returns a pointer to the Scenario.

Returns
Scenario pointer
116 {
117 return &scenario;
118 }
std::map< std::string, std::shared_ptr< SystemConfigInterface > > & GetSystemConfigs ( )
override

Returns imported systemConfigs.

Returns
systemConfigs map
121 {
122 return systemConfigs;
123 }
VehicleModelsInterface * GetVehicleModels ( )
override

Returns a pointer to the VehicleModels.

Returns
VehicleModels pointer
126 {
127 return &vehicleModels;
128 }
const openpass::common::RuntimeInformation & GetRuntimeInformation ( ) const
override

Returns the RunTimeInformation.

Returns
RunTimeInformation
131 {
132 return runtimeInformation;
133 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Scenario Class Reference

  • Configuration
  • Scenario
Public Member Functions | List of all members
Scenario Class Reference

Public Member Functions

const std::string & | GetVehicleCatalogPath () override
Getter for vehicle catalog path. More...
void | SetVehicleCatalogPath (const std::string &catalogPath) override
Setter for vehicle catalog path. More...
const std::string & | GetPedestrianCatalogPath () override
Getter for pedestrian catalog path. More...
void | SetPedestrianCatalogPath (const std::string &catalogPath) override
Setter for pedestrian catalog path. More...
const std::string & | GetTrajectoryCatalogPath () override
Retreives the path to the trajectory catalog file. More...
void | SetTrajectoryCatalogPath (const std::string &catalogPath) override
const std::string & | GetSceneryPath () override
Getter for scenery path. More...
void | SetSceneryPath (const std::string &sceneryPath) override
Setter for scenery path. More...

Member Function Documentation

const std::string & GetVehicleCatalogPath ( )
override

Getter for vehicle catalog path.

Returns
The relative file path to the OpenSCENARIO vehicle catalog in use
17 {
18 return vehicleCatalogPath;
19 }
void SetVehicleCatalogPath ( const std::string & catalogPath )
override

Setter for vehicle catalog path.

Parameters
[in] catalogPath Relative file path to the OpenSCENARIO vehicle catalog to use
22 {
23 this->vehicleCatalogPath = catalogPath;
24 }
const std::string & GetPedestrianCatalogPath ( )
override

Getter for pedestrian catalog path.

Returns
The relative file path to the OpenSCENARIO pedestrian catalog in use
27 {
28 return pedestrianCatalogPath;
29 }
void SetPedestrianCatalogPath ( const std::string & catalogPath )
override

Setter for pedestrian catalog path.

Parameters
[in] catalogPath Relative file path to the OpenSCENARIO pedestrian catalog to use
32 {
33 this->pedestrianCatalogPath = catalogPath;
34 }
const std::string & GetTrajectoryCatalogPath ( )
override

Retreives the path to the trajectory catalog file.

Returns
Relative path to the trajectory catalog
37 {
38 return trajectoryCatalogPath;
39 }
void SetTrajectoryCatalogPath ( const std::string & catalogPath )
override

Sets the path to the trajectory catalog file

Parameters
[in] catalogPath Relative path to the trajectory catalog file
42 {
43 trajectoryCatalogPath = catalogPath;
44 }
const std::string & GetSceneryPath ( )
override

Getter for scenery path.

Returns
The relative file path to the OpenDRIVE scenery in use
47 {
48 return sceneryPath;
49 }
void SetSceneryPath ( const std::string & sceneryPath )
override

Setter for scenery path.

Parameters
[in] sceneryPath Relative file path to the OpenDRIVE scenery to use
52 {
53 this->sceneryPath = sceneryPath;
54 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Scenery Class Reference

  • Configuration
  • Scenery
Public Member Functions | List of all members
Scenery Class Reference

Class representing a scenery as a list of roads. More...

Public Member Functions

void | Clear ()
Clears the scenery by deleting all stored roads.
RoadInterface * | AddRoad (const std::string &id)
JunctionInterface * | AddJunction (const std::string &id)
const std::map< std::string, RoadInterface * > & | GetRoads () const
const std::map< std::string, JunctionInterface * > & | GetJunctions () const
const JunctionInterface * | GetJunction (const std::string &id) const
const RoadInterface * | GetRoad (const std::string &id) const

Detailed Description

Class representing a scenery as a list of roads.

Member Function Documentation

RoadInterface * AddRoad ( const std::string & id )

Adds a new road to a scenery by creating a new Road object and adding it via its ID to a stored mapping of roads.

Parameters
[in] id ID of the road to add
Returns
created road
39 {
40 Road *road = new (std::nothrow) Road(id);
41
42 if(!road)
43 {
44 return nullptr;
45 }
46
47 if(!roads.insert({id, road}).second)
48 {
49 LOG_INTERN(LogLevel::Error) << "roads must be unique";
50 delete road;
51 return nullptr;
52 }
53
54 return road;
55 }
Road
Class representing a road.
Definition: road.h:844

Here is the caller graph for this function:

JunctionInterface * AddJunction ( const std::string & id )

Adds a new junction to a scenery by creating a new Junction object and adding it via its ID to a stored mapping of junctions.

Parameters
[in] id ID of the junction to add
Returns
created junction
58 {
59 Junction *junction = new (std::nothrow) Junction(id);
60
61 if(!junction)
62 {
63 return nullptr;
64 }
65
66 if(!junctions.insert({id, junction}).second)
67 {
68 LOG_INTERN(LogLevel::Error) << "junctions must be unique";
69 delete junction;
70 return nullptr;
71 }
72
73 return junction;
74 }
Junction
Definition: junction.h:22

Here is the caller graph for this function:

const std::map<std::string, RoadInterface*>& GetRoads ( ) const
inline

Returns the stored list of roads.

Returns
list of roads
76 {
77 return roads;
78 }
const std::map<std::string, JunctionInterface*>& GetJunctions ( ) const
inline

Returns the stored list of junctions.

Returns
list of junctions
86 {
87 return junctions;
88 }
const JunctionInterface* GetJunction ( const std::string & id ) const
inline

Returns the junction with the provided ID from the scenery.

Parameters
[in] id ID of the junction
Returns
junction with the provided ID
97 {
98 JunctionInterface *junction;
99 try
100 {
101 junction = junctions.at(id);
102 }
103 catch(const std::out_of_range&)
104 {
105 junction = nullptr;
106 }
107
108 return junction;
109 }
const RoadInterface* GetRoad ( const std::string & id ) const
inline

Returns the road with the provided ID from the scenery.

Parameters
[in] id ID of the road
Returns
road with the provided ID
119 {
120 RoadInterface *road;
121 try
122 {
123 road = roads.at(id);
124 }
125 catch(const std::out_of_range&)
126 {
127 road = nullptr;
128 }
129
130 return road;
131 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SlaveConfig Class Reference

  • Configuration
  • SlaveConfig
List of all members
SlaveConfig Class Reference

Container class for the slave configuration. More...

Detailed Description

Container class for the slave configuration.

This class stores all information provided by the slaveConfig.xml and provides access to this information

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SystemConfig Class Reference

  • Configuration
  • SystemConfig
List of all members
SystemConfig Class Reference
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: VehicleModels Class Reference

  • Configuration
  • VehicleModels
List of all members
VehicleModels Class Reference
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: EventDetectorImporter Class Reference

  • Importer
  • EventDetectorImporter
Static Public Member Functions | List of all members
EventDetectorImporter Class Reference

Static Public Member Functions

static openScenario::ConditionalEventDetectorInformation ImportEventDetector (QDomElement &eventElement, const std::string &eventName, const int numberOfExecutions, const openScenario::ActorInformation &actorInformation, const std::vector< ScenarioEntity > &entities, openScenario::Parameters &parameters)
ImportEventDetector parses information from an EventElement for instantiation of a ConditionalEventDetector. More...

Member Function Documentation

openScenario::ConditionalEventDetectorInformation ImportEventDetector | ( | QDomElement & | eventElement,
 |  | const std::string & | eventName,
 |  | const int | numberOfExecutions,
 |  | const openScenario::ActorInformation & | actorInformation,
 |  | const std::vector< ScenarioEntity > & | entities,
 |  | openScenario::Parameters & | parameters
 | ) |  |
static

ImportEventDetector parses information from an EventElement for instantiation of a ConditionalEventDetector.

Parameters
[in] | eventElement | the element from which to parse ConditionalEventDetector instantiation information
[in] | eventName | Name of the event used for identification e.g. "MyStory/MyAct/MySequence/MyManeuver/MyEvent"
[in] | numberOfExecutions | the maximum number of times the ConditionalEventDetector is to emit an event
[in] | actorInformation | information detailing what entities are the actors to be targeted by the ConditionalEventDetector's emitted events
[in] | entities | entities defined in openScenario Entities
Returns
a struct containing all information relevant for the

instantiation of a ConditionalEventDetector

26 {
27 QDomElement startConditionsElement;
28 ThrowIfFalse(SimulationCommon::GetFirstChildElement(eventElement, TAG::startTrigger, startConditionsElement),
29 eventElement, "Tag " + std::string(TAG::startTrigger) + " missing.");
30
31 QDomElement conditionGroupElement;
32 ThrowIfFalse(SimulationCommon::GetFirstChildElement(startConditionsElement, TAG::conditionGroup, conditionGroupElement),
33 startConditionsElement, "Tag " + std::string(TAG::conditionGroup) + " missing.");
34
35 QDomElement conditionElement;
36 ThrowIfFalse(SimulationCommon::GetFirstChildElement(conditionGroupElement, TAG::condition, conditionElement),
37 conditionGroupElement, "Tag " + std::string(TAG::condition) + " missing.");
38
39 openScenario::ConditionGroup conditions{};
40
41 while (!conditionElement.isNull())
42 {
43 conditions.emplace_back(ImportConditionElement(conditionElement, entities, parameters));
44 conditionElement = conditionElement.nextSiblingElement(TAG::condition);
45 }
46
47 return openScenario::ConditionalEventDetectorInformation{actorInformation,
48 numberOfExecutions,
49 eventName,
50 conditions};
51 }
openScenario::ConditionalEventDetectorInformation
Event specific information collected from an openSCENARIO story.
Definition: eventDetectorDefinitions.h:233
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: ProfilesImporter Class Reference

  • Importer
  • ProfilesImporter
Static Public Member Functions | List of all members
ProfilesImporter Class Reference

Static Public Member Functions

static void | ImportAgentProfiles (QDomElement agentProfilesElement, std::unordered_map< std::string, AgentProfile > &agentProfiles)
Imports the AgentProfiles section of the profiles catalog. More...
static void | ImportProfileGroups (ProfileGroups &profileGroups, QDomElement &profilesElement)
Imports all ProfileGroups defined in the profiles catalog. More...
static void | ImportVehicleProfiles (QDomElement vehicleProfilesElement, std::unordered_map< std::string, VehicleProfile > &vehicleProfiles)
Imports the AgentProfiles section of the profiles catalog. More...
static VehicleProfile | ImportVehicleProfile (QDomElement vehicleProfileElement)
Imports a single VehicleProfile. More...
static void | ImportAllVehicleComponentsOfVehicleProfile (QDomElement vehicleProfileElement, VehicleProfile &vehicleProfile)
Imports all VehicleComponentes contained in one VehicleProfile. More...
static void | ImportVehicleComponent (QDomElement vehicleComponentElement, VehicleComponent &vehicleComponent)
Imports a single VehicleComponentes contained in one VehicleProfile. More...
static void | ImportSensorLinksOfComponent (QDomElement sensorLinksElement, std::list< SensorLink > &sensorLinks)
Imports all SensorLinks of a VehicleComponents contained in one VehicleProfile. More...
static void | ImportAllSensorsOfVehicleProfile (QDomElement vehicleProfileElement, VehicleProfile &vehicleProfile)
Imports all Sensor contained in one VehicleProfiles. More...
static void | ImportSensorParameters (QDomElement sensorElement, openpass::sensors::Parameter &sensorParameter)
Imports a single Sensor contained in one VehicleProfile. More...
static bool | Import (const std::string &filename, Profiles &profiles)
Imports the entire profiles catalog. More...

Member Function Documentation

void ImportAgentProfiles | ( | QDomElement | agentProfilesElement,
 |  | std::unordered_map< std::string, AgentProfile > & | agentProfiles
 | ) |  |
static

Imports the AgentProfiles section of the profiles catalog.

Parameters
[in] | agentProfilesElement | Element containing the information
[out] | agentProfiles | Map into which the values get saved
Returns
true, if successful
24 {
25 QDomElement agentProfileElement;
26 ThrowIfFalse(GetFirstChildElement(agentProfilesElement, TAG::agentProfile, agentProfileElement),
27 agentProfilesElement, "Tag " + std::string(TAG::agentProfile) + " is missing.");
28
29 while (!agentProfileElement.isNull())
30 {
31 std::string agentProfileName;
32 ThrowIfFalse(ParseAttributeString(agentProfileElement, ATTRIBUTE::name, agentProfileName),
33 agentProfileElement, "Attribute " + std::string(ATTRIBUTE::name) + " is missing.");
34
35 std::string profileType;
36 ThrowIfFalse(ParseAttributeString(agentProfileElement, ATTRIBUTE::type, profileType),
37 agentProfileElement, "Attribute " + std::string(ATTRIBUTE::type) + " is missing.");
38
39 AgentProfile agentProfile;
40
41 if (profileType == "Dynamic")
42 {
43 agentProfile.type = AgentProfileType::Dynamic;
44
45 //Parses all driver profiles
46 QDomElement driverProfilesElement;
47 ThrowIfFalse(GetFirstChildElement(agentProfileElement, TAG::driverProfiles, driverProfilesElement),
48 agentProfileElement, "Tag " + std::string(TAG::driverProfiles) + " is missing.");
49 ThrowIfFalse(ImportProbabilityMap(driverProfilesElement, ATTRIBUTE::name, TAG::driverProfile, agentProfile.driverProfiles),
50 driverProfilesElement, "Invalid probalities");
51
52 //Parses all vehicle profiles
53 QDomElement vehicleProfilesElement;
54 ThrowIfFalse(GetFirstChildElement(agentProfileElement, TAG::vehicleProfiles, vehicleProfilesElement),
55 agentProfileElement, "Tag " + std::string(TAG::vehicleProfiles) + " is missing.");
56 ThrowIfFalse(ImportProbabilityMap(vehicleProfilesElement, ATTRIBUTE::name, TAG::vehicleProfile, agentProfile.vehicleProfiles),
57 vehicleProfilesElement, "Invalid probalities");
58 }
59 else
60 {
61 ThrowIfFalse(profileType == "Static", "Invalid agent profile type.");
62
63 agentProfile.type = AgentProfileType::Static;
64 QDomElement systemElement;
65 ThrowIfFalse(GetFirstChildElement(agentProfileElement, TAG::system, systemElement),
66 agentProfileElement, "Tag " + std::string(TAG::system) + " is missing.");
67
68 std::string systemConfigFile;
69 ThrowIfFalse(ParseString(systemElement, ATTRIBUTE::file, systemConfigFile),
70 systemElement, "Attribute " + std::string(ATTRIBUTE::file) + " is missing.");
71
72 agentProfile.systemConfigFile = systemConfigFile;
73
74 int systemId;
75 ThrowIfFalse(ParseInt(systemElement, ATTRIBUTE::id, systemId),
76 systemElement, "Attribute " + std::string(ATTRIBUTE::id) + " is missing.");
77
78 agentProfile.systemId = systemId;
79
80 std::string vehicleModel;
81 ThrowIfFalse(ParseString(agentProfileElement, ATTRIBUTE::vehicleModel, vehicleModel),
82 agentProfileElement, "Attribute " + std::string(ATTRIBUTE::vehicleModel) + " is missing.");
83
84 agentProfile.vehicleModel = vehicleModel;
85 }
86
87 auto insertReturn = agentProfiles.insert({agentProfileName, agentProfile});
88 ThrowIfFalse(insertReturn.second, agentProfileElement, "AgentProfile names need to be unique.");
89
90 agentProfileElement = agentProfileElement.nextSiblingElement(TAG::agentProfile);
91 }
92 }
void ImportProfileGroups | ( | ProfileGroups & | profileGroups,
 |  | QDomElement & | profilesElement
 | ) |  |
static

Imports all ProfileGroups defined in the profiles catalog.

Parameters
profileGroups | Element containing the information
profilesElement | Map into which the values get saved
95 {
96 QDomElement profileGroupElement;
97 ThrowIfFalse(GetFirstChildElement(profilesElement, TAG::profileGroup, profileGroupElement),
98 "ProfileGroup element is missing.");
99
100 while (!profileGroupElement.isNull())
101 {
102 std::string profileType;
103 ThrowIfFalse(ParseAttributeString(profileGroupElement, ATTRIBUTE::type, profileType),
104 profileGroupElement, "Attribute " + std::string(ATTRIBUTE::type) + " is missing.");
105
106 QDomElement profileElement;
107 GetFirstChildElement(profileGroupElement, TAG::profile, profileElement);
108
109 while (!profileElement.isNull())
110 {
111 std::string profileName;
112 ThrowIfFalse(ParseAttributeString(profileElement, ATTRIBUTE::name, profileName),
113 profileElement, "Attribute " + std::string(ATTRIBUTE::name) + " is missing.");
114
115 openpass::parameter::ParameterSetLevel1 parameters {};
116 try
117 {
118 parameters = openpass::parameter::Import(profileElement, profilesElement);
119 }
120 catch(const std::runtime_error &error)
121 {
122 LogErrorAndThrow("Could not import spawner profile parameters: " + std::string(error.what()));
123 }
124
125 auto insertReturn = profileGroups[profileType].emplace(profileName, parameters);
126 ThrowIfFalse(insertReturn.second, profileElement, "Profile names need to be unique within a ProfileGroup");
127
128 profileElement = profileElement.nextSiblingElement(TAG::profile);
129 }
130 profileGroupElement = profileGroupElement.nextSiblingElement(TAG::profileGroup);
131 }
132 }
void ImportVehicleProfiles | ( | QDomElement | vehicleProfilesElement,
 |  | std::unordered_map< std::string, VehicleProfile > & | vehicleProfiles
 | ) |  |
static

Imports the AgentProfiles section of the profiles catalog.

Parameters
[in] | agentProfilesElement | Element containing the information
[out] | agentProfiles | Map into which the values get saved
Returns
true, if successful
264 {
265 QDomElement vehicleProfileElement;
266 GetFirstChildElement(vehicleProfilesElement, TAG::vehicleProfile, vehicleProfileElement);
267
268 while (!vehicleProfileElement.isNull())
269 {
270 std::string profileName;
271 ThrowIfFalse(ParseAttributeString(vehicleProfileElement, ATTRIBUTE::name, profileName),
272 vehicleProfileElement, "Attribute " + std::string(ATTRIBUTE::name) + " is missing.");
273
274 auto vehicleProfile = ImportVehicleProfile(vehicleProfileElement);
275 vehicleProfiles.insert(std::make_pair<std::string&, VehicleProfile&>(profileName, vehicleProfile));
276
277 vehicleProfileElement = vehicleProfileElement.nextSiblingElement(TAG::vehicleProfile);
278 }
279 }
Importer::ProfilesImporter::ImportVehicleProfile
static VehicleProfile ImportVehicleProfile(QDomElement vehicleProfileElement)
Imports a single VehicleProfile.
Definition: profilesImporter.cpp:246
VehicleProfile ImportVehicleProfile ( QDomElement vehicleProfileElement )
static

Imports a single VehicleProfile.

Parameters
vehicleProfileElement | Element containing the information
vehicleProfile | VehicleProfile to fill
Returns
247 {
248 VehicleProfile vehicleProfile;
249
250 QDomElement vehicleModelElement;
251 ThrowIfFalse(GetFirstChildElement(vehicleProfileElement, TAG::model, vehicleModelElement),
252 vehicleProfileElement, "Tag " + std::string(TAG::model) + " is missing.");
253 ThrowIfFalse(ParseAttributeString(vehicleModelElement, ATTRIBUTE::name, vehicleProfile.vehicleModel),
254 vehicleModelElement, "Attribute " + std::string(ATTRIBUTE::name) + " is missing.");
255
256 ImportAllVehicleComponentsOfVehicleProfile(vehicleProfileElement, vehicleProfile);
257 ImportAllSensorsOfVehicleProfile(vehicleProfileElement, vehicleProfile);
258
259 return vehicleProfile;
260 }
Importer::ProfilesImporter::ImportAllVehicleComponentsOfVehicleProfile
static void ImportAllVehicleComponentsOfVehicleProfile(QDomElement vehicleProfileElement, VehicleProfile &vehicleProfile)
Imports all VehicleComponentes contained in one VehicleProfile.
Definition: profilesImporter.cpp:174
Importer::ProfilesImporter::ImportAllSensorsOfVehicleProfile
static void ImportAllSensorsOfVehicleProfile(QDomElement vehicleProfileElement, VehicleProfile &vehicleProfile)
Imports all Sensor contained in one VehicleProfiles.
Definition: profilesImporter.cpp:226
void ImportAllVehicleComponentsOfVehicleProfile | ( | QDomElement | vehicleProfileElement,
 |  | VehicleProfile & | vehicleProfile
 | ) |  |
static

Imports all VehicleComponentes contained in one VehicleProfile.

Parameters
vehicleProfileElement | Element containing the information
vehicleProfile | VehicleProfile to fill
Returns
176 {
177 QDomElement vehicleComponentsElement;
178 ThrowIfFalse(GetFirstChildElement(vehicleProfileElement, TAG::components, vehicleComponentsElement),
179 vehicleProfileElement, "Tag " + std::string(TAG::components) + " is missing.");
180
181 QDomElement componentElement;
182 GetFirstChildElement(vehicleComponentsElement, TAG::component, componentElement);
183
184 while (!componentElement.isNull())
185 {
186 VehicleComponent vehicleComponent;
187 ImportVehicleComponent(componentElement, vehicleComponent);
188
189 vehicleProfile.vehicleComponents.push_back(vehicleComponent);
190 componentElement = componentElement.nextSiblingElement(TAG::component);
191 }
192 }
Importer::ProfilesImporter::ImportVehicleComponent
static void ImportVehicleComponent(QDomElement vehicleComponentElement, VehicleComponent &vehicleComponent)
Imports a single VehicleComponentes contained in one VehicleProfile.
Definition: profilesImporter.cpp:158
void ImportVehicleComponent | ( | QDomElement | vehicleComponentElement,
 |  | VehicleComponent & | vehicleComponent
 | ) |  |
static

Imports a single VehicleComponentes contained in one VehicleProfile.

Parameters
vehicleComponentElement | Element containing the information
vehicleComponent | VehicleComponent to fill
Returns
159 {
160 ThrowIfFalse(ParseAttributeString(vehicleComponentElement, ATTRIBUTE::type, vehicleComponent.type),
161 vehicleComponentElement, "Attribute " + std::string(ATTRIBUTE::type) + " is missing.");
162
163 QDomElement profilesElement;
164 ThrowIfFalse(GetFirstChildElement(vehicleComponentElement, TAG::profiles, profilesElement),
165 vehicleComponentElement, "Tag " + std::string(TAG::profiles) + " is missing.");
166 ThrowIfFalse(ImportProbabilityMap(profilesElement, ATTRIBUTE::name, "Profile", vehicleComponent.componentProfiles, false),
167 profilesElement, "Attribute " + std::string(ATTRIBUTE::name) + " is missing.");
168
169 QDomElement sensorLinksElement;
170 GetFirstChildElement(vehicleComponentElement, TAG::sensorLinks, sensorLinksElement);
171 ImportSensorLinksOfComponent(sensorLinksElement, vehicleComponent.sensorLinks);
172 }
Importer::ProfilesImporter::ImportSensorLinksOfComponent
static void ImportSensorLinksOfComponent(QDomElement sensorLinksElement, std::list< SensorLink > &sensorLinks)
Imports all SensorLinks of a VehicleComponents contained in one VehicleProfile.
Definition: profilesImporter.cpp:134
void ImportSensorLinksOfComponent | ( | QDomElement | sensorLinksElement,
 |  | std::list< SensorLink > & | sensorLinks
 | ) |  |
static

Imports all SensorLinks of a VehicleComponents contained in one VehicleProfile.

Parameters
sensorLinksElement | Element containing the information
sensorLinksElement | Map into which SensorLinks are saved
Returns
135 {
136 QDomElement sensorLinkElement;
137 GetFirstChildElement(sensorLinksElement, TAG::sensorLink, sensorLinkElement);
138
139 while (!sensorLinkElement.isNull())
140 {
141 int sensorId;
142 std::string inputId;
143
144 ThrowIfFalse(ParseAttributeInt(sensorLinkElement, ATTRIBUTE::sensorId, sensorId),
145 sensorLinkElement, "Attribute " + std::string(ATTRIBUTE::sensorId) + " is missing.");
146 ThrowIfFalse(ParseAttributeString(sensorLinkElement, ATTRIBUTE::inputId, inputId),
147 sensorLinkElement, "Attribute " + std::string(ATTRIBUTE::inputId) + " is missing.");
148
149 SensorLink sensorLink{};
150 sensorLink.sensorId = sensorId;
151 sensorLink.inputId = inputId;
152 sensorLinks.push_back(sensorLink);
153
154 sensorLinkElement = sensorLinkElement.nextSiblingElement(TAG::sensorLink);
155 }
156 }
void ImportAllSensorsOfVehicleProfile | ( | QDomElement | vehicleProfileElement,
 |  | VehicleProfile & | vehicleProfile
 | ) |  |
static

Imports all Sensor contained in one VehicleProfiles.

Parameters
vehicleProfileElement | Element containing the information
vehicleProfile | VehicleProfile to fill
Returns
228 {
229 QDomElement sensorsElement;
230 ThrowIfFalse(GetFirstChildElement(vehicleProfileElement, TAG::sensors, sensorsElement),
231 vehicleProfileElement, "Tag " + std::string(TAG::sensors) + " is missing.");
232
233 QDomElement sensorElement;
234 GetFirstChildElement(sensorsElement, TAG::sensor, sensorElement);
235
236 while (!sensorElement.isNull())
237 {
238 openpass::sensors::Parameter sensor;
239 ImportSensorParameters(sensorElement, sensor);
240
241 vehicleProfile.sensors.push_back(sensor);
242 sensorElement = sensorElement.nextSiblingElement(TAG::sensor);
243 }
244 }
openpass::sensors::Parameter
Definition: sensorDefinitions.h:35
Importer::ProfilesImporter::ImportSensorParameters
static void ImportSensorParameters(QDomElement sensorElement, openpass::sensors::Parameter &sensorParameter)
Imports a single Sensor contained in one VehicleProfile.
Definition: profilesImporter.cpp:194
void ImportSensorParameters | ( | QDomElement | sensorElement,
 |  | openpass::sensors::Parameter & | sensorParameter
 | ) |  |
static

Imports a single Sensor contained in one VehicleProfile.

Parameters
sensorElement | Element containing the information
sensorParameter | SensorParameter to fill
Returns
195 {
196 ThrowIfFalse(ParseAttributeInt(sensorElement, ATTRIBUTE::id, sensor.id),
197 sensorElement, "Attribute " + std::string(ATTRIBUTE::id) + " is missing.");
198
199 QDomElement positionElement;
200 ThrowIfFalse(GetFirstChildElement(sensorElement, TAG::position, positionElement),
201 sensorElement, "Tag " + std::string(TAG::position) + " is missing.");
202 ThrowIfFalse(ParseAttributeString(positionElement, ATTRIBUTE::name, sensor.position.name),
203 positionElement, "Attribute " + std::string(ATTRIBUTE::name) + " is missing.");
204 ThrowIfFalse(ParseAttributeDouble(positionElement, ATTRIBUTE::longitudinal, sensor.position.longitudinal),
205 positionElement, "Attribute " + std::string(ATTRIBUTE::longitudinal) + " is missing.");
206 ThrowIfFalse(ParseAttributeDouble(positionElement, ATTRIBUTE::lateral, sensor.position.lateral),
207 positionElement, "Attribute " + std::string(ATTRIBUTE::lateral) + " is missing.");
208 ThrowIfFalse(ParseAttributeDouble(positionElement, ATTRIBUTE::height, sensor.position.height),
209 positionElement, "Attribute " + std::string(ATTRIBUTE::height) + " is missing.");
210 ThrowIfFalse(ParseAttributeDouble(positionElement, ATTRIBUTE::pitch, sensor.position.pitch),
211 positionElement, "Attribute " + std::string(ATTRIBUTE::pitch) + " is missing.");
212 ThrowIfFalse(ParseAttributeDouble(positionElement, ATTRIBUTE::yaw, sensor.position.yaw),
213 positionElement, "Attribute " + std::string(ATTRIBUTE::yaw) + " is missing.");
214 ThrowIfFalse(ParseAttributeDouble(positionElement, ATTRIBUTE::roll, sensor.position.roll),
215 positionElement, "Attribute " + std::string(ATTRIBUTE::roll) + " is missing.");
216
217 QDomElement profileElement;
218 ThrowIfFalse(GetFirstChildElement(sensorElement, TAG::profile, profileElement),
219 sensorElement, "Tag " + std::string(TAG::profile) + " is missing.");
220 ThrowIfFalse(ParseAttributeString(profileElement, ATTRIBUTE::type, sensor.profile.type),
221 profileElement, "Attribute " + std::string(ATTRIBUTE::type) + " is missing.");
222 ThrowIfFalse(ParseAttributeString(profileElement, ATTRIBUTE::name, sensor.profile.name),
223 profileElement, "Attribute " + std::string(ATTRIBUTE::name) + " is missing.");
224 }
bool Import | ( | const std::string & | filename,
 |  | Profiles & | profiles
 | ) |  |
static

Imports the entire profiles catalog.

Calls all sections specific methods and saves the result in the CombiantionConfig

Parameters
[in] | filename | Name of the SlaveConfig file
[out] | slaveConfig | Calss into which the values get saved
Returns
true, if successful
282 {
283 try
284 {
285 std::locale::global(std::locale("C"));
286
287 QFile xmlFile(filename.c_str()); // automatic object will be closed on destruction
288 ThrowIfFalse(xmlFile.open(QIODevice::ReadOnly), "an error occurred during profilesCatalog import");
289
290 QByteArray xmlData(xmlFile.readAll());
291 QDomDocument document;
292 QString errorMsg{};
293 int errorLine{};
294 ThrowIfFalse(document.setContent(xmlData, &errorMsg, &errorLine), "Invalid xml format (" + filename + ") in line " + std::to_string(errorLine) + ": " + errorMsg.toStdString());
295
296 QDomElement documentRoot = document.documentElement();
297 ThrowIfFalse(!documentRoot.isNull(), "invalid document root " + filename);
298
299 std::string configVersion;
300 ParseAttributeString(documentRoot, ATTRIBUTE::schemaVersion, configVersion);
301 ThrowIfFalse(configVersion.compare(supportedConfigVersion) == 0, "ProfilesCatalog version is not supported. Supported version is " + std::string(supportedConfigVersion));
302
303 QDomElement agentProfilesElement;
304 ThrowIfFalse(GetFirstChildElement(documentRoot, TAG::agentProfiles, agentProfilesElement),
305 "AgentProfiles element is missing.");
306 ImportAgentProfiles(agentProfilesElement, profiles.GetAgentProfiles());
307
308 QDomElement vehicleProfilesElement;
309 ThrowIfFalse(GetFirstChildElement(documentRoot, TAG::vehicleProfiles, vehicleProfilesElement),
310 "VehicleProfiles element is missing.");
311 ImportVehicleProfiles(vehicleProfilesElement, profiles.GetVehicleProfiles());
312
313 ImportProfileGroups(profiles.GetProfileGroups(), documentRoot);
314
315 return true;
316 }
317 catch (std::runtime_error& e)
318 {
319 LOG_INTERN(LogLevel::Error) << "Profiles import failed: " + std::string(e.what());
320 return false;
321 }
322
323 }
Importer::ProfilesImporter::ImportProfileGroups
static void ImportProfileGroups(ProfileGroups &profileGroups, QDomElement &profilesElement)
Imports all ProfileGroups defined in the profiles catalog.
Definition: profilesImporter.cpp:94
Importer::ProfilesImporter::ImportAgentProfiles
static void ImportAgentProfiles(QDomElement agentProfilesElement, std::unordered_map< std::string, AgentProfile > &agentProfiles)
Imports the AgentProfiles section of the profiles catalog.
Definition: profilesImporter.cpp:22
Importer::ProfilesImporter::ImportVehicleProfiles
static void ImportVehicleProfiles(QDomElement vehicleProfilesElement, std::unordered_map< std::string, VehicleProfile > &vehicleProfiles)
Imports the AgentProfiles section of the profiles catalog.
Definition: profilesImporter.cpp:262

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: ScenarioImporter Class Reference

  • Importer
  • ScenarioImporter
Static Public Member Functions | List of all members
ScenarioImporter Class Reference

Static Public Member Functions

static void | ImportEntity (QDomElement &entityElement, ScenarioEntity &entity, openScenario::Parameters &parameters)
Imports an entity of a OpenSCENARIO Entities DOM. More...
static void | ImportStoryboard (QDomElement &documentRoot, std::vector< ScenarioEntity > &entities, ScenarioInterface *scenario, openScenario::Parameters &parameters)
Imports the storyboard from OpenSCENARIO DOM. More...
static std::string | ImportCatalog (const std::string &catalogName, QDomElement &catalogsElement, openScenario::Parameters &parameters)
Imports a catalog tag. More...

Member Function Documentation

void ImportEntity | ( | QDomElement & | entityElement,
 |  | ScenarioEntity & | entity,
 |  | openScenario::Parameters & | parameters
 | ) |  |
static

Imports an entity of a OpenSCENARIO Entities DOM.

Parameters
[in] | entityElement | The DOM root of the entity element
[out] | entity | Entity element data is imported into this container
[in] | parameters | declared parameters
558 {
559 entity.name = ParseAttribute<std::string>(entityElement, ATTRIBUTE::name, parameters);
560 ThrowIfFalse(entity.name.size() > 0,
561 entityElement, "Length of entity object name has to be greater than 0");
562
563 QDomElement catalogReferenceElement;
564 ThrowIfFalse(SimulationCommon::GetFirstChildElement(entityElement, TAG::catalogReference, catalogReferenceElement),
565 entityElement, "Tag " + std::string(TAG::catalogReference) + " is missing.");
566 ImportEntityCatalogReference(catalogReferenceElement, entity, parameters);
567 }
void ImportStoryboard | ( | QDomElement & | documentRoot,
 |  | std::vector< ScenarioEntity > & | entities,
 |  | ScenarioInterface * | scenario,
 |  | openScenario::Parameters & | parameters
 | ) |  |
static

Imports the storyboard from OpenSCENARIO DOM.

Parameters
[in] | documentRoot | The DOM root of the scenario file
[in] | entities | Objects from 'Entities' tag
[out] | scenario | The storyboard is imported into this scenario
[in] | parameters | declared parameters
138 {
139 QDomElement storyboardElement;
140 ThrowIfFalse(SimulationCommon::GetFirstChildElement(documentRoot, TAG::storyboard, storyboardElement),
141 documentRoot, "Tag " + std::string(TAG::storyboard) + " is missing.");
142
143 //Import Init
144 QDomElement initElement;
145 // for initial entitiy parameters we just use first child "Init" --> others will be ignore
146 ThrowIfFalse(SimulationCommon::GetFirstChildElement(storyboardElement, TAG::init, initElement),
147 storyboardElement, "Tag " + std::string(TAG::init) + " is missing.");
148 ImportInitElement(initElement, entities, parameters);
149
150 // Import Story
151 QDomElement storyElement;
152
153 SimulationCommon::GetFirstChildElement(storyboardElement, TAG::story, storyElement);
154
155 while (!storyElement.isNull())
156 {
157 ImportStoryElement(storyElement, entities, scenario, parameters);
158 storyElement = storyElement.nextSiblingElement(TAG::story);
159 }
160
161 // Import EndCondition
162 ImportEndConditionsFromStoryboard(storyboardElement, scenario, parameters);
163 }
std::string ImportCatalog | ( | const std::string & | catalogName,
 |  | QDomElement & | catalogsElement,
 |  | openScenario::Parameters & | parameters
 | ) |  |
static

Imports a catalog tag.

Parameters
[in] | catalogName | Name of the catalog to import
[in] | catatalogsElement | DOM element holding all available catalogs
[in] | parameters | declared parameters
Returns
True on successful parsing, false otherwise.
492 {
493 QDomElement catalogElement;
494 ThrowIfFalse(SimulationCommon::GetFirstChildElement(catalogsElement, catalogName, catalogElement),
495 catalogsElement, "Tag " + catalogName + " is missing.");
496
497 QDomElement directoryElement;
498 ThrowIfFalse(SimulationCommon::GetFirstChildElement(catalogElement, TAG::directory, directoryElement),
499 catalogElement, "Tag " + std::string(TAG::directory) + " is missing.");
500
501 std::string catalogPath = ParseAttribute<std::string>(directoryElement, ATTRIBUTE::path, parameters);
502
503 return catalogPath;
504 }
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: SceneryImporter Class Reference

  • Importer
  • SceneryImporter
Static Public Member Functions | List of all members
SceneryImporter Class Reference

Static Public Member Functions

static bool | Import (const std::string &filename, Scenery *scenery)
static void | ParseRoads (QDomElement &documentRoot, Scenery *scenery)
Parses roads into a scenery object. More...
static void | ParseJunctions (QDomElement &documentRoot, Scenery *scenery)
Parses junctions into a scenery object. More...
static void | ParseJunctionConnections (QDomElement &junctionElement, JunctionInterface *junction)
Parses connections into a junction object. More...
static void | ParseJunctionConnectionLinks (QDomElement &connectionElement, ConnectionInterface *connection)
Parses connection links into a connection object. More...
static void | ParseJunctionPriorities (QDomElement &junctionElement, JunctionInterface *junction)
Parses priorities into a junction object. More...
static void | ParseSignals (QDomElement &roadElement, RoadInterface *road)
Parses the signals specification into a road object. More...
static void | ParseObjects (QDomElement &roadElement, RoadInterface *road)
Parses multiple OpenDRIVE road objects into a road object. More...
static void | ParseObject (QDomElement &objectElement, RoadInterface *road)
Parses a single OpenDRIVE object into a road object. More...
static void | ParseElementValidity (const QDomElement &rootElement, RoadElementValidity &validity)
Converts a validitiy tag into a vector with increasing lane numbers. More...
static void | ParseRoadTypes (QDomElement &roadElement, RoadInterface *road)
Parses the road typen into a road object. More...
static std::list< RoadObjectSpecification > | ParseObjectRepeat (QDomElement &objectElement, const RoadObjectSpecification &object)
Parses repeat tag of objects. More...
static void | ParseRepeat (QDomElement &repeatElement, RoadObjectSpecification object, std::list< RoadObjectSpecification > &objectRepitions)
Parses repeat objects into a list of road objects. More...
static void | ApplyRepeat (ObjectRepeat objectRepeat, RoadObjectSpecification object, std::list< RoadObjectSpecification > &objectRepitions)
Calculates and applies attributes to repeated objects. More...
static void | AddParsedObjectsToRoad (std::list< RoadObjectSpecification > parsedObjects, RoadInterface *road)
Add all objects from List to Road. More...
static void | ParseOptionalInterval (QDomElement &repeatElement, std::string startAttribute, std::string endAttribute, OptionalInterval &interval)
Parse optional parameters of an interval. More...

Member Function Documentation

bool Import | ( | const std::string & | filename,
 |  | Scenery * | scenery
 | ) |  |
static

Imports data structures from the scenery configuration file e.g. OpenDrive file

Parameters
[in] filename path to OpenDrive file
Returns
true on success

Imports a scenery from a given file

Parameters
[in] | filename | DOM element containing e.g. OPENDrive road
[out] | globalObjects | Target container for the scenery data
Returns
False if an error occurred, true otherwise
1265 {
1266 try
1267 {
1268 std::locale::global(std::locale("C"));
1269
1270 QFile xmlFile(filename.c_str()); // automatic object will be closed on destruction
1271 ThrowIfFalse(xmlFile.open(QIODevice::ReadOnly),
1272 "an error occurred during scenery import");
1273
1274 QByteArray xmlData(xmlFile.readAll());
1275 QDomDocument document;
1276 QString errorMsg {};
1277 int errorLine {};
1278 ThrowIfFalse(document.setContent(xmlData, &errorMsg, &errorLine),
1279 "Invalid xml file format of file " + filename + " in line " + std::to_string(errorLine) + " : " + errorMsg.toStdString());
1280
1281 QDomElement documentRoot = document.documentElement();
1282 if (documentRoot.isNull())
1283 {
1284 return false;
1285 }
1286
1287 // parse junctions
1288 ParseJunctions(documentRoot, scenery);
1289
1290 // parse roads
1291 ParseRoads(documentRoot, scenery);
1292
1293 return true;
1294 }
1295 catch (std::runtime_error& e)
1296 {
1297 LOG_INTERN(LogLevel::Error) << "Scenery import failed: " + std::string(e.what());
1298 return false;
1299 }
1300 }
Importer::SceneryImporter::ParseRoads
static void ParseRoads(QDomElement &documentRoot, Scenery *scenery)
Parses roads into a scenery object.
Definition: sceneryImporter.cpp:1187
Importer::SceneryImporter::ParseJunctions
static void ParseJunctions(QDomElement &documentRoot, Scenery *scenery)
Parses junctions into a scenery object.
Definition: sceneryImporter.cpp:1232

Here is the caller graph for this function:

void ParseRoads | ( | QDomElement & | documentRoot,
 |  | Scenery * | scenery
 | ) |  |
static

Parses roads into a scenery object.

Note
Use this entry point only for testing or within the class context

OpenDRIVE attributes whose information is stored in the road:

  • road tag: id Then parses geometries, elevationProfile, road links, and road lanes.
Parameters
[in] | documentRoot | DOM element containing the OpenDRIVE road
[out] | scenery | Scenery with the contents of the DOM element
1189 {
1190 QDomElement roadElement;
1191 if (SimulationCommon::GetFirstChildElement(documentRoot, TAG::road, roadElement))
1192 {
1193 while (!roadElement.isNull())
1194 {
1195 // road id
1196 std::string id;
1197 ThrowIfFalse(SimulationCommon::ParseAttributeString(roadElement, ATTRIBUTE::id, id),
1198 roadElement, "Attribute " + std::string(ATTRIBUTE::id) + " is missing.");
1199
1200 RoadInterface* road = scenery->AddRoad(id);
1201 ThrowIfFalse(road != nullptr, roadElement, "Could not add Road");
1202
1203 std::string junctionId;
1204 if (!SimulationCommon::ParseAttributeString(roadElement, ATTRIBUTE::junction, junctionId))
1205 {
1206 junctionId = "-1";
1207 }
1208 road->SetJunctionId(junctionId);
1209
1210
1211 LOG_INTERN(LogLevel::DebugCore) << "road: id: " << id;
1212
1213 ParseGeometries(roadElement, road);
1214
1215 ParseElevationProfile(roadElement, road);
1216
1217 ParseRoadLinks(roadElement, road);
1218
1219 ParseRoadLanes(roadElement, road); // parsing laneOffset is included here
1220
1221 ParseObjects(roadElement, road);
1222
1223 ParseSignals(roadElement, road);
1224
1225 ParseRoadTypes(roadElement, road);
1226
1227 roadElement = roadElement.nextSiblingElement(TAG::road);
1228 } // road loop
1229 } // if roads exist
1230 }
Importer::SceneryImporter::ParseObjects
static void ParseObjects(QDomElement &roadElement, RoadInterface *road)
Parses multiple OpenDRIVE road objects into a road object.
Definition: sceneryImporter.cpp:783
Importer::SceneryImporter::ParseRoadTypes
static void ParseRoadTypes(QDomElement &roadElement, RoadInterface *road)
Parses the road typen into a road object.
Definition: sceneryImporter.cpp:985
Configuration::Scenery::AddRoad
RoadInterface * AddRoad(const std::string &id)
Definition: scenery.cpp:38
Importer::SceneryImporter::ParseSignals
static void ParseSignals(QDomElement &roadElement, RoadInterface *road)
Parses the signals specification into a road object.
Definition: sceneryImporter.cpp:702

Here is the call graph for this function:

void ParseJunctions | ( | QDomElement & | documentRoot,
 |  | Scenery * | scenery
 | ) |  |
static

Parses junctions into a scenery object.

Note
Use this entry point only for testing or within the class context
Parameters
[in] | documentRoot | DOM element containing the OpenDRIVE road
[out] | scenery | Scenery with the contents of the DOM element
1233 {
1234
1235 QDomElement junctionElement;
1236 if (SimulationCommon::GetFirstChildElement(documentRoot, TAG::junction, junctionElement))
1237 {
1238 while (!junctionElement.isNull())
1239 {
1240 std::string id;
1241 ThrowIfFalse(SimulationCommon::ParseAttributeString(junctionElement, ATTRIBUTE::id, id),
1242 junctionElement, "Attribute " + std::string(ATTRIBUTE::id) + " is missing.");
1243
1244 JunctionInterface* junction = scenery->AddJunction(id);
1245
1246 ParseJunctionConnections(junctionElement, junction);
1247 ParseJunctionPriorities(junctionElement, junction);
1248
1249 junctionElement = junctionElement.nextSiblingElement(TAG::junction);
1250 }
1251 }
1252 }
Importer::SceneryImporter::ParseJunctionConnections
static void ParseJunctionConnections(QDomElement &junctionElement, JunctionInterface *junction)
Parses connections into a junction object.
Definition: sceneryImporter.cpp:1103
Importer::SceneryImporter::ParseJunctionPriorities
static void ParseJunctionPriorities(QDomElement &junctionElement, JunctionInterface *junction)
Parses priorities into a junction object.
Definition: sceneryImporter.cpp:1167
Configuration::Scenery::AddJunction
JunctionInterface * AddJunction(const std::string &id)
Definition: scenery.cpp:57

Here is the call graph for this function:

void ParseJunctionConnections | ( | QDomElement & | junctionElement,
 |  | JunctionInterface * | junction
 | ) |  |
static

Parses connections into a junction object.

Note
Use this entry point only for testing or within the class context
Parameters
[in] | junctionElement | DOM element containing the OpenDRIVE junction
[out] | junction | Junction with the contents of the DOM element
1104 {
1105 QDomElement connectionElement;
1106 if (SimulationCommon::GetFirstChildElement(junctionElement, TAG::connection, connectionElement))
1107 {
1108 while (!connectionElement.isNull())
1109 {
1110 std::string id;
1111 ThrowIfFalse(SimulationCommon::ParseAttributeString(connectionElement, ATTRIBUTE::id, id),
1112 connectionElement, "Attribute " + std::string(ATTRIBUTE::id) + " is missing.");
1113 std::string incomingRoad;
1114 ThrowIfFalse(SimulationCommon::ParseAttributeString(connectionElement, ATTRIBUTE::incomingRoad, incomingRoad),
1115 connectionElement, "Attribute " + std::string(ATTRIBUTE::incomingRoad) + " is missing.");
1116 std::string connectingRoad;
1117 ThrowIfFalse(SimulationCommon::ParseAttributeString(connectionElement, ATTRIBUTE::connectingRoad, connectingRoad),
1118 connectionElement, "Attribute " + std::string(ATTRIBUTE::connectingRoad) + " is missing.");
1119 std::string contactPoint;
1120 ThrowIfFalse(SimulationCommon::ParseAttributeString(connectionElement, ATTRIBUTE::contactPoint, contactPoint),
1121 connectionElement, "Attribute " + std::string(ATTRIBUTE::contactPoint) + " is missing.");
1122
1123 ContactPointType roadLinkContactPoint = ContactPointType::Undefined;
1124
1125
1126 if (0 == contactPoint.compare("start"))
1127 {
1128 roadLinkContactPoint = ContactPointType::Start;
1129 }
1130 else
1131 if (0 == contactPoint.compare("end"))
1132 {
1133 roadLinkContactPoint = ContactPointType::End;
1134 }
1135
1136
1137 ConnectionInterface* connection = junction->AddConnection(id, incomingRoad, connectingRoad, roadLinkContactPoint);
1138
1139 ParseJunctionConnectionLinks(connectionElement, connection);
1140
1141 connectionElement = connectionElement.nextSiblingElement(TAG::connection);
1142 }
1143 }
1144 }
Importer::SceneryImporter::ParseJunctionConnectionLinks
static void ParseJunctionConnectionLinks(QDomElement &connectionElement, ConnectionInterface *connection)
Parses connection links into a connection object.
Definition: sceneryImporter.cpp:1146
void ParseJunctionConnectionLinks | ( | QDomElement & | connectionElement,
 |  | ConnectionInterface * | connection
 | ) |  |
static

Parses connection links into a connection object.

Note
Use this entry point only for testing or within the class context
Parameters
[in] | junctionElement | DOM element containing the OpenDRIVE junction
[out] | junction | Connection with the contents of the DOM element
Returns
False if an error occurred, true otherwise
1147 {
1148 QDomElement linkElement;
1149 if (SimulationCommon::GetFirstChildElement(connectionElement, TAG::laneLink, linkElement))
1150 {
1151 while (!linkElement.isNull())
1152 {
1153 int from;
1154 ThrowIfFalse(SimulationCommon::ParseAttributeInt(linkElement, ATTRIBUTE::from, from),
1155 linkElement, "Attribute " + std::string(ATTRIBUTE::from) + " is missing.");
1156
1157 int to;
1158 ThrowIfFalse(SimulationCommon::ParseAttributeInt(linkElement, ATTRIBUTE::to, to),
1159 linkElement, "Attribute " + std::string(ATTRIBUTE::to) + " is missing.");
1160 connection->AddLink(from, to);
1161
1162 linkElement = linkElement.nextSiblingElement(TAG::laneLink);
1163 }
1164 }
1165 }
void ParseJunctionPriorities | ( | QDomElement & | junctionElement,
 |  | JunctionInterface * | junction
 | ) |  |
static

Parses priorities into a junction object.

Note
Use this entry point only for testing or within the class context
Parameters
[in] | junctionElement | DOM element containing the OpenDRIVE junction
[out] | junction | Junction with the contents of the DOM element
1168 {
1169 QDomElement priorityElement;
1170 if (SimulationCommon::GetFirstChildElement(junctionElement, TAG::priority, priorityElement))
1171 {
1172 while (!priorityElement.isNull())
1173 {
1174 Priority priority;
1175 ThrowIfFalse(SimulationCommon::ParseAttributeString(priorityElement, ATTRIBUTE::high, priority.high),
1176 priorityElement, "Attribute " + std::string(ATTRIBUTE::high) + " is missing.");
1177 ThrowIfFalse(SimulationCommon::ParseAttributeString(priorityElement, ATTRIBUTE::low, priority.low),
1178 priorityElement, "Attribute " + std::string(ATTRIBUTE::low) + " is missing.");
1179
1180 junction->AddPriority(priority);
1181
1182 priorityElement = priorityElement.nextSiblingElement(TAG::priority);
1183 }
1184 }
1185 }
void ParseSignals | ( | QDomElement & | roadElement,
 |  | RoadInterface * | road
 | ) |  |
static

Parses the signals specification into a road object.

OpenDRIVE attributes whose information is stored in the road:

  • signals tag
  • signal subtag: s, t, dynamic, type, subtype, value, unit, and orientation
  • optional: validity subtag fromLane and toLane
Parameters
[in] | roadElement | DOM element containing the OpenDRIVE road
[out] | road | Road with the contents of the DOM element
704 {
705 using namespace SimulationCommon;
706
707 QDomElement signalsElement;
708 if (GetFirstChildElement(roadElement, TAG::Signals, signalsElement))
709 {
710 QDomElement signalElement;
711 if (GetFirstChildElement(signalsElement, TAG::signal, signalElement))
712 {
713 while (!signalElement.isNull())
714 {
715 RoadSignalSpecification signal;
716
717 ThrowIfFalse(ParseAttributeDouble(signalElement, ATTRIBUTE::s, signal.s),
718 signalElement, "Attribute " + std::string(ATTRIBUTE::s) + " is missing.");
719 ThrowIfFalse(ParseAttributeDouble(signalElement, ATTRIBUTE::t, signal.t),
720 signalElement, "Attribute " + std::string(ATTRIBUTE::t) + " is missing.");
721 ThrowIfFalse(ParseAttributeDouble(signalElement, ATTRIBUTE::zOffset, signal.zOffset),
722 signalElement, "Attribute " + std::string(ATTRIBUTE::zOffset) + " is missing.");
723 ThrowIfFalse(ParseAttributeDouble(signalElement, ATTRIBUTE::hOffset, signal.hOffset),
724 signalElement, "Attribute " + std::string(ATTRIBUTE::hOffset) + " is missing.");
725 ThrowIfFalse(ParseAttributeDouble(signalElement, ATTRIBUTE::pitch, signal.pitch),
726 signalElement, "Attribute " + std::string(ATTRIBUTE::pitch) + " is missing.");
727 ThrowIfFalse(ParseAttributeString(signalElement, ATTRIBUTE::id, signal.id),
728 signalElement, "Attribute " + std::string(ATTRIBUTE::id) + " is missing.");
729 ThrowIfFalse(ParseAttributeString(signalElement, ATTRIBUTE::name, signal.name),
730 signalElement, "Attribute " + std::string(ATTRIBUTE::name) + " is missing.");
731 ThrowIfFalse(ParseAttributeString(signalElement, ATTRIBUTE::dynamic, signal.dynamic, "no"),
732 signalElement, "Attribute " + std::string(ATTRIBUTE::dynamic) + " is missing.");
733 ThrowIfFalse(ParseAttributeString(signalElement, ATTRIBUTE::orientation, signal.orientation),
734 signalElement, "Attribute " + std::string(ATTRIBUTE::orientation) + " is missing.");
735 ThrowIfFalse(ParseAttributeString(signalElement, ATTRIBUTE::country, signal.country),
736 signalElement, "Attribute " + std::string(ATTRIBUTE::country) + " is missing.");
737 ThrowIfFalse(ParseAttributeString(signalElement, ATTRIBUTE::type, signal.type),
738 signalElement, "Attribute " + std::string(ATTRIBUTE::type) + " is missing.");
739 ThrowIfFalse(ParseAttributeString(signalElement, ATTRIBUTE::subtype, signal.subtype),
740 signalElement, "Attribute " + std::string(ATTRIBUTE::subtype) + " is missing.");
741 // optional
742 std::string signalUnit;
743 ParseAttributeDouble(signalElement, ATTRIBUTE::value, signal.value);
744 ParseAttributeString(signalElement, ATTRIBUTE::unit, signalUnit);
745 ParseSignalUnit(signalUnit, signal.unit);
746
747 // not generated by ODDlot
748 // potentially optional - no clue from the standard
749 ParseAttributeDouble(signalElement, ATTRIBUTE::height, signal.height);
750 ParseAttributeDouble(signalElement, ATTRIBUTE::width, signal.width);
751 ParseAttributeString(signalElement, ATTRIBUTE::text, signal.text);
752
753 // check validity subtag
754 ParseElementValidity(signalElement, signal.validity);
755
756 // check other parameters
757 checkRoadSignalBoundaries(signal);
758
759 // check dependencies
760 QDomElement dependencyElement;
761 if (GetFirstChildElement(signalElement, TAG::dependency, dependencyElement))
762 {
763 std::string dependencyId {};
764
765 while (!dependencyElement.isNull())
766 {
767 ThrowIfFalse(ParseAttributeString(dependencyElement, ATTRIBUTE::id, dependencyId),
768 dependencyElement, "Attribute " + std::string(ATTRIBUTE::id) + " is missing.");
769 signal.dependencyIds.push_back(dependencyId);
770
771 dependencyElement = dependencyElement.nextSiblingElement(TAG::dependency);
772 }
773 }
774
775 road->AddRoadSignal(signal);
776
777 signalElement = signalElement.nextSiblingElement(TAG::signal);
778 }
779 }
780 }
781 }
Importer::SceneryImporter::ParseElementValidity
static void ParseElementValidity(const QDomElement &rootElement, RoadElementValidity &validity)
Converts a validitiy tag into a vector with increasing lane numbers.
Definition: sceneryImporter.cpp:954
SimulationCommon
Definition: callbacks.cpp:14
void ParseObjects | ( | QDomElement & | roadElement,
 |  | RoadInterface * | road
 | ) |  |
static

Parses multiple OpenDRIVE road objects into a road object.

OpenDRIVE attributes whose information is stored in the road:

  • objects tag
  • object subtag
Parameters
[in] | roadElement | DOM element containing the OpenDRIVE road
[out] | road | Road with the contents of the DOM element
784 {
785 using namespace SimulationCommon;
786
787 QDomElement objectsElement;
788 if (GetFirstChildElement(roadElement, TAG::objects, objectsElement))
789 {
790 QDomElement objectElement;
791 if (GetFirstChildElement(objectsElement, TAG::object, objectElement))
792 {
793 while (!objectElement.isNull())
794 {
795 ParseObject(objectElement, road);
796
797 objectElement = objectElement.nextSiblingElement(TAG::object);
798 }
799 }
800 }
801 }
Importer::SceneryImporter::ParseObject
static void ParseObject(QDomElement &objectElement, RoadInterface *road)
Parses a single OpenDRIVE object into a road object.
Definition: sceneryImporter.cpp:803
SimulationCommon
Definition: callbacks.cpp:14
void ParseObject | ( | QDomElement & | objectElement,
 |  | RoadInterface * | road
 | ) |  |
static

Parses a single OpenDRIVE object into a road object.

OpenDRIVE attributes whose information is stored in the road:

  • objects tag
  • object subtag
Parameters
[in] | objectElement | DOM element containing the OpenDRIVE object
[out] | road | Road with the contents of the DOM element
804 {
805 using namespace SimulationCommon;
806
807 RoadObjectSpecification object;
808
809 ThrowIfFalse(ParseAttributeType(objectElement, ATTRIBUTE::type, object.type),
810 objectElement, "Attribute " + std::string(ATTRIBUTE::type) + " is missing.");
811 ThrowIfFalse(ParseAttributeString(objectElement, ATTRIBUTE::name, object.name),
812 objectElement, "Attribute " + std::string(ATTRIBUTE::name) + " is missing.");
813 ThrowIfFalse(ParseAttributeString(objectElement, ATTRIBUTE::id, object.id),
814 objectElement, "Attribute " + std::string(ATTRIBUTE::id) + " is missing.");
815 ThrowIfFalse(ParseAttributeDouble(objectElement, ATTRIBUTE::s, object.s),
816 objectElement, "Attribute " + std::string(ATTRIBUTE::s) + " is missing.");
817 ThrowIfFalse(ParseAttributeDouble(objectElement, ATTRIBUTE::t, object.t),
818 objectElement, "Attribute " + std::string(ATTRIBUTE::t) + " is missing.");
819 ThrowIfFalse(ParseAttributeDouble(objectElement, ATTRIBUTE::zOffset, object.zOffset),
820 objectElement, "Attribute " + std::string(ATTRIBUTE::zOffset) + " is missing.");
821 ThrowIfFalse(ParseAttributeDouble(objectElement, ATTRIBUTE::validLength, object.validLength),
822 objectElement, "Attribute " + std::string(ATTRIBUTE::validLength) + " is missing.");
823 ThrowIfFalse(ParseAttributeType(objectElement, ATTRIBUTE::orientation, object.orientation),
824 objectElement, "Attribute " + std::string(ATTRIBUTE::orientation) + " is missing.");
825 ThrowIfFalse(ParseAttributeDouble(objectElement, ATTRIBUTE::width, object.width),
826 objectElement, "Attribute " + std::string(ATTRIBUTE::width) + " is missing.");
827 ThrowIfFalse(ParseAttributeDouble(objectElement, ATTRIBUTE::length, object.length),
828 objectElement, "Attribute " + std::string(ATTRIBUTE::length) + " is missing.");
829 ThrowIfFalse(ParseAttributeDouble(objectElement, ATTRIBUTE::height, object.height),
830 objectElement, "Attribute " + std::string(ATTRIBUTE::height) + " is missing.");
831 ThrowIfFalse(ParseAttributeDouble(objectElement, ATTRIBUTE::hdg, object.hdg),
832 objectElement, "Attribute " + std::string(ATTRIBUTE::hdg) + " is missing.");
833 ThrowIfFalse(ParseAttributeDouble(objectElement, ATTRIBUTE::pitch, object.pitch),
834 objectElement, "Attribute " + std::string(ATTRIBUTE::pitch) + " is missing.");
835 ThrowIfFalse(ParseAttributeDouble(objectElement, ATTRIBUTE::roll, object.roll),
836 objectElement, "Attribute " + std::string(ATTRIBUTE::roll) + " is missing.");
837 ParseAttributeDouble(objectElement, "radius", object.radius);
838
839 ThrowIfFalse(object.checkStandardCompliance(), objectElement, "limits of object are not valid for openDrive standard");
840
841 ThrowIfFalse(object.checkSimulatorCompliance(), objectElement, "Limits of object are not valid for the simulation. The Object will be ignored.");
842
843 ParseElementValidity(objectElement, object.validity);
844
845 std::list<RoadObjectSpecification> parsedObjectRepetitions = ParseObjectRepeat(objectElement, object);
846 AddParsedObjectsToRoad(parsedObjectRepetitions, road);
847
848 }
Importer::SceneryImporter::ParseElementValidity
static void ParseElementValidity(const QDomElement &rootElement, RoadElementValidity &validity)
Converts a validitiy tag into a vector with increasing lane numbers.
Definition: sceneryImporter.cpp:954
Importer::SceneryImporter::AddParsedObjectsToRoad
static void AddParsedObjectsToRoad(std::list< RoadObjectSpecification > parsedObjects, RoadInterface *road)
Add all objects from List to Road.
Definition: sceneryImporter.cpp:850
Importer::SceneryImporter::ParseObjectRepeat
static std::list< RoadObjectSpecification > ParseObjectRepeat(QDomElement &objectElement, const RoadObjectSpecification &object)
Parses repeat tag of objects.
Definition: sceneryImporter.cpp:858
SimulationCommon
Definition: callbacks.cpp:14
void ParseElementValidity | ( | const QDomElement & | rootElement,
 |  | RoadElementValidity & | validity
 | ) |  |
static

Converts a validitiy tag into a vector with increasing lane numbers.

Parameters
[in] | rootElement | root element containing a validity sub-tag
[out] | validities | parsed result
955 {
956 using namespace SimulationCommon;
957
958 QDomElement validityElement;
959 if (GetFirstChildElement(rootElement, TAG::validity, validityElement))
960 {
961 int fromLane;
962 int toLane;
963
964 ThrowIfFalse(ParseAttributeInt(validityElement, ATTRIBUTE::fromLane, fromLane),
965 validityElement, "Attribute " + std::string(ATTRIBUTE::fromLane) + " is missing.");
966 ThrowIfFalse(ParseAttributeInt(validityElement, ATTRIBUTE::toLane, toLane),
967 validityElement, "Attribute " + std::string(ATTRIBUTE::toLane) + " is missing.");
968
969 if (fromLane > toLane)
970 {
971 std::swap(fromLane, toLane);
972 }
973
974 for (int laneId = fromLane; laneId <= toLane; laneId++)
975 {
976 validity.lanes.push_back(laneId);
977 }
978 }
979 else
980 {
981 validity.all = true;
982 }
983 }
SimulationCommon
Definition: callbacks.cpp:14
void ParseRoadTypes | ( | QDomElement & | roadElement,
 |  | RoadInterface * | road
 | ) |  |
static

Parses the road typen into a road object.

Parameters
[in] | roadElement | DOM element containing the OpenDRIVE road
[out] | road | Road with the contents of the DOM element
986 {
987 using namespace SimulationCommon;
988
989
990 QDomElement typeElement;
991 if (GetFirstChildElement(roadElement, TAG::type, typeElement))
992 {
993 while (!typeElement.isNull())
994 {
995 RoadTypeSpecification roadType;
996 ThrowIfFalse(ParseAttributeDouble(typeElement, ATTRIBUTE::s, roadType.s),
997 typeElement, "Attribute " + std::string(ATTRIBUTE::s) + " is missing.");
998 std::string roadTypeStr;
999 ThrowIfFalse(ParseAttributeString(typeElement, ATTRIBUTE::type, roadTypeStr),
1000 typeElement, "Attribute " + std::string(ATTRIBUTE::type) + " is missing.");
1001
1002 roadType.roadType = roadTypeConversionMap.at(roadTypeStr);
1003
1004
1005 road->AddRoadType(roadType);
1006
1007 typeElement = typeElement.nextSiblingElement(TAG::type);
1008 }
1009 }
1010 }
SimulationCommon
Definition: callbacks.cpp:14
std::list< RoadObjectSpecification > ParseObjectRepeat | ( | QDomElement & | objectElement,
 |  | const RoadObjectSpecification & | object
 | ) |  |
static

Parses repeat tag of objects.

Parameters
[in] | objectElement | DOM element containing the traffic object
[out] | object | Object with the contents of the DOM element
Returns
List of all repeated objects
860 {
861 using namespace SimulationCommon;
862
863 std::list<RoadObjectSpecification> objectRepetitions;
864
865 QDomElement repeatElement;
866 if (GetFirstChildElement(objectElement, TAG::repeat, repeatElement))
867 {
868 while (!repeatElement.isNull())
869 {
870 ParseRepeat(repeatElement, object, objectRepetitions);
871 repeatElement = repeatElement.nextSiblingElement(TAG::repeat);
872 }
873 }
874 else
875 {
876 objectRepetitions.push_back(object);
877 }
878 return objectRepetitions;
879 }
Importer::SceneryImporter::ParseRepeat
static void ParseRepeat(QDomElement &repeatElement, RoadObjectSpecification object, std::list< RoadObjectSpecification > &objectRepitions)
Parses repeat objects into a list of road objects.
Definition: sceneryImporter.cpp:896
SimulationCommon
Definition: callbacks.cpp:14
void ParseRepeat | ( | QDomElement & | repeatElement,
 |  | RoadObjectSpecification | object,
 |  | std::list< RoadObjectSpecification > & | objectRepitions
 | ) |  |
static

Parses repeat objects into a list of road objects.

OpenDRIVE attributes whose information is stored in the road:

  • repeat tag s, length, distance optional: tStart, tEnd, widthStart, widthEnd, heightStart, heightEnd, zOffsetStart, zOffsetEnd
Parameters
[in] | repeatElement | DOM element containing the OpenDRIVE repeat element
[in] | object | DOM element of the parent object
[out] | objectRepetitions | Reference to a list of repeated road objects
898 {
899 using namespace SimulationCommon;
900 ObjectRepeat repeat;
901
902 ThrowIfFalse(ParseAttributeDouble(repeatElement, ATTRIBUTE::s, repeat.s),
903 repeatElement, "Attribute " + std::string(ATTRIBUTE::s) + " is missing.");
904 ThrowIfFalse(ParseAttributeDouble(repeatElement, ATTRIBUTE::length, repeat.length),
905 repeatElement, "Attribute " + std::string(ATTRIBUTE::length) + " is missing.");
906 ThrowIfFalse(ParseAttributeDouble(repeatElement, ATTRIBUTE::distance, repeat.distance),
907 repeatElement, "Attribute " + std::string(ATTRIBUTE::distance) + " is missing.");
908
909 ParseOptionalInterval(repeatElement, "tStart", "tEnd", repeat.t);
910 ParseOptionalInterval(repeatElement, "widthStart", "widthEnd", repeat.width);
911 ParseOptionalInterval(repeatElement, "heightStart", "heightEnd", repeat.height);
912 ParseOptionalInterval(repeatElement, "zOffsetStart", "zOffsetEnd", repeat.zOffset);
913
914 ThrowIfFalse(repeat.checkLimits(), repeatElement, "Invalid limits.");
915
916 return ApplyRepeat(repeat, object, objectRepitions);
917 }
Importer::SceneryImporter::ApplyRepeat
static void ApplyRepeat(ObjectRepeat objectRepeat, RoadObjectSpecification object, std::list< RoadObjectSpecification > &objectRepitions)
Calculates and applies attributes to repeated objects.
Definition: sceneryImporter.cpp:919
Importer::SceneryImporter::ParseOptionalInterval
static void ParseOptionalInterval(QDomElement &repeatElement, std::string startAttribute, std::string endAttribute, OptionalInterval &interval)
Parse optional parameters of an interval.
Definition: sceneryImporter.cpp:881
SimulationCommon
Definition: callbacks.cpp:14
void ApplyRepeat | ( | ObjectRepeat | objectRepeat,
 |  | RoadObjectSpecification | object,
 |  | std::list< RoadObjectSpecification > & | objectRepitions
 | ) |  |
static

Calculates and applies attributes to repeated objects.

OpenDRIVE attributes whose information is stored in the road:

  • repeat tag s, length, distance optional: tStart, tEnd, widthStart, widthEnd, heightStart, heightEnd, zOffsetStart, zOffsetEnd
Parameters
[in] | objectRepeat | Repeat data
[in] | object | Base road object
[out] | objectRepetitions | Reference to a list of repeated road objects to apply the data to
921 {
922 if (repeat.distance == 0)
923 {
924 repeat.distance = object.length;
925 }
926
927 int objectCount = int(repeat.length / repeat.distance);
928
929 std::vector<double> interpolatedT, interpolatedHeight, interpolatedWidth, interpolatedZOffset;
930
931 if (repeat.t.isSet) { interpolatedT = CommonHelper::InterpolateLinear(repeat.t.start, repeat.t.end, objectCount); }
932 if (repeat.height.isSet) { interpolatedHeight = CommonHelper::InterpolateLinear(repeat.height.start, repeat.height.end, objectCount); }
933 if (repeat.width.isSet) { interpolatedWidth = CommonHelper::InterpolateLinear(repeat.width.start, repeat.width.end, objectCount); }
934 if (repeat.zOffset.isSet) { interpolatedZOffset = CommonHelper::InterpolateLinear(repeat.zOffset.start, repeat.zOffset.end, objectCount); }
935
936 for (int i = 0; i < objectCount; i++)
937 {
938 RoadObjectSpecification repeatingObject = object;
939 repeatingObject.s = repeat.s + (i * repeat.distance);
940
941 if (repeat.t.isSet) { repeatingObject.t = interpolatedT.at(i); }
942 if (repeat.height.isSet) { repeatingObject.height = interpolatedHeight.at(i); }
943 if (repeat.width.isSet) { repeatingObject.width = interpolatedWidth.at(i); }
944 if (repeat.zOffset.isSet) { repeatingObject.zOffset = interpolatedZOffset.at(i); }
945
946 ThrowIfFalse(repeatingObject.checkStandardCompliance(), "Standard compliance invalid.");
947
948 ThrowIfFalse(repeatingObject.checkSimulatorCompliance(), "Limits of repeating object are not valid for the simulation. The Object will be ignored.");
949
950 objectRepitions.push_back(repeatingObject);
951 }
952 }
void AddParsedObjectsToRoad | ( | std::list< RoadObjectSpecification > | parsedObjects,
 |  | RoadInterface * | road
 | ) |  |
static

Add all objects from List to Road.

Parameters
[in] | parsedObjects | List of all parsed Objects within one object tag
[in] | road | road with should contain objects
851 {
852 for (auto object : parsedObjects)
853 {
854 road->AddRoadObject(object);
855 }
856 }
void ParseOptionalInterval | ( | QDomElement & | repeatElement,
 |  | std::string | startAttribute,
 |  | std::string | endAttribute,
 |  | OptionalInterval & | interval
 | ) |  |
static

Parse optional parameters of an interval.

Parameters
[in] | Attribute | start and end double of intervall
[in] | repeatElement | road with should contain objects
[out] | OptionalInterval | DOM element containing the retetition of an object
883 {
884 bool checkStartIsSet = SimulationCommon::ParseAttributeDouble(repeatElement, startAttribute, interval.start);
885 bool checkEndIsSet = SimulationCommon::ParseAttributeDouble(repeatElement, endAttribute, interval.end);
886
887 if (checkStartIsSet && checkEndIsSet)
888 {
889 interval.isSet = true;
890 return;
891 }
892 ThrowIfFalse(!checkStartIsSet && !checkEndIsSet, repeatElement, "Missing intervall parameter in scenery import");
893 return;
894 }
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: SlaveConfigImporter Class Reference

  • Importer
  • SlaveConfigImporter
Static Public Member Functions | List of all members
SlaveConfigImporter Class Reference

This class povides the import functionality. More...

Static Public Member Functions

static ExperimentConfig::Libraries | ImportLibraries (QDomElement rootElement)
Imports the libraries used by the simulator. More...
static void | ImportExperiment (QDomElement experimentElement, ExperimentConfig &experimentConfig)
Imports the ExperimentConfig section of the slave configuration. More...
static void | ImportScenario (QDomElement scenarioElement, const std::string configurationDir, ScenarioConfig &scenarioConfig)
Imports the ScenarioConfig section of the slave configuration. More...
static void | ImportEnvironment (QDomElement environmentElement, EnvironmentConfig &environmentConfig)
Imports the EnvironmentConfig section of the slave configuration. More...
static void | ImportSpawners (const QDomElement &spawnersElement, SpawnPointLibraryInfoCollection &spawnPointsInfo)
ImportSpawnPointsConfig Imports the SpawnPointConfig section of the slave configuration. More...
static bool | Import (const std::string &configurationDir, const std::string &slaveConfigFile, Configuration::SlaveConfig &slaveConfig)
Imports the entire slave configuration. More...

Detailed Description

This class povides the import functionality.

All methods in this class are static

Member Function Documentation

ExperimentConfig::Libraries ImportLibraries ( QDomElement rootElement )
static

Imports the libraries used by the simulator.

Parameters
[in] librariesElement Element containing the libraries information
Returns
Libraries (defaulted if element or single elements are missing)
See also
defaultLibraryMapping
42 {
43 QDomElement libsRoot;
44 if (!SimulationCommon::GetFirstChildElement(rootElement, TAG::libraries, libsRoot))
45 {
46 LOG_INTERN(LogLevel::Warning) << "No libraries found. Falling back to default values";
47 return defaultLibraryMapping;
48 }
49
50 ExperimentConfig::Libraries libs;
51 for (const auto& [tagName, defaultValue] : defaultLibraryMapping)
52 {
53 libs.try_emplace(tagName, SlaveConfigImporter::GetLibrary(libsRoot, tagName, defaultValue));
54 }
55 return libs;
56 }
void ImportExperiment | ( | QDomElement | experimentElement,
 |  | ExperimentConfig & | experimentConfig
 | ) |  |
static

Imports the ExperimentConfig section of the slave configuration.

Parameters
[in] | experimentConfigElement | Element containing the information
[out] | experimentConfig | Struct into which the values get saved
60 {
61 ThrowIfFalse(ParseInt(experimentElement, "ExperimentID", experimentConfig.experimentId),
62 experimentElement, "ExperimentID not valid.");
63
64 ThrowIfFalse(ParseInt(experimentElement, "NumberOfInvocations", experimentConfig.numberOfInvocations),
65 experimentElement, "NumberOfInvocations not valid.");
66
67 unsigned long randomSeed;
68 ThrowIfFalse(ParseULong(experimentElement, "RandomSeed", randomSeed),
69 experimentElement, "RandomSeed not valid.");
70
71 experimentConfig.randomSeed = static_cast<std::uint32_t>(randomSeed);
72
73 experimentConfig.libraries = ImportLibraries(experimentElement);
74 }
Importer::SlaveConfigImporter::ImportLibraries
static ExperimentConfig::Libraries ImportLibraries(QDomElement rootElement)
Imports the libraries used by the simulator.
Definition: slaveConfigImporter.cpp:41
void ImportScenario | ( | QDomElement | scenarioElement,
 |  | const std::string | configurationDir,
 |  | ScenarioConfig & | scenarioConfig
 | ) |  |
static

Imports the ScenarioConfig section of the slave configuration.

Parameters
[in] | scenarioConfigElement | Element containing the information
[out] | scenarioConfig | Struct into which the values get saved
79 {
80 std::string scenarioFilename;
81 ThrowIfFalse(ParseString(scenarioElement, "OpenScenarioFile", scenarioFilename),
82 scenarioElement, "OpenScenarioFile not valid.");
83
84 scenarioConfig.scenarioPath = openpass::core::Directories::Concat(configurationDir, scenarioFilename);
85 }
openpass::core::Directories::Concat
static const std::string Concat(const std::string &path, const std::string &file)
!< directory for outputs
Definition: directories.cpp:41

Here is the call graph for this function:

void ImportEnvironment | ( | QDomElement | environmentElement,
 |  | EnvironmentConfig & | environmentConfig
 | ) |  |
static

Imports the EnvironmentConfig section of the slave configuration.

Parameters
[in] | environmentConfigElement | Element containing the information
[out] | environmentConfig | Struct into which the values get saved
89 {
90 //Parse all time of days
91 QDomElement timeOfDaysElement;
92 ThrowIfFalse(GetFirstChildElement(environmentElement, TAG::timeOfDays, timeOfDaysElement),
93 environmentElement, "Tag " + std::string(TAG::timeOfDays) + " is missing.");
94 ThrowIfFalse(ImportProbabilityMap(timeOfDaysElement, "Value", TAG::timeOfDay, environmentConfig.timeOfDays),
95 timeOfDaysElement, "Could not import Probabilities.");
96
97 //Parse all visibility distances
98 QDomElement visibilityDistancesElement;
99 ThrowIfFalse(GetFirstChildElement(environmentElement, TAG::visibilityDistances, visibilityDistancesElement),
100 environmentElement, "Tag " + std::string(TAG::visibilityDistances) + " is missing.");
101 ThrowIfFalse(ImportProbabilityMap(visibilityDistancesElement, "Value", TAG::visibilityDistance, environmentConfig.visibilityDistances),
102 visibilityDistancesElement, "Could not import Probabilities.");
103
104 //Parse all frictions
105 QDomElement frictionsElement;
106 ThrowIfFalse(GetFirstChildElement(environmentElement, TAG::frictions, frictionsElement),
107 environmentElement, "Tag " + std::string(TAG::frictions) + " is missing.");
108 ThrowIfFalse(ImportProbabilityMap(frictionsElement, "Value", TAG::friction, environmentConfig.frictions),
109 frictionsElement, "Could not import Probabilities.");
110
111 //Parse all weathers
112 QDomElement weathersElement;
113 ThrowIfFalse(GetFirstChildElement(environmentElement, TAG::weathers, weathersElement),
114 environmentElement, "Tag " + std::string(TAG::weathers) + " is missing.");
115 ThrowIfFalse(ImportProbabilityMap(weathersElement, "Value", TAG::weather, environmentConfig.weathers),
116 weathersElement, "Could not import Probabilities.");
117 }
void ImportSpawners | ( | const QDomElement & | spawnersElement,
 |  | SpawnPointLibraryInfoCollection & | spawnPointsInfo
 | ) |  |
static

ImportSpawnPointsConfig Imports the SpawnPointConfig section of the slave configuration.

Parameters
spawnPointsConfigElement | Element containing the information
spawnPointsInfo | struct into which the values get saved
Returns
121 {
122 QDomElement spawnPointElement;
123 ThrowIfFalse(GetFirstChildElement(spawnersElement, TAG::spawner, spawnPointElement),
124 spawnersElement, "Tag " + std::string(TAG::spawner) + " is missing.");
125
126 while (!spawnPointElement.isNull())
127 {
128 SpawnPointLibraryInfo spawnPointInfo;
129
130 ThrowIfFalse(ParseString(spawnPointElement, TAG::library, spawnPointInfo.libraryName),
131 spawnPointElement, "Tag " + std::string(TAG::library) + " is missing.");
132
133 std::string type;
134 ThrowIfFalse(ParseString(spawnPointElement, TAG::type, type),
135 spawnPointElement, "Tag " + std::string(TAG::type) + " is missing.");
136 const auto& spawnPointTypeIter = std::find_if(spawnPointTypeMapping.cbegin(),
137 spawnPointTypeMapping.cend(),
138 [&type](const auto& spawnPointTypePair) -> bool
139 {
140 return spawnPointTypePair.second == type;
141 });
142 ThrowIfFalse(spawnPointTypeIter != spawnPointTypeMapping.cend(),
143 spawnPointElement, "SpawnPoint Type invalid");
144 spawnPointInfo.type = spawnPointTypeIter->first;
145
146 ThrowIfFalse(ParseInt(spawnPointElement, TAG::priority, spawnPointInfo.priority),
147 spawnPointElement, "Tag " + std::string(TAG::priority) + " is missing.");
148
149 std::string spawnPointProfile;
150 if(ParseString(spawnPointElement, "Profile", spawnPointProfile))
151 {
152 spawnPointInfo.profileName.emplace(spawnPointProfile);
153 }
154
155 spawnPointsInfo.emplace_back(spawnPointInfo);
156
157 spawnPointElement = spawnPointElement.nextSiblingElement(TAG::spawner);
158 }
159 }
SpawnPointLibraryInfo
Definition: spawnPointLibraryDefinitions.h:39
bool Import | ( | const std::string & | configurationDir,
 |  | const std::string & | slaveConfigFile,
 |  | Configuration::SlaveConfig & | slaveConfig
 | ) |  |
static

Imports the entire slave configuration.

Calls all sections specific methods and saves the result in the CombiantionConfig

Parameters
[in] | configurationDir | Path of the configuration files
[in] | slaveConfigFile | Name of the SlaveConfig file
[out] | slaveConfig | Class into which the values get saved
Returns
true, if successful
188 {
189 try
190 {
191 std::locale::global(std::locale("C"));
192
193 QFile xmlFile(slaveConfigFile.c_str()); // automatic object will be closed on destruction
194 ThrowIfFalse(xmlFile.open(QIODevice::ReadOnly), "an error occurred during slave configuration import");
195
196 QByteArray xmlData(xmlFile.readAll());
197 QDomDocument document;
198 ThrowIfFalse(document.setContent(xmlData), "invalid xml file format of file " + slaveConfigFile);
199
200 QDomElement documentRoot = document.documentElement();
201 if (documentRoot.isNull())
202 {
203 return false;
204 }
205
206 std::string configVersion;
207 ParseAttributeString(documentRoot, ATTRIBUTE::schemaVersion, configVersion);
208 ThrowIfFalse(configVersion.compare(supportedConfigVersion) == 0, "SlaveConfig version not suppored. Supported version is " + std::string(supportedConfigVersion));
209
210 std::string profilesCatalog;
211 ThrowIfFalse(ParseString(documentRoot, "ProfilesCatalog", profilesCatalog), "Could not import Proifles Catalog.");
212
213 slaveConfig.SetProfilesCatalog(openpass::core::Directories::Concat(configurationDir, profilesCatalog));
214
215
216 auto& experimentConfig = slaveConfig.GetExperimentConfig();
217 QDomElement experimentConfigElement;
218 ThrowIfFalse(GetFirstChildElement(documentRoot, TAG::experiment, experimentConfigElement),
219 "Tag " + std::string(TAG::experiment) + " is missing.");
220 ImportExperiment(experimentConfigElement, experimentConfig);
221
222 QDomElement scenarioConfigElement;
223 ThrowIfFalse(GetFirstChildElement(documentRoot, TAG::scenario, scenarioConfigElement),
224 "Tag " + std::string(TAG::scenario) + " is missing.");
225 ImportScenario(scenarioConfigElement, configurationDir, slaveConfig.GetScenarioConfig());
226
227 QDomElement environmentConfigElement;
228 ThrowIfFalse(GetFirstChildElement(documentRoot, TAG::environment, environmentConfigElement),
229 "Tag " + std::string(TAG::environment) + " is missing.");
230 ImportEnvironment(environmentConfigElement, slaveConfig.GetEnvironmentConfig());
231
232 QDomElement observationConfigElement;
233 ThrowIfFalse(GetFirstChildElement(documentRoot, TAG::observations, observationConfigElement),
234 "Tag " + std::string(TAG::observations) + " is missing.");
235 ImportObservations(observationConfigElement, slaveConfig.GetObservationConfig());
236
237 QDomElement spawnPointsConfigElement;
238 ThrowIfFalse(GetFirstChildElement(documentRoot, TAG::spawners, spawnPointsConfigElement),
239 "Tag " + std::string(TAG::spawners) + " is missing.");
240 ImportSpawners(spawnPointsConfigElement, slaveConfig.GetSpawnPointsConfig());
241
242 return true;
243 }
244 catch (const std::runtime_error& e)
245 {
246 LOG_INTERN(LogLevel::Error) << "SlaveConfig import failed: " + std::string(e.what());
247 return false;
248 }
249 }
Importer::SlaveConfigImporter::ImportExperiment
static void ImportExperiment(QDomElement experimentElement, ExperimentConfig &experimentConfig)
Imports the ExperimentConfig section of the slave configuration.
Definition: slaveConfigImporter.cpp:58
Importer::SlaveConfigImporter::ImportScenario
static void ImportScenario(QDomElement scenarioElement, const std::string configurationDir, ScenarioConfig &scenarioConfig)
Imports the ScenarioConfig section of the slave configuration.
Definition: slaveConfigImporter.cpp:76
openpass::core::Directories::Concat
static const std::string Concat(const std::string &path, const std::string &file)
!< directory for outputs
Definition: directories.cpp:41
Importer::SlaveConfigImporter::ImportSpawners
static void ImportSpawners(const QDomElement &spawnersElement, SpawnPointLibraryInfoCollection &spawnPointsInfo)
ImportSpawnPointsConfig Imports the SpawnPointConfig section of the slave configuration.
Definition: slaveConfigImporter.cpp:119
Importer::SlaveConfigImporter::ImportEnvironment
static void ImportEnvironment(QDomElement environmentElement, EnvironmentConfig &environmentConfig)
Imports the EnvironmentConfig section of the slave configuration.
Definition: slaveConfigImporter.cpp:87

Here is the call graph for this function:

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: SystemConfigImporter Class Reference

  • Importer
  • SystemConfigImporter
Static Public Member Functions | List of all members
SystemConfigImporter Class Reference

Class handles importing an agent system configuration. More...

Static Public Member Functions

static bool | Import (const std::string &filename, std::shared_ptr< SystemConfig > systemConfig)
static openpass::parameter::ParameterSetLevel1 | ImportSystemParameters (QDomElement &parametersElement)
Public for testing.

Detailed Description

Class handles importing an agent system configuration.

Member Function Documentation

bool Import | ( | const std::string & | filename,
 |  | std::shared_ptr< SystemConfig > | systemConfig
 | ) |  |
static

Imports the XML agent system configuration from the provided file path and stores the results in the provided mapping.

Parameters
[in] | filename | Path to the file with the XML agent system config
[out] | agentTypes | Mapping from IDs to agents to store the results of the import
Returns
False if an error occurred, true otherwise
269 {
270 try
271 {
272 QDomDocument document;
273 if (!ImportSystemConfigContent(filename, document))
274 {
275 return false;
276 }
277
278 QDomElement documentRoot = document.documentElement();
279 if (documentRoot.isNull())
280 {
281 return false;
282 }
283
284 // parse agents
285 auto& agentTypes = systemConfig->GetSystems();
286 QDomElement systemElement;
287 if (SimulationCommon::GetFirstChildElement(documentRoot, TAG::system, systemElement))
288 {
289 while (!systemElement.isNull())
290 {
291 // retrieve agent id
292 int agentId;
293 ThrowIfFalse(SimulationCommon::ParseInt(systemElement, "id", agentId), systemElement, "Unable to retrieve agent id.");
294 LOG_INTERN(LogLevel::DebugCore) << "agent type id: " << agentId <<
295 " *********************************************************";
296
297 // retrieve agent priority
298 int agentPriority;
299 ThrowIfFalse(SimulationCommon::ParseInt(systemElement, "priority", agentPriority), systemElement, "Unable to retrieve agent priority.");
300 ThrowIfFalse(0 <= agentPriority, "Invalid agent priority.");
301
302 LOG_INTERN(LogLevel::DebugCore) << "agent type priority: " << agentPriority;
303
304 // create agent
305 ThrowIfFalse(0 == agentTypes.count(agentId), systemElement, "Duplicate agent id."); // avoid duplicate types
306
307 std::shared_ptr<SimulationSlave::AgentType> agent = std::make_shared<SimulationSlave::AgentType>();
308 ThrowIfFalse(agent != nullptr, "Agent is null");
309
310 ThrowIfFalse(agentTypes.insert({agentId, agent}).second, systemElement, "Unable to add agent.");
311
312 // parse components
313 QDomElement componentsElement;
314 ThrowIfFalse(SimulationCommon::GetFirstChildElement(systemElement, TAG::components, componentsElement),
315 systemElement, "Tag " + std::string(TAG::components) + " is missing.");
316
317 QDomElement componentElement;
318 if (SimulationCommon::GetFirstChildElement(componentsElement, TAG::component, componentElement))
319 {
320 while (!componentElement.isNull())
321 {
322 // retrieve component id
323 std::string componentId;
324 ThrowIfFalse(SimulationCommon::ParseString(componentElement, "id", componentId), componentElement, "Unable to retrieve component id.");
325 LOG_INTERN(LogLevel::DebugCore) << "component type id: " << componentId <<
326 " ---------------------------------------------------------";
327
328 // retrieve component library
329 std::string library;
330 ThrowIfFalse(SimulationCommon::ParseString(componentElement, "library", library), componentElement, "Unable to retrieve component library.");
331 ThrowIfFalse(!library.empty(), componentElement, "Component library is empty.");
332 LOG_INTERN(LogLevel::DebugCore) << "library: " << library;
333
334 QDomElement scheduleElement = componentElement.firstChildElement("schedule");
335
336 // retrieve component priority
337 int componentPriority;
338 ThrowIfFalse(SimulationCommon::ParseInt(scheduleElement, "priority", componentPriority), scheduleElement, "Unable to retrieve component priority.");
339 ThrowIfFalse(0 <= componentPriority, scheduleElement, "Invalid component priority.");
340 LOG_INTERN(LogLevel::DebugCore) << "component priority: " << componentPriority;
341
342 // retrieve component offset time
343 int offsetTime = 0; // must be set to 0 for init tasks for scheduler
344 ThrowIfFalse(SimulationCommon::ParseInt(scheduleElement, "offset", offsetTime), scheduleElement, "Unable to retrieve component offset time");
345 ThrowIfFalse(0 <= offsetTime, scheduleElement, "Invalid component offset time.");
346 LOG_INTERN(LogLevel::DebugCore) << "offset time: " << offsetTime;
347
348 // retrieve component response time
349 int responseTime = 0; // must be set to 0 for init tasks for scheduler
350 ThrowIfFalse(SimulationCommon::ParseInt(scheduleElement, "response", responseTime), scheduleElement, "Unable to retrieve component response time.");
351 ThrowIfFalse(0 <= responseTime, scheduleElement, "Invalid component response time.");
352 LOG_INTERN(LogLevel::DebugCore) << "response time: " << responseTime;
353
354 // retrieve component cycle time
355 int cycleTime = 0; // must be set to 0 for init tasks for scheduler
356 ThrowIfFalse(SimulationCommon::ParseInt(scheduleElement, "cycle", cycleTime), scheduleElement, "Unable to retrieve component cycle time.");
357 ThrowIfFalse(0 <= cycleTime, scheduleElement, "Invalid component cycle time.");
358 LOG_INTERN(LogLevel::DebugCore) << "cycle time: " << cycleTime;
359
360 bool isInitComponent = false;
361 if (cycleTime == 0)
362 {
363 isInitComponent = true;
364 }
365
366 auto component = std::make_shared<SimulationSlave::ComponentType>(componentId,
367 isInitComponent,
368 componentPriority,
369 offsetTime,
370 responseTime,
371 cycleTime,
372 library);
373 ThrowIfFalse(component != nullptr, componentElement, "Component is null.");
374 ThrowIfFalse(agent->AddComponent(component), componentElement, "Unable to add component.");
375
376 // parse model parameters
377 LOG_INTERN(LogLevel::DebugCore) << "import model parameters...";
378 QDomElement parametersElement;
379
380 ThrowIfFalse(SimulationCommon::GetFirstChildElement(componentElement, TAG::parameters, parametersElement),
381 componentElement, "Tag " + std::string(TAG::parameters) + " is missing.");
382
383 try
384 {
385 component->SetModelParameter(ImportSystemParameters(parametersElement));
386 }
387 catch(const std::runtime_error& error)
388 {
389 LogErrorAndThrow("Unable to import system parameters: " + std::string(error.what()));
390 }
391
392 componentElement = componentElement.nextSiblingElement(TAG::component);
393 } // component loop
394 } // if components exist
395
396 // parse connections
397 QDomElement connectionsElement;
398 ThrowIfFalse(SimulationCommon::GetFirstChildElement(systemElement, TAG::connections, connectionsElement),
399 systemElement, "Tag " + std::string(TAG::connections) + " is missing.");
400
401 std::map<std::pair<std::string, int>, int> channelMap;
402 QDomElement connectionElement;
403 if (SimulationCommon::GetFirstChildElement(connectionsElement, TAG::connection, connectionElement))
404 {
405 while (!connectionElement.isNull())
406 {
407 QDomElement sourceElement = connectionElement.firstChildElement(TAG::source);
408 std::string sourceId = sourceElement.firstChildElement(TAG::component).text().toStdString();
409 int sourceOutputId = sourceElement.firstChildElement(TAG::output).text().toInt();
410
411
412 int channelId = connectionElement.firstChildElement(TAG::id).text().toInt();
413 std::pair<std::string, int> componentPair = std::make_pair(sourceId, sourceOutputId);
414 std::map<std::pair<std::string, int>, int>::iterator channelIterator;
415 channelIterator = channelMap.find(componentPair);
416
417 if (channelIterator == channelMap.end())
418 {
419 // channelId = channelMap.size();
420 channelMap.emplace(std::make_pair(componentPair, channelId));
421 agent->AddChannel(channelId);
422
423 agent->GetComponents().at(sourceId)->AddOutputLink(sourceOutputId, channelId);
424 }
425 else
426 {
427 // channelId = channelIterator->second;
428 }
429
430 QDomElement targetElement = connectionElement.firstChildElement(TAG::target);
431 while (!targetElement.isNull())
432 {
433 std::string targetId = targetElement.firstChildElement(TAG::component).text().toStdString();
434 int targetInputId = targetElement.firstChildElement(TAG::input).text().toInt();
435 agent->GetComponents().at(targetId)->AddInputLink(targetInputId, channelId);
436 targetElement = targetElement.nextSiblingElement(TAG::target);
437 }
438
439 connectionElement = connectionElement.nextSiblingElement(TAG::connection);
440 }
441 }
442
443 systemElement = systemElement.nextSiblingElement(TAG::system);
444 }
445 }
446
447 return true;
448 }
449 catch (const std::runtime_error& e)
450 {
451 LOG_INTERN(LogLevel::Error) << "SystemConfig import failed: " + std::string(e.what());
452 return false;
453 }
454 }
Importer::SystemConfigImporter::ImportSystemParameters
static openpass::parameter::ParameterSetLevel1 ImportSystemParameters(QDomElement &parametersElement)
Public for testing.
Definition: systemConfigImporter.cpp:25

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: VehicleModelsImporter Class Reference

  • Importer
  • VehicleModelsImporter
Classes | Static Public Member Functions | List of all members
VehicleModelsImporter Class Reference

Provides methods for importing vehicle models from OpenSCENARIO catalog files. More...

Static Public Member Functions

static bool | Import (const std::string &vehicleModelsPath, const std::string &pedestrianModelsPath, Configuration::VehicleModels &vehicleModels)
Imports vehicle and pedestrian models from the given paths. More...
static void | ImportVehicleModel (QDomElement &modelElement, VehicleModelMap &vehicleModelsMap)
Imports a vehicle model from OpenSCENARIO DOM. More...
static void | ImportPedestrianModel (QDomElement &pedestrianElement, VehicleModelMap &vehicleModelsMap)
Imports a pedestrian model from OpenSCENARIO DOM. More...

Detailed Description

Provides methods for importing vehicle models from OpenSCENARIO catalog files.

Member Function Documentation

bool Import | ( | const std::string & | vehicleModelsPath,
 |  | const std::string & | pedestrianModelsPath,
 |  | Configuration::VehicleModels & | vehicleModels
 | ) |  |
static

Imports vehicle and pedestrian models from the given paths.

The vehicleModelsPath and the pedestrianModelsPath are appended to the configurationDir string, respectively. If one of the paths is an empty string, the import of this type of models is ommited and doesn't result in an error.

Parameters
[in] | vehicleModelsPath | File path to the vehicle model catalog
[in] | pedestrianModelsPath | File path to the pedestrian model catalog
[out] | vehicleModels | Storage for the imported models
Returns
true on success, false otherwise
25 {
26 try
27 {
28 QDomElement catalogElement;
29
30 if (!vehicleCatalogPath.empty())
31 {
32 ImportCatalog(vehicleCatalogPath, catalogElement);
33 ImportVehicleCatalog(catalogElement, vehicleModels);
34 }
35
36 if (!pedestrianCatalogPath.empty())
37 {
38 ImportCatalog(pedestrianCatalogPath, catalogElement);
39 ImportPedestrianCatalog(catalogElement, vehicleModels);
40 }
41
42 return true;
43 }
44 catch (const std::runtime_error& e)
45 {
46 LOG_INTERN(LogLevel::Error) << "VehicleModels import failed: " + std::string(e.what());
47 return false;
48 }
49 }

Here is the caller graph for this function:

void ImportVehicleModel | ( | QDomElement & | modelElement,
 |  | VehicleModelMap & | vehicleModelsMap
 | ) |  |
static

Imports a vehicle model from OpenSCENARIO DOM.

The model is stored in vehicleModelsMap with the model attribute name as its key. Duplicated model names are not allowed.

Supported vehicle model categories are car, van, truck, bus, motorbike and bicycle.

Parameters
[in] | modelElement | Vehicle model DOM element
[out] | vehicleModelsMap | Storage for the imported vehicle model
Exceptions
std::runtime_error On invalid XML, duplicated model names or unsupported vehicle category
232 {
233 ParametrizedVehicleModelParameters modelParameters;
234 openScenario::Parameters parameters;
235
236 QDomElement parametersElement;
237 if (SimulationCommon::GetFirstChildElement(vehicleElement, TAG::parameterDeclarations, parametersElement))
238 {
239 Importer::ImportParameterDeclarationElement(parametersElement, parameters);
240 }
241
242
243 auto vehicleModelCategory = ParseParametrizedAttribute<std::string>(vehicleElement, ATTRIBUTE::vehicleCategory, parameters);
244
245 modelParameters.vehicleType = vehicleTypeConversionMap.at(vehicleModelCategory.defaultValue);
246
247 auto vehicleModelName = ParseParametrizedAttribute<std::string>(vehicleElement, ATTRIBUTE::name, parameters);
248 ThrowIfFalse(vehicleModelsMap.find(vehicleModelName.defaultValue) == vehicleModelsMap.end(),
249 vehicleElement, "Vehicle model '" + vehicleModelName.defaultValue + "' already exists");
250
251
252 ThrowIfFalse((modelParameters.vehicleType == AgentVehicleType::Car ||
253 modelParameters.vehicleType == AgentVehicleType::Truck ||
254 modelParameters.vehicleType == AgentVehicleType::Motorbike ||
255 modelParameters.vehicleType == AgentVehicleType::Bicycle),
256 vehicleElement, "VehicleModelCatagory '" + vehicleModelCategory.defaultValue + "' currently not supported");
257
258 const auto &properties = ImportProperties(vehicleElement);
259
260 AssignProperty("SteeringRatio", modelParameters.steeringRatio, properties, 1.0);
261
262 AssignProperty("MomentInertiaRoll", modelParameters.momentInertiaRoll, properties, 0.0);
263 AssignProperty("MomentInertiaPitch", modelParameters.momentInertiaPitch, properties, 0.0);
264 AssignProperty("MomentInertiaYaw", modelParameters.momentInertiaYaw, properties, 0.0);
265
266 AssignProperty("MinimumEngineSpeed", modelParameters.minimumEngineSpeed, properties, 0.0);
267 AssignProperty("MaximumEngineSpeed", modelParameters.maximumEngineSpeed, properties, 0.0);
268 AssignProperty("MaximumEngineTorque", modelParameters.maximumEngineTorque, properties, 0.0);
269 AssignProperty("MinimumEngineTorque", modelParameters.minimumEngineTorque, properties, 0.0);
270
271 AssignProperty("AirDragCoefficient", modelParameters.airDragCoefficient, properties, 0.0);
272 AssignProperty("AxleRatio", modelParameters.axleRatio, properties, 1.0);
273 AssignProperty("DecelerationFromPowertrainDrag", modelParameters.decelerationFromPowertrainDrag, properties, 0.0);
274 AssignProperty("FrictionCoefficient", modelParameters.frictionCoeff, properties, 1.0);
275 AssignProperty("FrontSurface", modelParameters.frontSurface, properties, 0.0);
276 AssignProperty("Mass", modelParameters.weight, properties, 1000.0);
277
278 ImportModelBoundingBox(vehicleElement, modelParameters, parameters);
279 ImportVehicleModelAxles(vehicleElement, modelParameters, parameters);
280 ImportVehicleModelPerformance(vehicleElement, modelParameters, parameters);
281 ImportVehicleModelGears(modelParameters, properties);
282
283 modelParameters.heightCOG = 0.0; // currently not supported
284
285 CheckModelParameters(modelParameters);
286
287 vehicleModelsMap[vehicleModelName.defaultValue] = modelParameters;
288 }
void ImportPedestrianModel | ( | QDomElement & | pedestrianElement,
 |  | VehicleModelMap & | vehicleModelsMap
 | ) |  |
static

Imports a pedestrian model from OpenSCENARIO DOM.

The model is stored in vehicleModelsMap with the model attribute name as its key. Duplicated model names are not allowed.

The only supported pedestrian model category is pedestrian.

Parameters
[in] | modelElement | Pedestrian model DOM element
[out] | vehicleModelsMap | Storage for the imported pedestrian model (NOTE: internaly shared with vehicles)
Exceptions
std::runtime_error On invalid XML, duplicated model names or unsupported pedestrian category
291 {
292 ParametrizedVehicleModelParameters modelParameters;
293
294 openScenario::Parameters parameters{};
295
296 auto pedestrianCategory = ParseParametrizedAttribute<std::string>(pedestrianElement, ATTRIBUTE::pedestrianCategory, parameters);
297 ThrowIfFalse(pedestrianCategory.defaultValue == "pedestrian", pedestrianElement, "Unsupported pedestrian catagory");
298
299 auto pedestrianModelName = ParseParametrizedAttribute<std::string>(pedestrianElement, ATTRIBUTE::name, parameters);
300
301 ThrowIfFalse(vehicleModelsMap.find(pedestrianModelName.defaultValue) == vehicleModelsMap.end(),
302 pedestrianElement, "pedestrian model '" + pedestrianModelName.defaultValue + "' already exists");
303
304
305 ImportModelBoundingBox(pedestrianElement, modelParameters, parameters);
306
307 // Currently, AgentAdapter and Dynamics cannot handle pedestrians properly
308 // setting some required defaults here for now for compatibility with cars
309 modelParameters.vehicleType = AgentVehicleType::Car;
310 modelParameters.gearRatios.push_back(0.0);
311 modelParameters.gearRatios.push_back(1.0);
312 modelParameters.numberOfGears = 1;
313 modelParameters.maximumEngineTorque = 100;
314 modelParameters.maximumEngineSpeed = 1e5;
315 modelParameters.minimumEngineSpeed = 1;
316 modelParameters.weight = ParseParametrizedAttribute<double>(pedestrianElement, ATTRIBUTE::mass, parameters);
317
318 vehicleModelsMap[pedestrianModelName.defaultValue] = modelParameters;
319 }
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: ConversionStatus Struct Reference

  • Internal
  • ConversionStatus
List of all members
ConversionStatus Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Entity Struct Reference

  • LaneMarking
  • Entity
List of all members
Entity Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: RuntimeInformation Struct Reference

  • openpass
  • common
  • RuntimeInformation
Classes | List of all members
RuntimeInformation Struct Reference

Classes

struct | Directories
struct | Versions
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: RuntimeInformation::Directories Struct Reference

  • openpass
  • common
  • RuntimeInformation
  • Directories
List of all members
RuntimeInformation::Directories Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: RuntimeInformation::Versions Struct Reference

  • openpass
  • common
  • RuntimeInformation
  • Versions
List of all members
RuntimeInformation::Versions Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Version Struct Reference

  • openpass
  • common
  • Version
List of all members
Version Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Directories Class Reference

  • openpass
  • core
  • Directories
Static Public Member Functions | Public Attributes | List of all members
Directories Class Reference

Static Public Member Functions

static const std::string | Concat (const std::string &path, const std::string &file)
!< directory for outputs More...
static const std::vector< std::string > | Concat (const std::string &path, const std::vector< std::string > &filenames)
Concats a path and multiple filenames with the seperator used by the current system. More...
static const std::string | StripFile (const std::string &path)
Removes the file from a path. More...
static bool | IsRelative (const std::string &path)
Checkes whether a given path is absolute or relative. More...

Public Attributes

const std::string | configurationDir
!< path of the executed application
const std::string | libraryDir
!< directory of the configuration files
const std::string | outputDir
!< directory of the libraries

Detailed Description

Directories takes care of a consistent handling of paths and directories without making the underlying implementation public or a dependency

Once initialized, the paths are resolved w.r.t the applications base directory if the paths are relative, or kept absolute

Note that all directories are returned without a trailing path seperator Use Concat if you need to concat a path and a file with the current systems seperator

Member Function Documentation

const std::string Concat | ( | const std::string & | path,
 |  | const std::string & | file
 | ) |  |
static

!< directory for outputs

Concats a path and a file with the seperator used by the current system

Parameters
path | e.g. /the_path
file | e.g. the_file
Returns
Concatenated string, e.g. /the_path/the_file
42 {
43 return QDir(QString::fromStdString(path) +
44 QDir::separator() +
45 QString::fromStdString(file)).absolutePath().toStdString();
46 }

Here is the caller graph for this function:

const std::vector< std::string > Concat | ( | const std::string & | path,
 |  | const std::vector< std::string > & | filenames
 | ) |  |
static

Concats a path and multiple filenames with the seperator used by the current system.

Parameters
path | e.g. /the_path
filenames | e.g. the_filenames
Returns
Vector of concatenated strings, e.g. /the_path/the_filename
49 {
50 std::vector<std::string> result {};
51
52 std::transform(filenames.cbegin(),
53 filenames.cend(),
54 std::back_inserter(result),
55 [&path] (const auto &extension) -> std::string
56 {
57 return Directories::Concat(path, extension);
58 });
59
60 return result;
61 }
openpass::core::Directories::Concat
static const std::string Concat(const std::string &path, const std::string &file)
!< directory for outputs
Definition: directories.cpp:41

Here is the call graph for this function:

const std::string StripFile ( const std::string & path )
static

Removes the file from a path.

Parameters
path with file
Returns
Resolved string e.g. /baseDir/path or /path, respectively
64 {
65 QFileInfo fileInfo(QString::fromStdString(path));
66 return fileInfo.path().toStdString();
67 }
bool IsRelative ( const std::string & path )
static

Checkes whether a given path is absolute or relative.

Parameters
path
Returns
true if relative path
70 {
71 QFileInfo fileInfo(QString::fromStdString(path));
72 return fileInfo.isRelative();
73 }
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: openpass::events Namespace Reference

  • Namespace Members
  • openpass
  • events
Classes
openpass::events Namespace Reference

Classes

class | BasicEvent
class | CollisionEvent
class | ComponentStateChangeEvent
class | LaneChangeEvent
class | SpeedActionEvent
class | TrajectoryEvent

Detailed Description

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: CollisionEvent Class Reference

  • openpass
  • events
  • CollisionEvent
List of all members
CollisionEvent Class Reference

Detailed Description

This class implements all functionality of the CollisionEvent.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: VisitParameterElement Struct Reference

  • openpass
  • parameter
  • internal
  • VisitParameterElement
Public Member Functions | List of all members
VisitParameterElement Struct Reference

switches between flat parameters and parameter lists More...

Public Member Functions

void | operator() (const ParameterValue &value)
execute if visited variant holds a ParameterValue
void | operator() (const ParameterListLevel2 &list)
execute if visited variant holds a ParameterList

Detailed Description

switches between flat parameters and parameter lists

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: ExponentialDistribution Class Reference

  • openpass
  • parameter
  • ExponentialDistribution
List of all members
ExponentialDistribution Class Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: GammaDistribution Class Reference

  • openpass
  • parameter
  • GammaDistribution
List of all members
GammaDistribution Class Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: LogNormalDistribution Class Reference

  • openpass
  • parameter
  • LogNormalDistribution
List of all members
LogNormalDistribution Class Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: NormalDistribution Class Reference

  • openpass
  • parameter
  • NormalDistribution
List of all members
NormalDistribution Class Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: UniformDistribution Class Reference

  • openpass
  • parameter
  • UniformDistribution
List of all members
UniformDistribution Class Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: AgentDataPublisher Class Reference

  • openpass
  • publisher
  • AgentDataPublisher
List of all members
AgentDataPublisher Class Reference

! Interface which has to be provided by observation modules More...

Detailed Description

! Interface which has to be provided by observation modules

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: CoreDataPublisher Class Reference

  • openpass
  • publisher
  • CoreDataPublisher
List of all members
CoreDataPublisher Class Reference

! Interface which has to be provided by observation modules More...

Detailed Description

! Interface which has to be provided by observation modules

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: LogEntry Class Reference

  • openpass
  • publisher
  • LogEntry
List of all members
LogEntry Class Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: LogEntryBase Class Reference

  • openpass
  • publisher
  • LogEntryBase
List of all members
LogEntryBase Class Referenceabstract

Base class for logging of acyclic events in the datastore. More...

Detailed Description

Base class for logging of acyclic events in the datastore.

See also
openpass::publisher::coreDataPublisher
openpass::publisher::LogEntry
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: EventDetectorTaskItem Class Reference

  • openpass
  • scheduling
  • EventDetectorTaskItem
List of all members
EventDetectorTaskItem Class Reference

taskItem for eventDetector task More...

Detailed Description

taskItem for eventDetector task

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: ManipulatorTaskItem Class Reference

  • openpass
  • scheduling
  • ManipulatorTaskItem
List of all members
ManipulatorTaskItem Class Reference

taskItem for manipulator task More...

Detailed Description

taskItem for manipulator task

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: ObservationTaskItem Class Reference

  • openpass
  • scheduling
  • ObservationTaskItem
List of all members
ObservationTaskItem Class Reference

taskItem for observation task More...

Detailed Description

taskItem for observation task

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: SpawningTaskItem Class Reference

  • openpass
  • scheduling
  • SpawningTaskItem
List of all members
SpawningTaskItem Class Reference

taskItem for spawning task More...

Detailed Description

taskItem for spawning task

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: SyncWorldTaskItem Class Reference

  • openpass
  • scheduling
  • SyncWorldTaskItem
List of all members
SyncWorldTaskItem Class Reference

taskItem for synchronize world task More...

Detailed Description

taskItem for synchronize world task

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: TimeKeeper Class Reference

  • openpass
  • scheduling
  • TimeKeeper
Static Public Member Functions | Static Protected Attributes | List of all members
TimeKeeper Class Reference

Allows core components to access the current schedule time without need for a direct reference. More...

Static Public Member Functions

static int | Now () noexcept
Get the current simulation time. More...
static int | Now () noexcept
Get the current simulation time. More...

Static Protected Attributes

static int time {-1}
Global time for the simulator.

Detailed Description

Allows core components to access the current schedule time without need for a direct reference.

Note
The scheduler holds a manipulate reference to the current time provided by this instance
auto currentTime = openpass::scheduling::TimeKeeper::Now();

Member Function Documentation

static int Now ( )
inlinestaticnoexcept

Get the current simulation time.

Returns
Current simulation time
34 {
35 return time;
36 }
openpass::scheduling::TimeKeeper::time
static int time
Global time for the simulator.
Definition: timeKeeper.h:28
static int Now ( )
inlinestaticnoexcept

Get the current simulation time.

Returns
Current simulation time
34 {
35 return time;
36 }
openpass::scheduling::TimeKeeper::time
static int time
Global time for the simulator.
Definition: timeKeeper.h:28
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: TriggerTaskItem Class Reference

  • openpass
  • scheduling
  • TriggerTaskItem
List of all members
TriggerTaskItem Class Reference

taskItem for triggering task More...

Detailed Description

taskItem for triggering task

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: UpdateGlobalDrivingViewTaskItem Class Reference

  • openpass
  • scheduling
  • UpdateGlobalDrivingViewTaskItem
List of all members
UpdateGlobalDrivingViewTaskItem Class Reference

taskItem for update global driving view task More...

Detailed Description

taskItem for update global driving view task

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: UpdateTaskItem Class Reference

  • openpass
  • scheduling
  • UpdateTaskItem
List of all members
UpdateTaskItem Class Reference

taskItem for update task More...

Detailed Description

taskItem for update task

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Parameter Struct Reference

  • openpass
  • sensors
  • Parameter
List of all members
Parameter Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Position Struct Reference

  • openpass
  • sensors
  • Position
List of all members
Position Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Profile Struct Reference

  • openpass
  • sensors
  • Profile
List of all members
Profile Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: AffectedEntities Struct Reference

  • openpass
  • type
  • AffectedEntities
List of all members
AffectedEntities Struct Reference

Contains the affected entities of an acyclic. More...

Detailed Description

Contains the affected entities of an acyclic.

Might be enhanced in the future to hold additional information about the affected entities

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: NamedType< T, Tag > Struct Template Reference

  • openpass
  • type
  • NamedType
List of all members
NamedType< T, Tag > Struct Template Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: TriggeringEntities Struct Reference

  • openpass
  • type
  • TriggeringEntities
List of all members
TriggeringEntities Struct Reference

Contains the triggering entities of an acyclic. More...

Detailed Description

Contains the triggering entities of an acyclic.

Might be enhanced in the future to hold additional information about the affected entities

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: LaneChange Struct Reference

  • openScenario
  • transformation
  • LaneChange
List of all members
LaneChange Struct Reference

Additional Inherited Members

- Static Public Member Functions inherited from TransformerBase< LaneChange, TrajectorySignal, openpass::events::LaneChangeEvent >
static TransformResult Transform (const SimulationSlave::EventNetworkInterface *eventNetwork, WorldInterface *world, AgentInterface *agent, int cycleTime)
Entry point for the transformation. More...
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: SpeedAction Struct Reference

  • openScenario
  • transformation
  • SpeedAction
List of all members
SpeedAction Struct Reference

Additional Inherited Members

- Static Public Member Functions inherited from TransformerBase< SpeedAction, SpeedActionSignal, openpass::events::SpeedActionEvent >
static TransformResult Transform (const SimulationSlave::EventNetworkInterface *eventNetwork, WorldInterface *world, AgentInterface *agent, int cycleTime)
Entry point for the transformation. More...
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Trajectory Struct Reference

  • openScenario
  • transformation
  • Trajectory
List of all members
Trajectory Struct Reference

Additional Inherited Members

- Static Public Member Functions inherited from TransformerBase< Trajectory, TrajectorySignal, openpass::events::TrajectoryEvent >
static TransformResult Transform (const SimulationSlave::EventNetworkInterface *eventNetwork, WorldInterface *world, AgentInterface *agent, int cycleTime)
Entry point for the transformation. More...
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: TransformerBase< T, Signal, TriggeringEvent > Class Template Reference

  • openScenario
  • transformation
  • TransformerBase
Static Public Member Functions | List of all members
TransformerBase< T, Signal, TriggeringEvent > Class Template Reference

CRTP Base class for Transformer. More...

Static Public Member Functions

static TransformResult Transform (const SimulationSlave::EventNetworkInterface *eventNetwork, WorldInterface *world, AgentInterface *agent, int cycleTime)
Entry point for the transformation. More...

Detailed Description

template<typename T, typename Signal, typename TriggeringEvent>
class openScenario::transformation::TransformerBase< T, Signal, TriggeringEvent >

CRTP Base class for Transformer.

This class encapsulates the extraction of a specific TriggeringEvent from the eventNetwork, so that the derived classes only need to take care of the tranformation to the Signal itself

Member Function Documentation

static TransformResult Transform | ( | const SimulationSlave::EventNetworkInterface * | eventNetwork,
 |  | WorldInterface * | world,
 |  | AgentInterface * | agent,
 |  | int | cycleTime
 | ) |  |
inlinestatic

Entry point for the transformation.

Parameters
eventNetwork | Necessary for extracting the TriggeringEvent
world | Releayed to the actual transformer
agent | Releayed to the actual transformer
cycleTime | Releayed to the actual transformer
Returns
Transform result for the given triggering event
40 {
41 const auto agentId = agent->GetId();
42 const auto triggers = eventNetwork->GetTrigger(TriggeringEvent::TOPIC);
43
44 for (const auto &trigger : triggers)
45 {
46 if (TriggeringEvent const *genericTrigger = dynamic_cast<TriggeringEvent const *>(trigger);
47 genericTrigger && AgentIsAffected(agentId, genericTrigger))
48 {
49 return {TriggeringEvent::TOPIC, true, T::ConvertToSignal(*genericTrigger, world, agent, cycleTime)};
50 }
51 }
52 return {TriggeringEvent::TOPIC, false, std::make_shared<Signal const>()};
53 }
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: AbsoluteTargetSpeed Struct Reference

  • openScenario
  • AbsoluteTargetSpeed
List of all members
AbsoluteTargetSpeed Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: ActorInformation Struct Reference

  • openScenario
  • ActorInformation
List of all members
ActorInformation Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: ByEntityCondition Class Reference

  • openScenario
  • ByEntityCondition
List of all members
ByEntityCondition Class Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: ByValueCondition Class Reference

  • openScenario
  • ByValueCondition
List of all members
ByValueCondition Class Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: ConditionalEventDetectorInformation Struct Reference

  • openScenario
  • ConditionalEventDetectorInformation
Public Attributes | List of all members
ConditionalEventDetectorInformation Struct Reference

Event specific information collected from an openSCENARIO story. More...

Public Attributes

int numberOfExecutions {}
Specifies number of executions. Use -1 for "unrestricted".

Detailed Description

Event specific information collected from an openSCENARIO story.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: CustomCommandAction Struct Reference

  • openScenario
  • CustomCommandAction
List of all members
CustomCommandAction Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: EntityAction Struct Reference

  • openScenario
  • EntityAction
List of all members
EntityAction Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: FollowTrajectoryAction Struct Reference

  • openScenario
  • FollowTrajectoryAction
List of all members
FollowTrajectoryAction Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: LaneChangeAction Struct Reference

  • openScenario
  • LaneChangeAction
List of all members
LaneChangeAction Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: LaneChangeParameter Struct Reference

  • openScenario
  • LaneChangeParameter
Public Attributes | List of all members
LaneChangeParameter Struct Reference

Public Attributes

int | value {}
Whether the target is absolute or relative.
std::string | object {}
Value of the target element.
double | dynamicsTarget {}
Name of the reference object if relative.
DynamicsType | dynamicsType {}
Time or distance defined by Dynamics element.
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: LanePosition Struct Reference

  • openScenario
  • LanePosition
List of all members
LanePosition Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: ManipulatorInformation Struct Reference

  • openScenario
  • ManipulatorInformation
List of all members
ManipulatorInformation Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Orientation Struct Reference

  • openScenario
  • Orientation
List of all members
Orientation Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: ParameterizedAttribute< T > Struct Template Reference

  • openScenario
  • ParameterizedAttribute
Public Member Functions | Public Attributes | List of all members
ParameterizedAttribute< T > Struct Template Reference

Attribute in a catalog that is not yet resolved. More...

Public Member Functions

ParameterizedAttribute ()=default
Value defined in the catalog (may later be overwriten in the CatalogReference)

Public Attributes

T defaultValue
Name of the parameter in OpenSCENARIO.

Detailed Description

template<typename T>
struct openScenario::ParameterizedAttribute< T >

Attribute in a catalog that is not yet resolved.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: ReachPositionCondition Class Reference

  • openScenario
  • ReachPositionCondition
List of all members
ReachPositionCondition Class Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: RelativeLanePosition Struct Reference

  • openScenario
  • RelativeLanePosition
List of all members
RelativeLanePosition Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: RelativeSpeedCondition Class Reference

  • openScenario
  • RelativeSpeedCondition
List of all members
RelativeSpeedCondition Class Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: RelativeTargetSpeed Struct Reference

  • openScenario
  • RelativeTargetSpeed
List of all members
RelativeTargetSpeed Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: RoadPosition Struct Reference

  • openScenario
  • RoadPosition
List of all members
RoadPosition Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: ScenarioImporterHelper Class Reference

  • openScenario
  • ScenarioImporterHelper
Static Public Member Functions | List of all members
ScenarioImporterHelper Class Reference

Static Public Member Functions

static Position | ImportPosition (QDomElement root, Parameters &parameters)
Import an openscenario Position Element. More...
static GlobalAction | ImportGlobalAction (QDomElement globalActionElement, Parameters &parameters)
Import an openscenario GlobalAction Element. More...
static PrivateAction | ImportPrivateAction (QDomElement privateActionElement, Parameters &parameters, const std::string catalogPath="")
Import an openscenario PrivateAction Element. More...
static UserDefinedAction | ImportUserDefinedAction (QDomElement userDefinedActionElement)
Import an openscenario UserDefinedAction Element. More...

Member Function Documentation

Position ImportPosition | ( | QDomElement | root,
 |  | Parameters & | parameters
 | ) |  |
static

Import an openscenario Position Element.

Parameters
[in] | root | Root of the xml Element
[in] | parameters | Parametersset for openScenario parameter references

return Position

42 {
43 QDomElement positionElement;
44 ThrowIfFalse(SimulationCommon::GetFirstChildElement(root, TAG::position, positionElement),
45 root, std::string("Tag ") + TAG::position + " is missing.");
46 QDomElement childOfPositionElement;
47 if(SimulationCommon::GetFirstChildElement(positionElement, TAG::lanePosition, childOfPositionElement))
48 {
49 return ImportLanePosition(childOfPositionElement, parameters);
50 }
51 else if (SimulationCommon::GetFirstChildElement(positionElement, TAG::relativeLanePosition, childOfPositionElement))
52 {
53 return ImportRelativeLanePosition(childOfPositionElement, parameters);
54 }
55 else if (SimulationCommon::GetFirstChildElement(positionElement, TAG::roadPosition, childOfPositionElement))
56 {
57 return ImportRoadPosition(childOfPositionElement, parameters);
58 }
59 else if (SimulationCommon::GetFirstChildElement(positionElement, TAG::worldPosition, childOfPositionElement))
60 {
61 return ImportWorldPosition(childOfPositionElement, parameters);
62 }
63 else
64 {
65 LogErrorAndThrow(std::string("Position type not supported. Currently supported are: ") + TAG::lanePosition + ", " + TAG::roadPosition + ", " + TAG::worldPosition + ".");
66 }
67 }
GlobalAction ImportGlobalAction | ( | QDomElement | globalActionElement,
 |  | Parameters & | parameters
 | ) |  |
static

Import an openscenario GlobalAction Element.

Parameters
[in] | globalActionElement | GlobalAction xml Element
[in] | parameters | Parametersset for openScenario parameter references

return GlobalAction

70 {
71 QDomElement childOfGlobalActionElement;
72 if (SimulationCommon::GetFirstChildElement(globalActionElement, TAG::entityAction, childOfGlobalActionElement))
73 {
74 return ImportEntityAction(childOfGlobalActionElement, parameters);
75 }
76 else
77 {
78 LogErrorAndThrow("Invalid GlobalAction type.");
79 }
80 }
PrivateAction ImportPrivateAction | ( | QDomElement | privateActionElement,
 |  | Parameters & | parameters,
 |  | const std::string | catalogPath = ""
 | ) |  |
static

Import an openscenario PrivateAction Element.

Parameters
[in] | privateActionElement | PrivatAction xml Element
[in] | parameters | Parametersset for openScenario parameter references
[in] | catalogPath | Catalogpath used by some sub functions

return PrivateAction

83 {
84 QDomElement childOfPrivateActionElement;
85 if (SimulationCommon::GetFirstChildElement(privateActionElement, TAG::lateralAction, childOfPrivateActionElement))
86 {
87 return ImportLateralAction(childOfPrivateActionElement, parameters);
88 }
89 else if (SimulationCommon::GetFirstChildElement(privateActionElement, TAG::longitudinalAction, childOfPrivateActionElement))
90 {
91 return ImportLongitudinalAction(childOfPrivateActionElement, parameters);
92 }
93 else if (SimulationCommon::GetFirstChildElement(privateActionElement, TAG::teleportAction, childOfPrivateActionElement))
94 {
95 return ImportTeleportAction(childOfPrivateActionElement, parameters);
96 }
97 else if (SimulationCommon::GetFirstChildElement(privateActionElement, TAG::routingAction, childOfPrivateActionElement))
98 {
99 return ImportRoutingAction(childOfPrivateActionElement, parameters, catalogPath);
100 }
101 else if (SimulationCommon::GetFirstChildElement(privateActionElement, TAG::visibilityAction, childOfPrivateActionElement))
102 {
103 return ImportVisibilityAction(childOfPrivateActionElement, parameters);
104 }
105 else
106 {
107 LogErrorAndThrow(std::string("PrivateAction type invalid."));
108 }
109 }
UserDefinedAction ImportUserDefinedAction ( QDomElement userDefinedActionElement )
static

Import an openscenario UserDefinedAction Element.

Parameters
[in] | userDefinedActionElement | Root of the xml Element
[in] | parameters | Parametersset for openScenario parameter references

return UserDefinedAction

112 {
113 QDomElement userDefinedChildElement;
114 ThrowIfFalse(SimulationCommon::GetFirstChildElement(userDefinedActionElement, TAG::customCommandAction, userDefinedChildElement),
115 userDefinedActionElement, "Tag " + std::string(TAG::customCommandAction) + " is missing.");
116
117 std::string command = userDefinedChildElement.text().toStdString();
118 boost::algorithm::trim(command);
119
120 return CustomCommandAction {command};
121 }
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: SimulationTimeCondition Class Reference

  • openScenario
  • SimulationTimeCondition
List of all members
SimulationTimeCondition Class Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: SpeedAction Struct Reference

  • openScenario
  • SpeedAction
List of all members
SpeedAction Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: StochasticAttribute Struct Reference

  • openScenario
  • StochasticAttribute
List of all members
StochasticAttribute Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: TimeHeadwayCondition Class Reference

  • openScenario
  • TimeHeadwayCondition
List of all members
TimeHeadwayCondition Class Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: TimeToCollisionCondition Class Reference

  • openScenario
  • TimeToCollisionCondition
List of all members
TimeToCollisionCondition Class Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Trajectory Struct Reference

  • openScenario
  • Trajectory
List of all members
Trajectory Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: TrajectoryPoint Struct Reference

  • openScenario
  • TrajectoryPoint
List of all members
TrajectoryPoint Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: TransitionDynamics Struct Reference

  • openScenario
  • TransitionDynamics
List of all members
TransitionDynamics Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: VisibilityAction Struct Reference

  • openScenario
  • VisibilityAction
List of all members
VisibilityAction Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: WorldPosition Struct Reference

  • openScenario
  • WorldPosition
List of all members
WorldPosition Struct Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Junction Class Reference

  • OWL
  • Fakes
  • Junction
List of all members
Junction Class Reference

Additional Inherited Members

- Public Member Functions inherited from Junction
virtual const std::string & | GetId () const =0
Returns the Id of the Junction.
virtual void | AddConnectingRoad (const Interfaces::Road *connectingRoad)=0
Adds a connecting road to this road.
virtual const Roads & | GetConnectingRoads () const =0
Returns a vector of all connecting roads that this road consists of.
virtual void | AddPriority (const std::string &high, const std::string &low)=0
Adds a priority entry for this junction.
virtual const Priorities & | GetPriorities () const =0
Returns all priorities of connectors in this junction.
virtual void | AddIntersectionInfo (const std::string &roadId, const IntersectionInfo &intersectionInfo)=0
Adds intersection info for the road with roadId to the junction.
virtual const std::map< std::string, std::vector< IntersectionInfo > > & | GetIntersections () const =0
Gets all of this junction's roads' intersection info.
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Lane Class Reference

  • OWL
  • Fakes
  • Lane
List of all members
Lane Class Reference

Additional Inherited Members

- Public Member Functions inherited from Lane
virtual void | CopyToGroundTruth (osi3::GroundTruth &target) const =0
Copies the underlying OSI object to the given GroundTruth. More...
virtual Id | GetId () const =0
Returns the OSI Id.
virtual bool | Exists () const =0
Returns false of this lane is invalid, otherwise returns true.
virtual const Section & | GetSection () const =0
Returns the section that this lane is part of.
virtual const Road & | GetRoad () const =0
Returns the road that this lane is part of.
virtual const LaneGeometryElements & | GetLaneGeometryElements () const =0
Returns all lane geometry elements of the lane.
virtual double | GetLength () const =0
Returns the length of the lane.
virtual int | GetRightLaneCount () const =0
Returns the number of lanes to the right of this lane.
virtual LaneType | GetLaneType () const =0
Returns the type of the lane.
virtual double | GetCurvature (double distance) const =0
virtual double | GetWidth (double distance) const =0
virtual double | GetDirection (double distance) const =0
virtual const Primitive::LaneGeometryJoint::Points | GetInterpolatedPointsAtDistance (double distance) const =0
virtual const std::vector< Id > & | GetNext () const =0
Returns the ids of all successors of this lane.
virtual const std::vector< Id > & | GetPrevious () const =0
Returns the ids of all predecessors of this lane.
virtual const Lane & | GetLeftLane () const =0
Returns the (possibly invalid) lane to the right of this lane.
virtual const Lane & | GetRightLane () const =0
Returns the (possibly invalid) lane to the right of this lane.
virtual const std::vector< Id > | GetLeftLaneBoundaries () const =0
Returns the ids of all left lane boundaries.
virtual const std::vector< Id > | GetRightLaneBoundaries () const =0
Returns the ids of all right lane boundaries.
virtual double | GetDistance (MeasurementPoint measurementPoint) const =0
virtual bool | Covers (double distance) const =0
Returns true if the specified distance is valid on this lane, otherwise returns false.
virtual void | AddNext (const Lane *lane)=0
Sets the sucessor of the lane. Throws an error if the lane already has a sucessor.
virtual void | AddPrevious (const Lane *lane)=0
Sets the predecessor of the lane. Throws an error if the lane already has a predecessor.
virtual void | AddLaneGeometryJoint (const Common::Vector2d &pointLeft, const Common::Vector2d &pointCenter, const Common::Vector2d &pointRight, double sOffset, double curvature, double heading)=0
virtual void | SetLaneType (LaneType specifiedType)=0
Sets type of the lane.
virtual void | SetLeftLane (const Interfaces::Lane &lane)=0
Sets lane to the left of this lane.
virtual void | SetRightLane (const Interfaces::Lane &lane)=0
Sets lane to the right of this lane.
virtual void | SetLeftLaneBoundaries (const std::vector< OWL::Id > laneBoundaries)=0
virtual const Interfaces::WorldObjects & | GetWorldObjects () const =0
Returns a vector of all WorldObjects that are currently in this lane.
virtual const Interfaces::TrafficSigns & | GetTrafficSigns () const =0
Returns a vector of all traffic signs that are assigned to this lane.
virtual const Interfaces::RoadMarkings & | GetRoadMarkings () const =0
Returns a vector of all road markings that are assigned to this lane.
virtual void | AddMovingObject (OWL::Interfaces::MovingObject &movingObject)=0
Adds a MovingObject to the list of objects currently in this lane.
virtual void | AddStationaryObject (OWL::Interfaces::StationaryObject &stationaryObject)=0
Adds a StationaryObject to the list of objects currently in this lane.
virtual void | AddWorldObject (Interfaces::WorldObject &worldObject)=0
Adds a WorldObject to the list of objects currently in this lane.
virtual void | AddTrafficSign (Interfaces::TrafficSign &trafficSign)=0
Assigns a traffic sign to this lane.
virtual void | AddRoadMarking (Interfaces::RoadMarking &roadMarking)=0
Assigns a road marking to this lane.
virtual void | ClearMovingObjects ()=0
Removes all MovingObjects from the list of objects currently in this lane while keeping StationaryObjects.
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: LaneBoundary Class Reference

  • OWL
  • Fakes
  • LaneBoundary
List of all members
LaneBoundary Class Reference

Additional Inherited Members

- Public Member Functions inherited from LaneBoundary
virtual Id | GetId () const =0
Returns the OSI Id.
virtual double | GetWidth () const =0
Returns the width of the boundary.
virtual double | GetSStart () const =0
Returns the s coordinate, where this boundary starts.
virtual double | GetSEnd () const =0
Returns the s coordinate, where this boundary ends.
virtual LaneMarking::Type | GetType () const =0
Returns the type of the boundary.
virtual LaneMarking::Color | GetColor () const =0
Return the color of the boundary.
virtual LaneMarkingSide | GetSide () const =0
Returns the side (Left/Right) of this boundary if it is part of a double line, or Single otherwise.
virtual void | AddBoundaryPoint (const Common::Vector2d &point, double heading)=0
virtual void | CopyToGroundTruth (osi3::GroundTruth &target) const =0
Copies the underlying OSI object to the given GroundTruth. More...
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: MovingObject Class Reference

  • OWL
  • Fakes
  • MovingObject
List of all members
MovingObject Class Reference

Additional Inherited Members

- Public Member Functions inherited from WorldObject
virtual void | CopyToGroundTruth (osi3::GroundTruth &target) const =0
Copies the underlying OSI object to the given GroundTruth. More...
virtual Id | GetId () const =0
Returns the OSI Id of the object.
virtual Primitive::Dimension | GetDimension () const =0
Returns the dimension of the object.
virtual Primitive::AbsPosition | GetReferencePointPosition () const =0
Returns the position of the reference point of the object in absolute coordinates (i. e. world coordinates)
virtual Primitive::AbsOrientation | GetAbsOrientation () const =0
Returns the orientation of the object in absolute coordinates (i. e. world coordinates)
virtual double | GetAbsVelocityDouble () const =0
virtual double | GetAbsAccelerationDouble () const =0
template<typename T >
T * | GetLink ()
template<typename T >
T * | GetLink () const
template<typename T >
bool | Is () const
Returns true is this object is of type T otherwise false.
template<typename T >
T * | As () const
Returns this object casted to T*.
template<typename T >
T * | As ()
Returns this object casted to T*.
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Road Class Reference

  • OWL
  • Fakes
  • Road
List of all members
Road Class Reference

Additional Inherited Members

- Public Member Functions inherited from Road
virtual const std::string & | GetId () const =0
Returns the Id of the road.
virtual void | AddSection (Interfaces::Section &section)=0
Adds a section to this road.
virtual const Sections & | GetSections () const =0
Returns a vector of all sections that this road consists of.
virtual double | GetLength () const =0
Returns the length of the road.
virtual const std::string & | GetSuccessor () const =0
Returns the id of the successor of the road (i.e. next road or junction)
virtual const std::string & | GetPredecessor () const =0
Returns the id of the predecessor of the road (i.e. previous road or junction)
virtual void | SetSuccessor (const std::string &successor)=0
virtual void | SetPredecessor (const std::string &predecessor)=0
virtual bool | IsInStreamDirection () const =0
virtual double | GetDistance (MeasurementPoint mp) const =0
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: RoadMarking Class Reference

  • OWL
  • Fakes
  • RoadMarking
List of all members
RoadMarking Class Reference

Additional Inherited Members

- Public Member Functions inherited from RoadMarking
virtual std::string | GetId () const =0
Returns the OpenDrive ID.
virtual double | GetS () const =0
Returns the s coordinate.
virtual CommonTrafficSign::Entity | GetSpecification (const double relativeDistance) const =0
Returns the specification of the sign with the set relative distance.
virtual bool | IsValidForLane (OWL::Id laneId) const =0
Returns wether the sign is valid for the specified lane.
virtual Primitive::AbsPosition | GetReferencePointPosition () const =0
Returns the position of the reference point of the object in absolute coordinates (i. e. world coordinates)
virtual void | SetS (double sPos)=0
Sets the s coordinate.
virtual void | SetValidForLane (OWL::Id laneId)=0
Adds the specified lane to the list of valid lanes.
virtual bool | SetSpecification (RoadSignalInterface *signal, Position position)=0
virtual void | CopyToGroundTruth (osi3::GroundTruth &target) const =0
Copies the underlying OSI object to the given GroundTruth. More...
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Section Class Reference

  • OWL
  • Fakes
  • Section
List of all members
Section Class Reference

Additional Inherited Members

- Public Member Functions inherited from Section
virtual void | AddNext (const Interfaces::Section &section)=0
Sets the sucessor of the section. Throws an error if the section already has a sucessor.
virtual void | AddPrevious (const Interfaces::Section &section)=0
Sets the predecessor of the section. Throws an error if the section already has a predecessor.
virtual void | AddLane (const Interfaces::Lane &lane)=0
Adds a lane to this section.
virtual void | SetRoad (Interfaces::Road *road)=0
Sets the road that this section is part of.
virtual const Lanes & | GetLanes () const =0
Returns a vector of all lanes of the section.
virtual const Interfaces::Road & | GetRoad () const =0
Returns the road that this section is part of.
virtual double | GetDistance (MeasurementPoint measurementPoint) const =0
virtual bool | Covers (double distance) const =0
Returns true if the specified distance is valid on this sections, otherwise returns false.
virtual bool | CoversInterval (double startDistance, double endDistance) const =0
Returns true at least one s coordinate between startDistance and endDistance is valid on this section.
virtual double | GetSOffset () const =0
Returns the s coordinate of the section start.
virtual double | GetLength () const =0
Returns the length of the section.
virtual void | SetCenterLaneBoundary (std::vector< Id > laneBoundaryId)=0
virtual std::vector< Id > | GetCenterLaneBoundary () const =0
Returns the ids of the lane boundaries of the center lane.
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: StationaryObject Class Reference

  • OWL
  • Fakes
  • StationaryObject
List of all members
StationaryObject Class Reference

Additional Inherited Members

- Public Member Functions inherited from WorldObject
virtual void | CopyToGroundTruth (osi3::GroundTruth &target) const =0
Copies the underlying OSI object to the given GroundTruth. More...
virtual Id | GetId () const =0
Returns the OSI Id of the object.
virtual Primitive::Dimension | GetDimension () const =0
Returns the dimension of the object.
virtual Primitive::AbsPosition | GetReferencePointPosition () const =0
Returns the position of the reference point of the object in absolute coordinates (i. e. world coordinates)
virtual Primitive::AbsOrientation | GetAbsOrientation () const =0
Returns the orientation of the object in absolute coordinates (i. e. world coordinates)
virtual double | GetAbsVelocityDouble () const =0
virtual double | GetAbsAccelerationDouble () const =0
virtual void | AddLaneAssignment (const Interfaces::Lane &lane)=0
Assigns a lane to this object.
virtual const Interfaces::Lanes & | GetLaneAssignments () const =0
Returns a vector of all lanes that this object is assigned to.
virtual void | ClearLaneAssignments ()=0
Clears the list of lanes that this object is assigned to.
template<typename T >
T * | GetLink ()
template<typename T >
T * | GetLink () const
template<typename T >
bool | Is () const
Returns true is this object is of type T otherwise false.
template<typename T >
T * | As () const
Returns this object casted to T*.
template<typename T >
T * | As ()
Returns this object casted to T*.
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: TrafficSign Class Reference

  • OWL
  • Fakes
  • TrafficSign
List of all members
TrafficSign Class Reference

Additional Inherited Members

- Public Member Functions inherited from TrafficSign
virtual std::string | GetId () const =0
Returns the OpenDrive ID.
virtual double | GetS () const =0
Returns the s coordinate.
virtual std::pair< double, CommonTrafficSign::Unit > | GetValueAndUnitInSI (const double osiValue, const osi3::TrafficSignValue_Unit osiUnit) const =0
Returns the value of the sign converted in SI Units.
virtual CommonTrafficSign::Entity | GetSpecification (const double relativeDistance) const =0
Returns the specification of the sign with the set relative distance.
virtual bool | IsValidForLane (OWL::Id laneId) const =0
Returns wether the sign is valid for the specified lane.
virtual Primitive::AbsPosition | GetReferencePointPosition () const =0
Returns the position of the reference point of the object in absolute coordinates (i. e. world coordinates)
virtual void | SetS (double sPos)=0
Sets the s coordinate.
virtual void | SetValidForLane (OWL::Id laneId)=0
Adds the specified lane to the list of valid lanes.
virtual bool | SetSpecification (RoadSignalInterface *signal, Position position)=0
virtual void | AddSupplementarySign (RoadSignalInterface *odSignal, Position position)=0
virtual void | CopyToGroundTruth (osi3::GroundTruth &target) const =0
Copies the underlying OSI object to the given GroundTruth. More...
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: WorldData Class Reference

  • OWL
  • Fakes
  • WorldData
List of all members
WorldData Class Reference

Additional Inherited Members

- Public Member Functions inherited from WorldData
virtual void | Clear ()=0
Deletes all objects, roads, sections and lanes.
virtual SensorView_ptr | GetSensorView (osi3::SensorViewConfiguration &conf, int agentId)=0
Creates a OSI SensorView. More...
virtual const std::unordered_map< std::string, Road * > & | GetRoads () const =0
Returns a map of all Roads with their OSI Id.
virtual Interfaces::MovingObject & | AddMovingObject (void *linkedObject)=0
virtual Interfaces::StationaryObject & | AddStationaryObject (void *linkedObject)=0
virtual Interfaces::TrafficSign & | AddTrafficSign (const std::string odId)=0
Creates a new TrafficSign and returns it.
virtual Interfaces::RoadMarking & | AddRoadMarking ()=0
Creates a new RoadMarking and returns it.
virtual void | AssignTrafficSignToLane (OWL::Id laneId, Interfaces::TrafficSign &trafficSign)=0
virtual void | AssignRoadMarkingToLane (OWL::Id laneId, Interfaces::RoadMarking &roadMarking)=0
virtual void | RemoveMovingObjectById (Id id)=0
Deletes the moving object with the specified Id.
virtual const std::unordered_map< Id, OdId > & | GetLaneIdMapping () const =0
Returns the mapping of OSI Ids to OpenDrive Ids for lanes.
virtual const std::unordered_map< std::string, Id > & | GetTrafficSignIdMapping () const =0
Returns the mapping of OpenDrive Ids to OSI Ids for trafficSigns.
virtual const std::unordered_map< Id, Lane * > & | GetLanes () const =0
Returns a map of all lanes with their OSI Id.
virtual const std::unordered_map< Id, LaneBoundary * > & | GetLaneBoundaries () const =0
Returns a map of all lane boundaries with their OSI Id.
virtual const std::map< std::string, Junction * > & | GetJunctions () const =0
Returns a map of all junctions with their OSI Id.
virtual const std::unordered_map< Id, TrafficSign * > & | GetTrafficSigns () const =0
Returns a map of all traffic signs with their OSI Id.
virtual const std::unordered_map< Id, RoadMarking * > & | GetRoadMarkings () const =0
Returns a map of all road markings with their OSI Id.
virtual void | SetRoadGraph (const RoadGraph &&roadGraph, const RoadGraphVertexMapping &&vertexMapping)=0
virtual const RoadGraph & | GetRoadGraph () const =0
Returns the graph representation of the road network.
virtual const RoadGraphVertexMapping & | GetRoadGraphVertexMapping () const =0
Returns the mapping from roads (with direction) to the vertices of the roadGraph.
virtual void | AddLane (RoadLaneSectionInterface &odSection, const RoadLaneInterface &odLane, const std::vector< Id > laneBoundaries)=0
virtual Id | AddLaneBoundary (const RoadLaneRoadMark &odLaneRoadMark, double sectionStart, LaneMarkingSide side)=0
virtual void | SetCenterLaneBoundary (const RoadLaneSectionInterface &odSection, std::vector< Id > laneBoundaryIds)=0
virtual void | AddSection (const RoadInterface &odRoad, const RoadLaneSectionInterface &odSection)=0
virtual void | AddRoad (const RoadInterface &odRoad)=0
virtual void | AddJunction (const JunctionInterface *odJunction)=0
virtual void | AddJunctionConnection (const JunctionInterface *odJunction, const RoadInterface &odRoad)=0
Adds a connection road (path) to a junction.
virtual void | AddJunctionPriority (const JunctionInterface *odJunction, const std::string &high, const std::string &low)=0
Adds a priority entry of to connecting roads to a junction.
virtual void | AddLaneGeometryPoint (const RoadLaneInterface &odLane, const Common::Vector2d &pointLeft, const Common::Vector2d &pointCenter, const Common::Vector2d &pointRight, const double sOffset, const double curvature, const double heading)=0
virtual void | AddCenterLinePoint (const RoadLaneSectionInterface &odSection, const Common::Vector2d &pointCenter, const double sOffset, double heading)=0
virtual void | AddLaneSuccessor (RoadLaneInterface &odLane, RoadLaneInterface &successorOdLane)=0
Sets successorOdLane as successor of odLane.
virtual void | AddLanePredecessor (RoadLaneInterface &odLane, RoadLaneInterface &predecessorOdLane)=0
Sets predecessorOdLane as predecessor of odLane.
virtual void | SetRoadSuccessor (const RoadInterface &road, const RoadInterface &successorRoad)=0
Sets successorRoad as successor of road in OSI.
virtual void | SetRoadPredecessor (const RoadInterface &road, const RoadInterface &predecessorRoad)=0
Sets predecessorRoad as predecessor of road in OSI.
virtual void | SetSectionSuccessor (const RoadLaneSectionInterface &section, const RoadLaneSectionInterface &successorSection)=0
Sets successorSection as successor of section in OSI.
virtual void | SetSectionPredecessor (const RoadLaneSectionInterface &section, const RoadLaneSectionInterface &predecessorSection)=0
Sets predecessorSection as predecessor of section in OSI.
virtual void | SetRoadSuccessorJunction (const RoadInterface &road, const JunctionInterface *successorJunction)=0
Sets a junction as the successor of a road.
virtual void | SetRoadPredecessorJunction (const RoadInterface &road, const JunctionInterface *predecessorJunction)=0
Sets a junction as the predecessor of a road.
virtual void | ConnectLanes (RoadLaneSectionInterface &firstOdSection, RoadLaneSectionInterface &secondOdSection, const std::map< int, int > &lanePairs, bool isPrev)=0
Currently not implemented.
virtual void | Reset ()=0
Resets the world for new run; deletes all moving objects.
virtual OWL::Id | GetOwlId (int agentId)=0
Retrieves the OWL Id of an agent. More...
virtual int | GetAgentId (const OWL::Id owlId) const =0
Retrieves the simualtion framework Id of an agent associated to the given OWL Id. More...
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: InvalidLane Class Reference

  • OWL
  • Implementation
  • InvalidLane
List of all members
InvalidLane Class Reference

Additional Inherited Members

- Public Member Functions inherited from Lane
Lane (osi3::Lane *osiLane, const Interfaces::Section *section)
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: InvalidRoad Class Reference

  • OWL
  • Implementation
  • InvalidRoad
List of all members
InvalidRoad Class Reference

Additional Inherited Members

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: InvalidSection Class Reference

  • OWL
  • Implementation
  • InvalidSection
List of all members
InvalidSection Class Reference

Additional Inherited Members

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Junction Class Reference

  • OWL
  • Implementation
  • Junction
List of all members
Junction Class Reference

Additional Inherited Members

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Lane Class Reference

  • OWL
  • Implementation
  • Lane
Public Member Functions | List of all members
Lane Class Reference

Public Member Functions

Lane (osi3::Lane *osiLane, const Interfaces::Section *section)

Constructor & Destructor Documentation

Lane | ( | osi3::Lane * | osiLane,
 |  | const Interfaces::Section * | section
 | ) |  |
Parameters
[in] | osiLane | representation of the road in OpenDrive
[in] | section | section that this lane is part of
[in] | isInStreamDirection | flag whether this lane is in the same direction as the LaneStream it belongs to
40 :
41 osiLane(osiLane),
42 section(section),
43 leftLane(section ? new InvalidLane() : nullptr),
44 rightLane(section ? new InvalidLane() : nullptr)
45 {
46 }
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: LaneBoundary Class Reference

  • OWL
  • Implementation
  • LaneBoundary
List of all members
LaneBoundary Class Reference

Additional Inherited Members

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: MovingObject Class Reference

  • OWL
  • Implementation
  • MovingObject
List of all members
MovingObject Class Reference

Additional Inherited Members

- Public Member Functions inherited from WorldObject
template<typename T >
T * | GetLink ()
template<typename T >
T * | GetLink () const
template<typename T >
bool | Is () const
Returns true is this object is of type T otherwise false.
template<typename T >
T * | As () const
Returns this object casted to T*.
template<typename T >
T * | As ()
Returns this object casted to T*.
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Road Class Reference

  • OWL
  • Implementation
  • Road
List of all members
Road Class Reference

Additional Inherited Members

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: RoadMarking Class Reference

  • OWL
  • Implementation
  • RoadMarking
List of all members
RoadMarking Class Reference

Additional Inherited Members

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Section Class Reference

  • OWL
  • Implementation
  • Section
List of all members
Section Class Reference

Additional Inherited Members

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: StationaryObject Class Reference

  • OWL
  • Implementation
  • StationaryObject
List of all members
StationaryObject Class Reference

Additional Inherited Members

- Public Member Functions inherited from WorldObject
template<typename T >
T * | GetLink ()
template<typename T >
T * | GetLink () const
template<typename T >
bool | Is () const
Returns true is this object is of type T otherwise false.
template<typename T >
T * | As () const
Returns this object casted to T*.
template<typename T >
T * | As ()
Returns this object casted to T*.
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: TrafficSign Class Reference

  • OWL
  • Implementation
  • TrafficSign
List of all members
TrafficSign Class Reference

Additional Inherited Members

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Vehicle Class Reference

  • OWL
  • Implementation
  • Vehicle
List of all members
Vehicle Class Reference

Additional Inherited Members

- Public Member Functions inherited from WorldObject
template<typename T >
T * | GetLink ()
template<typename T >
T * | GetLink () const
template<typename T >
bool | Is () const
Returns true is this object is of type T otherwise false.
template<typename T >
T * | As () const
Returns this object casted to T*.
template<typename T >
T * | As ()
Returns this object casted to T*.
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Junction Class Reference

  • OWL
  • Interfaces
  • Junction
Public Member Functions | List of all members
Junction Class Referenceabstract

This class represents a junction in the world. More...

Public Member Functions

virtual const std::string & | GetId () const =0
Returns the Id of the Junction.
virtual void | AddConnectingRoad (const Interfaces::Road *connectingRoad)=0
Adds a connecting road to this road.
virtual const Roads & | GetConnectingRoads () const =0
Returns a vector of all connecting roads that this road consists of.
virtual void | AddPriority (const std::string &high, const std::string &low)=0
Adds a priority entry for this junction.
virtual const Priorities & | GetPriorities () const =0
Returns all priorities of connectors in this junction.
virtual void | AddIntersectionInfo (const std::string &roadId, const IntersectionInfo &intersectionInfo)=0
Adds intersection info for the road with roadId to the junction.
virtual const std::map< std::string, std::vector< IntersectionInfo > > & | GetIntersections () const =0
Gets all of this junction's roads' intersection info.

Detailed Description

This class represents a junction in the world.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Lane Class Reference

  • OWL
  • Interfaces
  • Lane
Public Member Functions | List of all members
Lane Class Referenceabstract

This class represents a single lane inside a section. More...

Public Member Functions

virtual void | CopyToGroundTruth (osi3::GroundTruth &target) const =0
Copies the underlying OSI object to the given GroundTruth. More...
virtual Id | GetId () const =0
Returns the OSI Id.
virtual bool | Exists () const =0
Returns false of this lane is invalid, otherwise returns true.
virtual const Section & | GetSection () const =0
Returns the section that this lane is part of.
virtual const Road & | GetRoad () const =0
Returns the road that this lane is part of.
virtual const LaneGeometryElements & | GetLaneGeometryElements () const =0
Returns all lane geometry elements of the lane.
virtual double | GetLength () const =0
Returns the length of the lane.
virtual int | GetRightLaneCount () const =0
Returns the number of lanes to the right of this lane.
virtual LaneType | GetLaneType () const =0
Returns the type of the lane.
virtual double | GetCurvature (double distance) const =0
virtual double | GetWidth (double distance) const =0
virtual double | GetDirection (double distance) const =0
virtual const Primitive::LaneGeometryJoint::Points | GetInterpolatedPointsAtDistance (double distance) const =0
virtual const std::vector< Id > & | GetNext () const =0
Returns the ids of all successors of this lane.
virtual const std::vector< Id > & | GetPrevious () const =0
Returns the ids of all predecessors of this lane.
virtual const Lane & | GetLeftLane () const =0
Returns the (possibly invalid) lane to the right of this lane.
virtual const Lane & | GetRightLane () const =0
Returns the (possibly invalid) lane to the right of this lane.
virtual const std::vector< Id > | GetLeftLaneBoundaries () const =0
Returns the ids of all left lane boundaries.
virtual const std::vector< Id > | GetRightLaneBoundaries () const =0
Returns the ids of all right lane boundaries.
virtual double | GetDistance (MeasurementPoint measurementPoint) const =0
virtual bool | Covers (double distance) const =0
Returns true if the specified distance is valid on this lane, otherwise returns false.
virtual void | AddNext (const Lane *lane)=0
Sets the sucessor of the lane. Throws an error if the lane already has a sucessor.
virtual void | AddPrevious (const Lane *lane)=0
Sets the predecessor of the lane. Throws an error if the lane already has a predecessor.
virtual void | AddLaneGeometryJoint (const Common::Vector2d &pointLeft, const Common::Vector2d &pointCenter, const Common::Vector2d &pointRight, double sOffset, double curvature, double heading)=0
virtual void | SetLaneType (LaneType specifiedType)=0
Sets type of the lane.
virtual void | SetLeftLane (const Interfaces::Lane &lane)=0
Sets lane to the left of this lane.
virtual void | SetRightLane (const Interfaces::Lane &lane)=0
Sets lane to the right of this lane.
virtual void | SetLeftLaneBoundaries (const std::vector< OWL::Id > laneBoundaries)=0
virtual const Interfaces::WorldObjects & | GetWorldObjects () const =0
Returns a vector of all WorldObjects that are currently in this lane.
virtual const Interfaces::TrafficSigns & | GetTrafficSigns () const =0
Returns a vector of all traffic signs that are assigned to this lane.
virtual const Interfaces::RoadMarkings & | GetRoadMarkings () const =0
Returns a vector of all road markings that are assigned to this lane.
virtual void | AddMovingObject (OWL::Interfaces::MovingObject &movingObject)=0
Adds a MovingObject to the list of objects currently in this lane.
virtual void | AddStationaryObject (OWL::Interfaces::StationaryObject &stationaryObject)=0
Adds a StationaryObject to the list of objects currently in this lane.
virtual void | AddWorldObject (Interfaces::WorldObject &worldObject)=0
Adds a WorldObject to the list of objects currently in this lane.
virtual void | AddTrafficSign (Interfaces::TrafficSign &trafficSign)=0
Assigns a traffic sign to this lane.
virtual void | AddRoadMarking (Interfaces::RoadMarking &roadMarking)=0
Assigns a road marking to this lane.
virtual void | ClearMovingObjects ()=0
Removes all MovingObjects from the list of objects currently in this lane while keeping StationaryObjects.

Detailed Description

This class represents a single lane inside a section.

Member Function Documentation

virtual void CopyToGroundTruth ( osi3::GroundTruth & target ) const
pure virtual

Copies the underlying OSI object to the given GroundTruth.

Parameters
[in] target The target OSI GroundTruth
virtual double GetCurvature ( double distance ) const
pure virtual

Returns the curvature of the lane at the specified distance

Parameters
distance s coordinate

Here is the caller graph for this function:

virtual double GetWidth ( double distance ) const
pure virtual

Returns the width of the lane at the specified distance

Parameters
distance s coordinate
virtual double GetDirection ( double distance ) const
pure virtual

Returns the direction of the lane at the specified distance

Parameters
distance s coordinate

Here is the caller graph for this function:

virtual const Primitive::LaneGeometryJoint::Points GetInterpolatedPointsAtDistance ( double distance ) const
pure virtual

Returns the left, right and reference point at the specified s coordinate interpolated between the geometry joints

Parameters
distance s coordinate

Here is the caller graph for this function:

virtual double GetDistance ( MeasurementPoint measurementPoint ) const
pure virtual

Returns the s coordinate of the lane start if measure point is road start or the s coordinate of the lane end if measure point is road end

virtual void AddLaneGeometryJoint | ( | const Common::Vector2d & | pointLeft,
 |  | const Common::Vector2d & | pointCenter,
 |  | const Common::Vector2d & | pointRight,
 |  | double | sOffset,
 |  | double | curvature,
 |  | double | heading
 | ) |  |
pure virtual

Adds a new lane geometry joint to the end of the current list of joints

Parameters
pointLeft | left point of the new joint
pointCenter | reference point of the new joint
pointRight | right point of the new joint
sOffset | s offset of the new joint
curvature | curvature of the lane at sOffset
heading | heading of the lane at sOffset
virtual void SetLeftLaneBoundaries ( const std::vector< OWL::Id > laneBoundaries )
pure virtual

Adds the ids to the list of left lane boundaries

Parameters
laneBoundaries ids to add
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: LaneBoundary Class Reference

  • OWL
  • Interfaces
  • LaneBoundary
Public Member Functions | List of all members
LaneBoundary Class Referenceabstract

This class represents the boundary between two lanes. More...

Public Member Functions

virtual Id | GetId () const =0
Returns the OSI Id.
virtual double | GetWidth () const =0
Returns the width of the boundary.
virtual double | GetSStart () const =0
Returns the s coordinate, where this boundary starts.
virtual double | GetSEnd () const =0
Returns the s coordinate, where this boundary ends.
virtual LaneMarking::Type | GetType () const =0
Returns the type of the boundary.
virtual LaneMarking::Color | GetColor () const =0
Return the color of the boundary.
virtual LaneMarkingSide | GetSide () const =0
Returns the side (Left/Right) of this boundary if it is part of a double line, or Single otherwise.
virtual void | AddBoundaryPoint (const Common::Vector2d &point, double heading)=0
virtual void | CopyToGroundTruth (osi3::GroundTruth &target) const =0
Copies the underlying OSI object to the given GroundTruth. More...

Detailed Description

This class represents the boundary between two lanes.

Member Function Documentation

virtual void AddBoundaryPoint | ( | const Common::Vector2d & | point,
 |  | double | heading
 | ) |  |
pure virtual

Adds a new point the end of the list of boundary points

Parameters
point | point to add
heading | heading of the lane
virtual void CopyToGroundTruth ( osi3::GroundTruth & target ) const
pure virtual

Copies the underlying OSI object to the given GroundTruth.

Parameters
[in] target The target OSI GroundTruth
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: MovingObject Class Reference

  • OWL
  • Interfaces
  • MovingObject
List of all members
MovingObject Class Referenceabstract

Additional Inherited Members

- Public Member Functions inherited from WorldObject
virtual void | CopyToGroundTruth (osi3::GroundTruth &target) const =0
Copies the underlying OSI object to the given GroundTruth. More...
virtual Id | GetId () const =0
Returns the OSI Id of the object.
virtual Primitive::Dimension | GetDimension () const =0
Returns the dimension of the object.
virtual Primitive::AbsPosition | GetReferencePointPosition () const =0
Returns the position of the reference point of the object in absolute coordinates (i. e. world coordinates)
virtual Primitive::AbsOrientation | GetAbsOrientation () const =0
Returns the orientation of the object in absolute coordinates (i. e. world coordinates)
virtual double | GetAbsVelocityDouble () const =0
virtual double | GetAbsAccelerationDouble () const =0
template<typename T >
T * | GetLink ()
template<typename T >
T * | GetLink () const
template<typename T >
bool | Is () const
Returns true is this object is of type T otherwise false.
template<typename T >
T * | As () const
Returns this object casted to T*.
template<typename T >
T * | As ()
Returns this object casted to T*.
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Road Class Reference

  • OWL
  • Interfaces
  • Road
Public Member Functions | List of all members
Road Class Referenceabstract

This class represents a road in the world. More...

Public Member Functions

virtual const std::string & | GetId () const =0
Returns the Id of the road.
virtual void | AddSection (Interfaces::Section &section)=0
Adds a section to this road.
virtual const Sections & | GetSections () const =0
Returns a vector of all sections that this road consists of.
virtual double | GetLength () const =0
Returns the length of the road.
virtual const std::string & | GetSuccessor () const =0
Returns the id of the successor of the road (i.e. next road or junction)
virtual const std::string & | GetPredecessor () const =0
Returns the id of the predecessor of the road (i.e. previous road or junction)
virtual void | SetSuccessor (const std::string &successor)=0
virtual void | SetPredecessor (const std::string &predecessor)=0
virtual bool | IsInStreamDirection () const =0
virtual double | GetDistance (MeasurementPoint mp) const =0

Detailed Description

This class represents a road in the world.

Member Function Documentation

virtual void SetSuccessor ( const std::string & successor )
pure virtual

Sets the successor of the road

Parameters
successor id of successor (road or junction)
virtual void SetPredecessor ( const std::string & predecessor )
pure virtual

Sets the predecessor of the road

Parameters
predecessor id of predecessor (road or junction)
virtual bool IsInStreamDirection ( ) const
pure virtual

Returns true if the direction of the road is the same as the direction of the road stream, false otherwise

virtual double GetDistance ( MeasurementPoint mp ) const
pure virtual

Returns the distance to a point on the road, relative to the road itself

Parameters
mp the point on the road to measure
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: RoadMarking Class Reference

  • OWL
  • Interfaces
  • RoadMarking
Public Member Functions | List of all members
RoadMarking Class Referenceabstract

This class represents a traffic sign that is painted on the road surface. More...

Public Member Functions

virtual std::string | GetId () const =0
Returns the OpenDrive ID.
virtual double | GetS () const =0
Returns the s coordinate.
virtual CommonTrafficSign::Entity | GetSpecification (const double relativeDistance) const =0
Returns the specification of the sign with the set relative distance.
virtual bool | IsValidForLane (OWL::Id laneId) const =0
Returns wether the sign is valid for the specified lane.
virtual Primitive::AbsPosition | GetReferencePointPosition () const =0
Returns the position of the reference point of the object in absolute coordinates (i. e. world coordinates)
virtual void | SetS (double sPos)=0
Sets the s coordinate.
virtual void | SetValidForLane (OWL::Id laneId)=0
Adds the specified lane to the list of valid lanes.
virtual bool | SetSpecification (RoadSignalInterface *signal, Position position)=0
virtual void | CopyToGroundTruth (osi3::GroundTruth &target) const =0
Copies the underlying OSI object to the given GroundTruth. More...

Detailed Description

This class represents a traffic sign that is painted on the road surface.

Member Function Documentation

virtual bool SetSpecification | ( | RoadSignalInterface * | signal,
 |  | Position | position
 | ) |  |
pure virtual

Converts the specification imported from OpenDrive to OSI.

Parameters
signal | OpenDrive specification
position | position in the world
Returns
true if succesfull, false if the road marking can not be converted
virtual void CopyToGroundTruth ( osi3::GroundTruth & target ) const
pure virtual

Copies the underlying OSI object to the given GroundTruth.

Parameters
[in] target The target OSI GroundTruth
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Section Class Reference

  • OWL
  • Interfaces
  • Section
Public Member Functions | List of all members
Section Class Referenceabstract

This class represents one section of a road. More...

Public Member Functions

virtual void | AddNext (const Interfaces::Section &section)=0
Sets the sucessor of the section. Throws an error if the section already has a sucessor.
virtual void | AddPrevious (const Interfaces::Section &section)=0
Sets the predecessor of the section. Throws an error if the section already has a predecessor.
virtual void | AddLane (const Interfaces::Lane &lane)=0
Adds a lane to this section.
virtual void | SetRoad (Interfaces::Road *road)=0
Sets the road that this section is part of.
virtual const Lanes & | GetLanes () const =0
Returns a vector of all lanes of the section.
virtual const Interfaces::Road & | GetRoad () const =0
Returns the road that this section is part of.
virtual double | GetDistance (MeasurementPoint measurementPoint) const =0
virtual bool | Covers (double distance) const =0
Returns true if the specified distance is valid on this sections, otherwise returns false.
virtual bool | CoversInterval (double startDistance, double endDistance) const =0
Returns true at least one s coordinate between startDistance and endDistance is valid on this section.
virtual double | GetSOffset () const =0
Returns the s coordinate of the section start.
virtual double | GetLength () const =0
Returns the length of the section.
virtual void | SetCenterLaneBoundary (std::vector< Id > laneBoundaryId)=0
virtual std::vector< Id > | GetCenterLaneBoundary () const =0
Returns the ids of the lane boundaries of the center lane.

Detailed Description

This class represents one section of a road.

Member Function Documentation

virtual double GetDistance ( MeasurementPoint measurementPoint ) const
pure virtual

Returns the s coordinate of the section start if measure point is road start or the s coordinate of the section end if measure point is road end

virtual void SetCenterLaneBoundary ( std::vector< Id > laneBoundaryId )
pure virtual

Sets the ids of the lane boundaries of the center lane

Parameters
laneBoundaryId ids of center lane boundaries
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: StationaryObject Class Reference

  • OWL
  • Interfaces
  • StationaryObject
List of all members
StationaryObject Class Referenceabstract

Additional Inherited Members

- Public Member Functions inherited from WorldObject
virtual void | CopyToGroundTruth (osi3::GroundTruth &target) const =0
Copies the underlying OSI object to the given GroundTruth. More...
virtual Id | GetId () const =0
Returns the OSI Id of the object.
virtual Primitive::Dimension | GetDimension () const =0
Returns the dimension of the object.
virtual Primitive::AbsPosition | GetReferencePointPosition () const =0
Returns the position of the reference point of the object in absolute coordinates (i. e. world coordinates)
virtual Primitive::AbsOrientation | GetAbsOrientation () const =0
Returns the orientation of the object in absolute coordinates (i. e. world coordinates)
virtual double | GetAbsVelocityDouble () const =0
virtual double | GetAbsAccelerationDouble () const =0
virtual void | AddLaneAssignment (const Interfaces::Lane &lane)=0
Assigns a lane to this object.
virtual const Interfaces::Lanes & | GetLaneAssignments () const =0
Returns a vector of all lanes that this object is assigned to.
virtual void | ClearLaneAssignments ()=0
Clears the list of lanes that this object is assigned to.
template<typename T >
T * | GetLink ()
template<typename T >
T * | GetLink () const
template<typename T >
bool | Is () const
Returns true is this object is of type T otherwise false.
template<typename T >
T * | As () const
Returns this object casted to T*.
template<typename T >
T * | As ()
Returns this object casted to T*.
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: TrafficSign Class Reference

  • OWL
  • Interfaces
  • TrafficSign
Public Member Functions | List of all members
TrafficSign Class Referenceabstract

This class represents a static traffic sign. More...

Public Member Functions

virtual std::string | GetId () const =0
Returns the OpenDrive ID.
virtual double | GetS () const =0
Returns the s coordinate.
virtual std::pair< double, CommonTrafficSign::Unit > | GetValueAndUnitInSI (const double osiValue, const osi3::TrafficSignValue_Unit osiUnit) const =0
Returns the value of the sign converted in SI Units.
virtual CommonTrafficSign::Entity | GetSpecification (const double relativeDistance) const =0
Returns the specification of the sign with the set relative distance.
virtual bool | IsValidForLane (OWL::Id laneId) const =0
Returns wether the sign is valid for the specified lane.
virtual Primitive::AbsPosition | GetReferencePointPosition () const =0
Returns the position of the reference point of the object in absolute coordinates (i. e. world coordinates)
virtual void | SetS (double sPos)=0
Sets the s coordinate.
virtual void | SetValidForLane (OWL::Id laneId)=0
Adds the specified lane to the list of valid lanes.
virtual bool | SetSpecification (RoadSignalInterface *signal, Position position)=0
virtual void | AddSupplementarySign (RoadSignalInterface *odSignal, Position position)=0
virtual void | CopyToGroundTruth (osi3::GroundTruth &target) const =0
Copies the underlying OSI object to the given GroundTruth. More...

Detailed Description

This class represents a static traffic sign.

Member Function Documentation

virtual bool SetSpecification | ( | RoadSignalInterface * | signal,
 |  | Position | position
 | ) |  |
pure virtual

Converts the specification imported from OpenDrive to OSI.

Parameters
signal | OpenDrive specification
position | position in the world
Returns
true if succesfull, false if the sign can not be converted
virtual void AddSupplementarySign | ( | RoadSignalInterface * | odSignal,
 |  | Position | position
 | ) |  |
pure virtual

Adds a supplementary sign to this sign and converts its specifation from OpenDrive to OSI

Parameters
odSignal | OpenDrive specification of supplementary sign
position | position of the supplementary sign
virtual void CopyToGroundTruth ( osi3::GroundTruth & target ) const
pure virtual

Copies the underlying OSI object to the given GroundTruth.

Parameters
[in] target The target OSI GroundTruth
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: WorldData Class Reference

  • OWL
  • Interfaces
  • WorldData
Public Member Functions | List of all members
WorldData Class Referenceabstract

This class contains the entire road network and all objects in the world. More...

Public Member Functions

virtual void | Clear ()=0
Deletes all objects, roads, sections and lanes.
virtual SensorView_ptr | GetSensorView (osi3::SensorViewConfiguration &conf, int agentId)=0
Creates a OSI SensorView. More...
virtual const std::unordered_map< std::string, Road * > & | GetRoads () const =0
Returns a map of all Roads with their OSI Id.
virtual Interfaces::MovingObject & | AddMovingObject (void *linkedObject)=0
virtual Interfaces::StationaryObject & | AddStationaryObject (void *linkedObject)=0
virtual Interfaces::TrafficSign & | AddTrafficSign (const std::string odId)=0
Creates a new TrafficSign and returns it.
virtual Interfaces::RoadMarking & | AddRoadMarking ()=0
Creates a new RoadMarking and returns it.
virtual void | AssignTrafficSignToLane (OWL::Id laneId, Interfaces::TrafficSign &trafficSign)=0
virtual void | AssignRoadMarkingToLane (OWL::Id laneId, Interfaces::RoadMarking &roadMarking)=0
virtual void | RemoveMovingObjectById (Id id)=0
Deletes the moving object with the specified Id.
virtual const std::unordered_map< Id, OdId > & | GetLaneIdMapping () const =0
Returns the mapping of OSI Ids to OpenDrive Ids for lanes.
virtual const std::unordered_map< std::string, Id > & | GetTrafficSignIdMapping () const =0
Returns the mapping of OpenDrive Ids to OSI Ids for trafficSigns.
virtual const Implementation::InvalidLane & | GetInvalidLane () const =0
Returns an invalid lane.
virtual const std::unordered_map< Id, Lane * > & | GetLanes () const =0
Returns a map of all lanes with their OSI Id.
virtual const std::unordered_map< Id, LaneBoundary * > & | GetLaneBoundaries () const =0
Returns a map of all lane boundaries with their OSI Id.
virtual const std::map< std::string, Junction * > & | GetJunctions () const =0
Returns a map of all junctions with their OSI Id.
virtual const std::unordered_map< Id, TrafficSign * > & | GetTrafficSigns () const =0
Returns a map of all traffic signs with their OSI Id.
virtual const std::unordered_map< Id, RoadMarking * > & | GetRoadMarkings () const =0
Returns a map of all road markings with their OSI Id.
virtual void | SetRoadGraph (const RoadGraph &&roadGraph, const RoadGraphVertexMapping &&vertexMapping)=0
virtual const RoadGraph & | GetRoadGraph () const =0
Returns the graph representation of the road network.
virtual const RoadGraphVertexMapping & | GetRoadGraphVertexMapping () const =0
Returns the mapping from roads (with direction) to the vertices of the roadGraph.
virtual void | AddLane (RoadLaneSectionInterface &odSection, const RoadLaneInterface &odLane, const std::vector< Id > laneBoundaries)=0
virtual Id | AddLaneBoundary (const RoadLaneRoadMark &odLaneRoadMark, double sectionStart, LaneMarkingSide side)=0
virtual void | SetCenterLaneBoundary (const RoadLaneSectionInterface &odSection, std::vector< Id > laneBoundaryIds)=0
virtual void | AddSection (const RoadInterface &odRoad, const RoadLaneSectionInterface &odSection)=0
virtual void | AddRoad (const RoadInterface &odRoad)=0
virtual void | AddJunction (const JunctionInterface *odJunction)=0
virtual void | AddJunctionConnection (const JunctionInterface *odJunction, const RoadInterface &odRoad)=0
Adds a connection road (path) to a junction.
virtual void | AddJunctionPriority (const JunctionInterface *odJunction, const std::string &high, const std::string &low)=0
Adds a priority entry of to connecting roads to a junction.
virtual void | AddLaneGeometryPoint (const RoadLaneInterface &odLane, const Common::Vector2d &pointLeft, const Common::Vector2d &pointCenter, const Common::Vector2d &pointRight, const double sOffset, const double curvature, const double heading)=0
virtual void | AddCenterLinePoint (const RoadLaneSectionInterface &odSection, const Common::Vector2d &pointCenter, const double sOffset, double heading)=0
virtual void | AddLaneSuccessor (RoadLaneInterface &odLane, RoadLaneInterface &successorOdLane)=0
Sets successorOdLane as successor of odLane.
virtual void | AddLanePredecessor (RoadLaneInterface &odLane, RoadLaneInterface &predecessorOdLane)=0
Sets predecessorOdLane as predecessor of odLane.
virtual void | SetRoadSuccessor (const RoadInterface &road, const RoadInterface &successorRoad)=0
Sets successorRoad as successor of road in OSI.
virtual void | SetRoadPredecessor (const RoadInterface &road, const RoadInterface &predecessorRoad)=0
Sets predecessorRoad as predecessor of road in OSI.
virtual void | SetSectionSuccessor (const RoadLaneSectionInterface &section, const RoadLaneSectionInterface &successorSection)=0
Sets successorSection as successor of section in OSI.
virtual void | SetSectionPredecessor (const RoadLaneSectionInterface &section, const RoadLaneSectionInterface &predecessorSection)=0
Sets predecessorSection as predecessor of section in OSI.
virtual void | SetRoadSuccessorJunction (const RoadInterface &road, const JunctionInterface *successorJunction)=0
Sets a junction as the successor of a road.
virtual void | SetRoadPredecessorJunction (const RoadInterface &road, const JunctionInterface *predecessorJunction)=0
Sets a junction as the predecessor of a road.
virtual void | ConnectLanes (RoadLaneSectionInterface &firstOdSection, RoadLaneSectionInterface &secondOdSection, const std::map< int, int > &lanePairs, bool isPrev)=0
Currently not implemented.
virtual void | Reset ()=0
Resets the world for new run; deletes all moving objects.
virtual OWL::Id | GetOwlId (int agentId)=0
Retrieves the OWL Id of an agent. More...
virtual int | GetAgentId (const OWL::Id owlId) const =0
Retrieves the simualtion framework Id of an agent associated to the given OWL Id. More...

Detailed Description

This class contains the entire road network and all objects in the world.

Member Function Documentation

virtual SensorView_ptr GetSensorView | ( | osi3::SensorViewConfiguration & | conf,
 |  | int | agentId
 | ) |  |
pure virtual

Creates a OSI SensorView.

Parameters
[in] | conf | SensorViewConfiguration to create SensorView from
[in] | host_id | The Id of the associated Agent
Returns
A OSI SensorView with filtered GroundTruth
virtual Interfaces::MovingObject& AddMovingObject ( void * linkedObject )
pure virtual

Creates a new MovingObject linked to an AgentAdapter and returns it

Parameters
linkedObject Object of type AgentAdapter which will be linked to new MovingObject
virtual Interfaces::StationaryObject& AddStationaryObject ( void * linkedObject )
pure virtual

Creates a new StationaryObject linked to a TrafficObjectAdapter and returns it

Parameters
linkedObject Object of type TrafficObjectAdapter which will be linked to new StationaryObject
virtual void AssignTrafficSignToLane | ( | OWL::Id | laneId,
 |  | Interfaces::TrafficSign & | trafficSign
 | ) |  |
pure virtual

Adds a traffic sign to the assigned signs of lane

Parameters
laneId | OSI Id of the lane
trafficSign | traffic sign to assign
virtual void AssignRoadMarkingToLane | ( | OWL::Id | laneId,
 |  | Interfaces::RoadMarking & | roadMarking
 | ) |  |
pure virtual

Adds a road marking to the assigned road markings of lane

Parameters
laneId | OSI Id of the lane
roadMarking | roadMarking to assign
virtual void SetRoadGraph | ( | const RoadGraph && | roadGraph,
 |  | const RoadGraphVertexMapping && | vertexMapping
 | ) |  |
pure virtual

Sets the road graph as imported from OpenDrive

Parameters
roadGraph | graph representation of road network
vertexMapping | mapping from roads (with direction) to the vertices of the roadGraph
virtual void AddLane | ( | RoadLaneSectionInterface & | odSection,
 |  | const RoadLaneInterface & | odLane,
 |  | const std::vector< Id > | laneBoundaries
 | ) |  |
pure virtual

Creates a new lane with parameters specified by the OpenDrive lane

Parameters
odSection | OpenDrive section to add lane to
odLane | OpenDrive lane to add
laneBoundaries | Osi Ids of the left lane boundaries of the new lane
virtual Id AddLaneBoundary | ( | const RoadLaneRoadMark & | odLaneRoadMark,
 |  | double | sectionStart,
 |  | LaneMarkingSide | side
 | ) |  |
pure virtual

Creates a new lane boundary specified by the OpenDrive RoadMark

Parameters
odLaneRoadMark | OpenDrive roadMark (= laneBoundary) to add
sectionStart | Start s coordinate of the section
side | Specifies which side of a double line to add (or Single if not a double line)
Returns
Osi id of the newly created laneBoundary
virtual void SetCenterLaneBoundary | ( | const RoadLaneSectionInterface & | odSection,
 |  | std::vector< Id > | laneBoundaryIds
 | ) |  |
pure virtual

Sets the ids of the center lane boundaries for a section

Parameters
odSection | OpenDrive section for which to set the center line
laneBoundaryIds | Osi ids of the center lane boundaries
virtual void AddSection | ( | const RoadInterface & | odRoad,
 |  | const RoadLaneSectionInterface & | odSection
 | ) |  |
pure virtual

Creates a new section with parameters specified by the OpenDrive section

Parameters
odRoad | OpenDrive road to add section to
odSection | OpenDrive section to add
virtual void AddRoad ( const RoadInterface & odRoad )
pure virtual

Creates a new road with parameters specified by the OpenDrive road

Parameters
odRoad OpenDrive road to add
virtual void AddJunction ( const JunctionInterface * odJunction )
pure virtual

Creates a new junction with parameters specified by the OpenDrive junction

Parameters
odJunction OpenDrive junction to add
virtual void AddLaneGeometryPoint | ( | const RoadLaneInterface & | odLane,
 |  | const Common::Vector2d & | pointLeft,
 |  | const Common::Vector2d & | pointCenter,
 |  | const Common::Vector2d & | pointRight,
 |  | const double | sOffset,
 |  | const double | curvature,
 |  | const double | heading
 | ) |  |
pure virtual

Adds a new lane geometry joint to the end of the current list of joints of the specified lane and a new geometry element and the boundary points of all affected right lane boundaries

Parameters
pointLeft | left point of the new joint
pointCenter | reference point of the new joint
pointRight | right point of the new joint
sOffset | s offset of the new joint
curvature | curvature of the lane at sOffset
heading | heading of the lane at sOffset

Here is the caller graph for this function:

virtual void AddCenterLinePoint | ( | const RoadLaneSectionInterface & | odSection,
 |  | const Common::Vector2d & | pointCenter,
 |  | const double | sOffset,
 |  | double | heading
 | ) |  |
pure virtual

Adds a new boundary point to the center line of the specified section

Parameters
odSection | section to add boundary point to
pointCenter | point to add
sOffset | s offset of the new point
heading | heading of the road at sOffset

Here is the caller graph for this function:

virtual OWL::Id GetOwlId ( int agentId )
pure virtual

Retrieves the OWL Id of an agent.

Parameters
agentId[in] Agent id (as used in AgentInterface)
Returns
OWL Id of the underlying OSI object
virtual int GetAgentId ( const OWL::Id owlId ) const
pure virtual

Retrieves the simualtion framework Id of an agent associated to the given OWL Id.

Parameters
owlId[in] OWL Id
Returns
Agent Id of the associated agent
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: WorldObject Class Reference

  • OWL
  • Interfaces
  • WorldObject
Public Member Functions | List of all members
WorldObject Class Referenceabstract

Public Member Functions

virtual void | CopyToGroundTruth (osi3::GroundTruth &target) const =0
Copies the underlying OSI object to the given GroundTruth. More...
virtual Id | GetId () const =0
Returns the OSI Id of the object.
virtual Primitive::Dimension | GetDimension () const =0
Returns the dimension of the object.
virtual Primitive::AbsPosition | GetReferencePointPosition () const =0
Returns the position of the reference point of the object in absolute coordinates (i. e. world coordinates)
virtual Primitive::AbsOrientation | GetAbsOrientation () const =0
Returns the orientation of the object in absolute coordinates (i. e. world coordinates)
virtual double | GetAbsVelocityDouble () const =0
virtual double | GetAbsAccelerationDouble () const =0
virtual const ObjectPosition & | GetLocatedPosition () const =0
Returns the road coordinates of the object.
virtual void | AddLaneAssignment (const Interfaces::Lane &lane)=0
Assigns a lane to this object.
virtual const Interfaces::Lanes & | GetLaneAssignments () const =0
Returns a vector of all lanes that this object is assigned to.
virtual void | ClearLaneAssignments ()=0
Clears the list of lanes that this object is assigned to.
virtual void | SetReferencePointPosition (const Primitive::AbsPosition &newPosition)=0
Sets the position of the reference point of the object in absolute coordinates (i. e. world coordinates)
virtual void | SetDimension (const Primitive::Dimension &newDimension)=0
Sets the dimension of the object.
virtual void | SetAbsOrientation (const Primitive::AbsOrientation &newOrientation)=0
Sets the orientation of the object in absolute coordinates (i. e. world coordinates)
virtual void | SetLocatedPosition (const ObjectPosition &position)=0
Sets the road coordinates of the object.
template<typename T >
T * | GetLink ()
template<typename T >
T * | GetLink () const
template<typename T >
bool | Is () const
Returns true is this object is of type T otherwise false.
template<typename T >
T * | As () const
Returns this object casted to T*.
template<typename T >
T * | As ()
Returns this object casted to T*.

Detailed Description

Common base for all objects in the world that can be on the road and have a position and a dimension WorldObjects are either MovingObjects or StationaryObjects

Member Function Documentation

virtual void CopyToGroundTruth ( osi3::GroundTruth & target ) const
pure virtual

Copies the underlying OSI object to the given GroundTruth.

Parameters
[in] target The target OSI GroundTruth

Here is the caller graph for this function:

virtual double GetAbsVelocityDouble ( ) const
pure virtual

Returns the absolute value of the velocity if the object is moving in road direction or the inverse if the object is moving against the road direction

virtual double GetAbsAccelerationDouble ( ) const
pure virtual

Returns the absolute value of the acceleration if the object is moving in road direction or the inverse if the object is moving against the road direction

T* GetLink ( )
inline

Returns the WorldObjectInterface that this WorldObject is linked to and casts it to T* T can be -WorldObjectsAdapter or -AgentAdapter, if this is a MovingObject or -TrafficAdapter, if this is a StationaryObject

511 {
512 auto link = dynamic_cast<T*>(static_cast<WorldObjectInterface*>(linkedObject));
513 assert(link != nullptr);
514 return link;
515 }
T* GetLink ( ) const
inline

Returns the WorldObjectInterface that this WorldObject is linked to and casts it to T* T can be -WorldObjectsAdapter or -AgentAdapter, if this is a MovingObject or -TrafficAdapter, if this is a StationaryObject

524 {
525 auto link = dynamic_cast<T*>(static_cast<WorldObjectInterface*>(linkedObject));
526 assert(link != nullptr);
527 return link;
528 }
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: AbsAcceleration Struct Reference

  • OWL
  • Primitive
  • AbsAcceleration
List of all members
AbsAcceleration Struct Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: AbsCoordinate Struct Reference

  • OWL
  • Primitive
  • AbsCoordinate
List of all members
AbsCoordinate Struct Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: AbsOrientation Struct Reference

  • OWL
  • Primitive
  • AbsOrientation
List of all members
AbsOrientation Struct Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: AbsOrientationRate Struct Reference

  • OWL
  • Primitive
  • AbsOrientationRate
List of all members
AbsOrientationRate Struct Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: AbsPosition Struct Reference

  • OWL
  • Primitive
  • AbsPosition
List of all members
AbsPosition Struct Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: AbsVelocity Struct Reference

  • OWL
  • Primitive
  • AbsVelocity
List of all members
AbsVelocity Struct Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Dimension Struct Reference

  • OWL
  • Primitive
  • Dimension
List of all members
Dimension Struct Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: LaneAcceleration Struct Reference

  • OWL
  • Primitive
  • LaneAcceleration
List of all members
LaneAcceleration Struct Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: LaneGeometryElement Struct Reference

  • OWL
  • Primitive
  • LaneGeometryElement
Classes | List of all members
LaneGeometryElement Struct Reference

Classes

struct Joints
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: LaneGeometryElement::Joints Struct Reference

  • OWL
  • Primitive
  • LaneGeometryElement
  • Joints
List of all members
LaneGeometryElement::Joints Struct Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: LaneGeometryJoint Struct Reference

  • OWL
  • Primitive
  • LaneGeometryJoint
Classes | Public Attributes | List of all members
LaneGeometryJoint Struct Reference

Classes

struct Points
Tripple describing the sampled points of the lane. More...

Public Attributes

double | curvature
Curvature of the reference line at this joint.
double | sOffset
Offset with respect to the start of the road.
double | sHdg
Heading of the s projection axis.
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: LaneGeometryJoint::Points Struct Reference

  • OWL
  • Primitive
  • LaneGeometryJoint
  • Points
List of all members
LaneGeometryJoint::Points Struct Reference

Tripple describing the sampled points of the lane. More...

Detailed Description

Tripple describing the sampled points of the lane.

Note
Left/Right refers to the direction of the road
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: LaneOrientation Struct Reference

  • OWL
  • Primitive
  • LaneOrientation
List of all members
LaneOrientation Struct Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: LaneOrientationRate Struct Reference

  • OWL
  • Primitive
  • LaneOrientationRate
List of all members
LaneOrientationRate Struct Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: LanePosition Struct Reference

  • OWL
  • Primitive
  • LanePosition
List of all members
LanePosition Struct Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: LaneVelocity Struct Reference

  • OWL
  • Primitive
  • LaneVelocity
List of all members
LaneVelocity Struct Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: RoadAcceleration Struct Reference

  • OWL
  • Primitive
  • RoadAcceleration
List of all members
RoadAcceleration Struct Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: RoadCoordinate Struct Reference

  • OWL
  • Primitive
  • RoadCoordinate
List of all members
RoadCoordinate Struct Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: RoadOrientationRate Struct Reference

  • OWL
  • Primitive
  • RoadOrientationRate
List of all members
RoadOrientationRate Struct Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: RoadVelocity Struct Reference

  • OWL
  • Primitive
  • RoadVelocity
List of all members
RoadVelocity Struct Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: IntersectionInfo Struct Reference

  • OWL
  • IntersectionInfo
Public Attributes | List of all members
IntersectionInfo Struct Reference

Public Attributes

std::map< std::pair< Id, Id >, std::pair< double, double > > sOffsets

Member Data Documentation

std::map<std::pair<Id, Id>, std::pair<double, double> > sOffsets

For each pair of lanes on the own road (first id) and the intersecting road (second id) this contains the start s and end s of the intersection on the own lane

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Lazy< T > Struct Template Reference

  • OWL
  • Lazy
List of all members
Lazy< T > Struct Template Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: NonExistentOsiRef Class Reference

  • OWL
  • NonExistentOsiRef
List of all members
NonExistentOsiRef Class Reference
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: WorldData Class Reference

  • OWL
  • WorldData
Public Member Functions | Protected Member Functions | List of all members
WorldData Class Reference

Public Member Functions

GroundTruth_ptr | GetFilteredGroundTruth (const osi3::SensorViewConfiguration &conf, const Interfaces::MovingObject &reference)
Retrieves a filtered OSI GroundTruth. More...
std::vector< const Interfaces::TrafficSign * > | GetTrafficSignsInSector (const Primitive::AbsPosition &origin, double radius, double absYawMin, double absYawMax)
Retrieves the TrafficSigns located in the given sector (geometric shape) More...
std::vector< const Interfaces::RoadMarking * > | GetRoadMarkingsInSector (const Primitive::AbsPosition &origin, double radius, double absYawMin, double absYawMax)
Retrieves the RoadMarkings located in the given sector (geometric shape) More...
std::vector< const Interfaces::StationaryObject * > | GetStationaryObjectsInSector (const Primitive::AbsPosition &origin, double radius, double absYawMin, double absYawMax)
Retrieves the StationaryObjects located in the given sector (geometric shape) More...
std::vector< const Interfaces::MovingObject * > | GetMovingObjectsInSector (const Primitive::AbsPosition &origin, double radius, double absYawMin, double absYawMax)
Retrieves the MovingObjects located in the given sector (geometric shape) More...
double | NormalizeAngle (double angle)
Normalizes angles to +/- PI. More...
template<typename T >
std::vector< const T * > | ApplySectorFilter (const std::vector< T * > &objects, const Primitive::AbsPosition &origin, double radius, double leftBoundaryAngle, double rightBoundaryAngle)
Applies a sector-shaped filter on a list of objects. More...

Protected Member Functions

void Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message)

Member Function Documentation

WorldData::GroundTruth_ptr GetFilteredGroundTruth | ( | const osi3::SensorViewConfiguration & | conf,
 |  | const Interfaces::MovingObject & | reference
 | ) |  |

Retrieves a filtered OSI GroundTruth.

Parameters
[in] | conf | The OSI SensorViewConfiguration to be used for filtering
[in] | reference | Host of the sensor
Returns
A OSI GroundTruth filtered by the given SensorViewConfiguration
149 {
150 bool referenceObjectAdded = false;
151
152 #ifdef USE_PROTOBUF_ARENA
153 GroundTruth_ptr filteredGroundTruth = google::protobuf::Arena::CreateMessage<osi3::GroundTruth>(&arena);
154 #else
155 GroundTruth_ptr filteredGroundTruth = std::make_unique<osi3::GroundTruth>();
156 #endif
157
158 Primitive::AbsPosition relativeSensorPos
159 { conf.mounting_position().position().x(),
160 conf.mounting_position().position().y(),
161 conf.mounting_position().position().z() };
162
163
164 const auto& orientation = reference.GetAbsOrientation();
165 relativeSensorPos.RotateYaw(orientation.yaw);
166 auto absoluteSensorPos = reference.GetReferencePointPosition() + relativeSensorPos;
167
168 const double yawMax = orientation.yaw + conf.mounting_position().orientation().yaw() + conf.field_of_view_horizontal() / 2.0;
169 const double yawMin = orientation.yaw + conf.mounting_position().orientation().yaw() - conf.field_of_view_horizontal() / 2.0;
170
171 const double range = conf.range();
172
173 const auto& filteredMovingObjects = GetMovingObjectsInSector(absoluteSensorPos, range, yawMin, yawMax);
174 const auto& filteredStationaryObjects = GetStationaryObjectsInSector(absoluteSensorPos, range, yawMin, yawMax);
175 const auto& filteredTrafficSigns = GetTrafficSignsInSector(absoluteSensorPos, range, yawMin, yawMax);
176 const auto& filteredRoadMarkings = GetRoadMarkingsInSector(absoluteSensorPos, range, yawMin, yawMax);
177 const auto& filteredLanes = GetLanes();
178 const auto& filteredLaneBoundaries = GetLaneBoundaries();
179
180 for (const auto& object : filteredMovingObjects)
181 {
182 object->CopyToGroundTruth(*filteredGroundTruth);
183
184 if (object->GetId() == reference.GetId())
185 {
186 referenceObjectAdded = true;
187 }
188 }
189
190 if (!referenceObjectAdded)
191 {
192 reference.CopyToGroundTruth(*filteredGroundTruth);
193 }
194
195 for (const auto& object : filteredStationaryObjects)
196 {
197 object->CopyToGroundTruth(*filteredGroundTruth);
198 }
199
200 for (const auto& trafficSign : filteredTrafficSigns)
201 {
202 trafficSign->CopyToGroundTruth(*filteredGroundTruth);
203 }
204
205 for (const auto& roadMarking : filteredRoadMarkings)
206 {
207 roadMarking->CopyToGroundTruth(*filteredGroundTruth);
208 }
209
210 for (const auto& lane : filteredLanes)
211 {
212 lane.second->CopyToGroundTruth(*filteredGroundTruth);
213 }
214
215 for (const auto& laneboundaries : filteredLaneBoundaries)
216 {
217 laneboundaries.second->CopyToGroundTruth(*filteredGroundTruth);
218 }
219
220 return filteredGroundTruth;
221 }
OWL::WorldData::GetTrafficSignsInSector
std::vector< const Interfaces::TrafficSign * > GetTrafficSignsInSector(const Primitive::AbsPosition &origin, double radius, double absYawMin, double absYawMax)
Retrieves the TrafficSigns located in the given sector (geometric shape)
Definition: WorldData.cpp:253
OWL::WorldData::GetStationaryObjectsInSector
std::vector< const Interfaces::StationaryObject * > GetStationaryObjectsInSector(const Primitive::AbsPosition &origin, double radius, double absYawMin, double absYawMax)
Retrieves the StationaryObjects located in the given sector (geometric shape)
Definition: WorldData.cpp:223
OWL::WorldData::GetRoadMarkingsInSector
std::vector< const Interfaces::RoadMarking * > GetRoadMarkingsInSector(const Primitive::AbsPosition &origin, double radius, double absYawMin, double absYawMax)
Retrieves the RoadMarkings located in the given sector (geometric shape)
Definition: WorldData.cpp:268
OWL::WorldData::GetMovingObjectsInSector
std::vector< const Interfaces::MovingObject * > GetMovingObjectsInSector(const Primitive::AbsPosition &origin, double radius, double absYawMin, double absYawMax)
Retrieves the MovingObjects located in the given sector (geometric shape)
Definition: WorldData.cpp:238

Here is the call graph for this function:

std::vector< const Interfaces::TrafficSign * > GetTrafficSignsInSector | ( | const Primitive::AbsPosition & | origin,
 |  | double | radius,
 |  | double | absYawMin,
 |  | double | absYawMax
 | ) |  |

Retrieves the TrafficSigns located in the given sector (geometric shape)

Parameters
[in] | origin | Origin of the sector shape
[in] | radius | Radius of the sector shape
[in] | absYawMin | Right boundary angle of the sector shape
[in] | absYawMax | Left boundary angle of the sector shape
Returns
Vector of TrafficSing pointers located in the given sector
257 {
258 std::vector<Interfaces::TrafficSign*> objects;
259
260 for (const auto& mapItem : trafficSigns)
261 {
262 objects.push_back(mapItem.second);
263 }
264
265 return ApplySectorFilter(objects, origin, radius, absYawMax, absYawMin);
266 }
OWL::WorldData::ApplySectorFilter
std::vector< const T * > ApplySectorFilter(const std::vector< T * > &objects, const Primitive::AbsPosition &origin, double radius, double leftBoundaryAngle, double rightBoundaryAngle)
Applies a sector-shaped filter on a list of objects.
Definition: WorldData.h:490
std::vector< const Interfaces::RoadMarking * > GetRoadMarkingsInSector | ( | const Primitive::AbsPosition & | origin,
 |  | double | radius,
 |  | double | absYawMin,
 |  | double | absYawMax
 | ) |  |

Retrieves the RoadMarkings located in the given sector (geometric shape)

Parameters
[in] | origin | Origin of the sector shape
[in] | radius | Radius of the sector shape
[in] | absYawMin | Right boundary angle of the sector shape
[in] | absYawMax | Left boundary angle of the sector shape
Returns
Vector of RoadMarking pointers located in the given sector
269 {
270 std::vector<Interfaces::RoadMarking*> objects;
271
272 for (const auto& mapItem : roadMarkings)
273 {
274 objects.push_back(mapItem.second);
275 }
276
277 return ApplySectorFilter(objects, origin, radius, absYawMax, absYawMin);
278 }
OWL::WorldData::ApplySectorFilter
std::vector< const T * > ApplySectorFilter(const std::vector< T * > &objects, const Primitive::AbsPosition &origin, double radius, double leftBoundaryAngle, double rightBoundaryAngle)
Applies a sector-shaped filter on a list of objects.
Definition: WorldData.h:490
std::vector< const Interfaces::StationaryObject * > GetStationaryObjectsInSector | ( | const Primitive::AbsPosition & | origin,
 |  | double | radius,
 |  | double | absYawMin,
 |  | double | absYawMax
 | ) |  |

Retrieves the StationaryObjects located in the given sector (geometric shape)

Parameters
[in] | origin | Origin of the sector shape
[in] | radius | Radius of the sector shape
[in] | absYawMin | Right boundary angle of the sector shape
[in] | absYawMax | Left boundary angle of the sector shape
Returns
Vector of StationaryObject pointers located in the given sector
227 {
228 std::vector<Interfaces::StationaryObject*> objects;
229
230 for (const auto& mapItem: stationaryObjects)
231 {
232 objects.push_back(mapItem.second);
233 }
234
235 return ApplySectorFilter(objects, origin, radius, absYawMax, absYawMin);
236 }
OWL::WorldData::ApplySectorFilter
std::vector< const T * > ApplySectorFilter(const std::vector< T * > &objects, const Primitive::AbsPosition &origin, double radius, double leftBoundaryAngle, double rightBoundaryAngle)
Applies a sector-shaped filter on a list of objects.
Definition: WorldData.h:490
std::vector< const Interfaces::MovingObject * > GetMovingObjectsInSector | ( | const Primitive::AbsPosition & | origin,
 |  | double | radius,
 |  | double | absYawMin,
 |  | double | absYawMax
 | ) |  |

Retrieves the MovingObjects located in the given sector (geometric shape)

Parameters
[in] | origin | Origin of the sector shape
[in] | radius | Radius of the sector shape
[in] | absYawMin | Right boundary angle of the sector shape
[in] | absYawMax | Left boundary angle of the sector shape
Returns
Vector of MovingObject pointers located in the given sector
242 {
243 std::vector<Interfaces::MovingObject*> objects;
244
245 for (const auto& mapItem: movingObjects)
246 {
247 objects.push_back(mapItem.second);
248 }
249
250 return ApplySectorFilter(objects, origin, radius, absYawMax, absYawMin);
251 }
OWL::WorldData::ApplySectorFilter
std::vector< const T * > ApplySectorFilter(const std::vector< T * > &objects, const Primitive::AbsPosition &origin, double radius, double leftBoundaryAngle, double rightBoundaryAngle)
Applies a sector-shaped filter on a list of objects.
Definition: WorldData.h:490
double NormalizeAngle ( double angle )

Normalizes angles to +/- PI.

Parameters
[in] angle Angle to normalize [rad]
Returns
Normalized angle in range [-PI, PI] [rad]
282 {
283 angle = std::fmod(angle, 2.0 * M_PI);
284
285 if (angle > M_PI)
286 {
287 angle -= 2.0 * M_PI;
288 }
289 else if (angle < - M_PI)
290 {
291 angle += 2.0 * M_PI;
292 }
293
294 return angle;
295 }

Here is the caller graph for this function:

std::vector<const T*> ApplySectorFilter | ( | const std::vector< T * > & | objects,
 |  | const Primitive::AbsPosition & | origin,
 |  | double | radius,
 |  | double | leftBoundaryAngle,
 |  | double | rightBoundaryAngle
 | ) |  |
inline

Applies a sector-shaped filter on a list of objects.

Parameters
[in] | objects | List of objects to apply filter to
[in] | origin | Origin of sector-shape
[in] | radius | Radius of the sector-shape. Negative value results in empty result
[in] | leftBoundaryAngle | Angle of left boundary of sector-shape (view from origin) [-PI, PI] [rad]
[in] | rightBoundaryAngle | Angle of right boundary of sector-shape (view from origin) [-PI, PI] [rad]
Returns
Vector of objects inside the sector-shape
495 {
496 std::vector<const T*> filteredObjects;
497 constexpr double EPS = 1e-9;
498 bool anglesDiffer = std::abs(leftBoundaryAngle - rightBoundaryAngle) > EPS;
499
500 if (!anglesDiffer || radius <= 0.0)
501 {
502 return filteredObjects;
503 }
504
505 leftBoundaryAngle = NormalizeAngle(leftBoundaryAngle);
506 rightBoundaryAngle = NormalizeAngle(rightBoundaryAngle);
507
508 bool wrappedAngle = leftBoundaryAngle < rightBoundaryAngle;
509 anglesDiffer = std::abs(leftBoundaryAngle - rightBoundaryAngle) > EPS;
510
511 for (const auto& object : objects)
512 {
513 const auto& absPosition = object->GetReferencePointPosition();
514 const auto relativePosition = absPosition - origin;
515 const auto distance = relativePosition.distance();
516
517 if (distance > radius)
518 {
519 continue;
520 }
521
522 if (anglesDiffer && distance > 0.0)
523 {
524 double direction = std::atan2(relativePosition.y, relativePosition.x);
525
526 if (wrappedAngle)
527 {
528 if (direction < rightBoundaryAngle && direction > leftBoundaryAngle)
529 {
530 continue;
531 }
532 }
533 else if (direction < rightBoundaryAngle || direction > leftBoundaryAngle)
534 {
535 continue;
536 }
537 }
538
539 filteredObjects.push_back(object);
540 }
541
542 return filteredObjects;
543 }
OWL::WorldData::NormalizeAngle
double NormalizeAngle(double angle)
Normalizes angles to +/- PI.
Definition: WorldData.cpp:281

Here is the call graph for this function:

void Log | ( | CbkLogLevel | logLevel,
 |  | const char * | file,
 |  | int | line,
 |  | const std::string & | message
 | ) |  |
inlineprotected

Provides callback to LOG() macro

Parameters
[in] | logLevel | Importance of log
[in] | file | Name of file where log is called
[in] | line | Line within file where log is called
[in] | message | Message to log
560 {
561 if (callbacks)
562 {
563 callbacks->Log(logLevel,
564 file,
565 line,
566 message);
567 }
568 }
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Junction Struct Reference

  • RelativeWorldView
  • Junction
List of all members
Junction Struct Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Lane Struct Reference

  • RelativeWorldView
  • Lane
List of all members
Lane Struct Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: LanesInterval Struct Reference

  • RelativeWorldView
  • LanesInterval
List of all members
LanesInterval Struct Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Callbacks Class Reference

  • SimulationCommon
  • Callbacks
Public Member Functions | List of all members
Callbacks Class Reference

callback implementation within framework More...

Public Member Functions

virtual void Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message) const

Detailed Description

callback implementation within framework

Member Function Documentation

void Log | ( | CbkLogLevel | logLevel,
 |  | const char * | file,
 |  | int | line,
 |  | const std::string & | message
 | ) |  | const
 virtual

Logs a provided message yielded from the provided line in the provided file

Parameters
[in] | logLevel | Importance of log
[in] | file | Name of file which triggered the logging
[in] | line | Line within the file that triggered the logging
[in] | message | Message to log
21 {
22 if( static_cast<int>(LogLevel::Count) <= static_cast<int>(logLevel) ||
23 0 > static_cast<int>(logLevel))
24 {
25 LOG_INTERN(LogLevel::Warning) << "provided invalid logging level to logging callback";
26 }
27
28 LOG_EXTERN(static_cast<LogLevel>(logLevel), file, line) << "CALLBACK: " << message;
29 }
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: ModelParameters Class Reference

  • SimulationCommon
  • ModelParameters
List of all members
ModelParameters Class Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: ObservationParameters Class Reference

  • SimulationCommon
  • ObservationParameters
List of all members
ObservationParameters Class Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Parameters Class Reference

  • SimulationCommon
  • Parameters
List of all members
Parameters Class Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: SpawnPointParameters Class Reference

  • SimulationCommon
  • SpawnPointParameters
List of all members
SpawnPointParameters Class Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: WorldParameters Class Reference

  • SimulationCommon
  • WorldParameters
List of all members
WorldParameters Class Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: MasterConfig Struct Reference

  • SimulationMaster
  • Configuration
  • MasterConfig
List of all members
MasterConfig Struct Reference

Used as value storage of parsed configuration parameters. More...

Detailed Description

Used as value storage of parsed configuration parameters.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: MasterConfigImporter Class Reference

  • SimulationMaster
  • Configuration
  • MasterConfigImporter
Static Public Member Functions | List of all members
MasterConfigImporter Class Reference

Static Public Member Functions

static MasterConfig Import (const QString &filename)
Imports the master configuration details from the master configuration xml. More...

Member Function Documentation

MasterConfig Import ( const QString & filename )
static

Imports the master configuration details from the master configuration xml.

Parameters
[in] filename The name of the master configuration xml file to parse
Returns
A MasterConfig object containing the details of the master configuration as detailed in the master configuration xml
72 {
73 std::locale::global(std::locale("C"));
74
75 // file handling
76 QString absoluteFilePath = GetAbsoluteFilePath(filename);
77 QFile xmlFile(absoluteFilePath);
78 QDomElement document = ReadDocument(xmlFile, absoluteFilePath.toStdString());
79
80 return MasterConfig
81 {
82 GetValue<int>(document, "logLevel"),
83 GetValue<std::string>(document, "logFileMaster"),
84 GetValue<std::string>(document, "slave"),
85 GetValue<std::string>(document, "libraries"),
86 ParseSlaveConfigs(document)
87 };
88 }
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: SlaveConfig Class Reference

  • SimulationMaster
  • Configuration
  • SlaveConfig
List of all members
SlaveConfig Class Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: SimulationSlave Namespace Reference

  • Namespace Members
Classes
SimulationSlave Namespace Reference

Classes

class | Agent
class | AgentFactory
class | AgentType
class | Channel
class | ChannelBuffer
class | Component
class | ComponentType
class | DataStore
class | DataStoreBinding
class | DataStoreLibrary
class | EventDetector
class | EventDetectorBinding
class | EventDetectorLibrary
class | EventDetectorNetwork
class | EventNetwork
Implements the functionality of the interface. More...
class | FrameworkModuleContainer
class | Manipulator
class | ManipulatorBinding
class | ManipulatorLibrary
class | ManipulatorNetwork
class | ModelBinding
class | ModelLibrary
class | ObservationBinding
class | ObservationLibrary
class | ObservationModule
class | ObservationNetwork
class | RunInstantiator
class | RunResult
stores run results for output data More...
class | SpawnItemParameter
class | SpawnPoint
class | SpawnPointBinding
class | SpawnPointLibrary
class | SpawnPointNetwork
class | Stochastics
class | StochasticsBinding
class | StochasticsLibrary
class | World
class | WorldBinding
class | WorldLibrary

Detailed Description

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Agent Class Reference

  • SimulationSlave
  • Agent
List of all members
Agent Class Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: AgentFactory Class Reference

  • SimulationSlave
  • AgentFactory
List of all members
AgentFactory Class Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: AgentType Class Reference

  • SimulationSlave
  • AgentType
List of all members
AgentType Class Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Channel Class Reference

  • SimulationSlave
  • Channel
List of all members
Channel Class Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: ChannelBuffer Class Reference

  • SimulationSlave
  • ChannelBuffer
List of all members
ChannelBuffer Class Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Component Class Reference

  • SimulationSlave
  • Component
Public Member Functions | List of all members
Component Class Reference

Public Member Functions

virtual | ~Component () override
Destructor, deletes all saved output channel buffers.
void | SetImplementation (ModelInterface *implementation) override
Agent * | GetAgent () const override
bool | AddInputLink (Channel *input, int linkId) override
bool | AddOutputLink (Channel *output, int linkId) override
virtual void | SetObservations (const std::map< int, ObservationModule * > &observations) override
std::map< int, Channel * > & | GetInputLinks () override
std::map< int, Channel * > & | GetOutputLinks () override
const std::map< int, ObservationInterface * > & | GetObservations () const override
bool | TriggerCycle (int time) override
bool | AcquireOutputData (int linkId, int time) override
bool | ReleaseOutputData (int linkId) override
bool | UpdateInputData (int linkId, int time) override
ChannelBuffer * | CreateOutputBuffer (int linkId) override
bool | SetInputBuffer (int linkId, ChannelBuffer *buffer) override
bool | GetInit () const override
int | GetPriority () const override
int | GetOffsetTime () const override
int | GetResponseTime () const override
int | GetCycleTime () const override
bool | SetModelLibrary (ModelLibrary *modelLibrary) override
bool | ReleaseFromLibrary () override
ModelInterface * | GetImplementation () const override
std::string | GetName () const override

Member Function Documentation

void SetImplementation ( ModelInterface * implementation )
override

Sets the model interface implementation.

Parameters
[in] implementation Model interface implementation to set
41 {
42 this->implementation = implementation;
43 }
Agent * GetAgent ( ) const
override

Returns the stored agent.

Returns
Stored agent
46 {
47 return agent;
48 }
bool AddInputLink | ( | Channel * | input,
 |  | int | linkId
 | ) |  |
override

Adds the provided channel with the provided ID to the stored list of input channels.

Parameters
[in] | input | Input channel to add
[in] | linkId | ID of the channel to add
Returns
Flag if adding the channel was successful
56 {
57 if (!inputs.insert({linkId, input}).second)
58 {
59 LOG_INTERN(LogLevel::Warning) << "input must be unique";
60 return false;
61 }
62
63 return true;
64 }
bool AddOutputLink | ( | Channel * | output,
 |  | int | linkId
 | ) |  |
override

Adds the provided channel with the provided ID to the stored list of output channels.

Parameters
[in] | output | Output channel to add
[in] | linkId | ID of the channel to add
Returns
Flag if adding the channel was successful
67 {
68 if (!outputs.insert({linkId, output}).second)
69 {
70 LOG_INTERN(LogLevel::Warning) << "output must be unique";
71 return false;
72 }
73
74 return true;
75 }
void SetObservations ( const std::map< int, ObservationModule * > & observations )
overridevirtual

Sets the observation modules map of the component

Parameters
[in] observations Observation modules (as interface)to add
78 {
79 for (const auto& item : observations)
80 {
81 this->observations.insert({item.first, item.second->GetImplementation()});
82 }
83 }
std::map< int, Channel * > & GetInputLinks ( )
override

Returns the map of IDs to stored input channels.

Returns
Map of IDs to stored input channels
86 {
87 return inputs;
88 }
std::map< int, Channel * > & GetOutputLinks ( )
override

Returns the map of IDs to stored output channels.

Returns
Map of IDs to stored output channels
91 {
92 return outputs;
93 }
const std::map< int, ObservationInterface * > & GetObservations ( ) const
override

Returns the map of IDs to stored observation modules.

Returns
Map of IDs to stored observation modules
96 {
97 return observations;
98 }
bool TriggerCycle ( int time )
override

Calls the Trigger method on the stored model library with the stored model interface implementation and the time parameter provided.

Parameters
[in] time Observation module (as interface)to add
Returns
False if an error occurred, true otherwise
101 {
102 if (!implementation)
103 {
104 LOG_INTERN(LogLevel::Warning) << "no implementation available";
105 return false;
106 }
107
108 LOG_INTERN(LogLevel::DebugCore) << "enter trigger";
109
110 try
111 {
112 if (!modelLibrary->Trigger(implementation, time))
113 {
114 LOG_INTERN(LogLevel::Error) << "an error occurred during trigger (component " << GetName() << ")";
115 return false;
116 }
117 }
118 catch (std::runtime_error const& ex)
119 {
120 LOG_INTERN(LogLevel::Error) << "an error occurred during trigger (component " << GetName() << "): " << ex.what();
121 return false;
122 }
123 catch (...)
124 {
125 LOG_INTERN(LogLevel::Error) << "an error occurred during trigger (component " << GetName() << ")";
126 return false;
127 }
128
129 LOG_INTERN(LogLevel::DebugCore) << "exit trigger";
130
131 return true;
132 }
SimulationSlave::Component::GetName
std::string GetName() const override
Definition: component.cpp:50
SimulationSlave::ModelLibrary::Trigger
bool Trigger(ModelInterface *implementation, int time)
Definition: modelLibrary.h:182

Here is the call graph for this function:

bool AcquireOutputData | ( | int | linkId,
 |  | int | time
 | ) |  |
override

Gets the data on the channel with the provided ID by updating the output via the model library using the stored model instance implementation and the provided time stamp, then setting this data on the channel with the provided ID.

Parameters
[in] | linkId | ID of the output channel
[in] | time | Time stamp for the output
Returns
False if an error occurred, true otherwise
135 {
136 if (!implementation)
137 {
138 LOG_INTERN(LogLevel::Warning) << "no implementation available";
139 return false;
140 }
141
142 ChannelBuffer* buffer;
143 try
144 {
145 buffer = outputChannelBuffers.at(linkId);
146 }
147 catch (const std::out_of_range&)
148 {
149 LOG_INTERN(LogLevel::Error) << "no channel buffer given for output link: " << linkId;
150 return false;
151 }
152
153 std::shared_ptr<SignalInterface const> data;
154
155 LOG_INTERN(LogLevel::DebugCore) << "enter update output";
156
157 try
158 {
159 if (!modelLibrary->UpdateOutput(implementation, linkId, data, time))
160 {
161 LOG_INTERN(LogLevel::Error) << "an error occurred during update of output data for link " << linkId << " (component " <<
162 GetName() << ")";
163 return false;
164 }
165 }
166 catch (std::runtime_error const& ex)
167 {
168 LOG_INTERN(LogLevel::Error) << "an error occurred during update of output data for link " << linkId << " (component " <<
169 GetName() << "): " << ex.what();
170 return false;
171 }
172 catch (...)
173 {
174 LOG_INTERN(LogLevel::Error) << "an error occurred during update of output data for link " << linkId << " (component " <<
175 GetName() << ")";
176 return false;
177 }
178
179 LOG_INTERN(LogLevel::DebugCore) << "exit update output";
180
181 buffer->SetData(data);
182
183 return true;
184 }
SimulationSlave::Component::GetName
std::string GetName() const override
Definition: component.cpp:50
SimulationSlave::ModelLibrary::UpdateOutput
bool UpdateOutput(ModelInterface *implementation, int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
Definition: modelLibrary.h:166

Here is the call graph for this function:

bool ReleaseOutputData ( int linkId )
override

Releases the data on the channel with the provided ID.

Parameters
[in] linkId ID of the output channel
Returns
False if an error occurred, true otherwise
187 {
188 if (!implementation)
189 {
190 LOG_INTERN(LogLevel::Warning) << "no implementation available";
191 return false;
192 }
193
194 ChannelBuffer* buffer;
195 try
196 {
197 buffer = outputChannelBuffers.at(linkId);
198 }
199 catch (const std::out_of_range&)
200 {
201 LOG_INTERN(LogLevel::Error) << "no channel buffer given for output link: " << linkId;
202 return false;
203 }
204
205 // release resource
206 buffer->ReleaseData();
207
208 return true;
209 }
bool UpdateInputData | ( | int | linkId,
 |  | int | time
 | ) |  |
override

Updates the input data on the input channelwith the provided ID by updating the input via the model library using the stored model instance implementation and the provided time stamp.

Parameters
[in] | linkId | ID of the input channel
[in] | time | Time stamp for the output
Returns
False if an error occurred, true otherwise
212 {
213 if (!implementation)
214 {
215 LOG_INTERN(LogLevel::Warning) << "no implementation available";
216 return false;
217 }
218
219 ChannelBuffer* buffer;
220 try
221 {
222 buffer = inputChannelBuffers.at(linkId);
223 }
224 catch (const std::out_of_range&)
225 {
226 LOG_INTERN(LogLevel::Error) << "no channel buffer given for input link: " << linkId;
227 return false;
228 }
229
230 LOG_INTERN(LogLevel::DebugCore) << "enter update input";
231
232 try
233 {
234 if (!modelLibrary->UpdateInput(implementation, linkId, buffer->GetDataPtr(), time))
235 {
236 LOG_INTERN(LogLevel::Error) << "an error occurred during update of input data for link " << linkId << " (component " <<
237 GetName() << ")";
238 return false;
239 }
240 }
241 catch (std::runtime_error const& ex)
242 {
243 LOG_INTERN(LogLevel::Error) << "an error occurred during update of input data for link " << linkId << " (component " <<
244 GetName() << "): " << ex.what();
245 return false;
246 }
247 catch (...)
248 {
249 LOG_INTERN(LogLevel::Error) << "an error occurred during update of input data for link " << linkId << " (component " <<
250 GetName() << ")";
251 return false;
252 }
253
254 LOG_INTERN(LogLevel::DebugCore) << "exit update input";
255
256 return true;
257 }
SimulationSlave::Component::GetName
std::string GetName() const override
Definition: component.cpp:50
SimulationSlave::ModelLibrary::UpdateInput
bool UpdateInput(ModelInterface *implementation, int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)
Definition: modelLibrary.h:147

Here is the call graph for this function:

ChannelBuffer * CreateOutputBuffer ( int linkId )
override

Creates a new channel buffer with the provided ID, store it in the stored list of output channel buffers and return it.

Parameters
[in] linkId ID of the channel output buffer to create
Returns
Created output channel buffer
260 {
261 if (!implementation)
262 {
263 LOG_INTERN(LogLevel::Warning) << "no implementation available";
264 return nullptr;
265 }
266
267 LOG_INTERN(LogLevel::DebugCore) << "create buffer for output link: " << linkId;
268
269 ChannelBuffer* buffer = new (std::nothrow) ChannelBuffer(linkId);
270 if (!buffer)
271 {
272 return nullptr;
273 }
274
275 if (!outputChannelBuffers.insert({linkId, buffer}).second)
276 {
277 LOG_INTERN(LogLevel::Error) << "links must be unique";
278 delete buffer;
279 return nullptr;
280 }
281
282 return buffer;
283 }
bool SetInputBuffer | ( | int | linkId,
 |  | ChannelBuffer * | buffer
 | ) |  |
override

Insert the provided channel buffer with the provided ID in the list of stored input channel buffers.

Parameters
[in] | linkId | ID of the channel input buffer
[in] | buffer | Channel input bufer to set
Returns
False if an error occurred, true otherwise
286 {
287 if (!implementation)
288 {
289 LOG_INTERN(LogLevel::Warning) << "no implementation available";
290 return false;
291 }
292
293 LOG_INTERN(LogLevel::DebugCore) << "set buffer (" << buffer->GetId() << ") for input link: " << linkId;
294
295 if (!inputChannelBuffers.insert({linkId, buffer}).second)
296 {
297 LOG_INTERN(LogLevel::Error) << "channel buffers must be unique";
298 return false;
299 }
300
301 return true;
302 }
bool GetInit ( ) const
override

Returns if the stored model interface implementation is defined as init module.

Returns
Returns false if error occured, otherwise the flag if stored model interface implementation is defined as init module
305 {
306 if (!implementation)
307 {
308 LOG_INTERN(LogLevel::Warning) << "could not retrieve init flag";
309 return false;
310 }
311
312 try
313 {
314 return implementation->GetInit();
315 }
316 catch (std::runtime_error const& ex)
317 {
318 LOG_INTERN(LogLevel::Warning) << "could not retrieve init flag: " << ex.what();
319 return false;
320 }
321 catch (...)
322 {
323 LOG_INTERN(LogLevel::Warning) << "could not retrieve init flag";
324 return false;
325 }
326 }
int GetPriority ( ) const
override

Returns the priority of the stored model interface implementation.

Returns
Returns std::numeric_limits<int>::min() if error occured, otherwise the priority of the stored model interface implementation
329 {
330 if (!implementation)
331 {
332 LOG_INTERN(LogLevel::Warning) << "could not retrieve priority";
333 }
334
335 try
336 {
337 return implementation->GetPriority();
338 }
339 catch (std::runtime_error const& ex)
340 {
341 LOG_INTERN(LogLevel::Warning) << "could not retrieve priority: " << ex.what();
342 return std::numeric_limits<int>::min();
343 }
344 catch (...)
345 {
346 LOG_INTERN(LogLevel::Warning) << "could not retrieve priority";
347 return std::numeric_limits<int>::min();
348 }
349 }
int GetOffsetTime ( ) const
override

Returns the offset time of the stored model interface implementation, i.e. the time at which this item is inserted for scheduling.

Returns
Returns 0 if error occured, otherwise the offset time of the stored model interface implementation
352 {
353 if (!implementation)
354 {
355 LOG_INTERN(LogLevel::Warning) << "could not retrieve offset time";
356 }
357
358 try
359 {
360 return implementation->GetOffsetTime();
361 }
362 catch (std::runtime_error const& ex)
363 {
364 LOG_INTERN(LogLevel::Warning) << "could not retrieve offset time: " << ex.what();
365 return 0;
366 }
367 catch (...)
368 {
369 LOG_INTERN(LogLevel::Warning) << "could not retrieve offset time";
370 return 0;
371 }
372 }
int GetResponseTime ( ) const
override

Returns the response time of the stored model interface implementation.

Returns
Returns 0 if error occured, otherwise the respone time of the stored model interface implementation
375 {
376 if (!implementation)
377 {
378 LOG_INTERN(LogLevel::Warning) << "could not retrieve response time";
379 }
380
381 try
382 {
383 return implementation->GetResponseTime();
384 }
385 catch (std::runtime_error const& ex)
386 {
387 LOG_INTERN(LogLevel::Warning) << "could not retrieve response time: " << ex.what();
388 return 0;
389 }
390 catch (...)
391 {
392 LOG_INTERN(LogLevel::Warning) << "could not retrieve response time";
393 return 0;
394 }
395 }
int GetCycleTime ( ) const
override

Returns the cycle time of the stored model interface implementation, i.e. the time after which it is rescheduled.

Returns
Returns 0 if error occured, otherwise the cycle time of the stored model interface implementation
398 {
399 if (!implementation)
400 {
401 LOG_INTERN(LogLevel::Warning) << "could not retrieve cycle time";
402 }
403
404 try
405 {
406 return implementation->GetCycleTime();
407 }
408 catch (std::runtime_error const& ex)
409 {
410 LOG_INTERN(LogLevel::Warning) << "could not retrieve cycle time: " << ex.what();
411 return 0;
412 }
413 catch (...)
414 {
415 LOG_INTERN(LogLevel::Warning) << "could not retrieve cycle time";
416 return 0;
417 }
418 }
bool SetModelLibrary ( ModelLibrary * modelLibrary )
override

Set the provided model library as library to store.

Parameters
[in] modelLibrary Model library to set
Returns
False if library is already set, true otherwise
421 {
422 if (this->modelLibrary)
423 {
424 return false;
425 }
426
427 this->modelLibrary = modelLibrary;
428 return true;
429 }
bool ReleaseFromLibrary ( )
override

Releases this component from the stored library.

Returns
Result of releasing this component
432 {
433 assert(nullptr != modelLibrary);
434
435 return modelLibrary->ReleaseComponent(this);
436 }
SimulationSlave::ModelLibrary::ReleaseComponent
bool ReleaseComponent(ComponentInterface *component)
Definition: modelLibrary.cpp:143

Here is the call graph for this function:

ModelInterface * GetImplementation ( ) const
override

Returns the stored model interface instance.

Returns
Stored model interface instance
439 {
440 return implementation;
441 }
std::string GetName ( ) const
override

Returns the stored ID.

Returns
Stored ID
51 {
52 return name;
53 }

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: ComponentType Class Reference

  • SimulationSlave
  • ComponentType
List of all members
ComponentType Class Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: DataStore Class Reference

  • SimulationSlave
  • DataStore
List of all members
DataStore Class Reference
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: DataStoreBinding Class Reference

  • SimulationSlave
  • DataStoreBinding
Public Member Functions | List of all members
DataStoreBinding Class Reference

Public Member Functions

DataStoreInterface * | Instantiate ()
void | Unload ()
Unloads the stochasticsInterface binding by deleting the library.

Member Function Documentation

DataStoreInterface * Instantiate ( )

Gets the dataStore instance library and stores it, then creates a new dataStoreInterface of the library.

Returns
dataStoreInterface created from the library
32 {
33 if (!library)
34 {
35 library = new (std::nothrow) DataStoreLibrary(libraryPath, callbacks);
36
37 if (!library)
38 {
39 return nullptr;
40 }
41
42 if (!library->Init())
43 {
44 delete library;
45 library = nullptr;
46 return nullptr;
47 }
48 }
49
50 return library->CreateDataStore(runtimeInformation);
51 }
SimulationSlave::DataStoreLibrary::CreateDataStore
DataStoreInterface * CreateDataStore(const openpass::common::RuntimeInformation &runtimeInformation)
Definition: dataStoreLibrary.cpp:130
SimulationSlave::DataStoreLibrary::Init
bool Init()
Definition: dataStoreLibrary.cpp:21

Here is the call graph for this function:

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: DataStoreLibrary Class Reference

  • SimulationSlave
  • DataStoreLibrary
Public Member Functions | List of all members
DataStoreLibrary Class Reference

Public Member Functions

virtual | ~DataStoreLibrary ()
Destructor, deletes the stored library (unloads it if necessary)
bool | Init ()
bool | ReleaseDataStore ()
DataStoreInterface * | CreateDataStore (const openpass::common::RuntimeInformation &runtimeInformation)

Member Function Documentation

bool Init ( )

Creates a QLibrary based on the path from the constructor and stores function pointer for getting the library version, creating and destroying instances and setting the stochasticsInterface item (see typedefs for corresponding signatures).

Returns
true on successful operation, false otherwise
22 {
23 library = new (std::nothrow) QLibrary(QString::fromStdString(dataStoreLibraryPath));
24
25 if (!library)
26 {
27 return false;
28 }
29
30 if (!library->load())
31 {
32 LOG_INTERN(LogLevel::Error) << library->errorString().toStdString();
33 delete library;
34 library = nullptr;
35 return false;
36 }
37
38 getVersionFunc = reinterpret_cast<DataStoreInterface_GetVersion>(library->resolve(DllGetVersionId.c_str()));
39 if (!getVersionFunc)
40 {
41 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL";
42 return false;
43 }
44
45 createInstanceFunc = reinterpret_cast<DataStoreInterface_CreateInstanceType>(library->resolve(DllCreateInstanceId.c_str()));
46 if (!createInstanceFunc)
47 {
48 LOG_INTERN(LogLevel::Error) << "could not create instance from DLL";
49 return false;
50 }
51
52 destroyInstanceFunc = reinterpret_cast<DataStoreInterface_DestroyInstanceType>(library->resolve(DllDestroyInstanceId.c_str()));
53 if (!destroyInstanceFunc)
54 {
55 LOG_INTERN(LogLevel::Warning) << "dataStore could not be released";
56 return false;
57 }
58
59 try
60 {
61 LOG_INTERN(LogLevel::DebugCore) << "loaded dataStore library " << library->fileName().toStdString()
62 << ", version " << getVersionFunc();
63 }
64 catch (std::runtime_error const &ex)
65 {
66 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL: " << ex.what();
67 return false;
68 }
69 catch (...)
70 {
71 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL";
72 return false;
73 }
74
75 return true;
76 }

Here is the caller graph for this function:

bool ReleaseDataStore ( )

Delete the DataStoreInterface and the library

Returns
Flag if the release was successful
99 {
100 if (!dataStoreInterface)
101 {
102 return true;
103 }
104
105 if (!library)
106 {
107 return false;
108 }
109
110 try
111 {
112 destroyInstanceFunc(dataStoreInterface);
113 }
114 catch (std::runtime_error const &ex)
115 {
116 LOG_INTERN(LogLevel::Error) << "dataStore could not be released: " << ex.what();
117 return false;
118 }
119 catch (...)
120 {
121 LOG_INTERN(LogLevel::Error) << "dataStore could not be released";
122 return false;
123 }
124
125 dataStoreInterface = nullptr;
126
127 return true;
128 }

Here is the caller graph for this function:

DataStoreInterface * CreateDataStore ( const openpass::common::RuntimeInformation & runtimeInformation )

Make sure that the library exists and is loaded, then call the "create instance" function pointer, which instantiates a DataStoreInterface. The created Interface is stored.

Parameters
[in] runtimeInformation Reference to the simulation slave runtime information
Returns
DataStoreInterface created
131 {
132 if (!library)
133 {
134 return nullptr;
135 }
136
137 if (!library->isLoaded())
138 {
139 if (!library->load())
140 {
141 return nullptr;
142 }
143 }
144
145 dataStoreInterface = nullptr;
146
147 try
148 {
149 dataStoreInterface = createInstanceFunc(&runtimeInformation, callbacks);
150 }
151 catch (std::runtime_error const &ex)
152 {
153 LOG_INTERN(LogLevel::Error) << "could not create stochastics instance: " << ex.what();
154 return nullptr;
155 }
156 catch (...)
157 {
158 LOG_INTERN(LogLevel::Error) << "could not create stochastics instance";
159 return nullptr;
160 }
161
162 return dataStoreInterface;
163 }

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: EventDetector Class Reference

  • SimulationSlave
  • EventDetector
Public Member Functions | List of all members
EventDetector Class Reference

Public Member Functions

virtual | ~EventDetector ()
Destructor, releases the event detector from the stored library.
EventDetectorInterface * | GetImplementation () const
EventDetectorLibrary * GetLibrary ()

Member Function Documentation

EventDetectorInterface* GetImplementation ( ) const
inline

Returns the event detector interface.

Returns
event detector interface
59 {
60 return implementation;
61 }

Here is the caller graph for this function:

EventDetectorLibrary* GetLibrary ( )
inline

Returns the event detector library.

Returns
event detector library
69 {
70 return library;
71 }
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: EventDetectorBinding Class Reference

  • SimulationSlave
  • EventDetectorBinding
Public Member Functions | List of all members
EventDetectorBinding Class Reference

Public Member Functions

std::vector< const EventDetector * > | Instantiate (const std::string libraryPath, ScenarioInterface *scenario, EventNetworkInterface *eventNetwork, WorldInterface *world, StochasticsInterface *stochastics)
void | Unload ()
Unloads the event detector binding by deleting all stored event detector libraries.

Member Function Documentation

std::vector< const EventDetector * > Instantiate | ( | const std::string | libraryPath,
 |  | ScenarioInterface * | scenario,
 |  | EventNetworkInterface * | eventNetwork,
 |  | WorldInterface * | world,
 |  | StochasticsInterface * | stochastics
 | ) |  |

Gets the event detector instance library either from the already stored libraries or create a new instance (which is then also stored), then create a new event detector using the provided parameters.

Parameters
[in] | libraryPath | Path to the library
[in] | scenario | Scenario
[in] | eventNetwork | Interface of the eventNetwork
[in] | world | World instance
[in] | stochastics | The stochastics object
Returns
Vector of created EventDetectors from the library
32 {
33 library = new EventDetectorLibrary(libraryPath,
34 callbacks);
35
36 if(!library)
37 {
38 LOG_INTERN(LogLevel::Error) << "EventDetector library could not be created";
39 throw std::runtime_error("EventDetector library could not be created");
40 }
41
42 if(!library->Init())
43 {
44 delete library;
45 LOG_INTERN(LogLevel::Error) << "EventDetector library could not be initalized";
46 throw std::runtime_error("EventDetector library could not be initilized");
47 }
48
49 std::vector<const EventDetector*> eventDetectors;
50
51 //Instantiates default CollisionEventDetectors
52 const auto eventDetector = library->CreateCollisionDetector(eventNetwork,
53 world,
54 stochastics);
55 eventDetectors.push_back(eventDetector);
56
57 //Instantiates an eventdetector for each true flag
58 for(auto eventDetectorInformation : scenario->GetEventDetectorInformations())
59 {
60 const auto eventDetector = library->CreateConditionalDetector(eventDetectorInformation,
61 eventNetwork,
62 world,
63 stochastics);
64 eventDetectors.push_back(eventDetector);
65 }
66
67 return eventDetectors;
68 }
SimulationSlave::EventDetectorLibrary::CreateCollisionDetector
EventDetector * CreateCollisionDetector(EventNetworkInterface *eventNetwork, WorldInterface *world, StochasticsInterface *stochastics)
Definition: eventDetectorLibrary.cpp:142
SimulationSlave::EventDetectorLibrary::Init
bool Init()
Definition: eventDetectorLibrary.cpp:24

Here is the call graph for this function:

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: EventDetectorLibrary Class Reference

  • SimulationSlave
  • EventDetectorLibrary
Public Member Functions | List of all members
EventDetectorLibrary Class Reference

Public Member Functions

virtual | ~EventDetectorLibrary ()
bool | Init ()
bool | ReleaseEventDetector (EventDetector *eventDetector)
EventDetector * | CreateCollisionDetector (EventNetworkInterface *eventNetwork, WorldInterface *world, StochasticsInterface *stochastics)

Constructor & Destructor Documentation

~EventDetectorLibrary ( )
virtual

Destructor, deletes the stored library (unloads it if necessary), if the list of stored event detectors is empty.

89 {
90 if(!(eventDetectors.empty()))
91 {
92 LOG_INTERN(LogLevel::Warning) << "unloading library which is still in use";
93 }
94
95 if(library)
96 {
97 if(library->isLoaded())
98 {
99 LOG_INTERN(LogLevel::DebugCore) << "unloading event detector library ";
100 library->unload();
101 }
102
103 delete library;
104 library = nullptr;
105 }
106 }

Member Function Documentation

bool Init ( )

Creates a QLibrary based on the path from the constructor and stores function pointer for getting the library version, creating and destroying instances and setting the spawn item (see typedefs for corresponding signatures).

Returns
Null pointer
25 {
26 std::string suffix = DEBUG_POSTFIX;
27
28 library = new (std::nothrow) QLibrary(QString::fromStdString(libraryPath+suffix));
29 if(!library)
30 {
31 return false;
32 }
33
34 if(!library->load())
35 {
36 LOG_INTERN(LogLevel::Error) << library->errorString().toStdString();
37 delete library;
38 library = nullptr;
39 return false;
40 }
41
42 getVersionFunc = (EventDetectorInterface_GetVersion)library->resolve(DllGetVersionId.c_str());
43 if(!getVersionFunc)
44 {
45 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL";
46 return false;
47 }
48
49 createCollisionDetectorInstanceFunc = (EventDetectorInterface_CreateCollisionDetectorInstanceType)library->resolve(DllCreateCollisionDetectorInstanceId.c_str());
50 if(!createCollisionDetectorInstanceFunc)
51 {
52 LOG_INTERN(LogLevel::Error) << "could not instantiate class from DLL";
53 return false;
54 }
55 createConditionalDetectorInstanceFunc = (EventDetectorInterface_CreateConditionalDetectorInstanceType)library->resolve(DllCreateConditionalDetectorInstanceId.c_str());
56 if(!createConditionalDetectorInstanceFunc)
57 {
58 LOG_INTERN(LogLevel::Error) << "could not instantiate class from DLL";
59 return false;
60 }
61
62 destroyInstanceFunc = (EventDetectorInterface_DestroyInstanceType)library->resolve(DllDestroyInstanceId.c_str());
63 if(!destroyInstanceFunc)
64 {
65 LOG_INTERN(LogLevel::Warning) << "event detector could not be released";
66 return false;
67 }
68
69 try
70 {
71 LOG_INTERN(LogLevel::DebugCore) << "loaded event detector library " << library->fileName().toStdString()
72 << ", version " << getVersionFunc();
73 }
74 catch(std::runtime_error const &ex)
75 {
76 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL: " << ex.what();
77 return false;
78 }
79 catch(...)
80 {
81 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL";
82 return false;
83 }
84
85 return true;
86 }

Here is the caller graph for this function:

bool ReleaseEventDetector ( EventDetector * eventDetector )

Find event detector in the sored list of event detectors, then call the "destroy instance" function pointer with its implementation and remove it from the list of stored event detectors.

Parameters
[in] eventDetector event detector to release
Returns
Flag if the release was successful
109 {
110 if(!library)
111 {
112 return false;
113 }
114
115 std::list<EventDetector*>::iterator findIter = std::find(eventDetectors.begin(), eventDetectors.end(), eventDetector);
116 if(eventDetectors.end() == findIter)
117 {
118 LOG_INTERN(LogLevel::Warning) << "event detector doesn't belong to library";
119 return false;
120 }
121
122 try
123 {
124 destroyInstanceFunc(eventDetector->GetImplementation());
125 }
126 catch(std::runtime_error const &ex)
127 {
128 LOG_INTERN(LogLevel::Error) << "event detector could not be released: " << ex.what();
129 return false;
130 }
131 catch(...)
132 {
133 LOG_INTERN(LogLevel::Error) << "event detector could not be released";
134 return false;
135 }
136
137 eventDetectors.remove(eventDetector);
138
139 return true;
140 }

Here is the call graph for this function:

Here is the caller graph for this function:

EventDetector * CreateCollisionDetector | ( | EventNetworkInterface * | eventNetwork,
 |  | WorldInterface * | world,
 |  | StochasticsInterface * | stochastics
 | ) |  |

Make sure that the library exists and is loaded, then call the "create instance" function pointer using the parameters from the event detector instance to get a event detector interface, which is then used to instantiate a event detector which is also stored in the list of event detectors.

Parameters
eventDetectorType
parameters
eventNetwork
world
stochastics
Returns
instance of event detector
145 {
146 if(!library)
147 {
148 return nullptr;
149 }
150
151 if(!library->isLoaded())
152 {
153 if(!library->load())
154 {
155 return nullptr;
156 }
157 }
158
159 auto eventDetectorInterface = createCollisionDetectorInstanceFunc(world,
160 eventNetwork,
161 callbacks,
162 stochastics);
163
164 if(!eventDetectorInterface)
165 {
166 throw std::runtime_error("Could not create CollisionEventDetector");
167 }
168
169 EventDetector *eventDetector = new EventDetector(eventDetectorInterface,
170 this);
171
172 eventDetectors.push_back(eventDetector);
173 return eventDetector;
174 }

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: EventDetectorNetwork Class Reference

  • SimulationSlave
  • EventDetectorNetwork
Public Member Functions | List of all members
EventDetectorNetwork Class Reference

Public Member Functions

bool | Instantiate (const std::string libraryPath, ScenarioInterface *scenario, EventNetworkInterface *eventNetwork, StochasticsInterface *stochastics)
void | Clear ()
Clears all eventdetectors.
std::vector< const EventDetector * > | GetEventDetectors ()
void | ResetAll ()
Resets all eventdetectors to their initial state.

Member Function Documentation

bool Instantiate | ( | const std::string | libraryPath,
 |  | ScenarioInterface * | scenario,
 |  | EventNetworkInterface * | eventNetwork,
 |  | StochasticsInterface * | stochastics
 | ) |  |

Instantiates the eventdetector network.

Parameters
[in] | libraryPath | Path to the library
[in] | scenario | Scenario
[in] | eventNetwork | Interface of the eventNetwork
[in] | stochastics | The stochastics object
Returns
true, if successful
34 {
35 if (!scenario)
36 {
37 return false;
38 }
39
40 //Instantiate all detectors
41 try
42 {
43 eventDetectors = eventDetectorBinding->Instantiate(libraryPath,
44 scenario,
45 eventNetwork,
46 world,
47 stochastics);
48 }
49 catch (const std::runtime_error& error)
50 {
51 LOG_INTERN(LogLevel::Error) << "Could not instantiate all EventDetectors: " << error.what();
52 return false;
53 }
54
55 return true;
56 }
SimulationSlave::EventDetectorBinding::Instantiate
std::vector< const EventDetector * > Instantiate(const std::string libraryPath, ScenarioInterface *scenario, EventNetworkInterface *eventNetwork, WorldInterface *world, StochasticsInterface *stochastics)
Definition: eventDetectorBinding.cpp:27

Here is the call graph for this function:

std::vector< const EventDetector * > GetEventDetectors ( )

Returns all eventdetectors

Returns
Vector of created EventDetectors from the library
68 {
69 return eventDetectors;
70 }

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: FrameworkModuleContainer Class Reference

  • SimulationSlave
  • FrameworkModuleContainer
List of all members
FrameworkModuleContainer Class Referencefinal
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Manipulator Class Reference

  • SimulationSlave
  • Manipulator
Public Member Functions | List of all members
Manipulator Class Reference

Public Member Functions

virtual | ~Manipulator ()
Destructor, releases the manipulator from the stored library.
ManipulatorInterface * | GetImplementation () const
ManipulatorLibrary * GetLibrary ()

Member Function Documentation

ManipulatorInterface* GetImplementation ( ) const
inline

Returns the manipulator interface.

Returns
Manipulator interface
59 {
60 return implementation;
61 }

Here is the caller graph for this function:

ManipulatorLibrary* GetLibrary ( )
inline

Returns the manipulator library.

Returns
Manipultar library
69 {
70 return library;
71 }
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: ManipulatorBinding Class Reference

  • SimulationSlave
  • ManipulatorBinding
Public Member Functions | List of all members
ManipulatorBinding Class Reference

Public Member Functions

std::vector< const Manipulator * > | Instantiate (const std::string libraryPath, ScenarioInterface *scenario, EventNetworkInterface *eventNetwork, WorldInterface *world, PublisherInterface *publisher)
void | Unload ()
Unloads the spawn point binding by deleting all stored spawn point libraries.

Member Function Documentation

std::vector< const Manipulator * > Instantiate | ( | const std::string | libraryPath,
 |  | ScenarioInterface * | scenario,
 |  | EventNetworkInterface * | eventNetwork,
 |  | WorldInterface * | world,
 |  | PublisherInterface * | publisher
 | ) |  |

Creates all manipulators and returns them as a vector

Parameters
[in] | libraryPath | Path to the library
[in] | scenario | Scenario
[in] | eventNetwork | Interface of the eventNetwork
[in] | world | World instance
Returns
Vector of created manipulators
32 {
33 library = new ManipulatorLibrary(libraryPath,
34 callbacks);
35
36 if(!library)
37 {
38 LOG_INTERN(LogLevel::Error) << "Manipulator library could not be created";
39 throw std::runtime_error("Manipulator library could not be created");
40 }
41
42 if(!library->Init())
43 {
44 delete library;
45 LOG_INTERN(LogLevel::Error) << "Manipulator library could not be initalized";
46 throw std::runtime_error("Manipulator library could not be initalized");
47 }
48
49 std::vector<const Manipulator*> manipulators;
50
51 //Instantiates all default eventDetectors
52 for(auto manipulatorType : defaultManipulatorTypes)
53 {
54 const auto manipulator = library->CreateManipulator(manipulatorType,
55 eventNetwork,
56 world,
57 publisher);
58
59 manipulators.push_back(manipulator);
60 }
61
62 //Instantiates all manipulators
63 for(const auto& action : scenario->GetActions())
64 {
65 const auto manipulator = library->CreateManipulator(action,
66 eventNetwork,
67 world);
68 manipulators.push_back(manipulator);
69 }
70
71 return manipulators;
72 }
SimulationSlave::ManipulatorLibrary::Init
bool Init()
Definition: manipulatorLibrary.cpp:25
SimulationSlave::ManipulatorLibrary::CreateManipulator
Manipulator * CreateManipulator(const openScenario::ManipulatorInformation manipulatorInformation, EventNetworkInterface *eventNetwork, WorldInterface *world)
Definition: manipulatorLibrary.cpp:143

Here is the call graph for this function:

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: ManipulatorLibrary Class Reference

  • SimulationSlave
  • ManipulatorLibrary
Public Member Functions | List of all members
ManipulatorLibrary Class Reference

Public Member Functions

virtual | ~ManipulatorLibrary ()
bool | Init ()
bool | ReleaseManipulator (Manipulator *manipulator)
Manipulator * | CreateManipulator (const openScenario::ManipulatorInformation manipulatorInformation, EventNetworkInterface *eventNetwork, WorldInterface *world)

Constructor & Destructor Documentation

~ManipulatorLibrary ( )
virtual

Destructor, deletes the stored library (unloads it if necessary), if the list of stored spawn points is empty.

90 {
91 if(!(manipulators.empty()))
92 {
93 LOG_INTERN(LogLevel::Warning) << "unloading library which is still in use";
94 }
95
96 if(library)
97 {
98 if(library->isLoaded())
99 {
100 LOG_INTERN(LogLevel::DebugCore) << "unloading manipulator library ";
101 library->unload();
102 }
103
104 delete library;
105 library = nullptr;
106 }
107 }

Member Function Documentation

bool Init ( )

Creates a QLibrary based on the path from the constructor and stores function pointer for getting the library version, creating and destroying instances and setting the spawn item (see typedefs for corresponding signatures).

Returns
Null pointer
26 {
27 std::string suffix = DEBUG_POSTFIX;
28 library = new (std::nothrow) QLibrary(QString::fromStdString(libraryPath+suffix));
29 if(!library)
30 {
31 return false;
32 }
33
34 if(!library->load())
35 {
36 LOG_INTERN(LogLevel::Error) << library->errorString().toStdString();
37 delete library;
38 library = nullptr;
39 return false;
40 }
41
42 getVersionFunc = (ManipulatorInterface_GetVersion)library->resolve(DllGetVersionId.c_str());
43 if(!getVersionFunc)
44 {
45 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL";
46 return false;
47 }
48
49 createInstanceFunc = (ManipulatorInterface_CreateInstanceType)library->resolve(DllCreateInstanceId.c_str());
50 if(!createInstanceFunc)
51 {
52 LOG_INTERN(LogLevel::Error) << "could not instantiate class from DLL";
53 return false;
54 }
55
56 createDefaultInstanceFunc = (ManipulatorInterface_CreateDefaultInstanceType)library->resolve(DllCreateDefaultInstanceId.c_str());
57 if(!createDefaultInstanceFunc)
58 {
59 LOG_INTERN(LogLevel::Error) << "could not instantiate class from DLL";
60 return false;
61 }
62
63 destroyInstanceFunc = (ManipulatorInterface_DestroyInstanceType)library->resolve(DllDestroyInstanceId.c_str());
64 if(!destroyInstanceFunc)
65 {
66 LOG_INTERN(LogLevel::Warning) << "manipulator could not be released";
67 return false;
68 }
69
70 try
71 {
72 LOG_INTERN(LogLevel::DebugCore) << "loaded manipulator library " << library->fileName().toStdString()
73 << ", version " << getVersionFunc();
74 }
75 catch(std::runtime_error const &ex)
76 {
77 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL: " << ex.what();
78 return false;
79 }
80 catch(...)
81 {
82 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL";
83 return false;
84 }
85
86 return true;
87 }

Here is the caller graph for this function:

bool ReleaseManipulator ( Manipulator * manipulator )

Find spawn point in the sored list of spawn points, then call the "destroy instance" function pointer with its implementation and remove it from the list of stored spawn points.

Parameters
[in] spawnPoint Spawn point to release
Returns
Flag if the release was successful
110 {
111 if(!library)
112 {
113 return false;
114 }
115
116 std::list<Manipulator*>::iterator findIter = std::find(manipulators.begin(), manipulators.end(), manipulator);
117 if(manipulators.end() == findIter)
118 {
119 LOG_INTERN(LogLevel::Warning) << "manipulator doesn't belong to library";
120 return false;
121 }
122
123 try
124 {
125 destroyInstanceFunc(manipulator->GetImplementation());
126 }
127 catch(std::runtime_error const &ex)
128 {
129 LOG_INTERN(LogLevel::Error) << "manipulator could not be released: " << ex.what();
130 return false;
131 }
132 catch(...)
133 {
134 LOG_INTERN(LogLevel::Error) << "manipulator could not be released";
135 return false;
136 }
137
138 manipulators.remove(manipulator);
139
140 return true;
141 }

Here is the call graph for this function:

Here is the caller graph for this function:

Manipulator * CreateManipulator | ( | const openScenario::ManipulatorInformation | manipulatorInformation,
 |  | EventNetworkInterface * | eventNetwork,
 |  | WorldInterface * | world
 | ) |  |

Make sure that the library exists and is loaded, then call the "create instance" function pointer using the parameters from either the action interface or the ManipulatorParameters to get a manipulator

Parameters
[in] | action | Action interface containing manipulator parameters
[in] | manipulatorType | The type of the manipulator to be instantiated; this is only necessary if no action is passed
[in] | parameters | The parameters for the manipulator; this is only necessary if no action is passed
[in] | eventNetwork | The event network within which the manipulator inserts events
[in] | world | World instance
Returns
Manipulator created
146 {
147 if(!library)
148 {
149 return nullptr;
150 }
151
152 if(!library->isLoaded())
153 {
154 if(!library->load())
155 {
156 return nullptr;
157 }
158 }
159
160 auto manipulatorInterface = createInstanceFunc(world,
161 manipulatorInformation,
162 eventNetwork,
163 callbacks);
164
165 Manipulator *manipulator = new Manipulator(manipulatorInterface,
166 this);
167 manipulators.push_back(manipulator);
168 return manipulator;
169 }

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: ManipulatorNetwork Class Reference

  • SimulationSlave
  • ManipulatorNetwork
Public Member Functions | List of all members
ManipulatorNetwork Class Reference

Public Member Functions

bool | Instantiate (const std::string libraryPath, ScenarioInterface *scenario, EventNetworkInterface *eventNetwork)
void | Clear ()
Clears all manipulators.
std::vector< const Manipulator * > | GetManipulators ()

Member Function Documentation

bool Instantiate | ( | const std::string | libraryPath,
 |  | ScenarioInterface * | scenario,
 |  | EventNetworkInterface * | eventNetwork
 | ) |  |

Instantiates the manipulator network.

Parameters
[in] | libraryPath | Path to the library
[in] | scenario | Scenario
[in] | eventNetwork | Interface of the eventNetwork
Returns
true, if successful
35 {
36 if (scenario != nullptr)
37 {
38 //Instantiate all manipulators
39 try
40 {
41 manipulators = manipulatorBinding->Instantiate(libraryPath,
42 scenario,
43 eventNetwork,
44 world,
45 publisher);
46 }
47 catch (const std::runtime_error& error)
48 {
49 LOG_INTERN(LogLevel::Error) << "Could not instantiate all Manipulators: " << error.what();
50 return false;
51 }
52 }
53 return true;
54 }
SimulationSlave::ManipulatorBinding::Instantiate
std::vector< const Manipulator * > Instantiate(const std::string libraryPath, ScenarioInterface *scenario, EventNetworkInterface *eventNetwork, WorldInterface *world, PublisherInterface *publisher)
Definition: manipulatorBinding.cpp:27

Here is the call graph for this function:

std::vector< const Manipulator * > GetManipulators ( )

Returns all manipulators

Returns
Vector of created manipulators from the library
66 {
67 return manipulators;
68 }
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: ModelBinding Class Reference

  • SimulationSlave
  • ModelBinding
Public Member Functions | List of all members
ModelBinding Class Reference

Public Member Functions

ComponentInterface * | Instantiate (std::shared_ptr< ComponentType > componentType, std::string componentName, StochasticsInterface *stochastics, WorldInterface *world, ObservationNetworkInterface *observationNetwork, Agent *agent, EventNetworkInterface *eventNetwork, PublisherInterface *publisher)
Creates a new component from the given parameters using the respective model library. More...
void | Unload ()
Unloads the model library by deleting the stored libraries.

Member Function Documentation

ComponentInterface * Instantiate | ( | std::shared_ptr< ComponentType > | componentType,
 |  | std::string | componentName,
 |  | StochasticsInterface * | stochastics,
 |  | WorldInterface * | world,
 |  | ObservationNetworkInterface * | observationNetwork,
 |  | Agent * | agent,
 |  | EventNetworkInterface * | eventNetwork,
 |  | PublisherInterface * | publisher
 | ) |  |

Creates a new component from the given parameters using the respective model library.

Gets the model library from the component type (instantiating and initializing it, if not already done), then creates the new component from the given parameters using this library.

Parameters
[in] | componentType | Type of the component to instantiate
[in] | componentName | Name of the component to instantiate
[in] | stochastics | Stochastics interface
[in] | world | World representation
[in] | observationNetwork | Network of the observation modules
[in] | agent | Agent that the component type is a part of
[in] | eventNetwork | Instance of the internal event logic
[in] | publisher | Publisher instance
Returns
The instantiated component
43 {
44 const std::string name = componentType->GetModelLibrary();
45
46 ModelLibrary *modelLibrary;
47 try
48 {
49 modelLibrary = modelLibraries.at(name);
50 }
51 catch(const std::out_of_range&)
52 {
53 modelLibrary = nullptr;
54 }
55
56 if(!modelLibrary)
57 {
58 modelLibrary = new (std::nothrow) ModelLibrary(libraryPath,
59 name,
60 callbacks);
61 if(!modelLibrary)
62 {
63 return nullptr;
64 }
65
66 if(!modelLibrary->Init())
67 {
68 delete modelLibrary;
69 return nullptr;
70 }
71
72 if(!modelLibraries.insert({name, modelLibrary}).second)
73 {
74 delete modelLibrary;
75 return nullptr;
76 }
77 }
78
79 return modelLibrary->CreateComponent(componentType,
80 componentName,
81 runtimeInformation,
82 stochastics,
83 world,
84 observationNetwork,
85 agent,
86 eventNetwork,
87 publisher);
88 }

Here is the call graph for this function:

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: ModelLibrary Class Reference

  • SimulationSlave
  • ModelLibrary
Public Member Functions | List of all members
ModelLibrary Class Reference

Public Member Functions

bool | Init ()
bool | ReleaseComponent (ComponentInterface *component)
ComponentInterface * | CreateComponent (std::shared_ptr< ComponentType > componentType, std::string componentName, const openpass::common::RuntimeInformation &runtimeInformation, StochasticsInterface *stochastics, WorldInterface *world, ObservationNetworkInterface *observationNetwork, Agent *agent, EventNetworkInterface *eventNetwork, PublisherInterface *publisher)
Creates a new agent component and its implementation and link all observation modules in the observation network to it. More...
bool | UpdateInput (ModelInterface *implementation, int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)
bool | UpdateOutput (ModelInterface *implementation, int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
bool | Trigger (ModelInterface *implementation, int time)

Member Function Documentation

bool Init ( )

Inits the model library by obtaining the function pointers to all "Interface.h" functions defined via typedef.

Returns
Flag if init was successful
34 {
35 #if defined(unix)
36 QString path = QString(modelLibraryPath.c_str()) + QString("/lib") + QString(modelLibraryName.c_str());
37 #elif defined (WIN32)
38 std::string suffix = DEBUG_POSTFIX;
39 QString path = QString(modelLibraryPath.c_str()) + QString("/") + QString((modelLibraryName+suffix).c_str());
40 #else
41 #error undefined target platform
42 #endif
43 library = new (std::nothrow) QLibrary(path);
44 if (!library)
45 {
46 return false;
47 }
48 try {
49 if (!library->load())
50 {
51 LOG_INTERN(LogLevel::Error) << library->errorString().toStdString();
52 delete library;
53 library = nullptr;
54 return false;
55 }
56 }
57 catch (std::exception e)
58 {
59 // ignore exceptions during dublicate initialization of libprotobuf
60 }
61
62 getVersionFunc = reinterpret_cast<ModelInterface_GetVersion>(library->resolve(DllGetVersionId.c_str()));
63 if (!getVersionFunc)
64 {
65 LOG_INTERN(LogLevel::Error) << "could not resolve " << DllGetVersionId.c_str() << " from DLL";
66 return false;
67 }
68
69 createInstanceFunc = reinterpret_cast<ModelInterface_CreateInstanceType>(library->resolve(DllCreateInstanceId.c_str()));
70 if (!createInstanceFunc)
71 {
72 LOG_INTERN(LogLevel::Error) << "could not resolve " << DllCreateInstanceId.c_str() << " from DLL";
73 return false;
74 }
75
76 destroyInstanceFunc = reinterpret_cast<ModelInterface_DestroyInstanceType>(library->resolve(DllDestroyInstanceId.c_str()));
77 if (!destroyInstanceFunc)
78 {
79 LOG_INTERN(LogLevel::Error) << "could not resolve " << DllDestroyInstanceId.c_str() << " from DLL";
80 return false;
81 }
82
83 updateInputFunc = reinterpret_cast<ModelInterface_UpdateInputType>(library->resolve(DllUpdateInputId.c_str()));
84 if (!updateInputFunc)
85 {
86 LOG_INTERN(LogLevel::Error) << "could not resolve " << DllUpdateInputId.c_str() << " from DLL";
87 return false;
88 }
89
90 updateOutputFunc = reinterpret_cast<ModelInterface_UpdateOutputType>(library->resolve(DllUpdateOutputId.c_str()));
91 if (!updateOutputFunc)
92 {
93 LOG_INTERN(LogLevel::Error) << "could not resolve " << DllUpdateOutputId.c_str() << " from DLL";
94 return false;
95 }
96
97 triggerFunc = reinterpret_cast<ModelInterface_TriggerType>(library->resolve(DllTriggerId.c_str()));
98 if (!triggerFunc)
99 {
100 LOG_INTERN(LogLevel::Error) << "could not resolve " << DllTriggerId.c_str() << " from DLL";
101 return false;
102 }
103
104 try
105 {
106 LOG_INTERN(LogLevel::DebugCore) << "loaded model library " << library->fileName().toStdString()
107 << ", version " << getVersionFunc();
108
109 return true;
110 }
111 catch (std::runtime_error const& ex)
112 {
113 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL: " << ex.what();
114 return false;
115 }
116 catch (...)
117 {
118 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL";
119 return false;
120 }
121 }

Here is the caller graph for this function:

bool ReleaseComponent ( ComponentInterface * component )

Releases a component instance by calling the destroyInstance method on the instance and removing the instance from the list of components.

Returns
Flag if release was successful
144 {
145 if (!library)
146 {
147 return false;
148 }
149
150 std::list<ComponentInterface*>::iterator findIter = std::find(components.begin(), components.end(), component);
151 if (components.end() == findIter)
152 {
153 LOG_INTERN(LogLevel::Warning) << "model doesn't belong to library";
154 return false;
155 }
156
157 try
158 {
159 destroyInstanceFunc(component->GetImplementation());
160 }
161 catch (std::runtime_error const& ex)
162 {
163 LOG_INTERN(LogLevel::Error) << "model could not be released: " << ex.what();
164 return false;
165 }
166 catch (...)
167 {
168 LOG_INTERN(LogLevel::Error) << "model could not be released";
169 return false;
170 }
171
172 components.remove(component);
173
174 // do not unload library here since shared_ptrs in other DLLs could still reference deleters within this DLL
175
176 return true;
177 }

Here is the caller graph for this function:

ComponentInterface * CreateComponent | ( | std::shared_ptr< ComponentType > | componentType,
 |  | std::string | componentName,
 |  | const openpass::common::RuntimeInformation & | runtimeInformation,
 |  | StochasticsInterface * | stochastics,
 |  | WorldInterface * | world,
 |  | ObservationNetworkInterface * | observationNetwork,
 |  | Agent * | agent,
 |  | EventNetworkInterface * | eventNetwork,
 |  | PublisherInterface * | publisher
 | ) |  |

Creates a new agent component and its implementation and link all observation modules in the observation network to it.

Checks that the library exists and is loaded, then creates a new component using the agent and world parameter, set its model library to this object and link all observation modules in the observation networks to it. Finally, create a model interface using the "create instance" function pointer, set the component's implementation to this model interface and store the created component in the list of stored components and return it.

Parameters
[in] | componentType | Agent as defined in the agent config file
[in] | componentName | Name of the component
[in] | runtimeInformation | Static information from the slave for the components
[in] | stochastics | The stochastics interface
[in] | world | The world interface
[in] | observationNetwork | Network of the observation modules
[in] | agent | Agent instance
[in] | eventNetwork | Instance of the internal event logic
[in] | publisher | Publisher instance
Returns
188 {
189 if (!library)
190 {
191 return nullptr;
192 }
193
194 if (!library->isLoaded() && !library->load())
195 {
196 return nullptr;
197 }
198
199 std::unique_ptr<ComponentInterface> component(new (std::nothrow) Component(componentName, agent));
200 if (!component)
201 {
202 return nullptr;
203 }
204
205 if (!component->SetModelLibrary(this))
206 {
207 return nullptr;
208 }
209
210 // TODO: This is a workaround, as the OSI use case only imports a single observation library -> implement new observation concept
211 component->SetObservations(observationNetwork->GetObservationModules());
212
213 ModelInterface* implementation = nullptr;
214 auto parameter = openpass::parameter::make<SimulationCommon::Parameters>(runtimeInformation, componentType->GetModelParameters());
215
216 try
217 {
218 const auto &version = getVersionFunc();
219
220 /*if (version == "0.3.0")
221 {
222 implementation = reinterpret_cast<UnrestrictedEventPublishModelInterface_CreateInstanceType>(createInstanceFunc)(
223 componentName,
224 componentType->GetInit(),
225 componentType->GetPriority(),
226 componentType->GetOffsetTime(),
227 componentType->GetResponseTime(),
228 componentType->GetCycleTime(),
229 stochastics,
230 world,
231 parameter.get(),
232 &component->GetObservations(),
233 agent->GetAgentAdapter(),
234 callbacks,
235 eventNetwork,
236 publisher);
237 }
238 if (version == "0.2.0")
239 {
240 implementation = reinterpret_cast<UnrestrictedPublishModelInterface_CreateInstanceType>(createInstanceFunc)(
241 componentName,
242 componentType->GetInit(),
243 componentType->GetPriority(),
244 componentType->GetOffsetTime(),
245 componentType->GetResponseTime(),
246 componentType->GetCycleTime(),
247 stochastics,
248 world,
249 parameter.get(),
250 &component->GetObservations(),
251 agent->GetAgentAdapter(),
252 callbacks,
253 publisher);
254 }
255 else*/ if (version == "0.1.0")
256 {
257 implementation = reinterpret_cast<UnrestrictedEventModelInterface_CreateInstanceType>(createInstanceFunc)(
258 componentName,
259 componentType->GetInit(),
260 componentType->GetPriority(),
261 componentType->GetOffsetTime(),
262 componentType->GetResponseTime(),
263 componentType->GetCycleTime(),
264 stochastics,
265 world,
266 parameter.get(),
267 publisher,
268 agent->GetAgentAdapter(),
269 callbacks,
270 eventNetwork);
271 }
272 else
273 {
274 implementation = createInstanceFunc(
275 componentName,
276 componentType->GetInit(),
277 componentType->GetPriority(),
278 componentType->GetOffsetTime(),
279 componentType->GetResponseTime(),
280 componentType->GetCycleTime(),
281 stochastics,
282 world,
283 parameter.get(),
284 publisher,
285 agent->GetAgentAdapter(),
286 callbacks);
287 }
288 }
289 catch (std::runtime_error const& ex)
290 {
291 LOG_INTERN(LogLevel::Error) << "could not create model instance: " << ex.what();
292 return nullptr;
293 }
294 catch (...)
295 {
296 LOG_INTERN(LogLevel::Error) << "could not create model instance";
297 return nullptr;
298 }
299
300 if (!implementation)
301 {
302 return nullptr;
303 }
304
305 component->SetImplementation(implementation);
306 component->SetParameter(std::move(parameter));
307
308 ComponentInterface* componentPtr = component.release();
309 components.push_back(componentPtr);
310
311 return componentPtr;
312 }

Here is the caller graph for this function:

bool UpdateInput | ( | ModelInterface * | implementation,
 |  | int | localLinkId,
 |  | const std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
inline

Calls the "update input" function pointer with the provided parameters and returns the result of this call.

Parameters
[in] | implementation | Model interface
[in] | localLinkId | ID of the local link from the agent configuration
[in] | data | Pointer to the signal interface
[in] | time | Current virtual simulation time
Returns
Flag if update was successful?
151 {
152 return updateInputFunc(implementation, localLinkId, data, time);
153 }

Here is the caller graph for this function:

bool UpdateOutput | ( | ModelInterface * | implementation,
 |  | int | localLinkId,
 |  | std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
inline

Calls the "update output" function pointer with the provided parameters and returns the result of this call.

Parameters
[in] | implementation | Model interface
[in] | localLinkId | ID of the local link from the agent configuration
[out] | data | Pointer to the data as signal interface
[in] | time | Current virtual simulation time
Returns
Flag if update was successful?
170 {
171 return updateOutputFunc(implementation, localLinkId, data, time);
172 }

Here is the caller graph for this function:

bool Trigger | ( | ModelInterface * | implementation,
 |  | int | time
 | ) |  |
inline

Calls the "trigger" function pointer with the provided parameters and returns the result of this call.

Parameters
[in] | implementation | Model interface
[in] | time | Timepoint at which the trigger happens?
Returns
Flag if triggering was successful?
183 {
184 return triggerFunc(implementation, time);
185 }

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: ObservationBinding Class Reference

  • SimulationSlave
  • ObservationBinding
Public Member Functions | List of all members
ObservationBinding Class Reference

Public Member Functions

ObservationModule * | Instantiate (const std::string &libraryPath, const openpass::parameter::ParameterSetLevel1 &parameter, StochasticsInterface *stochastics, WorldInterface *world, SimulationSlave::EventNetworkInterface *eventNetwork, DataStoreReadInterface *dataStore)
void | Unload ()
Deletes the library mapping and all referenced observation library objects.

Member Function Documentation

ObservationModule * Instantiate | ( | const std::string & | libraryPath,
 |  | const openpass::parameter::ParameterSetLevel1 & | parameter,
 |  | StochasticsInterface * | stochastics,
 |  | WorldInterface * | world,
 |  | SimulationSlave::EventNetworkInterface * | eventNetwork,
 |  | DataStoreReadInterface * | dataStore
 | ) |  |

Creates an observation module based on the observation instance in the run config and the observation library stored in the mapping for the library name of the observation instance

Parameters
[in] | libraryPath | Path of the library
[in] | parameters | Observation parameters
[in] | stochastics | The stochastics interface
[in] | world | The world interface
[in] | eventNetwork | EventNetwork
Returns
Observation module created from the observation instance
35 {
36 if (!library)
37 {
38 library = new (std::nothrow) ObservationLibrary(libraryPath, callbacks);
39 if (!library)
40 {
41 return nullptr;
42 }
43
44 if (!library->Init())
45 {
46 delete library;
47 return nullptr;
48 }
49 }
50
51 return library->CreateObservationModule(runtimeInformation,
52 parameter,
53 stochastics,
54 world,
55 eventNetwork,
56 dataStore);
57 }
SimulationSlave::ObservationLibrary::CreateObservationModule
ObservationModule * CreateObservationModule(const openpass::common::RuntimeInformation &runtimeInformation, const openpass::parameter::ParameterSetLevel1 &parameters, StochasticsInterface *stochastics, WorldInterface *world, EventNetworkInterface *eventNetwork, DataStoreReadInterface *const dataStore)
Definition: observationLibrary.cpp:187
SimulationSlave::ObservationLibrary::Init
bool Init()
Definition: observationLibrary.cpp:28

Here is the call graph for this function:

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: ObservationLibrary Class Reference

  • SimulationSlave
  • ObservationLibrary
Public Member Functions | List of all members
ObservationLibrary Class Reference

Public Member Functions

bool | Init ()
bool | ReleaseObservationModule (ObservationModule *observationModule)
ObservationModule * | CreateObservationModule (const openpass::common::RuntimeInformation &runtimeInformation, const openpass::parameter::ParameterSetLevel1 &parameters, StochasticsInterface *stochastics, WorldInterface *world, EventNetworkInterface *eventNetwork, DataStoreReadInterface *const dataStore)

Member Function Documentation

bool Init ( )

Inits the observation library by obtaining the function pointers to all "Interface.h" functions defined via typedef.

Returns
Flag if init was successful
29 {
30 std::string suffix = DEBUG_POSTFIX;
31 library = new (std::nothrow) QLibrary(QString::fromStdString(libraryPath+suffix));
32 if (!library)
33 {
34 return false;
35 }
36
37 if (!library->load())
38 {
39 LOG_INTERN(LogLevel::Error) << library->errorString().toStdString();
40 delete library;
41 library = nullptr;
42 return false;
43 }
44
45 getVersionFunc = (ObservationInterface_GetVersion)library->resolve(DllGetVersionId.c_str());
46 if (!getVersionFunc)
47 {
48 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL";
49 return false;
50 }
51
52 createInstanceFunc = (ObservationInterface_CreateInstanceType)library->resolve(DllCreateInstanceId.c_str());
53 if (!createInstanceFunc)
54 {
55 return false;
56 }
57
58 destroyInstanceFunc = (ObservationInterface_DestroyInstanceType)library->resolve(DllDestroyInstanceId.c_str());
59 if (!destroyInstanceFunc)
60 {
61 LOG_INTERN(LogLevel::Warning) << "observation module could not be released";
62 return false;
63 }
64
65 masterPreHookFunc = (ObservationInterface_MasterPreHook)library->resolve(DllMasterPreHookId.c_str());
66 if (!masterPreHookFunc)
67 {
68 return false;
69 }
70
71 masterPostHookFunc = (ObservationInterface_MasterPostHook)library->resolve(DllMasterPostHookId.c_str());
72 if (!masterPostHookFunc)
73 {
74 return false;
75 }
76
77 slavePreHookFunc = (ObservationInterface_SlavePreHook)library->resolve(DllSlavePreHookId.c_str());
78 if (!slavePreHookFunc)
79 {
80 return false;
81 }
82
83 slavePreRunHookFunc = (ObservationInterface_SlavePreRunHook)library->resolve(DllSlavePreRunHookId.c_str());
84 if (!slavePreRunHookFunc)
85 {
86 return false;
87 }
88
89 slaveUpdateHookFunc = (ObservationInterface_SlaveUpdateHook)library->resolve(DllSlaveUpdateHookId.c_str());
90 if (!slavePreRunHookFunc)
91 {
92 return false;
93 }
94
95 slavePostRunHookFunc = (ObservationInterface_SlavePostRunHook)library->resolve(DllSlavePostRunHookId.c_str());
96 if (!slavePostRunHookFunc)
97 {
98 return false;
99 }
100
101 slavePostHookFunc = (ObservationInterface_SlavePostHook)library->resolve(DllSlavePostHookId.c_str());
102 if (!slavePostHookFunc)
103 {
104 return false;
105 }
106
107 slaveResultFileFunc = (ObservationInterface_SlaveResultFile)library->resolve(DllSlaveResultFileId.c_str());
108 if (!slaveResultFileFunc)
109 {
110 return false;
111 }
112
113 try
114 {
115 LOG_INTERN(LogLevel::DebugCore) << "loaded observation library " << library->fileName().toStdString()
116 << ", version " << getVersionFunc();
117 }
118 catch (std::runtime_error const& ex)
119 {
120 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL: " << ex.what();
121 return false;
122 }
123 catch (...)
124 {
125 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL";
126 return false;
127 }
128
129 return true;
130 }

Here is the caller graph for this function:

bool ReleaseObservationModule ( ObservationModule * observationModule )

Releases an observation module instance by calling the destroyInstance method on the instance and removing the instance from the list of observation modules.

Returns
Flag if release was successful
153 {
154 if (!library)
155 {
156 return false;
157 }
158
159 std::list<ObservationModule*>::iterator findIter = std::find(observationModules.begin(), observationModules.end(),
160 observationModule);
161 if (observationModules.end() == findIter)
162 {
163 LOG_INTERN(LogLevel::Warning) << "observation module doesn't belong to library";
164 return false;
165 }
166
167 try
168 {
169 destroyInstanceFunc(observationModule->GetImplementation());
170 }
171 catch (std::runtime_error const& ex)
172 {
173 LOG_INTERN(LogLevel::Error) << "observation could not be released: " << ex.what();
174 return false;
175 }
176 catch (...)
177 {
178 LOG_INTERN(LogLevel::Error) << "observation could not be released";
179 return false;
180 }
181
182 observationModules.remove(observationModule);
183
184 return true;
185 }
ObservationModule * CreateObservationModule | ( | const openpass::common::RuntimeInformation & | runtimeInformation,
 |  | const openpass::parameter::ParameterSetLevel1 & | parameters,
 |  | StochasticsInterface * | stochastics,
 |  | WorldInterface * | world,
 |  | EventNetworkInterface * | eventNetwork,
 |  | DataStoreReadInterface *const | dataStore
 | ) |  |

Creates an observation module based on the observation instance in the run config and the observation library stored in the mapping for the library name of the observation instance.

Parameters
[in] | observationInstance | Observation instance from the run config
[in] | stochastics | The stochastics interface
[in] | world | The world interface
Returns
Observation module created from the observation instance
194 {
195 if (!library)
196 {
197 return nullptr;
198 }
199
200 if (!library->isLoaded())
201 {
202 if (!library->load())
203 {
204 return nullptr;
205 }
206 }
207
208 auto module_parameters = openpass::parameter::make<SimulationCommon::Parameters>(runtimeInformation, parameters);
209
210 ObservationInterface* observationInterface = nullptr;
211 try
212 {
213 observationInterface = createInstanceFunc(stochastics,
214 world,
215 eventNetwork,
216 module_parameters.get(),
217 callbacks,
218 dataStore);
219 }
220 catch (std::runtime_error const& ex)
221 {
222 LOG_INTERN(LogLevel::Error) << "could not create observation instance: " << ex.what();
223 return nullptr;
224 }
225 catch (...)
226 {
227 LOG_INTERN(LogLevel::Error) << "could not create observation instance";
228 return nullptr;
229 }
230
231 if (!observationInterface)
232 {
233 return nullptr;
234 }
235
236 ObservationModule* observationModule = new (std::nothrow) ObservationModule(
237 observationInterface,
238 std::move(module_parameters),
239 this);
240 if (!observationModule)
241 {
242 return nullptr;
243 }
244
245 observationModules.push_back(observationModule);
246 return observationModule;
247 }

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: ObservationModule Class Reference

  • SimulationSlave
  • ObservationModule
List of all members
ObservationModule Class Reference
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: ObservationNetwork Class Reference

  • SimulationSlave
  • ObservationNetwork
List of all members
ObservationNetwork Class Reference
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: RunInstantiator Class Reference

  • SimulationSlave
  • RunInstantiator
Public Member Functions | List of all members
RunInstantiator Class Reference

Public Member Functions

bool ExecuteRun ()
Executes the run by preparing the stochastics, world and observation network instances, then scheduling for each run invocation an update on the observation network, finalizing the run invocation and, after all invocations have terminated, the observation network itself. More...

Member Function Documentation

bool ExecuteRun ( )

Executes the run by preparing the stochastics, world and observation network instances, then scheduling for each run invocation an update on the observation network, finalizing the run invocation and, after all invocations have terminated, the observation network itself.

Executes the run by initializing the stochastics generator with the random seed from the run configuration, instantiating and initializing the observation network with the observation instances from the run configuration and the observation result path from the framework configuration. For each run invocation:

  • configure the world paremeters from the run configuration
  • import the scenery file and the world global objects
  • init the observation network run
  • instantiate the world's spawn point network
  • start the scheduling with the observation networks's UpdateTimeStep as update callback
  • finalize the run invocation using the result on the observation network

Finally, finalize the observation network and clear teh world.

Returns
Flag if the update was successful
39 {
40 LOG_INTERN(LogLevel::DebugCore) << std::endl
41 << "### execute run ###";
42
43 stopMutex.lock();
44 stopped = false;
45 stopMutex.unlock();
46
47 auto &scenario = *configurationContainer.GetScenario();
48 auto &scenery = *configurationContainer.GetScenery();
49 auto &slaveConfig = *configurationContainer.GetSlaveConfig();
50 auto &experimentConfig = slaveConfig.GetExperimentConfig();
51 auto &environmentConfig = slaveConfig.GetEnvironmentConfig();
52
53 if (!InitPreRun(scenario, scenery))
54 {
55 LOG_INTERN(LogLevel::DebugCore) << std::endl
56 << "### initialization failed ###";
57 return false;
58 }
59
60 dataStore.PutStatic("SceneryFile", scenario.GetSceneryPath(), true);
61 ThrowIfFalse(observationNetwork.InitAll(), "Failed to initialize ObservationNetwork");
62
63 openpass::scheduling::Scheduler scheduler(world, spawnPointNetwork, eventDetectorNetwork, manipulatorNetwork, observationNetwork);
64 bool scheduler_state{false};
65
66 for (auto invocation = 0; invocation < experimentConfig.numberOfInvocations; invocation++)
67 {
68 RunResult runResult;
69
70 LOG_INTERN(LogLevel::DebugCore) << std::endl
71 << "### run number: " << invocation << " ###";
72 auto seed = static_cast<std::uint32_t>(experimentConfig.randomSeed + invocation);
73 if (!InitRun(seed, environmentConfig, runResult))
74 {
75 LOG_INTERN(LogLevel::DebugCore) << std::endl
76 << "### run initialization failed ###";
77 break;
78 }
79
80 LOG_INTERN(LogLevel::DebugCore) << std::endl
81 << "### run started ###";
82 scheduler_state = scheduler.Run(0, scenario.GetEndTime(), runResult, eventNetwork);
83 if (scheduler_state == openpass::scheduling::Scheduler::FAILURE)
84 {
85 LOG_INTERN(LogLevel::DebugCore) << std::endl
86 << "### run aborted ###";
87 break;
88 }
89 LOG_INTERN(LogLevel::DebugCore) << std::endl
90 << "### run successful ###";
91
92 observationNetwork.FinalizeRun(runResult);
93 ClearRun();
94 }
95
96 LOG_INTERN(LogLevel::DebugCore) << std::endl
97 << "### end of all runs ###";
98 bool observations_state = observationNetwork.FinalizeAll();
99
100 return (scheduler_state && observations_state);
101 }
openpass::scheduling::Scheduler
execute all tasks for an simulation run
Definition: scheduler.h:40
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: SpawnItemParameter Class Reference

  • SimulationSlave
  • SpawnItemParameter
List of all members
SpawnItemParameter Class Reference
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: SpawnPoint Class Reference

  • SimulationSlave
  • SpawnPoint
Public Member Functions | List of all members
SpawnPoint Class Reference

Public Member Functions

virtual | ~SpawnPoint ()=default
Destructor, releases the spawn point from the stored library.
int | GetId () const
AgentFactoryInterface * | GetAgentFactory ()
SpawnPointInterface * | GetImplementation ()
SpawnPointLibrary * GetLibrary ()

Member Function Documentation

int GetId ( ) const
inline

Return the ID of the respective spawn point instance.

Returns
ID of the respective spawn point instance
59 {
60 return id;
61 }
AgentFactoryInterface* GetAgentFactory ( )
inline

Returns the agent factory.

Returns
Agent factory
69 {
70 return agentFactory;
71 }
SpawnPointInterface* GetImplementation ( )
inline

Returns the spawn point interface.

Returns
Spawn point interface
79 {
80 return implementation.get();
81 }
SpawnPointLibrary* GetLibrary ( )
inline

Returns the spawn point library.

Returns
Spawn point library
89 {
90 return library;
91 }
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: SpawnPointBinding Class Reference

  • SimulationSlave
  • SpawnPointBinding
Public Member Functions | List of all members
SpawnPointBinding Class Reference

Public Member Functions

std::unique_ptr< SpawnPoint > | Instantiate (const std::string &libraryPath, const SpawnPointDependencies &dependencies)
void | SetParameter (std::unique_ptr< ParameterInterface > parameter)
void | Unload ()
Unloads the spawn point binding by deleting all stored spawn point libraries.

Member Function Documentation

std::unique_ptr< SpawnPoint > Instantiate | ( | const std::string & | libraryPath,
 |  | const SpawnPointDependencies & | dependencies
 | ) |  |

Gets the spawn point instance library either from the already stored libraries or create a new instance (which is then also stored), then create a new spawn point using the provided parameters.

Parameters
[in] | libraryPath | Path of the spawnpoint library
[in] | deps | Spawn point dependencies
Returns
Spawn point created from the library
24 {
25 spawnPointDependencies = dependencies; // take ownership by copy
26 if (!library)
27 {
28 library = std::make_unique<SpawnPointLibrary>(libraryPath, callbacks);
29 ThrowIfFalse(library && library->Init(), "Unable to create SpawnPointLibrary: " + libraryPath);
30 }
31
32 return library->CreateSpawnPoint(spawnPointDependencies);
33 }
void SetParameter ( std::unique_ptr< ParameterInterface > parameter )
inline

Transfers ownership of parameters to this specific binding

Parameters
parameter Parameters
57 {
58 this->parameter = std::move(parameter);
59 }
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: SpawnPointLibrary Class Reference

  • SimulationSlave
  • SpawnPointLibrary
Public Member Functions | List of all members
SpawnPointLibrary Class Reference

Public Member Functions

virtual | ~SpawnPointLibrary ()
bool | Init ()
std::unique_ptr< SpawnPoint > | CreateSpawnPoint (const SpawnPointDependencies &dependencies)

Constructor & Destructor Documentation

~SpawnPointLibrary ( )
virtual

Destructor, deletes the stored library (unloads it if necessary), if the list of stored spawn points is empty.

77 {
78 if(library)
79 {
80 if(library->isLoaded())
81 {
82 LOG_INTERN(LogLevel::DebugCore) << "unloading library " << libraryPath;
83 library->unload();
84 }
85
86 delete library;
87 library = nullptr;
88 }
89 }

Member Function Documentation

bool Init ( )

Creates a QLibrary based on the path from the constructor and stores function pointer for getting the library version, creating and destroying instances and setting the spawn item (see typedefs for corresponding signatures).

Returns
Null pointer
28 {
29 std::string suffix = DEBUG_POSTFIX;
30 library = new (std::nothrow) QLibrary(QString::fromStdString(libraryPath+suffix));
31 if(!library)
32 {
33 return false;
34 }
35
36 if(!library->load())
37 {
38 LOG_INTERN(LogLevel::Error) << library->errorString().toStdString();
39 delete library;
40 library = nullptr;
41 return false;
42 }
43
44 getVersionFunc = (SpawnPointInterface_GetVersion)library->resolve(DllGetVersionId.c_str());
45 if(!getVersionFunc)
46 {
47 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL";
48 return false;
49 }
50
51 createInstanceFunc = (SpawnPointInterface_CreateInstanceType)library->resolve(DllCreateInstanceId.c_str());
52 if(!createInstanceFunc)
53 {
54 return false;
55 }
56
57 try
58 {
59 LOG_INTERN(LogLevel::DebugCore) << "loaded spawn point library " << library->fileName().toStdString()
60 << ", version " << getVersionFunc();
61 }
62 catch(std::runtime_error const &ex)
63 {
64 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL: " << ex.what();
65 return false;
66 }
67 catch(...)
68 {
69 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL";
70 return false;
71 }
72
73 return true;
74 }
std::unique_ptr< SpawnPoint > CreateSpawnPoint ( const SpawnPointDependencies & dependencies )

Make sure that the library exists and is loaded, then call the "create instance" function pointer using the parameters from the spawn point instance to get a spawn point interface, which is then used to instantiate a spawn point which is also stored in the list of spawn points.

Parameters
[in] | world | World instance
[in] | parameters | Spawn point parameters
[in] | agentFactory | Factory for the agents
[in] | agentBlueprintProvider | AgentBluePrintProvider
[in] | sampler | Sampler instance
[in] | scenario | Scenario from configs
Returns
Spawn point created
92 {
93 if(!library)
94 {
95 return nullptr;
96 }
97
98 if(!library->isLoaded())
99 {
100 if(!library->load())
101 {
102 return nullptr;
103 }
104 }
105
106 std::unique_ptr<SpawnPointInterface> spawnPoint = nullptr;
107 try
108 {
109 spawnPoint = createInstanceFunc(&dependencies, callbacks);
110 }
111 catch(std::runtime_error const &ex)
112 {
113 LOG_INTERN(LogLevel::Error) << "could not create spawn point instance: " << ex.what();
114 return nullptr;
115 }
116 catch(...)
117 {
118 LOG_INTERN(LogLevel::Error) << "could not create spawn point instance";
119 return nullptr;
120 }
121
122 if(!spawnPoint)
123 {
124 return nullptr;
125 }
126
127 return std::make_unique<SpawnPoint>(dependencies.agentFactory, std::move(spawnPoint), this);
128 }
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: SpawnPointNetwork Class Reference

  • SimulationSlave
  • SpawnPointNetwork
List of all members
SpawnPointNetwork Class Reference
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Stochastics Class Reference

  • SimulationSlave
  • Stochastics
List of all members
Stochastics Class Reference
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: StochasticsBinding Class Reference

  • SimulationSlave
  • StochasticsBinding
Public Member Functions | List of all members
StochasticsBinding Class Reference

Public Member Functions

StochasticsInterface * | Instantiate (std::string libraryPath)
void | Unload ()
Unloads the stochasticsInterface binding by deleting the library.

Member Function Documentation

StochasticsInterface * Instantiate ( std::string libraryPath )

Gets the stochastics library and stores it, then creates a new stochasticsInterface of the library.

Parameters
[in] libraryPath Path of the library
Returns
StochasticsInterface created from the library
28 {
29 if (library == nullptr)
30 {
31 try
32 {
33 library = std::make_shared<StochasticsLibrary>(libraryPath,
34 callbacks);
35 }
36 catch (const std::bad_alloc&)
37 {
38 library = nullptr;
39 return nullptr;
40 }
41
42 if (!library->Init())
43 {
44 return nullptr;
45 }
46 }
47
48 return library->CreateStochastics();
49 }
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: StochasticsLibrary Class Reference

  • SimulationSlave
  • StochasticsLibrary
Public Member Functions | List of all members
StochasticsLibrary Class Reference

Public Member Functions

virtual | ~StochasticsLibrary ()
Destructor, deletes the stored library (unloads it if necessary)
bool | Init ()
bool | ReleaseStochastics ()
StochasticsInterface * | CreateStochastics ()

Member Function Documentation

bool Init ( )

Creates a QLibrary based on the path from the constructor and stores function pointer for getting the library version, creating and destroying instances and setting the stochasticsInterface item (see typedefs for corresponding signatures).

Returns
Null pointer
22 {
23 std::string suffix = DEBUG_POSTFIX;
24 library = new (std::nothrow) QLibrary(QString::fromStdString(libraryPath+suffix));
25 if(!library)
26 {
27 return false;
28 }
29
30 if(!library->load())
31 {
32 LOG_INTERN(LogLevel::Error) << library->errorString().toStdString();
33 delete library;
34 library = nullptr;
35 return false;
36 }
37
38 getVersionFunc = (StochasticsInterface_GetVersion)library->resolve(DllGetVersionId.c_str());
39 if(!getVersionFunc)
40 {
41 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL";
42 return false;
43 }
44
45 createInstanceFunc = (StochasticsInterface_CreateInstanceType)library->resolve(DllCreateInstanceId.c_str());
46 if(!createInstanceFunc)
47 {
48 LOG_INTERN(LogLevel::Error) << "could not create instance from DLL";
49 return false;
50 }
51
52 destroyInstanceFunc = (StochasticsInterface_DestroyInstanceType)library->resolve(DllDestroyInstanceId.c_str());
53 if(!destroyInstanceFunc)
54 {
55 LOG_INTERN(LogLevel::Warning) << "stochastics could not be released";
56 return false;
57 }
58
59 try
60 {
61 LOG_INTERN(LogLevel::DebugCore) << "loaded stochastics library " << library->fileName().toStdString()
62 << ", version " << getVersionFunc();
63 }
64 catch(std::runtime_error const &ex)
65 {
66 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL: " << ex.what();
67 return false;
68 }
69 catch(...)
70 {
71 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL";
72 return false;
73 }
74
75 return true;
76 }
bool ReleaseStochastics ( )

Delete the stochasticsInterface and the library

Returns
Flag if the release was successful
99 {
100 if(!stochasticsInterface){
101 return true;
102 }
103
104 if(!library)
105 {
106 return false;
107 }
108
109 try
110 {
111 destroyInstanceFunc(stochasticsInterface);
112 }
113 catch(std::runtime_error const &ex)
114 {
115 LOG_INTERN(LogLevel::Error) << "stochastics could not be released: " << ex.what();
116 return false;
117 }
118 catch(...)
119 {
120 LOG_INTERN(LogLevel::Error) << "stochastics could not be released";
121 return false;
122 }
123
124 stochasticsInterface = nullptr;
125
126 return true;
127 }
StochasticsInterface * CreateStochastics ( )

Make sure that the library exists and is loaded, then call the "create instance" function pointer using the parameters from the stochastics instance to get a stochastics interface, which is then used to instantiate a stochasticsInterface which is stored.

Returns
stochasticsInterface created
130 {
131 if(!library)
132 {
133 return nullptr;
134 }
135
136 if(!library->isLoaded())
137 {
138 if(!library->load())
139 {
140 return nullptr;
141 }
142 }
143
144 stochasticsInterface = nullptr;
145 try
146 {
147 stochasticsInterface = createInstanceFunc(callbacks);
148 }
149 catch(std::runtime_error const &ex)
150 {
151 LOG_INTERN(LogLevel::Error) << "could not create stochastics instance: " << ex.what();
152 return nullptr;
153 }
154 catch(...)
155 {
156 LOG_INTERN(LogLevel::Error) << "could not create stochastics instance";
157 return nullptr;
158 }
159
160 if(!stochasticsInterface)
161 {
162 return nullptr;
163 }
164
165
166 return stochasticsInterface;
167 }
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: World Class Reference

  • SimulationSlave
  • World
Public Member Functions | List of all members
World Class Reference

Public Member Functions

bool | Instantiate ()
bool | isInstantiated () override

Member Function Documentation

bool Instantiate ( )
inline

Instantiate the world by creating a WorldInterface out of a world library with given world parameters

Parameters
[in] worldParameter parameters of world inclusive library path
Returns
true if successful
262 {
263 if (!worldBinding)
264 {
265 return false;
266 }
267 else
268 if (!implementation)
269 {
270 implementation = worldBinding->Instantiate();
271 if (!implementation)
272 {
273 return false;
274 }
275 }
276 return true;
277 }
SimulationSlave::WorldBinding::Instantiate
WorldInterface * Instantiate()
Definition: worldBinding.cpp:33

Here is the call graph for this function:

bool isInstantiated ( )
inlineoverride

Returns true if world was already instantiated

Returns
true if world was already instantiated
285 {
286 return implementation;
287 }
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: WorldBinding Class Reference

  • SimulationSlave
  • WorldBinding
Public Member Functions | List of all members
WorldBinding Class Reference

Public Member Functions

WorldInterface * | Instantiate ()
void | Unload ()
Unloads the stochasticsInterface binding by deleting the library.

Member Function Documentation

WorldInterface * Instantiate ( )

Gets the world instance library and stores it, then creates a new worldInterface of the library.

Returns
worldInterface created from the library
34 {
35 if(!library)
36 {
37 library = new (std::nothrow) WorldLibrary(libraryPath,
38 callbacks,
39 stochastics,
40 dataStore);
41 if(!library)
42 {
43 return nullptr;
44 }
45
46 if(!library->Init())
47 {
48 delete library;
49 library = nullptr;
50 return nullptr;
51 }
52 }
53
54 return library->CreateWorld();
55 }
SimulationSlave::WorldLibrary::Init
bool Init()
Definition: worldLibrary.cpp:19
SimulationSlave::WorldLibrary::CreateWorld
WorldInterface * CreateWorld()
Definition: worldLibrary.cpp:128

Here is the call graph for this function:

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: WorldLibrary Class Reference

  • SimulationSlave
  • WorldLibrary
Public Member Functions | List of all members
WorldLibrary Class Reference

Public Member Functions

virtual | ~WorldLibrary ()
Destructor, deletes the stored library (unloads it if necessary)
bool | Init ()
bool | ReleaseWorld ()
WorldInterface * | CreateWorld ()

Member Function Documentation

bool Init ( )

Creates a QLibrary based on the path from the constructor and stores function pointer for getting the library version, creating and destroying instances and setting the stochasticsInterface item (see typedefs for corresponding signatures).

Returns
Null pointer
20 {
21 std::string suffix = DEBUG_POSTFIX;
22 library = new (std::nothrow) QLibrary(QString::fromStdString(worldLibraryPath+suffix));
23 if(!library)
24 {
25 return false;
26 }
27
28 if(!library->load())
29 {
30 LOG_INTERN(LogLevel::Error) << library->errorString().toStdString();
31 delete library;
32 library = nullptr;
33 return false;
34 }
35
36 getVersionFunc = (WorldInterface_GetVersion)library->resolve(DllGetVersionId.c_str());
37 if(!getVersionFunc)
38 {
39 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL";
40 return false;
41 }
42
43 createInstanceFunc = (WorldInterface_CreateInstanceType)library->resolve(DllCreateInstanceId.c_str());
44 if(!createInstanceFunc)
45 {
46 LOG_INTERN(LogLevel::Error) << "could not create instance from DLL";
47 return false;
48 }
49
50 destroyInstanceFunc = (WorldInterface_DestroyInstanceType)library->resolve(DllDestroyInstanceId.c_str());
51 if(!destroyInstanceFunc)
52 {
53 LOG_INTERN(LogLevel::Warning) << "world could not be released";
54 return false;
55 }
56
57 try
58 {
59 LOG_INTERN(LogLevel::DebugCore) << "loaded world library " << library->fileName().toStdString()
60 << ", version " << getVersionFunc();
61 }
62 catch(std::runtime_error const &ex)
63 {
64 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL: " << ex.what();
65 return false;
66 }
67 catch(...)
68 {
69 LOG_INTERN(LogLevel::Error) << "could not retrieve version information from DLL";
70 return false;
71 }
72
73 return true;
74 }

Here is the caller graph for this function:

bool ReleaseWorld ( )

Delete the worldInterface and the library

Returns
Flag if the release was successful
97 {
98 if(!worldInterface)
99 {
100 return true;
101 }
102
103 if(!library)
104 {
105 return false;
106 }
107
108 try
109 {
110 destroyInstanceFunc(worldInterface);
111 }
112 catch(std::runtime_error const &ex)
113 {
114 LOG_INTERN(LogLevel::Error) << "world could not be released: " << ex.what();
115 return false;
116 }
117 catch(...)
118 {
119 LOG_INTERN(LogLevel::Error) << "world could not be released";
120 return false;
121 }
122
123 worldInterface = nullptr;
124
125 return true;
126 }

Here is the caller graph for this function:

WorldInterface * CreateWorld ( )

Make sure that the library exists and is loaded, then call the "create instance" function pointer using the parameters from the stochastics instance to get a stochastics interface, which is then used to instantiate a stochasticsInterface which is stored.

Returns
stochasticsInterface created
129 {
130 if(!library)
131 {
132 return nullptr;
133 }
134
135 if(!library->isLoaded())
136 {
137 if(!library->load())
138 {
139 return nullptr;
140 }
141 }
142
143 worldInterface = nullptr;
144 try
145 {
146 worldInterface = createInstanceFunc(callbacks, stochastics, dataStore);
147 }
148 catch(std::runtime_error const &ex)
149 {
150 LOG_INTERN(LogLevel::Error) << "could not create stochastics instance: " << ex.what();
151 return nullptr;
152 }
153 catch(...)
154 {
155 LOG_INTERN(LogLevel::Error) << "could not create stochastics instance";
156 return nullptr;
157 }
158
159 if(!worldInterface)
160 {
161 return nullptr;
162 }
163
164
165 return worldInterface;
166 }

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: AgentProfileLaneMaps Struct Reference

  • SpawnPointDefinitions
  • AgentProfileLaneMaps
List of all members
AgentProfileLaneMaps Struct Reference
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: SpawningAgentProfile Struct Reference

  • SpawnPointDefinitions
  • SpawningAgentProfile
List of all members
SpawningAgentProfile Struct Reference
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: PreRunSpawnerParameters Struct Reference

  • SpawnPointPreRunCommonDefinitions
  • PreRunSpawnerParameters
List of all members
PreRunSpawnerParameters Struct Reference
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: SpawnArea Struct Reference

  • SpawnPointPreRunCommonDefinitions
  • SpawnArea
List of all members
SpawnArea Struct Reference
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: SpawnDetails Struct Reference

  • SpawnPointRuntimeCommonDefinitions
  • SpawnDetails
List of all members
SpawnDetails Struct Reference
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: SpawnPointRuntimeCommonParameters Struct Reference

  • SpawnPointRuntimeCommonDefinitions
  • SpawnPointRuntimeCommonParameters
List of all members
SpawnPointRuntimeCommonParameters Struct Reference
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: SpawnPosition Struct Reference

  • SpawnPointRuntimeCommonDefinitions
  • SpawnPosition
List of all members
SpawnPosition Struct Reference
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: LaneIntersection< T > Struct Template Reference

  • World
  • Localization
  • LaneIntersection
List of all members
LaneIntersection< T > Struct Template Reference

This struct describes the intersection of an object with a lane. More...

Detailed Description

template<typename T = double>
struct World::Localization::LaneIntersection< T >

This struct describes the intersection of an object with a lane.

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: LocalizationElement Struct Reference

  • World
  • Localization
  • LocalizationElement
Public Attributes | List of all members
LocalizationElement Struct Reference

This struct contains all the information about a LaneGeometryElement that is needed by the Localizer. More...

Public Attributes

const CoarseBoundingBox | search_box
Box for r-tree in millimeters.
Common::Vector2d referenceVector
Vector from reference point of current joint to reference point of next joint.
double | referenceScale
Factor between the actual length of the referenceVector and the s coordinate distance.
std::optional< Common::Vector2d > | tAxisCenter
Intersection point of all t-axis or nullopt if t-axis are paralel.

Detailed Description

This struct contains all the information about a LaneGeometryElement that is needed by the Localizer.

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Localizer Class Reference

  • World
  • Localization
  • Localizer
List of all members
Localizer Class Reference
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: LocatedObject Struct Reference

  • World
  • Localization
  • LocatedObject
List of all members
LocatedObject Struct Reference

Detailed Description

This struct is the result of the localization on all geometry element using an r-tree It is than used to build the localization result

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: PointQuery Class Reference

  • World
  • Localization
  • PointQuery
Static Public Member Functions | List of all members
PointQuery Class Reference

Static Public Member Functions

static bool IsWithin (const OWL::Primitive::LaneGeometryElement &element, const Common::Vector2d &point)

Member Function Documentation

bool IsWithin | ( | const OWL::Primitive::LaneGeometryElement & | element,
 |  | const Common::Vector2d & | point
 | ) |  |
static

Check if point lies within (or at the boundaries) of a given geometry element

Parameters
[in] | element | element object
[in] | point | 2D point
Returns
true, if point is within (or at the boundaries) of the element
22 {
23 return IsWithin(element.joints.current.points.left,
24 element.joints.next.points.left,
25 element.joints.current.points.right,
26 element.joints.next.points.right,
27 point);
28 }
World::Localization::PointQuery::IsWithin
static bool IsWithin(const OWL::Primitive::LaneGeometryElement &element, const Common::Vector2d &point)
Definition: PointQuery.cpp:20
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Result Class Reference

  • World
  • Localization
  • Result
List of all members
Result Class Reference

Detailed Description

This struct contains all the information about an objects position in the world, that result from the Localization

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: WorldToRoadCoordinateConverter Class Reference

  • World
  • Localization
  • WorldToRoadCoordinateConverter
List of all members
WorldToRoadCoordinateConverter Class Reference
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: AccelerationSignal Class Reference

Public Member Functions | List of all members
AccelerationSignal Class Reference

Signal class. More...

Public Member Functions

AccelerationSignal ()
Constructor.
AccelerationSignal (AccelerationSignal &other)
Constructor.
AccelerationSignal (ComponentState componentState, double acceleration)
Constructor.
virtual operator std::string () const

Detailed Description

Signal class.

Member Function Documentation

virtual operator std::string ( ) const
inlinevirtual

Returns the content/payload of the signal as an std::string

Returns
Content/payload of the signal as an std::string
77 {
78 std::ostringstream stream;
79 stream << COMPONENTNAME;
80 return stream.str();
81 }
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: ActionSecondaryDriverTasksImplementation Class Reference

Public Member Functions | List of all members
ActionSecondaryDriverTasksImplementation Class Reference

controls secondary driver tasks More...

Public Member Functions

virtual void | UpdateInput (int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)
Update Inputs. More...
virtual void | UpdateOutput (int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
Update outputs. More...
virtual void | Trigger (int time)
Process data within component. More...

Detailed Description

controls secondary driver tasks

This class controls the brakelight, indicators and switches the driver uses during driving.

Member Function Documentation

void UpdateInput | ( | int | localLinkId,
 |  | const std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update Inputs.

Function is called by framework when another component delivers a signal over a channel to this component (scheduler calls update taks of other component).

Refer to module description for input channels and input ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentInput"
[in] | data | Referenced signal (copied by sending component)
[in] | time | Current scheduling time
23 {
24 Q_UNUSED(time);
25
26 std::stringstream log;
27 log << COMPONENTNAME << " (component " << GetComponentName() << ", agent " << GetAgent()->GetId() << ", input data for local link " << localLinkId << ": ";
28 LOG(CbkLogLevel::Debug, log.str());
29
30 if(localLinkId == 0)
31 {
32 const std::shared_ptr<SecondaryDriverTasksSignal const> signal = std::dynamic_pointer_cast<SecondaryDriverTasksSignal const>(data);
33
34 if(!signal)
35 {
36 const std::string msg = COMPONENTNAME + " invalid signaltype";
37 LOG(CbkLogLevel::Debug, msg);
38 throw std::runtime_error(msg);
39 }
40 in_IndicatorState = (IndicatorState)signal->indicatorState;
41 in_hornSwitch = signal->hornSwitch;
42 in_headLightSwitch = signal->headLightSwitch;
43 in_highBeamLightSwitch = signal->highBeamLightSwitch;
44 in_flasherSwitch = signal->flasherSwitch;
45 }
46
47 else
48 {
49 const std::string msg = COMPONENTNAME + " invalid link";
50 LOG(CbkLogLevel::Debug, msg);
51 throw std::runtime_error(msg);
52 }
53 }
SecondaryDriverTasksSignal
Definition: secondaryDriverTasksSignal.h:23
void UpdateOutput | ( | int | localLinkId,
 |  | std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update outputs.

Function is called by framework when this Component.has to deliver a signal over a channel to another component (scheduler calls update task of this component).

Refer to module description for output channels and output ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentOutput"
[out] | data | Referenced signal (copied by this component)
[in] | time | Current scheduling time
56 {
57 Q_UNUSED(localLinkId);
58 Q_UNUSED(data);
59 Q_UNUSED(time);
60
61 std::runtime_error("invalid link");
62 }
void Trigger ( int time )
virtual

Process data within component.

Function is called by framework when the scheduler calls the trigger task of this component.

Refer to module description for information about the module's task.

Parameters
[in] time Current scheduling time
65 {
66 Q_UNUSED(time);
67
68 if (GetAgent()->GetEffBrakePedal() > 0.0)
69 {
70 GetAgent()->SetBrakeLight(true);
71 GetPublisher()->Publish("BrakeLight", true);
72 }
73 else
74 {
75 GetAgent()->SetBrakeLight(false);
76 GetPublisher()->Publish("BrakeLight", false);
77 }
78
79 GetAgent()->SetIndicatorState(in_IndicatorState);
80 GetAgent()->SetHeadLight(in_headLightSwitch);
81 GetAgent()->SetHighBeamLight(in_highBeamLightSwitch);
82 GetAgent()->SetHorn(in_hornSwitch);
83 GetAgent()->SetFlasher(in_flasherSwitch);
84
85 GetPublisher()->Publish("IndicatorState", static_cast<int>(in_IndicatorState));
86
87 LightState effectiveLightState = LightState::Off;
88
89 if (in_flasherSwitch)
90 {
91 effectiveLightState = LightState::Flash;
92 }
93 else if (in_highBeamLightSwitch)
94 {
95 effectiveLightState = LightState::HighBeam;
96 }
97 else if (in_headLightSwitch)
98 {
99 effectiveLightState = LightState::LowBeam;
100 }
101
102 GetPublisher()->Publish("LightStatus", static_cast<int>(effectiveLightState));
103 }
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: ActionTransformRepository Class Reference

Static Public Member Functions | List of all members
ActionTransformRepository Class Referencefinal

Use this class as mixed set for fixed and auto registering transformations. More...

Static Public Member Functions

template<typename... Args>
static TransformResults | Transform (Args...args)
Applies an event to signal transformation on each event for the internally defined identifier. More...
static bool | Register (TransformSignature transform)
Register a new transformation. More...

Detailed Description

Use this class as mixed set for fixed and auto registering transformations.

When used as fixed resource simply call: ActionTransformRepository::Register(customTransformer);

This class can be used in conjunction with automatic compile time registration. Note that registration happens automatically without additional construction code, when the register method is used in a static assignment. This means that registering will be done if the translation unit holds an accodring statement (!)

Example: SomeClass.h -> static inline bool registered = ActionTransformRepository::Register(Transform); SomeClass.cpp is part of the translation unit

Effect: SomeOtherFile.cpp -> ActionTransformRepository::Register(customTransformer);

Member Function Documentation

static TransformResults Transform ( Args... args )
inlinestatic

Applies an event to signal transformation on each event for the internally defined identifier.

Parameters
args Relayed to the registered transformer
Returns
TransformResult holding a list of identifiers (for link id assignment), update state (does the current agent need an update), and signal (must not be nullptr)
61 {
62 TransformResults transformedActions;
63 for (const auto &transform : repository())
64 {
65 auto [identifier, agent_is_affected, signal] = transform(std::forward<Args>(args)...);
66 transformedActions.emplace_back(identifier, agent_is_affected, signal);
67 }
68 return transformedActions;
69 }
static bool Register ( TransformSignature transform )
inlinestatic

Register a new transformation.

Parameters
transform
Returns
true
75 {
76 repository().emplace_back(transform);
77 return true;
78 }
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: AcyclicResult Class Reference

List of all members
AcyclicResult Class Reference
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: AgentAdapter Class Reference

Classes | Protected Member Functions | List of all members
AgentAdapter Class Reference

The AgentAdapter class This class is a adapter for the communication between the framework and world. More...

Protected Member Functions

void | Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message)
void | Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message) const

Detailed Description

The AgentAdapter class This class is a adapter for the communication between the framework and world.

Member Function Documentation

void Log | ( | CbkLogLevel | logLevel,
 |  | const char * | file,
 |  | int | line,
 |  | const std::string & | message
 | ) |  |
inlineprotected

Provides callback to LOG() macro

Parameters
[in] | logLevel | Importance of log
[in] | file | Name of file where log is called
[in] | line | Line within file where log is called
[in] | message | Message to log
1066 {
1067 if (callbacks)
1068 {
1069 callbacks->Log(logLevel,
1070 file,
1071 line,
1072 message);
1073 }
1074 }
void Log | ( | CbkLogLevel | logLevel,
 |  | const char * | file,
 |  | int | line,
 |  | const std::string & | message
 | ) |  | const
 inlineprotected

Provides callback to LOG() macro

Parameters
[in] | logLevel | Importance of log
[in] | file | Name of file where log is called
[in] | line | Line within file where log is called
[in] | message | Message to log
424 {
425 if (callbacks)
426 {
427 callbacks->Log(logLevel,
428 file,
429 line,
430 message);
431 }
432 }
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: AgentBlueprint Class Reference

Public Member Functions | List of all members
AgentBlueprint Class Reference

This class stores all information which is required to instantiate an agent. More...

Public Member Functions

virtual void | SetVehicleComponentProfileNames (VehicleComponentProfileNames vehicleComponentProfileNames) override
Sets the vehicle component profile names. More...
virtual void | SetAgentCategory (AgentCategory agentCategory) override
Sets the agent category. More...
virtual void | SetAgentProfileName (std::string agentProfileName) override
Sets the agent profile name. More...
virtual void | SetVehicleProfileName (std::string vehicleProfileName) override
Sets the vehicle profile name. More...
virtual void | SetVehicleModelName (std::string vehicleModelName) override
Sets the vehicle model name. More...
virtual void | SetVehicleModelParameters (VehicleModelParameters vehicleModelParameters) override
Sets the vehicle model parameter. More...
virtual void | SetDriverProfileName (std::string driverProfileName) override
Sets the driver profile name. More...
virtual void | SetSpawnParameter (SpawnParameter spawnParameter) override
Sets the spawn parameter. More...
virtual void | SetSpeedGoalMin (double speedGoalMin) override
Sets the minimum speed goal. More...
virtual void | SetObjectName (std::string objectName) override
Sets the object name. More...
virtual void | AddSensor (openpass::sensors::Parameter parameters) override
Adds a sensor to the vehicle model parameters. More...
virtual AgentCategory | GetAgentCategory () const override
Returns the agent category. More...
virtual std::string | GetAgentProfileName () const override
Returns the agent profile name. More...
virtual std::string | GetVehicleProfileName () const override
Returns the vehicle profile name. More...
virtual std::string | GetVehicleModelName () const override
Returns the vehicle model name. More...
virtual std::string | GetDriverProfileName () const override
Returns the driver profile name. More...
virtual std::string | GetObjectName () const override
Returns the object name. More...
virtual VehicleModelParameters | GetVehicleModelParameters () const override
Returns the vehicle model parameter. More...
virtual openpass::sensors::Parameters | GetSensorParameters () const override
Returns the sensor parameter. More...
virtual VehicleComponentProfileNames | GetVehicleComponentProfileNames () const override
Returns the vehicle components profile names. More...
virtual SimulationSlave::AgentTypeInterface & | GetAgentType () const override
Returns the agent type as pointer. More...
virtual SpawnParameter & | GetSpawnParameter () override
Returns the spawn parameter as reference. More...
virtual const SpawnParameter & | GetSpawnParameter () const override
Returns the spawn parameter as reference. More...
virtual double | GetSpeedGoalMin () const override
Returns the minimum speed goal. More...

Detailed Description

This class stores all information which is required to instantiate an agent.

The information stored include physical spawn variable as well as components the agent consists out of.

Member Function Documentation

void SetVehicleComponentProfileNames ( VehicleComponentProfileNames vehicleComponentProfileNames )
overridevirtual

Sets the vehicle component profile names.

Parameters
[in] vehicleComponentProfileNames
20 {
21 this->vehicleComponentProfileNames = vehicleComponentProfileNames;
22 }
void SetAgentCategory ( AgentCategory agentCategory )
overridevirtual

Sets the agent category.

Parameters
[in] agentCategory
25 {
26 this->agentCategory = agentCategory;
27 }
void SetAgentProfileName ( std::string agentProfileName )
overridevirtual

Sets the agent profile name.

Parameters
[in] agentProfileName
30 {
31 this->agentProfileName = agentTypeName;
32 }
void SetVehicleProfileName ( std::string vehicleProfileName )
overridevirtual

Sets the vehicle profile name.

Parameters
[in] vehicleProfileName
35 {
36 this->vehicleProfileName = vehicleProfileName;
37 }
void SetVehicleModelName ( std::string vehicleModelName )
overridevirtual

Sets the vehicle model name.

Parameters
[in] vehicleModelName
40 {
41 this->vehicleModelName = vehicleModelName;
42 }
void SetVehicleModelParameters ( VehicleModelParameters vehicleModelParameters )
overridevirtual

Sets the vehicle model parameter.

Parameters
[in] vehicleModelParameters
45 {
46 this->vehicleModelParameters = vehicleModelParameters;
47 }
void SetDriverProfileName ( std::string driverProfileName )
overridevirtual

Sets the driver profile name.

Parameters
[in] driverProfileName
50 {
51 this->driverProfileName = driverProfileName;
52 }
void SetSpawnParameter ( SpawnParameter spawnParameter )
overridevirtual

Sets the spawn parameter.

Parameters
[in] spawnParameter
55 {
56 this->spawnParameter = spawnParameter;
57 }
void SetSpeedGoalMin ( double speedGoalMin )
overridevirtual

Sets the minimum speed goal.

Parameters
[in] speedGoalMin
60 {
61 this->speedGoalMin = speedGoalMin;
62 }
void SetObjectName ( std::string objectName )
overridevirtual

Sets the object name.

Parameters
[in] objectName
65 {
66 this->objectName = objectName;
67 }
void AddSensor ( openpass::sensors::Parameter parameters )
overridevirtual

Adds a sensor to the vehicle model parameters.

Parameters
[in] | name | Name of the sensor
[in] | parameters | Parameters of the sensor
70 {
71 sensorParameters.push_back(parameters);
72 }
AgentCategory GetAgentCategory ( ) const
overridevirtual

Returns the agent category.

Returns
agentCategory
75 {
76 return agentCategory;
77 }
std::string GetAgentProfileName ( ) const
overridevirtual

Returns the agent profile name.

Returns
agentProfileName
80 {
81 return agentProfileName;
82 }
std::string GetVehicleProfileName ( ) const
overridevirtual

Returns the vehicle profile name.

Returns
vehicleProfileName
85 {
86 return vehicleProfileName;
87 }
std::string GetVehicleModelName ( ) const
overridevirtual

Returns the vehicle model name.

Returns
vehicleModelName
90 {
91 return vehicleModelName;
92 }
std::string GetDriverProfileName ( ) const
overridevirtual

Returns the driver profile name.

Returns
driverProfileName
100 {
101 return driverProfileName;
102 }
std::string GetObjectName ( ) const
overridevirtual

Returns the object name.

Returns
objectName
95 {
96 return objectName;
97 }
VehicleModelParameters GetVehicleModelParameters ( ) const
overridevirtual

Returns the vehicle model parameter.

Returns
vehicleModelParameters
105 {
106 return vehicleModelParameters;
107 }
openpass::sensors::Parameters GetSensorParameters ( ) const
overridevirtual

Returns the sensor parameter.

Returns
sensorParameter
110 {
111 return sensorParameters;
112 }
VehicleComponentProfileNames GetVehicleComponentProfileNames ( ) const
overridevirtual

Returns the vehicle components profile names.

Returns
vehicleComponentProfileNames
115 {
116 return vehicleComponentProfileNames;
117 }
SimulationSlave::AgentTypeInterface & GetAgentType ( ) const
overridevirtual

Returns the agent type as pointer.

Returns
agentType
126 {
127 assert(agentType.get());
128 return *agentType.get();
129 }
SpawnParameter & GetSpawnParameter ( )
overridevirtual

Returns the spawn parameter as reference.

Returns
spawnParameter
132 {
133 return spawnParameter;
134 }
const SpawnParameter & GetSpawnParameter ( ) const
overridevirtual

Returns the spawn parameter as reference.

Returns
spawnParameter
137 {
138 return spawnParameter;
139 }
double GetSpeedGoalMin ( ) const
overridevirtual

Returns the minimum speed goal.

Returns
speedGoalMin
142 {
143 return speedGoalMin;
144 }
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: AgentBlueprintProvider Class Reference

Public Member Functions | List of all members
AgentBlueprintProvider Class Reference

Public Member Functions

virtual AgentBlueprint | SampleAgent (const std::string &agentProfileName, const openScenario::Parameters &assignedParameters) const override
Samples an entire agent. More...
void | GenerateDynamicAgentBlueprint (AgentBlueprintInterface &agentBlueprint, AgentBuildInformation agentBuildInformation, std::string &driverProfileName) const
Store sampled information in AgentBlueprint for dynamic AgentProfile. More...
void | GenerateStaticAgentBlueprint (AgentBlueprintInterface &agentBlueprint, std::string systemConfigName, int systemId, std::string vehicleModelName) const
Store sampled information in AgentBlueprint for static AgentProfile. More...

Member Function Documentation

AgentBlueprint SampleAgent | ( | const std::string & | agentProfileName,
 |  | const openScenario::Parameters & | assignedParameters
 | ) |  | const
 overridevirtual

Samples an entire agent.

First samples the agent profile and then depending on wether it is a static or dynamic profile samples the dynamic profiles and builds an AgentType from this or loads the AgentType from the specified SystemConfig

Parameters
agentProfileName | name of agent profile to sample
assignedParameters | parameters assigned by a catalog reference if appropriate
Returns
sampled AgentBlueprint if successful
28 {
29 AgentBlueprint agentBlueprint;
30
31 try
32 {
33 auto agentProfile = agentProfiles.at(agentProfileName);
34 if (agentProfile.type == AgentProfileType::Dynamic)
35 {
36 if(systemConfigBlueprint == nullptr)
37 {
38 LogErrorAndThrow("Couldn't instantiate AgentProfile:" + agentProfileName + ". SystemConfigBlueprint is either missing or invalid.");
39 }
40
41 SampledProfiles sampledProfiles = SampledProfiles::make(agentProfileName, stochastics, profiles)
42 .SampleDriverProfile()
43 .SampleVehicleProfile()
44 .SampleVehicleComponentProfiles();
45 DynamicParameters dynamicParameters = DynamicParameters::make(stochastics, sampledProfiles.vehicleProfileName, profiles)
46 .SampleSensorLatencies();
47 AgentBuildInformation agentBuildInformation = AgentBuildInformation::make(sampledProfiles, dynamicParameters, systemConfigBlueprint, profiles, vehicleModels)
48 .SetVehicleModelParameters(assignedParameters)
49 .GatherBasicComponents()
50 .GatherDriverComponents()
51 .GatherVehicleComponents()
52 .GatherSensors();
53 GenerateDynamicAgentBlueprint(agentBlueprint, agentBuildInformation, sampledProfiles.driverProfileName);
54
55 return agentBlueprint;
56 }
57 else
58 {
59 GenerateStaticAgentBlueprint(agentBlueprint, agentProfile.systemConfigFile, agentProfile.systemId, agentProfile.vehicleModel);
60
61 return agentBlueprint;
62 }
63 }
64 catch (const std::out_of_range& e)
65 {
66 std::string message{e.what()};
67 message += ": Tried to sample undefined AgentProfile '" + agentProfileName + "'";
68 LOG_INTERN(LogLevel::Error) << message;
69 throw std::runtime_error(message);
70 }
71 }
SampledProfiles::make
static DynamicProfileSampler make(std::string agentProfileName, StochasticsInterface &stochastics, ProfilesInterface *profiles)
Creates a new DynamicProfileSampler which can be used to build an instance of this struct...
Definition: dynamicProfileSampler.cpp:44
SampledProfiles
The SampledProfiles struct constains the name of all profiles sampled by the DynamicProfileSampler. With this the DynamicAgentTypeGenerator can generate an AgentType.
Definition: dynamicProfileSampler.h:24
DynamicParameters
Definition: dynamicParametersSampler.h:19
DynamicProfileSampler::SampleDriverProfile
DynamicProfileSampler & SampleDriverProfile()
Samples the driver profile name based on the agent profile name.
Definition: dynamicProfileSampler.cpp:14
AgentBuildInformation::make
static DynamicAgentTypeGenerator make(SampledProfiles &sampledProfiles, DynamicParameters &dynamicParameters, std::shared_ptr< SystemConfigInterface > systemConfigBlueprint, ProfilesInterface *profiles, VehicleModelsInterface *vehicleModels)
Creates a new DynamicAgentTypeGenerator which can be used to build an instance of this struct...
Definition: dynamicAgentTypeGenerator.cpp:232
DynamicProfileSampler::SampleVehicleComponentProfiles
DynamicProfileSampler & SampleVehicleComponentProfiles()
Samples all vehicle component profile names based on the vehicle profile name. Therefore SampleVehicl...
Definition: dynamicProfileSampler.cpp:28
DynamicAgentTypeGenerator::GatherVehicleComponents
DynamicAgentTypeGenerator & GatherVehicleComponents()
Creates a new ComponentType for all default vehicle components defined in DefaultComponents.basicComponents and the sampled vehicle components module and stores them in the AgentType. Also collects there output channels.
Definition: dynamicAgentTypeGenerator.cpp:69
DynamicProfileSampler::SampleVehicleProfile
DynamicProfileSampler & SampleVehicleProfile()
Samples the vehicle profile name based on the agent profile name.
Definition: dynamicProfileSampler.cpp:21
DynamicAgentTypeGenerator::GatherBasicComponents
DynamicAgentTypeGenerator & GatherBasicComponents()
Creates a new ComponentType for all basic components defined in DefaultComponents.basicComponents and stores them in the AgentType. Also collects there output channels.
Definition: dynamicAgentTypeGenerator.cpp:26
AgentBlueprint
This class stores all information which is required to instantiate an agent.
Definition: agentBlueprint.h:30
DynamicAgentTypeGenerator::SetVehicleModelParameters
DynamicAgentTypeGenerator & SetVehicleModelParameters(const openScenario::Parameters &assignedParameters)
Sets the VehicleModelParameters in the AgentBuildInformation depending on the vehicle model name...
Definition: dynamicAgentTypeGenerator.cpp:162
AgentBlueprintProvider::GenerateStaticAgentBlueprint
void GenerateStaticAgentBlueprint(AgentBlueprintInterface &agentBlueprint, std::string systemConfigName, int systemId, std::string vehicleModelName) const
Store sampled information in AgentBlueprint for static AgentProfile.
Definition: agentBlueprintProvider.cpp:86
DynamicAgentTypeGenerator::GatherSensors
DynamicAgentTypeGenerator & GatherSensors()
Creates a new ComponentType for all sensor defined by the VehicleModel and the SensorFusion module if...
Definition: dynamicAgentTypeGenerator.cpp:112
AgentBuildInformation
The AgentBuildInformation struct contains all information that the AgentBlueprintProvider needs to fi...
Definition: dynamicAgentTypeGenerator.h:68
AgentBlueprintProvider::GenerateDynamicAgentBlueprint
void GenerateDynamicAgentBlueprint(AgentBlueprintInterface &agentBlueprint, AgentBuildInformation agentBuildInformation, std::string &driverProfileName) const
Store sampled information in AgentBlueprint for dynamic AgentProfile.
Definition: agentBlueprintProvider.cpp:73
DynamicAgentTypeGenerator::GatherDriverComponents
DynamicAgentTypeGenerator & GatherDriverComponents()
Creates a new ComponentType for all default driver components defined in DefaultComponents.basicComponents, the ParametersAgents and the driver module itself and stores them in the AgentType. Also collects there output channels.
Definition: dynamicAgentTypeGenerator.cpp:36

Here is the call graph for this function:

void GenerateDynamicAgentBlueprint | ( | AgentBlueprintInterface & | agentBlueprint,
 |  | AgentBuildInformation | agentBuildInformation,
 |  | std::string & | driverProfileName
 | ) |  | const

Store sampled information in AgentBlueprint for dynamic AgentProfile.

Parameters
agentBlueprint | All results get stored in the agent blueprint
agentBuildInformation | AgentBuildInformation with information to store into the agentBlueprint
driverProfileName | name of sampled DriverProfile
74 {
75 agentBlueprint.SetVehicleModelName(agentBuildInformation.vehicleModelName);
76 agentBlueprint.SetVehicleModelParameters(agentBuildInformation.vehicleModelParameters);
77 agentBlueprint.SetDriverProfileName(driverProfileName);
78 agentBlueprint.SetAgentType(agentBuildInformation.agentType);
79
80 for(const auto& sensor : agentBuildInformation.sensorParameters)
81 {
82 agentBlueprint.AddSensor(sensor);
83 }
84 }
void GenerateStaticAgentBlueprint | ( | AgentBlueprintInterface & | agentBlueprint,
 |  | std::string | systemConfigName,
 |  | int | systemId,
 |  | std::string | vehicleModelName
 | ) |  | const

Store sampled information in AgentBlueprint for static AgentProfile.

Parameters
87 {
88 try
89 {
90 auto& systems = systemConfigs.at(systemConfigName)->GetSystems();
91 agentBlueprint.SetAgentType(systems.at(systemId));
92 }
93 catch (const std::out_of_range& e)
94 {
95 const std::string message{"No system for specified id found in imported systemConfig: " + std::string(e.what())};
96 LOG_INTERN(LogLevel::Error) << message;
97 throw std::runtime_error(message);
98 }
99
100 agentBlueprint.SetVehicleModelName(vehicleModelName);
101 auto vehicleModelParameters = vehicleModels->GetVehicleModel(vehicleModelName);
102 agentBlueprint.SetVehicleModelParameters(vehicleModelParameters);
103 }
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: AgentBuildInformation Struct Reference

Static Public Member Functions | Friends | List of all members
AgentBuildInformation Struct Reference

The AgentBuildInformation struct contains all information that the AgentBlueprintProvider needs to fill out the AgentBlueprint for a dynamic AgentProfile. More...

Static Public Member Functions

static DynamicAgentTypeGenerator make (SampledProfiles &sampledProfiles, DynamicParameters &dynamicParameters, std::shared_ptr< SystemConfigInterface > systemConfigBlueprint, ProfilesInterface *profiles, VehicleModelsInterface *vehicleModels)
Creates a new DynamicAgentTypeGenerator which can be used to build an instance of this struct. More...

Friends

class DynamicAgentTypeGenerator

Detailed Description

The AgentBuildInformation struct contains all information that the AgentBlueprintProvider needs to fill out the AgentBlueprint for a dynamic AgentProfile.

An instance of this struct is aquired by calling the static make function and then sequentially calling all building function on the returned DynamicAgentTypeGenerator

Member Function Documentation

DynamicAgentTypeGenerator make | ( | SampledProfiles & | sampledProfiles,
 |  | DynamicParameters & | dynamicParameters,
 |  | std::shared_ptr< SystemConfigInterface > | systemConfigBlueprint,
 |  | ProfilesInterface * | profiles,
 |  | VehicleModelsInterface * | vehicleModels
 | ) |  |
static

Creates a new DynamicAgentTypeGenerator which can be used to build an instance of this struct.

Parameters
sampledProfiles | Profile names sampled by the DynamicProfilesSampler
dynamicParameters | Parameters samplied by the DynamicParametersSampler
systemConfigBlueprint | Imported SystemConfigBlueprint
profiles | Imported profiles from the ProfilesCatalog
vehicleModels | Imported vehicleModels from the VehiclesModelCatalog
Returns
new instance of DynamicAgentTypeGenerator
237 {
238 return DynamicAgentTypeGenerator(sampledProfiles, dynamicParameters, systemConfigBlueprint, profiles, vehicleModels);
239 }
DynamicAgentTypeGenerator
The DynamicAgentTypeGenerator class is used to build the AgentBuildInformation struct in particular t...
Definition: dynamicAgentTypeGenerator.h:102

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: AgentCompToCompCtrlSignal Class Reference

Public Member Functions | List of all members
AgentCompToCompCtrlSignal Class Reference

Public Member Functions

AgentCompToCompCtrlSignal (const ComponentType componentType, const std::string &agentComponentName, const ComponentState currentState, const std::vector< ComponentWarningInformation > &warnings={})
Constructor.
virtual | operator std::string () const
ComponentType | GetComponentType () const
GetComponentType returns the type of the agent component sending the signal. More...
std::string | GetAgentComponentName () const
GetAgentComponentName returns the name of the agent component sending the signal. More...
ComponentState | GetCurrentState () const
GetCurrentState returns the current state of the agent component sending the signal. More...
std::vector< ComponentWarningInformation > | GetComponentWarnings () const
GetComponentWarning returns the warning from the agent component sending the signal, if one exists. More...

Member Function Documentation

virtual operator std::string ( ) const
inlinevirtual

Returns the content/payload of the signal as an std::string

Returns
Content/payload of the signal as an std::string
57 {
58 std::ostringstream stream;
59 std::string currentStateStr{"Undefined"};
60
61 stream << COMPONENTNAME << ": Intended Component States for " << agentComponentName << ": ";
62
63 for (auto stateStringAndState : ComponentStateMapping)
64 {
65 if (currentState == stateStringAndState.second)
66 {
67 currentStateStr = stateStringAndState.first;
68 }
69 }
70
71 stream << "Current State: " << currentStateStr;
72
73 return stream.str();
74 }
ComponentType GetComponentType ( ) const
inline

GetComponentType returns the type of the agent component sending the signal.

Returns
Type of the component
81 {
82 return componentType;
83 }
std::string GetAgentComponentName ( ) const
inline

GetAgentComponentName returns the name of the agent component sending the signal.

Returns
The name of the agent component sending the signal as a std::string
90 {
91 return agentComponentName;
92 }
ComponentState GetCurrentState ( ) const
inline

GetCurrentState returns the current state of the agent component sending the signal.

Returns
The current state of the agent component sending the signal as a ComponentState
99 {
100 return currentState;
101 }
std::vector<ComponentWarningInformation> GetComponentWarnings ( ) const
inline

GetComponentWarning returns the warning from the agent component sending the signal, if one exists.

Returns
The warning information from the agent component sending the signal
110 {
111 return warnings;
112 }
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: AgentNetwork Class Reference

Public Member Functions | Protected Member Functions | List of all members
AgentNetwork Class Reference

network of agents More...

Public Member Functions

bool | AddAgent (int id, const AgentInterface *agent)
AddAgent Add agent to agent network: More...
void | Clear ()
Clear Clear map of agent network.
void | QueueAgentUpdate (std::function< void(double)> func, double val)
QueueAgentUpdate This function is used to store operations on the agents in a list. At the end of each time step all queued operations will be executed. More...
void | QueueAgentRemove (const AgentInterface *agent)
QueueAgentRemove. More...
void | SyncGlobalData ()
SyncGlobalData This function is called after each timestep and executes all update function and removes all agents in the remove list.
virtual const AgentInterface * | GetAgent (int id) const
GetAgent. More...
virtual const std::map< int, const AgentInterface * > & | GetAgents () const
GetAgents Retrieves all agents. More...
bool | AddAgent (int id, AgentInterface *agent)
AddAgent Add agent to agent network: More...
void | Clear ()
Clear Clear map of agent network.
void | QueueAgentUpdate (std::function< void()> func)
QueueAgentUpdate This function is used to store operations on the agents in a list. At the end of each time step all queued operations will be executed. More...
void | QueueAgentRemove (const AgentInterface *agent)
QueueAgentRemove. More...
void | RemoveAgent (const AgentInterface *agent)
void | PublishGlobalData (Publisher publish)
Publishes the general observations about current agents. More...
void | SyncGlobalData ()
SyncGlobalData This function is called after each timestep and executes all update function and removes all agents in the remove list.
AgentInterface * | GetAgent (int id) const
GetAgent. More...
virtual const std::map< int, AgentInterface * > & | GetAgents () const
GetAgents Retrieves all agents that currently exist. More...
virtual const std::list< const AgentInterface * > & | GetRemovedAgents () const
GetRemovedAgents Retrieves agents that were removed during the simulation run. More...
virtual const std::list< const AgentInterface * > | GetRemovedAgentsInPreviousTimestep ()
GetRemovedAgents Retrieves agents that were removed during the previous timestep and clears the list. More...

Protected Member Functions

void | Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message)
void | Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message)

Detailed Description

network of agents

This class stores all agents in a network. It is used to synchronize the update of all values of all agents.

Member Function Documentation

bool AddAgent | ( | int | id,
 |  | const AgentInterface * | agent
 | ) |  |

AddAgent Add agent to agent network:

Parameters
[in] | id | id of agent
[in] | agent | agent reference
Returns
true for success
49 {
50 if(!agents.insert({id, agent}).second)
51 {
52 LOG(CbkLogLevel::Warning, "agents must be unique");
53 return false;
54 }
55
56 return true;
57 }
void QueueAgentUpdate | ( | std::function< void(double)> | func,
 |  | double | val
 | ) |  |

QueueAgentUpdate This function is used to store operations on the agents in a list. At the end of each time step all queued operations will be executed.

Parameters
[in] | func | function which is to stored to be executed later
[in] | val | value for the function
76 {
77 updateQueue.push_back(std::make_tuple(func, val));
78 }
void QueueAgentRemove ( const AgentInterface * agent )

QueueAgentRemove.

This function queues agents in a list that will be removed after a time step.

Parameters
agent agent which shall be removed
81 {
82 removeQueue.push_back(agent);
83 }
AgentInterface * GetAgent ( int id ) const
virtual

GetAgent.

Retrieves specific agent by id

Parameters
[in] id Agent id
Returns
Agent reference
60 {
61 if (agents.find(id) == agents.end())
62 {
63 return nullptr;
64 }
65
66 return agents.at(id);
67 }
const std::map< int, AgentInterface * > & GetAgents ( ) const
virtual

GetAgents Retrieves all agents.

Returns
Mapping of ids to agents
70 {
71 return agents;
72 }
void Log | ( | CbkLogLevel | logLevel,
 |  | const char * | file,
 |  | int | line,
 |  | const std::string & | message
 | ) |  |
inlineprotected

Provides callback to LOG() macro

Parameters
[in] | logLevel | Importance of log
[in] | file | Name of file where log is called
[in] | line | Line within file where log is called
[in] | message | Message to log
120 {
121 if(callbacks)
122 {
123 callbacks->Log(logLevel,
124 file,
125 line,
126 message);
127 }
128 }
bool AddAgent | ( | int | id,
 |  | AgentInterface * | agent
 | ) |  |

AddAgent Add agent to agent network:

Parameters
[in] | id | id of agent
[in] | agent | agent reference
Returns
true for success
51 {
52 if (!agents.insert({id, agent}).second)
53 {
54 LOG(CbkLogLevel::Warning, "agents must be unique");
55 return false;
56 }
57
58 return true;
59 }
void QueueAgentUpdate ( std::function< void()> func )

QueueAgentUpdate This function is used to store operations on the agents in a list. At the end of each time step all queued operations will be executed.

Parameters
[in] | func | function which is to stored to be executed later
[in] | val | value for the function
89 {
90 updateQueue.push_back(func);
91 }
void QueueAgentRemove ( const AgentInterface * agent )

QueueAgentRemove.

This function queues agents in a list that will be removed during the next syncronization.

Parameters
agent agent which shall be removed
void RemoveAgent ( const AgentInterface * agent )

Removes an agent from the network

Parameters
agent agent which shall be removed
99 {
100
101 if (1 != agents.erase(agent->GetId()))
102 {
103 LOG(CbkLogLevel::Warning, "trying to remove non-existent agent");
104 }
105
106 removedAgents.push_back(agent);
107 removedAgentsPrevious.push_back(agent);
108 agent->Unregister();
109 }
void PublishGlobalData ( Publisher publish )

Publishes the general observations about current agents.

Parameters
Publish call
112 {
113 for (const auto& [_, agent] : agents)
114 {
115 const openpass::type::EntityId agentId = agent->GetId();
116
117 publish(agentId, "XPosition", agent->GetPositionX());
118 publish(agentId, "YPosition", agent->GetPositionY());
119 publish(agentId, "VelocityEgo", agent->GetVelocity());
120 publish(agentId, "AccelerationEgo", agent->GetAcceleration());
121 publish(agentId, "YawAngle", agent->GetYaw());
122 publish(agentId, "YawRate", agent->GetYawRate());
123 publish(agentId, "SteeringAngle", agent->GetSteeringWheelAngle());
124 publish(agentId, "TotalDistanceTraveled", agent->GetDistanceTraveled());
125
126 const auto& egoAgent = agent->GetEgoAgent();
127 if (egoAgent.HasValidRoute())
128 {
129 const auto frontAgents = egoAgent.GetAgentsInRange(0, std::numeric_limits<double>::max(), 0);
130
131 publish(agentId, "PositionRoute", egoAgent.GetMainLocatePosition().roadPosition.s);
132 publish(agentId, "TCoordinate", egoAgent.GetPositionLateral());
133 publish(agentId, "Lane", egoAgent.GetMainLocatePosition().laneId);
134 publish(agentId, "Road", egoAgent.GetRoadId());
135 publish(agentId, "SecondaryLanes", agent->GetObjectPosition().touchedRoads.at(egoAgent.GetRoadId()).lanes);
136 publish(agentId, "AgentInFront", frontAgents.empty() ? -1 : frontAgents.front()->GetId());
137 }
138 else
139 {
140 publish(agentId, "PositionRoute", NAN );
141 publish(agentId, "TCoordinate", NAN );
142 publish(agentId, "Lane", NAN );
143 publish(agentId, "Road", NAN);
144 publish(agentId, "SecondaryLanes", std::vector<int>{});
145 publish(agentId, "AgentInFront", NAN);
146 }
147 }
148 }
openpass::type::NamedType
Definition: namedType.h:16
AgentInterface* GetAgent ( int id ) const

GetAgent.

Retrieves specific agent by id

Parameters
[in] id Agent id
Returns
Agent reference
virtual const std::map<int, AgentInterface *>& GetAgents ( ) const
virtual

GetAgents Retrieves all agents that currently exist.

Returns
Mapping of ids to agents
const std::list< const AgentInterface * > & GetRemovedAgents ( ) const
virtual

GetRemovedAgents Retrieves agents that were removed during the simulation run.

Returns
List of agent references
77 {
78 return removedAgents;
79 }
const std::list< const AgentInterface * > GetRemovedAgentsInPreviousTimestep ( )
virtual

GetRemovedAgents Retrieves agents that were removed during the previous timestep and clears the list.

Returns
List of agent references
82 {
83 auto agents = std::move(removedAgentsPrevious);
84 removedAgentsPrevious.clear();
85 return agents;
86 }
void Log | ( | CbkLogLevel | logLevel,
 |  | const char * | file,
 |  | int | line,
 |  | const std::string & | message
 | ) |  |
inlineprotected

Provides callback to LOG() macro

Parameters
[in] | logLevel | Importance of log
[in] | file | Name of file where log is called
[in] | line | Line within file where log is called
[in] | message | Message to log
145 {
146 if(callbacks)
147 {
148 callbacks->Log(logLevel,
149 file,
150 line,
151 message);
152 }
153 }
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: AgentSpawnItem Class Reference

List of all members
AgentSpawnItem Class Reference

Representation of an agent as defined in the run configuration. More...

Detailed Description

Representation of an agent as defined in the run configuration.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: AgentUpdaterImplementation Class Reference

Public Member Functions | List of all members
AgentUpdaterImplementation Class Reference

The class which is responsible for updating the agent in each time step. More...

Public Member Functions

virtual void | UpdateInput (int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)
Update Inputs. More...
virtual void | UpdateOutput (int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
Update outputs. More...
virtual void | Trigger (int time)
Process data within component. More...

Detailed Description

The class which is responsible for updating the agent in each time step.

Member Function Documentation

void UpdateInput | ( | int | localLinkId,
 |  | const std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update Inputs.

Function is called by framework when another component delivers a signal over a channel to this component (scheduler calls update taks of other component).

Refer to module description for input channels and input ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentInput"
[in] | data | Referenced signal (copied by sending component)
[in] | time | Current scheduling time
21 {
22 if (localLinkId == 0)
23 {
24 // from DynamicsPrioritizer
25 const std::shared_ptr<DynamicsSignal const> signal = std::dynamic_pointer_cast<DynamicsSignal const>(data);
26 if (!signal)
27 {
28 const std::string msg = COMPONENTNAME + " invalid signaltype";
29 LOG(CbkLogLevel::Debug, msg);
30 throw std::runtime_error(msg);
31 }
32
33 acceleration = signal->acceleration;
34 velocity = signal->velocity;
35 positionX = signal->positionX;
36 positionY = signal->positionY;
37 yaw = signal->yaw;
38 yawRate = signal->yawRate;
39 steeringWheelAngle = signal->steeringWheelAngle;
40 centripetalAcceleration = signal->centripetalAcceleration;
41 travelDistance = signal->travelDistance;
42 }
43 else
44 {
45 const std::string msg = COMPONENTNAME + " invalid link";
46 LOG(CbkLogLevel::Debug, msg);
47 throw std::runtime_error(msg);
48 }
49 }
DynamicsSignal
Signal class.
Definition: dynamicsSignal.h:27
void UpdateOutput | ( | int | localLinkId,
 |  | std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update outputs.

Function is called by framework when this component has to deliver a signal over a channel to another component (scheduler calls update task of this component).

Refer to module description for output channels and output ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentOutput"
[out] | data | Referenced signal (copied by this component)
[in] | time | Current scheduling time
54 {
55 }
void Trigger ( int time )
virtual

Process data within component.

Function is called by framework when the scheduler calls the trigger task of this component

Parameters
[in] time Current scheduling time
58 {
59 AgentInterface *agent = GetAgent();
60
61 agent->SetAcceleration(acceleration);
62 agent->SetVelocity(velocity);
63 agent->SetPositionX(positionX);
64 agent->SetPositionY(positionY);
65 agent->SetYaw(yaw);
66 agent->SetYawRate(yawRate);
67 agent->SetSteeringWheelAngle(steeringWheelAngle);
68 agent->SetCentripetalAcceleration(centripetalAcceleration);
69 agent->SetDistanceTraveled(agent->GetDistanceTraveled() + travelDistance);
70 }
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Algorithm_FmuWrapper Class Reference

List of all members
Algorithm_FmuWrapper Class Reference
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: AlgorithmAgentFollowingDriverModelImplementation Class Reference

Public Member Functions | List of all members
AlgorithmAgentFollowingDriverModelImplementation Class Reference

Public Member Functions

AlgorithmAgentFollowingDriverModelImplementation (std::string componentName, bool isInit, int priority, int offsetTime, int responseTime, int cycleTime, StochasticsInterface *stochastics, WorldInterface *world, const ParameterInterface *parameters, PublisherInterface *const publisher, const CallbackInterface *callbacks, AgentInterface *agent)
Constructor. More...
void | UpdateInput (int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)
Update Inputs. More...
void | UpdateOutput (int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
Update outputs. More...
void | Trigger (int time)
Process data within component. More...

Constructor & Destructor Documentation

AlgorithmAgentFollowingDriverModelImplementation | ( | std::string | componentName,
 |  | bool | isInit,
 |  | int | priority,
 |  | int | offsetTime,
 |  | int | responseTime,
 |  | int | cycleTime,
 |  | StochasticsInterface * | stochastics,
 |  | WorldInterface * | world,
 |  | const ParameterInterface * | parameters,
 |  | PublisherInterface *const | publisher,
 |  | const CallbackInterface * | callbacks,
 |  | AgentInterface * | agent
 | ) |  |

Constructor.

Parameters
[in] | componentId | Component ID
[in] | isInit | Component's init state
[in] | priority | Task priority level
[in] | offsetTime | Start time offset
[in] | responseTime | Update response time
[in] | cycleTime | Cycle time
[in] | stochastics | Stochastics instance
[in] | world | World interface
[in] | parameters | Paramaters
[in] | pubslisher | Publisher instance
[in] | callbacks | Callbacks
[in] | agent | Agent
32 :
33 SensorInterface(
34 componentName,
35 isInit,
36 priority,
37 offsetTime,
38 responseTime,
39 cycleTime,
40 stochastics,
41 world,
42 parameters,
43 publisher,
44 callbacks,
45 agent)
46 {
47 if (parameters->GetParametersDouble().count("VelocityWish") > 0)
48 {
49 vWish = parameters->GetParametersDouble().at("VelocityWish");
50 }
51 if (parameters->GetParametersDouble().count("Delta") > 0)
52 {
53 delta = parameters->GetParametersDouble().at("Delta");
54 }
55 if (parameters->GetParametersDouble().count("TGapWish") > 0)
56 {
57 tGapWish = parameters->GetParametersDouble().at("TGapWish");
58 }
59 if (parameters->GetParametersDouble().count("MinDistance") > 0)
60 {
61 minDistance = parameters->GetParametersDouble().at("MinDistance");
62 }
63 if (parameters->GetParametersDouble().count("MaxAcceleration") > 0)
64 {
65 maxAcceleration = parameters->GetParametersDouble().at("MaxAcceleration");
66 }
67 if (parameters->GetParametersDouble().count("MaxDeceleration") > 0)
68 {
69 decelerationWish = parameters->GetParametersDouble().at("MaxDeceleration");
70 }
71 }

Member Function Documentation

void UpdateInput | ( | int | localLinkId,
 |  | const std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |

Update Inputs.

Function is called by framework when another component delivers a signal over a channel to this component (scheduler calls update taks of other component).

Refer to module description for input channels and input ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentInput"
[in] | data | Referenced signal (copied by sending component)
[in] | time | Current scheduling time
77 {
78 Q_UNUSED(time);
79 if (localLinkId == 0)
80 {
81 // from SensorDriver
82 const std::shared_ptr<SensorDriverSignal const> signal = std::dynamic_pointer_cast<SensorDriverSignal const>(data);
83 if(!signal)
84 {
85 const std::string msg = COMPONENTNAME + " invalid signaltype";
86 LOG(CbkLogLevel::Debug, msg);
87 throw std::runtime_error(msg);
88 }
89
90 ownVehicleInformation = signal->GetOwnVehicleInformation();
91 geometryInformation = signal->GetGeometryInformation();
92 surroundingObjects = signal->GetSurroundingObjects();
93 }
94 else
95 {
96 const std::string msg = COMPONENTNAME + " invalid link";
97 LOG(CbkLogLevel::Debug, msg);
98 throw std::runtime_error(msg);
99 }
100 }
SensorDriverSignal
Definition: sensorDriverSignal.h:26
void UpdateOutput | ( | int | localLinkId,
 |  | std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |

Update outputs.

Function is called by framework when this Component.has to deliver a signal over a channel to another component (scheduler calls update task of this component).

Refer to module description for output channels and output ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentOutput"
[out] | data | Referenced signal (copied by this component)
[in] | time | Current scheduling time
103 {
104 Q_UNUSED(time);
105
106 if(localLinkId == 0)
107 {
108 try
109 {
110 data = std::make_shared<LateralSignal const>(
111 componentState,
112 out_laneWidth,
113 out_lateral_displacement, // lateral deviation
114 out_lateral_gain_displacement,
115 out_lateral_heading_error,
116 out_lateral_gain_heading_error,
117 out_curvature);
118 }
119 catch(const std::bad_alloc&)
120 {
121 const std::string msg = COMPONENTNAME + " could not instantiate signal";
122 LOG(CbkLogLevel::Debug, msg);
123 throw std::runtime_error(msg);
124 }
125 }
126 else if(localLinkId == 1)
127 {
128 try
129 {
130 data = std::make_shared<SecondaryDriverTasksSignal const>(
131 out_indicatorState,
132 out_hornSwitch,
133 out_headLight,
134 out_highBeamLight,
135 out_flasher,
136 componentState);
137 }
138 catch(const std::bad_alloc&)
139 {
140 const std::string msg = COMPONENTNAME + " could not instantiate signal";
141 LOG(CbkLogLevel::Debug, msg);
142 throw std::runtime_error(msg);
143 }
144 }
145 else if(localLinkId == 2)
146 {
147 try
148 {
149 data = std::make_shared<AccelerationSignal const>(componentState, out_longitudinal_acc);
150 }
151 catch(const std::bad_alloc&)
152 {
153 const std::string msg = COMPONENTNAME + " could not instantiate signal";
154 LOG(CbkLogLevel::Debug, msg);
155 throw std::runtime_error(msg);
156 }
157 }
158 else
159 {
160 const std::string msg = COMPONENTNAME + " invalid link";
161 LOG(CbkLogLevel::Debug, msg);
162 throw std::runtime_error(msg);
163 }
164 }
void Trigger ( int time )

Process data within component.

Function is called by framework when the scheduler calls the trigger task of this component

Parameters
[in] time Current scheduling time
167 {
168 Q_UNUSED(time);
169
170 out_curvature = geometryInformation.laneEgo.curvature;
171 out_laneWidth = geometryInformation.laneEgo.width;
172 out_lateral_speed = 0;
173 out_lateral_frequency = std::sqrt(lateralDynamicConstants.lateralAcceleration / geometryInformation.laneEgo.width);
174 out_lateral_damping = lateralDynamicConstants.zeta;
175 out_lateral_displacement = -ownVehicleInformation.lateralPosition;
176 out_lateral_heading_error = -ownVehicleInformation.heading;
177 out_lateral_gain_heading_error = lateralDynamicConstants.gainHeadingError;
178
179 const auto& frontAgent = surroundingObjects.objectFront;
180 double decelerationCoeff = 0.0;
181
182 if (frontAgent.exist)
183 {
184 auto vDelta = std::abs(ownVehicleInformation.absoluteVelocity - frontAgent.absoluteVelocity);
185 auto effectiveMinimumGap = minDistance + ownVehicleInformation.absoluteVelocity*tGapWish + (ownVehicleInformation.absoluteVelocity*vDelta)/2 * std::sqrt(maxAcceleration * decelerationWish);
186 decelerationCoeff = std::pow(effectiveMinimumGap/frontAgent.relativeLongitudinalDistance, 2);
187 }
188
189 auto freeRoadCoeff = 1.0 - std::pow(ownVehicleInformation.absoluteVelocity/vWish, delta);
190 auto intelligentDriverModelAcceleration = maxAcceleration * (freeRoadCoeff - decelerationCoeff);
191
192 if(intelligentDriverModelAcceleration >= 0)
193 {
194 out_longitudinal_acc = std::min(maxAcceleration, intelligentDriverModelAcceleration);
195 }
196 else
197 {
198 auto maxDeceleration = -decelerationWish;
199 out_longitudinal_acc = std::max(maxDeceleration, intelligentDriverModelAcceleration);
200 }
201 }
LateralDynamicConstants::gainHeadingError
const double gainHeadingError
aggressiveness of the controller for heading errors
Definition: followingDriverModel.h:38
LaneInformationGeometry::width
double width
Width at current s position (default if not existing)
Definition: sensor_driverDefinitions.h:63
SurroundingObjects::objectFront
ObjectInformation objectFront
Next object in the same lane.
Definition: sensor_driverDefinitions.h:94
GeometryInformation::laneEgo
LaneInformationGeometry laneEgo
Data about the lane the where the middle of the front of the agent is (i.e. mainLane) ...
Definition: sensor_driverDefinitions.h:134
OwnVehicleInformation::absoluteVelocity
double absoluteVelocity
Absolute velocity of agent.
Definition: sensor_driverDefinitions.h:72
LateralDynamicConstants::zeta
const double zeta
Typical lateral damping for a lane change [m/s].
Definition: followingDriverModel.h:36
LateralDynamicConstants::lateralAcceleration
const double lateralAcceleration
Typical acceleration for a lane change [m/s].
Definition: followingDriverModel.h:34
OwnVehicleInformation::lateralPosition
double lateralPosition
t-coordinate
Definition: sensor_driverDefinitions.h:76
LaneInformationGeometry::curvature
double curvature
Curvature at current s position (default if not existing)
Definition: sensor_driverDefinitions.h:61
OwnVehicleInformation::heading
double heading
Heading relative to lane.
Definition: sensor_driverDefinitions.h:78
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: AlgorithmAutonomousEmergencyBrakingImplementation Class Reference

Public Member Functions | List of all members
AlgorithmAutonomousEmergencyBrakingImplementation Class Reference

Public Member Functions

virtual void | UpdateInput (int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)
Update Inputs. More...
virtual void | UpdateOutput (int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
Update outputs. More...
virtual void | Trigger (int time)
Process data within component. More...

Detailed Description

Member Function Documentation

void UpdateInput | ( | int | localLinkId,
 |  | const std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update Inputs.

Function is called by framework when another component delivers a signal over a channel to this component (scheduler calls update taks of other component).

Refer to module description for input channels and input ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentInput"
[in] | data | Referenced signal (copied by sending component)
[in] | time | Current scheduling time
96 {
97 std::stringstream log;
98 log << COMPONENTNAME << " (component " << GetComponentName() << ", agent " << GetAgent()->GetId() << ", input data for local link " << localLinkId << ": ";
99 LOG(CbkLogLevel::Debug, log.str());
100
101 //from SensorFusion
102 if (localLinkId == 0)
103 {
104 const std::shared_ptr<SensorDataSignal const> signal = std::dynamic_pointer_cast<SensorDataSignal const>(data);
105 if (!signal)
106 {
107 const std::string msg = COMPONENTNAME + " invalid signaltype";
108 LOG(CbkLogLevel::Debug, msg);
109 throw std::runtime_error(msg);
110 }
111
112 auto sensorData = signal->sensorData;
113 detectedMovingObjects = SensorFusionHelperFunctions::RetrieveMovingObjectsBySensorId(sensors, sensorData);
114 detectedStationaryObjects = SensorFusionHelperFunctions::RetrieveStationaryObjectsBySensorId(sensors, sensorData);
115 }
116 else
117 {
118 const std::string msg = COMPONENTNAME + " invalid link";
119 LOG(CbkLogLevel::Debug, msg);
120 throw std::runtime_error(msg);
121 }
122 }
SensorDataSignal
Definition: sensorDataSignal.h:23
void UpdateOutput | ( | int | localLinkId,
 |  | std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update outputs.

Function is called by framework when this Component.has to deliver a signal over a channel to another component (scheduler calls update task of this component).

Refer to module description for output channels and output ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentOutput"
[out] | data | Referenced signal (copied by this component)
[in] | time | Current scheduling time
127 {
128 if (localLinkId == 0)
129 {
130 try
131 {
132 data = std::make_shared<AccelerationSignal const>(componentState, activeAcceleration);
133 }
134 catch (const std::bad_alloc &)
135 {
136 const std::string msg = COMPONENTNAME + " could not instantiate signal";
137 LOG(CbkLogLevel::Debug, msg);
138 throw std::runtime_error(msg);
139 }
140 }
141
142 else
143 {
144 const std::string msg = COMPONENTNAME + " invalid link";
145 LOG(CbkLogLevel::Debug, msg);
146 throw std::runtime_error(msg);
147 }
148 }
void Trigger ( int time )
virtual

Process data within component.

Function is called by framework when the scheduler calls the trigger task of this component.

Refer to module description for information about the module's task.

Parameters
[in] time Current scheduling time
151 {
152 const auto ttc = CalculateTTC();
153
154 if (componentState == ComponentState::Disabled && ShouldBeActivated(ttc))
155 {
156 componentState = ComponentState::Acting;
157 UpdateAcceleration();
158 }
159 else if (componentState == ComponentState::Acting && ShouldBeDeactivated(ttc))
160 {
161 componentState = ComponentState::Disabled;
162 UpdateAcceleration();
163 }
164 }
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: AlgorithmFmuWrapperImplementation Class Reference

List of all members
AlgorithmFmuWrapperImplementation Class Reference
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: AlgorithmLateralImplementation Class Reference

Public Member Functions | Protected Attributes | List of all members
AlgorithmLateralImplementation Class Reference

models the lateral controller of the driver More...

Public Member Functions

void | UpdateInput (int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)
Update Inputs. More...
void | UpdateOutput (int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
Update outputs. More...
void | Trigger (int time)
Process data within component. More...

Protected Attributes

double out_desiredSteeringWheelAngle {0}
The steering wheel angle wish of the driver in degree.

Detailed Description

models the lateral controller of the driver

This class models the lateral controller of the driver. It calculates a steering wheel angle wish of the driver that tries to diminish the lateral offset to the current or target lane in a lane change. This wish depends also on the intensity of a lane change.

Member Function Documentation

void UpdateInput | ( | int | localLinkId,
 |  | const std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |

Update Inputs.

Function is called by framework when another component delivers a signal over a channel to this component (scheduler calls update taks of other component).

Refer to module description for input channels and input ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentInput"
[in] | data | Referenced signal (copied by sending component)
[in] | time | Current scheduling time
28 {
29 Q_UNUSED(time);
30
31 if (localLinkId == 0)
32 {
33 // from PrioritizerLateralVehicleComponent or Driver
34 const std::shared_ptr<ComponentStateSignalInterface const> stateSignal = std::dynamic_pointer_cast<ComponentStateSignalInterface const>(data);
35 if(stateSignal->componentState == ComponentState::Acting)
36 {
37 isActive = true;
38 const std::shared_ptr<LateralSignal const> signal = std::dynamic_pointer_cast<LateralSignal const>(data);
39 if (!signal)
40 {
41 const std::string msg = COMPONENTNAME + " invalid signaltype";
42 LOG(CbkLogLevel::Debug, msg);
43 throw std::runtime_error(msg);
44 }
45
46 steeringController.SetLateralInput(*signal);
47 }
48 else
49 {
50 isActive = false;
51 }
52 }
53 else if (localLinkId == 100)
54 {
55 // from ParametersAgent
56 const std::shared_ptr<ParametersVehicleSignal const> signal = std::dynamic_pointer_cast<ParametersVehicleSignal const>(data);
57 if (!signal)
58 {
59 const std::string msg = COMPONENTNAME + " invalid signaltype";
60 LOG(CbkLogLevel::Debug, msg);
61 throw std::runtime_error(msg);
62 }
63
64 steeringController.SetVehicleParameter(signal->vehicleParameters.steeringRatio,
65 signal->vehicleParameters.maximumSteeringWheelAngleAmplitude,
66 signal->vehicleParameters.wheelbase);
67 }
68 else if (localLinkId == 101 || localLinkId == 102)
69 {
70 // from SensorDriver
71 const std::shared_ptr<SensorDriverSignal const> signal = std::dynamic_pointer_cast<SensorDriverSignal const>(data);
72
73 if (!signal)
74 {
75 const std::string msg = COMPONENTNAME + " invalid signaltype";
76 LOG(CbkLogLevel::Debug, msg);
77 throw std::runtime_error(msg);
78 }
79
80 steeringController.SetVelocityAndSteeringWheelAngle(signal->GetOwnVehicleInformation().absoluteVelocity,
81 signal->GetOwnVehicleInformation().steeringWheelAngle);
82 }
83 else
84 {
85 const std::string msg = COMPONENTNAME + " invalid link";
86 LOG(CbkLogLevel::Debug, msg);
87 throw std::runtime_error(msg);
88 }
89 }
LateralSignal
Definition: lateralSignal.h:24
SensorDriverSignal
Definition: sensorDriverSignal.h:26
SteeringController::SetVehicleParameter
void SetVehicleParameter(const double &steeringRatio, const double &maximumSteeringWheelAngleAmplitude, const double &wheelbase)
Sets the vehicle parameters. This should ideally only be called once.
Definition: steeringController.h:51
ParametersVehicleSignal
Provides all vehicle parameters for the driver.
Definition: parametersVehicleSignal.h:32
SteeringController::SetLateralInput
void SetLateralInput(const LateralSignal &lateralSignal)
Sets the lateral input, which contains the desired lateral position.
Definition: steeringController.h:39
SteeringController::SetVelocityAndSteeringWheelAngle
void SetVelocityAndSteeringWheelAngle(const double &velocity, const double &steeringWheelAngle)
Sets the current velocity and the current steeringwheel angle of the vehicle.
Definition: steeringController.h:66

Here is the call graph for this function:

void UpdateOutput | ( | int | localLinkId,
 |  | std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |

Update outputs.

Function is called by framework when this Component.has to deliver a signal over a channel to another component (scheduler calls update task of this component).

Refer to module description for output channels and output ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentOutput"
[out] | data | Referenced signal (copied by this component)
[in] | time | Current scheduling time
92 {
93 Q_UNUSED(time);
94
95 if(localLinkId == 0)
96 {
97 try
98 {
99 if (isActive)
100 {
101 data = std::make_shared<SteeringSignal const>(ComponentState::Acting, out_desiredSteeringWheelAngle);
102 }
103 else
104 {
105 data = std::make_shared<SteeringSignal const>(ComponentState::Disabled, 0.0);
106 }
107 }
108 catch(const std::bad_alloc&)
109 {
110 const std::string msg = COMPONENTNAME + " could not instantiate signal";
111 LOG(CbkLogLevel::Debug, msg);
112 throw std::runtime_error(msg);
113 }
114 }
115 else
116 {
117 const std::string msg = COMPONENTNAME + " invalid link";
118 LOG(CbkLogLevel::Debug, msg);
119 throw std::runtime_error(msg);
120 }
121 }
AlgorithmLateralImplementation::out_desiredSteeringWheelAngle
double out_desiredSteeringWheelAngle
The steering wheel angle wish of the driver in degree.
Definition: lateralImpl.h:169
void Trigger ( int time )

Process data within component.

Function is called by framework when the scheduler calls the trigger task of this component

Parameters
[in] time Current scheduling time
124 {
125 out_desiredSteeringWheelAngle = steeringController.CalculateSteeringAngle(time);
126 }
SteeringController::CalculateSteeringAngle
double CalculateSteeringAngle(int time)
Calculates the steering angle for a given timestep.
Definition: steeringController.cpp:23
AlgorithmLateralImplementation::out_desiredSteeringWheelAngle
double out_desiredSteeringWheelAngle
The steering wheel angle wish of the driver in degree.
Definition: lateralImpl.h:169

Here is the call graph for this function:

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: BasicDataStoreImplementation Class Reference

Protected Attributes | List of all members
BasicDataStoreImplementation Class Reference

This class implements a basic version of a data store. More...

Protected Attributes

StaticStore | staticStore
Container for DataStore static values.
CyclicStore | cyclicStore
Container for DataStore cyclic values.
AcyclicStore | acyclicStore
Container for DataStore acyclic values.
StoreIndex< openpass::type::Timestamp > | timestampIndex
Index for timestamp based cyclics access.
StoreIndex< openpass::type::EntityId > | entityIdIndex
Index for entity id based cyclics access.
StoreIndex< openpass::type::Timestamp, openpass::type::EntityId > | timeAndEntityIdIndex
Index for (time, entity) based cyclics access.

Detailed Description

This class implements a basic version of a data store.

Data is stored in a simple mapping usign the timestamp and agent id as keys, values are stored as key/value pairs.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: BoolSignal Class Reference

Public Member Functions | Public Attributes | List of all members
BoolSignal Class Reference

Primitive signal class for boolean values. More...

Public Member Functions

virtual operator std::string () const
Converts signal to string.

Public Attributes

bool value
signal content

Detailed Description

Primitive signal class for boolean values.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: BorderPoint Struct Reference

List of all members
BorderPoint Struct Reference

This lane represents the outer boundary points of a lane at one s coordinate. More...

Detailed Description

This lane represents the outer boundary points of a lane at one s coordinate.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: BorderPoints Struct Reference

Public Member Functions | List of all members
BorderPoints Struct Reference

This struct represents the boundary points of all lanes (including lane 0) at one s coordinate (i.e. one joint) More...

Public Member Functions

double GetSquaredError (const BorderPoints &begin, const BorderPoints &end) const
Returns the highest squared lateral error of this joint to the line(s) defined by two other joints.

Detailed Description

This struct represents the boundary points of all lanes (including lane 0) at one s coordinate (i.e. one joint)

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: BoundingBoxCalculation Class Reference

Public Member Functions | List of all members
BoundingBoxCalculation Class Reference

Public Member Functions

polygon_t | CalculateBoundingBox (double timeStepInSeconds, const osi3::BaseMoving &baseMoving)
Predicts the bounding box of a moving object in local coordinates. More...
polygon_t | CalculateBoundingBox (const osi3::BaseStationary &baseStationary)
Calculates the bounding box of a stationary object in local coordinates. More...
polygon_t | CalculateOwnBoundingBox (double timeStepInSeconds)
Predicts the bounding box of the own agent in local coordinates (coordinate system does not move along) More...

Detailed Description

Member Function Documentation

polygon_t CalculateBoundingBox | ( | double | timeStepInSeconds,
 |  | const osi3::BaseMoving & | baseMoving
 | ) |  |

Predicts the bounding box of a moving object in local coordinates.

Parameters
timeStepInSeconds | relative time since current timeStep
baseMoving | object to predict
Returns
predicted bounding box
24 {
25 // Initial bounding box in locale coordinate system
26 double lengthHalf = (baseMoving.dimension().length() + collisionDetectionLongitudinalBoundary) / 2.0;
27 double widthHalf = (baseMoving.dimension().width() + collisionDetectionLateralBoundary) / 2.0;
28
29 double boxPoints[][2]
30 {
31 { -lengthHalf, -widthHalf },
32 { lengthHalf, -widthHalf },
33 { lengthHalf, widthHalf },
34 { -lengthHalf, widthHalf },
35 { -lengthHalf, -widthHalf }
36 };
37
38 polygon_t box;
39 bg::append(box, boxPoints);
40
41 // inital object values at current position
42 point_t initialPosition = { baseMoving.position().x(), baseMoving.position().y()};
43 double initialVelocityX = baseMoving.velocity().x() + agent->GetVelocity(); //Velocity in BaseMoving is relative to own vehicle
44 double initialVelocityY = baseMoving.velocity().y();
45 double initialVelocity = std::hypot(initialVelocityX, initialVelocityY);
46 double initialYaw = baseMoving.orientation().yaw();
47 double yawRate = baseMoving.orientation_rate().yaw() + agent->GetYawRate();
48 double accelerationX = baseMoving.acceleration().x() + agent->GetAcceleration(); //Acceleration in BaseMoving is relative to own vehicle
49 double accelerationY = baseMoving.acceleration().y();
50 // double acceleration = std::hypot(accelerationX, accelerationY);
51 double traveledDistanceX = initialVelocityX * timeStepInSeconds + 0.5 * accelerationX * timeStepInSeconds * timeStepInSeconds;
52 double traveledDistanceY = initialVelocityY * timeStepInSeconds + 0.5 * accelerationY * timeStepInSeconds * timeStepInSeconds;
53 double traveledDistance = std::hypot(traveledDistanceX, traveledDistanceY);
54
55 // delta from initial position (object's perspective)
56 point_t deltaPosition = { 0.0, 0.0 };
57 point_t rotatedDeltaPosition;
58 double deltaYaw = 0.0;
59
60 if (yawRate != 0.0)
61 {
62 // Radius of the circle the agent is moving on radius = arc length / angle (or their deriviates)
63 double radius = initialVelocity / yawRate;
64 deltaYaw = traveledDistance / radius;
65 deltaPosition.x(radius * std::sin(deltaYaw));
66 deltaPosition.y(radius * (1 - std::cos(deltaYaw)));
67 }
68 else
69 {
70 // Just driving in a straight line
71 deltaPosition.x(traveledDistance);
72 }
73
74 // rotation in mathematical negative orientation (boost) -> invert to match
75 bt::rotate_transformer<bg::radian, double, 2, 2> totalRotation(-initialYaw - deltaYaw);
76 bt::rotate_transformer<bg::radian, double, 2, 2> initialRotation(-initialYaw);
77 bg::transform(deltaPosition, rotatedDeltaPosition, initialRotation);
78
79 bt::translate_transformer<double, 2, 2> totalTranslation(initialPosition.x() + rotatedDeltaPosition.x(),
80 initialPosition.y() + rotatedDeltaPosition.y());
81
82 // rotate, then translate
83 polygon_t boxTemp;
84 bg::transform(box, boxTemp, totalRotation);
85 bg::transform(boxTemp, box, totalTranslation);
86 return box;
87 }
polygon_t CalculateBoundingBox ( const osi3::BaseStationary & baseStationary )

Calculates the bounding box of a stationary object in local coordinates.

Parameters
baseMoving object to calculate
Returns
calculated bounding box
90 {
91 // Initial bounding box in locale coordinate system
92 double lengthHalf = (baseStationary.dimension().length() + collisionDetectionLongitudinalBoundary) / 2.0;
93 double widthHalf = (baseStationary.dimension().width() + collisionDetectionLateralBoundary) / 2.0;
94 double yaw = baseStationary.orientation().yaw();
95
96 double boxPoints[][2]
97 {
98 { -lengthHalf, -widthHalf },
99 { lengthHalf, -widthHalf },
100 { lengthHalf, widthHalf },
101 { -lengthHalf, widthHalf },
102 { -lengthHalf, -widthHalf }
103 };
104
105 polygon_t box;
106 bg::append(box, boxPoints);
107
108 bt::rotate_transformer<bg::radian, double, 2, 2> rotation(-yaw);
109 bt::translate_transformer<double, 2, 2> translation(baseStationary.position().x(),
110 baseStationary.position().y());
111
112 // rotate, then translate
113 polygon_t boxTemp;
114 bg::transform(box, boxTemp, rotation);
115 bg::transform(boxTemp, box, translation);
116 return box;
117 }
polygon_t CalculateOwnBoundingBox ( double timeStepInSeconds )

Predicts the bounding box of the own agent in local coordinates (coordinate system does not move along)

Parameters
timeStepInSeconds relative time since current timeStep
Returns
predicted bounding box
120 {
121 // Initial bounding box in locale coordinate system
122 double frontLength = agent->GetDistanceReferencePointToLeadingEdge() + collisionDetectionLongitudinalBoundary / 2.0;
123 double rearLength = agent->GetLength() - agent->GetDistanceReferencePointToLeadingEdge() + collisionDetectionLongitudinalBoundary / 2.0;
124 double widthHalf = (agent->GetWidth() + collisionDetectionLateralBoundary) / 2.0;
125
126 double boxPoints[][2]
127 {
128 { -rearLength, -widthHalf },
129 { frontLength, -widthHalf },
130 { frontLength, widthHalf },
131 { -rearLength, widthHalf },
132 { -rearLength, -widthHalf }
133 };
134
135 polygon_t box;
136 bg::append(box, boxPoints);
137
138 double initialVelocity = agent->GetVelocity();
139 double yawRate = agent->GetYawRate();
140 double acceleration = agent->GetAcceleration();
141 double traveledDistance = initialVelocity * timeStepInSeconds + 0.5 * acceleration * timeStepInSeconds * timeStepInSeconds;
142
143 point_t deltaPosition = { 0.0, 0.0 };
144 double deltaYaw = 0.0;
145
146 if (yawRate != 0.0)
147 {
148 // Radius of the circle the agent is moving on radius = arc length / angle (or their deriviates)
149 double radius = initialVelocity / yawRate;
150 deltaYaw = traveledDistance / radius;
151 deltaPosition.x(radius * std::sin(deltaYaw));
152 deltaPosition.y(radius * (1 - std::cos(deltaYaw)));
153 }
154 else
155 {
156 // Just driving in a straight line
157 deltaPosition.x(traveledDistance);
158 }
159
160 // rotation in mathematical negative orientation (boost) -> invert to match
161 bt::rotate_transformer<bg::radian, double, 2, 2> totalRotation(- deltaYaw);
162
163 bt::translate_transformer<double, 2, 2> totalTranslation(deltaPosition.x(),
164 deltaPosition.y());
165
166 // rotate, then translate
167 polygon_t boxTemp;
168 bg::transform(box, boxTemp, totalRotation);
169 bg::transform(boxTemp, box, totalTranslation);
170 return box;
171 }
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: cmplx Struct Reference

List of all members
cmplx Struct Reference
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: cmplxl Struct Reference

List of all members
cmplxl Struct Reference
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: CollisionAngles Struct Reference

Public Attributes | List of all members
CollisionAngles Struct Reference

Public Attributes

double | OYA = 0.0
opponent yaw angle
double | HCPAo = 0.0
original host collision point angle
double | OCPAo = 0.0
original opponent collision point angle
double | HCPA = 0.0
transformed host collision point angle
double | OCPA = 0.0
transformed opponent collision point angle

Detailed Description

For definitions see http://indexsmart.mirasmart.com/26esv/PDFfiles/26ESV-000177.pdf

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: CommandLineArguments Struct Reference

List of all members
CommandLineArguments Struct Reference
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: CommandLineOption Struct Reference

List of all members
CommandLineOption Struct Reference
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: CommandLineParser Class Reference

List of all members
CommandLineParser Class Reference
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: CompCtrlToAgentCompSignal Class Reference

Public Member Functions | List of all members
CompCtrlToAgentCompSignal Class Reference

The CompCtrlToAgentCompSignal class facilitates communication with the agent component, defining the max reachable state of the component as well as the states of other components connected to the

ComponentController

More...

Public Member Functions

CompCtrlToAgentCompSignal (const ComponentState &maxReachableState, const std::map< std::string, std::pair< ComponentType, ComponentState >> &vehicleComponentStates)
Constructor.
virtual | operator std::string () const
ComponentState | GetMaxReachableState () const
GetMaxReachableState returns the max reachable state of the target component as defined by the ComponentController. More...
const std::map< std::string, std::pair< ComponentType, ComponentState > > & | GetVehicleComponentStates () const
GetVehicleComponentStates returns a map linking vehicle component names to types and states. More...

Detailed Description

The CompCtrlToAgentCompSignal class facilitates communication with the agent component, defining the max reachable state of the component as well as the states of other components connected to the

ComponentController

Member Function Documentation

virtual operator std::string ( ) const
inlinevirtual

Returns the content/payload of the signal as an std::string

Returns
Content/payload of the signal as an std::string
63 {
64 return "";
65 }
ComponentState GetMaxReachableState ( ) const
inline

GetMaxReachableState returns the max reachable state of the target component as defined by the ComponentController.

Returns
The max reachable state of the target component as defined by the ComponentController as a ComponentState
72 {
73 return maxReachableState;
74 }
const std::map<std::string, std::pair<ComponentType, ComponentState> >& GetVehicleComponentStates ( ) const
inline

GetVehicleComponentStates returns a map linking vehicle component names to types and states.

Returns
A map of vehicle component names to pairs of types and states as std::map<std::string, std::pair<AdasType, ComponentState>>
81 {
82 return vehicleComponentStates;
83 }
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: CompCtrlToDriverCompSignal Class Reference

Public Member Functions | List of all members
CompCtrlToDriverCompSignal Class Reference

The CompCtrlToDriverCompSignal class facilitates communication with the driver component, allowing for warnings to be forwarded to the driver

alongside standard agent component information.

More...

Public Member Functions

CompCtrlToDriverCompSignal (const ComponentState &maxReachableState, const std::map< std::string, std::pair< ComponentType, ComponentState >> &vehicleComponentStates, const Warnings &warnings)
Constructor.
const Warnings & | GetWarnings () const
GetWarnings gets all warnings from the signal (if any exist), by component name. More...
- Public Member Functions inherited from CompCtrlToAgentCompSignal
CompCtrlToAgentCompSignal (const ComponentState &maxReachableState, const std::map< std::string, std::pair< ComponentType, ComponentState >> &vehicleComponentStates)
Constructor.
virtual | operator std::string () const
ComponentState | GetMaxReachableState () const
GetMaxReachableState returns the max reachable state of the target component as defined by the ComponentController. More...
const std::map< std::string, std::pair< ComponentType, ComponentState > > & | GetVehicleComponentStates () const
GetVehicleComponentStates returns a map linking vehicle component names to types and states. More...

Detailed Description

The CompCtrlToDriverCompSignal class facilitates communication with the driver component, allowing for warnings to be forwarded to the driver

alongside standard agent component information.

Member Function Documentation

const Warnings& GetWarnings ( ) const
inline

GetWarnings gets all warnings from the signal (if any exist), by component name.

Returns
all warnings for the driver known by the ComponentController (if any exist), by component name
125 {
126 return warnings;
127 }
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: ComponentPort Class Reference

Public Member Functions | List of all members
ComponentPort Class Reference

A Class to manage ports of a component. More...

Public Member Functions

ComponentPort (int id, std::map< int, ComponentPort * > *portMap)
virtual | ~ComponentPort ()=default
Destructor.
int | GetId ()
virtual bool | SetSignalValue (const std::shared_ptr< SignalInterface const > &data)
virtual bool | GetSignalValue (std::shared_ptr< SignalInterface const > &data)

Detailed Description

A Class to manage ports of a component.

Constructor & Destructor Documentation

ComponentPort | ( | int | id,
 |  | std::map< int, ComponentPort * > * | portMap
 | ) |  |
inline

Constructor

Parameters
[in] | id | Id of component
[in,out] | portMap | map of componentPort this componentPort shall be added
30 {
31 this->id = id;
32 portMap->emplace(std::make_pair(id, this));
33 }

Member Function Documentation

int GetId ( )
inline

Retrieve the id of the component

Returns
id of component
46 {
47 return id;
48 }
virtual bool SetSignalValue ( const std::shared_ptr< SignalInterface const > & data )
inlinevirtual

Set the Signal

Parameters
[in] signal with data
Returns
54 {
55 Q_UNUSED(data);
56 return false;
57 }
virtual bool GetSignalValue ( std::shared_ptr< SignalInterface const > & data )
inlinevirtual

Retrieve the Signal

Parameters
[out] signal with data
Returns
63 {
64 Q_UNUSED(data);
65 return false;
66 }
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: ComponentStateSignal Class Reference

Public Member Functions | List of all members
ComponentStateSignal Class Reference

Primitive signal class for componentState values. More...

Public Member Functions

virtual operator std::string () const
Converts signal to string.

Detailed Description

Primitive signal class for componentState values.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: ConditionalEventDetector Class Reference

List of all members
ConditionalEventDetector Class Reference

Additional Inherited Members

- Public Member Functions inherited from EventDetectorCommonBase
virtual int | GetCycleTime () override
Returns the cycle time. More...
- Protected Member Functions inherited from EventDetectorCommonBase
void | Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message)
Log Provides callback to LOG() macro. More...
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: ConditionCommonBase Class Reference

List of all members
ConditionCommonBase Class Reference
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: ConditionMetaInformation Struct Reference

List of all members
ConditionMetaInformation Struct Reference
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: ConfigurationFiles Struct Reference

Public Attributes | List of all members
ConfigurationFiles Struct Reference

Public Attributes

const std::string | configurationDir
directory of the configuration files
const std::string | systemConfigBlueprintFile
absolute path of the systemConfigBlueprintFile
const std::string | slaveConfigFile
absolute path of the slaveConfigFile

Detailed Description

Container for configuration file related paths

See also
Directories
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Connection Class Reference

List of all members
Connection Class Reference
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: CSVParser Class Reference

List of all members
CSVParser Class Reference
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: CustomCommandFactory Class Reference

Static Public Member Functions | List of all members
CustomCommandFactory Class Referencefinal

Use this class as static auto registering factory for custom commands. More...

Static Public Member Functions

template<typename... Args>
static ManipulatorInterface * | Create (const std::string &command, Args...args)
Create registered class from command. More...
template<typename T >
static bool | Register (const std::string command)
Register a type T for a given command. More...

Detailed Description

Use this class as static auto registering factory for custom commands.

Note that registration happens automatically without additional construction code, when the register method is used in a static assignment. This means that registering will be done if the translation unit holds an according statement (!)

Example: SomeClass.h -> static inline bool registered = CustomCommandFactory::Register("myCommand"); SomeClass.cpp is part of the translation unit

Effect: SomeOtherFile.cpp -> CustomCommandFactory::Create("myCommand", ...); // Args must be delivered

Member Function Documentation

static ManipulatorInterface* Create | ( | const std::string & | command,
 |  | Args... | args
 | ) |  |
inlinestatic

Create registered class from command.

Parameters
command | The command, used during Register
args | Arguments of the underlying class
Returns
The created instance
50 {
51 if (auto it = repository().find(command); it != repository().end())
52 {
53 return it->second(std::forward<Args>(args)...);
54 }
55 else
56 {
57 return nullptr;
58 }
59 }
static bool Register ( const std::string command )
inlinestatic

Register a type T for a given command.

Returns
True if command could been registered
65 {
66 if (auto it = repository().find(command); it == repository().end())
67 {
68 repository()[command] = [](
69 WorldInterface *world,
70 SimulationSlave::EventNetworkInterface *eventNetwork,
71 const CallbackInterface *callback,
72 const openScenario::CustomCommandAction customCommandAction,
73 const std::string &eventName) -> ManipulatorInterface * {
74 return new T(world, eventNetwork, callback, customCommandAction, eventName);
75 };
76 return true;
77 }
78 return false;
79 }
openScenario::CustomCommandAction
Definition: openScenarioDefinitions.h:279
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: CyclicResult Class Reference

List of all members
CyclicResult Class Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: DefaultComponents Struct Reference

List of all members
DefaultComponents Struct Reference

Defines the default components that all agents need. More...

Detailed Description

Defines the default components that all agents need.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: DoubleSignal Class Reference

Public Member Functions | Public Attributes | List of all members
DoubleSignal Class Reference

Primitive signal class for double values. More...

Public Member Functions

virtual operator std::string () const
Converts signal to string.

Public Attributes

double value
signal content

Detailed Description

Primitive signal class for double values.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: DynamicAgentTypeGenerator Class Reference

Public Member Functions | List of all members
DynamicAgentTypeGenerator Class Reference

The DynamicAgentTypeGenerator class is used to build the AgentBuildInformation struct in particular the AgentType. More...

Public Member Functions

operator AgentBuildInformation && ()
Returns the generated AgentBuildInformation;.
DynamicAgentTypeGenerator & GatherBasicComponents ()
Creates a new ComponentType for all basic components defined in DefaultComponents.basicComponents and stores them in the AgentType. Also collects there output channels. More...
DynamicAgentTypeGenerator & GatherDriverComponents ()
Creates a new ComponentType for all default driver components defined in DefaultComponents.basicComponents, the ParametersAgents and the driver module itself and stores them in the AgentType. Also collects there output channels. More...
DynamicAgentTypeGenerator & GatherVehicleComponents ()
Creates a new ComponentType for all default vehicle components defined in DefaultComponents.basicComponents and the sampled vehicle components module and stores them in the AgentType. Also collects there output channels. More...
DynamicAgentTypeGenerator & GatherSensors ()
Creates a new ComponentType for all sensor defined by the VehicleModel and the SensorFusion module if needed and stores them in the AgentType. Also collects there output channels. More...
DynamicAgentTypeGenerator & | SetVehicleModelParameters (const openScenario::Parameters &assignedParameters)
Sets the VehicleModelParameters in the AgentBuildInformation depending on the vehicle model name. More...
void | GatherComponent (const std::string componentName, std::shared_ptr< SimulationSlave::AgentType > agentType)
Gathers a component and adds it to the AgentType. More...
void | GatherComponentWithParameters (std::string componentName, std::shared_ptr< SimulationSlave::AgentType > agentType, const openpass::parameter::ParameterSetLevel1 &parameters)
Gathers a component with specified parameter set and adds it to the AgentType. More...
void | GatherComponentWithParameters (std::string componentName, std::shared_ptr< SimulationSlave::AgentType > agentType, const openpass::parameter::ParameterSetLevel1 &parameters, std::string componentNameInSystemConfigBlueprint, int channelOffset)
Gathers a component and adds it to the AgentType. More...
double | SampleSensorLatency (std::shared_ptr< ParameterInterface > curParameters)
Samples the latency of a sensor. More...

Detailed Description

The DynamicAgentTypeGenerator class is used to build the AgentBuildInformation struct in particular the AgentType.

This class is responsible for generating the AgentType for building an agent in the AgentFactory in the case of a dynamic AgentProfile. This AgentType contains the Driver, all Sensors and VehicleComponents that are definied by the sampled profiles as well as the defaultComponents, that are always needed. The DynamicAgentTypeGenerator also stores the information about the channels between these components in the AgentType.

Member Function Documentation

DynamicAgentTypeGenerator & GatherBasicComponents ( )

Creates a new ComponentType for all basic components defined in DefaultComponents.basicComponents and stores them in the AgentType. Also collects there output channels.

Returns
reference to itself
27 {
28 for (const auto& component : defaultComponents.basicComponentNames)
29 {
30 GatherComponent(component, agentBuildInformation.agentType);
31 }
32
33 return *this;
34 }
DynamicAgentTypeGenerator::GatherComponent
void GatherComponent(const std::string componentName, std::shared_ptr< SimulationSlave::AgentType > agentType)
Gathers a component and adds it to the AgentType.
Definition: dynamicAgentTypeGenerator.cpp:171

Here is the caller graph for this function:

DynamicAgentTypeGenerator & GatherDriverComponents ( )

Creates a new ComponentType for all default driver components defined in DefaultComponents.basicComponents, the ParametersAgents and the driver module itself and stores them in the AgentType. Also collects there output channels.

Returns
reference to itself
37 {
38 auto driverParameters = profiles->GetProfile(DRIVER, sampledProfiles.driverProfileName);
39 auto driverModule = openpass::parameter::Get<std::string>(driverParameters, "Type"); // Existence checked by ProfilesImporter
40
41 if (auto driverParameterModule = openpass::parameter::Get<std::string>(driverParameters, "ParametersModule"))
42 {
43 GatherComponentWithParameters(driverParameterModule.value(), agentBuildInformation.agentType, driverParameters);
44 GatherComponent(driverModule.value(), agentBuildInformation.agentType);
45 }
46 else
47 {
48 GatherComponentWithParameters(driverModule.value(), agentBuildInformation.agentType, driverParameters);
49 }
50
51 auto sensorDriverModule = openpass::parameter::Get<std::string>(driverParameters, "SensorDriverModule");
52 GatherComponent(sensorDriverModule.value_or("Sensor_Driver"), agentBuildInformation.agentType);
53
54 auto algorithmLateralModule = openpass::parameter::Get<std::string>(driverParameters, "AlgorithmLateralModule");
55 GatherComponent(algorithmLateralModule.value_or("AlgorithmLateralDriver"), agentBuildInformation.agentType);
56
57 auto algorithmLongitudinalModule = openpass::parameter::Get<std::string>(driverParameters, "AlgorithmLongitudinalModule");
58 GatherComponent(algorithmLongitudinalModule.value_or("AlgorithmLongitudinalDriver"), agentBuildInformation.agentType);
59
60
61 for (const auto& componentName : defaultComponents.driverComponentNames)
62 {
63 GatherComponent(componentName, agentBuildInformation.agentType);
64 }
65
66 return *this;
67 }
DynamicAgentTypeGenerator::GatherComponentWithParameters
void GatherComponentWithParameters(std::string componentName, std::shared_ptr< SimulationSlave::AgentType > agentType, const openpass::parameter::ParameterSetLevel1 &parameters)
Gathers a component with specified parameter set and adds it to the AgentType.
Definition: dynamicAgentTypeGenerator.cpp:188
DynamicAgentTypeGenerator::GatherComponent
void GatherComponent(const std::string componentName, std::shared_ptr< SimulationSlave::AgentType > agentType)
Gathers a component and adds it to the AgentType.
Definition: dynamicAgentTypeGenerator.cpp:171

Here is the caller graph for this function:

DynamicAgentTypeGenerator & GatherVehicleComponents ( )

Creates a new ComponentType for all default vehicle components defined in DefaultComponents.basicComponents and the sampled vehicle components module and stores them in the AgentType. Also collects there output channels.

Returns
reference to itself
70 {
71 std::shared_ptr<SimulationSlave::AgentType> agentType = agentBuildInformation.agentType;
72 VehicleComponentProfileNames vehicleComponentProfileNames = sampledProfiles.vehicleComponentProfileNames;
73
74 if (!vehicleComponentProfileNames.empty())
75 {
76 for (std::string componentName : defaultComponents.vehicleComponentNames)
77 {
78 GatherComponent(componentName, agentType);
79 }
80 }
81
82 for (auto vehicleComponentProfile : vehicleComponentProfileNames)
83 {
84 auto parameters = profiles->GetProfile(vehicleComponentProfile.first, vehicleComponentProfile.second);
85
86 if (profiles->GetVehicleProfiles().count(sampledProfiles.vehicleProfileName) == 0)
87 {
88 throw std::logic_error("No vehicle profile of type " + sampledProfiles.vehicleProfileName);
89 }
90 auto vehicleProfile = profiles->GetVehicleProfiles().at(sampledProfiles.vehicleProfileName);
91
92 auto matchedComponent = std::find_if(vehicleProfile.vehicleComponents.begin(),
93 vehicleProfile.vehicleComponents.end(), [vehicleComponentProfile](VehicleComponent curComponent)
94 { return curComponent.type == vehicleComponentProfile.first; });
95
96 openpass::parameter::internal::ParameterListLevel2 parameterList;
97 for (auto link : matchedComponent->sensorLinks)
98 {
99 openpass::parameter::internal::ParameterSetLevel3 param;
100 param.emplace_back("SensorId", link.sensorId);
101 param.emplace_back("InputId", link.inputId);
102 parameterList.emplace_back(param);
103 }
104 parameters.emplace_back("SensorLinks", parameterList);
105
106 GatherComponentWithParameters(vehicleComponentProfile.first, agentType, parameters);
107 }
108
109 return *this;
110 }
DynamicAgentTypeGenerator::GatherComponentWithParameters
void GatherComponentWithParameters(std::string componentName, std::shared_ptr< SimulationSlave::AgentType > agentType, const openpass::parameter::ParameterSetLevel1 &parameters)
Gathers a component with specified parameter set and adds it to the AgentType.
Definition: dynamicAgentTypeGenerator.cpp:188
DynamicAgentTypeGenerator::GatherComponent
void GatherComponent(const std::string componentName, std::shared_ptr< SimulationSlave::AgentType > agentType)
Gathers a component and adds it to the AgentType.
Definition: dynamicAgentTypeGenerator.cpp:171

Here is the caller graph for this function:

DynamicAgentTypeGenerator & GatherSensors ( )

Creates a new ComponentType for all sensor defined by the VehicleModel and the SensorFusion module if needed and stores them in the AgentType. Also collects there output channels.

Returns
reference to itself
113 {
114 const std::string sensorFusionModulName = "SensorFusion";
115
116 GatherComponent(sensorFusionModulName, agentBuildInformation.agentType);
117
118 int inputIdSensorFusion = systemConfigBlueprint->GetSystems().at(0)->GetComponents().at(sensorFusionModulName)->GetInputLinks().at(0);
119 int sensorNumber = 0;
120 auto vehicleProfile = profiles->GetVehicleProfiles().at(sampledProfiles.vehicleProfileName);
121
122 for (const auto& sensor : vehicleProfile.sensors)
123 {
124 const auto matchedSensorProfile = profiles->GetProfile(sensor.profile.type, sensor.profile.name);
125
126 // clone first from profile
127 auto sensorParam = matchedSensorProfile;
128
129 // add specific information
130 sensorParam.emplace_back("Name", sensor.profile.name);
131 sensorParam.emplace_back("Type", sensor.profile.type);
132 sensorParam.emplace_back("Id", sensor.id);
133 sensorParam.emplace_back("Longitudinal", sensor.position.longitudinal);
134 sensorParam.emplace_back("Lateral", sensor.position.lateral);
135 sensorParam.emplace_back("Height", sensor.position.height);
136 sensorParam.emplace_back("Pitch", sensor.position.pitch);
137 sensorParam.emplace_back("Yaw", sensor.position.yaw);
138 sensorParam.emplace_back("Roll", sensor.position.roll);
139 sensorParam.emplace_back("Latency", dynamicParameters.sensorLatencies.at(sensor.id));
140
141 const std::string uniqueSensorName = "Sensor_" + std::to_string(sensor.id);
142 GatherComponentWithParameters(uniqueSensorName, agentBuildInformation.agentType, sensorParam,
143 "SensorObjectDetector", sensorNumber);
144
145 if (sensorNumber > 0)
146 {
147 agentBuildInformation.agentType->GetComponents().at(sensorFusionModulName)->AddInputLink(sensorNumber,
148 inputIdSensorFusion + sensorNumber);
149 }
150
151 // clone sensor and set specific parameters
152 openpass::sensors::Parameter clonedSensor(sensor);
153 clonedSensor.profile.parameter = sensorParam;
154 agentBuildInformation.sensorParameters.push_back(clonedSensor);
155
156 sensorNumber++;
157 }
158
159 return *this;
160 }
DynamicAgentTypeGenerator::GatherComponentWithParameters
void GatherComponentWithParameters(std::string componentName, std::shared_ptr< SimulationSlave::AgentType > agentType, const openpass::parameter::ParameterSetLevel1 &parameters)
Gathers a component with specified parameter set and adds it to the AgentType.
Definition: dynamicAgentTypeGenerator.cpp:188
openpass::sensors::Parameter
Definition: sensorDefinitions.h:35
DynamicAgentTypeGenerator::GatherComponent
void GatherComponent(const std::string componentName, std::shared_ptr< SimulationSlave::AgentType > agentType)
Gathers a component and adds it to the AgentType.
Definition: dynamicAgentTypeGenerator.cpp:171

Here is the caller graph for this function:

DynamicAgentTypeGenerator & SetVehicleModelParameters ( const openScenario::Parameters & assignedParameters )

Sets the VehicleModelParameters in the AgentBuildInformation depending on the vehicle model name.

Returns
reference to itself
163 {
164 VehicleProfile vehicleProfile = profiles->GetVehicleProfiles().at(sampledProfiles.vehicleProfileName);
165 agentBuildInformation.vehicleModelName = vehicleProfile.vehicleModel;
166 agentBuildInformation.vehicleModelParameters = vehicleModels->GetVehicleModel(vehicleProfile.vehicleModel, assignedParameters);
167
168 return *this;
169 }

Here is the caller graph for this function:

void GatherComponent | ( | const std::string | componentName,
 |  | std::shared_ptr< SimulationSlave::AgentType > | agentType
 | ) |  |

Gathers a component and adds it to the AgentType.

Retrieves the information of a component from the app config and adds the ComponentType to the AgentType. The parameter set is read from the app config specified by the parameter set name

Parameters
[in] | componentName | Name of the component
[out] | agentType | AgentType where the results get stored
173 {
174 auto componentType = std::make_shared<SimulationSlave::ComponentType>(*systemConfigBlueprint->GetSystems().at(
175 0)->GetComponents().at(componentName));
176
177 for (const auto& componentOutput : componentType->GetOutputLinks())
178 {
179 agentType->AddChannel(componentOutput.second);
180 }
181
182 if (!agentType->AddComponent(componentType))
183 {
184 throw std::runtime_error("Could not add component to agentType");
185 }
186 }
void GatherComponentWithParameters | ( | std::string | componentName,
 |  | std::shared_ptr< SimulationSlave::AgentType > | agentType,
 |  | const openpass::parameter::ParameterSetLevel1 & | parameters
 | ) |  |

Gathers a component with specified parameter set and adds it to the AgentType.

Retrieves the information of a component from the app config and adds the ComponentType to the AgentType. The parameter set is explictly specified.

Parameters
[in] | componentName | Name of the component
[out] | agentType | AgentType where the results get stored
[in] | parameters | Parameters set.
191 {
192 GatherComponentWithParameters(componentName, agentType, parameters, componentName, 0);
193 }
DynamicAgentTypeGenerator::GatherComponentWithParameters
void GatherComponentWithParameters(std::string componentName, std::shared_ptr< SimulationSlave::AgentType > agentType, const openpass::parameter::ParameterSetLevel1 &parameters)
Gathers a component with specified parameter set and adds it to the AgentType.
Definition: dynamicAgentTypeGenerator.cpp:188
void GatherComponentWithParameters | ( | std::string | componentName,
 |  | std::shared_ptr< SimulationSlave::AgentType > | agentType,
 |  | const openpass::parameter::ParameterSetLevel1 & | parameters,
 |  | std::string | componentNameInSystemConfigBlueprint,
 |  | int | channelOffset
 | ) |  |

Gathers a component and adds it to the AgentType.

Retrieves the information of a component from the app config and adds the ComponentType to the AgentType. The parameter set is explictly specified.

Parameters
[in] | componentName | Name of the component
[out] | agentType | AgentType where the results get stored
[in] | parameters | Parameters set.
[in] | componentNameInSystemConfigBlueprint | Name of the component in the app config, different if different from componentName (currently used for sensors)
[in] | channelIncrease | Increase in the ids of the output channels (currently used for sensors)
198 {
199 if (systemConfigBlueprint->GetSystems().at(0)->GetComponents().count(componentNameInSystemConfigBlueprint) == 0)
200 {
201 throw std::logic_error("Could not find compenent " + componentNameInSystemConfigBlueprint + " in systemConfigBlueprint");
202 }
203
204 auto componentTypeFromSystemConfigBlueprint = systemConfigBlueprint->GetSystems().at(0)->GetComponents().at(componentNameInSystemConfigBlueprint);
205
206 auto componentType = std::make_shared<SimulationSlave::ComponentType>(componentName,
207 componentTypeFromSystemConfigBlueprint->GetInit(),
208 componentTypeFromSystemConfigBlueprint->GetPriority(),
209 componentTypeFromSystemConfigBlueprint->GetOffsetTime(),
210 componentTypeFromSystemConfigBlueprint->GetResponseTime(),
211 componentTypeFromSystemConfigBlueprint->GetCycleTime(),
212 componentTypeFromSystemConfigBlueprint->GetModelLibrary());
213
214 for (const auto& componentOutput : componentTypeFromSystemConfigBlueprint->GetOutputLinks())
215 {
216 componentType->AddOutputLink(componentOutput.first, componentOutput.second + channelOffset);
217 agentType->AddChannel(componentOutput.second + channelOffset);
218 }
219 for (const auto& componentInput : componentTypeFromSystemConfigBlueprint->GetInputLinks())
220 {
221 componentType->AddInputLink(componentInput.first, componentInput.second + channelOffset);
222 }
223
224 componentType->SetModelParameter(parameters);
225
226 if (!agentType->AddComponent(componentType))
227 {
228 throw std::runtime_error("Could not add component to agentType");
229 }
230 }
double SampleSensorLatency ( std::shared_ptr< ParameterInterface > curParameters )

Samples the latency of a sensor.

Samples the latency of a sensor based on the parameters provided.

Parameters
[in] curParameters Parameter interface containing the mean value, standard deviation, minimum and maximum
Returns
latency in s
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: DynamicParameters Struct Reference

List of all members
DynamicParameters Struct Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: DynamicParameterSampler Class Reference

List of all members
DynamicParameterSampler Class Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: DynamicProfileSampler Class Reference

Public Member Functions | List of all members
DynamicProfileSampler Class Reference

The DynamicProfileSampler class is responsible for sampling all profile names (except AgentProfile which is sampled by the AgentProfilesSampler) More...

Public Member Functions

DynamicProfileSampler & SampleDriverProfile ()
Samples the driver profile name based on the agent profile name. More...
DynamicProfileSampler & SampleVehicleProfile ()
Samples the vehicle profile name based on the agent profile name. More...
DynamicProfileSampler & SampleVehicleComponentProfiles ()
Samples all vehicle component profile names based on the vehicle profile name. Therefore SampleVehicleProfile has to be called before this method. More...
operator SampledProfiles && ()
Returns the generated SampledProfiles struct.

Detailed Description

The DynamicProfileSampler class is responsible for sampling all profile names (except AgentProfile which is sampled by the AgentProfilesSampler)

Member Function Documentation

DynamicProfileSampler & SampleDriverProfile ( )

Samples the driver profile name based on the agent profile name.

Returns
reference to itself
15 {
16 auto probabilities = profiles->GetDriverProbabilities(agentProfileName);
17 sampledProfiles.driverProfileName = Sampler::Sample(probabilities, &stochastics);
18 return *this;
19 }

Here is the caller graph for this function:

DynamicProfileSampler & SampleVehicleProfile ( )

Samples the vehicle profile name based on the agent profile name.

Returns
reference to itself
22 {
23 auto probabilities = profiles->GetVehicleProfileProbabilities(agentProfileName);
24 sampledProfiles.vehicleProfileName = Sampler::Sample(probabilities, &stochastics);
25 return *this;
26 }

Here is the caller graph for this function:

DynamicProfileSampler & SampleVehicleComponentProfiles ( )

Samples all vehicle component profile names based on the vehicle profile name. Therefore SampleVehicleProfile has to be called before this method.

Returns
reference to itself
29 {
30 VehicleProfile vehicleProfile = profiles->GetVehicleProfiles().at(sampledProfiles.vehicleProfileName);
31 for (VehicleComponent vehicleComponentInProfile : vehicleProfile.vehicleComponents)
32 {
33 std::string vehicleComponentName = Sampler::Sample(vehicleComponentInProfile.componentProfiles, &stochastics);
34 if (vehicleComponentName != "")
35 {
36 sampledProfiles.vehicleComponentProfileNames.insert(std::make_pair<std::string&, std::string&>
37 (vehicleComponentInProfile.type,
38 vehicleComponentName));
39 }
40 }
41 return *this;
42 }

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: DynamicsCollisionImplementation Class Reference

Public Member Functions | List of all members
DynamicsCollisionImplementation Class Reference

Public Member Functions

virtual void | UpdateInput (int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)
Update Inputs. More...
virtual void | UpdateOutput (int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
Update outputs. More...
virtual void | Trigger (int time)
Process data within component. More...

Member Function Documentation

void UpdateInput | ( | int | localLinkId,
 |  | const std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update Inputs.

Function is called by framework when another component delivers a signal over a channel to this component (scheduler calls update taks of other component).

Refer to module description for input channels and input ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentInput"
[in] | data | Referenced signal (copied by sending component)
[in] | time | Current scheduling time
53 {
54 Q_UNUSED(localLinkId);
55 Q_UNUSED(data);
56 Q_UNUSED(time);
57 }
void UpdateOutput | ( | int | localLinkId,
 |  | std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update outputs.

Function is called by framework when this component has to deliver a signal over a channel to another component (scheduler calls update task of this component).

Refer to module description for output channels and output ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentOutput"
[out] | data | Referenced signal (copied by this component)
[in] | time | Current scheduling time
60 {
61 Q_UNUSED(time);
62
63 if(localLinkId == 0)
64 {
65 try
66 {
67 data = std::make_shared<DynamicsSignal const>(dynamicsSignal);
68 }
69 catch(const std::bad_alloc&)
70 {
71 const std::string msg = COMPONENTNAME + " could not instantiate signal";
72 LOG(CbkLogLevel::Debug, msg);
73 throw std::runtime_error(msg);
74 }
75 }
76 else
77 {
78 const std::string msg = COMPONENTNAME + " invalid link";
79 LOG(CbkLogLevel::Debug, msg);
80 throw std::runtime_error(msg);
81 }
82 }
void Trigger ( int time )
virtual

Process data within component.

Function is called by framework when the scheduler calls the trigger task of this component

Parameters
[in] time Current scheduling time
85 {
86 Q_UNUSED(time);
87
88 if (GetAgent()->GetCollisionPartners().size() > numberOfCollisionPartners)
89 {
90 numberOfCollisionPartners = GetAgent()->GetCollisionPartners().size();
91 isActive = true;
92 dynamicsSignal.componentState = ComponentState::Acting;
93 bool collisionWithFixedObject = false;
94
95 //Calculate new velocity by inelastic collision
96 const double &agentWeight = GetAgent()->GetVehicleModelParameters().weight;
97 double sumOfWeights = agentWeight;
98 double sumOfImpulsesX = GetAgent()->GetVelocity() * agentWeight * std::cos(GetAgent()->GetYaw());
99 double sumOfImpulsesY = GetAgent()->GetVelocity() * agentWeight * std::sin(GetAgent()->GetYaw());
100
101 auto collisionPartners = GetAgent()->GetCollisionPartners();
102 for (const auto &partner : collisionPartners)
103 {
104 if (partner.first == ObjectTypeOSI::Object)
105 {
106 collisionWithFixedObject = true;
107 break;
108 }
109 const AgentInterface* partnerAgent = GetWorld()->GetAgent(partner.second);
110 if (partnerAgent != nullptr)
111 {
112 const double &partnerAgentWeight = partnerAgent->GetVehicleModelParameters().weight;
113
114 sumOfWeights += partnerAgentWeight;
115 sumOfImpulsesX += partnerAgent->GetVelocity() * partnerAgentWeight * std::cos(partnerAgent->GetYaw());
116 sumOfImpulsesY += partnerAgent->GetVelocity() * partnerAgentWeight * std::sin(partnerAgent->GetYaw());
117 }
118 }
119
120 if (collisionWithFixedObject)
121 {
122 velocity = 0.0;
123 }
124 else
125 {
126 double velocityX = sumOfImpulsesX / sumOfWeights;
127 double velocityY = sumOfImpulsesY / sumOfWeights;
128 velocity = std::hypot(velocityX, velocityY);
129 if (velocityY > 0.0)
130 {
131 movingDirection = std::acos(velocityX / velocity);
132 }
133 else if (velocity != 0.0)
134 {
135 movingDirection = -std::acos(velocityX / velocity);
136 }
137 else
138 {
139 movingDirection = 0.0;
140 }
141 }
142 dynamicsSignal.yaw = GetAgent()->GetYaw();
143 dynamicsSignal.yawRate = GetAgent()->GetYawRate();
144 }
145
146 if (isActive)
147 {
148 const double deceleration = 10.0;
149 velocity -= deceleration * GetCycleTime() * 0.001;
150
151 if (velocity < 0.0)
152 {
153 isActive = false;
154 }
155
156 velocity = std::max(0.0, velocity);
157 // change of path coordinate since last time step [m]
158 double ds = velocity * static_cast<double>(GetCycleTime()) * 0.001;
159 // change of inertial x-position due to ds and yaw [m]
160 double dx = ds * std::cos(movingDirection);
161 // change of inertial y-position due to ds and yaw [m]
162 double dy = ds * std::sin(movingDirection);
163 // new inertial x-position [m]
164 double x = GetAgent()->GetPositionX() + dx;
165 // new inertial y-position [m]
166 double y = GetAgent()->GetPositionY() + dy;
167
168 dynamicsSignal.velocity = velocity;
169 dynamicsSignal.acceleration = isActive ? -deceleration : 0.0;
170 dynamicsSignal.positionX = x;
171 dynamicsSignal.positionY = y;
172 dynamicsSignal.travelDistance = ds;
173 }
174 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: DynamicsSignal Class Reference

Public Member Functions | List of all members
DynamicsSignal Class Reference

Signal class. More...

Public Member Functions

virtual operator std::string () const

Detailed Description

Signal class.

Member Function Documentation

virtual operator std::string ( ) const
inlinevirtual

Returns the content/payload of the signal as an std::string

Returns
Content/payload of the signal as an std::string
70 {
71 std::ostringstream stream;
72 stream << COMPONENTNAME << std::endl;
73 stream << "acceleration: " << acceleration << std::endl;
74 stream << "velocity: " << velocity << std::endl;
75 stream << "positionX: " << positionX << std::endl;
76 stream << "positionY: " << positionY << std::endl;
77 stream << "yaw: " << yaw << std::endl;
78 stream << "yawRate: " << yawRate << std::endl;
79 stream << "steeringWheelAngle: " << steeringWheelAngle << std::endl;
80 stream << "centripetalAcceleration: " << centripetalAcceleration << std::endl;
81 stream << "travelDistance: " << travelDistance << std::endl;
82 return stream.str();
83 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: EgoAgent Class Reference

List of all members
EgoAgent Class Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: externalParameter< ValueType > Class Template Reference

Public Member Functions | List of all members
externalParameter< ValueType > Class Template Reference

Public Member Functions

externalParameter (int id, std::map< int, externalParameter< ValueType > * > *externalParameterMap)
virtual | ~externalParameter ()=default
Destructor.
int | GetId ()
ValueType | GetValue ()
void | SetValue (ValueType value)

Detailed Description

template<typename ValueType>
class externalParameter< ValueType >

A Template Class to manage external parameter of component

Constructor & Destructor Documentation

externalParameter | ( | int | id,
 |  | std::map< int, externalParameter< ValueType > * > * | externalParameterMap
 | ) |  |
inline

Constructor

Parameters
[in] | id | Id of externalParameter
[in,out] | portMap | map of externalParameter this externalParameter shall be added
190 :
191 id(id)
192 {
193 externalParameterMap->emplace(std::make_pair(id, this));
194 }

Member Function Documentation

int GetId ( )
inline

Retrieve the id of the parameter

Returns
id
207 {
208 return id;
209 }
ValueType GetValue ( )
inline

Retrieve the value of the parameter

Returns
value
214 {
215 return value;
216 }
void SetValue ( ValueType value )
inline

Set the value of the parameter

Parameters
[in] value to be set
221 {
222 this->value = value;
223 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: FakeLaneManager Struct Reference

List of all members
FakeLaneManager Struct Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: fmi1_csv_input_t Struct Reference

Public Attributes | List of all members
fmi1_csv_input_t Struct Reference

Public Attributes

fmi1_import_t * | fmu
double | interpTime
size_t | discreteIndex
size_t | interpIndex1
size_t | interpIndex2
double | interpLambda
fmi1_real_t * | interpData
fmi1_real_t * | interpContinuousData
size_t | eventIndex1
size_t | eventIndex2

Detailed Description

Structure incapsulating information on input data

Member Data Documentation

fmi1_import_t* fmu

FMI1 main struct

double interpTime

interpolation data for doubles.

size_t discreteIndex

time instance where the coeff is calculated

size_t interpIndex1

current data element index for discrete inputs

size_t interpIndex2

first data element index for interpolation

double interpLambda

second data element index for interpolation

fmi1_real_t* interpData

interpolation coefficient

fmi1_real_t* interpContinuousData

interpolated inputs

size_t eventIndex1

interpolated continuous inputs

size_t eventIndex2

first data element index for interpolation

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: fmi2_csv_input_t Struct Reference

Public Attributes | List of all members
fmi2_csv_input_t Struct Reference

Public Attributes

fmi2_import_t * | fmu
double | interpTime
size_t | discreteIndex
size_t | interpIndex1
size_t | interpIndex2
double | interpLambda
fmi2_real_t * | interpData
size_t | eventIndex1
size_t | eventIndex2

Detailed Description

Structure incapsulating information on input data

Member Data Documentation

fmi2_import_t* fmu

FMI2 main struct

double interpTime

interpolation data for doubles.

size_t discreteIndex

time instance where the coeff is calculated

size_t interpIndex1

current data element index for discrete inputs

size_t interpIndex2

first data element index for interpolation

double interpLambda

second data element index for interpolation

fmi2_real_t* interpData

interpolation coefficient

size_t eventIndex1

interpolated inputs

size_t eventIndex2

first data element index for interpolation

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: fmu_check_data_t Struct Reference

Public Attributes | List of all members
fmu_check_data_t Struct Reference

Public Attributes

const char * | FMUPath
char * | tmpPath
char | unzipPathBuf [10000]
const char * | temp_dir
unsigned int | num_warnings
unsigned int | num_errors
unsigned int | num_fatal
unsigned int | num_fmu_messages
int | printed_instance_name_error_flg
jm_callbacks | callbacks
fmi_import_context_t * | context
const char * | modelIdentifierFMI1
double | stopTime
double | stepSize
int | stepSizeSetByUser
size_t | maxOutputPts
int | maxOutputPtsSetByUser
double | nextOutputTime
double | nextOutputStep
char | CSV_separator
int | write_output_files
Flag activates generation of Output files when 1. More...
const char * | output_file_name
FILE * | out_file
int | write_log_files
Flag activates generation of log files when 1.
const char * | log_file_name
FILE * | log_file
char * | inputFileName
int | do_simulate_flg
int | do_test_me
int | do_test_cs
int | require_me
int | require_cs
int | do_mangle_var_names
int | do_output_all_vars
int | print_all_event_vars
fmi_version_enu_t | version
fmi1_import_t * | fmu1
fmi1_fmu_kind_enu_t | fmu1_kind
fmi1_import_variable_list_t * | vl
fmi2_import_t * | fmu2
fmi2_fmu_kind_enu_t | fmu2_kind
fmi2_import_variable_list_t * | vl2
int | slave_initialized
Flag indicating slave was initialized.

Detailed Description

Checker data structure is used to pass information between different routines

Member Data Documentation

const char* FMUPath

FMU file

char* tmpPath

Temporary directory with unique name where FMU is unpacked

char unzipPathBuf[10000]

Same as tmpPath unless specified by an option

const char* temp_dir

Directory to be used for temporary files. Either user specified or system-wide

unsigned int num_warnings

Counter for the warnings

unsigned int num_errors

counter for the non-fatal errors

unsigned int num_fatal

counter for the non-fatal errors

unsigned int num_fmu_messages

counter for the non-info messages from FMU

int printed_instance_name_error_flg

A flag that makes instance name error appear only once

jm_callbacks callbacks

FMIL callbacks

fmi_import_context_t* context

FMIL context

const char* modelIdentifierFMI1

Model information

double stopTime

Simulation stop time

double stepSize

Step size for the simulation

int stepSizeSetByUser

Flag indicating if step size is user defined in command line

size_t maxOutputPts

Maximum number of steps to save to output

int maxOutputPtsSetByUser

Flag indicating if max number of steps is user defined in command line

double nextOutputTime

Next output time

double nextOutputStep

Next output step number

char CSV_separator

separator character to use

int write_output_files

Flag activates generation of Output files when 1.

this feature is currently off

const char* output_file_name

Name of the output file (NULL is stdout)

FILE* out_file

Output file stream

const char* log_file_name

Name of the log file (NULL is stderr)

FILE* log_file

Log file stream

char* inputFileName

input data file name

int do_simulate_flg

Should simulation be done (or only XML checking)

int do_test_me

Should we simulate ME if available?

int do_test_cs

Should we simulate CS if available?

int require_me

Should we require ME to be available?

int require_cs

Should we require CS to be available?

int do_mangle_var_names

should variable names be mangled to avoid quoting (-m switch)

int do_output_all_vars

should all variables be printed (-f switch)

int print_all_event_vars

should variables be printed before event handling (-d switch)

fmi_version_enu_t version

FMI standard version of the FMU

fmi1_import_t* fmu1

FMI1 main struct

fmi1_fmu_kind_enu_t fmu1_kind

Kind of the FMI

fmi1_import_variable_list_t* vl

model variables

fmi2_import_t* fmu2

FMI2 main struct

fmi2_fmu_kind_enu_t fmu2_kind

Kind of the FMI

fmi2_import_variable_list_t* vl2

model variables

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: FrameworkModules Struct Reference

List of all members
FrameworkModules Struct Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: GeometryInformation Struct Reference

Public Attributes | List of all members
GeometryInformation Struct Reference

This struct contains infrastructure information of surrounding lanes that describe its geometric features. More...

Public Attributes

double visibilityDistance {-999.0}
Current maximum visibility distance as specified by the world.
LaneInformationGeometry laneLeft
Data about the lane to left (in driving direction) of the mainLane.
LaneInformationGeometry laneEgo
Data about the lane the where the middle of the front of the agent is (i.e. mainLane)
LaneInformationGeometry laneRight
Data about the lane to right (in driving direction) of the mainLane.

Detailed Description

This struct contains infrastructure information of surrounding lanes that describe its geometric features.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: GlobalRoadPosition Struct Reference

List of all members
GlobalRoadPosition Struct Reference

Position of a point in the road network. More...

Detailed Description

Position of a point in the road network.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: InputPort< SignalType, ValueType > Class Template Reference

Public Member Functions | List of all members
InputPort< SignalType, ValueType > Class Template Reference

Public Member Functions

InputPort (int id, std::map< int, ComponentPort * > *portMap)
virtual | ~InputPort ()=default
Destructor.
ValueType | GetValue ()
- Public Member Functions inherited from ComponentPort
ComponentPort (int id, std::map< int, ComponentPort * > *portMap)
virtual | ~ComponentPort ()=default
Destructor.
int | GetId ()
virtual bool | GetSignalValue (std::shared_ptr< SignalInterface const > &data)

Detailed Description

template<typename SignalType, typename ValueType>
class InputPort< SignalType, ValueType >

A Template Class to manage input ports.

Constructor & Destructor Documentation

InputPort | ( | int | id,
 |  | std::map< int, ComponentPort * > * | portMap
 | ) |  |
inline

Constructor

Parameters
[in] | id | Id of input port
[in,out] | portMap | map of input port this input port shall be added
84 :
85 ComponentPort(id, portMap)
86 {}
ComponentPort::ComponentPort
ComponentPort(int id, std::map< int, ComponentPort * > *portMap)
Definition: componentPorts.h:28

Member Function Documentation

ValueType GetValue ( )
inline

Retrieve the current value of the input port

Returns
value of input port
99 {
100 return value;
101 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: IntersectingConnection Struct Reference

List of all members
IntersectingConnection Struct Reference

Information regarding a connecting road intersecting another. More...

Detailed Description

Information regarding a connecting road intersecting another.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: IntSignal Class Reference

Public Member Functions | Public Attributes | List of all members
IntSignal Class Reference

Primitive signal class for integer values. More...

Public Member Functions

virtual operator std::string () const
Converts signal to string.

Public Attributes

int value
signal content

Detailed Description

Primitive signal class for integer values.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Joint Struct Reference

List of all members
Joint Struct Reference

This struct contains all information calculated by the JointBuilder for one joint. More...

Detailed Description

This struct contains all information calculated by the JointBuilder for one joint.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: JointsBuilder Class Reference

Public Member Functions | List of all members
JointsBuilder Class Reference

Public Member Functions

JointsBuilder (const SampledGeometry &sampledGeometry, const Joints &joints)
For testing only.
JointsBuilder & CalculatePoints ()
Calculates the left, center and right points of each lane.
JointsBuilder & CalculateHeadings ()
Calculates the headings by interpolating between the center points.
JointsBuilder & CalculateCurvatures ()
Calculates the curvatures from the heading changes.
Joints & GetJoints ()
Returns the calculated joints.

Detailed Description

This class gets the sampled lane boundary points as input and calculates all the other information about the joints, that is needed for adding the joints to the WorldData. The functions have to be called in the order they appear in this header.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Junction Class Reference

List of all members
Junction Class Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: JunctionConnection Struct Reference

List of all members
JunctionConnection Struct Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: JunctionConnectorPriority Struct Reference

List of all members
JunctionConnectorPriority Struct Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: LaneGeometryPolygon Struct Reference

List of all members
LaneGeometryPolygon Struct Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: LaneInformationGeometry Struct Reference

Public Attributes | List of all members
LaneInformationGeometry Struct Reference

This struct is used to transport data of a lane concerning its geometric features as seen by the driver. More...

Public Attributes

bool | exists {false}
Wether there is a lane on this position.
double | curvature {-999.0}
Curvature at current s position (default if not existing)
double | width {-999.0}
Width at current s position (default if not existing)
double | distanceToEndOfLane {-999.0}
Distance from current position to the end of the lane or infinity if the end is farther away than the visibility distance.

Detailed Description

This struct is used to transport data of a lane concerning its geometric features as seen by the driver.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: LaneInformationTrafficRules Struct Reference

Public Attributes | List of all members
LaneInformationTrafficRules Struct Reference

This struct is used to trasport data of a lane concerning traffic rules as seen by the driver. More...

Public Attributes

std::vector< CommonTrafficSign::Entity > trafficSigns
Vector of all traffic signs valid for this lane inside the visibility distance.

Detailed Description

This struct is used to trasport data of a lane concerning traffic rules as seen by the driver.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: LaneJoint Struct Reference

List of all members
LaneJoint Struct Reference

This struct contains all information calculated by the JointBuilder for one joint and one lane. More...

Detailed Description

This struct contains all information calculated by the JointBuilder for one joint and one lane.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: LateralDynamicConstants Struct Reference

Public Attributes | List of all members
LateralDynamicConstants Struct Reference

Calulaction parameters for the lateral acceleration wish [m/s]. More...

Public Attributes

const double | lateralAcceleration = 1.5
Typical acceleration for a lane change [m/s].
const double | zeta = 1.0
Typical lateral damping for a lane change [m/s].
const double | gainHeadingError = 7.5
aggressiveness of the controller for heading errors

Detailed Description

Calulaction parameters for the lateral acceleration wish [m/s].

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: LateralSignal Class Reference

Public Member Functions | List of all members
LateralSignal Class Reference

Public Member Functions

LateralSignal ()
Constructor.
LateralSignal (ComponentState componentState, double laneWidth, double lateralDeviation, double gainLateralDeviation, double headingError, double gainHeadingError, double kappaManoeuvre, double kappaRoad, std::vector< double > curvatureOfSegmentsToNearPoint, std::vector< double > curvatureOfSegmentsToFarPoint)
Constructor.
virtual operator std::string () const
LateralSignal (LateralSignal &other)
Constructor.
LateralSignal (ComponentState componentState, double laneWidth, double lateralDeviation, double gainLateralDeviation, double headingError, double gainHeadingError, double kappaManoeuvre)
Constructor.

Member Function Documentation

virtual operator std::string ( ) const
inlinevirtual

Returns the content/payload of the signal as an std::string

Returns
Content/payload of the signal as an std::string
74 {
75 std::ostringstream stream;
76 stream << COMPONENTNAME;
77 return stream.str();
78 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: LimiterAccelerationVehicleComponentsImplementation Class Reference

Public Member Functions | List of all members
LimiterAccelerationVehicleComponentsImplementation Class Reference

This class implements the set limit. More...

Public Member Functions

virtual void | UpdateInput (int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)
Update Inputs. More...
virtual void | UpdateOutput (int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
Update outputs. More...
virtual void | Trigger (int time)
Process data within component. More...

Detailed Description

This class implements the set limit.

Member Function Documentation

void UpdateInput | ( | int | localLinkId,
 |  | const std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update Inputs.

Function is called by framework when another component delivers a signal over a channel to this component (scheduler calls update taks of other component).

Refer to module description for input channels and input ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentInput"
[in] | data | Referenced signal (copied by sending component)
[in] | time | Current scheduling time
25 {
26 Q_UNUSED(time);
27
28 if (localLinkId == 0) {
29 const std::shared_ptr<ComponentStateSignalInterface const> stateSignal = std::dynamic_pointer_cast<ComponentStateSignalInterface const>(data);
30 if (stateSignal->componentState == ComponentState::Acting)
31 {
32 const std::shared_ptr<AccelerationSignal const> signal = std::dynamic_pointer_cast<AccelerationSignal const>(data);
33 if (!signal)
34 {
35 const std::string msg = GetComponentName() + " invalid signaltype";
36 LOG(CbkLogLevel::Debug, msg);
37 throw std::runtime_error(msg);
38 }
39
40 incomingAcceleration = signal->acceleration;
41 }
42 componentState = stateSignal->componentState;
43 }
44 else if (localLinkId == 100)
45 {
46 // from ParametersAgent
47 const std::shared_ptr<ParametersVehicleSignal const> signal = std::dynamic_pointer_cast<ParametersVehicleSignal const>(data);
48 if (!signal)
49 {
50 const std::string msg = GetComponentName() + " invalid signaltype";
51 LOG(CbkLogLevel::Debug, msg);
52 throw std::runtime_error(msg);
53 }
54 vehicleModelParameters = signal->vehicleParameters;
55
56 PrepareReferences();
57 }
58 else
59 {
60 const std::string msg = GetComponentName() + " invalid link";
61 LOG(CbkLogLevel::Debug, msg);
62 throw std::runtime_error(msg);
63 }
64 }
AccelerationSignal
Signal class.
Definition: accelerationSignal.h:27
ParametersVehicleSignal
Provides all vehicle parameters for the driver.
Definition: parametersVehicleSignal.h:32
void UpdateOutput | ( | int | localLinkId,
 |  | std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |
virtual

Update outputs.

Function is called by framework when this component has to deliver a signal over a channel to another component (scheduler calls update task of this component).

Refer to module description for output channels and output ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentOutput"
[out] | data | Referenced signal (copied by this component)
[in] | time | Current scheduling time
67 {
68 Q_UNUSED(time);
69
70 if(localLinkId == 0)
71 {
72 try
73 {
74 data = std::make_shared<AccelerationSignal const>(componentState, outgoingAcceleration);
75 }
76 catch(const std::bad_alloc&)
77 {
78 const std::string msg = GetComponentName() + " could not instantiate signal";
79 LOG(CbkLogLevel::Debug, msg);
80 throw std::runtime_error(msg);
81 }
82 }
83
84 else
85 {
86 const std::string msg = GetComponentName() + " invalid link";
87 LOG(CbkLogLevel::Debug, msg);
88 throw std::runtime_error(msg);
89 }
90 }
void Trigger ( int time )
virtual

Process data within component.

Function is called by framework when the scheduler calls the trigger task of this component

Parameters
[in] time Current scheduling time
93 {
94 Q_UNUSED(time);
95
96 const double &accelerationLimit = CalculateAccelerationLimit();
97 const double &decelerationLimit = CalculateDecelerationLimit();
98
99 outgoingAcceleration = std::max(std::min(incomingAcceleration, accelerationLimit), decelerationLimit);
100 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Log< T > Class Template Reference

Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
Log< T > Class Template Reference

Coordinates logging. More...

Public Member Functions

std::ostringstream & Get (const char *file, int line, LogLevel level=LogLevel::Warning)

Static Public Member Functions

static LogLevel & | ReportingLevel ()
static std::string | ToString (LogLevel level)

Protected Attributes

std::ostringstream os
output stream of current log session

Detailed Description

template<typename T>
class Log< T >

Coordinates logging.

Member Function Documentation

std::ostringstream & Get | ( | const char * | file,
 |  | int | line,
 |  | LogLevel | level = LogLevel::Warning
 | ) |  |

Retrieves output stream.

Additional diagnostic information might be logged dependent on severity of log.

Parameters
[in] | file | File name where log is issued
[in] | line | Line number where log is issued
[in] | level | Severity of log.
Returns
Output stream for the log message
148 {
149 #if defined(LOG_TIME_ENABLED)
150 os << Log_NowTime();
151 #endif // LOG_TIME_ENABLED
152 os << " " << ToString(level) << ": ";
153
154 if (static_cast<int>(LogLevel::Info) > static_cast<int>(level))
155 {
156 os << "(" << file << ":" << line << ") ";
157 }
158
159 os << "ThreadID: " << QThread::currentThreadId() << " ";
160
161 return os;
162 }
Log::os
std::ostringstream os
output stream of current log session
Definition: log.h:138
Log::ToString
static std::string ToString(LogLevel level)
Definition: log.h:181
LogLevel & ReportingLevel ( )
static

Retrieves current severity limit.

Only log messages with a severity smaller or equal than this level will be printed.

Returns
Current severity limit
175 {
176 static LogLevel reportingLevel = LogLevel::Warning;
177 return reportingLevel;
178 }
std::string ToString ( LogLevel level )
static

Converts severity value to a string for printing purposes.

Parameters
[in] level Severity level
Returns
Converted severity level
182 {
183 static const char *const buffer[] =
184 {
185 "Error",
186 "Warning",
187 "Info",
188 "DebugUser",
189 "DebugApi",
190 "DebugCore"
191 };
192
193 return buffer[static_cast<int>(level)];
194 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: LogOutputPolicy Class Reference

Static Public Member Functions | List of all members
LogOutputPolicy Class Reference

Handles access of file. More...

Static Public Member Functions

static void | SetFile (const std::string &fileName)
static bool | IsOpen ()
static void | Output (const std::string &message)

Detailed Description

Handles access of file.

Member Function Documentation

void SetFile ( const std::string & fileName )
inlinestatic

Initializes output file.

Parameters
[in] fileName Name of file where logs are stored
234 {
235 long long threadId = (long long)QThread::currentThreadId();
236 std::unique_ptr<std::ofstream> logStream = std::make_unique<std::ofstream>();
237 logStream->open(fileName);
238 logStreamMap.emplace(threadId, std::move(logStream));
239 }
bool IsOpen ( )
inlinestatic

Verifies if output file has already been opened.

Returns
True if file is open
242 {
243 long long threadId = (long long)QThread::currentThreadId();
244 if (logStreamMap.find(threadId) != logStreamMap.end())
245 {
246 return logStreamMap[threadId]->is_open();
247 }
248 else
249 {
250 return false;
251 }
252 }
void Output ( const std::string & message )
inlinestatic

Logs message into file and standard output.

Parameters
[in] message Message to be logged.
255 {
256 // print to standard output
257 // std::cout << message.c_str();
258
259 // print to file
260 long long threadId = (long long)QThread::currentThreadId();
261 if (logStreamMap.find(threadId) != logStreamMap.end())
262 {
263 *logStreamMap[threadId] << message;
264 logStreamMap[threadId]->flush();
265 }
266 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: LongitudinalDistance Struct Reference

Public Attributes | List of all members
LongitudinalDistance Struct Reference

Longitudinal distance (i.e. along s) between two objects on the same road. More...

Public Attributes

std::optional< double > referencePoint
distance between boundaries

Detailed Description

Longitudinal distance (i.e. along s) between two objects on the same road.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: LongitudinalSignal Class Reference

Public Member Functions | List of all members
LongitudinalSignal Class Reference

Public Member Functions

virtual operator std::string () const

Member Function Documentation

virtual operator std::string ( ) const
inlinevirtual

Returns the content/payload of the signal as an std::string

Returns
Content/payload of the signal as an std::string
61 {
62 std::ostringstream stream;
63 stream << COMPONENTNAME << '\n';
64 stream << "accPedalPos: " << accPedalPos << '\n';
65 stream << "brakePedalPos: " << brakePedalPos << '\n';
66 stream << "gear: " << gear << '\n';
67 return stream.str();
68 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: MultiStream< T > Class Template Reference

Classes | List of all members
MultiStream< T > Class Template Reference

Classes

struct Node

Detailed Description

template<typename T>
class MultiStream< T >

This class represent a directed tree of elements. It is used by various queries to search along consecutive elements within a range starting at some start point The elements supported by this class are: OWL::Lane* OWL::Road*

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: MultiStream< T >::Node Struct Reference

  • MultiStream
  • Node
List of all members
MultiStream< T >::Node Struct Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: ObjectInformation Struct Reference

Public Attributes | List of all members
ObjectInformation Struct Reference

This struct is used to transport data of an object as seen be the driver. More...

Public Attributes

int | id
Id of the object (default if not existing)
bool | exist {false}
false if there is no object in this position
bool | isStatic {false}
true if stationary object, false if agent
double | absoluteVelocity {-999.0}
Absolute velocity of the agent (default if object is not an agent)
double | acceleration {-999.0}
Acceleration of the agent (default if object is not an agent)
double | heading {-999.0}
Heading relative to the street (default if not existing)
double | length {-999.0}
Length of object (default if not existing)
double | width {-999.0}
Width of object (default if not existing)
double | height {-999.0}
Height of object (default if not existing)
double | relativeLongitudinalDistance {-999.0}
Relative distance along the road (i.e in direction s) between own agent and object (default if not existing)
double | relativeLateralDistance {-999.0}
Relative distance at right angle to the road (i.e. in direction t) between own agent and object (default if not existing)

Detailed Description

This struct is used to transport data of an object as seen be the driver.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: ObjectPosition Struct Reference

Public Attributes | List of all members
ObjectPosition Struct Reference

Position of an object in the road network. More...

Public Attributes

std::map< const std::string, GlobalRoadPosition > | mainLocatePoint {}
position of the reference point mapped by roadId
std::map< std::string, RoadInterval > | touchedRoads {}
position of the mainLocatePoint (middle of agent front) mapped by roadId

Detailed Description

Position of an object in the road network.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: ObjectView Struct Reference

List of all members
ObjectView Struct Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: ObservationCyclics Class Reference

Public Member Functions | List of all members
ObservationCyclics Class Reference

The ObservationCyclics stores the samples which are logged by various modules and written into the cyclics tag of the simulationOutput.xml. More...

Public Member Functions

void | Insert (int time, const std::string &key, const std::string &value)
std::string | GetHeader ()
Returns the string header that is written into the simulationOuput.xml.
std::string | GetSamplesLine (uint32_t timeStepNumber)
Returns a single line of samples for the given timestep for writing into the simulationOutput.
std::set< int > & | GetTimeSteps ()
Returns all timesteps for which samples exist.
void | Clear ()
Clears all samples for a new run.
void | Insert (int time, const std::string &key, const std::string &value)
std::string | GetHeader ()
Returns the string header that is written into the simulationOuput.xml.
std::string | GetAgentHeader ()
Returns the string header that is written into the Cyclics_*.csv including agentId.
std::string | GetSamplesLine (uint32_t timeStepNumber)
Returns a single line of samples for the given timestep for writing into the simulationOutput.
std::vector< std::string > | GetAgentSamplesLine (uint32_t timeStepNumber)
Returns for each agent a single line of samples for the given timestep for writing into the cyclics_*.csv.
std::set< int > & | GetTimeSteps ()
Returns all timesteps for which samples exist.
void | Clear ()
Clears all samples for a new run.

Detailed Description

The ObservationCyclics stores the samples which are logged by various modules and written into the cyclics tag of the simulationOutput.xml.

Member Function Documentation

void Insert | ( | int | time,
 |  | const std::string & | key,
 |  | const std::string & | value
 | ) |  |

Inserts a parameter into the samples. If the key does not exist yet, it inserts it into the list of keys and all previous timesteps are filled with an empty string. If the key exists, but some timesteps are missing for this key, then missing timesteps are filled with an empty string.

Parameters
[in] | time | Timestep in milliseconds.
[in] | key | Name of parameter as string.
[in] | value | Value of parameter as string.

Called by Observation Log Implementation to log all Sample values in output.xml

65 {
66 timeSteps.insert(timeSteps.end(), time);
67
68 auto it = samples.find(key);
69
70 if (it == samples.end())
71 {
72 auto [newIt, newElement] = samples.emplace(key, timeSteps.size() - 1);
73 newIt->second.push_back(value);
74 }
75 else
76 {
77 // fill up skipped time steps (e.g. another agent has been instantiated in between -> inserted new time step in scheduling)
78 it->second.resize(timeSteps.size() - 1);
79 it->second.push_back(value);
80 }
81 }
void Insert | ( | int | time,
 |  | const std::string & | key,
 |  | const std::string & | value
 | ) |  |

Inserts a parameter into the samples. If the key does not exist yet, it inserts it into the list of keys and all previous timesteps are filled with an empty string. If the key exists, but some timesteps are missing for this key, then missing timesteps are filled with an empty string.

Parameters
[in] | time | Timestep in milliseconds.
[in] | key | Name of parameter as string.
[in] | value | Value of parameter as string.
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: ObservationFileHandler Class Reference

Public Member Functions | List of all members
ObservationFileHandler Class Reference

Provides the basic logging and observer functionality. More...

Public Member Functions

void | SetOutputLocation (const std::string &outputDir, const std::string &outputFile)
Sets the directory where the output is written into. More...
void | WriteStartOfFile (const std::string &frameworkVersion)
Creates the output file as simulationOutput.tmp and writes the basic header information.
void | WriteRun (const RunResultInterface &runResult, RunStatistic runStatistik, ObservationCyclics &cyclics)
This function gets called after each run and writes all information about this run into the output file. More...
void | WriteEndOfFile ()
Closes the xml tags flushes the output file, closes it and renames it to simulationOutput.xlm.
void | SetOutputLocation (const std::string &outputDir, const std::string &outputFile)
Sets the directory where the output is written into. More...
void | WriteStartOfFile (const std::string &frameworkVersion)
Creates the output file as simulationOutput.tmp and writes the basic header information.
void | WriteRun (const RunResultInterface &runResult, RunStatistic runStatistik, ObservationCyclics &cyclics)
This function gets called after each run and writes all information about this run into the output file. More...
void | WriteEndOfFile ()
Closes the xml tags flushes the output file, closes it and renames it to simulationOutput.xlm.

Detailed Description

Provides the basic logging and observer functionality.

Provides the basic logging functionality. Writes the framework, events, agents and samples into the output. It has two logging modes either event based or as single output. This module also acts as an observer of agent modules.

Member Function Documentation

void SetOutputLocation | ( | const std::string & | outputDir,
 |  | const std::string & | outputFile
 | ) |  |
inline

Sets the directory where the output is written into.

Parameters
outputDir path of output directory
57 {
58 folder = QString::fromStdString(outputDir);
59 finalFilename = QString::fromStdString(outputFile);
60 finalPath = folder + QDir::separator() + finalFilename;
61 }
void WriteRun | ( | const RunResultInterface & | runResult,
 |  | RunStatistic | runStatistik,
 |  | ObservationCyclics & | cyclics
 | ) |  |

This function gets called after each run and writes all information about this run into the output file.

Parameters
runResult
runStatistik
cyclics
dataStore
void SetOutputLocation | ( | const std::string & | outputDir,
 |  | const std::string & | outputFile
 | ) |  |
inline

Sets the directory where the output is written into.

Parameters
outputDir path of output directory
57 {
58 folder = QString::fromStdString(outputDir);
59 finalFilename = QString::fromStdString(outputFile);
60 finalPath = folder + QDir::separator() + finalFilename;
61 }
void WriteRun | ( | const RunResultInterface & | runResult,
 |  | RunStatistic | runStatistik,
 |  | ObservationCyclics & | cyclics
 | ) |  |

This function gets called after each run and writes all information about this run into the output file.

Parameters
runResult
runStatistik
cyclics
dataStore
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: ObservationInstance Struct Reference

Public Attributes | List of all members
ObservationInstance Struct Reference

Wrapper for building an ObservationInstance. More...

Public Attributes

std::string | libraryName
for internal use
openpass::parameter::ParameterSetLevel1 | parameters
Name of the library to load.

Detailed Description

Wrapper for building an ObservationInstance.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: ObservationLogImplementation Class Reference

List of all members
ObservationLogImplementation Class Reference

This class adds the RunStatistic information to the simulation output. More...

Detailed Description

This class adds the RunStatistic information to the simulation output.

This class inherits the ObservationLogGeneric which creates the basic simulation output and adds the RunStatistic information to the output. This class also manages the stop reasons of the simulation.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Obstruction Class Reference

Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
Obstruction Class Reference

Describes the obstruction of an opposing object within the driving lanes. More...

Public Member Functions

Obstruction (double left, double right, double mainLaneLocator)
!< More...

Static Public Member Functions

static Obstruction | Invalid ()
static Obstruction | NoOpponent ()

Public Attributes

double | left {0.0}
!< More...
double | right {0.0}
!< More...
double | mainLaneLocator {0.0}
!< More...
bool | isOverlapping {false}
!< More...

Detailed Description

Describes the obstruction of an opposing object within the driving lanes.

Constructor & Destructor Documentation

Obstruction | ( | double | left,
 |  | double | right,
 |  | double | mainLaneLocator
 | ) |  |
inline

!<

True, if object obstructs

262 :
263 valid{true},
264 left{left},
265 right{right},
266 mainLaneLocator{mainLaneLocator},
267 isOverlapping{ left > 0.0 && right < 0.0 }
268 {
269 }
Obstruction::mainLaneLocator
double mainLaneLocator
!<
Definition: worldDefinitions.h:259
Obstruction::isOverlapping
bool isOverlapping
!<
Definition: worldDefinitions.h:260
Obstruction::right
double right
!<
Definition: worldDefinitions.h:258
Obstruction::left
double left
!<
Definition: worldDefinitions.h:257

Member Function Documentation

static Obstruction Invalid ( )
inlinestatic
Returns
Invalid obstruction object
275 {
276 return {};
277 }

Here is the caller graph for this function:

static Obstruction NoOpponent ( )
inlinestatic
Returns
Default for no opponent
281 {
282 return Obstruction(0.0, 0.0, 0.0);
283 }
Obstruction
Describes the obstruction of an opposing object within the driving lanes.
Definition: worldDefinitions.h:253

Member Data Documentation

double left {0.0}

!<

True, if obstruction could be calculated

double right {0.0}

!<

How far do I need to drive to the left to pass the object

double mainLaneLocator {0.0}

!<

How far do I need to drive to the right to pass the object

bool isOverlapping {false}

!<

Lateral distance of the mainLaneLocator

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: OpenScenarioActionsImplementation Class Reference

List of all members
OpenScenarioActionsImplementation Class Reference

Relays triggered OpenScenario actions as signals to other components. More...

Detailed Description

Relays triggered OpenScenario actions as signals to other components.

When used in conjunction with autoregistering transformers (

See also
actionTransformRepository), the linkIdMapping has to be provided via the parameter interface.

That means that when a transformer for e.g. event X is autoregistered, a parameter for mapping X::Topic to a linkId needs to be defined.

Syntax: <parameter> <id>THE_TOPIC</id> <type>int</type> <unit>

THE_LINK_ID

</parameter>

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: OscActionsCalculation Class Reference

Public Member Functions | List of all members
OscActionsCalculation Class Reference

This class makes calculations for the OpenScenarioActions module. More...

Public Member Functions

openScenario::Trajectory CalculateSinusiodalLaneChange (double deltaS, double deltaT, double deltaTime, double timeStep, GlobalRoadPosition startPosition, double startTime) const

Detailed Description

This class makes calculations for the OpenScenarioActions module.

Member Function Documentation

openScenario::Trajectory CalculateSinusiodalLaneChange | ( | double | deltaS,
 |  | double | deltaT,
 |  | double | deltaTime,
 |  | double | timeStep,
 |  | GlobalRoadPosition | startPosition,
 |  | double | startTime
 | ) |  | const

Calculates a trajectory for a lane change with shape "sinusiodal" The result has constant speed in s

Parameters
deltaS | length of the trajectory in s
deltaT | length of the trajectory in t
deltaTime | time of the trajectory
timeStep | delta time between two trajectory points
startPosition | start point of the trajectory
startTime | time of the first trajectory point
Returns
sinusiodal lane change trajectory in world coordinates
19 {
20 openScenario::Trajectory trajectory;
21 double startT = startPosition.roadPosition.t + (startPosition.laneId > 0 ? 0.5 : -0.5) * world->GetLaneWidth(startPosition.roadId, startPosition.laneId, startPosition.roadPosition.s);
22 if (startPosition.laneId > 0)
23 {
24 for (int laneId = 1; laneId < startPosition.laneId; ++laneId)
25 {
26 startT += world->GetLaneWidth(startPosition.roadId, laneId, startPosition.roadPosition.s);
27 }
28 }
29 else
30 {
31 for (int laneId = -1; laneId > startPosition.laneId; --laneId)
32 {
33 startT -= world->GetLaneWidth(startPosition.roadId, laneId, startPosition.roadPosition.s);
34 }
35 }
36 for (double timeSinceStart = 0; timeSinceStart <= deltaTime + 0.5 * timeStep; timeSinceStart += timeStep)
37 {
38 timeSinceStart = std::min(timeSinceStart, deltaTime); //For reducing rounding errors we also consider an additional point if difference of last time to deltaTime was at most half a timeStep
39 double alpha = timeSinceStart / deltaTime; // Position on the sinus curve (0 = start, 1 = end)
40 double s = startPosition.roadPosition.s + alpha * deltaS;
41 double t = startT + deltaT * 0.5 * (1 - std::cos(alpha * M_PI));
42 double yaw = deltaT / deltaS * M_PI * 0.5 * std::sin(alpha * M_PI);
43 auto worldPosition = world->RoadCoord2WorldCoord({s, t, yaw}, startPosition.roadId);
44 openScenario::TrajectoryPoint nextPoint{startTime + timeSinceStart, worldPosition.xPos, worldPosition.yPos, worldPosition.yawAngle};
45 trajectory.points.push_back(nextPoint);
46 }
47 return trajectory;
48 }
openScenario::TrajectoryPoint
Definition: openScenarioDefinitions.h:154
openScenario::Trajectory
Definition: openScenarioDefinitions.h:180
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: OsmpFmuHandler Class Reference

List of all members
OsmpFmuHandler Class Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: OutputAttributes Struct Reference

List of all members
OutputAttributes Struct Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: OutputPort< SignalType, ValueType > Class Template Reference

Public Member Functions | List of all members
OutputPort< SignalType, ValueType > Class Template Reference

Public Member Functions

OutputPort (int id, std::map< int, ComponentPort * > *portMap)
virtual | ~OutputPort ()=default
Destructor.
void | SetValue (ValueType value)
- Public Member Functions inherited from ComponentPort
ComponentPort (int id, std::map< int, ComponentPort * > *portMap)
virtual | ~ComponentPort ()=default
Destructor.
int | GetId ()
virtual bool | SetSignalValue (const std::shared_ptr< SignalInterface const > &data)

Detailed Description

template<typename SignalType, typename ValueType>
class OutputPort< SignalType, ValueType >

A Template Class to manage output ports.

Constructor & Destructor Documentation

OutputPort | ( | int | id,
 |  | std::map< int, ComponentPort * > * | portMap
 | ) |  |
inline

Constructor

Parameters
[in] | id | Id of output port
[in,out] | portMap | map of output port this output port shall be added
143 :
144 ComponentPort(id, portMap)
145 {}
ComponentPort::ComponentPort
ComponentPort(int id, std::map< int, ComponentPort * > *portMap)
Definition: componentPorts.h:28

Member Function Documentation

void SetValue ( ValueType value )
inline

Set the value of the output port

Parameters
value value to be set
158 {
159 this->value = value;
160 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: OutputTags Struct Reference

List of all members
OutputTags Struct Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: overload< Ts > Struct Template Reference

overload< Ts > Struct Template Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: OwnVehicleInformation Struct Reference

Public Attributes | List of all members
OwnVehicleInformation Struct Reference

Data about the lane to left (in driving direction) of the mainLane. More...

Public Attributes

double | absoluteVelocity {-999.0}
Absolute velocity of agent.
double | acceleration {-999.0}
Acceleration of agent.
double | lateralPosition {-999.0}
t-coordinate
double | heading {-999.0}
Heading relative to lane.
double | steeringWheelAngle {-999.0}
Angle of the steering wheel.
double | distanceToLaneBoundaryLeft {-999.0}
Distance between the left front point and the left boundary of the lane it is in.
double | distanceToLaneBoundaryRight {-999.0}
Distance between the right front point and the right boundary of the lane it is in.
bool | collision {false}
Wether this agent has collided with another object.

Detailed Description

Data about the lane to left (in driving direction) of the mainLane.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: ParametersVehicleSignal Class Reference

Public Member Functions | List of all members
ParametersVehicleSignal Class Reference

Provides all vehicle parameters for the driver. More...

Public Member Functions

ParametersVehicleSignal (VehicleModelParameters vehicleParameters)
Constructor.
virtual operator std::string () const

Detailed Description

Provides all vehicle parameters for the driver.

Member Function Documentation

virtual operator std::string ( ) const
inlinevirtual

Returns the content/payload of the signal as an std::string

Returns
Content/payload of the signal as an std::string
60 {
61 std::ostringstream stream;
62 stream << COMPONENTNAME;
63 return stream.str();
64 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Polygon Class Reference

Public Member Functions | List of all members
Polygon Class Reference

polygon in 2d More...

Public Member Functions

bool | CalculateCentroid (Common::Vector2d &cog)
get centroid of the polygon Algorithm to calculate the center of the polygon. More...
double | GetNumberOfVertices ()
get number of vertices of the polygon More...
std::vector< Common::Vector2d > | GetVertices () const
get vertices of the polygon More...
void | SetVertices (const std::vector< Common::Vector2d > &value)
set vertices of the polygon More...
void | Translate (Common::Vector2d translationVector)
translate the polygon Translate the polygon along a given vector. More...

Detailed Description

polygon in 2d

This class represents a polygon in 2d. It consists of several vertices which are vectors in 2d. It provides several operations for working with the polygon.

Member Function Documentation

bool CalculateCentroid ( Common::Vector2d & cog )

get centroid of the polygon Algorithm to calculate the center of the polygon.

Notes:

  • the terms center of gravity and centroid are often used synonymous
  • algorithm works for clockwise and counter-clockwise order of the vertices

The algorithm is based on MATLAB-code provided by Harald Kolk (TU Graz). See also: https://en.wikipedia.org/wiki/Centroid

Parameters
[out] cog centroid of the polygon
Returns
true if calculation was successful
14 {
15 // if empty, return empty vector
16 if (vertices.size() == 0) {
17 return false;
18 }
19
20 // close polygon by adding the first vertex at the end
21 std::vector<Common::Vector2d> v;
22 v = vertices;
23 v.push_back(v[0]);
24
25 double area = 0;
26 cog.x = 0;
27 cog.y = 0;
28
29 for (unsigned int iV = 0; iV < vertices.size() ; iV++ ) {
30 double det;
31 det = ( v[iV].x * v[iV + 1].y - v[iV + 1].x * v[iV].y );
32 area = area + det;
33 cog.x = cog.x + ( v[iV].x + v[iV + 1].x ) * det;
34 cog.y = cog.y + ( v[iV].y + v[iV + 1].y ) * det;
35 }
36
37 cog.Scale( 1 / (3 * area) );
38
39 return true;
40 }
Common::Vector2d::Scale
constexpr void Scale(double scale) noexcept
Definition: vector2d.h:88

Here is the call graph for this function:

double GetNumberOfVertices ( )

get number of vertices of the polygon

Returns
number of vertices of the polygon
43 {
44 return vertices.size();
45 }
std::vector< Common::Vector2d > GetVertices ( ) const

get vertices of the polygon

Returns
vertices of polygon
48 {
49 return vertices;
50 }
void SetVertices ( const std::vector< Common::Vector2d > & value )

set vertices of the polygon

Parameters
vertices of the polygon
53 {
54 vertices = value;
55 }
void Translate ( Common::Vector2d translationVector )

translate the polygon Translate the polygon along a given vector.

Parameters
translationVector vector for translation
58 {
59 for (unsigned int i = 0; i < vertices.size(); i++ ) {
60 vertices.at(i).Translate(translationVector);
61 }
62 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Position Struct Reference

List of all members
Position Struct Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: PostCrashDynamic Class Reference

Public Member Functions | List of all members
PostCrashDynamic Class Reference

Class to store post-crash dynamics data Used to store information about the dynamic after a collision. More...

Public Member Functions

PostCrashDynamic (double velocity=0, double velocityChange=0, double velocityDirection=0, double yawVelocity=0, Common::Vector2d pulse=Common::Vector2d(), double pulseDirection=0, Common::Vector2d pulseLocal=Common::Vector2d(), Common::Vector2d pointOfContactLocal=Common::Vector2d(), double collisionVelocity=0, bool sliding=false)

Detailed Description

Class to store post-crash dynamics data Used to store information about the dynamic after a collision.

Constructor & Destructor Documentation

PostCrashDynamic | ( | double | velocity = 0,
 |  | double | velocityChange = 0,
 |  | double | velocityDirection = 0,
 |  | double | yawVelocity = 0,
 |  | Common::Vector2d | pulse = Common::Vector2d(),
 |  | double | pulseDirection = 0,
 |  | Common::Vector2d | pulseLocal = Common::Vector2d(),
 |  | Common::Vector2d | pointOfContactLocal = Common::Vector2d(),
 |  | double | collisionVelocity = 0,
 |  | bool | sliding = false
 | ) |  |
inline

Container Class to store all relevant data for a post crash dynamic

Parameters
velocity
velocityChange
velocityDirection
yawVelocity
pulse
pulseDirection
pulseLocal
pointOfContactLocal
collisionVelocity
sliding
47 : velocity(velocity),
48 velocityChange(velocityChange),
49 velocityDirection(velocityDirection),
50 yawVelocity(yawVelocity),
51 pulse(pulse),
52 pulseDirection(pulseDirection),
53 pulseLocal(pulseLocal),
54 pointOfContactLocal(pointOfContactLocal),
55 collisionVelocity(collisionVelocity),
56 sliding(sliding)
57 {}
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: PostCrashVelocity Struct Reference

Public Attributes | List of all members
PostCrashVelocity Struct Reference

Public Attributes

bool | isActive = false
activity flag
double | velocityAbsolute = 0.0
post crash velocity, absolute [m/s]
double | velocityDirection = 0.0
post crash velocity direction [rad]
double | yawVelocity = 0.0
post crash yaw velocity [rad/s]
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: ProcessManager Class Reference

List of all members
ProcessManager Class Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Profiles Class Reference

List of all members
Profiles Class Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: ReachPositionCondition Class Reference

List of all members
ReachPositionCondition Class Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Remainder Struct Reference

List of all members
Remainder Struct Reference

This struct describes how much space an agent has to next lane boundary on both sides. More...

Detailed Description

This struct describes how much space an agent has to next lane boundary on both sides.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Road Class Reference

Public Member Functions | List of all members
Road Class Reference

Class representing a road. More...

Public Member Functions

bool | AddGeometryLine (double s, double x, double y, double hdg, double length) override
bool | AddGeometryArc (double s, double x, double y, double hdg, double length, double curvature) override
bool | AddGeometrySpiral (double s, double x, double y, double hdg, double length, double curvStart, double curvEnd) override
bool | AddGeometryPoly3 (double s, double x, double y, double hdg, double length, double a, double b, double c, double d) override
bool | AddGeometryParamPoly3 (double s, double x, double y, double hdg, double length, ParamPoly3Parameters parameters) override
bool | AddElevation (double s, double a, double b, double c, double d) override
bool | AddLaneOffset (double s, double a, double b, double c, double d) override
bool | AddLink (RoadLinkType type, RoadLinkElementType elementType, const std::string &elementId, ContactPointType contactPoint, RoadLinkDirectionType direction, RoadLinkSideType side) override
RoadLaneSection * | AddRoadLaneSection (double start) override
void | AddRoadSignal (const RoadSignalSpecification &signal) override
const std::string | GetId () const override
const std::list< RoadElevation * > & | GetElevations () const override
const std::list< RoadLaneOffset * > & | GetLaneOffsets () const override
const std::list< RoadGeometryInterface * > & | GetGeometries () const override
const std::list< RoadLinkInterface * > & | GetRoadLinks () const override
const std::vector< RoadLaneSectionInterface * > & | GetLaneSections () const override
const std::vector< RoadSignalInterface * > & | GetRoadSignals () const override
const std::vector< RoadObjectInterface * > & | GetRoadObjects () const override
void | SetInDirection (bool inDirection) override
bool | GetInDirection () const override

Detailed Description

Class representing a road.

Member Function Documentation

bool AddGeometryLine | ( | double | s,
 |  | double | x,
 |  | double | y,
 |  | double | hdg,
 |  | double | length
 | ) |  |
override

Adds a line geometry to a road by creating a new RoadGeometryLine object and adding it to the stored list of geometries.

Parameters
[in] | s | start position s-coordinate
[in] | x | start position x inertial
[in] | y | start position y inertial
[in] | hdg | start orientation (inertial heading)
[in] | length | length of the element's reference line
Returns
false if an error has occurred, true otherwise
1106 {
1107 RoadGeometry *roadGeometry = new (std::nothrow) RoadGeometryLine(s, x, y, hdg, length);
1108 if (!roadGeometry)
1109 {
1110 return false;
1111 }
1112
1113 geometries.push_back(roadGeometry);
1114
1115 return true;
1116 }
RoadGeometry
Definition: road.h:442
RoadGeometryLine
Class representing a road line as a RoadGeometry.
Definition: road.h:545
bool AddGeometryArc | ( | double | s,
 |  | double | x,
 |  | double | y,
 |  | double | hdg,
 |  | double | length,
 |  | double | curvature
 | ) |  |
override

Adds an arc geometry to a road by creating a new RoadGeometryArc object and adding it to the stored list of geometries.

Parameters
[in] | s | start position s-coordinate
[in] | x | start position x inertial
[in] | y | start position y inertial
[in] | hdg | start orientation (inertial heading)
[in] | length | length of the element's reference line
[in] | curvature | constant curvature throughout the element
Returns
false if an error has occurred, true otherwise
1119 {
1120 RoadGeometry *roadGeometry = new (std::nothrow) RoadGeometryArc(s, x, y, hdg, length, curvature);
1121 if (!roadGeometry)
1122 {
1123 return false;
1124 }
1125
1126 geometries.push_back(roadGeometry);
1127
1128 return true;
1129 }
RoadGeometry
Definition: road.h:442
RoadGeometryArc
Class representing a road arc as a RoadGeometry.
Definition: road.h:559
bool AddGeometrySpiral | ( | double | s,
 |  | double | x,
 |  | double | y,
 |  | double | hdg,
 |  | double | length,
 |  | double | curvStart,
 |  | double | curvEnd
 | ) |  |
override

Adds a spiral geometry to a road by creating a new RoadGeometrySpiral object and adding it to the stored list of geometries.

Parameters
[in] | s | start position s-coordinate
[in] | x | start position x inertial
[in] | y | start position y inertial
[in] | hdg | start orientation (inertial heading)
[in] | length | length of the element's reference line
[in] | curvStart | curvature at the start of the element
[in] | curvEnd | curvature at the end of the element
Returns
false if an error has occurred, true otherwise
1132 {
1133 RoadGeometry *roadGeometry = new (std::nothrow) RoadGeometrySpiral(s, x, y, hdg, length, curvStart, curvEnd);
1134 if (!roadGeometry)
1135 {
1136 return false;
1137 }
1138
1139 geometries.push_back(roadGeometry);
1140
1141 return true;
1142 }
RoadGeometry
Definition: road.h:442
RoadGeometrySpiral
Class representing a spiral road (clothoid) as a RoadGeometry.
Definition: road.h:587
bool AddGeometryPoly3 | ( | double | s,
 |  | double | x,
 |  | double | y,
 |  | double | hdg,
 |  | double | length,
 |  | double | a,
 |  | double | b,
 |  | double | c,
 |  | double | d
 | ) |  |
override

Adds a cubic polynomial geometry to a road by creating a new RoadGeometryPoly3 object and adding it to the stored list of geometries.

Parameters
[in] | s | start position s-coordinate
[in] | x | start position x inertial
[in] | y | start position y inertial
[in] | hdg | start orientation (inertial heading)
[in] | length | length of the element's reference line
[in] | a | constant factor of the polynomial
[in] | b | linear factor of the polynomial
[in] | c | quadratic factor of the polynomial
[in] | d | cubic factor of the polynomial
Returns
false if an error has occurred, true otherwise
1146 {
1147 RoadGeometry *roadGeometry = new (std::nothrow) RoadGeometryPoly3(s, x, y, hdg, length, a, b, c, d);
1148 if (!roadGeometry)
1149 {
1150 return false;
1151 }
1152
1153 geometries.push_back(roadGeometry);
1154
1155 return true;
1156 }
RoadGeometry
Definition: road.h:442
RoadGeometryPoly3
Class representing a road form defined via a cubic polynomial as a RoadGeometry.
Definition: road.h:685
bool AddGeometryParamPoly3 | ( | double | s,
 |  | double | x,
 |  | double | y,
 |  | double | hdg,
 |  | double | length,
 |  | ParamPoly3Parameters | parameters
 | ) |  |
override

Adds a parametric cubic polynomial geometry to a road by creating a new RoadGeometryparamPoly3 object and adding it to the stored list of geometries. Each coordinate is calculated in a local (u,v) coordinate system

Parameters
[in] | s | start position s-coordinate
[in] | x | start position x inertial
[in] | y | start position y inertial
[in] | hdg | start orientation (inertial heading)
[in] | length | length of the element's reference line
[in] | parameters | Factors of the two polynomials describing the road
Returns
false if an error has occurred, true otherwise
1160 {
1161 RoadGeometry *roadGeometry = new (std::nothrow) RoadGeometryParamPoly3(s, x, y, hdg, length, parameters);
1162 if (!roadGeometry)
1163 {
1164 return false;
1165 }
1166
1167 geometries.push_back(roadGeometry);
1168
1169 return true;
1170 }
RoadGeometry
Definition: road.h:442
RoadGeometryParamPoly3
Class representing a road form defined via a parametric cubic polynomial as a RoadGeometry.
Definition: road.h:746
bool AddElevation | ( | double | s,
 |  | double | a,
 |  | double | b,
 |  | double | c,
 |  | double | d
 | ) |  |
override

Adds an elevation profile defined via a cubic polynomial to a road by creating a new RoadElevation object and adding it to the stored list of elevations.

Parameters
[in] | s | start position s-coordinate
[in] | a | constant factor of the polynomial
[in] | b | linear factor of the polynomial
[in] | c | quadratic factor of the polynomial
[in] | d | cubic factor of the polynomial
Returns
false if an error has occurred, true otherwise
1173 {
1174 RoadElevation *roadElevation = new (std::nothrow) RoadElevation(s, a, b, c, d);
1175 if (!roadElevation)
1176 {
1177 return false;
1178 }
1179
1180 elevations.push_back(roadElevation);
1181
1182 return true;
1183 }
bool AddLaneOffset | ( | double | s,
 |  | double | a,
 |  | double | b,
 |  | double | c,
 |  | double | d
 | ) |  |
override

Adds a lane offset defined via a cubic polynomial to a road by creating a new RoadLaneOffset object and adding it to the stored list of lane offsets.

Parameters
[in] | s | start position s-coordinate
[in] | a | constant factor of the polynomial
[in] | b | linear factor of the polynomial
[in] | c | quadratic factor of the polynomial
[in] | d | cubic factor of the polynomial
Returns
false if an error has occurred, true otherwise
1186 {
1187 RoadLaneOffset *roadLaneOffset = new (std::nothrow) RoadLaneOffset(s, a, b, c, d);
1188 if (!roadLaneOffset)
1189 {
1190 return false;
1191 }
1192
1193 laneOffsets.push_back(roadLaneOffset);
1194
1195 return true;
1196 }
bool AddLink | ( | RoadLinkType | type,
 |  | RoadLinkElementType | elementType,
 |  | const std::string & | elementId,
 |  | ContactPointType | contactPoint,
 |  | RoadLinkDirectionType | direction,
 |  | RoadLinkSideType | side
 | ) |  |
override

Adds a new link to a road by creating a new RoadLink object and adding it to the stored list of links.

Parameters
[in] | type | type of link
[in] | elementType | element type of the link
[in] | elementId | ID of the linked element
[in] | contactPoint | contact point type of link on the linked element
[in] | direction | orientation of the lanes to link; only relevant for a neighbor link type
[in] | side | at which side the neighboring road lies; only relevant for a neighbor link type
Returns
false if an error has occurred, true otherwise
1200 {
1201 RoadLink *roadLink = new (std::nothrow) RoadLink(type, elementType, elementId, contactPoint, direction, side);
1202 if (!roadLink)
1203 {
1204 return false;
1205 }
1206
1207 links.push_back(roadLink);
1208
1209 return true;
1210 }
RoadLink
Class representing a link to a road.
Definition: road.h:44
RoadLaneSection * AddRoadLaneSection ( double start )
override

Adds a new lane section to a road by creating a new RoadLaneSection object and adding it to the stored list of lane sections.

Parameters
[in] start start position s-coordinate
Returns
created road lane section
1213 {
1214 RoadLaneSection *laneSection = new (std::nothrow) RoadLaneSection(this, start);
1215 laneSections.push_back(laneSection);
1216
1217 return laneSection;
1218 }
RoadLaneSection
Class representing a road lane section that can contain several road lanes.
Definition: road.h:318
void AddRoadSignal ( const RoadSignalSpecification & signal )
override

Adds a new signal a road by creating a new RoadSignal object and adding it to the stored list of road signals.

Returns
created road signal
1221 {
1222 RoadSignal *roadSignal = new (std::nothrow) RoadSignal(this, signal);
1223 roadSignals.push_back(roadSignal);
1224 }
RoadSignal
Class representing a road signal.
Definition: roadSignal.h:18
const std::string GetId ( ) const
inlineoverride

Returns the ID of the road.

Returns
ID of the road
1001 {
1002 return id;
1003 }
const std::list<RoadElevation *>& GetElevations ( ) const
inlineoverride

Returns the stored list of elevation profiles.

Returns
list of elevation profiles
1011 {
1012 return elevations;
1013 }
const std::list<RoadLaneOffset *>& GetLaneOffsets ( ) const
inlineoverride

Returns the stored list of lane offsets.

Returns
list of lane offsets
1021 {
1022 return laneOffsets;
1023 }
const std::list<RoadGeometryInterface *>& GetGeometries ( ) const
inlineoverride

Returns the stored list of road geometries.

Returns
list of road geometries
1031 {
1032 return geometries;
1033 }
const std::list<RoadLinkInterface *>& GetRoadLinks ( ) const
inlineoverride

Returns the stored list of road links.

Returns
list of road links
1041 {
1042 return links;
1043 }
const std::vector<RoadLaneSectionInterface *>& GetLaneSections ( ) const
inlineoverride

Returns the stored list of lane sections.

Returns
list of lane sections
1051 {
1052 return laneSections;
1053 }
const std::vector<RoadSignalInterface *>& GetRoadSignals ( ) const
inlineoverride

Returns the stored list of signals

Returns
list of signals
1061 {
1062 return roadSignals;
1063 }
const std::vector<RoadObjectInterface *>& GetRoadObjects ( ) const
inlineoverride

Returns the stored list of objects

Returns
list of objects
1071 {
1072 return roadObjects;
1073 }
void SetInDirection ( bool inDirection )
inlineoverride

Sets the flag, if the road is in the reference direction or not.

Parameters
[in] inDirection Flag, if the road is in the reference direction or not
1082 {
1083 this->inDirection = inDirection;
1084 }
bool GetInDirection ( ) const
inlineoverride

Returns if the road is in the reference direction or not.

Returns
Flag, if the road is in the reference direction or not
1093 {
1094 return inDirection;
1095 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: RoadGeometry Class Reference

Public Member Functions | Protected Member Functions | List of all members
RoadGeometry Class Referenceabstract

Public Member Functions

virtual Common::Vector2d | GetCoord (double sOffset, double tOffset) const override=0
virtual double | GetDir (double sOffset) const override=0
double | GetS () const override
double | GetHdg () const override
double | GetLength () const override

Protected Member Functions

Common::Vector2d | GetCoordLine (double sOffset, double tOffset) const
double | GetDirLine (double sOffset) const
Common::Vector2d | GetCoordArc (double sOffset, double tOffset, double curvature) const
double | GetDirArc (double sOffset, double curvature) const

Detailed Description

Abstract class representing the geometry of a road, i.e. the layout of the road's reference line in the in the x/y plane.

Member Function Documentation

virtual Common::Vector2d GetCoord | ( | double | sOffset,
 |  | double | tOffset
 | ) |  | const
 overridepure virtual

Calculates the x/y coordinates as vector.

Parameters
[in] | sOffset | s offset within geometry section
[in] | tOffset | offset to the left
Returns
coordinates with the x/y coordinates
virtual double GetDir ( double sOffset ) const
overridepure virtual

Calculates the heading.

Parameters
[in] sOffset s offset within geometry section
Returns
heading
double GetS ( ) const
inlineoverride

Retrieves the s offset within the OpenDrive road.

Returns
s offset
473 {
474 return s;
475 }
double GetHdg ( ) const
inlineoverride

Retrieves the initial heading of the geometry section

Returns
initial heading of geometry
483 {
484 return hdg;
485 }
double GetLength ( ) const
inlineoverride

Retrieves the length of the geometry section

Returns
length of geometry section
493 {
494 return length;
495 }
Common::Vector2d GetCoordLine | ( | double | sOffset,
 |  | double | tOffset
 | ) |  | const
 protected

Gets the coordinate at the s and t offest if the road is linear.

Parameters
[in] | sOffset | s offset within geometry section
[in] | tOffset | offset to the left
Returns
coordinates with the x/y coordinates
128 {
129 if (length < sOffset)
130 {
131 LOG_INTERN(LogLevel::Warning) << "exceeding length of geometry";
132 sOffset = length;
133 }
134
135 // unrotated road initially pointing to east
136 Common::Vector2d offset(sOffset, tOffset);
137
138 offset.Rotate(hdg);
139
140 offset.x += x;
141 offset.y += y;
142
143 return offset;
144 }
Common::Vector2d
Definition: vector2d.h:26

Here is the call graph for this function:

double GetDirLine ( double sOffset ) const
protected

Returns the direction of the line, i.e. the start orientation.

Parameters
[in] sOffset offset within geometry section; unused
Returns
direction
147 {
148 Q_UNUSED(sOffset);
149 return hdg;
150 }
Common::Vector2d GetCoordArc | ( | double | sOffset,
 |  | double | tOffset,
 |  | double | curvature
 | ) |  | const
 protected

Gets the coordinate at the s and t offest if the road is an arc.

Parameters
[in] | sOffset | s offset within geometry section
[in] | tOffset | offset to the left
[in] | curvature | curvature of the arc
Returns
coordinates with the x/y coordinates
153 {
154 if (length < sOffset)
155 {
156 LOG_INTERN(LogLevel::Warning) << "exceeding length of geometry";
157 sOffset = length;
158 }
159
160 double radius = 1 / curvature;
161 double circumference = 2 * M_PI / curvature;
162
163 // account for sOffset beyond circumference
164 // fractionRad = fractionCircumference * 2 * PI / circumference
165 double fractionRad = fmod(sOffset, circumference) * curvature;
166
167 // shift by radius to rotate around center at origin
168 Common::Vector2d offset(0, -radius + tOffset);
169 offset.Rotate(fractionRad);
170
171 // shift back
172 offset.y += radius;
173
174 offset.Rotate(hdg);
175
176 offset.x += x;
177 offset.y += y;
178
179 return offset;
180 }
Common::Vector2d
Definition: vector2d.h:26

Here is the call graph for this function:

double GetDirArc | ( | double | sOffset,
 |  | double | curvature
 | ) |  | const
 protected

Returns the heading of an arc, i.e. the initial heading plus the fraction of the radius due to the curvature.

Parameters
[in] | sOffset | s offset within geometry section
[in] | curvature | curvature of the arc
Returns
heading of the arc
183 {
184 double circumference = 2 * M_PI / curvature;
185
186 // account for sOffset beyond circumference
187 // fractionRad = fractionCircumference * 2 * PI / circumference
188 double fractionRad = fmod(sOffset, circumference) * curvature;
189
190 return hdg + fractionRad;
191 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: RoadGeometryArc Class Reference

Public Member Functions | List of all members
RoadGeometryArc Class Reference

Class representing a road arc as a RoadGeometry. More...

Public Member Functions

double | GetCurvature () const
- Public Member Functions inherited from RoadGeometry
double | GetS () const override
double | GetHdg () const override
double | GetLength () const override

Additional Inherited Members

- Protected Member Functions inherited from RoadGeometry
Common::Vector2d | GetCoordLine (double sOffset, double tOffset) const
double | GetDirLine (double sOffset) const
Common::Vector2d | GetCoordArc (double sOffset, double tOffset, double curvature) const
double | GetDirArc (double sOffset, double curvature) const

Detailed Description

Class representing a road arc as a RoadGeometry.

Member Function Documentation

double GetCurvature ( ) const
inline

Returns the stored curvature.

Returns
curvature
576 {
577 return curvature;
578 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: RoadGeometryLine Class Reference

List of all members
RoadGeometryLine Class Reference

Class representing a road line as a RoadGeometry. More...

Additional Inherited Members

- Public Member Functions inherited from RoadGeometry
double | GetS () const override
double | GetHdg () const override
double | GetLength () const override
- Protected Member Functions inherited from RoadGeometry
Common::Vector2d | GetCoordLine (double sOffset, double tOffset) const
double | GetDirLine (double sOffset) const
Common::Vector2d | GetCoordArc (double sOffset, double tOffset, double curvature) const
double | GetDirArc (double sOffset, double curvature) const

Detailed Description

Class representing a road line as a RoadGeometry.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: RoadGeometryParamPoly3 Class Reference

Public Member Functions | List of all members
RoadGeometryParamPoly3 Class Reference

Class representing a road form defined via a parametric cubic polynomial as a RoadGeometry. More...

Public Member Functions

double | GetAU () const
double | GetBU () const
double | GetCU () const
double | GetD () const
double | GetAV () const
double | GetBV () const
double | GetCV () const
double | GetDV () const
- Public Member Functions inherited from RoadGeometry
double | GetS () const override
double | GetHdg () const override
double | GetLength () const override

Additional Inherited Members

- Protected Member Functions inherited from RoadGeometry
Common::Vector2d | GetCoordLine (double sOffset, double tOffset) const
double | GetDirLine (double sOffset) const
Common::Vector2d | GetCoordArc (double sOffset, double tOffset, double curvature) const
double | GetDirArc (double sOffset, double curvature) const

Detailed Description

Class representing a road form defined via a parametric cubic polynomial as a RoadGeometry.

Member Function Documentation

double GetAU ( ) const
inline

Returns the constant factor of the polynomial for the u coordinate.

Returns
constant factor of the polynomial
763 {
764 return parameters.aU;
765 }
double GetBU ( ) const
inline

Returns the linear factor of the polynomial for the u coordinate.

Returns
linear factor of the polynomial
773 {
774 return parameters.bU;
775 }
double GetCU ( ) const
inline

Returns the quadratic factor of the polynomial for the u coordinate.

Returns
quadratic factor of the polynomial
783 {
784 return parameters.cU;
785 }
double GetD ( ) const
inline

Returns the cubic factor of the polynomial for the u coordinate.

Returns
cubic factor of the polynomial
793 {
794 return parameters.dU;
795 }
double GetAV ( ) const
inline

Returns the constant factor of the polynomial for the v coordinate.

Returns
constant factor of the polynomial
803 {
804 return parameters.aV;
805 }
double GetBV ( ) const
inline

Returns the linear factor of the polynomial for the v coordinate.

Returns
linear factor of the polynomial
813 {
814 return parameters.bV;
815 }
double GetCV ( ) const
inline

Returns the quadratic factor of the polynomial for the v coordinate.

Returns
quadratic factor of the polynomial
823 {
824 return parameters.cV;
825 }
double GetDV ( ) const
inline

Returns the cubic factor of the polynomial for the v coordinate.

Returns
cubic factor of the polynomial
833 {
834 return parameters.dV;
835 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: RoadGeometryPoly3 Class Reference

Public Member Functions | List of all members
RoadGeometryPoly3 Class Reference

Class representing a road form defined via a cubic polynomial as a RoadGeometry. More...

Public Member Functions

double | GetA () const
double | GetB () const
double | GetC () const
double | GetD () const
- Public Member Functions inherited from RoadGeometry
double | GetS () const override
double | GetHdg () const override
double | GetLength () const override

Additional Inherited Members

- Protected Member Functions inherited from RoadGeometry
Common::Vector2d | GetCoordLine (double sOffset, double tOffset) const
double | GetDirLine (double sOffset) const
Common::Vector2d | GetCoordArc (double sOffset, double tOffset, double curvature) const
double | GetDirArc (double sOffset, double curvature) const

Detailed Description

Class representing a road form defined via a cubic polynomial as a RoadGeometry.

Member Function Documentation

double GetA ( ) const
inline

Returns the constant factor of the polynomial.

Returns
constant factor of the polynomial
702 {
703 return a;
704 }
double GetB ( ) const
inline

Returns the linear factor of the polynomial.

Returns
linear factor of the polynomial
712 {
713 return b;
714 }
double GetC ( ) const
inline

Returns the quadratic factor of the polynomial.

Returns
quadratic factor of the polynomial
722 {
723 return c;
724 }
double GetD ( ) const
inline

Returns the cubic factor of the polynomial.

Returns
cubic factor of the polynomial
732 {
733 return d;
734 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: RoadGeometrySpiral Class Reference

Public Member Functions | List of all members
RoadGeometrySpiral Class Reference

Class representing a spiral road (clothoid) as a RoadGeometry. More...

Public Member Functions

double | GetCurvStart () const
double | GetCurvEnd () const
- Public Member Functions inherited from RoadGeometry
double | GetS () const override
double | GetHdg () const override
double | GetLength () const override

Additional Inherited Members

- Protected Member Functions inherited from RoadGeometry
Common::Vector2d | GetCoordLine (double sOffset, double tOffset) const
double | GetDirLine (double sOffset) const
Common::Vector2d | GetCoordArc (double sOffset, double tOffset, double curvature) const
double | GetDirArc (double sOffset, double curvature) const

Detailed Description

Class representing a spiral road (clothoid) as a RoadGeometry.

Member Function Documentation

double GetCurvStart ( ) const
inline

Returns the curvature at the start of the spiral.

Returns
curvature at the start of the spiral
604 {
605 return curvStart;
606 }
double GetCurvEnd ( ) const
inline

Returns the curvature at the end of the spiral.

Returns
curvature at the end of the spiral
614 {
615 return curvEnd;
616 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: RoadInterval Struct Reference

List of all members
RoadInterval Struct Reference

Interval on a specific road. More...

Detailed Description

Interval on a specific road.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: RoadLane Class Reference

Public Member Functions | List of all members
RoadLane Class Reference

Class representing a road lane. More...

Public Member Functions

bool | AddWidth (double sOffset, double a, double b, double c, double d) override
bool | AddBorder (double sOffset, double a, double b, double c, double d) override
bool | AddSuccessor (int id) override
bool | AddPredecessor (int id) override
int | GetId () const override
RoadLaneType | GetType () const override
const std::list< RoadLaneWidth * > & | GetWidths () const override
const std::list< RoadLaneWidth * > & | GetBorders () const override
const std::list< int > & | GetSuccessor () const override
const std::list< int > & | GetPredecessor () const override
void | SetInDirection (bool inDirection) override
bool | GetInDirection () const override
RoadLaneSectionInterface * | GetLaneSection () const override
bool | AddRoadMark (double sOffset, RoadLaneRoadDescriptionType type, RoadLaneRoadMarkType roadMark, RoadLaneRoadMarkColor color, RoadLaneRoadMarkLaneChange laneChange, RoadLaneRoadMarkWeight weight) override
const std::list< RoadLaneRoadMark * > & | GetRoadMarks () const override

Detailed Description

Class representing a road lane.

Member Function Documentation

bool AddWidth | ( | double | sOffset,
 |  | double | a,
 |  | double | b,
 |  | double | c,
 |  | double | d
 | ) |  |
override

Adds a new polynomial calculating the width of a lane to a road lane.

Parameters
[in] | sOffset | Offset relative to the preceding lane section
[in] | a | Constant factor from the polynomial
[in] | b | Linear factor from the polynomial
[in] | c | Quadratic factor from the polynomial
[in] | d | Cubic factor from the polynomial
Returns
False if an error occurred, true otherwise
45 {
46 RoadLaneWidth *laneWidth = new (std::nothrow) RoadLaneWidth(sOffset, a, b, c, d);
47 if (!laneWidth)
48 {
49 return false;
50 }
51
52 widths.push_back(laneWidth);
53
54 return true;
55 }
bool AddBorder | ( | double | sOffset,
 |  | double | a,
 |  | double | b,
 |  | double | c,
 |  | double | d
 | ) |  |
override

Adds a new polynomial calculating the border of a lane to a road lane.

Parameters
[in] | sOffset | Offset relative to the preceding lane section
[in] | a | Constant factor from the polynomial
[in] | b | Linear factor from the polynomial
[in] | c | Quadratic factor from the polynomial
[in] | d | Cubic factor from the polynomial
Returns
False if an error occurred, true otherwise
58 {
59 RoadLaneWidth *laneWidth = new (std::nothrow) RoadLaneWidth(sOffset, a, b, c, d);
60 if (!laneWidth)
61 {
62 return false;
63 }
64
65 borders.push_back(laneWidth);
66
67 return true;
68 }
bool AddSuccessor ( int id )
override

Adds the ID of a successor lane to a road lane.

Parameters
[in] id ID of a successor lane
Returns
False if an error occurred, true otherwise
71 {
72 ThrowIfFalse(successor.empty(), "added more than one successor to road lane.");
73 successor.push_back(id);
74
75 return true;
76 }
bool AddPredecessor ( int id )
override

Adds the ID of a predecessor lane to a road lane.

Parameters
[in] id ID of a predecessor lane
Returns
False if an error occurred, true otherwise
79 {
80 ThrowIfFalse(predecessor.empty(), "added more than one predecessor to road lane.");
81 predecessor.push_back(id);
82
83 return true;
84 }
int GetId ( ) const
inlineoverride

Returns the ID of the road lane.

Returns
ID of the road lane
186 {
187 return id;
188 }
RoadLaneType GetType ( ) const
inlineoverride

Returns the RoadLaneTypeType of the road lane.

Returns
RoadLaneTypeType of the road lane
196 {
197 return type;
198 }
const std::list<RoadLaneWidth *>& GetWidths ( ) const
inlineoverride

Returns the widths of the road lane.

Returns
RoadLaneTypeType of the road lane
206 {
207 return widths;
208 }
const std::list<RoadLaneWidth *>& GetBorders ( ) const
inlineoverride

Returns the borders of the road lane.

Returns
RoadLaneTypeType of the road lane
216 {
217 return borders;
218 }
const std::list<int>& GetSuccessor ( ) const
inlineoverride

Returns the successors of a road lane, can have at most one element.

Returns
Successors of the road lane
226 {
227 return successor;
228 }
const std::list<int>& GetPredecessor ( ) const
inlineoverride

Returns the predecessors of a road lane, can have at most one element.

Returns
Predecessors of the road lane
236 {
237 return predecessor;
238 }
void SetInDirection ( bool inDirection )
inlineoverride

Sets the flag, if the road lane is in the reference direction or not.

Parameters
[in] inDirection Flag, if the road lane is in the reference direction or not
247 {
248 this->inDirection = inDirection;
249 }
bool GetInDirection ( ) const
inlineoverride

Returns if the road lane is in the reference direction or not.

Returns
Flag, if the road lane is in the reference direction or not
258 {
259 return inDirection;
260 }
RoadLaneSectionInterface* GetLaneSection ( ) const
inlineoverride

Returns the RoadLaneSection to which the road lane belongs.

Returns
RoadLaneSection to which the road lane belongs
268 {
269 return laneSection;
270 }
bool AddRoadMark | ( | double | sOffset,
 |  | RoadLaneRoadDescriptionType | type,
 |  | RoadLaneRoadMarkType | roadMark,
 |  | RoadLaneRoadMarkColor | color,
 |  | RoadLaneRoadMarkLaneChange | laneChange,
 |  | RoadLaneRoadMarkWeight | weight
 | ) |  |
override

Adds a road mark to the road

Parameters
[in] | sOffset | s offset from start of road
[in] | type | location type of road mark (left, center, right)
[in] | roadMark | Type of the road mark
[in] | color | Color of the road mark
[in] | laneChange | Allowed lane change directions
[in] | weight | Weight of the road mark (standard or bold)
Returns
False if an error occurred, true otherwise
89 {
90 RoadLaneRoadMark *laneRoadMark =
91 new (std::nothrow) RoadLaneRoadMark(sOffset, type, roadMark, color, laneChange, weight);
92 if (!laneRoadMark)
93 {
94 return false;
95 }
96
97 for (auto roadMark : roadMarks)
98 {
99 roadMark->LimitSEnd(sOffset);
100 }
101 roadMarks.push_back(laneRoadMark);
102
103 return true;
104 }
const std::list<RoadLaneRoadMark *>& GetRoadMarks ( ) const
inlineoverride

Returns the road marks of the road

Returns
List of road marks
294 {
295 return roadMarks;
296 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: RoadLaneSection Class Reference

Public Member Functions | List of all members
RoadLaneSection Class Reference

Class representing a road lane section that can contain several road lanes. More...

Public Member Functions

RoadLane * | AddRoadLane (int id, RoadLaneType type) override
const std::map< int, RoadLaneInterface * > & | GetLanes () const override
double | GetStart () const override
void | SetInDirection (bool inDirection) override
void | SetLaneIndexOffset (int laneIndexOffset) override
void | SetId (int Id) override
bool | GetInDirection () const override
int | GetLaneIndexOffset () const override
int | GetId () const override
RoadInterface * | GetRoad () const override

Detailed Description

Class representing a road lane section that can contain several road lanes.

Member Function Documentation

RoadLane * AddRoadLane | ( | int | id,
 |  | RoadLaneType | type
 | ) |  |
override

Adds and returns a road lane.

Parameters
[in] | id | ID of the lane
[in] | type | RoadLaneTypeType of the lane
Returns
False if an error occurred, true otherwise
115 {
116 RoadLane *lane = new (std::nothrow) RoadLane(this, id, type);
117
118 if (!lanes.insert({id, lane}).second)
119 {
120 delete lane;
121 return nullptr;
122 }
123
124 return lane;
125 }
RoadLane
Class representing a road lane.
Definition: road.h:127
const std::map<int, RoadLaneInterface *>& GetLanes ( ) const
inlineoverride

Returns the stored road lanes as a mapping from their respective IDs.

Returns
Stored road lanes as a mapping from their respective IDs
343 {
344 return lanes;
345 }
double GetStart ( ) const
inlineoverride

Returns the starting offset of the road lane section.

Returns
Starting offset of the road lane section
353 {
354 return start;
355 }
void SetInDirection ( bool inDirection )
inlineoverride

Sets the flag, if the lane section is in the reference direction or not.

Parameters
[in] inDirection Flag, if the road lane is in the reference direction or not
364 {
365 this->inDirection = inDirection;
366 }
void SetLaneIndexOffset ( int laneIndexOffset )
inlineoverride

Sets the index offset for the road lanes in this section.

Parameters
[in] laneIndexOffset Index offset for the road lanes in this section
374 {
375 this->laneIndexOffset = laneIndexOffset;
376 }
void SetId ( int Id )
inlineoverride

Sets the ID.

Parameters
[in] Id ID
384 {
385 this->Id = Id;
386 }
bool GetInDirection ( ) const
inlineoverride

Returns if the lane section is in the reference direction or not.

Returns
Flag, if the lane section is in the reference direction or not
395 {
396 return inDirection;
397 }
int GetLaneIndexOffset ( ) const
inlineoverride

Returns the index offset for the road lanes in this section.

Returns
Index offset for the road lanes in this section
405 {
406 return laneIndexOffset;
407 }
int GetId ( ) const
inlineoverride

Returns the ID.

Returns
ID
415 {
416 return Id;
417 }
RoadInterface* GetRoad ( ) const
inlineoverride

Returns the road from which this section is a part of.

Returns
Road from which this section is a part of
425 {
426 return road;
427 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: RoadLink Class Reference

Public Member Functions | List of all members
RoadLink Class Reference

Class representing a link to a road. More...

Public Member Functions

RoadLinkType | GetType () const override
RoadLinkElementType | GetElementType () const override
const std::string & | GetElementId () const override
ContactPointType | GetContactPoint () const override
RoadLinkDirectionType | GetDirection () const override
RoadLinkSideType | GetSide () const override

Detailed Description

Class representing a link to a road.

Member Function Documentation

RoadLinkType GetType ( ) const
inlineoverride

Returns the RoadLinkType of the RoadLink.

Returns
RoadLinkType of the RoadLink
61 {
62 return type;
63 }
RoadLinkElementType GetElementType ( ) const
inlineoverride

Returns the RoadLinkElementType of the RoadLink.

Returns
RoadLinkElementType of the RoadLink
71 {
72 return elementType;
73 }
const std::string& GetElementId ( ) const
inlineoverride

Returns the ID of the RoadLink.

Returns
ID of the RoadLink
81 {
82 return elementId;
83 }
ContactPointType GetContactPoint ( ) const
inlineoverride

Returns the ContactPointType of the RoadLink.

Returns
ContactPointType of the RoadLink
91 {
92 return contactPoint;
93 }
RoadLinkDirectionType GetDirection ( ) const
inlineoverride

Returns the RoadLinkDirectionType of the RoadLink.

Returns
RoadLinkDirectionType of the RoadLink
101 {
102 return direction;
103 }
RoadLinkSideType GetSide ( ) const
inlineoverride

Returns the RoadLinkSideType of the RoadLink.

Returns
RoadLinkSideType of the RoadLink
111 {
112 return side;
113 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: RoadNetworkBuilder Class Reference

Public Member Functions | List of all members
RoadNetworkBuilder Class Reference

Public Member Functions

std::pair< RoadGraph, RoadGraphVertexMapping > Build ()

Member Function Documentation

std::pair< RoadGraph, RoadGraphVertexMapping > Build ( )

Converts the road netwerk of OpenDrive into a graph representation

Returns
graph of the road network and mapping from roads (with direction) to the vertices
970 {
971 RoadGraph roadGraph;
972 RoadGraphVertexMapping vertices;
973
974 for (auto& [roadId, road] : scenery.GetRoads())
975 {
976 bool hasLeftLanes = road->GetLaneSections().front()->GetLanes().crbegin()->first > 0;
977 bool hasRightLanes = road->GetLaneSections().front()->GetLanes().cbegin()->first < 0;
978 if (hasLeftLanes)
979 {
980 RouteElement routeElement{roadId, false};
981 vertices[routeElement] = add_vertex(routeElement, roadGraph);
982 }
983 if (hasRightLanes)
984 {
985 RouteElement routeElement{roadId, true};
986 vertices[routeElement] = add_vertex(routeElement, roadGraph);
987 }
988 }
989
990 for (auto& [roadId, road] : scenery.GetRoads())
991 {
992 bool hasLeftLanes = road->GetLaneSections().front()->GetLanes().crbegin()->first > 0;
993 bool hasRightLanes = road->GetLaneSections().front()->GetLanes().cbegin()->first < 0;
994 for (auto& link : road->GetRoadLinks())
995 {
996 if (link->GetElementType() == RoadLinkElementType::Road)
997 {
998 if (link->GetType() == RoadLinkType::Successor)
999 {
1000 auto& successorId = link->GetElementId();
1001 if (link->GetContactPoint() == ContactPointType::Start)
1002 {
1003 if (hasRightLanes)
1004 {
1005 add_edge(vertices[{roadId, true}], vertices[{successorId, true}], roadGraph);
1006 }
1007 if (hasLeftLanes)
1008 {
1009 add_edge(vertices[{successorId, false}], vertices[{roadId, false}], roadGraph);
1010 }
1011 }
1012 else
1013 {
1014 if (hasRightLanes)
1015 {
1016 add_edge(vertices[{roadId, true}], vertices[{successorId, false}], roadGraph);
1017 }
1018 if (hasLeftLanes)
1019 {
1020 add_edge(vertices[{successorId, false}], vertices[{roadId, true}], roadGraph);
1021 }
1022 }
1023 }
1024 if (link->GetType() == RoadLinkType::Predecessor)
1025 {
1026 auto& predecessorId = link->GetElementId();
1027 if (link->GetContactPoint() == ContactPointType::Start)
1028 {
1029 if (hasRightLanes)
1030 {
1031 add_edge(vertices[{predecessorId, true}], vertices[{roadId, false}], roadGraph);
1032 }
1033 if (hasLeftLanes)
1034 {
1035 add_edge(vertices[{roadId, false}], vertices[{predecessorId, true}], roadGraph);
1036 }
1037 }
1038 else
1039 {
1040 if (hasRightLanes)
1041 {
1042 add_edge(vertices[{predecessorId, true}], vertices[{roadId, true}], roadGraph);
1043 }
1044 if (hasLeftLanes)
1045 {
1046 add_edge(vertices[{roadId, false}], vertices[{predecessorId, false}], roadGraph);
1047 }
1048 }
1049 }
1050 }
1051 }
1052 }
1053
1054 return {roadGraph, vertices};
1055 }
RouteElement
This represents one node on the road network graph of the world or in the routing graph of an agent...
Definition: worldDefinitions.h:210
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: RoadNetworkElement Struct Reference

List of all members
RoadNetworkElement Struct Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: RoadObject Class Reference

Public Member Functions | List of all members
RoadObject Class Reference

Public Member Functions

std::string | GetId () const
Returns the unique identification string of the road object. More...
double | GetS () const
Returns the s coordinate of the road object. More...
double | GetT () const
Returns the t coordinate of the road object. More...
double | GetHdg () const
Returns the heading of the road object (relative to road direction) More...
bool | IsValidForLane (int laneId) const
Check, if road object is valid for provided lane id. More...
RoadObjectType | GetType () const
Returns the type of the road object. More...
double | GetLength () const
Returns the length of the road object. More...
double | GetWidth () const
Returns the width of the road object. More...

Member Function Documentation

std::string GetId ( ) const

Returns the unique identification string of the road object.

Returns
id
49 {
50 return object.id;
51 }
double GetS ( ) const

Returns the s coordinate of the road object.

Returns
s coordinate [m]
54 {
55 return object.s;
56 }
double GetT ( ) const

Returns the t coordinate of the road object.

Returns
t coordinate [m]
59 {
60 return object.t;
61 }
double GetHdg ( ) const

Returns the heading of the road object (relative to road direction)

Returns
heading [rad]
29 {
30 return object.hdg;
31 }
bool IsValidForLane ( int laneId ) const

Check, if road object is valid for provided lane id.

Parameters
[in] laneId lane id to test validity for
Returns
True if valid, false otherwise.
64 {
65 return object.validity.all ||
66 ( std::find( object.validity.lanes.begin(), object.validity.lanes.end(), laneId) != object.validity.lanes.end() );
67 }
RoadObjectType GetType ( ) const

Returns the type of the road object.

Returns
type
14 {
15 return object.type;
16 }
double GetLength ( ) const

Returns the length of the road object.

Returns
length [m]
19 {
20 return object.length;
21 }
double GetWidth ( ) const

Returns the width of the road object.

Returns
width [m]
24 {
25 return object.width;
26 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: RoadPosition Struct Reference

List of all members
RoadPosition Struct Reference

Position of a point on a specific lane. More...

Detailed Description

Position of a point on a specific lane.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: RoadSignal Class Reference

Public Member Functions | List of all members
RoadSignal Class Reference

Class representing a road signal. More...

Public Member Functions

std::string | GetType () const override
Returns the type of the signal (e.g. code according to StVO) More...
std::string | GetSubType () const override
Returns the type of the signal (e.g. code according to StVO) More...
virtual std::string | GetId () const override
Returns the unique identification string of the signal. More...
double | GetValue () const override
Returns the value. More...
RoadSignalUnit | GetUnit () const override
Returns the unit. More...
std::string | GetText () const override
Returns the text on the signal. More...
double | GetS () const override
Returns the s coordinate of the signal. More...
double | GetT () const override
Returns the t coordinate of the signal. More...
RoadInterface * | GetRoad ()
bool | IsValidForLane (int laneId) const override
virtual double | GetHeight () const override
Returns the height of the signal. More...
virtual double | GetWidth () const override
Returns the width of the signal. More...
virtual double | GetLength () const
Returns the length of the signal. More...
virtual double | GetPitch () const
Returns the pitch of the signal. More...
virtual double | GetRoll () const
Returns the roll of the signal. More...
virtual double | GetYaw () const
Returns the yaw of the signal. More...
virtual bool | GetIsDynamic () const override
Returns true if the signal is dynamic. More...

Detailed Description

Class representing a road signal.

Member Function Documentation

std::string GetType ( ) const
override

Returns the type of the signal (e.g. code according to StVO)

Returns
type
14 {
15 return signal.type;
16 }
std::string GetSubType ( ) const
override

Returns the type of the signal (e.g. code according to StVO)

Returns
type
19 {
20 return signal.subtype;
21 }
std::string GetId ( ) const
overridevirtual

Returns the unique identification string of the signal.

Returns
id
24 {
25 return signal.id;
26 }
double GetValue ( ) const
override

Returns the value.

Returns
value
29 {
30 return signal.value;
31 }
RoadSignalUnit GetUnit ( ) const
override

Returns the unit.

Returns
unit
34 {
35 return signal.unit;
36 }
std::string GetText ( ) const
override

Returns the text on the signal.

Returns
text
39 {
40 return signal.text;
41 }
double GetS ( ) const
override

Returns the s coordinate of the signal.

Returns
s [m]
44 {
45 return signal.s;
46 }
double GetT ( ) const
override

Returns the t coordinate of the signal.

Returns
s [m]
49 {
50 return signal.t;
51 }
RoadInterface* GetRoad ( )
inline

Returns the road from which this section is a part of.

Returns
Road from which this section is a part of
82 {
83 return road;
84 }
bool IsValidForLane ( int laneId ) const
override

Returns if the signal is valid for a given lane

Parameters
[in] laneId lane Id of interest
Returns
true if signal is valid
54 {
55 return signal.validity.all ||
56 ( std::find( signal.validity.lanes.begin(), signal.validity.lanes.end(), laneId) != signal.validity.lanes.end() );
57 }
double GetHeight ( ) const
overridevirtual

Returns the height of the signal.

Returns
height [m]
60 {
61 return signal.height;
62 }
double GetWidth ( ) const
overridevirtual

Returns the width of the signal.

Returns
height [m]
65 {
66 return signal.width;
67 }
double GetLength ( ) const
virtual

Returns the length of the signal.

Returns
height [m]
70 {
71 return signal.length;
72 }
double GetPitch ( ) const
virtual

Returns the pitch of the signal.

Returns
height [m]
75 {
76 return signal.pitch;
77 }
double GetRoll ( ) const
virtual

Returns the roll of the signal.

Returns
height [m]
80 {
81 return signal.roll;
82 }
double GetYaw ( ) const
virtual

Returns the yaw of the signal.

Returns
height [m]
85 {
86 return signal.yaw;
87 }
bool GetIsDynamic ( ) const
overridevirtual

Returns true if the signal is dynamic.

Returns
true if dynamic == "yes"
90 {
91 return signal.dynamic == "yes";
92 }
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: RouteElement Struct Reference

List of all members
RouteElement Struct Reference

This represents one node on the road network graph of the world or in the routing graph of an agent. More...

Detailed Description

This represents one node on the road network graph of the world or in the routing graph of an agent.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: RunStatistic Class Reference

List of all members
RunStatistic Class Reference
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: RunStatisticCalculation Class Reference

Static Public Member Functions | List of all members
RunStatisticCalculation Class Reference

The RunStatisticCalculation class provides helper functions for run statistic analysis. More...

Static Public Member Functions

static void | DetermineEgoCollision (RunStatistic &runStatistic, const RunResultInterface &runResult, WorldInterface *world)
Determines whether the ego had a collision and sets the related flag in the RunStatistic. More...
static void | DetermineEgoCollision (RunStatistic &runStatistic, const RunResultInterface &runResult, WorldInterface *world)
Determines whether the ego had a collision and sets the related flag in the RunStatistic. More...

Detailed Description

The RunStatisticCalculation class provides helper functions for run statistic analysis.

Member Function Documentation

void DetermineEgoCollision | ( | RunStatistic & | runStatistic,
 |  | const RunResultInterface & | runResult,
 |  | WorldInterface * | world
 | ) |  |
static

Determines whether the ego had a collision and sets the related flag in the RunStatistic.

Parameters
[out] | runStatistic | Result is stored here
[in] | runResult | Structure to retrieve collisions from
[in] | world | Pointer to the world
15 {
16 auto egoAgent = world->GetEgoAgent();
17
18 if (!egoAgent)
19 {
20 return;
21 }
22
23 const int egoId = egoAgent->GetId();
24 auto collisionsIds = runResult.GetCollisionIds();
25
26 if (std::find(collisionsIds->cbegin(), collisionsIds->cend(), egoId) != collisionsIds->cend())
27 {
28 runStatistic.EgoCollision = true;
29 }
30 }
static void DetermineEgoCollision | ( | RunStatistic & | runStatistic,
 |  | const RunResultInterface & | runResult,
 |  | WorldInterface * | world
 | ) |  |
static

Determines whether the ego had a collision and sets the related flag in the RunStatistic.

Parameters
[out] | runStatistic | Result is stored here
[in] | runResult | Structure to retrieve collisions from
[in] | world | Pointer to the world
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: SampledGeometry Struct Reference

Public Member Functions | Public Attributes | List of all members
SampledGeometry Struct Reference

This struct is the result of the geometry sampling of one road section. More...

Public Member Functions

void Combine (SampledGeometry &other)
This is needed for calculating the curvature of the last joint. More...

Public Attributes

double endHeading
This is needed for calculating the curvature of the first joint.

Detailed Description

This struct is the result of the geometry sampling of one road section.

Member Function Documentation

void Combine ( SampledGeometry & other )

This is needed for calculating the curvature of the last joint.

Combine this SampledGeometry with another, that starts where this ends.

Parameters
other another SampledGeometry starting where this ends
154 {
155 if (other.borderPoints.size() < 2)
156 {
157 return;
158 }
159 assert(std::abs(borderPoints.back().s - other.borderPoints.front().s) < EPSILON);
160 borderPoints.insert(borderPoints.end(), other.borderPoints.begin() + 1, other.borderPoints.end());
161 endHeading = other.endHeading;
162 }
SampledGeometry::endHeading
double endHeading
This is needed for calculating the curvature of the first joint.
Definition: JointsBuilder.h:49

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SampledProfiles Struct Reference

Static Public Member Functions | Friends | List of all members
SampledProfiles Struct Reference

The SampledProfiles struct constains the name of all profiles sampled by the DynamicProfileSampler. With this the DynamicAgentTypeGenerator can generate an AgentType. More...

Static Public Member Functions

static DynamicProfileSampler make (std::string agentProfileName, StochasticsInterface &stochastics, ProfilesInterface *profiles)
Creates a new DynamicProfileSampler which can be used to build an instance of this struct. More...

Friends

class DynamicProfileSampler

Detailed Description

The SampledProfiles struct constains the name of all profiles sampled by the DynamicProfileSampler. With this the DynamicAgentTypeGenerator can generate an AgentType.

An instance of this struct is aquired by calling the static make function and then sequentially calling all sample function on the returned DynamicProfileSampler.

Member Function Documentation

DynamicProfileSampler make | ( | std::string | agentProfileName,
 |  | StochasticsInterface & | stochastics,
 |  | ProfilesInterface * | profiles
 | ) |  |
static

Creates a new DynamicProfileSampler which can be used to build an instance of this struct.

Parameters
agentProfileName | name of the AgentProfile samplied by the AgentProfileSampler
stochastics | Reference to the stochasticInterface
profiles | imported profiles from the ProfilesCatalog
Returns
new instance of DynamicProfileSampler
47 {
48 return DynamicProfileSampler(agentProfileName, stochastics, profiles);
49 }
DynamicProfileSampler
The DynamicProfileSampler class is responsible for sampling all profile names (except AgentProfile wh...
Definition: dynamicProfileSampler.h:47

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SceneryConverter Class Reference

Public Member Functions | Protected Member Functions | List of all members
SceneryConverter Class Reference

Public Member Functions

bool | ConvertRoads ()
void | ConvertObjects ()
Places all static traffic objects and all traffic signs in the world.

Protected Member Functions

void Log (CbkLogLevel logLevel, const char *file, int line, const std::string &message)

Detailed Description

Class for the convertion of a scenery, i.e. the roads in it; the road geometry is converted in class GeometryConverter.

Member Function Documentation

bool ConvertRoads ( )

Triggers the convertion process from OpenDrive to OSI in the following steps:

  • defines a unique direction within the road cluster (MarkDirections())
  • assigns IDs to OpenDrive lane sections
  • generates the mappings for lanes and lane sections from OpenDrive to OSI
  • then connects these sections
  • finally, triggers convertion of the road geometries
Returns
False if an error occurred, true otherwise
686 {
687 // define a unique directions of roads/lanes within each road cluster
688 if (!MarkDirections())
689 {
690 return false;
691 }
692
693 CreateRoads();
694
695 // connect roads in data layer
696 if (!ConnectRoads())
697 {
698 return false;
699 }
700
701 GeometryConverter::Convert(*scenery, worldData);
702 return true;
703 }
GeometryConverter::Convert
void Convert(const SceneryInterface &scenery, OWL::Interfaces::WorldData &worldData)
Converts OpenDrive road network to OSI objects.
Definition: GeometryConverter.cpp:577

Here is the call graph for this function:

void Log | ( | CbkLogLevel | logLevel,
 |  | const char * | file,
 |  | int | line,
 |  | const std::string & | message
 | ) |  |
inlineprotected

Provides callback to LOG() macro

Parameters
[in] | logLevel | Importance of log
[in] | file | Name of file where log is called
[in] | line | Line within file where log is called
[in] | message | Message to log
93 {
94 if(callbacks)
95 {
96 callbacks->Log(logLevel,
97 file,
98 line,
99 message);
100 }
101 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SecondaryDriverTasksSignal Class Reference

Public Member Functions | List of all members
SecondaryDriverTasksSignal Class Reference

Public Member Functions

SecondaryDriverTasksSignal ()
Constructor.
SecondaryDriverTasksSignal (int indicatorState, bool hornSwitch, bool headLightSwitch, bool highBeamLightSwitch, bool flasher, ComponentState componentState)
Constructor.
SecondaryDriverTasksSignal (SecondaryDriverTasksSignal &other)
Constructor.
virtual operator std::string () const

Member Function Documentation

virtual operator std::string ( ) const
inlinevirtual

Returns the content/payload of the signal as an std::string

Returns
Content/payload of the signal as an std::string
85 {
86 std::ostringstream stream;
87 stream << COMPONENTNAME;
88 return stream.str();
89 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SensorDataSignal Class Reference

Public Member Functions | Public Attributes | List of all members
SensorDataSignal Class Reference

Public Member Functions

SensorDataSignal (osi3::SensorData sensorData)
Constructor.
virtual operator std::string () const

Public Attributes

osi3::SensorData sensorData
OSI SensorData payload of this signal.

Member Function Documentation

virtual operator std::string ( ) const
inlinevirtual

Returns the content/payload of the signal as an std::string

Returns
Content/payload of the signal as an std::string
49 {
50 std::ostringstream stream;
51 stream << COMPONENTNAME;
52 return stream.str();
53 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SensorDetectionResults Struct Reference

List of all members
SensorDetectionResults Struct Reference
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SensorDriverCalculations Class Reference

Public Member Functions | List of all members
SensorDriverCalculations Class Reference

Utility class for the sensor driver. More...

Public Member Functions

double GetLateralDistanceToObject (const std::string &roadId, const AgentInterface *otherObject)
Calculates the lateral distance (i.e. distance in t) between the own agent and another agent.

Detailed Description

Utility class for the sensor driver.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SensorDriverImplementation Class Reference

Public Member Functions | Public Attributes | List of all members
SensorDriverImplementation Class Reference

Public Member Functions

SensorDriverImplementation (std::string componentName, bool isInit, int priority, int offsetTime, int responseTime, int cycleTime, StochasticsInterface *stochastics, WorldInterface *world, const ParameterInterface *parameters, PublisherInterface *const publisher, const CallbackInterface *callbacks, AgentInterface *agent)
Constructor. More...

Public Attributes

const std::string COMPONENTNAME = "SensorDriver"
Name of the component for debug output.

Detailed Description

Constructor & Destructor Documentation

SensorDriverImplementation | ( | std::string | componentName,
 |  | bool | isInit,
 |  | int | priority,
 |  | int | offsetTime,
 |  | int | responseTime,
 |  | int | cycleTime,
 |  | StochasticsInterface * | stochastics,
 |  | WorldInterface * | world,
 |  | const ParameterInterface * | parameters,
 |  | PublisherInterface *const | publisher,
 |  | const CallbackInterface * | callbacks,
 |  | AgentInterface * | agent
 | ) |  |

Constructor.

Parameters
[in] | componentName | Name of the component
[in] | isInit | Query whether the component was just initialized
[in] | priority | Priority of the component
[in] | offsetTime | Offset time of the component
[in] | responseTime | Response time of the component
[in] | cycleTime | Cycle time of this components trigger task [ms]
[in] | stochastics | Provides access to the stochastics functionality of the framework
[in] | world | Provides access to world representation
[in] | parameters | Interface provides access to the configuration parameters
[in] | pubisher | Instance provided by the framework
[in] | callbacks | Interface for callbacks to framework
[in] | agent | This interface provides access to agent parameters, properties, attributes and dynamic states
36 :
37 SensorInterface(
38 componentName,
39 isInit,
40 priority,
41 offsetTime,
42 responseTime,
43 cycleTime,
44 stochastics,
45 world,
46 parameters,
47 publisher,
48 callbacks,
49 agent),
50 egoAgent(agent->GetEgoAgent()),
51 sensorDriverCalculations(egoAgent)
52 {
53 UpdateGraphPosition();
54 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SensorDriverSignal Class Reference

Public Member Functions | List of all members
SensorDriverSignal Class Reference

Public Member Functions

SensorDriverSignal (OwnVehicleInformation ownVehicleInformation, TrafficRuleInformation trafficRuleInformation, GeometryInformation geometryInformation, SurroundingObjects surroundingObjects)
Constructor.
virtual | operator std::string () const
virtual OwnVehicleInformation | GetOwnVehicleInformation () const
Returns the information about the own vehicle.
virtual TrafficRuleInformation | GetTrafficRuleInformation () const
Returns the traffic rule information.
virtual GeometryInformation | GetGeometryInformation () const
Returns the lane geometry information.
virtual SurroundingObjects | GetSurroundingObjects () const
Returns the information about the surrouding objects.

Member Function Documentation

virtual operator std::string ( ) const
inlinevirtual

Returns the content/payload of the signal as an std::string

Returns
Content/payload of the signal as an std::string
58 {
59 return COMPONENTNAME;
60 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SensorFusionHelperFunctions Class Reference

List of all members
SensorFusionHelperFunctions Class Reference
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SensorRecordStateImplementation Class Reference

Public Member Functions | List of all members
SensorRecordStateImplementation Class Reference

records the state of the agent. More...

Public Member Functions

void | UpdateInput (int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)
Update Inputs. More...
void | UpdateOutput (int localLinkId, std::shared_ptr< SignalInterface const > &data, int time)
Update outputs. More...
void | Trigger (int time)
Process data within component. More...

Detailed Description

records the state of the agent.

This component is used to record the state of agent in every single timestep.

Member Function Documentation

void UpdateInput | ( | int | localLinkId,
 |  | const std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |

Update Inputs.

Function is called by framework when another component delivers a signal over a channel to this component (scheduler calls update taks of other component).

Refer to module description for input channels and input ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentInput"
[in] | data | Referenced signal (copied by sending component)
[in] | time | Current scheduling time
61 {
62 }
void UpdateOutput | ( | int | localLinkId,
 |  | std::shared_ptr< SignalInterface const > & | data,
 |  | int | time
 | ) |  |

Update outputs.

Function is called by framework when this Component.has to deliver a signal over a channel to another component (scheduler calls update task of this component).

Refer to module description for output channels and output ids.

Parameters
[in] | localLinkId | Corresponds to "id" of "ComponentOutput"
[out] | data | Referenced signal (copied by this component)
[in] | time | Current scheduling time
65 {
66 }
void Trigger ( int time )

Process data within component.

Function is called by framework when the scheduler calls the trigger task of this component.

Refer to module description for information about the module's task.

Parameters
[in] time Current scheduling time
69 {
70 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SignalVector< DT > Class Template Reference

Public Member Functions | Public Attributes | List of all members
SignalVector< DT > Class Template Reference

Primitive signal class for vectors. More...

Public Member Functions

virtual operator std::string () const
Converts signal to string.

Public Attributes

std::vector< DT > value
signal content

Detailed Description

template<typename DT>
class SignalVector< DT >

Primitive signal class for vectors.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SimulationTimeCondition Class Reference

List of all members
SimulationTimeCondition Class Reference
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SpawnPointDependencies Struct Reference

List of all members
SpawnPointDependencies Struct Reference
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SpawnPointLibraryInfo Struct Reference

List of all members
SpawnPointLibraryInfo Struct Reference
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SpawnPointPreRunCommon Class Reference

Public Member Functions | List of all members
SpawnPointPreRunCommon Class Reference

spawns agents for all scenarios More...

Public Member Functions

Agents Trigger (int time) override
Trigger creates the agents for the spawn points. More...

Detailed Description

spawns agents for all scenarios

This class implements the entire SpawnPointPreRunCommon logic. The spawnpoint calls the agentsampler to fill out all probability related parameters of the blueprint. The spawnpoint then adds the spawning depended parameters to the agentblueprint. The agentblueprint is then forwarded to the AgentFactory for instantiation.

Member Function Documentation

SpawnPointInterface::Agents Trigger ( int time )
override

Trigger creates the agents for the spawn points.

Returns
the created agents
28 {
29 SpawnPointInterface::Agents newAgents;
30
31 for (const auto &spawnArea : parameters.spawnAreas)
32 {
33 for (const auto &roadId : spawnArea.roadIds)
34 {
35 for (const auto laneId : spawnArea.laneIds)
36 {
37
38 const auto validLaneSpawningRanges = worldAnalyzer.GetValidLaneSpawningRanges(roadId,
39 laneId,
40 spawnArea.sStart,
41 spawnArea.sEnd);
42 if (validLaneSpawningRanges)
43 {
44 for (const auto& spawningRange : *validLaneSpawningRanges)
45 {
46 const auto generatedAgents = GenerateAgentsForRange(laneId,
47 roadId,
48 spawningRange);
49 newAgents.insert(std::cend(newAgents),
50 std::cbegin(generatedAgents),
51 std::cend(generatedAgents));
52 }
53 }
54 }
55 }
56 }
57
58 return newAgents;
59 }
WorldAnalyzer::GetValidLaneSpawningRanges
std::optional< ValidLaneSpawningRanges > GetValidLaneSpawningRanges(const RoadId &roadId, const LaneId laneId, const SPosition sStart, const SPosition sEnd) const
Definition: WorldAnalyzer.cpp:44

Here is the call graph for this function:

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SpawnPointRuntimeCommon Class Reference

Public Member Functions | List of all members
SpawnPointRuntimeCommon Class Reference

Public Member Functions

Agents Trigger (int time) override
Trigger creates the agents for the spawn points. More...

Member Function Documentation

SpawnPointInterface::Agents Trigger ( int time )
override

Trigger creates the agents for the spawn points.

Returns
the created agents
33 {
34 SpawnPointInterface::Agents agents;
35
36 for (size_t i = 0; i < parameters.spawnPositions.size(); ++i)
37 {
38 if (time >= queuedSpawnDetails[i].spawnTime && AreSpawningCoordinatesValid(queuedSpawnDetails[i], parameters.spawnPositions[i]))
39 {
40 AdjustVelocityForCrash(queuedSpawnDetails[i], parameters.spawnPositions[i]);
41 SimulationSlave::Agent* newAgent = dependencies.agentFactory->AddAgent(&(queuedSpawnDetails[i].agentBlueprint));
42
43 if (newAgent != nullptr)
44 {
45 agents.emplace_back(newAgent);
46 }
47
48 queuedSpawnDetails[i] = GenerateSpawnDetailsForLane(parameters.spawnPositions[i], time);
49 }
50 }
51
52 return agents;
53 }
SimulationSlave::Agent
Definition: agent.h:44
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SpawnPointScenario Class Reference

Public Member Functions | List of all members
SpawnPointScenario Class Reference

spawns agents for all scenarios More...

Public Member Functions

Agents Trigger (int time) override
Trigger creates the agents for the spawn points. More...

Detailed Description

spawns agents for all scenarios

This class implements a SpawnPointInterface which is used by the framework to fill out AgentBlueprints. The spawnpoint calls the agentsampler to fill out all probability related parameters of the blueprint. The spawnpoint then adds the spawning depended parameters to the agentblueprint. The agentblueprint is then returned to the framework.

Member Function Documentation

SpawnPointInterface::Agents Trigger ( int time )
override

Trigger creates the agents for the spawn points.

Returns
the created agents
31 {
32 Agents agents;
33
34 for (const auto& entity : dependencies.scenario.value()->GetEntities())
35 {
36 if (entity.spawnInfo.spawning)
37 {
38 try
39 {
40 auto agentBlueprint = dependencies.agentBlueprintProvider->SampleAgent(entity.catalogReference.entryName, entity.assignedParameters);
41 agentBlueprint.SetAgentProfileName(entity.catalogReference.entryName);
42 agentBlueprint.SetAgentCategory(entity.name == "Ego"
43 ? AgentCategory::Ego
44 : AgentCategory::Scenario);
45 agentBlueprint.SetObjectName(entity.name);
46 agentBlueprint.SetSpawnParameter(CalculateSpawnParameter(entity.spawnInfo,
47 agentBlueprint.GetVehicleModelParameters()));
48
49 SimulationSlave::Agent* newAgent = dependencies.agentFactory->AddAgent(&agentBlueprint);
50
51 if(newAgent != nullptr)
52 {
53 agents.emplace_back(newAgent);
54 }
55 else
56 {
57 LogError(" failed to add agent successfully for entity "
58 + entity.name);
59 }
60
61 }
62 catch(const std::runtime_error& error)
63 {
64 LogError("SpawnPointScenario encountered an Error: " + std::string(error.what()));
65 }
66 }
67 }
68
69 return agents;
70 }
SimulationSlave::Agent
Definition: agent.h:44
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SpeedActionSignal Class Reference

Public Member Functions | List of all members
SpeedActionSignal Class Reference

Signal class. More...

Public Member Functions

SpeedActionSignal ()
Constructor.
SpeedActionSignal (SpeedActionSignal &other)
Constructor.
SpeedActionSignal (ComponentState componentState, const double targetSpeed, const double acceleration)
Constructor.
virtual operator std::string () const

Detailed Description

Signal class.

Member Function Documentation

virtual operator std::string ( ) const
inlinevirtual

Returns the content/payload of the signal as an std::string

Returns
Content/payload of the signal as an std::string
67 {
68 std::ostringstream stream;
69 stream << COMPONENTNAME << std::endl;
70 return stream.str();
71 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: STCoordinates Struct Reference

List of all members
STCoordinates Struct Reference
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SteeringController Class Reference

Public Member Functions | Protected Attributes | List of all members
SteeringController Class Reference

Public Member Functions

double | CalculateSteeringAngle (int time)
Calculates the steering angle for a given timestep. More...
void | SetLateralInput (const LateralSignal &lateralSignal)
Sets the lateral input, which contains the desired lateral position. More...
void | SetVehicleParameter (const double &steeringRatio, const double &maximumSteeringWheelAngleAmplitude, const double &wheelbase)
Sets the vehicle parameters. This should ideally only be called once. More...
void | SetVelocityAndSteeringWheelAngle (const double &velocity, const double &steeringWheelAngle)
Sets the current velocity and the current steeringwheel angle of the vehicle. More...

Protected Attributes

double | in_velocity = 0.0
current velocity
double | in_steeringWheelAngle = 0.0
current angle of the steering wheel
double | in_steeringRatio = 10.7
The steering ratio of the vehicle.
double | in_steeringMax = 180.0
The maximum steering wheel angle of the car in both directions in degree.
double | in_wheelBase = 2.89
The wheelbase of the car in m.
double | tAverage {0.}
Time to Average regulation over.
const double | RadiantToDegree = 57.295779513082320876798154814105
Helper constant to convert radiant into degree.
int | timeLast {-100}
Previous scheduling time (for calculation of cycle time lenght).
double | meanCurvatureToNearPointSmoothLast {0.}
running average of mean curvature up to NearPoint
double | meanCurvatureToFarPointSmoothLast {0.}
running average of mean curvature from NearPoint up to FarPoint
double | curvatureRoadSmoothLast {0.}
running average of kappaRoad at referencepoint

Member Function Documentation

double CalculateSteeringAngle ( int time )

Calculates the steering angle for a given timestep.

Parameters
[in] time Current scheduling time

return steering angle

24 {
25 // Time step length
26 double dt{(time - timeLast) * 0.001};
27 tAverage = .05;
28 double velocityForCalculations = std::fmax(20. / 3.6, in_velocity);
29 // Scale gains to current velocity. Linear interpolation between 0 and default values at 200km/h.
30 double velocityFactor = std::clamp(3.6 / 150. * velocityForCalculations, .15, 1.);
31 in_lateralSignal.gainLateralDeviation *= velocityFactor;
32 in_lateralSignal.gainHeadingError *= velocityFactor;
33 tAverage = tAverage / velocityFactor;
34
35 // Controller for lateral deviation
36 double deltaHLateralDeviation = in_lateralSignal.gainLateralDeviation
37 * in_steeringRatio * in_wheelBase / (velocityForCalculations * velocityForCalculations)
38 * in_lateralSignal.lateralDeviation * RadiantToDegree;
39
40 // Controller for heading angle error
41 double deltaHHeadingError = in_lateralSignal.gainHeadingError
42 * in_steeringRatio * in_wheelBase / velocityForCalculations
43 * in_lateralSignal.headingError * RadiantToDegree;
44
45 // Controller for road curvature
46 double meanCurvatureToNearPoint = 0.;
47 double meanCurvatureToFarPoint = 0.;
48 if (!in_lateralSignal.curvatureOfSegmentsToNearPoint.empty())
49 {
50 for (unsigned int i = 0; i < in_lateralSignal.curvatureOfSegmentsToNearPoint.size(); ++i)
51 {
52 meanCurvatureToNearPoint += in_lateralSignal.curvatureOfSegmentsToNearPoint.at(i);
53 }
54
55 meanCurvatureToNearPoint = meanCurvatureToNearPoint / in_lateralSignal.curvatureOfSegmentsToNearPoint.size();
56 }
57
58 if (!in_lateralSignal.curvatureOfSegmentsToFarPoint.empty())
59 {
60 for (unsigned int i = 0; i < in_lateralSignal.curvatureOfSegmentsToFarPoint.size(); ++i)
61 {
62 meanCurvatureToFarPoint += in_lateralSignal.curvatureOfSegmentsToFarPoint.at(i);
63 }
64
65 meanCurvatureToFarPoint = meanCurvatureToFarPoint / in_lateralSignal.curvatureOfSegmentsToFarPoint.size();
66 }
67
68 // Smooth curvatures with a running average filter
69 double meanCurvatureToNearPointSmooth = (dt * meanCurvatureToNearPoint + (tAverage - dt) *
70 meanCurvatureToNearPointSmoothLast) / tAverage;
71 double meanCurvatureToFarPointSmooth = (dt * meanCurvatureToFarPoint + (tAverage - dt) *
72 meanCurvatureToFarPointSmoothLast) / tAverage;
73 double curvatureRoadSmooth = (dt * in_lateralSignal.kappaRoad + (tAverage - dt) * curvatureRoadSmoothLast) / tAverage;
74
75 // Weighting of different curvature Information RoadSmooth, road, nearPointSmooth, farPointSmooth, nearPointMax
76 std::vector <double> weighingCurvaturePortions = {.75, 0.25, .15, -.10};
77 if (!in_lateralSignal.curvatureOfSegmentsToNearPoint.empty())
78 {
79 weighingCurvaturePortions.at(2) = 0.;
80 }
81
82 if (!in_lateralSignal.curvatureOfSegmentsToFarPoint.empty())
83 {
84 weighingCurvaturePortions.at(3) = 0.;
85 }
86
87 double calc_kappaRoadAnticipated = (weighingCurvaturePortions.at(0) * curvatureRoadSmooth +
88 weighingCurvaturePortions.at(1) * in_lateralSignal.kappaRoad +
89 weighingCurvaturePortions.at(2) * meanCurvatureToNearPointSmooth +
90 weighingCurvaturePortions.at(3) * meanCurvatureToFarPointSmooth) /
91 (weighingCurvaturePortions.at(0) + weighingCurvaturePortions.at(1) +
92 weighingCurvaturePortions.at(2) + weighingCurvaturePortions.at(3));
93
94 // Controller for road curvaturedelta due to manoeuvre
95 double deltaHkappa = std::atan((in_lateralSignal.kappaManoeuvre + calc_kappaRoadAnticipated) * in_wheelBase)
96 * in_steeringRatio * RadiantToDegree;
97
98
99 // Total steering wheel angle
100 double deltaH = deltaHLateralDeviation + deltaHHeadingError + deltaHkappa;
101
102 // Limit steering wheel velocity. Human limit set to 320°/s.
103 const auto maxDeltaSteeringWheelAngle = (320. / velocityFactor) * dt;
104 const auto deltaSteeringWheelAngle = deltaH - in_steeringWheelAngle;
105 if (std::fabs(deltaSteeringWheelAngle) > maxDeltaSteeringWheelAngle)
106 {
107 deltaH = std::copysign(maxDeltaSteeringWheelAngle, deltaSteeringWheelAngle) + in_steeringWheelAngle;
108 }
109
110 const auto desiredSteeringWheelAngle = TrafficHelperFunctions::ValueInBounds(-in_steeringMax, deltaH , in_steeringMax);
111
112 timeLast = time;
113 meanCurvatureToNearPointSmoothLast = meanCurvatureToNearPointSmooth;
114 meanCurvatureToFarPointSmoothLast = meanCurvatureToFarPointSmooth;
115 curvatureRoadSmoothLast = curvatureRoadSmooth;
116
117 return desiredSteeringWheelAngle;
118 }
SteeringController::RadiantToDegree
const double RadiantToDegree
Helper constant to convert radiant into degree.
Definition: steeringController.h:98
SteeringController::in_wheelBase
double in_wheelBase
The wheelbase of the car in m.
Definition: steeringController.h:90
SteeringController::meanCurvatureToFarPointSmoothLast
double meanCurvatureToFarPointSmoothLast
running average of mean curvature from NearPoint up to FarPoint
Definition: steeringController.h:106
SteeringController::timeLast
int timeLast
Previous scheduling time (for calculation of cycle time lenght).
Definition: steeringController.h:102
SteeringController::in_steeringWheelAngle
double in_steeringWheelAngle
current angle of the steering wheel
Definition: steeringController.h:83
TrafficHelperFunctions::ValueInBounds
static T ValueInBounds(const T &low, const T &value, const T &high)
Limits a value between a lower and an upper limit.
Definition: commonTools.h:227
SteeringController::in_steeringMax
double in_steeringMax
The maximum steering wheel angle of the car in both directions in degree.
Definition: steeringController.h:88
SteeringController::tAverage
double tAverage
Time to Average regulation over.
Definition: steeringController.h:95
SteeringController::meanCurvatureToNearPointSmoothLast
double meanCurvatureToNearPointSmoothLast
running average of mean curvature up to NearPoint
Definition: steeringController.h:104
SteeringController::in_velocity
double in_velocity
current velocity
Definition: steeringController.h:81
SteeringController::in_steeringRatio
double in_steeringRatio
The steering ratio of the vehicle.
Definition: steeringController.h:86
SteeringController::curvatureRoadSmoothLast
double curvatureRoadSmoothLast
running average of kappaRoad at referencepoint
Definition: steeringController.h:108

Here is the call graph for this function:

Here is the caller graph for this function:

void SetLateralInput ( const LateralSignal & lateralSignal )
inline

Sets the lateral input, which contains the desired lateral position.

Parameters
[in] lateralSignal LateralSignal
40 {
41 in_lateralSignal = lateralSignal;
42 }

Here is the caller graph for this function:

void SetVehicleParameter | ( | const double & | steeringRatio,
 |  | const double & | maximumSteeringWheelAngleAmplitude,
 |  | const double & | wheelbase
 | ) |  |
inline

Sets the vehicle parameters. This should ideally only be called once.

Parameters
[in] | steeringRatio | steeringRatio
[in] | maximumSteeringWheelAngleAmplitude | maximumSteeringWheelAngleAmplitude
[in] | wheelbase | wheelbase
54 {
55 in_steeringRatio = steeringRatio;
56 in_steeringMax = maximumSteeringWheelAngleAmplitude;
57 in_wheelBase = wheelbase;
58 }
SteeringController::in_wheelBase
double in_wheelBase
The wheelbase of the car in m.
Definition: steeringController.h:90
SteeringController::in_steeringMax
double in_steeringMax
The maximum steering wheel angle of the car in both directions in degree.
Definition: steeringController.h:88
SteeringController::in_steeringRatio
double in_steeringRatio
The steering ratio of the vehicle.
Definition: steeringController.h:86

Here is the caller graph for this function:

void SetVelocityAndSteeringWheelAngle | ( | const double & | velocity,
 |  | const double & | steeringWheelAngle
 | ) |  |
inline

Sets the current velocity and the current steeringwheel angle of the vehicle.

Parameters
[in] | velocity | Current velocity
[in] | steeringWheelAngle | Current steeringwheel angle
68 {
69 in_velocity = velocity;
70 in_steeringWheelAngle = steeringWheelAngle;
71 }
SteeringController::in_steeringWheelAngle
double in_steeringWheelAngle
current angle of the steering wheel
Definition: steeringController.h:83
SteeringController::in_velocity
double in_velocity
current velocity
Definition: steeringController.h:81

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SteeringSignal Class Reference

Public Member Functions | List of all members
SteeringSignal Class Reference

Signal class. More...

Public Member Functions

SteeringSignal (ComponentState componentState, double steeringWheelAngle)
Constructor.
virtual operator std::string () const

Detailed Description

Signal class.

Member Function Documentation

virtual operator std::string ( ) const
inlinevirtual

Returns the content/payload of the signal as an std::string

Returns
Content/payload of the signal as an std::string
54 {
55 std::ostringstream stream;
56 stream << COMPONENTNAME;
57 return stream.str();
58 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Stream< T > Class Template Reference

Public Member Functions | List of all members
Stream< T > Class Template Reference

Public Member Functions

Stream< T > | Reverse () const
Returns an element stream that has the same lanes in reverse order.
double | GetPositionByElementAndS (const T &element, double sCoordinate) const
std::pair< double, const T * > | GetElementAndSByPosition (double position) const
Returns the element and s coordinate corresponding to the given position on the stream.
bool | Contains (const T &element) const
Returns true if the specified element is contained in this element stream, false otherwise.

Detailed Description

template<typename T>
class Stream< T >

This class represent a consecutive sequence of elements. It is used by various queries to search along consecutive elements within a range starting at some start point The elements supported by this class are: OWL::Lane* OWL::Road*

Member Function Documentation

double GetPositionByElementAndS | ( | const T & | element,
 |  | double | sCoordinate
 | ) |  | const

Transform the sCoordinate on the given element to a position on the stream The element must be part of the stream

53 {
54 for (const auto& elemOnStream : elements)
55 {
56 if (elemOnStream.element == &element)
57 {
58 return elemOnStream.GetStreamPosition(sCoordinate - element.GetDistance(OWL::MeasurementPoint::RoadStart));
59 }
60 }
61 return -1.0;
62 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: StreamInfo< T > Struct Template Reference

Public Member Functions | Public Attributes | List of all members
StreamInfo< T > Struct Template Reference

Public Member Functions

StreamInfo ()=default
Specifies whether the direction of the element is the same as the direction of the stream.
double | GetStreamPosition (double elementPosition) const
double | StartS () const
Returns the element stream position of the start of lane.
double | EndS () const
Returns the element stream position of the end of lane.

Public Attributes

double | sOffset
element represented by this object
bool | inStreamDirection
S Offset of the start point of the element from the beginning of the stream.

Detailed Description

template<typename T>
struct StreamInfo< T >

This class represents one element of a Stream. StreamInfo can contain elements of the following types: OWL::Lane OWL::Road

Member Function Documentation

double GetStreamPosition ( double elementPosition ) const
inline

Transform the s coordinate on the element to the s coordinate on the element stream

Parameters
elementPosition position relative to the start of the element
Returns
position relative to the start of the element stream
48 {
49 return sOffset + (inStreamDirection ? elementPosition : -elementPosition);
50 }
StreamInfo::sOffset
double sOffset
element represented by this object
Definition: WorldDataQuery.h:27
StreamInfo::inStreamDirection
bool inStreamDirection
S Offset of the start point of the element from the beginning of the stream.
Definition: WorldDataQuery.h:28

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: SurroundingObjects Struct Reference

Public Attributes | List of all members
SurroundingObjects Struct Reference

Public Attributes

ObjectInformation objectFront
Next object in the same lane.
ObjectInformation objectRear
Closest object behind the agent in the same lane.
ObjectInformation objectFrontLeft
Next object in the lane to the left.
ObjectInformation objectRearLeft
Closest object behind the agent in the lane to the left.
ObjectInformation objectFrontRight
Next object in the lane to the right.
ObjectInformation objectRearRight
Closest object behind the agent in the lane to the right.

Detailed Description

This struct contains data of the objects surrounding the own agent as seen by the driver. For all cases mainLaneId is used as own lane

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Tire Class Reference

List of all members
Tire Class Reference

Static tire model based on TMEASY by Rill et al. More...

Detailed Description

Static tire model based on TMEASY by Rill et al.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: TrafficHelperFunctions Class Reference

Static Public Member Functions | List of all members
TrafficHelperFunctions Class Reference

Containing general static functions to evaluate traffic situations. More...

Static Public Member Functions

static double | CalculateNetTimeGap (double vRear, double netDistance)
Calculates the net time gap between two (moving) objects. More...
template<typename T >
static T | ValueInBounds (const T &low, const T &value, const T &high)
Limits a value between a lower and an upper limit. More...
static bool | WillCrashDuringBrake (double sDelta, double vEgo, double aEgo, double vFront, double aFront)
Calculates if two agents will collide during braking. More...
static bool | WillCrash (double sDelta, double vEgo, double assumedBrakeAccelerationEgo, double vFront, double aFront, double assumedTtb)
Calculates if two agents will collide during braking. More...

Detailed Description

Containing general static functions to evaluate traffic situations.

Member Function Documentation

static double CalculateNetTimeGap | ( | double | vRear,
 |  | double | netDistance
 | ) |  |
inlinestatic

Calculates the net time gap between two (moving) objects.

Time gap is the time until two objects collide if the front object stands still and the velocity of the rear object remains unchanged.

Net in this context means that the carlengths are already substracted from the caller, i.e. netDistance = |sDist| - c where c REK-usually {carlengthEffective, carlength} More sophisticated would be c = dist(refPointRear, FrontEdgeRear) + dist(refPointFront, RearEdgeFront) + MinGap where MinGap = 0 for true TTC, >0 for estimated TTC with a safety gap

Default values of the function: -1 | netDistance < 0 0 | netDistance = 0 netDistance | vRear <= 1

Java: computeNetGap

Parameters
[in] | vRear | velocity of the rear object
[in] | netDistance | distance between the objects
Returns
time gap between the two objects
202 {
203 if (netDistance < 0.0)
204 {
205 return -1.0;
206 }
207
208 return (netDistance <= 0.0) ? 0.0 : (vRear <= 1) ? netDistance : netDistance / vRear;
209 }
static T ValueInBounds | ( | const T & | low,
 |  | const T & | value,
 |  | const T & | high
 | ) |  |
inlinestatic

Limits a value between a lower and an upper limit.

Returns low | value < low value | low <= value < high high | value >= high

Parameters
[in] | low | lower limit
[in] | value | the value to be bounded
[in] | high | higher limit
Returns
bounded value
231 {
232 return (value < low) ? low : ((value < high) ? value : high);
233 }

Here is the caller graph for this function:

static bool WillCrashDuringBrake | ( | double | sDelta,
 |  | double | vEgo,
 |  | double | aEgo,
 |  | double | vFront,
 |  | double | aFront
 | ) |  |
inlinestatic

Calculates if two agents will collide during braking.

/details validates if cars crash during brake phase if velocity and acceleration of agents will be the same.

Parameters
[in] | sDelta | distance between both agents
[in] | vEgo | velocity ego
[in] | aEgo | acceleration ego
[in] | vFront | velocity front
[in] | aFront | acceleration front
Returns
true if collision would happen
250 {
251 //Calculate the intersection of the vehicles trajactory (quadratic functions)
252
253 auto stopTime = - vEgo / aEgo; //timepoint where ego stops
254 bool frontStopsEarlier = false;
255 double frontTravelDistance;
256
257 if (aFront < 0)
258 {
259 auto stopTimeFront = - vFront / aFront;
260 if (stopTimeFront < stopTime) //special case: FrontVehicle stops earlier than Ego
261 {
262 frontStopsEarlier = true;
263 frontTravelDistance = - 0.5 * vFront * vFront / aFront;
264 }
265 }
266
267 // acceleration equal -> difference of trajectories is linear
268 if (aEgo == aFront)
269 {
270
271 // velocity is equal: distance constant -> no crash
272 if(vEgo == vFront)
273 {
274 return false;
275 }
276
277 // intersection of lines
278 auto intersectionTime = sDelta / (vEgo - vFront);
279 if (0 <= intersectionTime && intersectionTime <= stopTime)
280 {
281 if (frontStopsEarlier)
282 {
283 auto travelDistance = - 0.5 * stopTime * stopTime * aEgo;
284 if (travelDistance < sDelta + frontTravelDistance)
285 {
286 return false;
287 }
288 }
289
290 return true;
291 }
292 }
293
294 // intersection of quadratic functions
295 auto discriminant = (vEgo - vFront) * (vEgo - vFront) + 2 * (aEgo - aFront) * sDelta;
296
297 if (discriminant < 0)
298 {
299 return false;
300 }
301
302
303 auto intersectionPoint1 = ((vFront - vEgo) + std::sqrt(discriminant)) / (aEgo - aFront);
304 auto intersectionPoint2 = ((vFront - vEgo) - std::sqrt(discriminant)) / (aEgo - aFront);
305
306 if ((0 <= intersectionPoint1 && intersectionPoint1 <= stopTime) ||
307 (0 <= intersectionPoint2 && intersectionPoint2 <= stopTime))
308 {
309 if (frontStopsEarlier)
310 {
311 auto travelDistance = - 0.5 * stopTime * stopTime * aEgo;
312 if (travelDistance < sDelta + frontTravelDistance)
313 {
314 return false;
315 }
316 }
317
318 return true;
319 }
320
321 return false;
322 }

Here is the caller graph for this function:

static bool WillCrash | ( | double | sDelta,
 |  | double | vEgo,
 |  | double | assumedBrakeAccelerationEgo,
 |  | double | vFront,
 |  | double | aFront,
 |  | double | assumedTtb
 | ) |  |
inlinestatic

Calculates if two agents will collide during braking.

validates if two cars crash within time to brake if velocity and acceleration of agents will be the same. Triggers WillCrashDuringBrake

Parameters
[in] | sDelta | distance between both agents
[in] | vEgo | velocity rear agent (ego)
[in] | aEgo | acceleration rear agent (ego)
[in] | vFront | velocity front
[in] | aFront | acceleratin front
[in] | assumedTtb | assumed time to brake
Returns
true if collision would happen
341 {
342 auto sEgoAtTtb = vEgo * assumedTtb;
343
344 // estimate values for front vehicle at t=ttb
345 auto stopTimeFront = aFront < 0 ? -vFront/aFront : std::numeric_limits<double>::max();
346 auto tFront = std::min(stopTimeFront, assumedTtb);
347 auto sFrontAtTtb = sDelta + vFront*tFront + aFront*tFront*tFront/2;
348 auto vFrontAtTtb = stopTimeFront < assumedTtb ? 0 : vFront + aFront*assumedTtb;
349 auto aFrontAtTtb = stopTimeFront < assumedTtb ? 0 : aFront;
350
351 if(sFrontAtTtb <= sEgoAtTtb) {
352 return true;
353 }
354
355 return WillCrashDuringBrake(sFrontAtTtb - sEgoAtTtb, vEgo, assumedBrakeAccelerationEgo, vFrontAtTtb, aFrontAtTtb);
356 }
TrafficHelperFunctions::WillCrashDuringBrake
static bool WillCrashDuringBrake(double sDelta, double vEgo, double aEgo, double vFront, double aFront)
Calculates if two agents will collide during braking.
Definition: commonTools.h:249

Here is the call graph for this function:

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: TrafficObjectAdapter Class Reference

List of all members
TrafficObjectAdapter Class Reference
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: TrafficRuleInformation Struct Reference

Public Attributes | List of all members
TrafficRuleInformation Struct Reference

This struct contains infrastructure information of surrounding lanes that are used to establish traffic rules. More...

Public Attributes

LaneInformationTrafficRules laneLeft
Data about the lane to left (in driving direction) of the mainLane.
LaneInformationTrafficRules laneEgo
Data about the lane the where the middle of the front of the agent is (i.e. mainLane)
LaneInformationTrafficRules laneRight
Data about the lane to right (in driving direction) of the mainLane.
std::vector< LaneMarking::Entity > | laneMarkingsLeft
List of lane markings on the left side of mainLane.
std::vector< LaneMarking::Entity > | laneMarkingsRight
List of lane markings on the right side of mainLane.
std::vector< LaneMarking::Entity > | laneMarkingsLeftOfLeftLane
List of lane markings on the left side of lane to the left.
std::vector< LaneMarking::Entity > | laneMarkingsRightOfRightLane
List of lane markings on the right side of lane to the right.

Detailed Description

This struct contains infrastructure information of surrounding lanes that are used to establish traffic rules.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: TrajectorySignal Class Reference

Public Member Functions | List of all members
TrajectorySignal Class Reference

Signal class. More...

Public Member Functions

TrajectorySignal ()
Constructor.
TrajectorySignal (TrajectorySignal &other)
Constructor.
TrajectorySignal (ComponentState componentState, openScenario::Trajectory trajectory)
Constructor.
virtual operator std::string () const

Detailed Description

Signal class.

Member Function Documentation

virtual operator std::string ( ) const
inlinevirtual

Returns the content/payload of the signal as an std::string

Returns
Content/payload of the signal as an std::string
77 {
78 std::ostringstream stream;
79 stream << COMPONENTNAME << "\n"
80 << trajectory;
81 return stream.str();
82 }
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: TtcCalculations Class Reference

Classes | Static Public Member Functions | List of all members
TtcCalculations Class Reference

Containing functions to calculate time to collision of two objects. More...

Classes

struct TtcParameters
Structure to hold all necessary world object parameters for TTC calculation. More...

Static Public Member Functions

static double CalculateObjectTTC (const AgentInterface &agent, const WorldObjectInterface &detectedObject, double maxTtc, double collisionDetectionLongitudinalBoundary, double collisionDetectionLateralBoundary, double cycleTime)
Calculates the time to collision between two (moving) objects. More...

Detailed Description

Containing functions to calculate time to collision of two objects.

Member Function Documentation

static double CalculateObjectTTC | ( | const AgentInterface & | agent,
 |  | const WorldObjectInterface & | detectedObject,
 |  | double | maxTtc,
 |  | double | collisionDetectionLongitudinalBoundary,
 |  | double | collisionDetectionLateralBoundary,
 |  | double | cycleTime
 | ) |  |
inlinestatic

Calculates the time to collision between two (moving) objects.

Time to collision (TTC) is the time until two objects collide if their accelerations remain unchanged.

Parameters
[in] | vRear | velocity of the rear object
[in] | vFront | velocity of the front object
[in] | netDistance | distance between the objects
Returns
time to collsion between the two objects
451 {
452 TtcParameters agentParameters = GetTTCObjectParameters(&agent, collisionDetectionLongitudinalBoundary, collisionDetectionLateralBoundary);
453 TtcParameters objectParameters = GetTTCObjectParameters(&detectedObject, collisionDetectionLongitudinalBoundary, collisionDetectionLateralBoundary);
454
455 return CalculateObjectTTC(agentParameters, objectParameters, maxTtc, cycleTime);
456 }
TtcCalculations::CalculateObjectTTC
static double CalculateObjectTTC(const AgentInterface &agent, const WorldObjectInterface &detectedObject, double maxTtc, double collisionDetectionLongitudinalBoundary, double collisionDetectionLateralBoundary, double cycleTime)
Calculates the time to collision between two (moving) objects.
Definition: commonTools.h:449
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: TtcCalculations::TtcParameters Struct Reference

  • TtcCalculations
  • TtcParameters
List of all members
TtcCalculations::TtcParameters Struct Reference

Structure to hold all necessary world object parameters for TTC calculation. More...

Detailed Description

Structure to hold all necessary world object parameters for TTC calculation.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: VehicleCompToCompCtrlSignal Class Reference

List of all members
VehicleCompToCompCtrlSignal Class Reference

Additional Inherited Members

- Public Member Functions inherited from AgentCompToCompCtrlSignal
AgentCompToCompCtrlSignal (const ComponentType componentType, const std::string &agentComponentName, const ComponentState currentState, const std::vector< ComponentWarningInformation > &warnings={})
Constructor.
virtual | operator std::string () const
ComponentType | GetComponentType () const
GetComponentType returns the type of the agent component sending the signal. More...
std::string | GetAgentComponentName () const
GetAgentComponentName returns the name of the agent component sending the signal. More...
ComponentState | GetCurrentState () const
GetCurrentState returns the current state of the agent component sending the signal. More...
std::vector< ComponentWarningInformation > | GetComponentWarnings () const
GetComponentWarning returns the warning from the agent component sending the signal, if one exists. More...
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: VehicleModelParameters Struct Reference

List of all members
VehicleModelParameters Struct Reference
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: VehicleSimpleTT Class Reference

List of all members
VehicleSimpleTT Class Reference

Simple STATIC two-track vehicle model. More...

Public Member Functions

Initialize
void | InitSetEngine (double weight, double P_engine, double T_brakeLimit)
Initialize tire characteristics.
void | InitSetGeometry (double x_wheelbase, double x_COG, double y_track, double y_COG)
Initialize car's physics.
void | InitSetTire (double vel, double mu_tire_max, double mu_tire_slide, double s_max, double r_tire, double frictionScaleRoll)
Initialize car's velocity.
Update state
void | UpdatePosition (double)
Refresh car's position.
void | SetVelocity (Common::Vector2d, const double)
Refresh car's velocity.
Make step
void | DriveTrain (double throttlePedal, double brakePedal, std::vector< double > brakeSuperpose)
Calculate local tire torques.
void | ForceLocal (double timeStep, double, std::vector< double > forceVertical)
Local forces and moments transferred onto road.
void | ForceGlobal ()
Global force and moment.
double | GetTireForce (int tireNumber)
double | GetForceTireVerticalStatic (int tireNumber)

Public Attributes

Output
Common::Vector2d forceTotalXY
Total force on vehicle's CoM.
double momentTotalZ
Total momentum on the vehicle around the z-axes.

Parameters

double forceTireVerticalStatic [NUMBER_OF_WHEELS]

Detailed Description

Simple STATIC two-track vehicle model.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: WorldAnalyzer Class Reference

Public Member Functions | List of all members
WorldAnalyzer Class Reference

This class provides utility functions for spawners to query information about the world. More...

Public Member Functions

std::optional< ValidLaneSpawningRanges > | GetValidLaneSpawningRanges (const RoadId &roadId, const LaneId laneId, const SPosition sStart, const SPosition sEnd) const
std::optional< double > | GetNextSpawnPosition (const RoadId &roadId, const LaneId laneId, const Range &bounds, const double agentFrontLength, const double agentRearLength, const double intendedVelocity, const double gapInSeconds, const Direction direction) const
double | CalculateSpawnVelocityToPreventCrashing (const RoadId &roadId, const LaneId laneId, const double intendedSpawnPosition, const double agentFrontLength, const double agentRearLength, const double intendedVelocity) const
bool | ValidMinimumSpawningDistanceToObjectInFront (const RoadId &roadId, const LaneId laneId, const SPosition sPosition, const VehicleModelParameters &vehicleModelParameters) const
Check wether the minimum distance the next object is satisfied.
bool | AreSpawningCoordinatesValid (const RoadId &roadId, const LaneId laneId, const SPosition sPosition, const double offset, const VehicleModelParameters &vehicleModelParameters) const
Check if it is allowed the spawn an agent at the given coordinate.
bool | SpawnWillCauseCrash (const RoadId &roadId, const LaneId laneId, const SPosition sPosition, const double agentFrontLength, const double agentRearLength, const double velocity, const Direction direction) const
Check wether spawning an agent with given parameters will result in a crash.
size_t | GetRightLaneCount (const RoadId &roadId, const LaneId &laneId, const double sPosition) const
void | ValidateRoadIdInDirection (const RoadId &roadId, const LaneId laneId) const

Detailed Description

This class provides utility functions for spawners to query information about the world.

Member Function Documentation

std::optional< ValidLaneSpawningRanges > GetValidLaneSpawningRanges | ( | const RoadId & | roadId,
 |  | const LaneId | laneId,
 |  | const SPosition | sStart,
 |  | const SPosition | sEnd
 | ) |  | const

Returns the ranges where the spawner can spawn common ranges. It excludes s positions where a scenario agent is standing as well as the range inbetween two scenario agents.

Parameters
roadId | Id of the road
laneId | Id of the lane
sStart | start of the search range
sEnd | end of the search range
Returns
valid spawning ranges
48 {
49 ValidateRoadIdInDirection(roadId, laneId);
50
51 const auto [roadGraph, vertex] = world->GetRoadGraph(RouteElement{roadId, laneId < 0}, 1);
52
53 const auto &distanceToEndOfLane = world->GetDistanceToEndOfLane(roadGraph, vertex, laneId, sStart, sEnd);
54 auto maximumSpawningRange = std::min(sEnd, distanceToEndOfLane.at(0));
55
56 const auto agentsInLane = world->GetAgentsInRange(roadGraph,
57 vertex,
58 laneId,
59 sStart,
60 std::numeric_limits<double>::infinity(),
61 std::numeric_limits<double>::infinity()).at(vertex);
62
63 std::vector<const AgentInterface*> scenarioAgents {};
64 for (auto agent : agentsInLane)
65 {
66 if(agent->GetAgentCategory() == AgentCategory::Ego
67 || agent->GetAgentCategory() == AgentCategory::Scenario)
68 {
69 scenarioAgents.push_back(agent);
70 }
71 }
72
73 if(scenarioAgents.empty())
74 {
75 ValidLaneSpawningRanges validLaneSpawningRanges{{sStart, maximumSpawningRange}};
76 return std::make_optional(validLaneSpawningRanges);
77 }
78 else
79 {
80 const auto frontAgent = scenarioAgents.back();
81 const auto frontAgentDistance = frontAgent->GetObjectPosition().referencePoint.at(roadId).roadPosition.s + frontAgent->GetVehicleModelParameters().distanceReferencePointToLeadingEdge;
82
83 const auto rearAgent = scenarioAgents.front();
84 const auto vehicleModelParameters = rearAgent->GetVehicleModelParameters();
85 const auto distanceReferencePointToRearEdge = vehicleModelParameters.length - vehicleModelParameters.distanceReferencePointToLeadingEdge;
86 const auto rearAgentDistance = rearAgent->GetObjectPosition().referencePoint.at(roadId).roadPosition.s - distanceReferencePointToRearEdge;
87
88 return GetValidSpawningInformationForRange(sStart,
89 maximumSpawningRange,
90 rearAgentDistance,
91 frontAgentDistance);
92 }
93 }
WorldAnalyzer::ValidateRoadIdInDirection
void ValidateRoadIdInDirection(const RoadId &roadId, const LaneId laneId) const
Definition: WorldAnalyzer.cpp:35
RouteElement
This represents one node on the road network graph of the world or in the routing graph of an agent...
Definition: worldDefinitions.h:210

Here is the call graph for this function:

Here is the caller graph for this function:

std::optional< double > GetNextSpawnPosition | ( | const RoadId & | roadId,
 |  | const LaneId | laneId,
 |  | const Range & | bounds,
 |  | const double | agentFrontLength,
 |  | const double | agentRearLength,
 |  | const double | intendedVelocity,
 |  | const double | gapInSeconds,
 |  | const Direction | direction
 | ) |  | const

Calculates the next s coordinate to spawn an agents on

Parameters
roadId | Id of the road
laneId | Id of the lane
bounds | s range to spawn in
agentFrontLength | distance from reference point to front of agent
agentRearLength | distance from reference point to rear of agent
intendedVelocity | spawning velocity
gapInSeconds | desired TGap between spawned agent and next agent
direction | wether to spawn from front to end of the road or from end to front
Returns
s position
103 {
104 double spawnDistance;
105
106 const auto maxSearchPosition = bounds.second + intendedVelocity * gapInSeconds;
107 const auto [roadGraph, vertex] = world->GetRoadGraph(RouteElement{roadId, laneId < 0}, 1);
108 const auto downstreamObjects = world->GetAgentsInRange(roadGraph,
109 vertex,
110 laneId,
111 bounds.first,
112 direction == Direction::FORWARD ? 0 : maxSearchPosition,
113 direction == Direction::FORWARD ? maxSearchPosition : 0).at(vertex);
114 const AgentInterface* firstDownstreamObject = nullptr;
115 if (!downstreamObjects.empty())
116 {
117 firstDownstreamObject = direction == Direction::FORWARD ? downstreamObjects.front() : downstreamObjects.back();
118 }
119 if (!firstDownstreamObject || firstDownstreamObject->GetDistanceToStartOfRoad(MeasurementPoint::Rear, roadId) > maxSearchPosition)
120 {
121 const auto drivingLaneLength = world->GetDistanceToEndOfLane(roadGraph,
122 vertex,
123 laneId,
124 0,
125 std::numeric_limits<double>::max(),
126 {LaneType::Driving}).at(vertex);
127 spawnDistance = std::min(bounds.second, drivingLaneLength) - agentFrontLength;
128
129 const auto distanceToEndOfDrivingLane = world->GetDistanceToEndOfLane(roadGraph,
130 vertex,
131 laneId,
132 spawnDistance + agentFrontLength,
133 bounds.second,
134 {LaneType::Driving}).at(vertex);
135
136 if (distanceToEndOfDrivingLane < MIN_DISTANCE_TO_END_OF_LANE)
137 {
138 const auto difference = MIN_DISTANCE_TO_END_OF_LANE - distanceToEndOfDrivingLane;
139 spawnDistance -= difference;
140 }
141 }
142 else
143 {
144 const auto frontCarRearLength = firstDownstreamObject->GetLength()
145 - firstDownstreamObject->GetDistanceReferencePointToLeadingEdge();
146 const auto separation = GetSeparation(gapInSeconds,
147 intendedVelocity,
148 frontCarRearLength + agentFrontLength);
149
150 const auto frontCarPositionOnRoad = firstDownstreamObject->GetDistanceToStartOfRoad(MeasurementPoint::Rear, roadId);
151 spawnDistance = frontCarPositionOnRoad - separation;
152 }
153
154 if (spawnDistance - agentRearLength < bounds.first)
155 {
156 return {};
157 }
158
159 return spawnDistance;
160 }
RouteElement
This represents one node on the road network graph of the world or in the routing graph of an agent...
Definition: worldDefinitions.h:210
double CalculateSpawnVelocityToPreventCrashing | ( | const RoadId & | roadId,
 |  | const LaneId | laneId,
 |  | const double | intendedSpawnPosition,
 |  | const double | agentFrontLength,
 |  | const double | agentRearLength,
 |  | const double | intendedVelocity
 | ) |  | const

Adjust spawning velocity so that the spawned agent won't immediately crash.

Parameters
roadId | Id of the road
laneId | Id of the lane
intendedSpawnPosition | s coordinate
agentFrontLength | distance from reference point to front of agent
agentRearLength | distance from reference point to rear of agent
intendedVelocity | spawning velocity
Returns
possibly adjusted velocity
168 {
169 const auto intendedVehicleFrontPosition = intendedSpawnPosition + agentFrontLength;
170 const auto maxSearchDistance = intendedVehicleFrontPosition + (intendedVelocity * TTC_THRESHHOLD);
171
172 const auto [roadGraph, vertex] = world->GetRoadGraph(RouteElement{roadId, laneId < 0}, 1);
173 const auto nextObjectsInLane = world->GetAgentsInRange(roadGraph,
174 vertex,
175 laneId,
176 intendedSpawnPosition - agentRearLength,
177 0,
178 maxSearchDistance).at(vertex);
179 const AgentInterface* opponent = nullptr;
180 if (!nextObjectsInLane.empty())
181 {
182 opponent = nextObjectsInLane.front();
183
184 const auto &relativeVelocity = intendedVelocity - opponent->GetVelocity();
185 if (relativeVelocity <= 0.0)
186 {
187 return intendedVelocity;
188 }
189
190 const auto& relativeDistance = opponent->GetDistanceToStartOfRoad(MeasurementPoint::Rear, roadId) - intendedVehicleFrontPosition;
191
192 if (relativeDistance / relativeVelocity < TTC_THRESHHOLD)
193 {
194 return opponent->GetVelocity() + (relativeDistance / TTC_THRESHHOLD);
195 }
196 }
197
198 return intendedVelocity;
199 }
RouteElement
This represents one node on the road network graph of the world or in the routing graph of an agent...
Definition: worldDefinitions.h:210
size_t GetRightLaneCount | ( | const RoadId & | roadId,
 |  | const LaneId & | laneId,
 |  | const double | sPosition
 | ) |  | const

Returns the number of lanes to the right the given lane at the given s coordinate

Parameters
roadId | Id of the road
laneId | Id of the lane
sPosition | s coordinate
Returns
number of lanes to the right
430 {
431 size_t rightLaneCount{0};
432 RoadGraph roadGraph;
433 const auto start = add_vertex(RouteElement{roadId, laneId < 0}, roadGraph);
434 const auto relativeLanes = world->GetRelativeLanes(roadGraph, start, laneId, sPosition, 0).at(start);
435 for (const auto& lane : relativeLanes.front().lanes)
436 {
437 if (lane.relativeId < 0 && lane.type == LaneType::Driving)
438 {
439 ++rightLaneCount;
440 }
441 }
442 return rightLaneCount;
443 }
RouteElement
This represents one node on the road network graph of the world or in the routing graph of an agent...
Definition: worldDefinitions.h:210
void ValidateRoadIdInDirection | ( | const RoadId & | roadId,
 |  | const LaneId | laneId
 | ) |  | const

Checks if a roadId exists in direction of a laneId

Parameters
roadId | Id of the road
laneId | Id of the lane
Returns
true, if roadId exists in laneId direction
37 {
38 if (!world->IsDirectionalRoadExisting(roadId, laneId < 0))
39 {
40 LogErrorAndThrow("Invalid spawn information. RoadId: " + roadId + " not existing for laneId:" + std::to_string(laneId) + ".");
41 }
42 }

Here is the caller graph for this function:

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: WorldDataQuery Class Reference

Public Member Functions | List of all members
WorldDataQuery Class Reference

Helper class for complex queries on the world data. More...

Public Member Functions

template<typename T >
bool | ObjectIsOfTypeAndWithinRange (const OWL::Interfaces::WorldObject *const worldObject, const double minS, const double maxS, const LaneStreamInfo &lane) const
template<typename T >
std::vector< const OWL::Interfaces::WorldObject * > | GetObjectsOfTypeInRange (const LaneStream &laneStream, const double startDistance, const double endDistance) const
template<typename T >
RouteQueryResult< std::vector< const OWL::Interfaces::WorldObject * > > | GetObjectsOfTypeInRange (const LaneMultiStream &laneStream, const double startDistance, const double endDistance) const
RouteQueryResult< double > | GetDistanceToEndOfLane (const LaneMultiStream &laneStream, double initialSearchPosition, double maxSearchLength, const std::vector< LaneType > &requestedLaneTypes) const
bool | IsSValidOnLane (std::string roadId, OWL::OdId laneId, double distance)
OWL::CLane & | GetLaneByOdId (std::string odRoadId, OWL::OdId odLaneId, double distance) const
OWL::CSection * | GetSectionByDistance (std::string odRoadId, double distance) const
OWL::CRoad * | GetRoadByOdId (std::string odRoadId) const
Returns the OWL road with the specified OpenDrive id.
const OWL::Interfaces::Junction * | GetJunctionByOdId (const std::string &odJunctionId) const
Returns the junction with the specified OpenDrive id.
const OWL::Interfaces::Junction * | GetJunctionOfConnector (const std::string &connectingRoadId) const
Returns the junction that the specified Connector is part of.
OWL::CLanes | GetLanesOfLaneTypeAtDistance (std::string roadId, double distance, std::list< LaneType > requestedLaneTypes) const
RouteQueryResult< std::vector< CommonTrafficSign::Entity > > | GetTrafficSignsInRange (LaneMultiStream laneStream, double startDistance, double searchRange) const
RouteQueryResult< std::vector< CommonTrafficSign::Entity > > | GetRoadMarkingsInRange (LaneMultiStream laneStream, double startDistance, double searchRange) const
RouteQueryResult< std::vector< LaneMarking::Entity > > | GetLaneMarkings (const LaneMultiStream &laneStream, double startDistance, double range, Side side) const
std::vector< IntersectingConnection > | GetIntersectingConnections (std::string connectingRoadId) const
std::vector< JunctionConnectorPriority > | GetPrioritiesOnJunction (std::string junctionId) const
std::vector< const OWL::Interfaces::WorldObject * > | GetMovingObjectsInRangeOfJunctionConnection (std::string connectingRoadId, double range) const
double | GetDistanceUntilObjectEntersConnector (const ObjectPosition position, std::string intersectingConnectorId, int intersectingLaneId, std::string ownConnectorId) const
double | GetDistanceUntilObjectLeavesConnector (const ObjectPosition position, std::string intersectingConnectorId, int intersectingLaneId, std::string ownConnectorId) const
std::shared_ptr< const LaneStream > | CreateLaneStream (const std::vector< RouteElement > &route, std::string startRoadId, OWL::OdId startLaneId, double startDistance) const
std::shared_ptr< const LaneMultiStream > | CreateLaneMultiStream (const RoadGraph &roadGraph, RoadGraphVertex start, OWL::OdId startLaneId, double startDistance) const
std::shared_ptr< const RoadStream > | CreateRoadStream (const std::vector< RouteElement > &route) const
Creates a RoadStream from the given route. More...
std::shared_ptr< const RoadMultiStream > | CreateRoadMultiStream (const RoadGraph &roadGraph, RoadGraphVertex start) const
RouteQueryResult< LongitudinalDistance > | GetDistanceBetweenObjects (const RoadMultiStream &roadStream, const ObjectPosition &objectPos, const std::optional< double > objectReferenceS, const ObjectPosition &targetObjectPos) const
GetDistanceBetweenObjects gets the distance between two ObjectPositions on a RoadStream. More...
RouteQueryResult< Obstruction > | GetObstruction (const LaneMultiStream &laneStream, double tCoordinate, const ObjectPosition &otherPosition, const std::vector< Common::Vector2d > &objectCorners, const Common::Vector2d &mainLaneLocator) const
Position | GetPositionByDistanceAndLane (const OWL::Interfaces::Lane &lane, double distanceOnLane, double offset) const
RouteQueryResult< RelativeWorldView::Junctions > | GetRelativeJunctions (const RoadMultiStream &roadStream, double startPosition, double range) const
RouteQueryResult< RelativeWorldView::Lanes > | GetRelativeLanes (const RoadMultiStream &roadStream, double startPosition, int startLaneId, double range) const

Detailed Description

Helper class for complex queries on the world data.

Member Function Documentation

bool ObjectIsOfTypeAndWithinRange | ( | const OWL::Interfaces::WorldObject *const | worldObject,
 |  | const double | minS,
 |  | const double | maxS,
 |  | const LaneStreamInfo & | lane
 | ) |  | const
 inline

Checks if object is of type T and within the specified range when supplied an offset Returns true if so; false, otherwise

Parameters
worldObject | object to check
minS | minimum valid s position within the road
maxS | maximum valid s position within the road
lane | lane on which the object is
230 {
231 const auto& roadId = lane.element->GetRoad().GetId();
232 return (worldObject->Is<T>() &&
233 lane.GetStreamPosition(worldObject->GetDistance(OWL::MeasurementPoint::RoadEnd, roadId) - lane.element->GetDistance(OWL::MeasurementPoint::RoadStart)) > minS &&
234 lane.GetStreamPosition(worldObject->GetDistance(OWL::MeasurementPoint::RoadStart, roadId) - lane.element->GetDistance(OWL::MeasurementPoint::RoadStart)) < maxS);
235 }
OWL::Interfaces::WorldObject::Is
bool Is() const
Returns true is this object is of type T otherwise false.
Definition: DataTypes.h:532
StreamInfo::GetStreamPosition
double GetStreamPosition(double elementPosition) const
Definition: WorldDataQuery.h:47

Here is the call graph for this function:

std::vector<const OWL::Interfaces::WorldObject*> GetObjectsOfTypeInRange | ( | const LaneStream & | laneStream,
 |  | const double | startDistance,
 |  | const double | endDistance
 | ) |  | const
 inline

Searches along a lane stream starting at startDistance and returns the all objects found until endDistance that are of type T. Returns an empty vector if there is no such object within the range T can be one of WorldObject, MovingObject or StationaryObject

245 {
246 const auto& lanesOnStream = laneStream.GetElements();
247 std::vector<const OWL::Interfaces::WorldObject*> foundObjects;
248 for (const auto& lane : lanesOnStream)
249 {
250 if (lane.EndS() < startDistance) //Ignore lanes ending before startDistance
251 {
252 continue;
253 }
254 if (lane.StartS() > endDistance) //Stop if reached endDistance
255 {
256 break;
257 }
258 const auto& roadId = lane.element->GetRoad().GetId();
259 auto sortedObjects = lane.element->GetWorldObjects();
260 if (lane.inStreamDirection)
261 {
262 sortedObjects.sort(
263 [lane, roadId](OWL::Interfaces::WorldObject* first, OWL::Interfaces::WorldObject* second)
264 {
265 return first->GetDistance(OWL::MeasurementPoint::RoadStart, roadId) < second->GetDistance(OWL::MeasurementPoint::RoadStart, roadId);
266 }
267 );
268 }
269 else
270 {
271 sortedObjects.sort(
272 [lane, roadId](OWL::Interfaces::WorldObject* first, OWL::Interfaces::WorldObject* second)
273 {
274 return first->GetDistance(OWL::MeasurementPoint::RoadStart, roadId) > second->GetDistance(OWL::MeasurementPoint::RoadStart, roadId);
275 }
276 );
277 }
278 for (const auto object : sortedObjects)
279 {
280 if (ObjectIsOfTypeAndWithinRange<T>(object, startDistance, endDistance, lane))
281 {
282 if (std::count(foundObjects.begin(), foundObjects.end(), object) == 0)
283 {
284 foundObjects.push_back(object);
285 }
286 }
287 }
288 }
289 return foundObjects;
290 }
OWL::Interfaces::WorldObject
Definition: DataTypes.h:446
RouteQueryResult<std::vector<const OWL::Interfaces::WorldObject*> > GetObjectsOfTypeInRange | ( | const LaneMultiStream & | laneStream,
 |  | const double | startDistance,
 |  | const double | endDistance
 | ) |  | const
 inline

Searches along a lane multi stream starting at startDistance and returns the all objects found until endDistance that are of type T. Returns an empty vector if there is no such object within the range The result is returned for every node. T can be one of WorldObject, MovingObject or StationaryObject

301 {
302 return laneStream.Traverse<std::vector<const OWL::Interfaces::WorldObject*>>(
303 LaneMultiStream::TraversedFunction<std::vector<const OWL::Interfaces::WorldObject*>>(
304 [&](const LaneStreamInfo& lane, const std::vector<const OWL::Interfaces::WorldObject*>& previousOjects)
305 {
306 std::vector<const OWL::Interfaces::WorldObject*> foundObjects{previousOjects};
307
308 if (lane.EndS() < startDistance)
309 {
310 return foundObjects;
311 }
312
313 if (lane.StartS() > endDistance)
314 {
315 return foundObjects;
316 }
317
318 const auto& roadId = lane.element->GetRoad().GetId();
319 auto sortedObjects = lane.element->GetWorldObjects();
320
321 if (lane.inStreamDirection)
322 {
323 sortedObjects.sort(
324 [lane, roadId](OWL::Interfaces::WorldObject* first, OWL::Interfaces::WorldObject* second)
325 {
326 return first->GetDistance(OWL::MeasurementPoint::RoadStart, roadId) < second->GetDistance(OWL::MeasurementPoint::RoadStart, roadId);
327 });
328 }
329 else
330 {
331 sortedObjects.sort(
332 [lane, roadId](OWL::Interfaces::WorldObject* first, OWL::Interfaces::WorldObject* second)
333 {
334 return first->GetDistance(OWL::MeasurementPoint::RoadStart, roadId) > second->GetDistance(OWL::MeasurementPoint::RoadStart, roadId);
335 });
336 }
337
338 for (const auto object : sortedObjects)
339 {
340 if (ObjectIsOfTypeAndWithinRange<T>(object, startDistance, endDistance, lane))
341 {
342 if (std::count(foundObjects.begin(), foundObjects.end(), object) == 0)
343 {
344 foundObjects.push_back(object);
345 }
346 }
347 }
348
349 return foundObjects;
350 }),
351 {},
352 worldData);
353 }
OWL::Interfaces::WorldObject
Definition: DataTypes.h:446
StreamInfo
Definition: WorldDataQuery.h:24
RouteQueryResult< double > GetDistanceToEndOfLane | ( | const LaneMultiStream & | laneStream,
 |  | double | initialSearchPosition,
 |  | double | maxSearchLength,
 |  | const std::vector< LaneType > & | requestedLaneTypes
 | ) |  | const

Iterates over a LaneMultStream until either the type of the next lane does not match one of the specified LaneTypes or maxSearchLength is reached. Returns the relative distance to the end of last matching lane. The result is returned for every node. Returns INFINITY if end of lane is outside maxSearchLength. Returns 0 if lane does not exist or LaneType does not match at initialSearchDistance

Parameters
laneStream | lane stream to search along
initialSearchPosition | start position in stream
maxSearchLength | maxmium look ahead distance
requestedLaneTypes | filter of LaneTypes
88 {
89 return laneStream.Traverse<double, bool>(LaneMultiStream::TraversedFunction<double, bool>{[&](const auto& streamElement, const auto& previousDistance, const auto& laneTypeContinuous)
90 {
91 if (!laneTypeContinuous || std::find(requestedLaneTypes.cbegin(), requestedLaneTypes.cend(), streamElement().GetLaneType()) == requestedLaneTypes.cend())
92 {
93 return std::make_tuple<double, bool>(double{previousDistance}, false);
94 }
95 else if (streamElement.EndS() > initialSearchPosition + maxSearchLength)
96 {
97 return std::make_tuple<double, bool>(std::numeric_limits<double>::infinity(), true);
98 }
99 else
100 {
101 return std::make_tuple<double, bool>(streamElement.EndS() - initialSearchPosition, true);
102 }
103 }},
104 0.0, true,
105 worldData);
106 }
bool IsSValidOnLane | ( | std::string | roadId,
 |  | OWL::OdId | laneId,
 |  | double | distance
 | ) |  |

Checks if given s-coordinate is valid for specified laneId.

Parameters
roadId | OpenDrive id of road
laneId | OpenDrive Id of lane
distance | s-coordinate
196 {
197 if (distance < 0)
198 {
199 return false;
200 }
201
202 return GetLaneByOdId(roadId, laneId, distance).Exists();
203 }
WorldDataQuery::GetLaneByOdId
OWL::CLane & GetLaneByOdId(std::string odRoadId, OWL::OdId odLaneId, double distance) const
Definition: WorldDataQuery.cpp:174
OWL::Interfaces::Lane::Exists
virtual bool Exists() const =0
Returns false of this lane is invalid, otherwise returns true.
OWL::CLane & GetLaneByOdId | ( | std::string | odRoadId,
 |  | OWL::OdId | odLaneId,
 |  | double | distance
 | ) |  | const

Returns lane at specified distance. Returns InvalidLane if there is no lane at given distance and OpenDriveId

Parameters
roadId | OpenDrive id of road
odLaneId | OpendDrive Id of Lane
distance | s-coordinate
175 {
176 auto section = GetSectionByDistance(roadId, distance);
177 if (!section)
178 {
179 return worldData.GetInvalidLane();
180 }
181
182 for (const OWL::Lane* lane : section->GetLanes())
183 {
184 // if a section covers a point the lanes also do
185 if (worldData.GetLaneIdMapping().at(lane->GetId()) == odLaneId)
186 {
187 return *lane;
188 }
189 }
190
191 return worldData.GetInvalidLane();
192 }
OWL::Interfaces::Lane
This class represents a single lane inside a section.
Definition: DataTypes.h:140
OWL::Interfaces::WorldData::GetInvalidLane
virtual const Implementation::InvalidLane & GetInvalidLane() const =0
Returns an invalid lane.
OWL::Interfaces::WorldData::GetLaneIdMapping
virtual const std::unordered_map< Id, OdId > & GetLaneIdMapping() const =0
Returns the mapping of OSI Ids to OpenDrive Ids for lanes.
WorldDataQuery::GetSectionByDistance
OWL::CSection * GetSectionByDistance(std::string odRoadId, double distance) const
Definition: WorldDataQuery.cpp:108
OWL::CSection * GetSectionByDistance | ( | std::string | odRoadId,
 |  | double | distance
 | ) |  | const

Returns section at specified distance. Returns nullptr if there is no section at given distance

Parameters
odRaodId | ID of road in OpenDrive
distance | s-coordinate
109 {
110 distance = std::max(0.0, distance);
111
112 auto road = GetRoadByOdId(odRoadId);
113 if (!road)
114 {
115 return nullptr;
116 }
117 for (auto tmpSection : road->GetSections())
118 {
119 if (tmpSection->Covers(distance))
120 {
121 return tmpSection;
122 }
123 }
124
125 return nullptr;
126 }
WorldDataQuery::GetRoadByOdId
OWL::CRoad * GetRoadByOdId(std::string odRoadId) const
Returns the OWL road with the specified OpenDrive id.
Definition: WorldDataQuery.cpp:128

Here is the call graph for this function:

OWL::CLanes GetLanesOfLaneTypeAtDistance | ( | std::string | roadId,
 |  | double | distance,
 |  | std::list< LaneType > | requestedLaneTypes
 | ) |  | const

Returns all lanes of given LaneType at specified distance.

Parameters
distance | s-coordinate
requestedLaneTypes | filter of laneTypes
156 {
157 std::list<OWL::CLane*> lanes;
158 OWL::CSection* sectionAtDistance = GetSectionByDistance(roadId, distance);
159
160 if (sectionAtDistance)
161 {
162 for (auto lane : sectionAtDistance->GetLanes())
163 {
164 if (std::find(requestedLaneTypes.begin(), requestedLaneTypes.end(), lane->GetLaneType()) != requestedLaneTypes.end())
165 {
166 lanes.push_back(lane);
167 }
168 }
169 }
170
171 return lanes;
172 }
OWL::Interfaces::Section
This class represents one section of a road.
Definition: DataTypes.h:327
OWL::Interfaces::Section::GetLanes
virtual const Lanes & GetLanes() const =0
Returns a vector of all lanes of the section.
WorldDataQuery::GetSectionByDistance
OWL::CSection * GetSectionByDistance(std::string odRoadId, double distance) const
Definition: WorldDataQuery.cpp:108

Here is the call graph for this function:

RouteQueryResult< std::vector< CommonTrafficSign::Entity > > GetTrafficSignsInRange | ( | LaneMultiStream | laneStream,
 |  | double | startDistance,
 |  | double | searchRange
 | ) |  | const

Returns all TrafficSigns valid for the lanes in the LaneMultiStream within startDistance and startDistance + searchRange The result is returned for every node.

Parameters
laneStream | lane stream to search in
startDistance | start position in stream
searchRange | range of search (positive)
206 {
207 const bool backwardsSearch = searchRange < 0;
208 const double startPosition = backwardsSearch ? startDistance + searchRange : startDistance;
209 const double endPosition = backwardsSearch ? startDistance : startDistance + searchRange;
210 return laneStream.Traverse(LaneMultiStream::TraversedFunction<std::vector<CommonTrafficSign::Entity>>{[&](const auto& lane, const auto& previousTrafficSigns)
211 {
212 std::vector<CommonTrafficSign::Entity> foundTrafficSigns{previousTrafficSigns};
213
214 if (lane.EndS() < startPosition)
215 {
216 return foundTrafficSigns;
217 }
218 if (lane.StartS() > endPosition)
219 {
220 return foundTrafficSigns;
221 }
222 auto sortedTrafficSigns = lane().GetTrafficSigns();
223 sortedTrafficSigns.sort([lane](const auto first, const auto second)
224 {return lane.GetStreamPosition(first->GetS()) < lane.GetStreamPosition(second->GetS());});
225 for (const auto& trafficSign : sortedTrafficSigns)
226 {
227 double trafficSignPosition = lane.GetStreamPosition(trafficSign->GetS() - lane().GetDistance(OWL::MeasurementPoint::RoadStart));
228 if (startPosition <= trafficSignPosition && trafficSignPosition <= endPosition)
229 {
230 foundTrafficSigns.push_back(trafficSign->GetSpecification(trafficSignPosition - startDistance));
231 }
232 }
233 return foundTrafficSigns;
234 }},
235 {},
236 worldData);
237 }
RouteQueryResult< std::vector< CommonTrafficSign::Entity > > GetRoadMarkingsInRange | ( | LaneMultiStream | laneStream,
 |  | double | startDistance,
 |  | double | searchRange
 | ) |  | const

Returns all RoadMarkings valid for the lanes in the LaneMultiStream within startDistance and startDistance + searchRange The result is returned for every node.

Parameters
laneStream | lane stream to search in
startDistance | start position in stream
searchRange | range of search (positive)
240 {
241 return laneStream.Traverse(LaneMultiStream::TraversedFunction<std::vector<CommonTrafficSign::Entity>>{[&](const auto& lane, const auto& previousRoadMarkings)
242 {
243 std::vector<CommonTrafficSign::Entity> foundRoadMarkings{previousRoadMarkings};
244
245 if (lane.EndS() < startDistance)
246 {
247 return foundRoadMarkings;
248 }
249 if (lane.StartS() > startDistance + searchRange)
250 {
251 return foundRoadMarkings;
252 }
253 auto sortedRoadMarkings = lane().GetRoadMarkings();
254 sortedRoadMarkings.sort([lane](const auto first, const auto second)
255 {return lane.GetStreamPosition(first->GetS()) < lane.GetStreamPosition(second->GetS());});
256
257 for (const auto& roadMarking : sortedRoadMarkings)
258 {
259 double roadMarkingPosition = lane.GetStreamPosition(roadMarking->GetS() - lane().GetDistance(OWL::MeasurementPoint::RoadStart));
260 if (startDistance <= roadMarkingPosition && roadMarkingPosition <= startDistance + searchRange)
261 {
262 foundRoadMarkings.push_back(roadMarking->GetSpecification(roadMarkingPosition - startDistance));
263 }
264 }
265 return foundRoadMarkings;
266 }},
267 {},
268 worldData);
269 }
RouteQueryResult< std::vector< LaneMarking::Entity > > GetLaneMarkings | ( | const LaneMultiStream & | laneStream,
 |  | double | startDistance,
 |  | double | range,
 |  | Side | side
 | ) |  | const

Retrieves all lane markings within the given range on the given side of the lane inside the range The result is returned for every node.

Parameters
laneStream | lane stream to search in
startDistance | start position in stream
range | search range
side | side of the lane
272 {
273 return laneStream.Traverse(LaneMultiStream::TraversedFunction<std::vector<LaneMarking::Entity>>{[&](const auto& lane, const auto& previousLaneMarkings)
274 {
275 std::vector<LaneMarking::Entity> laneMarkings{previousLaneMarkings};
276 std::map<double, LaneMarking::Entity> doubleLaneMarkings;
277 if (lane.EndS() < startDistance)
278 {
279 return laneMarkings;;
280 }
281 if (lane.StartS() > startDistance + range)
282 {
283 return laneMarkings;;
284 }
285
286 const auto& laneBoundaries = (side == Side::Left) ? lane().GetLeftLaneBoundaries() : lane().GetRightLaneBoundaries();
287
288 for (auto laneBoundaryIndex : laneBoundaries)
289 {
290 const auto& laneBoundary = worldData.GetLaneBoundaries().at(laneBoundaryIndex);
291 if (lane.GetStreamPosition(laneBoundary->GetSStart() - lane().GetDistance(OWL::MeasurementPoint::RoadStart)) <= startDistance + range
292 && lane.GetStreamPosition(laneBoundary->GetSEnd() - lane().GetDistance(OWL::MeasurementPoint::RoadStart)) >= startDistance)
293 {
294 LaneMarking::Entity laneMarking;
295 laneMarking.relativeStartDistance = lane.GetStreamPosition(laneBoundary->GetSStart() - lane().GetDistance(OWL::MeasurementPoint::RoadStart)) - startDistance;
296 laneMarking.width = laneBoundary->GetWidth();
297 laneMarking.type = laneBoundary->GetType();
298 laneMarking.color = laneBoundary->GetColor();
299 if (laneBoundary->GetSide() == OWL::LaneMarkingSide::Single)
300 {
301 laneMarkings.push_back(laneMarking);
302 }
303 else
304 {
305 if (doubleLaneMarkings.count(laneMarking.relativeStartDistance) == 0)
306 {
307 doubleLaneMarkings.insert(std::make_pair(laneMarking.relativeStartDistance, laneMarking));
308 }
309 else
310 {
311 auto& otherLaneMarking = doubleLaneMarkings.at(laneMarking.relativeStartDistance);
312 LaneMarking::Type leftType;
313 LaneMarking::Type rightType;
314 if (laneBoundary->GetSide() == OWL::LaneMarkingSide::Left)
315 {
316 leftType = laneMarking.type;
317 rightType = otherLaneMarking.type;
318 }
319 else
320 {
321 leftType = otherLaneMarking.type;
322 rightType = laneMarking.type;
323 }
324 LaneMarking::Type combinedType;
325 if (leftType == LaneMarking::Type::Solid && rightType == LaneMarking::Type::Solid)
326 {
327 combinedType = LaneMarking::Type::Solid_Solid;
328 }
329 else if (leftType == LaneMarking::Type::Solid && rightType == LaneMarking::Type::Broken)
330 {
331 combinedType = LaneMarking::Type::Solid_Broken;
332 }
333 else if (leftType == LaneMarking::Type::Broken && rightType == LaneMarking::Type::Solid)
334 {
335 combinedType = LaneMarking::Type::Broken_Solid;
336 }
337 else if (leftType == LaneMarking::Type::Broken && rightType == LaneMarking::Type::Broken)
338 {
339 combinedType = LaneMarking::Type::Broken_Broken;
340 }
341 else
342 {
343 throw std::runtime_error("Invalid type of double lane boundary");
344 }
345 laneMarking.type = combinedType;
346 laneMarkings.push_back(laneMarking);
347 }
348 }
349 }
350 }
351
352 return laneMarkings;
353 }},
354 {},
355 worldData);
356 }
OWL::Interfaces::WorldData::GetLaneBoundaries
virtual const std::unordered_map< Id, LaneBoundary * > & GetLaneBoundaries() const =0
Returns a map of all lane boundaries with their OSI Id.
LaneMarking::Entity
Definition: worldDefinitions.h:385
std::vector< IntersectingConnection > GetIntersectingConnections ( std::string connectingRoadId ) const

Returns all intersections of the specified connector with other connectors in the junction

Parameters
connectingRoadId OpenDrive id of connector
Returns
intersections of connecting road with other roads
380 {
381 std::vector<IntersectingConnection> intersections;
382 const auto& junction = GetJunctionOfConnector(connectingRoadId);
383 auto connectionInfos = junction->GetIntersections().find(connectingRoadId);
384 if (connectionInfos != junction->GetIntersections().end())
385 {
386 std::transform(connectionInfos->second.cbegin(), connectionInfos->second.cend(), std::back_inserter(intersections),
387 [&](const OWL::IntersectionInfo& connectionInfo){return IntersectingConnection{connectionInfo.intersectingRoad, connectionInfo.relativeRank};});
388 }
389 return intersections;
390 }
IntersectingConnection
Information regarding a connecting road intersecting another.
Definition: worldDefinitions.h:68
WorldDataQuery::GetJunctionOfConnector
const OWL::Interfaces::Junction * GetJunctionOfConnector(const std::string &connectingRoadId) const
Returns the junction that the specified Connector is part of.
Definition: WorldDataQuery.cpp:140
OWL::IntersectionInfo
Definition: DataTypes.h:68
std::vector< JunctionConnectorPriority > GetPrioritiesOnJunction ( std::string junctionId ) const

Returns all priorities between the connectors of a junction

Parameters
junctionId OpenDrive id of the junction
393 {
394 std::vector<JunctionConnectorPriority> priorities;
395 const auto junction = GetJunctionByOdId(junctionId);
396 for (const auto& [high, low] : junction->GetPriorities())
397 {
398 priorities.push_back({high, low});
399 }
400 return priorities;
401 }
WorldDataQuery::GetJunctionByOdId
const OWL::Interfaces::Junction * GetJunctionByOdId(const std::string &odJunctionId) const
Returns the junction with the specified OpenDrive id.
Definition: WorldDataQuery.cpp:134
std::vector< const OWL::Interfaces::WorldObject * > GetMovingObjectsInRangeOfJunctionConnection | ( | std::string | connectingRoadId,
 |  | double | range
 | ) |  | const

Returns all moving objects on the specified connector and the lanes leading to this connector inside a certain range

Parameters
connectingRoadId | OpenDrive id of the connector
range | Search range measured backwards from the end of the connector
Returns
moving objects in search range on connecting and incoming road
436 {
437 const auto route = GetRouteLeadingToConnector(connectingRoadId);
438 const auto& lanes = GetLanesOfLaneTypeAtDistance(connectingRoadId, 0.0, {LaneType::Driving});
439 std::vector<const OWL::Interfaces::WorldObject*> foundMovingObjects;
440
441 for (const auto& lane : lanes)
442 {
443 auto laneStream = CreateLaneStream(route, connectingRoadId, worldData.GetLaneIdMapping().at(lane->GetId()), 0.0);
444 double laneStreamEnd = laneStream->GetElements().back().EndS();
445
446 auto movingObjects = GetObjectsOfTypeInRange<OWL::Interfaces::MovingObject>(*laneStream, laneStreamEnd - range, laneStreamEnd);
447
448 for (auto movingObject : movingObjects)
449 {
450 if (std::count(foundMovingObjects.cbegin(), foundMovingObjects.cend(), movingObject) == 0)
451 {
452 foundMovingObjects.emplace_back(movingObject);
453 }
454 }
455 }
456
457 return foundMovingObjects;
458 }
WorldDataQuery::CreateLaneStream
std::shared_ptr< const LaneStream > CreateLaneStream(const std::vector< RouteElement > &route, std::string startRoadId, OWL::OdId startLaneId, double startDistance) const
Definition: WorldDataQuery.cpp:556
OWL::Interfaces::WorldData::GetLaneIdMapping
virtual const std::unordered_map< Id, OdId > & GetLaneIdMapping() const =0
Returns the mapping of OSI Ids to OpenDrive Ids for lanes.
WorldDataQuery::GetLanesOfLaneTypeAtDistance
OWL::CLanes GetLanesOfLaneTypeAtDistance(std::string roadId, double distance, std::list< LaneType > requestedLaneTypes) const
Definition: WorldDataQuery.cpp:155
double GetDistanceUntilObjectEntersConnector | ( | const ObjectPosition | position,
 |  | std::string | intersectingConnectorId,
 |  | int | intersectingLaneId,
 |  | std::string | ownConnectorId
 | ) |  | const

Returns the distance from the front of the specified to the first intersection point of its road with the specified connector. If the object is not yet on the junction all possible route the object can take are considered and the minimum distance is returned

Parameters
object | object to calculate the distance for
connectingRoadId | OpenDrive id of connector intersecting with the route of the object
Returns
distance of object to first intersection with connecting road
497 {
498 //TODO This function needs to be made working again if OpponentAgent is implemented
499 // const OWL::Interfaces::Junction* junction = GetJunctionOfConnector(intersectingConnectorId);
500 // const auto& intersections = junction->GetIntersections().at(intersectingConnectorId);
501 // const auto& intersection = std::find_if(intersections.cbegin(), intersections.cend(),
502 // [this, ownConnectorId](const auto& connectionInfo){return worldData.GetRoadIdMapping().at(connectionInfo.intersectingRoad) == ownConnectorId;});
503 // if (intersection == intersections.cend())
504 // {
505 // return std::numeric_limits<double>::max();
506 // }
507 // std::vector<RouteElement> route = GetRouteLeadingToConnector(ownConnectorId);
508 // if (std::find_if(route.cbegin(), route.cend(),[&](const auto& element) {return element.roadId == position.mainLocatePoint.roadId;}) == route.end())
509 // {
510 // route.push_back({position.mainLocatePoint.roadId, position.mainLocatePoint.laneId < 0}); //Hotfix
511 // }
512 // const auto laneStream = CreateLaneStream(route, position.mainLocatePoint.roadId, position.mainLocatePoint.laneId, position.mainLocatePoint.roadPosition.s);
513 // const auto& laneOfObject = GetLaneByOdId(position.mainLocatePoint.roadId, position.mainLocatePoint.laneId, position.mainLocatePoint.roadPosition.s);
514 // double sStartOfObjectOnLaneStream = laneStream->GetPositionByElementAndS(laneOfObject, position.touchedRoads.at(position.mainLocatePoint.roadId).sStart);
515 // double sEndOfObjectOnLaneStream = laneStream->GetPositionByElementAndS(laneOfObject, position.touchedRoads.at(position.mainLocatePoint.roadId).sEnd);
516 // double frontOfObjectOnLaneStream = std::max(sStartOfObjectOnLaneStream, sEndOfObjectOnLaneStream);
517 // const auto& intersectingLane = GetLaneByOdId(intersectingConnectorId, intersectingLaneId, 0.0);
518 // const auto ownLane = std::find_if(laneStream->GetElements().cbegin(), laneStream->GetElements().cend(),
519 // [&](const LaneStreamInfo& element){return worldData.GetRoadIdMapping().at(element.element->GetRoad().GetId()) == ownConnectorId;});
520 // double sStart = intersection->sOffsets.at({intersectingLane.GetId(), ownLane->element->GetId()}).first;
521 // double positionOfIntersectionOnLaneStream = laneStream->GetPositionByElementAndS(*ownLane->element, sStart);
522 // return positionOfIntersectionOnLaneStream - frontOfObjectOnLaneStream;
523 return 0;
524 }
double GetDistanceUntilObjectLeavesConnector | ( | const ObjectPosition | position,
 |  | std::string | intersectingConnectorId,
 |  | int | intersectingLaneId,
 |  | std::string | ownConnectorId
 | ) |  | const

Returns the distance from the rear of the specified to the last intersection point of its road with the specified connector. If the object is not yet on the junction all possible route the object can take are considered and the maximum distance is returned

Parameters
object | object to calculate the distance for
connectingRoadId | OpenDrive id of connector intersecting with the route of the object
Returns
distance of rear of object to last intersection with connecting road
527 {
528 //TODO This function needs to be made working again if OpponentAgent is implemented
529 // const OWL::Interfaces::Junction* junction = GetJunctionOfConnector(intersectingConnectorId);
530 // const auto& intersections = junction->GetIntersections().at(intersectingConnectorId);
531 // const auto& intersection = std::find_if(intersections.cbegin(), intersections.cend(),
532 // [this, ownConnectorId](const auto& connectionInfo){return worldData.GetRoadIdMapping().at(connectionInfo.intersectingRoad) == ownConnectorId;});
533 // if (intersection == intersections.cend())
534 // {
535 // return std::numeric_limits<double>::max();
536 // }
537 // std::vector<RouteElement> route = GetRouteLeadingToConnector(ownConnectorId);
538 // if (std::find_if(route.cbegin(), route.cend(),[&](const auto& element) {return element.roadId == position.mainLocatePoint.roadId;}) == route.end())
539 // {
540 // route.push_back({position.mainLocatePoint.roadId, position.mainLocatePoint.laneId < 0}); //Hotfix
541 // }
542 // const auto laneStream = CreateLaneStream(route, position.mainLocatePoint.roadId, position.mainLocatePoint.laneId, position.mainLocatePoint.roadPosition.s);
543 // const auto& laneOfObject = GetLaneByOdId(position.mainLocatePoint.roadId, position.mainLocatePoint.laneId, position.mainLocatePoint.roadPosition.s);
544 // double sStartOfObjectOnLaneStream = laneStream->GetPositionByElementAndS(laneOfObject, position.touchedRoads.at(position.mainLocatePoint.roadId).sStart);
545 // double sEndOfObjectOnLaneStream = laneStream->GetPositionByElementAndS(laneOfObject, position.touchedRoads.at(position.mainLocatePoint.roadId).sEnd);
546 // double rearOfObjectOnLaneStream = std::min(sStartOfObjectOnLaneStream, sEndOfObjectOnLaneStream);
547 // const auto& intersectingLane = GetLaneByOdId(intersectingConnectorId, intersectingLaneId, 0.0);
548 // const auto ownLane = std::find_if(laneStream->GetElements().cbegin(), laneStream->GetElements().cend(),
549 // [&](const LaneStreamInfo& element){return worldData.GetRoadIdMapping().at(element.element->GetRoad().GetId()) == ownConnectorId;});
550 // double sEnd = intersection->sOffsets.at({intersectingLane.GetId(), ownLane->element->GetId()}).second;
551 // double positionOfIntersectionOnLaneStream = laneStream->GetPositionByElementAndS(*ownLane->element, sEnd);
552 // return positionOfIntersectionOnLaneStream - rearOfObjectOnLaneStream;
553 return 0;
554 }
std::shared_ptr< const LaneStream > CreateLaneStream | ( | const std::vector< RouteElement > & | route,
 |  | std::string | startRoadId,
 |  | OWL::OdId | startLaneId,
 |  | double | startDistance
 | ) |  | const

Creates the longest possible laneStream along the given route that contains the given startLane

Parameters
route | OpenDrive ids of the roads along which the laneStream should flow
startRoadId | OpenDrive id of the road of the startLane
startLaneId | OpenDrive id of the startLane
startDistance | s coordinate on the startLane
Returns
557 {
558 std::vector<LaneStreamInfo> lanes;
559 OWL::CLane* currentLane = GetOriginatingRouteLane(route, startRoadId, startLaneId, startDistance);
560 auto currentRoadId = currentLane->GetRoad().GetId();
561 auto routeIterator = std::find_if(route.cbegin(), route.cend(),
562 [&](const auto& routeElement){return routeElement.roadId == currentRoadId;});
563 double currentS = 0.0;
564 auto currentRoad = worldData.GetRoads().at(currentRoadId);
565 while (currentLane)
566 {
567 bool inStreamDirection = (routeIterator->inOdDirection);
568 LaneStreamInfo laneStreamInfo;
569 laneStreamInfo.element = currentLane;
570 laneStreamInfo.sOffset = currentS + (inStreamDirection ? 0 : currentLane->GetLength());
571 laneStreamInfo.inStreamDirection = inStreamDirection;
572 lanes.push_back(laneStreamInfo);
573 currentS += currentLane->GetLength();
574 const auto& successorLanes = inStreamDirection ? currentLane->GetNext() : currentLane->GetPrevious();
575 currentLane = GetLaneOnRoad(currentRoad, successorLanes);
576 if (!currentLane) //If successor is not on this road, go to previous road in the route
577 {
578 ++routeIterator;
579 if (routeIterator == route.cend())
580 {
581 break;
582 }
583 currentRoadId = routeIterator->roadId;
584 currentRoad = worldData.GetRoads().at(currentRoadId);
585 currentLane = GetLaneOnRoad(currentRoad, successorLanes);
586 }
587 }
588 return std::make_shared<const LaneStream>(std::move(lanes));
589 }
OWL::Interfaces::Lane
This class represents a single lane inside a section.
Definition: DataTypes.h:140
OWL::Interfaces::Lane::GetPrevious
virtual const std::vector< Id > & GetPrevious() const =0
Returns the ids of all predecessors of this lane.
OWL::Interfaces::WorldData::GetRoads
virtual const std::unordered_map< std::string, Road * > & GetRoads() const =0
Returns a map of all Roads with their OSI Id.
StreamInfo::sOffset
double sOffset
element represented by this object
Definition: WorldDataQuery.h:27
OWL::Interfaces::Lane::GetLength
virtual double GetLength() const =0
Returns the length of the lane.
OWL::Interfaces::Road::GetId
virtual const std::string & GetId() const =0
Returns the Id of the road.
OWL::Interfaces::Lane::GetNext
virtual const std::vector< Id > & GetNext() const =0
Returns the ids of all successors of this lane.
StreamInfo::inStreamDirection
bool inStreamDirection
S Offset of the start point of the element from the beginning of the stream.
Definition: WorldDataQuery.h:28
StreamInfo
Definition: WorldDataQuery.h:24
OWL::Interfaces::Lane::GetRoad
virtual const Road & GetRoad() const =0
Returns the road that this lane is part of.

Here is the call graph for this function:

std::shared_ptr< const LaneMultiStream > CreateLaneMultiStream | ( | const RoadGraph & | roadGraph,
 |  | RoadGraphVertex | start,
 |  | OWL::OdId | startLaneId,
 |  | double | startDistance
 | ) |  | const

Creates a LaneMultiStream that contains the OWL lanes out of a roadGraph.

Parameters
roadGraph | road graph to convert, must be a tree
start | root of the tree
startLaneId | OpenDrive id of the lane at the root, where the lane stream should start
startDistance | s coordinate at the root, where the lane stream should start
Returns
LaneMultiStream starting with the specified lane and containing all consecutive lanes that are also contained in the given road graph
592 {
593 const auto& routeElement = get(RouteElement(), roadGraph, start);
594 const auto& startLane = GetLaneByOdId(routeElement.roadId, startLaneId, startDistance);
595 if (!startLane.Exists())
596 {
597 return std::make_shared<const LaneMultiStream>(CreateLaneMultiStreamRecursive(roadGraph, start, 0.0, nullptr));
598 }
599 return std::make_shared<const LaneMultiStream>(CreateLaneMultiStreamRecursive(roadGraph, start, 0.0, &startLane));
600 }
RouteElement
This represents one node on the road network graph of the world or in the routing graph of an agent...
Definition: worldDefinitions.h:210
WorldDataQuery::GetLaneByOdId
OWL::CLane & GetLaneByOdId(std::string odRoadId, OWL::OdId odLaneId, double distance) const
Definition: WorldDataQuery.cpp:174
std::shared_ptr< const RoadStream > CreateRoadStream ( const std::vector< RouteElement > & route ) const

Creates a RoadStream from the given route.

Parameters
route Route containing the OpenDrive ids of the Roads along which the roadStream should flow
Returns
a RoadStream across the Roads specified in route
603 {
604 double currentS = 0.0;
605
606 std::vector<RoadStreamInfo> roads;
607 std::transform(route.cbegin(),
608 route.cend(),
609 std::back_inserter(roads),
610 [&](const auto& routeElement) -> RoadStreamInfo
611 {
612 RoadStreamInfo roadStreamInfo;
613 roadStreamInfo.element = GetRoadByOdId(routeElement.roadId);
614 roadStreamInfo.inStreamDirection = routeElement.inOdDirection;
615 roadStreamInfo.sOffset = currentS + (routeElement.inOdDirection ? 0 : roadStreamInfo.element->GetLength());
616
617 currentS += roadStreamInfo.element->GetLength();
618 return roadStreamInfo;
619 });
620 return std::make_shared<const RoadStream>(std::move(roads));
621 }
WorldDataQuery::GetRoadByOdId
OWL::CRoad * GetRoadByOdId(std::string odRoadId) const
Returns the OWL road with the specified OpenDrive id.
Definition: WorldDataQuery.cpp:128
StreamInfo::sOffset
double sOffset
element represented by this object
Definition: WorldDataQuery.h:27
StreamInfo::inStreamDirection
bool inStreamDirection
S Offset of the start point of the element from the beginning of the stream.
Definition: WorldDataQuery.h:28
StreamInfo
Definition: WorldDataQuery.h:24
std::shared_ptr< const RoadMultiStream > CreateRoadMultiStream | ( | const RoadGraph & | roadGraph,
 |  | RoadGraphVertex | start
 | ) |  | const

Creates a RoadMultiStream that contains the OWL roads out of a roadGraph.

Parameters
roadGraph | road graph to convert, must be a tree
start | root of the tree
Returns
LaneMultiStream starting with the specified road and containing all consecutive roads that are also contained in the given road graph
624 {
625 return std::make_shared<const RoadMultiStream>(CreateRoadMultiStreamRecursive(roadGraph, start, 0.0));
626 }
RouteQueryResult< LongitudinalDistance > GetDistanceBetweenObjects | ( | const RoadMultiStream & | roadStream,
 |  | const ObjectPosition & | objectPos,
 |  | const std::optional< double > | objectReferenceS,
 |  | const ObjectPosition & | targetObjectPos
 | ) |  | const

GetDistanceBetweenObjects gets the distance between two ObjectPositions on a RoadStream.

Parameters
[in] | roadStream | RoadStream in which to get the distance between two ObjectPositions
[in] | objectPos | Object from whom the distance is calculated
[in] | objectReferenceS | Reference point offset of the target object
[in] | targetObject | Target object from whom the distance is calculated (if this object is behind, the distance is negative)
Returns
The distance between object and targetObject on roadStream
747 {
748 const auto& rootElement = roadStream.GetRoot().element.value();
749 const auto& rootRoadId = rootElement.element->GetId();
750 double objectPositionStart = rootElement.GetStreamPosition(objectPos.touchedRoads.at(rootRoadId).sStart);
751 double objectPositionEnd = rootElement.GetStreamPosition(objectPos.touchedRoads.at(rootRoadId).sEnd);
752 double objectPositionMin = std::min(objectPositionStart, objectPositionEnd);
753 double objectPositionMax = std::max(objectPositionStart, objectPositionEnd);
754 double objectPositionReferencPoint{0};
755 if (objectReferenceS)
756 {
757 objectPositionReferencPoint = rootElement.GetStreamPosition(objectReferenceS.value());
758 }
759 return roadStream.Traverse<LongitudinalDistance>(RoadMultiStream::TraversedFunction<LongitudinalDistance>{[&](const auto& road, const auto& previousResult)
760 {
761 const auto& roadId = road.element->GetId();
762 if ((previousResult.netDistance.has_value() && previousResult.referencePoint.has_value())
763 || targetObjectPos.touchedRoads.count(roadId) == 0)
764 {
765 return previousResult;
766 }
767 double targetObjectPositionStart = road.GetStreamPosition(targetObjectPos.touchedRoads.at(roadId).sStart);
768 double targetObjectPositionEnd = road.GetStreamPosition(targetObjectPos.touchedRoads.at(roadId).sEnd);
769 double targetObjectPositionMin = std::min(targetObjectPositionStart, targetObjectPositionEnd);
770 double targetObjectPositionMax = std::max(targetObjectPositionStart, targetObjectPositionEnd);
771 std::optional<double> referenceDistance = std::nullopt;
772 if (objectReferenceS && targetObjectPos.referencePoint.find(roadId) != targetObjectPos.referencePoint.end())
773 {
774 referenceDistance = road.GetStreamPosition(targetObjectPos.referencePoint.at(roadId).roadPosition.s) - objectPositionReferencPoint;
775 }
776 else if (previousResult.referencePoint.has_value())
777 {
778 referenceDistance = previousResult.referencePoint;
779 }
780 if (objectPositionMin > targetObjectPositionMax)
781 {
782 return LongitudinalDistance{targetObjectPositionMax - objectPositionMin, referenceDistance};
783 }
784 else if (targetObjectPositionMin > objectPositionMax)
785 {
786 return LongitudinalDistance{targetObjectPositionMin - objectPositionMax, referenceDistance};
787 }
788 else
789 {
790 return LongitudinalDistance{0, referenceDistance};
791 }
792 }},
793 {},
794 worldData);
795 }
ObjectPosition::touchedRoads
std::map< std::string, RoadInterval > touchedRoads
position of the mainLocatePoint (middle of agent front) mapped by roadId
Definition: worldDefinitions.h:206
LongitudinalDistance
Longitudinal distance (i.e. along s) between two objects on the same road.
Definition: worldDefinitions.h:287

Here is the call graph for this function:

RouteQueryResult< Obstruction > GetObstruction | ( | const LaneMultiStream & | laneStream,
 |  | double | tCoordinate,
 |  | const ObjectPosition & | otherPosition,
 |  | const std::vector< Common::Vector2d > & | objectCorners,
 |  | const Common::Vector2d & | mainLaneLocator
 | ) |  | const

Calculates the obstruction with an object i.e. how far to left or the right the object is from my position For more information see the markdown documentation

Parameters
laneStream | own lane stream
tCoordinate | own t coordinate
otherPosition | position of the other object
objectCorners | corners of the other object
Returns
obstruction with other object
1020 {
1021 return laneStream.Traverse<Obstruction, std::pair<std::optional<Position>,std::optional<Position>>>(LaneMultiStream::TraversedFunction<Obstruction, std::pair<std::optional<Position>,std::optional<Position>>>
1022 {[&](const auto& lane, const auto& previousResult, const auto& previousPoints)
1023 {
1024 std::optional<Position> firstPoint{previousPoints.first};
1025 std::optional<Position> secondPoint{previousPoints.second};
1026 const auto it = otherPosition.touchedRoads.find(lane().GetRoad().GetId());
1027 if (it == otherPosition.touchedRoads.end())
1028 {
1029 return std::make_tuple(previousResult, std::make_pair(firstPoint, secondPoint));
1030 }
1031 const double objectStart = it->second.sStart;
1032 const double objectEnd = it->second.sEnd;
1033 if (lane.inStreamDirection)
1034 {
1035 if(!firstPoint)
1036 {
1037 firstPoint = CalculatePositionIfOnLane(objectStart, tCoordinate, lane());
1038 }
1039 if(!secondPoint)
1040 {
1041 secondPoint = CalculatePositionIfOnLane(objectEnd, tCoordinate, lane());
1042 }
1043 }
1044 else
1045 {
1046 if(!firstPoint)
1047 {
1048 firstPoint = CalculatePositionIfOnLane(objectEnd, -tCoordinate, lane());
1049 }
1050 if(!secondPoint)
1051 {
1052 secondPoint = CalculatePositionIfOnLane(objectStart, -tCoordinate, lane());
1053 }
1054 }
1055 if (!firstPoint || !secondPoint)
1056 {
1057 return std::make_tuple(Obstruction::Invalid(), std::make_pair(firstPoint, secondPoint));
1058 }
1059
1060 double leftDistance{std::numeric_limits<double>::lowest()};
1061 double rightDistance{std::numeric_limits<double>::max()};
1062 for (const auto& corner : objectCorners)
1063 {
1064 double distance = CalculatePerpendicularDistance(corner, Common::Line{{firstPoint.value().xPos, firstPoint.value().yPos}, {secondPoint.value().xPos, secondPoint.value().yPos}});
1065 leftDistance = std::max(leftDistance, distance);
1066 rightDistance = std::min(rightDistance, distance);
1067 }
1068 double mainLocatorDistance = CalculatePerpendicularDistance(mainLaneLocator, Common::Line{{firstPoint.value().xPos, firstPoint.value().yPos}, {secondPoint.value().xPos, secondPoint.value().yPos}});
1069 return std::make_tuple(Obstruction{leftDistance, rightDistance, mainLocatorDistance}, std::make_pair(firstPoint, secondPoint));
1070 }},
1071 Obstruction::Invalid(),
1072 std::make_pair(std::nullopt, std::nullopt),
1073 worldData);
1074 }
ObjectPosition::touchedRoads
std::map< std::string, RoadInterval > touchedRoads
position of the mainLocatePoint (middle of agent front) mapped by roadId
Definition: worldDefinitions.h:206
Common::Line
Definition: vector2d.h:230
Obstruction::Invalid
static Obstruction Invalid()
Definition: worldDefinitions.h:274
Obstruction
Describes the obstruction of an opposing object within the driving lanes.
Definition: worldDefinitions.h:253

Here is the call graph for this function:

Position GetPositionByDistanceAndLane | ( | const OWL::Interfaces::Lane & | lane,
 |  | double | distanceOnLane,
 |  | double | offset
 | ) |  | const

Returns the world position that corresponds to a position on a lane

Parameters
lane | lane in the network
distanceOnLane | s coordinate on the lane
offset | t coordinate on the lane
798 {
799 const auto& referencePoint = lane.GetInterpolatedPointsAtDistance(distanceOnLane).reference;
800 auto yaw = lane.GetDirection(distanceOnLane);
801
802 return Position
803 {
804 referencePoint.x - std::sin(yaw) * offset,
805 referencePoint.y + std::cos(yaw) * offset,
806 yaw,
807 lane.GetCurvature(distanceOnLane)
808 };
809 }
OWL::Interfaces::Lane::GetInterpolatedPointsAtDistance
virtual const Primitive::LaneGeometryJoint::Points GetInterpolatedPointsAtDistance(double distance) const =0
OWL::Interfaces::Lane::GetCurvature
virtual double GetCurvature(double distance) const =0
Position
Definition: globalDefinitions.h:160
OWL::Interfaces::Lane::GetDirection
virtual double GetDirection(double distance) const =0

Here is the call graph for this function:

RouteQueryResult< RelativeWorldView::Junctions > GetRelativeJunctions | ( | const RoadMultiStream & | roadStream,
 |  | double | startPosition,
 |  | double | range
 | ) |  | const

Returns the relative distances (start and end) and the connecting road id of all junctions on the road stream in range

Parameters
roadStream | road stream to search
startPosition | start search position on the road stream
range | range of search
Returns
information about all junctions in range
812 {
813 return roadStream.Traverse(RoadMultiStream::TraversedFunction<RelativeWorldView::Junctions>{[&](const auto& road, const auto& previousResult)
814 {
815 if (road.EndS() < startPosition)
816 {
817 return previousResult;
818 }
819 if (road.StartS() > startPosition + range)
820 {
821 return previousResult;
822 }
823 RelativeWorldView::Junctions junctions{previousResult};
824 std::string roadId = road().GetId();
825 auto junction = GetJunctionOfConnector(roadId);
826 if (junction)
827 {
828 double startS = road.StartS() - startPosition;
829 double endS = road.EndS() - startPosition;
830 junctions.push_back({startS, endS, roadId});
831 }
832 return junctions;
833 }},
834 {},
835 worldData);
836 }
WorldDataQuery::GetJunctionOfConnector
const OWL::Interfaces::Junction * GetJunctionOfConnector(const std::string &connectingRoadId) const
Returns the junction that the specified Connector is part of.
Definition: WorldDataQuery.cpp:140

Here is the call graph for this function:

RouteQueryResult< RelativeWorldView::Lanes > GetRelativeLanes | ( | const RoadMultiStream & | roadStream,
 |  | double | startPosition,
 |  | int | startLaneId,
 |  | double | range
 | ) |  | const

Returns information about all lanes on the roadStream in range. These info are the relative distances (start and end), the laneId relative to the ego lane, the successors and predecessors if existing and the information wether the intended driving direction of the lane is the same as the direction of the roadStream. If the ego lane prematurely ends, then the further lane ids are relative to the middle of the road.

Parameters
roadStream | road stream to search
startPosition | start search position on the road stream
startLaneId | ego lane id
range | range of search
Returns
information about all lanes in range
896 {
897 int currentOwnLaneId = startLaneId;
898 return roadStream.Traverse<RelativeWorldView::Lanes, std::map<int, OWL::Id>>(
899 RoadMultiStream::TraversedFunction<RelativeWorldView::Lanes, std::map<int, OWL::Id>>{[&](const auto& road, const auto& previousResult, const auto& previousLaneIds)
900 {
901 std::map<int, OWL::Id> previousSectionLaneIds{previousLaneIds};
902 if (road.EndS() < startPosition)
903 {
904 return std::make_tuple(previousResult, previousLaneIds);
905 }
906 if (road.StartS() > startPosition + range)
907 {
908 return std::make_tuple(previousResult, previousLaneIds);
909 }
910 RelativeWorldView::Lanes relativeLanes{previousResult};
911 auto sections = road().GetSections();
912 if (!road.inStreamDirection)
913 {
914 sections.reverse();
915 }
916 for (const auto& section : sections)
917 {
918 const double sectionStart = road.GetStreamPosition(section->GetSOffset() + (road.inStreamDirection ? 0 : section->GetLength()));
919 const double sectionEnd = road.GetStreamPosition(section->GetSOffset() + (road.inStreamDirection ? section->GetLength() : 0));
920 if (sectionEnd < startPosition)
921 {
922 continue;
923 }
924 if (sectionStart > startPosition + range)
925 {
926 return std::make_tuple(relativeLanes, previousSectionLaneIds);
927 }
928 RelativeWorldView::LanesInterval laneInterval;
929 laneInterval.startS = sectionStart - startPosition;
930 laneInterval.endS = sectionEnd - startPosition;
931 const auto& lanesOnSection = section->GetLanes();
932 if (previousSectionLaneIds.empty())
933 {
934 currentOwnLaneId = startLaneId;
935 }
936 else
937 {
938 currentOwnLaneId = FindNextEgoLaneId(lanesOnSection, road.inStreamDirection, previousSectionLaneIds);
939 }
940 auto lanesOnSectionLaneIds = AddLanesOfSection(lanesOnSection, road.inStreamDirection, currentOwnLaneId, previousSectionLaneIds, relativeLanes.back().lanes, laneInterval);
941 previousSectionLaneIds = lanesOnSectionLaneIds;
942 relativeLanes.push_back(laneInterval);
943 }
944 return std::make_tuple(relativeLanes, previousSectionLaneIds);
945 }},
946 {},
947 {},
948 worldData);
949 }
RelativeWorldView::LanesInterval
Definition: worldDefinitions.h:123

Here is the call graph for this function:

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: WorldObjectAdapter Class Reference

List of all members
WorldObjectAdapter Class Referenceabstract
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: WorldParameter Class Reference

List of all members
WorldParameter Class Reference
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: WorldParameterOSI Struct Reference

List of all members
WorldParameterOSI Struct Reference
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Class Index

Class Index
A | B | C | D | E | F | G | I | J | L | M | N | O | P | R | S | T | U | V | W
A
DynamicAgentTypeGenerator Lazy (OWL) Road (OWL::Fakes) SpawnPointPreRunCommon
DynamicParameters | LaneAcceleration (OWL::Primitive) | RoadMarking (OWL::Fakes) | SpawnArea (SpawnPointPreRunCommonDefinitions)
AccelerationSignal | DynamicParameterSampler | LaneGeometryElement (OWL::Primitive) | Road (OWL::Implementation) | SpawnPointRuntimeCommon
Action_BrakeLight_Basic_Implementation | DynamicProfileSampler | LaneGeometryJoint (OWL::Primitive) | RoadMarking (OWL::Implementation) | SpawnDetails (SpawnPointRuntimeCommonDefinitions)
ActionLongitudinalDriverImplementation | Dynamics_Longitudinal_Basic_Implementation | LaneOrientation (OWL::Primitive) | Road (OWL::Interfaces) | SpawnPointRuntimeCommonParameters (SpawnPointRuntimeCommonDefinitions)
ActionSecondaryDriverTasksImplementation | DynamicsCollisionImplementation | LaneOrientationRate (OWL::Primitive) | RoadMarking (OWL::Interfaces) | SpawnPosition (SpawnPointRuntimeCommonDefinitions)
ActionTransformRepository | DynamicsPostCrashImplementation | LanePosition (OWL::Primitive) | RoadAcceleration (OWL::Primitive) | SpawnPointScenario
AcyclicResult | DynamicsRegularDrivingImplementation | LaneVelocity (OWL::Primitive) | RoadCoordinate (OWL::Primitive) | SpeedActionManipulator
AgentAdapter | DynamicsRegularTwoTrackImplementation | Lane (RelativeWorldView) | RoadOrientationRate (OWL::Primitive) | SpeedActionSignal
AgentBlueprint | DynamicsSignal | LanesInterval (RelativeWorldView) | RoadVelocity (OWL::Primitive) | STCoordinates
AgentBlueprintProvider | RuntimeInformation::Directories (openpass::common) | LaneIntersection (World::Localization) | ReachPositionCondition | SteeringController
AgentBuildInformation | Directories (openpass::core) | LocalizationElement (World::Localization) | Remainder | SteeringSignal
AgentCompToCompCtrlSignal | Dimension (OWL::Primitive) | Localizer (World::Localization) | RemoveAgentsManipulator | StochasticsImplementation
AgentNetwork | DataStore (SimulationSlave) | LocatedObject (World::Localization) | Road | Stream
AgentSpawnItem DataStoreBinding (SimulationSlave)
M
RoadGeometry StreamInfo
AgentUpdaterImplementation DataStoreLibrary (SimulationSlave) RoadGeometryArc SurroundingObjects
Algorithm_CruiseControlByDistance_Implementation
E
ManipulatorCommonBase RoadGeometryLine
T
Algorithm_FmuWrapper MultiStream RoadGeometryParamPoly3
AlgorithmAgentFollowingDriverModelImplementation | Entity (CommonTrafficSign) | ManipulatorTaskItem (openpass::scheduling) | RoadGeometryPoly3 | TrajectoryEvent (openpass::events)
AlgorithmAutonomousEmergencyBrakingImplementation | EgoAgent | ManipulatorInformation (openScenario) | RoadGeometrySpiral | TaskBuilder (openpass::scheduling)
AlgorithmFmuWrapperImplementation | EventDetectorCommonBase | MovingObject (OWL::Fakes) | RoadInterval | TaskBuilderInterface (openpass::scheduling)
AlgorithmLateralImplementation | EventDetectorImporter (Importer) | MovingObject (OWL::Implementation) | RoadLane | TaskItem (openpass::scheduling)
AlgorithmLongitudinalCalculations | Entity (LaneMarking) | MovingObject (OWL::Interfaces) | RoadLaneSection | Tasks (openpass::scheduling)
AlgorithmLongitudinalImplementation | ExponentialDistribution (openpass::parameter) | ModelParameters (SimulationCommon) | RoadLink | TimeKeeper (openpass::scheduling)
AdasComponentStateInformation (ComponentControl) | EventDetectorTaskItem (openpass::scheduling) | MasterConfig (SimulationMaster::Configuration) | RoadNetworkBuilder | TriggerTaskItem (openpass::scheduling)
AgentDataPublisher (openpass::publisher) | EntityAction (openScenario) | MasterConfigImporter (SimulationMaster::Configuration) | RoadNetworkElement | TriggeringEntities (openpass::type)
AgentParser (openpass::scheduling) | EventDetector (SimulationSlave) | Manipulator (SimulationSlave) | RoadObject | TimeHeadwayCondition (openScenario)
AffectedEntities (openpass::type) | EventDetectorBinding (SimulationSlave) | ManipulatorBinding (SimulationSlave) | RoadPosition | TimeToCollisionCondition (openScenario)
AbsoluteTargetSpeed (openScenario) | EventDetectorLibrary (SimulationSlave) | ManipulatorLibrary (SimulationSlave) | RoadSignal | Trajectory (openScenario)
ActorInformation (openScenario) | EventDetectorNetwork (SimulationSlave) | ManipulatorNetwork (SimulationSlave) | RouteElement | TrajectoryPoint (openScenario)
AbsAcceleration (OWL::Primitive) | EventNetwork (SimulationSlave) | ModelBinding (SimulationSlave) | RunStatistic | Trajectory (openScenario::transformation)
AbsCoordinate (OWL::Primitive)
F
ModelLibrary (SimulationSlave) RunStatisticCalculation TransformerBase (openScenario::transformation)
AbsOrientation (OWL::Primitive)
N
RunInstantiator (SimulationSlave) TransitionDynamics (openScenario)
AbsOrientationRate (OWL::Primitive) | FixedComponentStateExpression (ComponentControl) | RunResult (SimulationSlave) | TrafficSign (OWL::Fakes)
AbsPosition (OWL::Primitive) | FakeLaneManager | MultiStream::Node | Result (World::Localization) | TrafficSign (OWL::Implementation)
AbsVelocity (OWL::Primitive) FrameworkModules NoOperationManipulator
S
TrafficSign (OWL::Interfaces)
Agent (SimulationSlave) | FollowTrajectoryAction (openScenario) | NormalDistribution (openpass::parameter) | Tire
AgentFactory (SimulationSlave) | FrameworkModuleContainer (SimulationSlave) | NamedType (openpass::type) | StateManager (ComponentControl) | TrafficHelperFunctions
AgentType (SimulationSlave)
G
NonExistentOsiRef (OWL) Scenario (Configuration) TrafficObjectAdapter
AgentProfileLaneMaps (SpawnPointDefinitions)
O
Scenery (Configuration) TrafficRuleInformation
B
GeometryInformation SlaveConfig (Configuration) TrajectoryFollowerImplementation
GlobalRoadPosition | ObjectDetectorBase | SystemConfig (Configuration) | TrajectoryManipulator
BasicDataStoreImplementation | GammaDistribution (openpass::parameter) | ObjectInformation | ScenarioImporter (Importer) | TrajectorySignal
BoolSignal
I
ObjectPosition SceneryImporter (Importer) TtcCalculations
BorderPoint | ObjectView | SlaveConfigImporter (Importer) | TtcCalculations::TtcParameters
BorderPoints InputPort Observation_State_Implementation SystemConfigImporter (Importer)
U
BoundingBoxCalculation IntersectingConnection Observation_Ttc_Implementation SpeedActionEvent (openpass::events)
BasicEvent (openpass::events) | IntSignal | ObservationCyclics | Scheduler (openpass::scheduling) | UniformDistribution (openpass::parameter)
ByEntityCondition (openScenario) | InvalidLane (OWL::Implementation) | ObservationFileHandler | SchedulerTasks (openpass::scheduling) | UpdateGlobalDrivingViewTaskItem (openpass::scheduling)
ByValueCondition (openScenario) | InvalidRoad (OWL::Implementation) | ObservationInstance | SpawningTaskItem (openpass::scheduling) | UpdateTaskItem (openpass::scheduling)
C
InvalidSection (OWL::Implementation) ObservationLogImplementation SyncWorldTaskItem (openpass::scheduling)
V
IntersectionInfo (OWL) | Obstruction | ScenarioImporterHelper (openScenario)
CollisionAngles
J
ObservationTaskItem (openpass::scheduling) SimulationTimeCondition (openScenario) Vector2d (Common)
CollisionDetectionPostCrash | Orientation (openScenario) | SpeedAction (openScenario) | Vector3d (Common)
CollisionDetector | Joint | OpenScenarioActionsImplementation | StochasticAttribute (openScenario) | VehicleComponentStateExpression (ComponentControl)
CollisionManipulator | JointsBuilder | OscActionsCalculation | SpeedAction (openScenario::transformation) | VehicleModels (Configuration)
CommandLineArguments | Junction | OsmpFmuHandler | Section (OWL::Fakes) | VehicleModelsImporter (Importer)
CommandLineOption | JunctionConnection | OutputAttributes | StationaryObject (OWL::Fakes) | RuntimeInformation::Versions (openpass::common)
CommandLineParser | JunctionConnectorPriority | OutputPort | Section (OWL::Implementation) | Version (openpass::common)
CompCtrlToAgentCompSignal | Junction (OWL::Fakes) | OutputTags | StationaryObject (OWL::Implementation) | VisitParameterElement (openpass::parameter::internal)
CompCtrlToDriverCompSignal | Junction (OWL::Implementation) | OwnVehicleInformation | Section (OWL::Interfaces) | VisibilityAction (openScenario)
ComponentStateEquality (ComponentControl) | Junction (OWL::Interfaces) | ObservationParameters (SimulationCommon) | StationaryObject (OWL::Interfaces) | Vehicle (OWL::Implementation)
ComponentStateExpression (ComponentControl) | LaneGeometryElement::Joints (OWL::Primitive) | ObservationBinding (SimulationSlave) | SampledGeometry | VehicleCompToCompCtrlSignal
ComponentStateInformation (ComponentControl) | Junction (RelativeWorldView) | ObservationLibrary (SimulationSlave) | SampledProfiles | VehicleModelParameters
Condition (ComponentControl)
L
ObservationModule (SimulationSlave) SceneryConverter VehicleSimpleTT
ComponentControllerImplementation ObservationNetwork (SimulationSlave) SecondaryDriverTasksSignal
W
ComponentPort Line (Common)
P
Sensor_Distance_Implementation
ComponentStateChangeManipulator | LaneChangeManipulator | SensorDataSignal | WorldPosition (openScenario)
ComponentStateSignal | LaneGeometryPolygon | ProfilesImporter (Importer) | SensorDetectionResults | WorldData (OWL::Fakes)
ConditionalEventDetector | LaneInformationGeometry | Parameter (openpass::sensors) | SensorDriverCalculations | WorldData (OWL::Interfaces)
ConditionCommonBase | LaneInformationTrafficRules | Position (openpass::sensors) | SensorDriverImplementation | WorldObject (OWL::Interfaces)
ConditionMetaInformation | LaneJoint | Profile (openpass::sensors) | SensorDriverSignal | WorldData (OWL)
ConfigurationContainer (Configuration) | LateralDynamicConstants | ParameterizedAttribute (openScenario) | SensorFusionHelperFunctions | WorldParameters (SimulationCommon)
ConfigurationFiles | LateralSignal | LaneGeometryJoint::Points (OWL::Primitive) | SensorFusionImplementation | World (SimulationSlave)
Connection LimiterAccelerationVehicleComponentsImplementation ParametersVehicleImplementation SensorGeometric2D WorldBinding (SimulationSlave)
CSVParser Log ParametersVehicleSignal SensorRecordStateImplementation WorldLibrary (SimulationSlave)
CustomCommandFactory | LogOutputPolicy | Polygon | SignalPrioritizerImplementation | WorldToRoadCoordinateConverter (World::Localization)
CyclicResult LongitudinalDistance Position SignalVector World_Basic_Implementation
ConversionStatus (Internal) | LongitudinalSignal | PostCrashDynamic | SpawnPointParameters (SimulationCommon) | WorldAnalyzer
CollisionEvent (openpass::events) | LaneChangeEvent (openpass::events) | PostCrashVelocity | SlaveConfig (SimulationMaster::Configuration) | WorldDataQuery
ComponentStateChangeEvent (openpass::events) | LogNormalDistribution (openpass::parameter) | ProcessManager | SpawnItemParameter (SimulationSlave) | WorldImplementation
CoreDataPublisher (openpass::publisher) | LogEntry (openpass::publisher) | Profiles | SpawnPoint (SimulationSlave) | WorldObjectAdapter
ConditionalEventDetectorInformation (openScenario) | LogEntryBase (openpass::publisher) | Parameters (SimulationCommon) | SpawnPointBinding (SimulationSlave) | WorldParameter
CustomCommandAction (openScenario) | LaneChangeAction (openScenario) | PreRunSpawnerParameters (SpawnPointPreRunCommonDefinitions) | SpawnPointLibrary (SimulationSlave) | WorldParameterOSI
Callbacks (SimulationCommon) LaneChangeParameter (openScenario) PointQuery (World::Localization) SpawnPointNetwork (SimulationSlave)
c
Channel (SimulationSlave) LanePosition (openScenario)
R
Stochastics (SimulationSlave)
ChannelBuffer (SimulationSlave) | LaneChange (openScenario::transformation) | StochasticsBinding (SimulationSlave) | cmplx
Component (SimulationSlave) | Lane (OWL::Fakes) | RuntimeInformation (openpass::common) | StochasticsLibrary (SimulationSlave) | cmplxl
ComponentType (SimulationSlave) LaneBoundary (OWL::Fakes) ReachPositionCondition (openScenario) SimulationTimeCondition
e
D
Lane (OWL::Implementation) RelativeLanePosition (openScenario) SpawnPoint_Start_Implementation
LaneBoundary (OWL::Implementation) | RelativeSpeedCondition (openScenario) | SpawningAgentProfile (SpawnPointDefinitions) | externalParameter
DefaultComponents Lane (OWL::Interfaces) RelativeTargetSpeed (openScenario) SpawnPointDependencies
f
DoubleSignal | LaneBoundary (OWL::Interfaces) | RoadPosition (openScenario) | SpawnPointLibraryInfo
fmi1_csv_input_t
A | B | C | D | E | F | G | I | J | L | M | N | O | P | R | S | T | U | V | W
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: Class Hierarchy

Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 1234]
►C ActionInterface
C Action_BrakeLight_Basic_Implementation | Sets the brake light
C ActionLongitudinalDriverImplementation
C ActionSecondaryDriverTasksImplementation | Controls secondary driver tasks
C ActionTransformRepository | Use this class as mixed set for fixed and auto registering transformations
►C AcyclicResultInterface
C AcyclicResult
►C AgentBlueprintInterface
C AgentBlueprint | This class stores all information which is required to instantiate an agent
►C AgentBlueprintProviderInterface
C AgentBlueprintProvider
C AgentBuildInformation | The AgentBuildInformation struct contains all information that the AgentBlueprintProvider needs to fill out the AgentBlueprint for a dynamic AgentProfile
►C AgentFactoryInterface
C AgentFactory
►C AgentInterface
C AgentAdapter | The AgentAdapter class This class is a adapter for the communication between the framework and world
C AgentAdapter | The AgentAdapter class This class is a adapter for the communication between the framework and world
C AgentNetwork | Network of agents
C AgentSpawnItem | Representation of an agent as defined in the run configuration
►C AgentTypeInterface
C AgentType
C Algorithm_FmuWrapper
►C AlgorithmInterface
C Algorithm_CruiseControlByDistance_Implementation | Models the lateral controller of the driver
C AlgorithmAutonomousEmergencyBrakingImplementation
C AlgorithmLateralImplementation | Models the lateral controller of the driver
C AlgorithmLongitudinalImplementation
C SignalPrioritizerImplementation | This class manages the routing of signals to the sepcific components
C AlgorithmLongitudinalCalculations | This class does all the calculations in the Algorithm_Longitudinal module
C BorderPoint | This lane represents the outer boundary points of a lane at one s coordinate
C BorderPoints | This struct represents the boundary points of all lanes (including lane 0) at one s coordinate (i.e. one joint)
C BoundingBoxCalculation
►C CallbackInterface
C Callbacks | Callback implementation within framework
C cmplx
C cmplxl
C CollisionAngles
C CollisionDetectionPostCrash | Collision component that calculates post-crash dynamics
C CommandLineArguments
C CommandLineOption
C CommandLineParser
C Line
C Vector2d
C Vector3d
C Entity
►C ComponentStateExpression | This class represents an expression that can be evaluated as ComponentState
C FixedComponentStateExpression | The FixedComponentStateExpression is a ComponentStateExpression that always evaluates to the same ComponentState
C VehicleComponentStateExpression | The VehicleComponentStateExpression is a ComponentStateExpression that evaluates to the current state of some fixed component
►C ComponentStateInformation | The ComponentStateConfiguration class handles the dependencies of a single component
C AdasComponentStateInformation
►C Condition | This class represents a Condition based on all the information the ComponentController has gathered
C ComponentStateEquality | This Condition is fullfilled if two ComponentStateExpressions are evaluated to the same value
C StateManager | Handles the dependencies of all components
►C ComponentInterface
C Component
►C ComponentPort | A Class to manage ports of a component
C InputPort< SignalType, ValueType >
C InputPort< DoubleSignal, double >
C OutputPort< SignalType, ValueType >
►C ComponentStateSignalInterface
C AccelerationSignal | Signal class
C BoolSignal | Primitive signal class for boolean values
C ComponentStateSignal | Primitive signal class for componentState values
C DoubleSignal | Primitive signal class for double values
C DynamicsSignal | Signal class
C IntSignal | Primitive signal class for integer values
C LateralSignal
C LongitudinalSignal
C SecondaryDriverTasksSignal
C SpeedActionSignal | Signal class
C SteeringSignal | Signal class
C TrajectorySignal | Signal class
►C ConditionCommonBase
C ReachPositionCondition
C SimulationTimeCondition
C ConditionMetaInformation
►C ConfigurationContainerInterface
C ConfigurationContainer | This class imports and stores all configurations
C ConfigurationFiles
►C ConnectionInterface
C Connection
C CSVParser
C CustomCommandFactory | Use this class as static auto registering factory for custom commands
►C CyclicResultInterface
C CyclicResult
►C DataStoreInterface
C BasicDataStoreImplementation | This class implements a basic version of a data store
C DataStore
C DefaultComponents | Defines the default components that all agents need
C DynamicAgentTypeGenerator | Used to build the AgentBuildInformation struct in particular the AgentType
C DynamicParameters
C DynamicParameterSampler
C DynamicProfileSampler | Responsible for sampling all profile names (except AgentProfile which is sampled by the AgentProfilesSampler)
►C DynamicsInterface
C Dynamics_Longitudinal_Basic_Implementation | Calculate the next velocity and position of the agent in the next timestep based on the acceleration in longitudinal direction
C DynamicsRegularDrivingImplementation
C DynamicsRegularTwoTrackImplementation
►C EgoAgentInterface
C EgoAgent
►C EventDetectorInterface
►C EventDetectorCommonBase | This is the parent class for all EventDetectors providing the basic functionality
C CollisionDetector | This class detectes wether a collision happen in the simulation
C ConditionalEventDetector
►C EventDetectorNetworkInterface
C EventDetectorNetwork
►C EventInterface
►C BasicEvent< EventCategory >
C CollisionEvent
C ComponentStateChangeEvent
C LaneChangeEvent
C SpeedActionEvent
C TrajectoryEvent
►C EventNetworkInterface
C EventNetwork | Implements the functionality of the interface
C externalParameter< ValueType >
C externalParameter< double >
C FakeLaneManager
C fmi1_csv_input_t
C fmi2_csv_input_t
C fmu_check_data_t
►C FmuHandlerInterface
C OsmpFmuHandler
►C FrameworkModuleContainerInterface
C FrameworkModuleContainer
C FrameworkModules
C GeometryInformation | This struct contains infrastructure information of surrounding lanes that describe its geometric features
C GlobalRoadPosition | Position of a point in the road network
C EventDetectorImporter
C ProfilesImporter
C ScenarioImporter
C SceneryImporter
C SlaveConfigImporter | This class povides the import functionality
C SystemConfigImporter | Class handles importing an agent system configuration
C VehicleModelsImporter | Provides methods for importing vehicle models from OpenSCENARIO catalog files
C ConversionStatus
C IntersectingConnection | Information regarding a connecting road intersecting another
C Joint | This struct contains all information calculated by the JointBuilder for one joint
C JointsBuilder
C JunctionConnection
C JunctionConnectorPriority
►C JunctionInterface
C Junction
C LaneGeometryPolygon
C LaneInformationGeometry | This struct is used to transport data of a lane concerning its geometric features as seen by the driver
C LaneInformationTrafficRules | This struct is used to trasport data of a lane concerning traffic rules as seen by the driver
C LaneJoint | This struct contains all information calculated by the JointBuilder for one joint and one lane
C Entity
C LateralDynamicConstants | Calulaction parameters for the lateral acceleration wish [m/s]
C Lazy< double >
C Log< T > | Coordinates logging
C LogOutputPolicy | Handles access of file
C LongitudinalDistance | Longitudinal distance (i.e. along s) between two objects on the same road
►C ManipulatorInterface
►C ManipulatorCommonBase | This is the parent class for all Manipulators providing the basic functionality
C CollisionManipulator | This class notifies all relevant modules about the collision
C ComponentStateChangeManipulator | This class toggles an assistance system
C LaneChangeManipulator | This class removes an agent
C NoOperationManipulator | This class is a manipulator, that doesn't trigger any action and solely returns the event. It existes to met the OpenSCENARIO conventions
C RemoveAgentsManipulator | This class removes an agent
C SpeedActionManipulator | This class emits the SpeedActionEvent
C TrajectoryManipulator | This manipulator sets a trajectory for an agent
►C ManipulatorNetworkInterface
C ManipulatorNetwork
C MultiStream< T >
C MultiStream< T >::Node
C ObjectInformation | This struct is used to transport data of an object as seen be the driver
C ObjectPosition | Position of an object in the road network
C ObjectView
C ObservationCyclics | The ObservationCyclics stores the samples which are logged by various modules and written into the cyclics tag of the simulationOutput.xml
C ObservationFileHandler | Provides the basic logging and observer functionality
C ObservationInstance | Wrapper for building an ObservationInstance
►C ObservationInterface
C Observation_State_Implementation | Logs the current X position of every agent at each time step
C Observation_Ttc_Implementation | Logs the time to collision (ttc) of all agents
C ObservationLogImplementation | This class adds the RunStatistic information to the simulation output
C ObservationLogImplementation | This class adds the RunStatistic information to the simulation output
►C ObservationNetworkInterface
C ObservationNetwork
C Obstruction | Describes the obstruction of an opposing object within the driving lanes
C RuntimeInformation
C RuntimeInformation::Directories
C RuntimeInformation::Versions
C Version
C Directories
C ExponentialDistribution
C GammaDistribution
C VisitParameterElement | Switches between flat parameters and parameter lists
C LogNormalDistribution
C NormalDistribution
C UniformDistribution
►C LogEntryBase | Base class for logging of acyclic events in the datastore
C LogEntry
C AgentParser | Convert agent to taskItems for Scheduling
C Scheduler | Execute all tasks for an simulation run
C SchedulerTasks | Managing timing of all given tasks
►C TaskBuilderInterface | Interface of taskBuilder
C TaskBuilder | Handles fix tasks of scheduler
►C TaskItem | Handles data to store scheduler tasks
C EventDetectorTaskItem | TaskItem for eventDetector task
C ManipulatorTaskItem | TaskItem for manipulator task
C ObservationTaskItem | TaskItem for observation task
C SpawningTaskItem | TaskItem for spawning task
C SyncWorldTaskItem | TaskItem for synchronize world task
C TriggerTaskItem | TaskItem for triggering task
C UpdateGlobalDrivingViewTaskItem | TaskItem for update global driving view task
C UpdateTaskItem | TaskItem for update task
C Tasks | Stores taskItems in multiset
C TimeKeeper | Allows core components to access the current schedule time without need for a direct reference
C Parameter
C Position
C Profile
C AffectedEntities | Contains the affected entities of an acyclic
C NamedType< T, Tag >
C TriggeringEntities | Contains the triggering entities of an acyclic
C AbsoluteTargetSpeed
C ActorInformation
►C ByEntityCondition
C ReachPositionCondition
C RelativeSpeedCondition
C TimeHeadwayCondition
C TimeToCollisionCondition
►C ByValueCondition
C SimulationTimeCondition
C ConditionalEventDetectorInformation | Event specific information collected from an openSCENARIO story
C CustomCommandAction
C EntityAction
C FollowTrajectoryAction
C LaneChangeAction
C LaneChangeParameter
C LanePosition
C ManipulatorInformation
C Orientation
C ParameterizedAttribute< T > | Attribute in a catalog that is not yet resolved
C RelativeLanePosition
C RelativeTargetSpeed
C RoadPosition
C ScenarioImporterHelper
C SpeedAction
C StochasticAttribute
C Trajectory
C TrajectoryPoint
C TransformerBase< T, Signal, TriggeringEvent > | CRTP Base class for Transformer
C TransitionDynamics
C VisibilityAction
C WorldPosition
C OscActionsCalculation | This class makes calculations for the OpenScenarioActions module
C OutputAttributes
C OutputTags
►C Junction | This class represents a junction in the world
C Junction
C Junction
►C Lane | This class represents a single lane inside a section
C Lane
►C Lane
C InvalidLane
►C LaneBoundary | This class represents the boundary between two lanes
C LaneBoundary
C LaneBoundary
►C Road | This class represents a road in the world
C Road
►C Road
C InvalidRoad
►C RoadMarking | This class represents a traffic sign that is painted on the road surface
C RoadMarking
C RoadMarking
►C Section | This class represents one section of a road
C Section
►C Section
C InvalidSection
►C TrafficSign | This class represents a static traffic sign
C TrafficSign
C TrafficSign
►C WorldData | This class contains the entire road network and all objects in the world
C WorldData
C WorldData
►C WorldObject
►C MovingObject
C MovingObject
►C MovingObject
C Vehicle
►C StationaryObject
C StationaryObject
C StationaryObject
C IntersectionInfo
C Lazy< T >
C AbsAcceleration
C AbsCoordinate
C AbsOrientation
C AbsOrientationRate
C AbsPosition
C AbsVelocity
C Dimension
C LaneAcceleration
C LaneGeometryElement
C LaneGeometryElement::Joints
C LaneGeometryJoint
C LaneGeometryJoint::Points | Tripple describing the sampled points of the lane
C LaneOrientation
C LaneOrientationRate
C LanePosition
C LaneVelocity
C RoadAcceleration
C RoadCoordinate
C RoadOrientationRate
C RoadVelocity
C OwnVehicleInformation | Data about the lane to left (in driving direction) of the mainLane
►C ParameterInterface
►C Parameters
C ModelParameters
C ObservationParameters
C SpawnPointParameters
C WorldParameters
C Polygon | Polygon in 2d
C Position
C PostCrashDynamic | Class to store post-crash dynamics data Used to store information about the dynamic after a collision
C PostCrashVelocity
►C ProfilesInterface
C Profiles
►C PublisherInterface
C AgentDataPublisher | ! Interface which has to be provided by observation modules
C CoreDataPublisher | ! Interface which has to be provided by observation modules
►C QObject
C ProcessManager
C Junction
C Lane
C LanesInterval
C Remainder | This struct describes how much space an agent has to next lane boundary on both sides
►C RoadGeometryInterface
►C RoadGeometry
C RoadGeometryArc | Class representing a road arc as a RoadGeometry
C RoadGeometryLine | Class representing a road line as a RoadGeometry
C RoadGeometryParamPoly3 | Class representing a road form defined via a parametric cubic polynomial as a RoadGeometry
C RoadGeometryPoly3 | Class representing a road form defined via a cubic polynomial as a RoadGeometry
C RoadGeometrySpiral | Class representing a spiral road (clothoid) as a RoadGeometry
►C RoadInterface
C Road | Class representing a road
C RoadInterval | Interval on a specific road
►C RoadLaneInterface
C RoadLane | Class representing a road lane
►C RoadLaneSectionInterface
C RoadLaneSection | Class representing a road lane section that can contain several road lanes
►C RoadLinkInterface
C RoadLink | Class representing a link to a road
C RoadNetworkBuilder
C RoadNetworkElement
►C RoadObjectInterface
C RoadObject
C RoadPosition | Position of a point on a specific lane
►C RoadSignalInterface
C RoadSignal | Class representing a road signal
C RouteElement | This represents one node on the road network graph of the world or in the routing graph of an agent
►C RunResultInterface
C RunResult | Stores run results for output data
C RunStatistic
C RunStatisticCalculation | Helper functions for run statistic analysis
C SampledGeometry | This struct is the result of the geometry sampling of one road section
C SampledProfiles | The SampledProfiles struct constains the name of all profiles sampled by the DynamicProfileSampler. With this the DynamicAgentTypeGenerator can generate an AgentType
►C ScenarioInterface
C Scenario
C SceneryConverter
►C SceneryInterface
C Scenery | Class representing a scenery as a list of roads
C SensorDetectionResults
C SensorDriverCalculations | Utility class for the sensor driver
C SensorFusionHelperFunctions
►C SensorInterface
C AlgorithmAgentFollowingDriverModelImplementation
►C ObjectDetectorBase | This class is the common base for all SensorObjectDetectors
C SensorGeometric2D | This file models a sensor which only detects agents in a 2D area (x/y) in front of the agent
C ParametersVehicleImplementation | Defines constants or creates stochastic values that are used in more than one module
C Sensor_Distance_Implementation | This module is a basic module to sense the current state of an agent
C SensorDriverImplementation
C SensorRecordStateImplementation | Records the state of the agent
►C SignalInterface
►C AgentCompToCompCtrlSignal
C VehicleCompToCompCtrlSignal
►C CompCtrlToAgentCompSignal Facilitates communication with the agent component, defining the max reachable state of the component as well as the states of other components connected to the

ComponentController

C CompCtrlToDriverCompSignal Facilitates communication with the driver component, allowing for warnings to be forwarded to the driver

alongside standard agent component information.

C ParametersVehicleSignal | Provides all vehicle parameters for the driver
C SensorDataSignal
C SensorDriverSignal
C SignalVector< DT > | Primitive signal class for vectors
C MasterConfig | Used as value storage of parsed configuration parameters
C MasterConfigImporter
C SlaveConfig
C Agent
C Channel
C ChannelBuffer
C ComponentType
C DataStoreBinding
C DataStoreLibrary
C EventDetector
C EventDetectorBinding
C EventDetectorLibrary
C Manipulator
C ManipulatorBinding
C ManipulatorLibrary
C ModelBinding
C ModelLibrary
C ObservationBinding
C ObservationLibrary
C ObservationModule
C RunInstantiator
C SpawnPoint
C SpawnPointBinding
C SpawnPointLibrary
C StochasticsBinding
C StochasticsLibrary
C WorldBinding
C WorldLibrary
►C SlaveConfigInterface
C SlaveConfig | Container class for the slave configuration
►C SpawnItemParameterInterface
C SpawnItemParameter
C AgentProfileLaneMaps
C SpawningAgentProfile
C SpawnPointDependencies
►C SpawnPointInterface
C SpawnPoint_Start_Implementation | Spawn agents at the beginning of road
C SpawnPointPreRunCommon | Spawns agents for all scenarios
C SpawnPointRuntimeCommon
C SpawnPointScenario | Spawns agents for all scenarios
C SpawnPointLibraryInfo
►C SpawnPointNetworkInterface
C SpawnPointNetwork
C PreRunSpawnerParameters
C SpawnArea
C SpawnDetails
C SpawnPointRuntimeCommonParameters
C SpawnPosition
C STCoordinates
►C exception
C NonExistentOsiRef
C SteeringController
►C StochasticsInterface
C Stochastics
C StochasticsImplementation | Implementation of StochasticsInterface
C Stream< T >
C StreamInfo< T >
C SurroundingObjects
►C SystemConfigInterface
C SystemConfig
C Tire | Static tire model based on TMEASY by Rill et al
C TrafficHelperFunctions | Containing general static functions to evaluate traffic situations
►C TrafficObjectInterface
C TrafficObjectAdapter
C TrafficRuleInformation | This struct contains infrastructure information of surrounding lanes that are used to establish traffic rules
►C TransformerBase< LaneChange, TrajectorySignal, openpass::events::LaneChangeEvent >
C LaneChange
►C TransformerBase< SpeedAction, SpeedActionSignal, openpass::events::SpeedActionEvent >
C SpeedAction
►C TransformerBase< Trajectory, TrajectorySignal, openpass::events::TrajectoryEvent >
C Trajectory
C TtcCalculations | Containing functions to calculate time to collision of two objects
C TtcCalculations::TtcParameters | Structure to hold all necessary world object parameters for TTC calculation
►C UnrestrictedEventModelInterface
C ComponentControllerImplementation
C OpenScenarioActionsImplementation | Relays triggered OpenScenario actions as signals to other components
►C UnrestrictedModelInterface
C AgentUpdaterImplementation | The class which is responsible for updating the agent in each time step
C AlgorithmFmuWrapperImplementation
C DynamicsCollisionImplementation
C DynamicsPostCrashImplementation
C LimiterAccelerationVehicleComponentsImplementation | This class implements the set limit
C SensorFusionImplementation | This class is the SensorFusion module
C TrajectoryFollowerImplementation | Makes an agent strictly follow a predefined path
C VehicleModelParameters
►C VehicleModelsInterface
C VehicleModels
C VehicleSimpleTT | Simple STATIC two-track vehicle model
C LaneIntersection< T > | This struct describes the intersection of an object with a lane
C LocalizationElement | This struct contains all the information about a LaneGeometryElement that is needed by the Localizer
C Localizer
C LocatedObject
C PointQuery
C Result
C WorldToRoadCoordinateConverter
C WorldAnalyzer | This class provides utility functions for spawners to query information about the world
C WorldDataQuery | Helper class for complex queries on the world data
►C WorldInterface
C World
C World_Basic_Implementation | Implementation of a WorldInterface
C WorldImplementation | Implementation of a WorldInterface
►C WorldObjectInterface
►C WorldObjectAdapter
C AgentAdapter | The AgentAdapter class This class is a adapter for the communication between the framework and world
C TrafficObjectAdapter
C WorldParameter
C WorldParameterOSI
►C Ts
C overload< Ts >
C overload< Ts >
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- a -

  • absoluteVelocity : ObjectInformation , OwnVehicleInformation
  • acceleration : ObjectInformation , OwnVehicleInformation
  • AccelerationSignal() : AccelerationSignal
  • AcquireOutputData() : Component
  • acyclicStore : BasicDataStoreImplementation
  • Add() : Vector2d , Vector3d
  • AddAgent() : AgentNetwork
  • AddBorder() : RoadLane
  • AddBoundaryPoint() : LaneBoundary
  • AddCenterLinePoint() : WorldData
  • AddCollision() : EventNetwork
  • AddCollisionId() : RunResult
  • AddComponent() : StateManager
  • AddConnectingRoad() : Junction
  • AddElevation() : Road
  • AddGeometryArc() : Road
  • AddGeometryLine() : Road
  • AddGeometryParamPoly3() : Road
  • AddGeometryPoly3() : Road
  • AddGeometrySpiral() : Road
  • AddInputLink() : Component
  • AddIntersectionInfo() : Junction
  • AddJunction() : Scenery , WorldData
  • AddJunctionConnection() : WorldData
  • AddJunctionPriority() : WorldData
  • AddLane() : Section , WorldData
  • AddLaneAssignment() : WorldObject
  • AddLaneBoundary() : WorldData
  • AddLaneGeometryJoint() : Lane
  • AddLaneGeometryPoint() : WorldData
  • AddLaneOffset() : Road
  • AddLanePredecessor() : WorldData
  • AddLaneSuccessor() : WorldData
  • AddLink() : Road
  • AddMovingObject() : Lane , WorldData
  • AddNext() : Lane , Section
  • AddOutputLink() : Component
  • AddParsedObjectsToRoad() : SceneryImporter
  • AddPredecessor() : RoadLane
  • AddPrevious() : Lane , Section
  • AddPriority() : Junction
  • AddRoad() : Scenery , WorldData
  • AddRoadLane() : RoadLaneSection
  • AddRoadLaneSection() : Road
  • AddRoadMark() : RoadLane
  • AddRoadMarking() : Lane , WorldData
  • AddRoadSignal() : Road
  • AddSection() : Road , WorldData
  • AddSensor() : AgentBlueprint
  • AddStateCondition() : ComponentStateInformation
  • AddStationaryObject() : Lane , WorldData
  • AddSuccessor() : RoadLane
  • AddSupplementarySign() : TrafficSign
  • AddTask() : Tasks
  • AddTrafficSign() : Lane , WorldData
  • AddWidth() : RoadLane
  • AddWorldObject() : Lane
  • AgentCompToCompCtrlSignal() : AgentCompToCompCtrlSignal
  • AlgorithmAgentFollowingDriverModelImplementation() : AlgorithmAgentFollowingDriverModelImplementation
  • AlgorithmLongitudinalCalculations() : AlgorithmLongitudinalCalculations
  • Angle() : Vector2d
  • ApplyLatency() : ObjectDetectorBase
  • ApplyMeasurementError() : ObjectDetectorBase
  • ApplyRepeat() : SceneryImporter
  • ApplySectorFilter() : WorldData
  • AreSpawningCoordinatesValid() : WorldAnalyzer
  • As() : WorldObject
  • AssignRoadMarkingToLane() : WorldData
  • AssignTrafficSignToLane() : WorldData
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- b -

  • Build() : RoadNetworkBuilder
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- c -

  • CalculateBoundingBox() : BoundingBoxCalculation , ObjectDetectorBase
  • CalculateCentroid() : Polygon
  • CalculateCurvatures() : JointsBuilder
  • CalculateDistOnBorder() : CollisionDetector
  • CalculateGearAndEngineSpeed() : AlgorithmLongitudinalCalculations
  • CalculateGlobalSensorPosition() : ObjectDetectorBase
  • CalculateHeadings() : JointsBuilder
  • CalculateIntersectionPoints() : CollisionDetector
  • CalculateNetTimeGap() : TrafficHelperFunctions
  • CalculateNextTimestep() : TrajectoryFollowerImplementation
  • CalculateObjectTTC() : TtcCalculations
  • CalculateOwnBoundingBox() : BoundingBoxCalculation
  • CalculatePedalPositions() : AlgorithmLongitudinalCalculations
  • CalculatePointOfContact() : CollisionDetector
  • CalculatePoints() : JointsBuilder
  • CalculateRelativeVector() : ObjectDetectorBase
  • CalculateSinusiodalLaneChange() : OscActionsCalculation
  • CalculateSpawnVelocityToPreventCrashing() : WorldAnalyzer
  • CalculateSteeringAngle() : SteeringController
  • CalculateWorldObjectGeometry() : CollisionDetector
  • callbacks : fmu_check_data_t
  • Clear() : AgentNetwork , Scenery , ObservationCyclics , WorldData , EventDetectorNetwork , EventNetwork , ManipulatorNetwork
  • ClearLaneAssignments() : WorldObject
  • ClearMovingObjects() : Lane
  • collision : OwnVehicleInformation
  • Combine() : SampledGeometry
  • CompCtrlToAgentCompSignal() : CompCtrlToAgentCompSignal
  • CompCtrlToDriverCompSignal() : CompCtrlToDriverCompSignal
  • COMPONENTNAME : AlgorithmLongitudinalImplementation , DynamicsRegularDrivingImplementation , DynamicsRegularTwoTrackImplementation , SensorDriverImplementation
  • ComponentPort() : ComponentPort
  • Concat() : Directories
  • configurationDir : ConfigurationFiles , Directories
  • ConnectLanes() : WorldData
  • ConsumeNonRecurringAgentTasks() : SchedulerTasks
  • Contains() : Stream< T >
  • context : fmu_check_data_t
  • ConvertObjects() : SceneryConverter
  • ConvertRoads() : SceneryConverter
  • CopyToGroundTruth() : Lane , LaneBoundary , RoadMarking , TrafficSign , WorldObject
  • Covers() : Lane , Section
  • CoversInterval() : Section
  • Create() : CustomCommandFactory
  • CreateBootstrapTasks() : TaskBuilder
  • CreateCollisionDetector() : EventDetectorLibrary
  • CreateComponent() : ModelLibrary
  • CreateDataStore() : DataStoreLibrary
  • CreateFinalizeTasks() : TaskBuilder
  • CreateLaneMultiStream() : WorldDataQuery
  • CreateLaneStream() : WorldDataQuery
  • CreateManipulator() : ManipulatorLibrary
  • CreateObservationModule() : ObservationLibrary
  • CreateOutputBuffer() : Component
  • CreatePostCrashDynamics() : CollisionDetectionPostCrash
  • CreateRoadMultiStream() : WorldDataQuery
  • CreateRoadStream() : WorldDataQuery
  • CreateSpawningTasks() : TaskBuilder
  • CreateSpawnPoint() : SpawnPointLibrary
  • CreateStochastics() : StochasticsLibrary
  • CreateSynchronizeTasks() : TaskBuilder
  • CreateWorld() : WorldLibrary
  • Cross() : Vector2d
  • CSV_separator : fmu_check_data_t
  • curvature : LaneInformationGeometry , LaneGeometryJoint
  • curvatureRoadSmoothLast : SteeringController
  • cyclicStore : BasicDataStoreImplementation
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- d -

  • defaultValue : ParameterizedAttribute< T >
  • DeleteAgentTasks() : SchedulerTasks
  • DeleteTasks() : Tasks
  • DetectCollision() : CollisionDetector
  • DetectObjects() : SensorGeometric2D
  • DetermineDefaultMaximumComponentStateByType() : AdasComponentStateInformation
  • DetermineEgoCollision() : RunStatisticCalculation
  • discreteIndex : fmi1_csv_input_t , fmi2_csv_input_t
  • distanceToEndOfLane : LaneInformationGeometry
  • distanceToLaneBoundaryLeft : OwnVehicleInformation
  • distanceToLaneBoundaryRight : OwnVehicleInformation
  • do_mangle_var_names : fmu_check_data_t
  • do_output_all_vars : fmu_check_data_t
  • do_simulate_flg : fmu_check_data_t
  • do_test_cs : fmu_check_data_t
  • do_test_me : fmu_check_data_t
  • Dot() : Vector2d
  • DriveTrain() : VehicleSimpleTT
  • dynamicsTarget : LaneChangeParameter
  • dynamicsType : LaneChangeParameter
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- e -

  • endHeading : SampledGeometry
  • EndS() : StreamInfo< T >
  • entityIdIndex : BasicDataStoreImplementation
  • eventIndex1 : fmi1_csv_input_t , fmi2_csv_input_t
  • eventIndex2 : fmi1_csv_input_t , fmi2_csv_input_t
  • ExecuteRun() : RunInstantiator
  • exist : ObjectInformation
  • exists : LaneInformationGeometry
  • Exists() : Lane
  • externalParameter() : externalParameter< ValueType >
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- f -

  • findFrontAgentID() : Observation_Ttc_Implementation
  • FixedComponentStateExpression() : FixedComponentStateExpression
  • FlagComponentMaxReachableStateSetByEvent() : StateManager
  • fmu : fmi1_csv_input_t , fmi2_csv_input_t
  • fmu1 : fmu_check_data_t
  • fmu1_kind : fmu_check_data_t
  • fmu2 : fmu_check_data_t
  • fmu2_kind : fmu_check_data_t
  • FMUPath : fmu_check_data_t
  • ForceGlobal() : VehicleSimpleTT
  • ForceLocal() : VehicleSimpleTT
  • forceTotalXY : VehicleSimpleTT
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- g -

  • gainHeadingError : LateralDynamicConstants
  • GatherBasicComponents() : DynamicAgentTypeGenerator
  • GatherComponent() : DynamicAgentTypeGenerator
  • GatherComponentWithParameters() : DynamicAgentTypeGenerator
  • GatherDriverComponents() : DynamicAgentTypeGenerator
  • GatherSensors() : DynamicAgentTypeGenerator
  • GatherVehicleComponents() : DynamicAgentTypeGenerator
  • GenerateDynamicAgentBlueprint() : AgentBlueprintProvider
  • GenerateSensorViewConfiguration() : ObjectDetectorBase , SensorGeometric2D
  • GenerateStaticAgentBlueprint() : AgentBlueprintProvider
  • Get() : ComponentStateExpression , Log< T >
  • GetA() : RoadGeometryPoly3
  • GetAbsAccelerationDouble() : WorldObject
  • GetAbsolutePosition() : ObjectDetectorBase
  • GetAbsOrientation() : WorldObject
  • GetAbsVelocityDouble() : WorldObject
  • GetAcceleratorPedalPosition() : AlgorithmLongitudinalCalculations
  • GetAccFromEngineTorque() : AlgorithmLongitudinalCalculations
  • GetAdasType() : AdasComponentStateInformation
  • GetAgent() : AgentNetwork , Component
  • GetAgentCategory() : AgentBlueprint
  • GetAgentComponentName() : AgentCompToCompCtrlSignal
  • GetAgentFactory() : SpawnPoint
  • GetAgentHeader() : ObservationCyclics
  • GetAgentId() : WorldData
  • GetAgentProfileName() : AgentBlueprint
  • GetAgents() : AgentNetwork
  • GetAgentSamplesLine() : ObservationCyclics
  • GetAgentType() : AgentBlueprint
  • GetAU() : RoadGeometryParamPoly3
  • GetAV() : RoadGeometryParamPoly3
  • GetB() : RoadGeometryPoly3
  • GetBootstrapTasks() : SchedulerTasks
  • GetBorders() : RoadLane
  • GetBrakePedalPosition() : AlgorithmLongitudinalCalculations
  • GetBU() : RoadGeometryParamPoly3
  • GetBV() : RoadGeometryParamPoly3
  • GetC() : RoadGeometryPoly3
  • GetCenterLaneBoundary() : Section
  • GetCollisionAngles() : CollisionDetectionPostCrash
  • GetColor() : LaneBoundary
  • GetComponent() : StateManager
  • GetComponentLocalLinkIdByName() : StateManager
  • GetComponentName() : ComponentStateInformation
  • GetComponentType() : AgentCompToCompCtrlSignal , ComponentStateInformation
  • GetComponentWarnings() : AgentCompToCompCtrlSignal
  • GetConnectingRoads() : Junction
  • GetContactPoint() : RoadLink
  • GetCoord() : RoadGeometry
  • GetCoordArc() : RoadGeometry
  • GetCoordLine() : RoadGeometry
  • GetCU() : RoadGeometryParamPoly3
  • GetCurrentState() : AgentCompToCompCtrlSignal , ComponentStateInformation
  • GetCurvature() : Lane , RoadGeometryArc
  • GetCurvEnd() : RoadGeometrySpiral
  • GetCurvStart() : RoadGeometrySpiral
  • GetCV() : RoadGeometryParamPoly3
  • GetCycleTime() : EventDetectorCommonBase , ManipulatorCommonBase , Component
  • GetD() : RoadGeometryParamPoly3 , RoadGeometryPoly3
  • GetDimension() : WorldObject
  • GetDir() : RoadGeometry
  • GetDirArc() : RoadGeometry
  • GetDirection() : Lane , RoadLink
  • GetDirLine() : RoadGeometry
  • GetDistance() : Lane , Road , Section
  • GetDistanceBetweenObjects() : WorldDataQuery
  • GetDistanceToEndOfLane() : WorldDataQuery
  • GetDistanceUntilObjectEntersConnector() : WorldDataQuery
  • GetDistanceUntilObjectLeavesConnector() : WorldDataQuery
  • GetDriverProfileName() : AgentBlueprint
  • GetDV() : RoadGeometryParamPoly3
  • GetElementAndSByPosition() : Stream< T >
  • GetElementId() : RoadLink
  • GetElementType() : RoadLink
  • GetElevations() : Road
  • GetEngineSpeed() : AlgorithmLongitudinalCalculations
  • GetEngineSpeedByVelocity() : AlgorithmLongitudinalCalculations
  • GetEngineTorqueAtGear() : AlgorithmLongitudinalCalculations
  • GetEngineTorqueMax() : AlgorithmLongitudinalCalculations
  • GetEngineTorqueMin() : AlgorithmLongitudinalCalculations
  • GetEventDetectors() : EventDetectorNetwork
  • GetEvents() : ManipulatorCommonBase , EventNetwork
  • GetFilteredGroundTruth() : WorldData
  • GetFinalizeTasks() : SchedulerTasks
  • GetGear() : AlgorithmLongitudinalCalculations
  • GetGeometries() : Road
  • GetGeometryInformation() : SensorDriverSignal
  • GetHdg() : RoadGeometry , RoadObject
  • GetHeader() : ObservationCyclics
  • GetHeight() : RoadSignal
  • GetId() : ComponentPort , externalParameter< ValueType > , Junction , Lane , LaneBoundary , Road , RoadMarking , TrafficSign , WorldObject , Road , RoadLane , RoadLaneSection , RoadObject , RoadSignal , SpawnPoint
  • GetImplementation() : Component , EventDetector , Manipulator , SpawnPoint
  • GetInDirection() : Road , RoadLane , RoadLaneSection
  • GetInit() : Component
  • GetInputLinks() : Component
  • GetInterpolatedPointsAtDistance() : Lane
  • GetIntersectingConnections() : WorldDataQuery
  • GetIntersections() : Junction
  • GetInvalidLane() : WorldData
  • GetIsDynamic() : RoadSignal
  • GetJoints() : JointsBuilder
  • GetJunction() : Scenery
  • GetJunctionByOdId() : WorldDataQuery
  • GetJunctionOfConnector() : WorldDataQuery
  • GetJunctions() : Scenery , WorldData
  • GetLaneAssignments() : WorldObject
  • GetLaneBoundaries() : WorldData
  • GetLaneByOdId() : WorldDataQuery
  • GetLaneGeometryElements() : Lane
  • GetLaneIdMapping() : WorldData
  • GetLaneIndexOffset() : RoadLaneSection
  • GetLaneMarkings() : WorldDataQuery
  • GetLaneOffsets() : Road
  • GetLanes() : Section , WorldData , RoadLaneSection
  • GetLaneSection() : RoadLane
  • GetLaneSections() : Road
  • GetLanesOfLaneTypeAtDistance() : WorldDataQuery
  • GetLaneType() : Lane
  • GetLateralDistanceToObject() : SensorDriverCalculations
  • GetLeftLane() : Lane
  • GetLeftLaneBoundaries() : Lane
  • GetLength() : Lane , Road , Section , RoadGeometry , RoadObject , RoadSignal
  • GetLibrary() : EventDetector , Manipulator , SpawnPoint
  • GetLink() : WorldObject
  • GetLocatedPosition() : WorldObject
  • GetManipulators() : ManipulatorNetwork
  • GetMaxReachableState() : CompCtrlToAgentCompSignal , ComponentStateInformation
  • GetMaxReachableStateOfComponentAtLocalLinkId() : StateManager
  • GetMaxReachableStateSetByEvent() : ComponentStateInformation
  • GetMinMax2() : CollisionDetector
  • GetMinMax4() : CollisionDetector
  • GetMovingObjectsInRangeOfJunctionConnection() : WorldDataQuery
  • GetMovingObjectsInSector() : WorldData
  • GetName() : Component
  • GetNext() : Lane
  • GetNextSpawnPosition() : WorldAnalyzer
  • GetNextTimestamp() : SchedulerTasks
  • GetNumberOfVertices() : Polygon
  • GetObjectName() : AgentBlueprint
  • GetObjectsOfTypeInRange() : WorldDataQuery
  • GetObservations() : Component
  • GetObstruction() : WorldDataQuery
  • GetOffsetTime() : Component
  • GetOutputLinks() : Component
  • GetOwlId() : WorldData
  • GetOwnVehicleInformation() : SensorDriverSignal
  • GetPedestrianCatalogPath() : Scenario
  • GetPitch() : RoadSignal
  • GetPositionByDistanceAndLane() : WorldDataQuery
  • GetPositionByElementAndS() : Stream< T >
  • GetPredecessor() : Road , RoadLane
  • GetPrevious() : Lane
  • GetPriorities() : Junction
  • GetPrioritiesOnJunction() : WorldDataQuery
  • GetPriority() : Component
  • GetProfiles() : ConfigurationContainer
  • GetRecurringAgentTasks() : SchedulerTasks
  • GetReferencePointPosition() : RoadMarking , TrafficSign , WorldObject
  • GetRelativeJunctions() : WorldDataQuery
  • GetRelativeLanes() : WorldDataQuery
  • GetRemovedAgents() : AgentNetwork
  • GetRemovedAgentsInPreviousTimestep() : AgentNetwork
  • GetResponseTime() : Component
  • GetRightLane() : Lane
  • GetRightLaneBoundaries() : Lane
  • GetRightLaneCount() : Lane , WorldAnalyzer
  • GetRoad() : Scenery , Lane , Section , RoadLaneSection , RoadSignal
  • GetRoadByOdId() : WorldDataQuery
  • GetRoadGraph() : WorldData
  • GetRoadGraphVertexMapping() : WorldData
  • GetRoadLinks() : Road
  • GetRoadMarkings() : Lane , WorldData
  • GetRoadMarkingsInRange() : WorldDataQuery
  • GetRoadMarkingsInSector() : WorldData
  • GetRoadMarks() : RoadLane
  • GetRoadObjects() : Road
  • GetRoads() : Scenery , WorldData
  • GetRoadSignals() : Road
  • GetRoll() : RoadSignal
  • GetRuntimeInformation() : ConfigurationContainer
  • GetS() : RoadMarking , TrafficSign , RoadGeometry , RoadObject , RoadSignal
  • GetSamplesLine() : ObservationCyclics
  • GetScenario() : ConfigurationContainer
  • GetScenery() : ConfigurationContainer
  • GetSceneryPath() : Scenario
  • GetSection() : Lane
  • GetSectionByDistance() : WorldDataQuery
  • GetSections() : Road
  • GetSEnd() : LaneBoundary
  • getSensorData() : ObjectDetectorBase
  • GetSensorParameters() : AgentBlueprint
  • GetSensorView() : WorldData
  • GetSide() : LaneBoundary , RoadLink
  • GetSignalValue() : ComponentPort
  • GetSlaveConfig() : ConfigurationContainer
  • GetSOffset() : Section
  • GetSpawningTasks() : SchedulerTasks
  • GetSpawnParameter() : AgentBlueprint
  • GetSpecification() : RoadMarking , TrafficSign
  • GetSpeedGoalMin() : AgentBlueprint
  • GetSquaredError() : BorderPoints
  • GetSStart() : LaneBoundary
  • GetStart() : RoadLaneSection
  • GetStateConditions() : ComponentStateInformation
  • GetStationaryObjectsInSector() : WorldData
  • GetStreamPosition() : StreamInfo< T >
  • GetSubType() : RoadSignal
  • GetSuccessor() : Road , RoadLane
  • GetSurroundingObjects() : SensorDriverSignal
  • GetSystemConfigBlueprint() : ConfigurationContainer
  • GetSystemConfigs() : ConfigurationContainer
  • GetT() : RoadObject , RoadSignal
  • GetTasks() : SchedulerTasks
  • GetText() : RoadSignal
  • GetTimeSteps() : ObservationCyclics
  • GetTrafficRuleInformation() : SensorDriverSignal
  • GetTrafficSignIdMapping() : WorldData
  • GetTrafficSigns() : Lane , WorldData
  • GetTrafficSignsInRange() : WorldDataQuery
  • GetTrafficSignsInSector() : WorldData
  • GetTrajectoryCatalogPath() : Scenario
  • GetTrigger() : EventNetwork
  • GetType() : LaneBoundary , RoadLane , RoadLink , RoadObject , RoadSignal
  • GetUnit() : RoadSignal
  • GetValidLaneSpawningRanges() : WorldAnalyzer
  • GetValue() : externalParameter< ValueType > , InputPort< SignalType, ValueType > , RoadSignal
  • GetValueAndUnitInSI() : TrafficSign
  • GetVehicleCatalogPath() : Scenario
  • GetVehicleComponentNamesToTypeAndStateMap() : StateManager
  • GetVehicleComponentProfileNames() : AgentBlueprint
  • GetVehicleComponentStates() : CompCtrlToAgentCompSignal
  • GetVehicleModelName() : AgentBlueprint
  • GetVehicleModelParameters() : AgentBlueprint
  • GetVehicleModels() : ConfigurationContainer
  • GetVehicleProfileName() : AgentBlueprint
  • GetVertices() : Polygon
  • GetWarnings() : CompCtrlToDriverCompSignal
  • GetWidth() : Lane , LaneBoundary , RoadObject , RoadSignal
  • GetWidths() : RoadLane
  • GetWorldObjectGeometry() : CollisionDetector
  • GetWorldObjects() : Lane
  • GetYaw() : RoadSignal
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- h -

  • HasDetectionError() : ObjectDetectorBase
  • HCPA : CollisionAngles
  • HCPAo : CollisionAngles
  • heading : ObjectInformation , OwnVehicleInformation
  • height : ObjectInformation
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- i -

  • id : ObjectInformation
  • Import() : ProfilesImporter , SceneryImporter , SlaveConfigImporter , SystemConfigImporter , VehicleModelsImporter , MasterConfigImporter
  • ImportAgentProfiles() : ProfilesImporter
  • ImportAllConfigurations() : ConfigurationContainer
  • ImportAllSensorsOfVehicleProfile() : ProfilesImporter
  • ImportAllVehicleComponentsOfVehicleProfile() : ProfilesImporter
  • ImportCatalog() : ScenarioImporter
  • ImportEntity() : ScenarioImporter
  • ImportEnvironment() : SlaveConfigImporter
  • ImportEventDetector() : EventDetectorImporter
  • ImportExperiment() : SlaveConfigImporter
  • ImportGlobalAction() : ScenarioImporterHelper
  • ImportLibraries() : SlaveConfigImporter
  • ImportPedestrianModel() : VehicleModelsImporter
  • ImportPosition() : ScenarioImporterHelper
  • ImportPrivateAction() : ScenarioImporterHelper
  • ImportProfileGroups() : ProfilesImporter
  • ImportScenario() : SlaveConfigImporter
  • ImportSensorLinksOfComponent() : ProfilesImporter
  • ImportSensorParameters() : ProfilesImporter
  • ImportSpawners() : SlaveConfigImporter
  • ImportStoryboard() : ScenarioImporter
  • ImportSystemParameters() : SystemConfigImporter
  • ImportUserDefinedAction() : ScenarioImporterHelper
  • ImportVehicleComponent() : ProfilesImporter
  • ImportVehicleModel() : VehicleModelsImporter
  • ImportVehicleProfile() : ProfilesImporter
  • ImportVehicleProfiles() : ProfilesImporter
  • in_steeringMax : SteeringController
  • in_steeringRatio : SteeringController
  • in_steeringWheelAngle : SteeringController
  • in_velocity : SteeringController
  • in_wheelBase : SteeringController
  • Init() : DataStoreLibrary , EventDetectorLibrary , ManipulatorLibrary , ModelLibrary , ObservationLibrary , SpawnPointLibrary , StochasticsLibrary , WorldLibrary
  • Initialize() : EventNetwork
  • InitSetEngine() : VehicleSimpleTT
  • InitSetGeometry() : VehicleSimpleTT
  • InitSetTire() : VehicleSimpleTT
  • inputFileName : fmu_check_data_t
  • InputPort() : InputPort< SignalType, ValueType >
  • Insert() : ObservationCyclics
  • InsertEvent() : EventNetwork
  • InsertTrigger() : EventNetwork
  • Instantiate() : DataStoreBinding , EventDetectorBinding , EventDetectorNetwork , ManipulatorBinding , ManipulatorNetwork , ModelBinding , ObservationBinding , SpawnPointBinding , StochasticsBinding , World , WorldBinding
  • inStreamDirection : StreamInfo< T >
  • interpContinuousData : fmi1_csv_input_t
  • interpData : fmi1_csv_input_t , fmi2_csv_input_t
  • interpIndex1 : fmi1_csv_input_t , fmi2_csv_input_t
  • interpIndex2 : fmi1_csv_input_t , fmi2_csv_input_t
  • interpLambda : fmi1_csv_input_t , fmi2_csv_input_t
  • interpTime : fmi1_csv_input_t , fmi2_csv_input_t
  • Invalid() : Obstruction
  • Is() : WorldObject
  • isActive : PostCrashVelocity
  • IsFullfilled() : Condition
  • isInstantiated() : World
  • IsInStreamDirection() : Road
  • IsOpen() : LogOutputPolicy
  • isOverlapping : Obstruction
  • IsRelative() : Directories
  • isStatic : ObjectInformation
  • IsSValidOnLane() : WorldDataQuery
  • IsValidForLane() : RoadMarking , TrafficSign , RoadObject , RoadSignal
  • IsWithin() : PointQuery
  • isWithinEngineLimits() : AlgorithmLongitudinalCalculations
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- j -

  • JointsBuilder() : JointsBuilder
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- l -

  • Lane() : Lane
  • laneEgo : GeometryInformation , TrafficRuleInformation
  • laneLeft : GeometryInformation , TrafficRuleInformation
  • laneMarkingsLeft : TrafficRuleInformation
  • laneMarkingsLeftOfLeftLane : TrafficRuleInformation
  • laneMarkingsRight : TrafficRuleInformation
  • laneMarkingsRightOfRightLane : TrafficRuleInformation
  • laneRight : GeometryInformation , TrafficRuleInformation
  • lateralAcceleration : LateralDynamicConstants
  • lateralPosition : OwnVehicleInformation
  • LateralSignal() : LateralSignal
  • left : Obstruction
  • Length() : Vector2d , Vector3d
  • length : ObjectInformation
  • libraryDir : Directories
  • libraryName : ObservationInstance
  • LocalLinkIdIsRegistered() : StateManager
  • Log() : AgentAdapter , AgentNetwork , CollisionDetectionPostCrash , EventDetectorCommonBase , ManipulatorCommonBase , WorldData , SceneryConverter , Callbacks , StochasticsImplementation , World_Basic_Implementation , WorldImplementation
  • log_file : fmu_check_data_t
  • log_file_name : fmu_check_data_t
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- m -

  • mainLaneLocator : Obstruction
  • mainLocatePoint : ObjectPosition
  • make() : AgentBuildInformation , SampledProfiles
  • MasterPostHook() : Observation_State_Implementation , Observation_Ttc_Implementation
  • MasterPreHook() : Observation_State_Implementation , Observation_Ttc_Implementation
  • maxOutputPts : fmu_check_data_t
  • maxOutputPtsSetByUser : fmu_check_data_t
  • meanCurvatureToFarPointSmoothLast : SteeringController
  • meanCurvatureToNearPointSmoothLast : SteeringController
  • modelIdentifierFMI1 : fmu_check_data_t
  • momentTotalZ : VehicleSimpleTT
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- n -

  • nextOutputStep : fmu_check_data_t
  • nextOutputTime : fmu_check_data_t
  • NoOpponent() : Obstruction
  • Norm() : Vector2d , Vector3d
  • NormalizeAngle() : WorldData
  • Now() : TimeKeeper
  • num_errors : fmu_check_data_t
  • num_fatal : fmu_check_data_t
  • num_fmu_messages : fmu_check_data_t
  • num_warnings : fmu_check_data_t
  • numberOfExecutions : ConditionalEventDetectorInformation
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- o -

  • object : LaneChangeParameter
  • ObjectDetectorBase() : ObjectDetectorBase
  • objectFront : SurroundingObjects
  • objectFrontLeft : SurroundingObjects
  • objectFrontRight : SurroundingObjects
  • ObjectIsOfTypeAndWithinRange() : WorldDataQuery
  • objectRear : SurroundingObjects
  • objectRearLeft : SurroundingObjects
  • objectRearRight : SurroundingObjects
  • Obstruction() : Obstruction
  • OCPA : CollisionAngles
  • OCPAo : CollisionAngles
  • operator AgentBuildInformation &&() : DynamicAgentTypeGenerator
  • operator SampledProfiles &&() : DynamicProfileSampler
  • operator std::string() : AccelerationSignal , AgentCompToCompCtrlSignal , BoolSignal , CompCtrlToAgentCompSignal , ComponentStateSignal , DoubleSignal , DynamicsSignal , IntSignal , LateralSignal , LongitudinalSignal , ParametersVehicleSignal , SecondaryDriverTasksSignal , SensorDataSignal , SensorDriverSignal , SignalVector< DT > , SpeedActionSignal , SteeringSignal , TrajectorySignal
  • operator!=() : Vector2d
  • operator()() : VisitParameterElement
  • operator<< : Vector2d
  • operator==() : Vector2d
  • os : Log< T >
  • out_desiredSteeringWheelAngle : AlgorithmLateralImplementation
  • out_file : fmu_check_data_t
  • Output() : LogOutputPolicy
  • output_file_name : fmu_check_data_t
  • outputDir : Directories
  • OutputPort() : OutputPort< SignalType, ValueType >
  • OYA : CollisionAngles
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- p -

  • ParameterizedAttribute() : ParameterizedAttribute< T >
  • parameters : ObservationInstance
  • ParametersVehicleSignal() : ParametersVehicleSignal
  • Parse() : AgentParser
  • ParseElementValidity() : SceneryImporter
  • ParseJunctionConnectionLinks() : SceneryImporter
  • ParseJunctionConnections() : SceneryImporter
  • ParseJunctionPriorities() : SceneryImporter
  • ParseJunctions() : SceneryImporter
  • ParseObject() : SceneryImporter
  • ParseObjectRepeat() : SceneryImporter
  • ParseObjects() : SceneryImporter
  • ParseOptionalInterval() : SceneryImporter
  • ParseRepeat() : SceneryImporter
  • ParseRoads() : SceneryImporter
  • ParseRoadTypes() : SceneryImporter
  • ParseSignals() : SceneryImporter
  • PostCrashDynamic() : PostCrashDynamic
  • print_all_event_vars : fmu_check_data_t
  • printed_instance_name_error_flg : fmu_check_data_t
  • PublishGlobalData() : AgentNetwork
  • PullNonRecurringTasks() : SchedulerTasks
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- q -

  • QueueAgentRemove() : AgentNetwork
  • QueueAgentUpdate() : AgentNetwork
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- r -

  • RadiantToDegree : SteeringController
  • referencePoint : LongitudinalDistance
  • referenceScale : LocalizationElement
  • referenceVector : LocalizationElement
  • Register() : ActionTransformRepository , CustomCommandFactory
  • relativeLateralDistance : ObjectInformation
  • relativeLongitudinalDistance : ObjectInformation
  • ReleaseComponent() : ModelLibrary
  • ReleaseDataStore() : DataStoreLibrary
  • ReleaseEventDetector() : EventDetectorLibrary
  • ReleaseFromLibrary() : Component
  • ReleaseManipulator() : ManipulatorLibrary
  • ReleaseObservationModule() : ObservationLibrary
  • ReleaseOutputData() : Component
  • ReleaseStochastics() : StochasticsLibrary
  • ReleaseWorld() : WorldLibrary
  • RemoveAgent() : AgentNetwork
  • RemoveMovingObjectById() : WorldData
  • ReportingLevel() : Log< T >
  • require_cs : fmu_check_data_t
  • require_me : fmu_check_data_t
  • Reset() : EventDetectorCommonBase , WorldData
  • ResetAll() : EventDetectorNetwork
  • Reverse() : Stream< T >
  • right : Obstruction
  • Rotate() : Vector2d
  • Run() : Scheduler
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- s -

  • SampleAgent() : AgentBlueprintProvider
  • SampleDriverProfile() : DynamicProfileSampler
  • SampleSensorLatency() : DynamicAgentTypeGenerator
  • SampleVehicleComponentProfiles() : DynamicProfileSampler
  • SampleVehicleProfile() : DynamicProfileSampler
  • Scale() : Vector2d , Vector3d
  • ScheduleAgentTasks() : Scheduler
  • ScheduleNewNonRecurringTasks() : SchedulerTasks
  • ScheduleNewRecurringTasks() : SchedulerTasks
  • search_box : LocalizationElement
  • SecondaryDriverTasksSignal() : SecondaryDriverTasksSignal
  • sensorData : SensorDataSignal
  • SensorDataSignal() : SensorDataSignal
  • SensorDriverImplementation() : SensorDriverImplementation
  • SensorDriverSignal() : SensorDriverSignal
  • SensorFusionImplementation() : SensorFusionImplementation
  • SensorGeometric2D() : SensorGeometric2D
  • SetAbsOrientation() : WorldObject
  • SetAgentCategory() : AgentBlueprint
  • SetAgentProfileName() : AgentBlueprint
  • SetCenterLaneBoundary() : Section , WorldData
  • SetCollisionAngles() : CollisionDetectionPostCrash
  • SetCurrentState() : ComponentStateInformation
  • SetDesiredState() : ComponentStateInformation
  • SetDimension() : WorldObject
  • SetDriverProfileName() : AgentBlueprint
  • SetFile() : LogOutputPolicy
  • SetId() : RoadLaneSection
  • SetImplementation() : Component
  • SetInDirection() : Road , RoadLane , RoadLaneSection
  • SetInputBuffer() : Component
  • SetLaneIndexOffset() : RoadLaneSection
  • SetLaneType() : Lane
  • SetLateralInput() : SteeringController
  • SetLeftLane() : Lane
  • SetLeftLaneBoundaries() : Lane
  • SetLocatedPosition() : WorldObject
  • SetMaxReachableState() : ComponentStateInformation
  • SetMaxReachableStateSetByEvent() : ComponentStateInformation
  • SetModelLibrary() : Component
  • SetObjectName() : AgentBlueprint
  • SetObservations() : Component
  • SetOutputLocation() : ObservationFileHandler
  • SetParameter() : SpawnPointBinding
  • SetPedestrianCatalogPath() : Scenario
  • SetPredecessor() : Road
  • SetReferencePointPosition() : WorldObject
  • SetRightLane() : Lane
  • SetRoad() : Section
  • SetRoadGraph() : WorldData
  • SetRoadPredecessor() : WorldData
  • SetRoadPredecessorJunction() : WorldData
  • SetRoadSuccessor() : WorldData
  • SetRoadSuccessorJunction() : WorldData
  • SetS() : RoadMarking , TrafficSign
  • SetSceneryPath() : Scenario
  • SetSectionPredecessor() : WorldData
  • SetSectionSuccessor() : WorldData
  • SetSignalValue() : ComponentPort
  • SetSpawnParameter() : AgentBlueprint
  • SetSpecification() : RoadMarking , TrafficSign
  • SetSpeedGoalMin() : AgentBlueprint
  • SetSuccessor() : Road
  • SetTrajectoryCatalogPath() : Scenario
  • SetValidForLane() : RoadMarking , TrafficSign
  • SetValue() : externalParameter< ValueType > , OutputPort< SignalType, ValueType >
  • SetVehicleCatalogPath() : Scenario
  • SetVehicleComponentProfileNames() : AgentBlueprint
  • SetVehicleModelName() : AgentBlueprint
  • SetVehicleModelParameters() : AgentBlueprint , DynamicAgentTypeGenerator
  • SetVehicleParameter() : SteeringController
  • SetVehicleProfileName() : AgentBlueprint
  • SetVelocity() : VehicleSimpleTT
  • SetVelocityAndSteeringWheelAngle() : SteeringController
  • SetVertices() : Polygon
  • sHdg : LaneGeometryJoint
  • slave_initialized : fmu_check_data_t
  • slaveConfigFile : ConfigurationFiles
  • SlavePostHook() : Observation_State_Implementation , Observation_Ttc_Implementation
  • SlavePostRunHook() : Observation_State_Implementation , Observation_Ttc_Implementation
  • SlavePreHook() : Observation_Ttc_Implementation
  • SlavePreRunHook() : Observation_State_Implementation , Observation_Ttc_Implementation
  • SlaveResultFile() : Observation_State_Implementation , Observation_Ttc_Implementation
  • SlaveUpdateHook() : Observation_State_Implementation , Observation_Ttc_Implementation
  • sOffset : LaneGeometryJoint , StreamInfo< T >
  • sOffsets : IntersectionInfo
  • SpawnWillCauseCrash() : WorldAnalyzer
  • SpeedActionSignal() : SpeedActionSignal
  • StartS() : StreamInfo< T >
  • staticStore : BasicDataStoreImplementation
  • SteeringSignal() : SteeringSignal
  • steeringWheelAngle : OwnVehicleInformation
  • stepSize : fmu_check_data_t
  • stepSizeSetByUser : fmu_check_data_t
  • stopTime : fmu_check_data_t
  • StreamInfo() : StreamInfo< T >
  • StripFile() : Directories
  • Sub() : Vector2d , Vector3d
  • SyncGlobalData() : AgentNetwork
  • systemConfigBlueprintFile : ConfigurationFiles
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- t -

  • tAverage : SteeringController
  • tAxisCenter : LocalizationElement
  • temp_dir : fmu_check_data_t
  • time : TimeKeeper
  • timeAndEntityIdIndex : BasicDataStoreImplementation
  • timeLast : SteeringController
  • timestampIndex : BasicDataStoreImplementation
  • tmpPath : fmu_check_data_t
  • ToString() : Log< T >
  • touchedRoads : ObjectPosition
  • trafficSigns : LaneInformationTrafficRules
  • TrajectorySignal() : TrajectorySignal
  • Transform() : ActionTransformRepository , TransformerBase< T, Signal, TriggeringEvent >
  • TransformPointToLocalCoordinates() : ObjectDetectorBase
  • TransformPolygonToGlobalCoordinates() : ObjectDetectorBase
  • Translate() : Vector2d , Vector3d , Polygon
  • Trigger() : Action_BrakeLight_Basic_Implementation , ActionLongitudinalDriverImplementation , ActionSecondaryDriverTasksImplementation , AgentUpdaterImplementation , Algorithm_CruiseControlByDistance_Implementation , AlgorithmAgentFollowingDriverModelImplementation , AlgorithmAutonomousEmergencyBrakingImplementation , AlgorithmLateralImplementation , CollisionDetector , CollisionManipulator , ComponentControllerImplementation , ComponentStateChangeManipulator , Dynamics_Longitudinal_Basic_Implementation , DynamicsCollisionImplementation , DynamicsPostCrashImplementation , DynamicsRegularDrivingImplementation , DynamicsRegularTwoTrackImplementation , EventDetectorCommonBase , LaneChangeManipulator , LimiterAccelerationVehicleComponentsImplementation , ManipulatorCommonBase , ObjectDetectorBase , RemoveAgentsManipulator , Sensor_Distance_Implementation , SensorFusionImplementation , SensorRecordStateImplementation , ModelLibrary , SpawnPointPreRunCommon , SpawnPointRuntimeCommon , SpawnPointScenario , SpeedActionManipulator , TrajectoryFollowerImplementation , TrajectoryManipulator
  • TriggerCycle() : Component
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- u -

  • Unload() : DataStoreBinding , EventDetectorBinding , ManipulatorBinding , ModelBinding , ObservationBinding , SpawnPointBinding , StochasticsBinding , WorldBinding
  • unzipPathBuf : fmu_check_data_t
  • UpdateComponentCurrentState() : StateManager
  • UpdateComponentDesiredState() : StateManager
  • UpdateComponentMaxReachableState() : StateManager
  • UpdateInput() : Action_BrakeLight_Basic_Implementation , ActionLongitudinalDriverImplementation , ActionSecondaryDriverTasksImplementation , AgentUpdaterImplementation , Algorithm_CruiseControlByDistance_Implementation , AlgorithmAgentFollowingDriverModelImplementation , AlgorithmAutonomousEmergencyBrakingImplementation , AlgorithmLateralImplementation , ComponentControllerImplementation , Dynamics_Longitudinal_Basic_Implementation , DynamicsCollisionImplementation , DynamicsPostCrashImplementation , DynamicsRegularDrivingImplementation , DynamicsRegularTwoTrackImplementation , LimiterAccelerationVehicleComponentsImplementation , ObjectDetectorBase , Sensor_Distance_Implementation , SensorFusionImplementation , SensorRecordStateImplementation , SignalPrioritizerImplementation , ModelLibrary , TrajectoryFollowerImplementation
  • UpdateInputData() : Component
  • UpdateMaxReachableStatesForRegisteredComponents() : StateManager
  • UpdateOutput() : Action_BrakeLight_Basic_Implementation , ActionLongitudinalDriverImplementation , ActionSecondaryDriverTasksImplementation , AgentUpdaterImplementation , Algorithm_CruiseControlByDistance_Implementation , AlgorithmAgentFollowingDriverModelImplementation , AlgorithmAutonomousEmergencyBrakingImplementation , AlgorithmLateralImplementation , ComponentControllerImplementation , Dynamics_Longitudinal_Basic_Implementation , DynamicsCollisionImplementation , DynamicsPostCrashImplementation , DynamicsRegularDrivingImplementation , DynamicsRegularTwoTrackImplementation , LimiterAccelerationVehicleComponentsImplementation , ObjectDetectorBase , Sensor_Distance_Implementation , SensorFusionImplementation , SensorRecordStateImplementation , SignalPrioritizerImplementation , ModelLibrary , TrajectoryFollowerImplementation
  • UpdatePosition() : VehicleSimpleTT
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- v -

  • ValidateRoadIdInDirection() : WorldAnalyzer
  • ValidMinimumSpawningDistanceToObjectInFront() : WorldAnalyzer
  • value : BoolSignal , DoubleSignal , IntSignal , LaneChangeParameter , SignalVector< DT >
  • ValueInBounds() : TrafficHelperFunctions
  • Vector2d() : Vector2d
  • Vector3d() : Vector3d
  • VehicleComponentStateExpression() : VehicleComponentStateExpression
  • velocityAbsolute : PostCrashVelocity
  • velocityDirection : PostCrashVelocity
  • version : fmu_check_data_t
  • visibilityDistance : GeometryInformation
  • vl : fmu_check_data_t
  • vl2 : fmu_check_data_t
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- w -

  • width : LaneInformationGeometry , ObjectInformation
  • WillCrash() : TrafficHelperFunctions
  • WillCrashDuringBrake() : TrafficHelperFunctions
  • write_log_files : fmu_check_data_t
  • write_output_files : fmu_check_data_t
  • WriteEndOfFile() : ObservationFileHandler
  • WriteRun() : ObservationFileHandler
  • WriteStartOfFile() : ObservationFileHandler
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- y -

  • yawVelocity : PostCrashVelocity
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- z -

  • zeta : LateralDynamicConstants
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z
  • ~
Here is a list of all documented class members with links to the class documentation for each member:

- ~ -

  • ~Component() : Component
  • ~ComponentPort() : ComponentPort
  • ~DataStoreLibrary() : DataStoreLibrary
  • ~EventDetector() : EventDetector
  • ~EventDetectorLibrary() : EventDetectorLibrary
  • ~externalParameter() : externalParameter< ValueType >
  • ~InputPort() : InputPort< SignalType, ValueType >
  • ~Manipulator() : Manipulator
  • ~ManipulatorLibrary() : ManipulatorLibrary
  • ~OutputPort() : OutputPort< SignalType, ValueType >
  • ~SpawnPoint() : SpawnPoint
  • ~SpawnPointLibrary() : SpawnPointLibrary
  • ~StochasticsLibrary() : StochasticsLibrary
  • ~WorldLibrary() : WorldLibrary
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- a -

  • AccelerationSignal() : AccelerationSignal
  • AcquireOutputData() : Component
  • Add() : Vector2d , Vector3d
  • AddAgent() : AgentNetwork
  • AddBorder() : RoadLane
  • AddBoundaryPoint() : LaneBoundary
  • AddCenterLinePoint() : WorldData
  • AddCollision() : EventNetwork
  • AddCollisionId() : RunResult
  • AddComponent() : StateManager
  • AddConnectingRoad() : Junction
  • AddElevation() : Road
  • AddGeometryArc() : Road
  • AddGeometryLine() : Road
  • AddGeometryParamPoly3() : Road
  • AddGeometryPoly3() : Road
  • AddGeometrySpiral() : Road
  • AddInputLink() : Component
  • AddIntersectionInfo() : Junction
  • AddJunction() : Scenery , WorldData
  • AddJunctionConnection() : WorldData
  • AddJunctionPriority() : WorldData
  • AddLane() : Section , WorldData
  • AddLaneAssignment() : WorldObject
  • AddLaneBoundary() : WorldData
  • AddLaneGeometryJoint() : Lane
  • AddLaneGeometryPoint() : WorldData
  • AddLaneOffset() : Road
  • AddLanePredecessor() : WorldData
  • AddLaneSuccessor() : WorldData
  • AddLink() : Road
  • AddMovingObject() : Lane , WorldData
  • AddNext() : Lane , Section
  • AddOutputLink() : Component
  • AddParsedObjectsToRoad() : SceneryImporter
  • AddPredecessor() : RoadLane
  • AddPrevious() : Lane , Section
  • AddPriority() : Junction
  • AddRoad() : Scenery , WorldData
  • AddRoadLane() : RoadLaneSection
  • AddRoadLaneSection() : Road
  • AddRoadMark() : RoadLane
  • AddRoadMarking() : Lane , WorldData
  • AddRoadSignal() : Road
  • AddSection() : Road , WorldData
  • AddSensor() : AgentBlueprint
  • AddStateCondition() : ComponentStateInformation
  • AddStationaryObject() : Lane , WorldData
  • AddSuccessor() : RoadLane
  • AddSupplementarySign() : TrafficSign
  • AddTask() : Tasks
  • AddTrafficSign() : Lane , WorldData
  • AddWidth() : RoadLane
  • AddWorldObject() : Lane
  • AgentCompToCompCtrlSignal() : AgentCompToCompCtrlSignal
  • AlgorithmAgentFollowingDriverModelImplementation() : AlgorithmAgentFollowingDriverModelImplementation
  • AlgorithmLongitudinalCalculations() : AlgorithmLongitudinalCalculations
  • Angle() : Vector2d
  • ApplyLatency() : ObjectDetectorBase
  • ApplyMeasurementError() : ObjectDetectorBase
  • ApplyRepeat() : SceneryImporter
  • ApplySectorFilter() : WorldData
  • AreSpawningCoordinatesValid() : WorldAnalyzer
  • As() : WorldObject
  • AssignRoadMarkingToLane() : WorldData
  • AssignTrafficSignToLane() : WorldData
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- b -

  • Build() : RoadNetworkBuilder
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- c -

  • CalculateBoundingBox() : BoundingBoxCalculation , ObjectDetectorBase
  • CalculateCentroid() : Polygon
  • CalculateCurvatures() : JointsBuilder
  • CalculateDistOnBorder() : CollisionDetector
  • CalculateGearAndEngineSpeed() : AlgorithmLongitudinalCalculations
  • CalculateGlobalSensorPosition() : ObjectDetectorBase
  • CalculateHeadings() : JointsBuilder
  • CalculateIntersectionPoints() : CollisionDetector
  • CalculateNetTimeGap() : TrafficHelperFunctions
  • CalculateNextTimestep() : TrajectoryFollowerImplementation
  • CalculateObjectTTC() : TtcCalculations
  • CalculateOwnBoundingBox() : BoundingBoxCalculation
  • CalculatePedalPositions() : AlgorithmLongitudinalCalculations
  • CalculatePointOfContact() : CollisionDetector
  • CalculatePoints() : JointsBuilder
  • CalculateRelativeVector() : ObjectDetectorBase
  • CalculateSinusiodalLaneChange() : OscActionsCalculation
  • CalculateSpawnVelocityToPreventCrashing() : WorldAnalyzer
  • CalculateSteeringAngle() : SteeringController
  • CalculateWorldObjectGeometry() : CollisionDetector
  • Clear() : AgentNetwork , Scenery , ObservationCyclics , WorldData , EventDetectorNetwork , EventNetwork , ManipulatorNetwork
  • ClearLaneAssignments() : WorldObject
  • ClearMovingObjects() : Lane
  • Combine() : SampledGeometry
  • CompCtrlToAgentCompSignal() : CompCtrlToAgentCompSignal
  • CompCtrlToDriverCompSignal() : CompCtrlToDriverCompSignal
  • ComponentPort() : ComponentPort
  • Concat() : Directories
  • ConnectLanes() : WorldData
  • ConsumeNonRecurringAgentTasks() : SchedulerTasks
  • Contains() : Stream< T >
  • ConvertObjects() : SceneryConverter
  • ConvertRoads() : SceneryConverter
  • CopyToGroundTruth() : Lane , LaneBoundary , RoadMarking , TrafficSign , WorldObject
  • Covers() : Lane , Section
  • CoversInterval() : Section
  • Create() : CustomCommandFactory
  • CreateBootstrapTasks() : TaskBuilder
  • CreateCollisionDetector() : EventDetectorLibrary
  • CreateComponent() : ModelLibrary
  • CreateDataStore() : DataStoreLibrary
  • CreateFinalizeTasks() : TaskBuilder
  • CreateLaneMultiStream() : WorldDataQuery
  • CreateLaneStream() : WorldDataQuery
  • CreateManipulator() : ManipulatorLibrary
  • CreateObservationModule() : ObservationLibrary
  • CreateOutputBuffer() : Component
  • CreatePostCrashDynamics() : CollisionDetectionPostCrash
  • CreateRoadMultiStream() : WorldDataQuery
  • CreateRoadStream() : WorldDataQuery
  • CreateSpawningTasks() : TaskBuilder
  • CreateSpawnPoint() : SpawnPointLibrary
  • CreateStochastics() : StochasticsLibrary
  • CreateSynchronizeTasks() : TaskBuilder
  • CreateWorld() : WorldLibrary
  • Cross() : Vector2d
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- d -

  • DeleteAgentTasks() : SchedulerTasks
  • DeleteTasks() : Tasks
  • DetectCollision() : CollisionDetector
  • DetectObjects() : SensorGeometric2D
  • DetermineDefaultMaximumComponentStateByType() : AdasComponentStateInformation
  • DetermineEgoCollision() : RunStatisticCalculation
  • Dot() : Vector2d
  • DriveTrain() : VehicleSimpleTT
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- e -

  • EndS() : StreamInfo< T >
  • ExecuteRun() : RunInstantiator
  • Exists() : Lane
  • externalParameter() : externalParameter< ValueType >
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- f -

  • findFrontAgentID() : Observation_Ttc_Implementation
  • FixedComponentStateExpression() : FixedComponentStateExpression
  • FlagComponentMaxReachableStateSetByEvent() : StateManager
  • ForceGlobal() : VehicleSimpleTT
  • ForceLocal() : VehicleSimpleTT
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- g -

  • GatherBasicComponents() : DynamicAgentTypeGenerator
  • GatherComponent() : DynamicAgentTypeGenerator
  • GatherComponentWithParameters() : DynamicAgentTypeGenerator
  • GatherDriverComponents() : DynamicAgentTypeGenerator
  • GatherSensors() : DynamicAgentTypeGenerator
  • GatherVehicleComponents() : DynamicAgentTypeGenerator
  • GenerateDynamicAgentBlueprint() : AgentBlueprintProvider
  • GenerateSensorViewConfiguration() : ObjectDetectorBase , SensorGeometric2D
  • GenerateStaticAgentBlueprint() : AgentBlueprintProvider
  • Get() : ComponentStateExpression , Log< T >
  • GetA() : RoadGeometryPoly3
  • GetAbsAccelerationDouble() : WorldObject
  • GetAbsolutePosition() : ObjectDetectorBase
  • GetAbsOrientation() : WorldObject
  • GetAbsVelocityDouble() : WorldObject
  • GetAcceleratorPedalPosition() : AlgorithmLongitudinalCalculations
  • GetAccFromEngineTorque() : AlgorithmLongitudinalCalculations
  • GetAdasType() : AdasComponentStateInformation
  • GetAgent() : AgentNetwork , Component
  • GetAgentCategory() : AgentBlueprint
  • GetAgentComponentName() : AgentCompToCompCtrlSignal
  • GetAgentFactory() : SpawnPoint
  • GetAgentHeader() : ObservationCyclics
  • GetAgentId() : WorldData
  • GetAgentProfileName() : AgentBlueprint
  • GetAgents() : AgentNetwork
  • GetAgentSamplesLine() : ObservationCyclics
  • GetAgentType() : AgentBlueprint
  • GetAU() : RoadGeometryParamPoly3
  • GetAV() : RoadGeometryParamPoly3
  • GetB() : RoadGeometryPoly3
  • GetBootstrapTasks() : SchedulerTasks
  • GetBorders() : RoadLane
  • GetBrakePedalPosition() : AlgorithmLongitudinalCalculations
  • GetBU() : RoadGeometryParamPoly3
  • GetBV() : RoadGeometryParamPoly3
  • GetC() : RoadGeometryPoly3
  • GetCenterLaneBoundary() : Section
  • GetCollisionAngles() : CollisionDetectionPostCrash
  • GetColor() : LaneBoundary
  • GetComponent() : StateManager
  • GetComponentLocalLinkIdByName() : StateManager
  • GetComponentName() : ComponentStateInformation
  • GetComponentType() : AgentCompToCompCtrlSignal , ComponentStateInformation
  • GetComponentWarnings() : AgentCompToCompCtrlSignal
  • GetConnectingRoads() : Junction
  • GetContactPoint() : RoadLink
  • GetCoord() : RoadGeometry
  • GetCoordArc() : RoadGeometry
  • GetCoordLine() : RoadGeometry
  • GetCU() : RoadGeometryParamPoly3
  • GetCurrentState() : AgentCompToCompCtrlSignal , ComponentStateInformation
  • GetCurvature() : Lane , RoadGeometryArc
  • GetCurvEnd() : RoadGeometrySpiral
  • GetCurvStart() : RoadGeometrySpiral
  • GetCV() : RoadGeometryParamPoly3
  • GetCycleTime() : EventDetectorCommonBase , ManipulatorCommonBase , Component
  • GetD() : RoadGeometryParamPoly3 , RoadGeometryPoly3
  • GetDimension() : WorldObject
  • GetDir() : RoadGeometry
  • GetDirArc() : RoadGeometry
  • GetDirection() : Lane , RoadLink
  • GetDirLine() : RoadGeometry
  • GetDistance() : Lane , Road , Section
  • GetDistanceBetweenObjects() : WorldDataQuery
  • GetDistanceToEndOfLane() : WorldDataQuery
  • GetDistanceUntilObjectEntersConnector() : WorldDataQuery
  • GetDistanceUntilObjectLeavesConnector() : WorldDataQuery
  • GetDriverProfileName() : AgentBlueprint
  • GetDV() : RoadGeometryParamPoly3
  • GetElementAndSByPosition() : Stream< T >
  • GetElementId() : RoadLink
  • GetElementType() : RoadLink
  • GetElevations() : Road
  • GetEngineSpeed() : AlgorithmLongitudinalCalculations
  • GetEngineSpeedByVelocity() : AlgorithmLongitudinalCalculations
  • GetEngineTorqueAtGear() : AlgorithmLongitudinalCalculations
  • GetEngineTorqueMax() : AlgorithmLongitudinalCalculations
  • GetEngineTorqueMin() : AlgorithmLongitudinalCalculations
  • GetEventDetectors() : EventDetectorNetwork
  • GetEvents() : ManipulatorCommonBase , EventNetwork
  • GetFilteredGroundTruth() : WorldData
  • GetFinalizeTasks() : SchedulerTasks
  • GetGear() : AlgorithmLongitudinalCalculations
  • GetGeometries() : Road
  • GetGeometryInformation() : SensorDriverSignal
  • GetHdg() : RoadGeometry , RoadObject
  • GetHeader() : ObservationCyclics
  • GetHeight() : RoadSignal
  • GetId() : ComponentPort , externalParameter< ValueType > , Junction , Lane , LaneBoundary , Road , RoadMarking , TrafficSign , WorldObject , Road , RoadLane , RoadLaneSection , RoadObject , RoadSignal , SpawnPoint
  • GetImplementation() : Component , EventDetector , Manipulator , SpawnPoint
  • GetInDirection() : Road , RoadLane , RoadLaneSection
  • GetInit() : Component
  • GetInputLinks() : Component
  • GetInterpolatedPointsAtDistance() : Lane
  • GetIntersectingConnections() : WorldDataQuery
  • GetIntersections() : Junction
  • GetInvalidLane() : WorldData
  • GetIsDynamic() : RoadSignal
  • GetJoints() : JointsBuilder
  • GetJunction() : Scenery
  • GetJunctionByOdId() : WorldDataQuery
  • GetJunctionOfConnector() : WorldDataQuery
  • GetJunctions() : Scenery , WorldData
  • GetLaneAssignments() : WorldObject
  • GetLaneBoundaries() : WorldData
  • GetLaneByOdId() : WorldDataQuery
  • GetLaneGeometryElements() : Lane
  • GetLaneIdMapping() : WorldData
  • GetLaneIndexOffset() : RoadLaneSection
  • GetLaneMarkings() : WorldDataQuery
  • GetLaneOffsets() : Road
  • GetLanes() : Section , WorldData , RoadLaneSection
  • GetLaneSection() : RoadLane
  • GetLaneSections() : Road
  • GetLanesOfLaneTypeAtDistance() : WorldDataQuery
  • GetLaneType() : Lane
  • GetLateralDistanceToObject() : SensorDriverCalculations
  • GetLeftLane() : Lane
  • GetLeftLaneBoundaries() : Lane
  • GetLength() : Lane , Road , Section , RoadGeometry , RoadObject , RoadSignal
  • GetLibrary() : EventDetector , Manipulator , SpawnPoint
  • GetLink() : WorldObject
  • GetLocatedPosition() : WorldObject
  • GetManipulators() : ManipulatorNetwork
  • GetMaxReachableState() : CompCtrlToAgentCompSignal , ComponentStateInformation
  • GetMaxReachableStateOfComponentAtLocalLinkId() : StateManager
  • GetMaxReachableStateSetByEvent() : ComponentStateInformation
  • GetMinMax2() : CollisionDetector
  • GetMinMax4() : CollisionDetector
  • GetMovingObjectsInRangeOfJunctionConnection() : WorldDataQuery
  • GetMovingObjectsInSector() : WorldData
  • GetName() : Component
  • GetNext() : Lane
  • GetNextSpawnPosition() : WorldAnalyzer
  • GetNextTimestamp() : SchedulerTasks
  • GetNumberOfVertices() : Polygon
  • GetObjectName() : AgentBlueprint
  • GetObjectsOfTypeInRange() : WorldDataQuery
  • GetObservations() : Component
  • GetObstruction() : WorldDataQuery
  • GetOffsetTime() : Component
  • GetOutputLinks() : Component
  • GetOwlId() : WorldData
  • GetOwnVehicleInformation() : SensorDriverSignal
  • GetPedestrianCatalogPath() : Scenario
  • GetPitch() : RoadSignal
  • GetPositionByDistanceAndLane() : WorldDataQuery
  • GetPositionByElementAndS() : Stream< T >
  • GetPredecessor() : Road , RoadLane
  • GetPrevious() : Lane
  • GetPriorities() : Junction
  • GetPrioritiesOnJunction() : WorldDataQuery
  • GetPriority() : Component
  • GetProfiles() : ConfigurationContainer
  • GetRecurringAgentTasks() : SchedulerTasks
  • GetReferencePointPosition() : RoadMarking , TrafficSign , WorldObject
  • GetRelativeJunctions() : WorldDataQuery
  • GetRelativeLanes() : WorldDataQuery
  • GetRemovedAgents() : AgentNetwork
  • GetRemovedAgentsInPreviousTimestep() : AgentNetwork
  • GetResponseTime() : Component
  • GetRightLane() : Lane
  • GetRightLaneBoundaries() : Lane
  • GetRightLaneCount() : Lane , WorldAnalyzer
  • GetRoad() : Scenery , Lane , Section , RoadLaneSection , RoadSignal
  • GetRoadByOdId() : WorldDataQuery
  • GetRoadGraph() : WorldData
  • GetRoadGraphVertexMapping() : WorldData
  • GetRoadLinks() : Road
  • GetRoadMarkings() : Lane , WorldData
  • GetRoadMarkingsInRange() : WorldDataQuery
  • GetRoadMarkingsInSector() : WorldData
  • GetRoadMarks() : RoadLane
  • GetRoadObjects() : Road
  • GetRoads() : Scenery , WorldData
  • GetRoadSignals() : Road
  • GetRoll() : RoadSignal
  • GetRuntimeInformation() : ConfigurationContainer
  • GetS() : RoadMarking , TrafficSign , RoadGeometry , RoadObject , RoadSignal
  • GetSamplesLine() : ObservationCyclics
  • GetScenario() : ConfigurationContainer
  • GetScenery() : ConfigurationContainer
  • GetSceneryPath() : Scenario
  • GetSection() : Lane
  • GetSectionByDistance() : WorldDataQuery
  • GetSections() : Road
  • GetSEnd() : LaneBoundary
  • getSensorData() : ObjectDetectorBase
  • GetSensorParameters() : AgentBlueprint
  • GetSensorView() : WorldData
  • GetSide() : LaneBoundary , RoadLink
  • GetSignalValue() : ComponentPort
  • GetSlaveConfig() : ConfigurationContainer
  • GetSOffset() : Section
  • GetSpawningTasks() : SchedulerTasks
  • GetSpawnParameter() : AgentBlueprint
  • GetSpecification() : RoadMarking , TrafficSign
  • GetSpeedGoalMin() : AgentBlueprint
  • GetSquaredError() : BorderPoints
  • GetSStart() : LaneBoundary
  • GetStart() : RoadLaneSection
  • GetStateConditions() : ComponentStateInformation
  • GetStationaryObjectsInSector() : WorldData
  • GetStreamPosition() : StreamInfo< T >
  • GetSubType() : RoadSignal
  • GetSuccessor() : Road , RoadLane
  • GetSurroundingObjects() : SensorDriverSignal
  • GetSystemConfigBlueprint() : ConfigurationContainer
  • GetSystemConfigs() : ConfigurationContainer
  • GetT() : RoadObject , RoadSignal
  • GetTasks() : SchedulerTasks
  • GetText() : RoadSignal
  • GetTimeSteps() : ObservationCyclics
  • GetTrafficRuleInformation() : SensorDriverSignal
  • GetTrafficSignIdMapping() : WorldData
  • GetTrafficSigns() : Lane , WorldData
  • GetTrafficSignsInRange() : WorldDataQuery
  • GetTrafficSignsInSector() : WorldData
  • GetTrajectoryCatalogPath() : Scenario
  • GetTrigger() : EventNetwork
  • GetType() : LaneBoundary , RoadLane , RoadLink , RoadObject , RoadSignal
  • GetUnit() : RoadSignal
  • GetValidLaneSpawningRanges() : WorldAnalyzer
  • GetValue() : externalParameter< ValueType > , InputPort< SignalType, ValueType > , RoadSignal
  • GetValueAndUnitInSI() : TrafficSign
  • GetVehicleCatalogPath() : Scenario
  • GetVehicleComponentNamesToTypeAndStateMap() : StateManager
  • GetVehicleComponentProfileNames() : AgentBlueprint
  • GetVehicleComponentStates() : CompCtrlToAgentCompSignal
  • GetVehicleModelName() : AgentBlueprint
  • GetVehicleModelParameters() : AgentBlueprint
  • GetVehicleModels() : ConfigurationContainer
  • GetVehicleProfileName() : AgentBlueprint
  • GetVertices() : Polygon
  • GetWarnings() : CompCtrlToDriverCompSignal
  • GetWidth() : Lane , LaneBoundary , RoadObject , RoadSignal
  • GetWidths() : RoadLane
  • GetWorldObjectGeometry() : CollisionDetector
  • GetWorldObjects() : Lane
  • GetYaw() : RoadSignal
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- h -

  • HasDetectionError() : ObjectDetectorBase
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- i -

  • Import() : ProfilesImporter , SceneryImporter , SlaveConfigImporter , SystemConfigImporter , VehicleModelsImporter , MasterConfigImporter
  • ImportAgentProfiles() : ProfilesImporter
  • ImportAllConfigurations() : ConfigurationContainer
  • ImportAllSensorsOfVehicleProfile() : ProfilesImporter
  • ImportAllVehicleComponentsOfVehicleProfile() : ProfilesImporter
  • ImportCatalog() : ScenarioImporter
  • ImportEntity() : ScenarioImporter
  • ImportEnvironment() : SlaveConfigImporter
  • ImportEventDetector() : EventDetectorImporter
  • ImportExperiment() : SlaveConfigImporter
  • ImportGlobalAction() : ScenarioImporterHelper
  • ImportLibraries() : SlaveConfigImporter
  • ImportPedestrianModel() : VehicleModelsImporter
  • ImportPosition() : ScenarioImporterHelper
  • ImportPrivateAction() : ScenarioImporterHelper
  • ImportProfileGroups() : ProfilesImporter
  • ImportScenario() : SlaveConfigImporter
  • ImportSensorLinksOfComponent() : ProfilesImporter
  • ImportSensorParameters() : ProfilesImporter
  • ImportSpawners() : SlaveConfigImporter
  • ImportStoryboard() : ScenarioImporter
  • ImportSystemParameters() : SystemConfigImporter
  • ImportUserDefinedAction() : ScenarioImporterHelper
  • ImportVehicleComponent() : ProfilesImporter
  • ImportVehicleModel() : VehicleModelsImporter
  • ImportVehicleProfile() : ProfilesImporter
  • ImportVehicleProfiles() : ProfilesImporter
  • Init() : DataStoreLibrary , EventDetectorLibrary , ManipulatorLibrary , ModelLibrary , ObservationLibrary , SpawnPointLibrary , StochasticsLibrary , WorldLibrary
  • Initialize() : EventNetwork
  • InitSetEngine() : VehicleSimpleTT
  • InitSetGeometry() : VehicleSimpleTT
  • InitSetTire() : VehicleSimpleTT
  • InputPort() : InputPort< SignalType, ValueType >
  • Insert() : ObservationCyclics
  • InsertEvent() : EventNetwork
  • InsertTrigger() : EventNetwork
  • Instantiate() : DataStoreBinding , EventDetectorBinding , EventDetectorNetwork , ManipulatorBinding , ManipulatorNetwork , ModelBinding , ObservationBinding , SpawnPointBinding , StochasticsBinding , World , WorldBinding
  • Invalid() : Obstruction
  • Is() : WorldObject
  • IsFullfilled() : Condition
  • isInstantiated() : World
  • IsInStreamDirection() : Road
  • IsOpen() : LogOutputPolicy
  • IsRelative() : Directories
  • IsSValidOnLane() : WorldDataQuery
  • IsValidForLane() : RoadMarking , TrafficSign , RoadObject , RoadSignal
  • IsWithin() : PointQuery
  • isWithinEngineLimits() : AlgorithmLongitudinalCalculations
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- j -

  • JointsBuilder() : JointsBuilder
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- l -

  • Lane() : Lane
  • LateralSignal() : LateralSignal
  • Length() : Vector2d , Vector3d
  • LocalLinkIdIsRegistered() : StateManager
  • Log() : AgentAdapter , AgentNetwork , CollisionDetectionPostCrash , EventDetectorCommonBase , ManipulatorCommonBase , WorldData , SceneryConverter , Callbacks , StochasticsImplementation , World_Basic_Implementation , WorldImplementation
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- m -

  • make() : AgentBuildInformation , SampledProfiles
  • MasterPostHook() : Observation_State_Implementation , Observation_Ttc_Implementation
  • MasterPreHook() : Observation_State_Implementation , Observation_Ttc_Implementation
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- n -

  • NoOpponent() : Obstruction
  • Norm() : Vector2d , Vector3d
  • NormalizeAngle() : WorldData
  • Now() : TimeKeeper
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- o -

  • ObjectDetectorBase() : ObjectDetectorBase
  • ObjectIsOfTypeAndWithinRange() : WorldDataQuery
  • Obstruction() : Obstruction
  • operator AgentBuildInformation &&() : DynamicAgentTypeGenerator
  • operator SampledProfiles &&() : DynamicProfileSampler
  • operator std::string() : AccelerationSignal , AgentCompToCompCtrlSignal , BoolSignal , CompCtrlToAgentCompSignal , ComponentStateSignal , DoubleSignal , DynamicsSignal , IntSignal , LateralSignal , LongitudinalSignal , ParametersVehicleSignal , SecondaryDriverTasksSignal , SensorDataSignal , SensorDriverSignal , SignalVector< DT > , SpeedActionSignal , SteeringSignal , TrajectorySignal
  • operator!=() : Vector2d
  • operator()() : VisitParameterElement
  • operator==() : Vector2d
  • Output() : LogOutputPolicy
  • OutputPort() : OutputPort< SignalType, ValueType >
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- p -

  • ParameterizedAttribute() : ParameterizedAttribute< T >
  • ParametersVehicleSignal() : ParametersVehicleSignal
  • Parse() : AgentParser
  • ParseElementValidity() : SceneryImporter
  • ParseJunctionConnectionLinks() : SceneryImporter
  • ParseJunctionConnections() : SceneryImporter
  • ParseJunctionPriorities() : SceneryImporter
  • ParseJunctions() : SceneryImporter
  • ParseObject() : SceneryImporter
  • ParseObjectRepeat() : SceneryImporter
  • ParseObjects() : SceneryImporter
  • ParseOptionalInterval() : SceneryImporter
  • ParseRepeat() : SceneryImporter
  • ParseRoads() : SceneryImporter
  • ParseRoadTypes() : SceneryImporter
  • ParseSignals() : SceneryImporter
  • PostCrashDynamic() : PostCrashDynamic
  • PublishGlobalData() : AgentNetwork
  • PullNonRecurringTasks() : SchedulerTasks
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- q -

  • QueueAgentRemove() : AgentNetwork
  • QueueAgentUpdate() : AgentNetwork
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- r -

  • Register() : ActionTransformRepository , CustomCommandFactory
  • ReleaseComponent() : ModelLibrary
  • ReleaseDataStore() : DataStoreLibrary
  • ReleaseEventDetector() : EventDetectorLibrary
  • ReleaseFromLibrary() : Component
  • ReleaseManipulator() : ManipulatorLibrary
  • ReleaseObservationModule() : ObservationLibrary
  • ReleaseOutputData() : Component
  • ReleaseStochastics() : StochasticsLibrary
  • ReleaseWorld() : WorldLibrary
  • RemoveAgent() : AgentNetwork
  • RemoveMovingObjectById() : WorldData
  • ReportingLevel() : Log< T >
  • Reset() : EventDetectorCommonBase , WorldData
  • ResetAll() : EventDetectorNetwork
  • Reverse() : Stream< T >
  • Rotate() : Vector2d
  • Run() : Scheduler
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- s -

  • SampleAgent() : AgentBlueprintProvider
  • SampleDriverProfile() : DynamicProfileSampler
  • SampleSensorLatency() : DynamicAgentTypeGenerator
  • SampleVehicleComponentProfiles() : DynamicProfileSampler
  • SampleVehicleProfile() : DynamicProfileSampler
  • Scale() : Vector2d , Vector3d
  • ScheduleAgentTasks() : Scheduler
  • ScheduleNewNonRecurringTasks() : SchedulerTasks
  • ScheduleNewRecurringTasks() : SchedulerTasks
  • SecondaryDriverTasksSignal() : SecondaryDriverTasksSignal
  • SensorDataSignal() : SensorDataSignal
  • SensorDriverImplementation() : SensorDriverImplementation
  • SensorDriverSignal() : SensorDriverSignal
  • SensorFusionImplementation() : SensorFusionImplementation
  • SensorGeometric2D() : SensorGeometric2D
  • SetAbsOrientation() : WorldObject
  • SetAgentCategory() : AgentBlueprint
  • SetAgentProfileName() : AgentBlueprint
  • SetCenterLaneBoundary() : Section , WorldData
  • SetCollisionAngles() : CollisionDetectionPostCrash
  • SetCurrentState() : ComponentStateInformation
  • SetDesiredState() : ComponentStateInformation
  • SetDimension() : WorldObject
  • SetDriverProfileName() : AgentBlueprint
  • SetFile() : LogOutputPolicy
  • SetId() : RoadLaneSection
  • SetImplementation() : Component
  • SetInDirection() : Road , RoadLane , RoadLaneSection
  • SetInputBuffer() : Component
  • SetLaneIndexOffset() : RoadLaneSection
  • SetLaneType() : Lane
  • SetLateralInput() : SteeringController
  • SetLeftLane() : Lane
  • SetLeftLaneBoundaries() : Lane
  • SetLocatedPosition() : WorldObject
  • SetMaxReachableState() : ComponentStateInformation
  • SetMaxReachableStateSetByEvent() : ComponentStateInformation
  • SetModelLibrary() : Component
  • SetObjectName() : AgentBlueprint
  • SetObservations() : Component
  • SetOutputLocation() : ObservationFileHandler
  • SetParameter() : SpawnPointBinding
  • SetPedestrianCatalogPath() : Scenario
  • SetPredecessor() : Road
  • SetReferencePointPosition() : WorldObject
  • SetRightLane() : Lane
  • SetRoad() : Section
  • SetRoadGraph() : WorldData
  • SetRoadPredecessor() : WorldData
  • SetRoadPredecessorJunction() : WorldData
  • SetRoadSuccessor() : WorldData
  • SetRoadSuccessorJunction() : WorldData
  • SetS() : RoadMarking , TrafficSign
  • SetSceneryPath() : Scenario
  • SetSectionPredecessor() : WorldData
  • SetSectionSuccessor() : WorldData
  • SetSignalValue() : ComponentPort
  • SetSpawnParameter() : AgentBlueprint
  • SetSpecification() : RoadMarking , TrafficSign
  • SetSpeedGoalMin() : AgentBlueprint
  • SetSuccessor() : Road
  • SetTrajectoryCatalogPath() : Scenario
  • SetValidForLane() : RoadMarking , TrafficSign
  • SetValue() : externalParameter< ValueType > , OutputPort< SignalType, ValueType >
  • SetVehicleCatalogPath() : Scenario
  • SetVehicleComponentProfileNames() : AgentBlueprint
  • SetVehicleModelName() : AgentBlueprint
  • SetVehicleModelParameters() : AgentBlueprint , DynamicAgentTypeGenerator
  • SetVehicleParameter() : SteeringController
  • SetVehicleProfileName() : AgentBlueprint
  • SetVelocity() : VehicleSimpleTT
  • SetVelocityAndSteeringWheelAngle() : SteeringController
  • SetVertices() : Polygon
  • SlavePostHook() : Observation_State_Implementation , Observation_Ttc_Implementation
  • SlavePostRunHook() : Observation_State_Implementation , Observation_Ttc_Implementation
  • SlavePreHook() : Observation_Ttc_Implementation
  • SlavePreRunHook() : Observation_State_Implementation , Observation_Ttc_Implementation
  • SlaveResultFile() : Observation_State_Implementation , Observation_Ttc_Implementation
  • SlaveUpdateHook() : Observation_State_Implementation , Observation_Ttc_Implementation
  • SpawnWillCauseCrash() : WorldAnalyzer
  • SpeedActionSignal() : SpeedActionSignal
  • StartS() : StreamInfo< T >
  • SteeringSignal() : SteeringSignal
  • StreamInfo() : StreamInfo< T >
  • StripFile() : Directories
  • Sub() : Vector2d , Vector3d
  • SyncGlobalData() : AgentNetwork
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- t -

  • ToString() : Log< T >
  • TrajectorySignal() : TrajectorySignal
  • Transform() : ActionTransformRepository , TransformerBase< T, Signal, TriggeringEvent >
  • TransformPointToLocalCoordinates() : ObjectDetectorBase
  • TransformPolygonToGlobalCoordinates() : ObjectDetectorBase
  • Translate() : Vector2d , Vector3d , Polygon
  • Trigger() : Action_BrakeLight_Basic_Implementation , ActionLongitudinalDriverImplementation , ActionSecondaryDriverTasksImplementation , AgentUpdaterImplementation , Algorithm_CruiseControlByDistance_Implementation , AlgorithmAgentFollowingDriverModelImplementation , AlgorithmAutonomousEmergencyBrakingImplementation , AlgorithmLateralImplementation , CollisionDetector , CollisionManipulator , ComponentControllerImplementation , ComponentStateChangeManipulator , Dynamics_Longitudinal_Basic_Implementation , DynamicsCollisionImplementation , DynamicsPostCrashImplementation , DynamicsRegularDrivingImplementation , DynamicsRegularTwoTrackImplementation , EventDetectorCommonBase , LaneChangeManipulator , LimiterAccelerationVehicleComponentsImplementation , ManipulatorCommonBase , ObjectDetectorBase , RemoveAgentsManipulator , Sensor_Distance_Implementation , SensorFusionImplementation , SensorRecordStateImplementation , ModelLibrary , SpawnPointPreRunCommon , SpawnPointRuntimeCommon , SpawnPointScenario , SpeedActionManipulator , TrajectoryFollowerImplementation , TrajectoryManipulator
  • TriggerCycle() : Component
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- u -

  • Unload() : DataStoreBinding , EventDetectorBinding , ManipulatorBinding , ModelBinding , ObservationBinding , SpawnPointBinding , StochasticsBinding , WorldBinding
  • UpdateComponentCurrentState() : StateManager
  • UpdateComponentDesiredState() : StateManager
  • UpdateComponentMaxReachableState() : StateManager
  • UpdateInput() : Action_BrakeLight_Basic_Implementation , ActionLongitudinalDriverImplementation , ActionSecondaryDriverTasksImplementation , AgentUpdaterImplementation , Algorithm_CruiseControlByDistance_Implementation , AlgorithmAgentFollowingDriverModelImplementation , AlgorithmAutonomousEmergencyBrakingImplementation , AlgorithmLateralImplementation , ComponentControllerImplementation , Dynamics_Longitudinal_Basic_Implementation , DynamicsCollisionImplementation , DynamicsPostCrashImplementation , DynamicsRegularDrivingImplementation , DynamicsRegularTwoTrackImplementation , LimiterAccelerationVehicleComponentsImplementation , ObjectDetectorBase , Sensor_Distance_Implementation , SensorFusionImplementation , SensorRecordStateImplementation , SignalPrioritizerImplementation , ModelLibrary , TrajectoryFollowerImplementation
  • UpdateInputData() : Component
  • UpdateMaxReachableStatesForRegisteredComponents() : StateManager
  • UpdateOutput() : Action_BrakeLight_Basic_Implementation , ActionLongitudinalDriverImplementation , ActionSecondaryDriverTasksImplementation , AgentUpdaterImplementation , Algorithm_CruiseControlByDistance_Implementation , AlgorithmAgentFollowingDriverModelImplementation , AlgorithmAutonomousEmergencyBrakingImplementation , AlgorithmLateralImplementation , ComponentControllerImplementation , Dynamics_Longitudinal_Basic_Implementation , DynamicsCollisionImplementation , DynamicsPostCrashImplementation , DynamicsRegularDrivingImplementation , DynamicsRegularTwoTrackImplementation , LimiterAccelerationVehicleComponentsImplementation , ObjectDetectorBase , Sensor_Distance_Implementation , SensorFusionImplementation , SensorRecordStateImplementation , SignalPrioritizerImplementation , ModelLibrary , TrajectoryFollowerImplementation
  • UpdatePosition() : VehicleSimpleTT
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- v -

  • ValidateRoadIdInDirection() : WorldAnalyzer
  • ValidMinimumSpawningDistanceToObjectInFront() : WorldAnalyzer
  • ValueInBounds() : TrafficHelperFunctions
  • Vector2d() : Vector2d
  • Vector3d() : Vector3d
  • VehicleComponentStateExpression() : VehicleComponentStateExpression
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- w -

  • WillCrash() : TrafficHelperFunctions
  • WillCrashDuringBrake() : TrafficHelperFunctions
  • WriteEndOfFile() : ObservationFileHandler
  • WriteRun() : ObservationFileHandler
  • WriteStartOfFile() : ObservationFileHandler
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • ~

- ~ -

  • ~Component() : Component
  • ~ComponentPort() : ComponentPort
  • ~DataStoreLibrary() : DataStoreLibrary
  • ~EventDetector() : EventDetector
  • ~EventDetectorLibrary() : EventDetectorLibrary
  • ~externalParameter() : externalParameter< ValueType >
  • ~InputPort() : InputPort< SignalType, ValueType >
  • ~Manipulator() : Manipulator
  • ~ManipulatorLibrary() : ManipulatorLibrary
  • ~OutputPort() : OutputPort< SignalType, ValueType >
  • ~SpawnPoint() : SpawnPoint
  • ~SpawnPointLibrary() : SpawnPointLibrary
  • ~StochasticsLibrary() : StochasticsLibrary
  • ~WorldLibrary() : WorldLibrary
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Variables

  • All
  • Functions
  • Variables
  • Related Functions
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y
  • z

- a -

  • absoluteVelocity : ObjectInformation , OwnVehicleInformation
  • acceleration : ObjectInformation , OwnVehicleInformation
  • acyclicStore : BasicDataStoreImplementation

- c -

  • callbacks : fmu_check_data_t
  • collision : OwnVehicleInformation
  • COMPONENTNAME : AlgorithmLongitudinalImplementation , DynamicsRegularDrivingImplementation , DynamicsRegularTwoTrackImplementation , SensorDriverImplementation
  • configurationDir : ConfigurationFiles , Directories
  • context : fmu_check_data_t
  • CSV_separator : fmu_check_data_t
  • curvature : LaneInformationGeometry , LaneGeometryJoint
  • curvatureRoadSmoothLast : SteeringController
  • cyclicStore : BasicDataStoreImplementation

- d -

  • defaultValue : ParameterizedAttribute< T >
  • discreteIndex : fmi1_csv_input_t , fmi2_csv_input_t
  • distanceToEndOfLane : LaneInformationGeometry
  • distanceToLaneBoundaryLeft : OwnVehicleInformation
  • distanceToLaneBoundaryRight : OwnVehicleInformation
  • do_mangle_var_names : fmu_check_data_t
  • do_output_all_vars : fmu_check_data_t
  • do_simulate_flg : fmu_check_data_t
  • do_test_cs : fmu_check_data_t
  • do_test_me : fmu_check_data_t
  • dynamicsTarget : LaneChangeParameter
  • dynamicsType : LaneChangeParameter

- e -

  • endHeading : SampledGeometry
  • entityIdIndex : BasicDataStoreImplementation
  • eventIndex1 : fmi1_csv_input_t , fmi2_csv_input_t
  • eventIndex2 : fmi1_csv_input_t , fmi2_csv_input_t
  • exist : ObjectInformation
  • exists : LaneInformationGeometry

- f -

  • fmu : fmi1_csv_input_t , fmi2_csv_input_t
  • fmu1 : fmu_check_data_t
  • fmu1_kind : fmu_check_data_t
  • fmu2 : fmu_check_data_t
  • fmu2_kind : fmu_check_data_t
  • FMUPath : fmu_check_data_t
  • forceTotalXY : VehicleSimpleTT

- g -

  • gainHeadingError : LateralDynamicConstants

- h -

  • HCPA : CollisionAngles
  • HCPAo : CollisionAngles
  • heading : ObjectInformation , OwnVehicleInformation
  • height : ObjectInformation

- i -

  • id : ObjectInformation
  • in_steeringMax : SteeringController
  • in_steeringRatio : SteeringController
  • in_steeringWheelAngle : SteeringController
  • in_velocity : SteeringController
  • in_wheelBase : SteeringController
  • inputFileName : fmu_check_data_t
  • inStreamDirection : StreamInfo< T >
  • interpContinuousData : fmi1_csv_input_t
  • interpData : fmi1_csv_input_t , fmi2_csv_input_t
  • interpIndex1 : fmi1_csv_input_t , fmi2_csv_input_t
  • interpIndex2 : fmi1_csv_input_t , fmi2_csv_input_t
  • interpLambda : fmi1_csv_input_t , fmi2_csv_input_t
  • interpTime : fmi1_csv_input_t , fmi2_csv_input_t
  • isActive : PostCrashVelocity
  • isOverlapping : Obstruction
  • isStatic : ObjectInformation

- l -

  • laneEgo : GeometryInformation , TrafficRuleInformation
  • laneLeft : GeometryInformation , TrafficRuleInformation
  • laneMarkingsLeft : TrafficRuleInformation
  • laneMarkingsLeftOfLeftLane : TrafficRuleInformation
  • laneMarkingsRight : TrafficRuleInformation
  • laneMarkingsRightOfRightLane : TrafficRuleInformation
  • laneRight : GeometryInformation , TrafficRuleInformation
  • lateralAcceleration : LateralDynamicConstants
  • lateralPosition : OwnVehicleInformation
  • left : Obstruction
  • length : ObjectInformation
  • libraryDir : Directories
  • libraryName : ObservationInstance
  • log_file : fmu_check_data_t
  • log_file_name : fmu_check_data_t

- m -

  • mainLaneLocator : Obstruction
  • mainLocatePoint : ObjectPosition
  • maxOutputPts : fmu_check_data_t
  • maxOutputPtsSetByUser : fmu_check_data_t
  • meanCurvatureToFarPointSmoothLast : SteeringController
  • meanCurvatureToNearPointSmoothLast : SteeringController
  • modelIdentifierFMI1 : fmu_check_data_t
  • momentTotalZ : VehicleSimpleTT

- n -

  • nextOutputStep : fmu_check_data_t
  • nextOutputTime : fmu_check_data_t
  • num_errors : fmu_check_data_t
  • num_fatal : fmu_check_data_t
  • num_fmu_messages : fmu_check_data_t
  • num_warnings : fmu_check_data_t
  • numberOfExecutions : ConditionalEventDetectorInformation

- o -

  • object : LaneChangeParameter
  • objectFront : SurroundingObjects
  • objectFrontLeft : SurroundingObjects
  • objectFrontRight : SurroundingObjects
  • objectRear : SurroundingObjects
  • objectRearLeft : SurroundingObjects
  • objectRearRight : SurroundingObjects
  • OCPA : CollisionAngles
  • OCPAo : CollisionAngles
  • os : Log< T >
  • out_desiredSteeringWheelAngle : AlgorithmLateralImplementation
  • out_file : fmu_check_data_t
  • output_file_name : fmu_check_data_t
  • outputDir : Directories
  • OYA : CollisionAngles

- p -

  • parameters : ObservationInstance
  • print_all_event_vars : fmu_check_data_t
  • printed_instance_name_error_flg : fmu_check_data_t

- r -

  • RadiantToDegree : SteeringController
  • referencePoint : LongitudinalDistance
  • referenceScale : LocalizationElement
  • referenceVector : LocalizationElement
  • relativeLateralDistance : ObjectInformation
  • relativeLongitudinalDistance : ObjectInformation
  • require_cs : fmu_check_data_t
  • require_me : fmu_check_data_t
  • right : Obstruction

- s -

  • search_box : LocalizationElement
  • sensorData : SensorDataSignal
  • sHdg : LaneGeometryJoint
  • slave_initialized : fmu_check_data_t
  • slaveConfigFile : ConfigurationFiles
  • sOffset : LaneGeometryJoint , StreamInfo< T >
  • sOffsets : IntersectionInfo
  • staticStore : BasicDataStoreImplementation
  • steeringWheelAngle : OwnVehicleInformation
  • stepSize : fmu_check_data_t
  • stepSizeSetByUser : fmu_check_data_t
  • stopTime : fmu_check_data_t
  • systemConfigBlueprintFile : ConfigurationFiles

- t -

  • tAverage : SteeringController
  • tAxisCenter : LocalizationElement
  • temp_dir : fmu_check_data_t
  • time : TimeKeeper
  • timeAndEntityIdIndex : BasicDataStoreImplementation
  • timeLast : SteeringController
  • timestampIndex : BasicDataStoreImplementation
  • tmpPath : fmu_check_data_t
  • touchedRoads : ObjectPosition
  • trafficSigns : LaneInformationTrafficRules

- u -

  • unzipPathBuf : fmu_check_data_t

- v -

  • value : BoolSignal , DoubleSignal , IntSignal , LaneChangeParameter , SignalVector< DT >
  • velocityAbsolute : PostCrashVelocity
  • velocityDirection : PostCrashVelocity
  • version : fmu_check_data_t
  • visibilityDistance : GeometryInformation
  • vl : fmu_check_data_t
  • vl2 : fmu_check_data_t

- w -

  • width : LaneInformationGeometry , ObjectInformation
  • write_log_files : fmu_check_data_t
  • write_output_files : fmu_check_data_t

- y -

  • yawVelocity : PostCrashVelocity

- z -

  • zeta : LateralDynamicConstants
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Class Members - Related Functions

  • All
  • Functions
  • Variables
  • Related Functions
  • operator<< : Vector2d
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Member List

AccelerationSignal Member List

This is the complete list of members for AccelerationSignal, including all inherited members.

AccelerationSignal() | AccelerationSignal | inline
AccelerationSignal(AccelerationSignal &other) | AccelerationSignal | inline
AccelerationSignal(ComponentState componentState, double acceleration) | AccelerationSignal | inline
operator std::string() const | AccelerationSignal | inlinevirtual
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

Action_BrakeLight_Basic_Implementation Member List

This is the complete list of members for Action_BrakeLight_Basic_Implementation, including all inherited members.

Trigger(int time) | Action_BrakeLight_Basic_Implementation | virtual
UpdateInput(int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time) | Action_BrakeLight_Basic_Implementation | virtual
UpdateOutput(int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) | Action_BrakeLight_Basic_Implementation | virtual
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ActionLongitudinalDriverImplementation Member List

This is the complete list of members for ActionLongitudinalDriverImplementation, including all inherited members.

Trigger(int time) | ActionLongitudinalDriverImplementation | virtual
UpdateInput(int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time) | ActionLongitudinalDriverImplementation | virtual
UpdateOutput(int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) | ActionLongitudinalDriverImplementation | virtual
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ActionSecondaryDriverTasksImplementation Member List

This is the complete list of members for ActionSecondaryDriverTasksImplementation, including all inherited members.

Trigger(int time) | ActionSecondaryDriverTasksImplementation | virtual
UpdateInput(int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time) | ActionSecondaryDriverTasksImplementation | virtual
UpdateOutput(int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) | ActionSecondaryDriverTasksImplementation | virtual
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ActionTransformRepository Member List

This is the complete list of members for ActionTransformRepository, including all inherited members.

Register(TransformSignature transform) | ActionTransformRepository | inlinestatic
Transform(Args...args) | ActionTransformRepository | inlinestatic
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

AcyclicResult Member List

This is the complete list of members for AcyclicResult, including all inherited members.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

AgentAdapter Member List

This is the complete list of members for AgentAdapter, including all inherited members.

Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) | AgentAdapter | inlineprotected
Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) const | AgentAdapter | inlineprotected
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

AgentBlueprint Member List

This is the complete list of members for AgentBlueprint, including all inherited members.

AddSensor(openpass::sensors::Parameter parameters) override | AgentBlueprint | virtual
GetAgentCategory() const override | AgentBlueprint | virtual
GetAgentProfileName() const override | AgentBlueprint | virtual
GetAgentType() const override | AgentBlueprint | virtual
GetDriverProfileName() const override | AgentBlueprint | virtual
GetObjectName() const override | AgentBlueprint | virtual
GetSensorParameters() const override | AgentBlueprint | virtual
GetSpawnParameter() override | AgentBlueprint | virtual
GetSpawnParameter() const override | AgentBlueprint | virtual
GetSpeedGoalMin() const override | AgentBlueprint | virtual
GetVehicleComponentProfileNames() const override | AgentBlueprint | virtual
GetVehicleModelName() const override | AgentBlueprint | virtual
GetVehicleModelParameters() const override | AgentBlueprint | virtual
GetVehicleProfileName() const override | AgentBlueprint | virtual
SetAgentCategory(AgentCategory agentCategory) override | AgentBlueprint | virtual
SetAgentProfileName(std::string agentProfileName) override | AgentBlueprint | virtual
SetDriverProfileName(std::string driverProfileName) override | AgentBlueprint | virtual
SetObjectName(std::string objectName) override | AgentBlueprint | virtual
SetSpawnParameter(SpawnParameter spawnParameter) override | AgentBlueprint | virtual
SetSpeedGoalMin(double speedGoalMin) override | AgentBlueprint | virtual
SetVehicleComponentProfileNames(VehicleComponentProfileNames vehicleComponentProfileNames) override | AgentBlueprint | virtual
SetVehicleModelName(std::string vehicleModelName) override | AgentBlueprint | virtual
SetVehicleModelParameters(VehicleModelParameters vehicleModelParameters) override | AgentBlueprint | virtual
SetVehicleProfileName(std::string vehicleProfileName) override | AgentBlueprint | virtual
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

AgentBlueprintProvider Member List

This is the complete list of members for AgentBlueprintProvider, including all inherited members.

GenerateDynamicAgentBlueprint(AgentBlueprintInterface &agentBlueprint, AgentBuildInformation agentBuildInformation, std::string &driverProfileName) const | AgentBlueprintProvider |
GenerateStaticAgentBlueprint(AgentBlueprintInterface &agentBlueprint, std::string systemConfigName, int systemId, std::string vehicleModelName) const | AgentBlueprintProvider |
SampleAgent(const std::string &agentProfileName, const openScenario::Parameters &assignedParameters) const override | AgentBlueprintProvider | virtual
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

AgentCompToCompCtrlSignal Member List

This is the complete list of members for AgentCompToCompCtrlSignal, including all inherited members.

AgentCompToCompCtrlSignal(const ComponentType componentType, const std::string &agentComponentName, const ComponentState currentState, const std::vector< ComponentWarningInformation > &warnings={}) | AgentCompToCompCtrlSignal | inline
GetAgentComponentName() const | AgentCompToCompCtrlSignal | inline
GetComponentType() const | AgentCompToCompCtrlSignal | inline
GetComponentWarnings() const | AgentCompToCompCtrlSignal | inline
GetCurrentState() const | AgentCompToCompCtrlSignal | inline
operator std::string() const | AgentCompToCompCtrlSignal | inlinevirtual
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

AgentNetwork Member List

This is the complete list of members for AgentNetwork, including all inherited members.

AddAgent(int id, const AgentInterface *agent) | AgentNetwork |
AddAgent(int id, AgentInterface *agent) | AgentNetwork |
Clear() | AgentNetwork |
Clear() | AgentNetwork |
GetAgent(int id) const | AgentNetwork | virtual
GetAgent(int id) const | AgentNetwork |
GetAgents() const | AgentNetwork | virtual
GetAgents() const | AgentNetwork | virtual
GetRemovedAgents() const | AgentNetwork | virtual
GetRemovedAgentsInPreviousTimestep() | AgentNetwork | virtual
Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) | AgentNetwork | inlineprotected
Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) | AgentNetwork | inlineprotected
PublishGlobalData(Publisher publish) | AgentNetwork |
QueueAgentRemove(const AgentInterface *agent) | AgentNetwork |
QueueAgentRemove(const AgentInterface *agent) | AgentNetwork |
QueueAgentUpdate(std::function< void(double)> func, double val) | AgentNetwork |
QueueAgentUpdate(std::function< void()> func) | AgentNetwork |
RemoveAgent(const AgentInterface *agent) | AgentNetwork |
SyncGlobalData() | AgentNetwork |
SyncGlobalData() | AgentNetwork |
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

AgentSpawnItem Member List

This is the complete list of members for AgentSpawnItem, including all inherited members.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

AgentUpdaterImplementation Member List

This is the complete list of members for AgentUpdaterImplementation, including all inherited members.

Trigger(int time) | AgentUpdaterImplementation | virtual
UpdateInput(int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time) | AgentUpdaterImplementation | virtual
UpdateOutput(int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) | AgentUpdaterImplementation | virtual
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

Algorithm_CruiseControlByDistance_Implementation Member List

This is the complete list of members for Algorithm_CruiseControlByDistance_Implementation, including all inherited members.

Trigger(int time) | Algorithm_CruiseControlByDistance_Implementation
UpdateInput(int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time) | Algorithm_CruiseControlByDistance_Implementation
UpdateOutput(int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) | Algorithm_CruiseControlByDistance_Implementation
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

Algorithm_FmuWrapper Member List

This is the complete list of members for Algorithm_FmuWrapper, including all inherited members.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

AlgorithmAgentFollowingDriverModelImplementation Member List

This is the complete list of members for AlgorithmAgentFollowingDriverModelImplementation, including all inherited members.

AlgorithmAgentFollowingDriverModelImplementation(std::string componentName, bool isInit, int priority, int offsetTime, int responseTime, int cycleTime, StochasticsInterface *stochastics, WorldInterface *world, const ParameterInterface *parameters, PublisherInterface *const publisher, const CallbackInterface *callbacks, AgentInterface *agent) | AlgorithmAgentFollowingDriverModelImplementation
Trigger(int time) | AlgorithmAgentFollowingDriverModelImplementation
UpdateInput(int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time) | AlgorithmAgentFollowingDriverModelImplementation
UpdateOutput(int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) | AlgorithmAgentFollowingDriverModelImplementation
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

AlgorithmAutonomousEmergencyBrakingImplementation Member List

This is the complete list of members for AlgorithmAutonomousEmergencyBrakingImplementation, including all inherited members.

Trigger(int time) | AlgorithmAutonomousEmergencyBrakingImplementation | virtual
UpdateInput(int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time) | AlgorithmAutonomousEmergencyBrakingImplementation | virtual
UpdateOutput(int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) | AlgorithmAutonomousEmergencyBrakingImplementation | virtual
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

AlgorithmFmuWrapperImplementation Member List

This is the complete list of members for AlgorithmFmuWrapperImplementation, including all inherited members.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

AlgorithmLateralImplementation Member List

This is the complete list of members for AlgorithmLateralImplementation, including all inherited members.

out_desiredSteeringWheelAngle | AlgorithmLateralImplementation | protected
Trigger(int time) | AlgorithmLateralImplementation |
UpdateInput(int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time) | AlgorithmLateralImplementation |
UpdateOutput(int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) | AlgorithmLateralImplementation |
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

AlgorithmLongitudinalCalculations Member List

This is the complete list of members for AlgorithmLongitudinalCalculations, including all inherited members.

AlgorithmLongitudinalCalculations(double velocity, double accelerationWish, const VehicleModelParameters &vehicleModelParameters) | AlgorithmLongitudinalCalculations
CalculateGearAndEngineSpeed() | AlgorithmLongitudinalCalculations
CalculatePedalPositions() | AlgorithmLongitudinalCalculations
GetAcceleratorPedalPosition() const | AlgorithmLongitudinalCalculations
GetAccFromEngineTorque(double engineTorque, int chosenGear) | AlgorithmLongitudinalCalculations
GetBrakePedalPosition() const | AlgorithmLongitudinalCalculations
GetEngineSpeed() const | AlgorithmLongitudinalCalculations
GetEngineSpeedByVelocity(double velocity, int gear) | AlgorithmLongitudinalCalculations
GetEngineTorqueAtGear(int gear, double acceleration) | AlgorithmLongitudinalCalculations
GetEngineTorqueMax(double engineSpeed) | AlgorithmLongitudinalCalculations
GetEngineTorqueMin(double engineSpeed) | AlgorithmLongitudinalCalculations
GetGear() const | AlgorithmLongitudinalCalculations
isWithinEngineLimits(int gear, double engineSpeed, double acceleration) | AlgorithmLongitudinalCalculations
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

AlgorithmLongitudinalImplementation Member List

This is the complete list of members for AlgorithmLongitudinalImplementation, including all inherited members.

COMPONENTNAME AlgorithmLongitudinalImplementation
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

BasicDataStoreImplementation Member List

This is the complete list of members for BasicDataStoreImplementation, including all inherited members.

acyclicStore | BasicDataStoreImplementation | protected
cyclicStore | BasicDataStoreImplementation | protected
entityIdIndex | BasicDataStoreImplementation | protected
staticStore | BasicDataStoreImplementation | protected
timeAndEntityIdIndex | BasicDataStoreImplementation | protected
timestampIndex | BasicDataStoreImplementation | protected
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

BoolSignal Member List

This is the complete list of members for BoolSignal, including all inherited members.

operator std::string() const | BoolSignal | inlinevirtual
value | BoolSignal |
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

BoundingBoxCalculation Member List

This is the complete list of members for BoundingBoxCalculation, including all inherited members.

CalculateBoundingBox(double timeStepInSeconds, const osi3::BaseMoving &baseMoving) | BoundingBoxCalculation
CalculateBoundingBox(const osi3::BaseStationary &baseStationary) | BoundingBoxCalculation
CalculateOwnBoundingBox(double timeStepInSeconds) | BoundingBoxCalculation
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

CSVParser Member List

This is the complete list of members for CSVParser, including all inherited members.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

CollisionDetectionPostCrash Member List

This is the complete list of members for CollisionDetectionPostCrash, including all inherited members.

CreatePostCrashDynamics(const AgentInterface *agent1, const AgentInterface *agent2, PostCrashDynamic *postCrashDynamic1, PostCrashDynamic *postCrashDynamic2, int &timeOfFirstContact) | CollisionDetectionPostCrash |
GetCollisionAngles() | CollisionDetectionPostCrash |
Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) | CollisionDetectionPostCrash | inlineprotected
SetCollisionAngles(double OYA, double HCPAo, double OCPAo, double HCPA, double OCPA) | CollisionDetectionPostCrash |
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

CollisionDetector Member List

This is the complete list of members for CollisionDetector, including all inherited members.

CalculateDistOnBorder(const WorldObjectInterface *worldObject, int corner, double cornerDistance, double &result) | CollisionDetector |
CalculateIntersectionPoints(const WorldObjectInterface *agent, const WorldObjectInterface *other, bool &intersected, Common::Vector2d &intersectionPoint, double &otherDistanceFromCorner, int &otherFromCorner, double &agentDistanceFromInitial, Common::Vector2d &agentReferencePoint, Common::Vector2d &otherReferencePoint, size_t &agentPenetratingCorner) | CollisionDetector |
CalculatePointOfContact(AgentInterface *agent, const WorldObjectInterface *other, double &resultAgentDistOnBorder, double &resultOtherDistOnBorder, Common::Vector2d &resultAgentReferencePoint, Common::Vector2d &resultOtherReferencePoint) | CollisionDetector |
CalculateWorldObjectGeometry(const WorldObjectInterface *worldObject, const Common::Vector2d &position, std::array< Common::Vector2d, 4 > &resultCorners, std::array< Common::Vector2d, 2 > &resultNormals) | CollisionDetector |
DetectCollision(const WorldObjectInterface *other, AgentInterface *agent, std::array< Common::Vector2d, NumberCorners > agentCorners, std::array< Common::Vector2d, NumberNormals > agentNormals) | CollisionDetector |
GetCycleTime() override | EventDetectorCommonBase | virtual
GetMinMax2(std::array< double, 2 > &input, double &maxValue, double &minValue) | CollisionDetector |
GetMinMax4(std::array< double, 4 > &input, double &maxValue, double &minValue) | CollisionDetector |
GetWorldObjectGeometry(const WorldObjectInterface *worldObject, std::array< Common::Vector2d, 4 > &resultCorners, std::array< Common::Vector2d, 2 > &resultNormals) | CollisionDetector |
Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) | EventDetectorCommonBase | protected
Reset() override | EventDetectorCommonBase | virtual
Trigger(int time) | CollisionDetector | virtual
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

CollisionManipulator Member List

This is the complete list of members for CollisionManipulator, including all inherited members.

GetCycleTime() | ManipulatorCommonBase | virtual
Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) | ManipulatorCommonBase | protected
Trigger(int time) override | CollisionManipulator | virtual
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

CommandLineParser Member List

This is the complete list of members for CommandLineParser, including all inherited members.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • Common
  • Vector2d
Vector2d Member List

This is the complete list of members for Vector2d, including all inherited members.

Add(const Vector2d &in) noexcept | Vector2d | inline
Angle() const noexcept | Vector2d | inline
Cross(const Vector2d &in) const noexcept | Vector2d | inline
Dot(const Vector2d &in) const noexcept | Vector2d | inline
Length() const noexcept | Vector2d | inline
Norm() | Vector2d | inline
operator!=(const Vector2d &in) const noexcept | Vector2d | inline
operator<<(std::ostream &os, const Vector2d &vector) | Vector2d | friend
operator==(const Vector2d &in) const noexcept | Vector2d | inline
Rotate(double angle) noexcept | Vector2d | inline
Scale(double scale) noexcept | Vector2d | inline
Sub(const Vector2d &in) noexcept | Vector2d | inline
Translate(double x, double y) noexcept | Vector2d | inline
Translate(Vector2d translationVector) noexcept | Vector2d | inline
Vector2d(double x=0, double y=0) noexcept | Vector2d | inline
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • Common
  • Vector3d
Vector3d Member List

This is the complete list of members for Vector3d, including all inherited members.

Add(const Vector3d &in) | Vector3d
Length() const | Vector3d
Norm() | Vector3d
Scale(double scale) | Vector3d
Sub(const Vector3d &in) | Vector3d
Translate(double x, double y, double z) | Vector3d
Vector3d(double x=0, double y=0, double z=0) | Vector3d
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

CompCtrlToAgentCompSignal Member List

This is the complete list of members for CompCtrlToAgentCompSignal, including all inherited members.

CompCtrlToAgentCompSignal(const ComponentState &maxReachableState, const std::map< std::string, std::pair< ComponentType, ComponentState >> &vehicleComponentStates) | CompCtrlToAgentCompSignal | inline
GetMaxReachableState() const | CompCtrlToAgentCompSignal | inline
GetVehicleComponentStates() const | CompCtrlToAgentCompSignal | inline
operator std::string() const | CompCtrlToAgentCompSignal | inlinevirtual
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

CompCtrlToDriverCompSignal Member List

This is the complete list of members for CompCtrlToDriverCompSignal, including all inherited members.

CompCtrlToAgentCompSignal(const ComponentState &maxReachableState, const std::map< std::string, std::pair< ComponentType, ComponentState >> &vehicleComponentStates) | CompCtrlToAgentCompSignal | inline
CompCtrlToDriverCompSignal(const ComponentState &maxReachableState, const std::map< std::string, std::pair< ComponentType, ComponentState >> &vehicleComponentStates, const Warnings &warnings) | CompCtrlToDriverCompSignal | inline
GetMaxReachableState() const | CompCtrlToAgentCompSignal | inline
GetVehicleComponentStates() const | CompCtrlToAgentCompSignal | inline
GetWarnings() const | CompCtrlToDriverCompSignal | inline
operator std::string() const | CompCtrlToAgentCompSignal | inlinevirtual
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • ComponentControl
  • AdasComponentStateInformation
AdasComponentStateInformation Member List

This is the complete list of members for AdasComponentStateInformation, including all inherited members.

AddStateCondition(std::shared_ptr< Condition > condition, const ComponentState state) | ComponentStateInformation
DetermineDefaultMaximumComponentStateByType() const | AdasComponentStateInformation
GetAdasType() const | AdasComponentStateInformation
GetComponentName() const | ComponentStateInformation
GetComponentType() const | ComponentStateInformation
GetCurrentState() const | ComponentStateInformation
GetMaxReachableState() const | ComponentStateInformation
GetMaxReachableStateSetByEvent() const | ComponentStateInformation
GetStateConditions() const | ComponentStateInformation
SetCurrentState(const ComponentState currentState) | ComponentStateInformation
SetDesiredState(const ComponentState desiredState) | ComponentStateInformation
SetMaxReachableState(const ComponentState maxReachableState) | ComponentStateInformation
SetMaxReachableStateSetByEvent(const bool maxReachableStateSetByEvent) | ComponentStateInformation
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • ComponentControl
  • ComponentStateEquality
ComponentStateEquality Member List

This is the complete list of members for ComponentStateEquality, including all inherited members.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • ComponentControl
  • ComponentStateExpression
ComponentStateExpression Member List

This is the complete list of members for ComponentStateExpression, including all inherited members.

Get(const StateMapping &componentNameToComponentTypeAndStateMap) const =0 ComponentStateExpression pure virtual
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • ComponentControl
  • ComponentStateInformation
ComponentStateInformation Member List

This is the complete list of members for ComponentStateInformation, including all inherited members.

AddStateCondition(std::shared_ptr< Condition > condition, const ComponentState state) | ComponentStateInformation
GetComponentName() const | ComponentStateInformation
GetComponentType() const | ComponentStateInformation
GetCurrentState() const | ComponentStateInformation
GetMaxReachableState() const | ComponentStateInformation
GetMaxReachableStateSetByEvent() const | ComponentStateInformation
GetStateConditions() const | ComponentStateInformation
SetCurrentState(const ComponentState currentState) | ComponentStateInformation
SetDesiredState(const ComponentState desiredState) | ComponentStateInformation
SetMaxReachableState(const ComponentState maxReachableState) | ComponentStateInformation
SetMaxReachableStateSetByEvent(const bool maxReachableStateSetByEvent) | ComponentStateInformation
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • ComponentControl
  • Condition
Condition Member List

This is the complete list of members for Condition, including all inherited members.

IsFullfilled(const StateMapping &componentNameToComponentTypeAndStatesMap) const =0 Condition pure virtual
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • ComponentControl
  • FixedComponentStateExpression
FixedComponentStateExpression Member List

This is the complete list of members for FixedComponentStateExpression, including all inherited members.

FixedComponentStateExpression(ComponentState value) FixedComponentStateExpression inline
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • ComponentControl
  • StateManager
StateManager Member List

This is the complete list of members for StateManager, including all inherited members.

AddComponent(const int localLinkId, std::shared_ptr< ComponentStateInformation > componentStateInformation) | StateManager
FlagComponentMaxReachableStateSetByEvent(const int localLinkId) | StateManager
GetComponent(const int localLinkId) const | StateManager
GetComponentLocalLinkIdByName(const std::string &componentName) const | StateManager
GetMaxReachableStateOfComponentAtLocalLinkId(const int localLinkId) const | StateManager
GetVehicleComponentNamesToTypeAndStateMap() | StateManager
LocalLinkIdIsRegistered(const int localLinkId) const | StateManager
UpdateComponentCurrentState(const int localLinkId, const ComponentState currentState) | StateManager
UpdateComponentDesiredState(const int localLinkId, ComponentState desiredState) | StateManager
UpdateComponentMaxReachableState(const int localLinkId, ComponentState maxReachableState) | StateManager
UpdateMaxReachableStatesForRegisteredComponents(std::vector< openpass::events::ComponentStateChangeEvent const * > &componentStateChanges) | StateManager
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • ComponentControl
  • VehicleComponentStateExpression
VehicleComponentStateExpression Member List

This is the complete list of members for VehicleComponentStateExpression, including all inherited members.

VehicleComponentStateExpression(const std::string &component) VehicleComponentStateExpression inline
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ComponentControllerImplementation Member List

This is the complete list of members for ComponentControllerImplementation, including all inherited members.

Trigger(int time) | ComponentControllerImplementation | virtual
UpdateInput(int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time) | ComponentControllerImplementation | virtual
UpdateOutput(int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) | ComponentControllerImplementation | virtual
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ComponentPort Member List

This is the complete list of members for ComponentPort, including all inherited members.

ComponentPort(int id, std::map< int, ComponentPort * > *portMap) | ComponentPort | inline
GetId() | ComponentPort | inline
GetSignalValue(std::shared_ptr< SignalInterface const > &data) | ComponentPort | inlinevirtual
SetSignalValue(const std::shared_ptr< SignalInterface const > &data) | ComponentPort | inlinevirtual
~ComponentPort()=default | ComponentPort | virtual
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ComponentStateChangeManipulator Member List

This is the complete list of members for ComponentStateChangeManipulator, including all inherited members.

GetCycleTime() | ManipulatorCommonBase | virtual
Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) | ManipulatorCommonBase | protected
Trigger(int time) override | ComponentStateChangeManipulator | virtual
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ComponentStateSignal Member List

This is the complete list of members for ComponentStateSignal, including all inherited members.

operator std::string() const ComponentStateSignal inlinevirtual
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ConditionCommonBase Member List

This is the complete list of members for ConditionCommonBase, including all inherited members.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ConditionalEventDetector Member List

This is the complete list of members for ConditionalEventDetector, including all inherited members.

GetCycleTime() override | EventDetectorCommonBase | virtual
Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) | EventDetectorCommonBase | protected
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • Configuration
  • ConfigurationContainer
ConfigurationContainer Member List

This is the complete list of members for ConfigurationContainer, including all inherited members.

GetProfiles() override | ConfigurationContainer
GetRuntimeInformation() const override | ConfigurationContainer
GetScenario() override | ConfigurationContainer
GetScenery() override | ConfigurationContainer
GetSlaveConfig() override | ConfigurationContainer
GetSystemConfigBlueprint() override | ConfigurationContainer
GetSystemConfigs() override | ConfigurationContainer
GetVehicleModels() override | ConfigurationContainer
ImportAllConfigurations() override | ConfigurationContainer
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • Configuration
  • Scenario
Scenario Member List

This is the complete list of members for Scenario, including all inherited members.

GetPedestrianCatalogPath() override | Scenario
GetSceneryPath() override | Scenario
GetTrajectoryCatalogPath() override | Scenario
GetVehicleCatalogPath() override | Scenario
SetPedestrianCatalogPath(const std::string &catalogPath) override | Scenario
SetSceneryPath(const std::string &sceneryPath) override | Scenario
SetTrajectoryCatalogPath(const std::string &catalogPath) override | Scenario
SetVehicleCatalogPath(const std::string &catalogPath) override | Scenario
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • Configuration
  • Scenery
Scenery Member List

This is the complete list of members for Scenery, including all inherited members.

AddJunction(const std::string &id) | Scenery |
AddRoad(const std::string &id) | Scenery |
Clear() | Scenery |
GetJunction(const std::string &id) const | Scenery | inline
GetJunctions() const | Scenery | inline
GetRoad(const std::string &id) const | Scenery | inline
GetRoads() const | Scenery | inline
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • Configuration
  • SlaveConfig
SlaveConfig Member List

This is the complete list of members for SlaveConfig, including all inherited members.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • Configuration
  • SystemConfig
SystemConfig Member List

This is the complete list of members for SystemConfig, including all inherited members.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • Configuration
  • VehicleModels
VehicleModels Member List

This is the complete list of members for VehicleModels, including all inherited members.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

Connection Member List

This is the complete list of members for Connection, including all inherited members.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

CustomCommandFactory Member List

This is the complete list of members for CustomCommandFactory, including all inherited members.

Create(const std::string &command, Args...args) | CustomCommandFactory | inlinestatic
Register(const std::string command) | CustomCommandFactory | inlinestatic
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

CyclicResult Member List

This is the complete list of members for CyclicResult, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

DoubleSignal Member List

This is the complete list of members for DoubleSignal, including all inherited members.

operator std::string() const | DoubleSignal | inlinevirtual
value | DoubleSignal |
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

DynamicAgentTypeGenerator Member List

This is the complete list of members for DynamicAgentTypeGenerator, including all inherited members.

GatherBasicComponents() | DynamicAgentTypeGenerator |
GatherComponent(const std::string componentName, std::shared_ptr< SimulationSlave::AgentType > agentType) | DynamicAgentTypeGenerator |
GatherComponentWithParameters(std::string componentName, std::shared_ptr< SimulationSlave::AgentType > agentType, const openpass::parameter::ParameterSetLevel1 &parameters) | DynamicAgentTypeGenerator |
GatherComponentWithParameters(std::string componentName, std::shared_ptr< SimulationSlave::AgentType > agentType, const openpass::parameter::ParameterSetLevel1 &parameters, std::string componentNameInSystemConfigBlueprint, int channelOffset) | DynamicAgentTypeGenerator |
GatherDriverComponents() | DynamicAgentTypeGenerator |
GatherSensors() | DynamicAgentTypeGenerator |
GatherVehicleComponents() | DynamicAgentTypeGenerator |
operator AgentBuildInformation &&() | DynamicAgentTypeGenerator | inline
SampleSensorLatency(std::shared_ptr< ParameterInterface > curParameters) | DynamicAgentTypeGenerator |
SetVehicleModelParameters(const openScenario::Parameters &assignedParameters) | DynamicAgentTypeGenerator |
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

DynamicParameterSampler Member List

This is the complete list of members for DynamicParameterSampler, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

DynamicProfileSampler Member List

This is the complete list of members for DynamicProfileSampler, including all inherited members.

operator SampledProfiles &&() | DynamicProfileSampler | inline
SampleDriverProfile() | DynamicProfileSampler |
SampleVehicleComponentProfiles() | DynamicProfileSampler |
SampleVehicleProfile() | DynamicProfileSampler |
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

Dynamics_Longitudinal_Basic_Implementation Member List

This is the complete list of members for Dynamics_Longitudinal_Basic_Implementation, including all inherited members.

Trigger(int time) | Dynamics_Longitudinal_Basic_Implementation | virtual
UpdateInput(int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time) | Dynamics_Longitudinal_Basic_Implementation | virtual
UpdateOutput(int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) | Dynamics_Longitudinal_Basic_Implementation | virtual
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

DynamicsCollisionImplementation Member List

This is the complete list of members for DynamicsCollisionImplementation, including all inherited members.

Trigger(int time) | DynamicsCollisionImplementation | virtual
UpdateInput(int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time) | DynamicsCollisionImplementation | virtual
UpdateOutput(int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) | DynamicsCollisionImplementation | virtual
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

DynamicsPostCrashImplementation Member List

This is the complete list of members for DynamicsPostCrashImplementation, including all inherited members.

Trigger(int time) | DynamicsPostCrashImplementation | virtual
UpdateInput(int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time) | DynamicsPostCrashImplementation | virtual
UpdateOutput(int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) | DynamicsPostCrashImplementation | virtual
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

DynamicsRegularDrivingImplementation Member List

This is the complete list of members for DynamicsRegularDrivingImplementation, including all inherited members.

COMPONENTNAME | DynamicsRegularDrivingImplementation |
Trigger(int time) | DynamicsRegularDrivingImplementation | virtual
UpdateInput(int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time) | DynamicsRegularDrivingImplementation | virtual
UpdateOutput(int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) | DynamicsRegularDrivingImplementation | virtual
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

DynamicsRegularTwoTrackImplementation Member List

This is the complete list of members for DynamicsRegularTwoTrackImplementation, including all inherited members.

COMPONENTNAME | DynamicsRegularTwoTrackImplementation |
Trigger(int time) | DynamicsRegularTwoTrackImplementation | virtual
UpdateInput(int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time) | DynamicsRegularTwoTrackImplementation | virtual
UpdateOutput(int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) | DynamicsRegularTwoTrackImplementation | virtual
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

DynamicsSignal Member List

This is the complete list of members for DynamicsSignal, including all inherited members.

operator std::string() const DynamicsSignal inlinevirtual
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

EgoAgent Member List

This is the complete list of members for EgoAgent, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

EventDetectorCommonBase Member List

This is the complete list of members for EventDetectorCommonBase, including all inherited members.

GetCycleTime() override | EventDetectorCommonBase | virtual
Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) | EventDetectorCommonBase | protected
Reset() override | EventDetectorCommonBase | virtual
Trigger(int time) override=0 | EventDetectorCommonBase | pure virtual
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • Importer
  • EventDetectorImporter
EventDetectorImporter Member List

This is the complete list of members for EventDetectorImporter, including all inherited members.

ImportEventDetector(QDomElement &eventElement, const std::string &eventName, const int numberOfExecutions, const openScenario::ActorInformation &actorInformation, const std::vector< ScenarioEntity > &entities, openScenario::Parameters &parameters) EventDetectorImporter static
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • Importer
  • ProfilesImporter
ProfilesImporter Member List

This is the complete list of members for ProfilesImporter, including all inherited members.

Import(const std::string &filename, Profiles &profiles) | ProfilesImporter | static
ImportAgentProfiles(QDomElement agentProfilesElement, std::unordered_map< std::string, AgentProfile > &agentProfiles) | ProfilesImporter | static
ImportAllSensorsOfVehicleProfile(QDomElement vehicleProfileElement, VehicleProfile &vehicleProfile) | ProfilesImporter | static
ImportAllVehicleComponentsOfVehicleProfile(QDomElement vehicleProfileElement, VehicleProfile &vehicleProfile) | ProfilesImporter | static
ImportProfileGroups(ProfileGroups &profileGroups, QDomElement &profilesElement) | ProfilesImporter | static
ImportSensorLinksOfComponent(QDomElement sensorLinksElement, std::list< SensorLink > &sensorLinks) | ProfilesImporter | static
ImportSensorParameters(QDomElement sensorElement, openpass::sensors::Parameter &sensorParameter) | ProfilesImporter | static
ImportVehicleComponent(QDomElement vehicleComponentElement, VehicleComponent &vehicleComponent) | ProfilesImporter | static
ImportVehicleProfile(QDomElement vehicleProfileElement) | ProfilesImporter | static
ImportVehicleProfiles(QDomElement vehicleProfilesElement, std::unordered_map< std::string, VehicleProfile > &vehicleProfiles) | ProfilesImporter | static
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • Importer
  • ScenarioImporter
ScenarioImporter Member List

This is the complete list of members for ScenarioImporter, including all inherited members.

ImportCatalog(const std::string &catalogName, QDomElement &catalogsElement, openScenario::Parameters &parameters) | ScenarioImporter | static
ImportEntity(QDomElement &entityElement, ScenarioEntity &entity, openScenario::Parameters &parameters) | ScenarioImporter | static
ImportStoryboard(QDomElement &documentRoot, std::vector< ScenarioEntity > &entities, ScenarioInterface *scenario, openScenario::Parameters &parameters) | ScenarioImporter | static
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • Importer
  • SceneryImporter
SceneryImporter Member List

This is the complete list of members for SceneryImporter, including all inherited members.

AddParsedObjectsToRoad(std::list< RoadObjectSpecification > parsedObjects, RoadInterface *road) | SceneryImporter | static
ApplyRepeat(ObjectRepeat objectRepeat, RoadObjectSpecification object, std::list< RoadObjectSpecification > &objectRepitions) | SceneryImporter | static
Import(const std::string &filename, Scenery *scenery) | SceneryImporter | static
ParseElementValidity(const QDomElement &rootElement, RoadElementValidity &validity) | SceneryImporter | static
ParseJunctionConnectionLinks(QDomElement &connectionElement, ConnectionInterface *connection) | SceneryImporter | static
ParseJunctionConnections(QDomElement &junctionElement, JunctionInterface *junction) | SceneryImporter | static
ParseJunctionPriorities(QDomElement &junctionElement, JunctionInterface *junction) | SceneryImporter | static
ParseJunctions(QDomElement &documentRoot, Scenery *scenery) | SceneryImporter | static
ParseObject(QDomElement &objectElement, RoadInterface *road) | SceneryImporter | static
ParseObjectRepeat(QDomElement &objectElement, const RoadObjectSpecification &object) | SceneryImporter | static
ParseObjects(QDomElement &roadElement, RoadInterface *road) | SceneryImporter | static
ParseOptionalInterval(QDomElement &repeatElement, std::string startAttribute, std::string endAttribute, OptionalInterval &interval) | SceneryImporter | static
ParseRepeat(QDomElement &repeatElement, RoadObjectSpecification object, std::list< RoadObjectSpecification > &objectRepitions) | SceneryImporter | static
ParseRoads(QDomElement &documentRoot, Scenery *scenery) | SceneryImporter | static
ParseRoadTypes(QDomElement &roadElement, RoadInterface *road) | SceneryImporter | static
ParseSignals(QDomElement &roadElement, RoadInterface *road) | SceneryImporter | static
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • Importer
  • SlaveConfigImporter
SlaveConfigImporter Member List

This is the complete list of members for SlaveConfigImporter, including all inherited members.

Import(const std::string &configurationDir, const std::string &slaveConfigFile, Configuration::SlaveConfig &slaveConfig) | SlaveConfigImporter | static
ImportEnvironment(QDomElement environmentElement, EnvironmentConfig &environmentConfig) | SlaveConfigImporter | static
ImportExperiment(QDomElement experimentElement, ExperimentConfig &experimentConfig) | SlaveConfigImporter | static
ImportLibraries(QDomElement rootElement) | SlaveConfigImporter | static
ImportScenario(QDomElement scenarioElement, const std::string configurationDir, ScenarioConfig &scenarioConfig) | SlaveConfigImporter | static
ImportSpawners(const QDomElement &spawnersElement, SpawnPointLibraryInfoCollection &spawnPointsInfo) | SlaveConfigImporter | static
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • Importer
  • SystemConfigImporter
SystemConfigImporter Member List

This is the complete list of members for SystemConfigImporter, including all inherited members.

Import(const std::string &filename, std::shared_ptr< SystemConfig > systemConfig) | SystemConfigImporter | static
ImportSystemParameters(QDomElement &parametersElement) | SystemConfigImporter | static
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • Importer
  • VehicleModelsImporter
VehicleModelsImporter Member List

This is the complete list of members for VehicleModelsImporter, including all inherited members.

Import(const std::string &vehicleModelsPath, const std::string &pedestrianModelsPath, Configuration::VehicleModels &vehicleModels) | VehicleModelsImporter | static
ImportPedestrianModel(QDomElement &pedestrianElement, VehicleModelMap &vehicleModelsMap) | VehicleModelsImporter | static
ImportVehicleModel(QDomElement &modelElement, VehicleModelMap &vehicleModelsMap) | VehicleModelsImporter | static
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

InputPort< SignalType, ValueType > Member List

This is the complete list of members for InputPort< SignalType, ValueType >, including all inherited members.

ComponentPort(int id, std::map< int, ComponentPort * > *portMap) | ComponentPort | inline
GetId() | ComponentPort | inline
GetSignalValue(std::shared_ptr< SignalInterface const > &data) | ComponentPort | inlinevirtual
GetValue() | InputPort< SignalType, ValueType > | inline
InputPort(int id, std::map< int, ComponentPort * > *portMap) | InputPort< SignalType, ValueType > | inline
~ComponentPort()=default | ComponentPort | virtual
~InputPort()=default | InputPort< SignalType, ValueType > | virtual
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

IntSignal Member List

This is the complete list of members for IntSignal, including all inherited members.

operator std::string() const | IntSignal | inlinevirtual
value | IntSignal |
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

JointsBuilder Member List

This is the complete list of members for JointsBuilder, including all inherited members.

CalculateCurvatures() | JointsBuilder |
CalculateHeadings() | JointsBuilder |
CalculatePoints() | JointsBuilder |
GetJoints() | JointsBuilder |
JointsBuilder(const SampledGeometry &sampledGeometry, const Joints &joints) | JointsBuilder | inline
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

Junction Member List

This is the complete list of members for Junction, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

LaneChangeManipulator Member List

This is the complete list of members for LaneChangeManipulator, including all inherited members.

GetCycleTime() | ManipulatorCommonBase | virtual
Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) | ManipulatorCommonBase | protected
Trigger(int time) override | LaneChangeManipulator | virtual
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

LateralSignal Member List

This is the complete list of members for LateralSignal, including all inherited members.

LateralSignal() | LateralSignal | inline
LateralSignal(ComponentState componentState, double laneWidth, double lateralDeviation, double gainLateralDeviation, double headingError, double gainHeadingError, double kappaManoeuvre, double kappaRoad, std::vector< double > curvatureOfSegmentsToNearPoint, std::vector< double > curvatureOfSegmentsToFarPoint) | LateralSignal | inline
LateralSignal(LateralSignal &other) | LateralSignal | inline
LateralSignal(ComponentState componentState, double laneWidth, double lateralDeviation, double gainLateralDeviation, double headingError, double gainHeadingError, double kappaManoeuvre) | LateralSignal | inline
operator std::string() const | LateralSignal | inlinevirtual
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

LimiterAccelerationVehicleComponentsImplementation Member List

This is the complete list of members for LimiterAccelerationVehicleComponentsImplementation, including all inherited members.

Trigger(int time) | LimiterAccelerationVehicleComponentsImplementation | virtual
UpdateInput(int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time) | LimiterAccelerationVehicleComponentsImplementation | virtual
UpdateOutput(int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) | LimiterAccelerationVehicleComponentsImplementation | virtual
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

Log< T > Member List

This is the complete list of members for Log< T >, including all inherited members.

Get(const char *file, int line, LogLevel level=LogLevel::Warning) | Log< T > |
os | Log< T > | protected
ReportingLevel() | Log< T > | static
ToString(LogLevel level) | Log< T > | static
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

LogOutputPolicy Member List

This is the complete list of members for LogOutputPolicy, including all inherited members.

IsOpen() | LogOutputPolicy | inlinestatic
Output(const std::string &message) | LogOutputPolicy | inlinestatic
SetFile(const std::string &fileName) | LogOutputPolicy | inlinestatic
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

LongitudinalSignal Member List

This is the complete list of members for LongitudinalSignal, including all inherited members.

operator std::string() const LongitudinalSignal inlinevirtual
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ManipulatorCommonBase Member List

This is the complete list of members for ManipulatorCommonBase, including all inherited members.

GetCycleTime() | ManipulatorCommonBase | virtual
GetEvents()=0 | ManipulatorCommonBase | protectedpure virtual
Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) | ManipulatorCommonBase | protected
Trigger(int time)=0 | ManipulatorCommonBase | pure virtual
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

MultiStream< T > Member List

This is the complete list of members for MultiStream< T >, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

NoOperationManipulator Member List

This is the complete list of members for NoOperationManipulator, including all inherited members.

GetCycleTime() | ManipulatorCommonBase | virtual
Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) | ManipulatorCommonBase | protected
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Fakes
  • Junction
Junction Member List

This is the complete list of members for Junction, including all inherited members.

AddConnectingRoad(const Interfaces::Road *connectingRoad)=0 | Junction | pure virtual
AddIntersectionInfo(const std::string &roadId, const IntersectionInfo &intersectionInfo)=0 | Junction | pure virtual
AddPriority(const std::string &high, const std::string &low)=0 | Junction | pure virtual
GetConnectingRoads() const =0 | Junction | pure virtual
GetId() const =0 | Junction | pure virtual
GetIntersections() const =0 | Junction | pure virtual
GetPriorities() const =0 | Junction | pure virtual
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Fakes
  • Lane
Lane Member List

This is the complete list of members for Lane, including all inherited members.

AddLaneGeometryJoint(const Common::Vector2d &pointLeft, const Common::Vector2d &pointCenter, const Common::Vector2d &pointRight, double sOffset, double curvature, double heading)=0 | Lane | pure virtual
AddMovingObject(OWL::Interfaces::MovingObject &movingObject)=0 | Lane | pure virtual
AddNext(const Lane *lane)=0 | Lane | pure virtual
AddPrevious(const Lane *lane)=0 | Lane | pure virtual
AddRoadMarking(Interfaces::RoadMarking &roadMarking)=0 | Lane | pure virtual
AddStationaryObject(OWL::Interfaces::StationaryObject &stationaryObject)=0 | Lane | pure virtual
AddTrafficSign(Interfaces::TrafficSign &trafficSign)=0 | Lane | pure virtual
AddWorldObject(Interfaces::WorldObject &worldObject)=0 | Lane | pure virtual
ClearMovingObjects()=0 | Lane | pure virtual
CopyToGroundTruth(osi3::GroundTruth &target) const =0 | Lane | pure virtual
Covers(double distance) const =0 | Lane | pure virtual
Exists() const =0 | Lane | pure virtual
GetCurvature(double distance) const =0 | Lane | pure virtual
GetDirection(double distance) const =0 | Lane | pure virtual
GetDistance(MeasurementPoint measurementPoint) const =0 | Lane | pure virtual
GetId() const =0 | Lane | pure virtual
GetInterpolatedPointsAtDistance(double distance) const =0 | Lane | pure virtual
GetLaneGeometryElements() const =0 | Lane | pure virtual
GetLaneType() const =0 | Lane | pure virtual
GetLeftLane() const =0 | Lane | pure virtual
GetLeftLaneBoundaries() const =0 | Lane | pure virtual
GetLength() const =0 | Lane | pure virtual
GetNext() const =0 | Lane | pure virtual
GetPrevious() const =0 | Lane | pure virtual
GetRightLane() const =0 | Lane | pure virtual
GetRightLaneBoundaries() const =0 | Lane | pure virtual
GetRightLaneCount() const =0 | Lane | pure virtual
GetRoad() const =0 | Lane | pure virtual
GetRoadMarkings() const =0 | Lane | pure virtual
GetSection() const =0 | Lane | pure virtual
GetTrafficSigns() const =0 | Lane | pure virtual
GetWidth(double distance) const =0 | Lane | pure virtual
GetWorldObjects() const =0 | Lane | pure virtual
SetLaneType(LaneType specifiedType)=0 | Lane | pure virtual
SetLeftLane(const Interfaces::Lane &lane)=0 | Lane | pure virtual
SetLeftLaneBoundaries(const std::vector< OWL::Id > laneBoundaries)=0 | Lane | pure virtual
SetRightLane(const Interfaces::Lane &lane)=0 | Lane | pure virtual
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Fakes
  • LaneBoundary
LaneBoundary Member List

This is the complete list of members for LaneBoundary, including all inherited members.

AddBoundaryPoint(const Common::Vector2d &point, double heading)=0 | LaneBoundary | pure virtual
CopyToGroundTruth(osi3::GroundTruth &target) const =0 | LaneBoundary | pure virtual
GetColor() const =0 | LaneBoundary | pure virtual
GetId() const =0 | LaneBoundary | pure virtual
GetSEnd() const =0 | LaneBoundary | pure virtual
GetSide() const =0 | LaneBoundary | pure virtual
GetSStart() const =0 | LaneBoundary | pure virtual
GetType() const =0 | LaneBoundary | pure virtual
GetWidth() const =0 | LaneBoundary | pure virtual
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Fakes
  • MovingObject
MovingObject Member List

This is the complete list of members for MovingObject, including all inherited members.

As() const | WorldObject | inline
As() | WorldObject | inline
CopyToGroundTruth(osi3::GroundTruth &target) const =0 | WorldObject | pure virtual
GetAbsAccelerationDouble() const =0 | WorldObject | pure virtual
GetAbsOrientation() const =0 | WorldObject | pure virtual
GetAbsVelocityDouble() const =0 | WorldObject | pure virtual
GetDimension() const =0 | WorldObject | pure virtual
GetId() const =0 | WorldObject | pure virtual
GetLink() | WorldObject | inline
GetLink() const | WorldObject | inline
GetReferencePointPosition() const =0 | WorldObject | pure virtual
Is() const | WorldObject | inline
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Fakes
  • Road
Road Member List

This is the complete list of members for Road, including all inherited members.

AddSection(Interfaces::Section &section)=0 | Road | pure virtual
GetDistance(MeasurementPoint mp) const =0 | Road | pure virtual
GetId() const =0 | Road | pure virtual
GetLength() const =0 | Road | pure virtual
GetPredecessor() const =0 | Road | pure virtual
GetSections() const =0 | Road | pure virtual
GetSuccessor() const =0 | Road | pure virtual
IsInStreamDirection() const =0 | Road | pure virtual
SetPredecessor(const std::string &predecessor)=0 | Road | pure virtual
SetSuccessor(const std::string &successor)=0 | Road | pure virtual
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Fakes
  • RoadMarking
RoadMarking Member List

This is the complete list of members for RoadMarking, including all inherited members.

CopyToGroundTruth(osi3::GroundTruth &target) const =0 | RoadMarking | pure virtual
GetId() const =0 | RoadMarking | pure virtual
GetReferencePointPosition() const =0 | RoadMarking | pure virtual
GetS() const =0 | RoadMarking | pure virtual
GetSpecification(const double relativeDistance) const =0 | RoadMarking | pure virtual
IsValidForLane(OWL::Id laneId) const =0 | RoadMarking | pure virtual
SetS(double sPos)=0 | RoadMarking | pure virtual
SetSpecification(RoadSignalInterface *signal, Position position)=0 | RoadMarking | pure virtual
SetValidForLane(OWL::Id laneId)=0 | RoadMarking | pure virtual
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Fakes
  • Section
Section Member List

This is the complete list of members for Section, including all inherited members.

AddLane(const Interfaces::Lane &lane)=0 | Section | pure virtual
AddNext(const Interfaces::Section &section)=0 | Section | pure virtual
AddPrevious(const Interfaces::Section &section)=0 | Section | pure virtual
Covers(double distance) const =0 | Section | pure virtual
CoversInterval(double startDistance, double endDistance) const =0 | Section | pure virtual
GetCenterLaneBoundary() const =0 | Section | pure virtual
GetDistance(MeasurementPoint measurementPoint) const =0 | Section | pure virtual
GetLanes() const =0 | Section | pure virtual
GetLength() const =0 | Section | pure virtual
GetRoad() const =0 | Section | pure virtual
GetSOffset() const =0 | Section | pure virtual
SetCenterLaneBoundary(std::vector< Id > laneBoundaryId)=0 | Section | pure virtual
SetRoad(Interfaces::Road *road)=0 | Section | pure virtual
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Fakes
  • StationaryObject
StationaryObject Member List

This is the complete list of members for StationaryObject, including all inherited members.

AddLaneAssignment(const Interfaces::Lane &lane)=0 | WorldObject | pure virtual
As() const | WorldObject | inline
As() | WorldObject | inline
ClearLaneAssignments()=0 | WorldObject | pure virtual
CopyToGroundTruth(osi3::GroundTruth &target) const =0 | WorldObject | pure virtual
GetAbsAccelerationDouble() const =0 | WorldObject | pure virtual
GetAbsOrientation() const =0 | WorldObject | pure virtual
GetAbsVelocityDouble() const =0 | WorldObject | pure virtual
GetDimension() const =0 | WorldObject | pure virtual
GetId() const =0 | WorldObject | pure virtual
GetLaneAssignments() const =0 | WorldObject | pure virtual
GetLink() | WorldObject | inline
GetLink() const | WorldObject | inline
GetReferencePointPosition() const =0 | WorldObject | pure virtual
Is() const | WorldObject | inline
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Fakes
  • TrafficSign
TrafficSign Member List

This is the complete list of members for TrafficSign, including all inherited members.

AddSupplementarySign(RoadSignalInterface *odSignal, Position position)=0 | TrafficSign | pure virtual
CopyToGroundTruth(osi3::GroundTruth &target) const =0 | TrafficSign | pure virtual
GetId() const =0 | TrafficSign | pure virtual
GetReferencePointPosition() const =0 | TrafficSign | pure virtual
GetS() const =0 | TrafficSign | pure virtual
GetSpecification(const double relativeDistance) const =0 | TrafficSign | pure virtual
GetValueAndUnitInSI(const double osiValue, const osi3::TrafficSignValue_Unit osiUnit) const =0 | TrafficSign | pure virtual
IsValidForLane(OWL::Id laneId) const =0 | TrafficSign | pure virtual
SetS(double sPos)=0 | TrafficSign | pure virtual
SetSpecification(RoadSignalInterface *signal, Position position)=0 | TrafficSign | pure virtual
SetValidForLane(OWL::Id laneId)=0 | TrafficSign | pure virtual
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Fakes
  • WorldData
WorldData Member List

This is the complete list of members for WorldData, including all inherited members.

AddCenterLinePoint(const RoadLaneSectionInterface &odSection, const Common::Vector2d &pointCenter, const double sOffset, double heading)=0 | WorldData | pure virtual
AddJunction(const JunctionInterface *odJunction)=0 | WorldData | pure virtual
AddJunctionConnection(const JunctionInterface *odJunction, const RoadInterface &odRoad)=0 | WorldData | pure virtual
AddJunctionPriority(const JunctionInterface *odJunction, const std::string &high, const std::string &low)=0 | WorldData | pure virtual
AddLane(RoadLaneSectionInterface &odSection, const RoadLaneInterface &odLane, const std::vector< Id > laneBoundaries)=0 | WorldData | pure virtual
AddLaneBoundary(const RoadLaneRoadMark &odLaneRoadMark, double sectionStart, LaneMarkingSide side)=0 | WorldData | pure virtual
AddLaneGeometryPoint(const RoadLaneInterface &odLane, const Common::Vector2d &pointLeft, const Common::Vector2d &pointCenter, const Common::Vector2d &pointRight, const double sOffset, const double curvature, const double heading)=0 | WorldData | pure virtual
AddLanePredecessor(RoadLaneInterface &odLane, RoadLaneInterface &predecessorOdLane)=0 | WorldData | pure virtual
AddLaneSuccessor(RoadLaneInterface &odLane, RoadLaneInterface &successorOdLane)=0 | WorldData | pure virtual
AddMovingObject(void *linkedObject)=0 | WorldData | pure virtual
AddRoad(const RoadInterface &odRoad)=0 | WorldData | pure virtual
AddRoadMarking()=0 | WorldData | pure virtual
AddSection(const RoadInterface &odRoad, const RoadLaneSectionInterface &odSection)=0 | WorldData | pure virtual
AddStationaryObject(void *linkedObject)=0 | WorldData | pure virtual
AddTrafficSign(const std::string odId)=0 | WorldData | pure virtual
AssignRoadMarkingToLane(OWL::Id laneId, Interfaces::RoadMarking &roadMarking)=0 | WorldData | pure virtual
AssignTrafficSignToLane(OWL::Id laneId, Interfaces::TrafficSign &trafficSign)=0 | WorldData | pure virtual
Clear()=0 | WorldData | pure virtual
ConnectLanes(RoadLaneSectionInterface &firstOdSection, RoadLaneSectionInterface &secondOdSection, const std::map< int, int > &lanePairs, bool isPrev)=0 | WorldData | pure virtual
GetAgentId(const OWL::Id owlId) const =0 | WorldData | pure virtual
GetJunctions() const =0 | WorldData | pure virtual
GetLaneBoundaries() const =0 | WorldData | pure virtual
GetLaneIdMapping() const =0 | WorldData | pure virtual
GetLanes() const =0 | WorldData | pure virtual
GetOwlId(int agentId)=0 | WorldData | pure virtual
GetRoadGraph() const =0 | WorldData | pure virtual
GetRoadGraphVertexMapping() const =0 | WorldData | pure virtual
GetRoadMarkings() const =0 | WorldData | pure virtual
GetRoads() const =0 | WorldData | pure virtual
GetSensorView(osi3::SensorViewConfiguration &conf, int agentId)=0 | WorldData | pure virtual
GetTrafficSignIdMapping() const =0 | WorldData | pure virtual
GetTrafficSigns() const =0 | WorldData | pure virtual
RemoveMovingObjectById(Id id)=0 | WorldData | pure virtual
Reset()=0 | WorldData | pure virtual
SetCenterLaneBoundary(const RoadLaneSectionInterface &odSection, std::vector< Id > laneBoundaryIds)=0 | WorldData | pure virtual
SetRoadGraph(const RoadGraph &&roadGraph, const RoadGraphVertexMapping &&vertexMapping)=0 | WorldData | pure virtual
SetRoadPredecessor(const RoadInterface &road, const RoadInterface &predecessorRoad)=0 | WorldData | pure virtual
SetRoadPredecessorJunction(const RoadInterface &road, const JunctionInterface *predecessorJunction)=0 | WorldData | pure virtual
SetRoadSuccessor(const RoadInterface &road, const RoadInterface &successorRoad)=0 | WorldData | pure virtual
SetRoadSuccessorJunction(const RoadInterface &road, const JunctionInterface *successorJunction)=0 | WorldData | pure virtual
SetSectionPredecessor(const RoadLaneSectionInterface &section, const RoadLaneSectionInterface &predecessorSection)=0 | WorldData | pure virtual
SetSectionSuccessor(const RoadLaneSectionInterface &section, const RoadLaneSectionInterface &successorSection)=0 | WorldData | pure virtual
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Implementation
  • InvalidLane
InvalidLane Member List

This is the complete list of members for InvalidLane, including all inherited members.

Lane(osi3::Lane *osiLane, const Interfaces::Section *section) Lane
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Implementation
  • InvalidRoad
InvalidRoad Member List

This is the complete list of members for InvalidRoad, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Implementation
  • InvalidSection
InvalidSection Member List

This is the complete list of members for InvalidSection, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Implementation
  • Junction
Junction Member List

This is the complete list of members for Junction, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Implementation
  • Lane
Lane Member List

This is the complete list of members for Lane, including all inherited members.

Lane(osi3::Lane *osiLane, const Interfaces::Section *section) Lane
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Implementation
  • LaneBoundary
LaneBoundary Member List

This is the complete list of members for LaneBoundary, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Implementation
  • MovingObject
MovingObject Member List

This is the complete list of members for MovingObject, including all inherited members.

As() const | WorldObject | inline
As() | WorldObject | inline
GetLink() | WorldObject | inline
GetLink() const | WorldObject | inline
Is() const | WorldObject | inline
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Implementation
  • Road
Road Member List

This is the complete list of members for Road, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Implementation
  • RoadMarking
RoadMarking Member List

This is the complete list of members for RoadMarking, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Implementation
  • Section
Section Member List

This is the complete list of members for Section, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Implementation
  • StationaryObject
StationaryObject Member List

This is the complete list of members for StationaryObject, including all inherited members.

As() const | WorldObject | inline
As() | WorldObject | inline
GetLink() | WorldObject | inline
GetLink() const | WorldObject | inline
Is() const | WorldObject | inline
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Implementation
  • TrafficSign
TrafficSign Member List

This is the complete list of members for TrafficSign, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Implementation
  • Vehicle
Vehicle Member List

This is the complete list of members for Vehicle, including all inherited members.

As() const | WorldObject | inline
As() | WorldObject | inline
GetLink() | WorldObject | inline
GetLink() const | WorldObject | inline
Is() const | WorldObject | inline
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Interfaces
  • Junction
Junction Member List

This is the complete list of members for Junction, including all inherited members.

AddConnectingRoad(const Interfaces::Road *connectingRoad)=0 | Junction | pure virtual
AddIntersectionInfo(const std::string &roadId, const IntersectionInfo &intersectionInfo)=0 | Junction | pure virtual
AddPriority(const std::string &high, const std::string &low)=0 | Junction | pure virtual
GetConnectingRoads() const =0 | Junction | pure virtual
GetId() const =0 | Junction | pure virtual
GetIntersections() const =0 | Junction | pure virtual
GetPriorities() const =0 | Junction | pure virtual
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Interfaces
  • Lane
Lane Member List

This is the complete list of members for Lane, including all inherited members.

AddLaneGeometryJoint(const Common::Vector2d &pointLeft, const Common::Vector2d &pointCenter, const Common::Vector2d &pointRight, double sOffset, double curvature, double heading)=0 | Lane | pure virtual
AddMovingObject(OWL::Interfaces::MovingObject &movingObject)=0 | Lane | pure virtual
AddNext(const Lane *lane)=0 | Lane | pure virtual
AddPrevious(const Lane *lane)=0 | Lane | pure virtual
AddRoadMarking(Interfaces::RoadMarking &roadMarking)=0 | Lane | pure virtual
AddStationaryObject(OWL::Interfaces::StationaryObject &stationaryObject)=0 | Lane | pure virtual
AddTrafficSign(Interfaces::TrafficSign &trafficSign)=0 | Lane | pure virtual
AddWorldObject(Interfaces::WorldObject &worldObject)=0 | Lane | pure virtual
ClearMovingObjects()=0 | Lane | pure virtual
CopyToGroundTruth(osi3::GroundTruth &target) const =0 | Lane | pure virtual
Covers(double distance) const =0 | Lane | pure virtual
Exists() const =0 | Lane | pure virtual
GetCurvature(double distance) const =0 | Lane | pure virtual
GetDirection(double distance) const =0 | Lane | pure virtual
GetDistance(MeasurementPoint measurementPoint) const =0 | Lane | pure virtual
GetId() const =0 | Lane | pure virtual
GetInterpolatedPointsAtDistance(double distance) const =0 | Lane | pure virtual
GetLaneGeometryElements() const =0 | Lane | pure virtual
GetLaneType() const =0 | Lane | pure virtual
GetLeftLane() const =0 | Lane | pure virtual
GetLeftLaneBoundaries() const =0 | Lane | pure virtual
GetLength() const =0 | Lane | pure virtual
GetNext() const =0 | Lane | pure virtual
GetPrevious() const =0 | Lane | pure virtual
GetRightLane() const =0 | Lane | pure virtual
GetRightLaneBoundaries() const =0 | Lane | pure virtual
GetRightLaneCount() const =0 | Lane | pure virtual
GetRoad() const =0 | Lane | pure virtual
GetRoadMarkings() const =0 | Lane | pure virtual
GetSection() const =0 | Lane | pure virtual
GetTrafficSigns() const =0 | Lane | pure virtual
GetWidth(double distance) const =0 | Lane | pure virtual
GetWorldObjects() const =0 | Lane | pure virtual
SetLaneType(LaneType specifiedType)=0 | Lane | pure virtual
SetLeftLane(const Interfaces::Lane &lane)=0 | Lane | pure virtual
SetLeftLaneBoundaries(const std::vector< OWL::Id > laneBoundaries)=0 | Lane | pure virtual
SetRightLane(const Interfaces::Lane &lane)=0 | Lane | pure virtual
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Interfaces
  • LaneBoundary
LaneBoundary Member List

This is the complete list of members for LaneBoundary, including all inherited members.

AddBoundaryPoint(const Common::Vector2d &point, double heading)=0 | LaneBoundary | pure virtual
CopyToGroundTruth(osi3::GroundTruth &target) const =0 | LaneBoundary | pure virtual
GetColor() const =0 | LaneBoundary | pure virtual
GetId() const =0 | LaneBoundary | pure virtual
GetSEnd() const =0 | LaneBoundary | pure virtual
GetSide() const =0 | LaneBoundary | pure virtual
GetSStart() const =0 | LaneBoundary | pure virtual
GetType() const =0 | LaneBoundary | pure virtual
GetWidth() const =0 | LaneBoundary | pure virtual
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Interfaces
  • MovingObject
MovingObject Member List

This is the complete list of members for MovingObject, including all inherited members.

As() const | WorldObject | inline
As() | WorldObject | inline
CopyToGroundTruth(osi3::GroundTruth &target) const =0 | WorldObject | pure virtual
GetAbsAccelerationDouble() const =0 | WorldObject | pure virtual
GetAbsOrientation() const =0 | WorldObject | pure virtual
GetAbsVelocityDouble() const =0 | WorldObject | pure virtual
GetDimension() const =0 | WorldObject | pure virtual
GetId() const =0 | WorldObject | pure virtual
GetLink() | WorldObject | inline
GetLink() const | WorldObject | inline
GetReferencePointPosition() const =0 | WorldObject | pure virtual
Is() const | WorldObject | inline
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Interfaces
  • Road
Road Member List

This is the complete list of members for Road, including all inherited members.

AddSection(Interfaces::Section &section)=0 | Road | pure virtual
GetDistance(MeasurementPoint mp) const =0 | Road | pure virtual
GetId() const =0 | Road | pure virtual
GetLength() const =0 | Road | pure virtual
GetPredecessor() const =0 | Road | pure virtual
GetSections() const =0 | Road | pure virtual
GetSuccessor() const =0 | Road | pure virtual
IsInStreamDirection() const =0 | Road | pure virtual
SetPredecessor(const std::string &predecessor)=0 | Road | pure virtual
SetSuccessor(const std::string &successor)=0 | Road | pure virtual
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Interfaces
  • RoadMarking
RoadMarking Member List

This is the complete list of members for RoadMarking, including all inherited members.

CopyToGroundTruth(osi3::GroundTruth &target) const =0 | RoadMarking | pure virtual
GetId() const =0 | RoadMarking | pure virtual
GetReferencePointPosition() const =0 | RoadMarking | pure virtual
GetS() const =0 | RoadMarking | pure virtual
GetSpecification(const double relativeDistance) const =0 | RoadMarking | pure virtual
IsValidForLane(OWL::Id laneId) const =0 | RoadMarking | pure virtual
SetS(double sPos)=0 | RoadMarking | pure virtual
SetSpecification(RoadSignalInterface *signal, Position position)=0 | RoadMarking | pure virtual
SetValidForLane(OWL::Id laneId)=0 | RoadMarking | pure virtual
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Interfaces
  • Section
Section Member List

This is the complete list of members for Section, including all inherited members.

AddLane(const Interfaces::Lane &lane)=0 | Section | pure virtual
AddNext(const Interfaces::Section &section)=0 | Section | pure virtual
AddPrevious(const Interfaces::Section &section)=0 | Section | pure virtual
Covers(double distance) const =0 | Section | pure virtual
CoversInterval(double startDistance, double endDistance) const =0 | Section | pure virtual
GetCenterLaneBoundary() const =0 | Section | pure virtual
GetDistance(MeasurementPoint measurementPoint) const =0 | Section | pure virtual
GetLanes() const =0 | Section | pure virtual
GetLength() const =0 | Section | pure virtual
GetRoad() const =0 | Section | pure virtual
GetSOffset() const =0 | Section | pure virtual
SetCenterLaneBoundary(std::vector< Id > laneBoundaryId)=0 | Section | pure virtual
SetRoad(Interfaces::Road *road)=0 | Section | pure virtual
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Interfaces
  • StationaryObject
StationaryObject Member List

This is the complete list of members for StationaryObject, including all inherited members.

AddLaneAssignment(const Interfaces::Lane &lane)=0 | WorldObject | pure virtual
As() const | WorldObject | inline
As() | WorldObject | inline
ClearLaneAssignments()=0 | WorldObject | pure virtual
CopyToGroundTruth(osi3::GroundTruth &target) const =0 | WorldObject | pure virtual
GetAbsAccelerationDouble() const =0 | WorldObject | pure virtual
GetAbsOrientation() const =0 | WorldObject | pure virtual
GetAbsVelocityDouble() const =0 | WorldObject | pure virtual
GetDimension() const =0 | WorldObject | pure virtual
GetId() const =0 | WorldObject | pure virtual
GetLaneAssignments() const =0 | WorldObject | pure virtual
GetLink() | WorldObject | inline
GetLink() const | WorldObject | inline
GetReferencePointPosition() const =0 | WorldObject | pure virtual
Is() const | WorldObject | inline
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Interfaces
  • TrafficSign
TrafficSign Member List

This is the complete list of members for TrafficSign, including all inherited members.

AddSupplementarySign(RoadSignalInterface *odSignal, Position position)=0 | TrafficSign | pure virtual
CopyToGroundTruth(osi3::GroundTruth &target) const =0 | TrafficSign | pure virtual
GetId() const =0 | TrafficSign | pure virtual
GetReferencePointPosition() const =0 | TrafficSign | pure virtual
GetS() const =0 | TrafficSign | pure virtual
GetSpecification(const double relativeDistance) const =0 | TrafficSign | pure virtual
GetValueAndUnitInSI(const double osiValue, const osi3::TrafficSignValue_Unit osiUnit) const =0 | TrafficSign | pure virtual
IsValidForLane(OWL::Id laneId) const =0 | TrafficSign | pure virtual
SetS(double sPos)=0 | TrafficSign | pure virtual
SetSpecification(RoadSignalInterface *signal, Position position)=0 | TrafficSign | pure virtual
SetValidForLane(OWL::Id laneId)=0 | TrafficSign | pure virtual
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Interfaces
  • WorldData
WorldData Member List

This is the complete list of members for WorldData, including all inherited members.

AddCenterLinePoint(const RoadLaneSectionInterface &odSection, const Common::Vector2d &pointCenter, const double sOffset, double heading)=0 | WorldData | pure virtual
AddJunction(const JunctionInterface *odJunction)=0 | WorldData | pure virtual
AddJunctionConnection(const JunctionInterface *odJunction, const RoadInterface &odRoad)=0 | WorldData | pure virtual
AddJunctionPriority(const JunctionInterface *odJunction, const std::string &high, const std::string &low)=0 | WorldData | pure virtual
AddLane(RoadLaneSectionInterface &odSection, const RoadLaneInterface &odLane, const std::vector< Id > laneBoundaries)=0 | WorldData | pure virtual
AddLaneBoundary(const RoadLaneRoadMark &odLaneRoadMark, double sectionStart, LaneMarkingSide side)=0 | WorldData | pure virtual
AddLaneGeometryPoint(const RoadLaneInterface &odLane, const Common::Vector2d &pointLeft, const Common::Vector2d &pointCenter, const Common::Vector2d &pointRight, const double sOffset, const double curvature, const double heading)=0 | WorldData | pure virtual
AddLanePredecessor(RoadLaneInterface &odLane, RoadLaneInterface &predecessorOdLane)=0 | WorldData | pure virtual
AddLaneSuccessor(RoadLaneInterface &odLane, RoadLaneInterface &successorOdLane)=0 | WorldData | pure virtual
AddMovingObject(void *linkedObject)=0 | WorldData | pure virtual
AddRoad(const RoadInterface &odRoad)=0 | WorldData | pure virtual
AddRoadMarking()=0 | WorldData | pure virtual
AddSection(const RoadInterface &odRoad, const RoadLaneSectionInterface &odSection)=0 | WorldData | pure virtual
AddStationaryObject(void *linkedObject)=0 | WorldData | pure virtual
AddTrafficSign(const std::string odId)=0 | WorldData | pure virtual
AssignRoadMarkingToLane(OWL::Id laneId, Interfaces::RoadMarking &roadMarking)=0 | WorldData | pure virtual
AssignTrafficSignToLane(OWL::Id laneId, Interfaces::TrafficSign &trafficSign)=0 | WorldData | pure virtual
Clear()=0 | WorldData | pure virtual
ConnectLanes(RoadLaneSectionInterface &firstOdSection, RoadLaneSectionInterface &secondOdSection, const std::map< int, int > &lanePairs, bool isPrev)=0 | WorldData | pure virtual
GetAgentId(const OWL::Id owlId) const =0 | WorldData | pure virtual
GetInvalidLane() const =0 | WorldData | pure virtual
GetJunctions() const =0 | WorldData | pure virtual
GetLaneBoundaries() const =0 | WorldData | pure virtual
GetLaneIdMapping() const =0 | WorldData | pure virtual
GetLanes() const =0 | WorldData | pure virtual
GetOwlId(int agentId)=0 | WorldData | pure virtual
GetRoadGraph() const =0 | WorldData | pure virtual
GetRoadGraphVertexMapping() const =0 | WorldData | pure virtual
GetRoadMarkings() const =0 | WorldData | pure virtual
GetRoads() const =0 | WorldData | pure virtual
GetSensorView(osi3::SensorViewConfiguration &conf, int agentId)=0 | WorldData | pure virtual
GetTrafficSignIdMapping() const =0 | WorldData | pure virtual
GetTrafficSigns() const =0 | WorldData | pure virtual
RemoveMovingObjectById(Id id)=0 | WorldData | pure virtual
Reset()=0 | WorldData | pure virtual
SetCenterLaneBoundary(const RoadLaneSectionInterface &odSection, std::vector< Id > laneBoundaryIds)=0 | WorldData | pure virtual
SetRoadGraph(const RoadGraph &&roadGraph, const RoadGraphVertexMapping &&vertexMapping)=0 | WorldData | pure virtual
SetRoadPredecessor(const RoadInterface &road, const RoadInterface &predecessorRoad)=0 | WorldData | pure virtual
SetRoadPredecessorJunction(const RoadInterface &road, const JunctionInterface *predecessorJunction)=0 | WorldData | pure virtual
SetRoadSuccessor(const RoadInterface &road, const RoadInterface &successorRoad)=0 | WorldData | pure virtual
SetRoadSuccessorJunction(const RoadInterface &road, const JunctionInterface *successorJunction)=0 | WorldData | pure virtual
SetSectionPredecessor(const RoadLaneSectionInterface &section, const RoadLaneSectionInterface &predecessorSection)=0 | WorldData | pure virtual
SetSectionSuccessor(const RoadLaneSectionInterface &section, const RoadLaneSectionInterface &successorSection)=0 | WorldData | pure virtual
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Interfaces
  • WorldObject
WorldObject Member List

This is the complete list of members for WorldObject, including all inherited members.

AddLaneAssignment(const Interfaces::Lane &lane)=0 | WorldObject | pure virtual
As() const | WorldObject | inline
As() | WorldObject | inline
ClearLaneAssignments()=0 | WorldObject | pure virtual
CopyToGroundTruth(osi3::GroundTruth &target) const =0 | WorldObject | pure virtual
GetAbsAccelerationDouble() const =0 | WorldObject | pure virtual
GetAbsOrientation() const =0 | WorldObject | pure virtual
GetAbsVelocityDouble() const =0 | WorldObject | pure virtual
GetDimension() const =0 | WorldObject | pure virtual
GetId() const =0 | WorldObject | pure virtual
GetLaneAssignments() const =0 | WorldObject | pure virtual
GetLink() | WorldObject | inline
GetLink() const | WorldObject | inline
GetLocatedPosition() const =0 | WorldObject | pure virtual
GetReferencePointPosition() const =0 | WorldObject | pure virtual
Is() const | WorldObject | inline
SetAbsOrientation(const Primitive::AbsOrientation &newOrientation)=0 | WorldObject | pure virtual
SetDimension(const Primitive::Dimension &newDimension)=0 | WorldObject | pure virtual
SetLocatedPosition(const ObjectPosition &position)=0 | WorldObject | pure virtual
SetReferencePointPosition(const Primitive::AbsPosition &newPosition)=0 | WorldObject | pure virtual
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • NonExistentOsiRef
NonExistentOsiRef Member List

This is the complete list of members for NonExistentOsiRef, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • WorldData
WorldData Member List

This is the complete list of members for WorldData, including all inherited members.

ApplySectorFilter(const std::vector< T * > &objects, const Primitive::AbsPosition &origin, double radius, double leftBoundaryAngle, double rightBoundaryAngle) | WorldData | inline
GetFilteredGroundTruth(const osi3::SensorViewConfiguration &conf, const Interfaces::MovingObject &reference) | WorldData |
GetMovingObjectsInSector(const Primitive::AbsPosition &origin, double radius, double absYawMin, double absYawMax) | WorldData |
GetRoadMarkingsInSector(const Primitive::AbsPosition &origin, double radius, double absYawMin, double absYawMax) | WorldData |
GetStationaryObjectsInSector(const Primitive::AbsPosition &origin, double radius, double absYawMin, double absYawMax) | WorldData |
GetTrafficSignsInSector(const Primitive::AbsPosition &origin, double radius, double absYawMin, double absYawMax) | WorldData |
Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) | WorldData | inlineprotected
NormalizeAngle(double angle) | WorldData |
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ObjectDetectorBase Member List

This is the complete list of members for ObjectDetectorBase, including all inherited members.

ApplyLatency(int time, osi3::SensorData currentSensorData) | ObjectDetectorBase | protected
ApplyMeasurementError(double value) | ObjectDetectorBase | protected
CalculateBoundingBox(const osi3::Dimension3d dimension, const osi3::Vector3d position, const osi3::Orientation3d orientation) | ObjectDetectorBase | protectedstatic
CalculateGlobalSensorPosition(point_t vehiclePosition, double yaw) const | ObjectDetectorBase | protected
CalculateRelativeVector(const point_t absolute, const point_t own, double yaw) | ObjectDetectorBase | protectedvirtual
GenerateSensorViewConfiguration() | ObjectDetectorBase | protectedvirtual
GetAbsolutePosition() | ObjectDetectorBase | protected
getSensorData() | ObjectDetectorBase | inline
HasDetectionError() | ObjectDetectorBase | protected
ObjectDetectorBase(std::string componentName, bool isInit, int priority, int offsetTime, int responseTime, int cycleTime, StochasticsInterface *stochastics, WorldInterface *world, const ParameterInterface *parameters, PublisherInterface *const publisher, const CallbackInterface *callbacks, AgentInterface *agent) | ObjectDetectorBase |
TransformPointToLocalCoordinates(point_t point, point_t sensorPositionGlobal, double yaw) | ObjectDetectorBase | protectedvirtual
TransformPolygonToGlobalCoordinates(polygon_t polygon, point_t sensorPositionGlobal, double yaw) const | ObjectDetectorBase | protected
Trigger(int time)=0 | ObjectDetectorBase | pure virtual
UpdateInput(int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time)=0 | ObjectDetectorBase | pure virtual
UpdateOutput(int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) | ObjectDetectorBase |
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

Observation_State_Implementation Member List

This is the complete list of members for Observation_State_Implementation, including all inherited members.

MasterPostHook(const std::string &filename) | Observation_State_Implementation | inlinevirtual
MasterPreHook() | Observation_State_Implementation | inlinevirtual
SlavePostHook() | Observation_State_Implementation | virtual
SlavePostRunHook(const RunResultInterface &runResult) | Observation_State_Implementation | virtual
SlavePreRunHook() | Observation_State_Implementation | virtual
SlaveResultFile() | Observation_State_Implementation | inlinevirtual
SlaveUpdateHook(int time, RunResultInterface &runResult) | Observation_State_Implementation | virtual
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

Observation_Ttc_Implementation Member List

This is the complete list of members for Observation_Ttc_Implementation, including all inherited members.

findFrontAgentID(int ownID) | Observation_Ttc_Implementation |
MasterPostHook(const std::string &filename) | Observation_Ttc_Implementation | inlinevirtual
MasterPreHook() | Observation_Ttc_Implementation | inlinevirtual
SlavePostHook() | Observation_Ttc_Implementation | virtual
SlavePostRunHook(const RunResultInterface &runResult) | Observation_Ttc_Implementation | virtual
SlavePreHook(const std::string &path) | Observation_Ttc_Implementation | virtual
SlavePreRunHook() | Observation_Ttc_Implementation | virtual
SlaveResultFile() | Observation_Ttc_Implementation | inlinevirtual
SlaveUpdateHook(int time, RunResultInterface &runResult) | Observation_Ttc_Implementation | virtual
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ObservationCyclics Member List

This is the complete list of members for ObservationCyclics, including all inherited members.

Clear() | ObservationCyclics |
Clear() | ObservationCyclics |
GetAgentHeader() | ObservationCyclics |
GetAgentSamplesLine(uint32_t timeStepNumber) | ObservationCyclics |
GetHeader() | ObservationCyclics |
GetHeader() | ObservationCyclics |
GetSamplesLine(uint32_t timeStepNumber) | ObservationCyclics |
GetSamplesLine(uint32_t timeStepNumber) | ObservationCyclics |
GetTimeSteps() | ObservationCyclics | inline
GetTimeSteps() | ObservationCyclics | inline
Insert(int time, const std::string &key, const std::string &value) | ObservationCyclics |
Insert(int time, const std::string &key, const std::string &value) | ObservationCyclics |
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ObservationFileHandler Member List

This is the complete list of members for ObservationFileHandler, including all inherited members.

SetOutputLocation(const std::string &outputDir, const std::string &outputFile) | ObservationFileHandler | inline
SetOutputLocation(const std::string &outputDir, const std::string &outputFile) | ObservationFileHandler | inline
WriteEndOfFile() | ObservationFileHandler |
WriteEndOfFile() | ObservationFileHandler |
WriteRun(const RunResultInterface &runResult, RunStatistic runStatistik, ObservationCyclics &cyclics) | ObservationFileHandler |
WriteRun(const RunResultInterface &runResult, RunStatistic runStatistik, ObservationCyclics &cyclics) | ObservationFileHandler |
WriteStartOfFile(const std::string &frameworkVersion) | ObservationFileHandler |
WriteStartOfFile(const std::string &frameworkVersion) | ObservationFileHandler |
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ObservationLogImplementation Member List

This is the complete list of members for ObservationLogImplementation, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

Obstruction Member List

This is the complete list of members for Obstruction, including all inherited members.

Invalid() | Obstruction | inlinestatic
isOverlapping | Obstruction |
left | Obstruction |
mainLaneLocator | Obstruction |
NoOpponent() | Obstruction | inlinestatic
Obstruction(double left, double right, double mainLaneLocator) | Obstruction | inline
right | Obstruction |
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

OpenScenarioActionsImplementation Member List

This is the complete list of members for OpenScenarioActionsImplementation, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

OscActionsCalculation Member List

This is the complete list of members for OscActionsCalculation, including all inherited members.

CalculateSinusiodalLaneChange(double deltaS, double deltaT, double deltaTime, double timeStep, GlobalRoadPosition startPosition, double startTime) const OscActionsCalculation
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

OsmpFmuHandler Member List

This is the complete list of members for OsmpFmuHandler, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

OutputPort< SignalType, ValueType > Member List

This is the complete list of members for OutputPort< SignalType, ValueType >, including all inherited members.

ComponentPort(int id, std::map< int, ComponentPort * > *portMap) | ComponentPort | inline
GetId() | ComponentPort | inline
OutputPort(int id, std::map< int, ComponentPort * > *portMap) | OutputPort< SignalType, ValueType > | inline
SetSignalValue(const std::shared_ptr< SignalInterface const > &data) | ComponentPort | inlinevirtual
SetValue(ValueType value) | OutputPort< SignalType, ValueType > | inline
~ComponentPort()=default | ComponentPort | virtual
~OutputPort()=default | OutputPort< SignalType, ValueType > | virtual
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ParametersVehicleImplementation Member List

This is the complete list of members for ParametersVehicleImplementation, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ParametersVehicleSignal Member List

This is the complete list of members for ParametersVehicleSignal, including all inherited members.

operator std::string() const | ParametersVehicleSignal | inlinevirtual
ParametersVehicleSignal(VehicleModelParameters vehicleParameters) | ParametersVehicleSignal | inline
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

Polygon Member List

This is the complete list of members for Polygon, including all inherited members.

CalculateCentroid(Common::Vector2d &cog) | Polygon
GetNumberOfVertices() | Polygon
GetVertices() const | Polygon
SetVertices(const std::vector< Common::Vector2d > &value) | Polygon
Translate(Common::Vector2d translationVector) | Polygon
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

PostCrashDynamic Member List

This is the complete list of members for PostCrashDynamic, including all inherited members.

PostCrashDynamic(double velocity=0, double velocityChange=0, double velocityDirection=0, double yawVelocity=0, Common::Vector2d pulse=Common::Vector2d(), double pulseDirection=0, Common::Vector2d pulseLocal=Common::Vector2d(), Common::Vector2d pointOfContactLocal=Common::Vector2d(), double collisionVelocity=0, bool sliding=false) PostCrashDynamic inline
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ProcessManager Member List

This is the complete list of members for ProcessManager, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

Profiles Member List

This is the complete list of members for Profiles, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ReachPositionCondition Member List

This is the complete list of members for ReachPositionCondition, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

RemoveAgentsManipulator Member List

This is the complete list of members for RemoveAgentsManipulator, including all inherited members.

GetCycleTime() | ManipulatorCommonBase | virtual
Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) | ManipulatorCommonBase | protected
Trigger(int time) override | RemoveAgentsManipulator | virtual
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

Road Member List

This is the complete list of members for Road, including all inherited members.

AddElevation(double s, double a, double b, double c, double d) override | Road |
AddGeometryArc(double s, double x, double y, double hdg, double length, double curvature) override | Road |
AddGeometryLine(double s, double x, double y, double hdg, double length) override | Road |
AddGeometryParamPoly3(double s, double x, double y, double hdg, double length, ParamPoly3Parameters parameters) override | Road |
AddGeometryPoly3(double s, double x, double y, double hdg, double length, double a, double b, double c, double d) override | Road |
AddGeometrySpiral(double s, double x, double y, double hdg, double length, double curvStart, double curvEnd) override | Road |
AddLaneOffset(double s, double a, double b, double c, double d) override | Road |
AddLink(RoadLinkType type, RoadLinkElementType elementType, const std::string &elementId, ContactPointType contactPoint, RoadLinkDirectionType direction, RoadLinkSideType side) override | Road |
AddRoadLaneSection(double start) override | Road |
AddRoadSignal(const RoadSignalSpecification &signal) override | Road |
GetElevations() const override | Road | inline
GetGeometries() const override | Road | inline
GetId() const override | Road | inline
GetInDirection() const override | Road | inline
GetLaneOffsets() const override | Road | inline
GetLaneSections() const override | Road | inline
GetRoadLinks() const override | Road | inline
GetRoadObjects() const override | Road | inline
GetRoadSignals() const override | Road | inline
SetInDirection(bool inDirection) override | Road | inline
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

RoadGeometry Member List

This is the complete list of members for RoadGeometry, including all inherited members.

GetCoord(double sOffset, double tOffset) const override=0 | RoadGeometry | pure virtual
GetCoordArc(double sOffset, double tOffset, double curvature) const | RoadGeometry | protected
GetCoordLine(double sOffset, double tOffset) const | RoadGeometry | protected
GetDir(double sOffset) const override=0 | RoadGeometry | pure virtual
GetDirArc(double sOffset, double curvature) const | RoadGeometry | protected
GetDirLine(double sOffset) const | RoadGeometry | protected
GetHdg() const override | RoadGeometry | inline
GetLength() const override | RoadGeometry | inline
GetS() const override | RoadGeometry | inline
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

RoadGeometryArc Member List

This is the complete list of members for RoadGeometryArc, including all inherited members.

GetCoordArc(double sOffset, double tOffset, double curvature) const | RoadGeometry | protected
GetCoordLine(double sOffset, double tOffset) const | RoadGeometry | protected
GetCurvature() const | RoadGeometryArc | inline
GetDirArc(double sOffset, double curvature) const | RoadGeometry | protected
GetDirLine(double sOffset) const | RoadGeometry | protected
GetHdg() const override | RoadGeometry | inline
GetLength() const override | RoadGeometry | inline
GetS() const override | RoadGeometry | inline
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

RoadGeometryLine Member List

This is the complete list of members for RoadGeometryLine, including all inherited members.

GetCoordArc(double sOffset, double tOffset, double curvature) const | RoadGeometry | protected
GetCoordLine(double sOffset, double tOffset) const | RoadGeometry | protected
GetDirArc(double sOffset, double curvature) const | RoadGeometry | protected
GetDirLine(double sOffset) const | RoadGeometry | protected
GetHdg() const override | RoadGeometry | inline
GetLength() const override | RoadGeometry | inline
GetS() const override | RoadGeometry | inline
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

RoadGeometryParamPoly3 Member List

This is the complete list of members for RoadGeometryParamPoly3, including all inherited members.

GetAU() const | RoadGeometryParamPoly3 | inline
GetAV() const | RoadGeometryParamPoly3 | inline
GetBU() const | RoadGeometryParamPoly3 | inline
GetBV() const | RoadGeometryParamPoly3 | inline
GetCoordArc(double sOffset, double tOffset, double curvature) const | RoadGeometry | protected
GetCoordLine(double sOffset, double tOffset) const | RoadGeometry | protected
GetCU() const | RoadGeometryParamPoly3 | inline
GetCV() const | RoadGeometryParamPoly3 | inline
GetD() const | RoadGeometryParamPoly3 | inline
GetDirArc(double sOffset, double curvature) const | RoadGeometry | protected
GetDirLine(double sOffset) const | RoadGeometry | protected
GetDV() const | RoadGeometryParamPoly3 | inline
GetHdg() const override | RoadGeometry | inline
GetLength() const override | RoadGeometry | inline
GetS() const override | RoadGeometry | inline
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

RoadGeometryPoly3 Member List

This is the complete list of members for RoadGeometryPoly3, including all inherited members.

GetA() const | RoadGeometryPoly3 | inline
GetB() const | RoadGeometryPoly3 | inline
GetC() const | RoadGeometryPoly3 | inline
GetCoordArc(double sOffset, double tOffset, double curvature) const | RoadGeometry | protected
GetCoordLine(double sOffset, double tOffset) const | RoadGeometry | protected
GetD() const | RoadGeometryPoly3 | inline
GetDirArc(double sOffset, double curvature) const | RoadGeometry | protected
GetDirLine(double sOffset) const | RoadGeometry | protected
GetHdg() const override | RoadGeometry | inline
GetLength() const override | RoadGeometry | inline
GetS() const override | RoadGeometry | inline
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

RoadGeometrySpiral Member List

This is the complete list of members for RoadGeometrySpiral, including all inherited members.

GetCoordArc(double sOffset, double tOffset, double curvature) const | RoadGeometry | protected
GetCoordLine(double sOffset, double tOffset) const | RoadGeometry | protected
GetCurvEnd() const | RoadGeometrySpiral | inline
GetCurvStart() const | RoadGeometrySpiral | inline
GetDirArc(double sOffset, double curvature) const | RoadGeometry | protected
GetDirLine(double sOffset) const | RoadGeometry | protected
GetHdg() const override | RoadGeometry | inline
GetLength() const override | RoadGeometry | inline
GetS() const override | RoadGeometry | inline
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

RoadLane Member List

This is the complete list of members for RoadLane, including all inherited members.

AddBorder(double sOffset, double a, double b, double c, double d) override | RoadLane |
AddPredecessor(int id) override | RoadLane |
AddRoadMark(double sOffset, RoadLaneRoadDescriptionType type, RoadLaneRoadMarkType roadMark, RoadLaneRoadMarkColor color, RoadLaneRoadMarkLaneChange laneChange, RoadLaneRoadMarkWeight weight) override | RoadLane |
AddSuccessor(int id) override | RoadLane |
AddWidth(double sOffset, double a, double b, double c, double d) override | RoadLane |
GetBorders() const override | RoadLane | inline
GetId() const override | RoadLane | inline
GetInDirection() const override | RoadLane | inline
GetLaneSection() const override | RoadLane | inline
GetPredecessor() const override | RoadLane | inline
GetRoadMarks() const override | RoadLane | inline
GetSuccessor() const override | RoadLane | inline
GetType() const override | RoadLane | inline
GetWidths() const override | RoadLane | inline
SetInDirection(bool inDirection) override | RoadLane | inline
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

RoadLaneSection Member List

This is the complete list of members for RoadLaneSection, including all inherited members.

AddRoadLane(int id, RoadLaneType type) override | RoadLaneSection |
GetId() const override | RoadLaneSection | inline
GetInDirection() const override | RoadLaneSection | inline
GetLaneIndexOffset() const override | RoadLaneSection | inline
GetLanes() const override | RoadLaneSection | inline
GetRoad() const override | RoadLaneSection | inline
GetStart() const override | RoadLaneSection | inline
SetId(int Id) override | RoadLaneSection | inline
SetInDirection(bool inDirection) override | RoadLaneSection | inline
SetLaneIndexOffset(int laneIndexOffset) override | RoadLaneSection | inline
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

RoadLink Member List

This is the complete list of members for RoadLink, including all inherited members.

GetContactPoint() const override | RoadLink | inline
GetDirection() const override | RoadLink | inline
GetElementId() const override | RoadLink | inline
GetElementType() const override | RoadLink | inline
GetSide() const override | RoadLink | inline
GetType() const override | RoadLink | inline
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

RoadNetworkBuilder Member List

This is the complete list of members for RoadNetworkBuilder, including all inherited members.

Build() RoadNetworkBuilder
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

RoadObject Member List

This is the complete list of members for RoadObject, including all inherited members.

GetHdg() const | RoadObject
GetId() const | RoadObject
GetLength() const | RoadObject
GetS() const | RoadObject
GetT() const | RoadObject
GetType() const | RoadObject
GetWidth() const | RoadObject
IsValidForLane(int laneId) const | RoadObject
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

RoadSignal Member List

This is the complete list of members for RoadSignal, including all inherited members.

GetHeight() const override | RoadSignal | virtual
GetId() const override | RoadSignal | virtual
GetIsDynamic() const override | RoadSignal | virtual
GetLength() const | RoadSignal | virtual
GetPitch() const | RoadSignal | virtual
GetRoad() | RoadSignal | inline
GetRoll() const | RoadSignal | virtual
GetS() const override | RoadSignal |
GetSubType() const override | RoadSignal |
GetT() const override | RoadSignal |
GetText() const override | RoadSignal |
GetType() const override | RoadSignal |
GetUnit() const override | RoadSignal |
GetValue() const override | RoadSignal |
GetWidth() const override | RoadSignal | virtual
GetYaw() const | RoadSignal | virtual
IsValidForLane(int laneId) const override | RoadSignal |
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

RunStatistic Member List

This is the complete list of members for RunStatistic, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

RunStatisticCalculation Member List

This is the complete list of members for RunStatisticCalculation, including all inherited members.

DetermineEgoCollision(RunStatistic &runStatistic, const RunResultInterface &runResult, WorldInterface *world) | RunStatisticCalculation | static
DetermineEgoCollision(RunStatistic &runStatistic, const RunResultInterface &runResult, WorldInterface *world) | RunStatisticCalculation | static
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SceneryConverter Member List

This is the complete list of members for SceneryConverter, including all inherited members.

ConvertObjects() | SceneryConverter |
ConvertRoads() | SceneryConverter |
Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) | SceneryConverter | inlineprotected
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SecondaryDriverTasksSignal Member List

This is the complete list of members for SecondaryDriverTasksSignal, including all inherited members.

operator std::string() const | SecondaryDriverTasksSignal | inlinevirtual
SecondaryDriverTasksSignal() | SecondaryDriverTasksSignal | inline
SecondaryDriverTasksSignal(int indicatorState, bool hornSwitch, bool headLightSwitch, bool highBeamLightSwitch, bool flasher, ComponentState componentState) | SecondaryDriverTasksSignal | inline
SecondaryDriverTasksSignal(SecondaryDriverTasksSignal &other) | SecondaryDriverTasksSignal | inline
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

Sensor_Distance_Implementation Member List

This is the complete list of members for Sensor_Distance_Implementation, including all inherited members.

Trigger(int time) | Sensor_Distance_Implementation | virtual
UpdateInput(int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time) | Sensor_Distance_Implementation | virtual
UpdateOutput(int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) | Sensor_Distance_Implementation | virtual
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SensorDataSignal Member List

This is the complete list of members for SensorDataSignal, including all inherited members.

operator std::string() const | SensorDataSignal | inlinevirtual
sensorData | SensorDataSignal |
SensorDataSignal(osi3::SensorData sensorData) | SensorDataSignal | inline
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SensorDriverCalculations Member List

This is the complete list of members for SensorDriverCalculations, including all inherited members.

GetLateralDistanceToObject(const std::string &roadId, const AgentInterface *otherObject) SensorDriverCalculations
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SensorDriverImplementation Member List

This is the complete list of members for SensorDriverImplementation, including all inherited members.

COMPONENTNAME | SensorDriverImplementation
SensorDriverImplementation(std::string componentName, bool isInit, int priority, int offsetTime, int responseTime, int cycleTime, StochasticsInterface *stochastics, WorldInterface *world, const ParameterInterface *parameters, PublisherInterface *const publisher, const CallbackInterface *callbacks, AgentInterface *agent) | SensorDriverImplementation
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SensorDriverSignal Member List

This is the complete list of members for SensorDriverSignal, including all inherited members.

GetGeometryInformation() const | SensorDriverSignal | inlinevirtual
GetOwnVehicleInformation() const | SensorDriverSignal | inlinevirtual
GetSurroundingObjects() const | SensorDriverSignal | inlinevirtual
GetTrafficRuleInformation() const | SensorDriverSignal | inlinevirtual
operator std::string() const | SensorDriverSignal | inlinevirtual
SensorDriverSignal(OwnVehicleInformation ownVehicleInformation, TrafficRuleInformation trafficRuleInformation, GeometryInformation geometryInformation, SurroundingObjects surroundingObjects) | SensorDriverSignal | inline
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SensorFusionHelperFunctions Member List

This is the complete list of members for SensorFusionHelperFunctions, including all inherited members.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SensorFusionImplementation Member List

This is the complete list of members for SensorFusionImplementation, including all inherited members.

SensorFusionImplementation(std::string componentName, bool isInit, int priority, int offsetTime, int responseTime, int cycleTime, StochasticsInterface *stochastics, WorldInterface *world, const ParameterInterface *parameters, PublisherInterface *const publisher, const CallbackInterface *callbacks, AgentInterface *agent) | SensorFusionImplementation |
Trigger(int time) | SensorFusionImplementation | virtual
UpdateInput(int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time) | SensorFusionImplementation | virtual
UpdateOutput(int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) | SensorFusionImplementation |
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SensorGeometric2D Member List

This is the complete list of members for SensorGeometric2D, including all inherited members.

ApplyLatency(int time, osi3::SensorData currentSensorData) | ObjectDetectorBase | protected
ApplyMeasurementError(double value) | ObjectDetectorBase | protected
CalculateBoundingBox(const osi3::Dimension3d dimension, const osi3::Vector3d position, const osi3::Orientation3d orientation) | ObjectDetectorBase | protectedstatic
CalculateGlobalSensorPosition(point_t vehiclePosition, double yaw) const | ObjectDetectorBase | protected
CalculateRelativeVector(const point_t absolute, const point_t own, double yaw) | ObjectDetectorBase | protectedvirtual
DetectObjects() | SensorGeometric2D |
GenerateSensorViewConfiguration() override | SensorGeometric2D | protectedvirtual
GetAbsolutePosition() | ObjectDetectorBase | protected
getSensorData() | ObjectDetectorBase | inline
HasDetectionError() | ObjectDetectorBase | protected
ObjectDetectorBase(std::string componentName, bool isInit, int priority, int offsetTime, int responseTime, int cycleTime, StochasticsInterface *stochastics, WorldInterface *world, const ParameterInterface *parameters, PublisherInterface *const publisher, const CallbackInterface *callbacks, AgentInterface *agent) | ObjectDetectorBase |
SensorGeometric2D(std::string componentName, bool isInit, int priority, int offsetTime, int responseTime, int cycleTime, StochasticsInterface *stochastics, WorldInterface *world, const ParameterInterface *parameters, PublisherInterface *const publisher, const CallbackInterface *callbacks, AgentInterface *agent) | SensorGeometric2D |
TransformPointToLocalCoordinates(point_t point, point_t sensorPositionGlobal, double yaw) | ObjectDetectorBase | protectedvirtual
TransformPolygonToGlobalCoordinates(polygon_t polygon, point_t sensorPositionGlobal, double yaw) const | ObjectDetectorBase | protected
UpdateOutput(int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) | ObjectDetectorBase |
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SensorRecordStateImplementation Member List

This is the complete list of members for SensorRecordStateImplementation, including all inherited members.

Trigger(int time) | SensorRecordStateImplementation
UpdateInput(int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time) | SensorRecordStateImplementation
UpdateOutput(int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) | SensorRecordStateImplementation
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SignalPrioritizerImplementation Member List

This is the complete list of members for SignalPrioritizerImplementation, including all inherited members.

UpdateInput(int localLinkId, const Signal &signal, int time) override | SignalPrioritizerImplementation
UpdateOutput(int localLinkId, Signal &signal, int time) override | SignalPrioritizerImplementation
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SignalVector< DT > Member List

This is the complete list of members for SignalVector< DT >, including all inherited members.

operator std::string() const | SignalVector< DT > | inlinevirtual
value | SignalVector< DT > |
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationCommon
  • Callbacks
Callbacks Member List

This is the complete list of members for Callbacks, including all inherited members.

Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) const Callbacks virtual
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationCommon
  • ModelParameters
ModelParameters Member List

This is the complete list of members for ModelParameters, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationCommon
  • ObservationParameters
ObservationParameters Member List

This is the complete list of members for ObservationParameters, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationCommon
  • Parameters
Parameters Member List

This is the complete list of members for Parameters, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationCommon
  • SpawnPointParameters
SpawnPointParameters Member List

This is the complete list of members for SpawnPointParameters, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationCommon
  • WorldParameters
WorldParameters Member List

This is the complete list of members for WorldParameters, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationMaster
  • Configuration
  • MasterConfigImporter
MasterConfigImporter Member List

This is the complete list of members for MasterConfigImporter, including all inherited members.

Import(const QString &filename) MasterConfigImporter static
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationMaster
  • Configuration
  • SlaveConfig
SlaveConfig Member List

This is the complete list of members for SlaveConfig, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • Agent
Agent Member List

This is the complete list of members for Agent, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • AgentFactory
AgentFactory Member List

This is the complete list of members for AgentFactory, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • AgentType
AgentType Member List

This is the complete list of members for AgentType, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • Channel
Channel Member List

This is the complete list of members for Channel, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • ChannelBuffer
ChannelBuffer Member List

This is the complete list of members for ChannelBuffer, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • Component
Component Member List

This is the complete list of members for Component, including all inherited members.

AcquireOutputData(int linkId, int time) override | Component |
AddInputLink(Channel *input, int linkId) override | Component |
AddOutputLink(Channel *output, int linkId) override | Component |
CreateOutputBuffer(int linkId) override | Component |
GetAgent() const override | Component |
GetCycleTime() const override | Component |
GetImplementation() const override | Component |
GetInit() const override | Component |
GetInputLinks() override | Component |
GetName() const override | Component |
GetObservations() const override | Component |
GetOffsetTime() const override | Component |
GetOutputLinks() override | Component |
GetPriority() const override | Component |
GetResponseTime() const override | Component |
ReleaseFromLibrary() override | Component |
ReleaseOutputData(int linkId) override | Component |
SetImplementation(ModelInterface *implementation) override | Component |
SetInputBuffer(int linkId, ChannelBuffer *buffer) override | Component |
SetModelLibrary(ModelLibrary *modelLibrary) override | Component |
SetObservations(const std::map< int, ObservationModule * > &observations) override | Component | virtual
TriggerCycle(int time) override | Component |
UpdateInputData(int linkId, int time) override | Component |
~Component() override | Component | virtual
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • ComponentType
ComponentType Member List

This is the complete list of members for ComponentType, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • DataStore
DataStore Member List

This is the complete list of members for DataStore, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • DataStoreBinding
DataStoreBinding Member List

This is the complete list of members for DataStoreBinding, including all inherited members.

Instantiate() | DataStoreBinding
Unload() | DataStoreBinding
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • DataStoreLibrary
DataStoreLibrary Member List

This is the complete list of members for DataStoreLibrary, including all inherited members.

CreateDataStore(const openpass::common::RuntimeInformation &runtimeInformation) | DataStoreLibrary |
Init() | DataStoreLibrary |
ReleaseDataStore() | DataStoreLibrary |
~DataStoreLibrary() | DataStoreLibrary | virtual
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • EventDetector
EventDetector Member List

This is the complete list of members for EventDetector, including all inherited members.

GetImplementation() const | EventDetector | inline
GetLibrary() | EventDetector | inline
~EventDetector() | EventDetector | inlinevirtual
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • EventDetectorBinding
EventDetectorBinding Member List

This is the complete list of members for EventDetectorBinding, including all inherited members.

Instantiate(const std::string libraryPath, ScenarioInterface *scenario, EventNetworkInterface *eventNetwork, WorldInterface *world, StochasticsInterface *stochastics) | EventDetectorBinding
Unload() | EventDetectorBinding
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • EventDetectorLibrary
EventDetectorLibrary Member List

This is the complete list of members for EventDetectorLibrary, including all inherited members.

CreateCollisionDetector(EventNetworkInterface *eventNetwork, WorldInterface *world, StochasticsInterface *stochastics) | EventDetectorLibrary |
Init() | EventDetectorLibrary |
ReleaseEventDetector(EventDetector *eventDetector) | EventDetectorLibrary |
~EventDetectorLibrary() | EventDetectorLibrary | virtual
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • EventDetectorNetwork
EventDetectorNetwork Member List

This is the complete list of members for EventDetectorNetwork, including all inherited members.

Clear() | EventDetectorNetwork
GetEventDetectors() | EventDetectorNetwork
Instantiate(const std::string libraryPath, ScenarioInterface *scenario, EventNetworkInterface *eventNetwork, StochasticsInterface *stochastics) | EventDetectorNetwork
ResetAll() | EventDetectorNetwork
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • EventNetwork
EventNetwork Member List

This is the complete list of members for EventNetwork, including all inherited members.

AddCollision(const int agentId) override | EventNetwork | virtual
Clear() override | EventNetwork | virtual
GetEvents(const EventDefinitions::EventCategory eventCategory) override | EventNetwork | virtual
GetTrigger(const std::string &topic) const override | EventNetwork |
Initialize(RunResultInterface *runResult) override | EventNetwork | virtual
InsertEvent(SharedEvent event) override | EventNetwork | virtual
InsertTrigger(const std::string &topic, std::unique_ptr< EventInterface > event) override | EventNetwork |
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • FrameworkModuleContainer
FrameworkModuleContainer Member List

This is the complete list of members for FrameworkModuleContainer, including all inherited members.

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • Manipulator
Manipulator Member List

This is the complete list of members for Manipulator, including all inherited members.

GetImplementation() const | Manipulator | inline
GetLibrary() | Manipulator | inline
~Manipulator() | Manipulator | inlinevirtual
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • ManipulatorBinding
ManipulatorBinding Member List

This is the complete list of members for ManipulatorBinding, including all inherited members.

Instantiate(const std::string libraryPath, ScenarioInterface *scenario, EventNetworkInterface *eventNetwork, WorldInterface *world, PublisherInterface *publisher) | ManipulatorBinding
Unload() | ManipulatorBinding
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • ManipulatorLibrary
ManipulatorLibrary Member List

This is the complete list of members for ManipulatorLibrary, including all inherited members.

CreateManipulator(const openScenario::ManipulatorInformation manipulatorInformation, EventNetworkInterface *eventNetwork, WorldInterface *world) | ManipulatorLibrary |
Init() | ManipulatorLibrary |
ReleaseManipulator(Manipulator *manipulator) | ManipulatorLibrary |
~ManipulatorLibrary() | ManipulatorLibrary | virtual
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • ManipulatorNetwork
ManipulatorNetwork Member List

This is the complete list of members for ManipulatorNetwork, including all inherited members.

Clear() | ManipulatorNetwork
GetManipulators() | ManipulatorNetwork
Instantiate(const std::string libraryPath, ScenarioInterface *scenario, EventNetworkInterface *eventNetwork) | ManipulatorNetwork
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • ModelBinding
ModelBinding Member List

This is the complete list of members for ModelBinding, including all inherited members.

Instantiate(std::shared_ptr< ComponentType > componentType, std::string componentName, StochasticsInterface *stochastics, WorldInterface *world, ObservationNetworkInterface *observationNetwork, Agent *agent, EventNetworkInterface *eventNetwork, PublisherInterface *publisher) | ModelBinding
Unload() | ModelBinding
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • ModelLibrary
ModelLibrary Member List

This is the complete list of members for ModelLibrary, including all inherited members.

CreateComponent(std::shared_ptr< ComponentType > componentType, std::string componentName, const openpass::common::RuntimeInformation &runtimeInformation, StochasticsInterface *stochastics, WorldInterface *world, ObservationNetworkInterface *observationNetwork, Agent *agent, EventNetworkInterface *eventNetwork, PublisherInterface *publisher) | ModelLibrary |
Init() | ModelLibrary |
ReleaseComponent(ComponentInterface *component) | ModelLibrary |
Trigger(ModelInterface *implementation, int time) | ModelLibrary | inline
UpdateInput(ModelInterface *implementation, int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time) | ModelLibrary | inline
UpdateOutput(ModelInterface *implementation, int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) | ModelLibrary | inline
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • ObservationBinding
ObservationBinding Member List

This is the complete list of members for ObservationBinding, including all inherited members.

Instantiate(const std::string &libraryPath, const openpass::parameter::ParameterSetLevel1 &parameter, StochasticsInterface *stochastics, WorldInterface *world, SimulationSlave::EventNetworkInterface *eventNetwork, DataStoreReadInterface *dataStore) | ObservationBinding
Unload() | ObservationBinding
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • ObservationLibrary
ObservationLibrary Member List

This is the complete list of members for ObservationLibrary, including all inherited members.

CreateObservationModule(const openpass::common::RuntimeInformation &runtimeInformation, const openpass::parameter::ParameterSetLevel1 &parameters, StochasticsInterface *stochastics, WorldInterface *world, EventNetworkInterface *eventNetwork, DataStoreReadInterface *const dataStore) | ObservationLibrary
Init() | ObservationLibrary
ReleaseObservationModule(ObservationModule *observationModule) | ObservationLibrary
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • ObservationModule
ObservationModule Member List

This is the complete list of members for ObservationModule, including all inherited members.

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • ObservationNetwork
ObservationNetwork Member List

This is the complete list of members for ObservationNetwork, including all inherited members.

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • RunInstantiator
RunInstantiator Member List

This is the complete list of members for RunInstantiator, including all inherited members.

ExecuteRun() RunInstantiator
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • RunResult
RunResult Member List

This is the complete list of members for RunResult, including all inherited members.

AddCollisionId(const int agentId) RunResult
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • SpawnItemParameter
SpawnItemParameter Member List

This is the complete list of members for SpawnItemParameter, including all inherited members.

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • SpawnPoint
SpawnPoint Member List

This is the complete list of members for SpawnPoint, including all inherited members.

GetAgentFactory() | SpawnPoint | inline
GetId() const | SpawnPoint | inline
GetImplementation() | SpawnPoint | inline
GetLibrary() | SpawnPoint | inline
~SpawnPoint()=default | SpawnPoint | virtual
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • SpawnPointBinding
SpawnPointBinding Member List

This is the complete list of members for SpawnPointBinding, including all inherited members.

Instantiate(const std::string &libraryPath, const SpawnPointDependencies &dependencies) | SpawnPointBinding |
SetParameter(std::unique_ptr< ParameterInterface > parameter) | SpawnPointBinding | inline
Unload() | SpawnPointBinding |
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • SpawnPointLibrary
SpawnPointLibrary Member List

This is the complete list of members for SpawnPointLibrary, including all inherited members.

CreateSpawnPoint(const SpawnPointDependencies &dependencies) | SpawnPointLibrary |
Init() | SpawnPointLibrary |
~SpawnPointLibrary() | SpawnPointLibrary | virtual
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • SpawnPointNetwork
SpawnPointNetwork Member List

This is the complete list of members for SpawnPointNetwork, including all inherited members.

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • Stochastics
Stochastics Member List

This is the complete list of members for Stochastics, including all inherited members.

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • StochasticsBinding
StochasticsBinding Member List

This is the complete list of members for StochasticsBinding, including all inherited members.

Instantiate(std::string libraryPath) | StochasticsBinding
Unload() | StochasticsBinding
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • StochasticsLibrary
StochasticsLibrary Member List

This is the complete list of members for StochasticsLibrary, including all inherited members.

CreateStochastics() | StochasticsLibrary |
Init() | StochasticsLibrary |
ReleaseStochastics() | StochasticsLibrary |
~StochasticsLibrary() | StochasticsLibrary | virtual
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • World
World Member List

This is the complete list of members for World, including all inherited members.

Instantiate() | World | inline
isInstantiated() override | World | inline
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • WorldBinding
WorldBinding Member List

This is the complete list of members for WorldBinding, including all inherited members.

Instantiate() | WorldBinding
Unload() | WorldBinding
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationSlave
  • WorldLibrary
WorldLibrary Member List

This is the complete list of members for WorldLibrary, including all inherited members.

CreateWorld() | WorldLibrary |
Init() | WorldLibrary |
ReleaseWorld() | WorldLibrary |
~WorldLibrary() | WorldLibrary | virtual
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SimulationTimeCondition Member List

This is the complete list of members for SimulationTimeCondition, including all inherited members.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SpawnPoint_Start_Implementation Member List

This is the complete list of members for SpawnPoint_Start_Implementation, including all inherited members.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SpawnPointPreRunCommon Member List

This is the complete list of members for SpawnPointPreRunCommon, including all inherited members.

Trigger(int time) override SpawnPointPreRunCommon
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SpawnPointRuntimeCommon Member List

This is the complete list of members for SpawnPointRuntimeCommon, including all inherited members.

Trigger(int time) override SpawnPointRuntimeCommon
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SpawnPointScenario Member List

This is the complete list of members for SpawnPointScenario, including all inherited members.

Trigger(int time) override SpawnPointScenario
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SpeedActionManipulator Member List

This is the complete list of members for SpeedActionManipulator, including all inherited members.

GetCycleTime() | ManipulatorCommonBase | virtual
Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) | ManipulatorCommonBase | protected
Trigger(int time) | SpeedActionManipulator | virtual
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SpeedActionSignal Member List

This is the complete list of members for SpeedActionSignal, including all inherited members.

operator std::string() const | SpeedActionSignal | inlinevirtual
SpeedActionSignal() | SpeedActionSignal | inline
SpeedActionSignal(SpeedActionSignal &other) | SpeedActionSignal | inline
SpeedActionSignal(ComponentState componentState, const double targetSpeed, const double acceleration) | SpeedActionSignal | inline
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SteeringController Member List

This is the complete list of members for SteeringController, including all inherited members.

CalculateSteeringAngle(int time) | SteeringController |
curvatureRoadSmoothLast | SteeringController | protected
in_steeringMax | SteeringController | protected
in_steeringRatio | SteeringController | protected
in_steeringWheelAngle | SteeringController | protected
in_velocity | SteeringController | protected
in_wheelBase | SteeringController | protected
meanCurvatureToFarPointSmoothLast | SteeringController | protected
meanCurvatureToNearPointSmoothLast | SteeringController | protected
RadiantToDegree | SteeringController | protected
SetLateralInput(const LateralSignal &lateralSignal) | SteeringController | inline
SetVehicleParameter(const double &steeringRatio, const double &maximumSteeringWheelAngleAmplitude, const double &wheelbase) | SteeringController | inline
SetVelocityAndSteeringWheelAngle(const double &velocity, const double &steeringWheelAngle) | SteeringController | inline
tAverage | SteeringController | protected
timeLast | SteeringController | protected
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SteeringSignal Member List

This is the complete list of members for SteeringSignal, including all inherited members.

operator std::string() const | SteeringSignal | inlinevirtual
SteeringSignal(ComponentState componentState, double steeringWheelAngle) | SteeringSignal | inline
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

StochasticsImplementation Member List

This is the complete list of members for StochasticsImplementation, including all inherited members.

Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) StochasticsImplementation inlineprotected
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

Stream< T > Member List

This is the complete list of members for Stream< T >, including all inherited members.

Contains(const T &element) const | Stream< T >
GetElementAndSByPosition(double position) const | Stream< T >
GetPositionByElementAndS(const T &element, double sCoordinate) const | Stream< T >
Reverse() const | Stream< T >
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

Tire Member List

This is the complete list of members for Tire, including all inherited members.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

TrafficHelperFunctions Member List

This is the complete list of members for TrafficHelperFunctions, including all inherited members.

CalculateNetTimeGap(double vRear, double netDistance) | TrafficHelperFunctions | inlinestatic
ValueInBounds(const T &low, const T &value, const T &high) | TrafficHelperFunctions | inlinestatic
WillCrash(double sDelta, double vEgo, double assumedBrakeAccelerationEgo, double vFront, double aFront, double assumedTtb) | TrafficHelperFunctions | inlinestatic
WillCrashDuringBrake(double sDelta, double vEgo, double aEgo, double vFront, double aFront) | TrafficHelperFunctions | inlinestatic
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

TrafficObjectAdapter Member List

This is the complete list of members for TrafficObjectAdapter, including all inherited members.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

TrajectoryFollowerImplementation Member List

This is the complete list of members for TrajectoryFollowerImplementation, including all inherited members.

CalculateNextTimestep() | TrajectoryFollowerImplementation
Trigger(int time) override | TrajectoryFollowerImplementation
UpdateInput(int localLinkId, const std::shared_ptr< SignalInterface const > &data, int time) override | TrajectoryFollowerImplementation
UpdateOutput(int localLinkId, std::shared_ptr< SignalInterface const > &data, int time) override | TrajectoryFollowerImplementation
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

TrajectoryManipulator Member List

This is the complete list of members for TrajectoryManipulator, including all inherited members.

GetCycleTime() | ManipulatorCommonBase | virtual
Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) | ManipulatorCommonBase | protected
Trigger(int time) override | TrajectoryManipulator | virtual
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

TrajectorySignal Member List

This is the complete list of members for TrajectorySignal, including all inherited members.

operator std::string() const | TrajectorySignal | inlinevirtual
TrajectorySignal() | TrajectorySignal | inline
TrajectorySignal(TrajectorySignal &other) | TrajectorySignal | inline
TrajectorySignal(ComponentState componentState, openScenario::Trajectory trajectory) | TrajectorySignal | inline
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

TtcCalculations Member List

This is the complete list of members for TtcCalculations, including all inherited members.

CalculateObjectTTC(const AgentInterface &agent, const WorldObjectInterface &detectedObject, double maxTtc, double collisionDetectionLongitudinalBoundary, double collisionDetectionLateralBoundary, double cycleTime) TtcCalculations inlinestatic
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

VehicleCompToCompCtrlSignal Member List

This is the complete list of members for VehicleCompToCompCtrlSignal, including all inherited members.

AgentCompToCompCtrlSignal(const ComponentType componentType, const std::string &agentComponentName, const ComponentState currentState, const std::vector< ComponentWarningInformation > &warnings={}) | AgentCompToCompCtrlSignal | inline
GetAgentComponentName() const | AgentCompToCompCtrlSignal | inline
GetComponentType() const | AgentCompToCompCtrlSignal | inline
GetComponentWarnings() const | AgentCompToCompCtrlSignal | inline
GetCurrentState() const | AgentCompToCompCtrlSignal | inline
operator std::string() const | AgentCompToCompCtrlSignal | inlinevirtual
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

VehicleSimpleTT Member List

This is the complete list of members for VehicleSimpleTT, including all inherited members.

DriveTrain(double throttlePedal, double brakePedal, std::vector< double > brakeSuperpose) | VehicleSimpleTT
ForceGlobal() | VehicleSimpleTT
ForceLocal(double timeStep, double, std::vector< double > forceVertical) | VehicleSimpleTT
forceTotalXY | VehicleSimpleTT
InitSetEngine(double weight, double P_engine, double T_brakeLimit) | VehicleSimpleTT
InitSetGeometry(double x_wheelbase, double x_COG, double y_track, double y_COG) | VehicleSimpleTT
InitSetTire(double vel, double mu_tire_max, double mu_tire_slide, double s_max, double r_tire, double frictionScaleRoll) | VehicleSimpleTT
momentTotalZ | VehicleSimpleTT
SetVelocity(Common::Vector2d, const double) | VehicleSimpleTT
UpdatePosition(double) | VehicleSimpleTT
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • World
  • Localization
  • Localizer
Localizer Member List

This is the complete list of members for Localizer, including all inherited members.

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • World
  • Localization
  • PointQuery
PointQuery Member List

This is the complete list of members for PointQuery, including all inherited members.

IsWithin(const OWL::Primitive::LaneGeometryElement &element, const Common::Vector2d &point) PointQuery static
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • World
  • Localization
  • Result
Result Member List

This is the complete list of members for Result, including all inherited members.

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • World
  • Localization
  • WorldToRoadCoordinateConverter
WorldToRoadCoordinateConverter Member List

This is the complete list of members for WorldToRoadCoordinateConverter, including all inherited members.

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

World_Basic_Implementation Member List

This is the complete list of members for World_Basic_Implementation, including all inherited members.

Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) World_Basic_Implementation inlineprotected
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

WorldAnalyzer Member List

This is the complete list of members for WorldAnalyzer, including all inherited members.

AreSpawningCoordinatesValid(const RoadId &roadId, const LaneId laneId, const SPosition sPosition, const double offset, const VehicleModelParameters &vehicleModelParameters) const | WorldAnalyzer
CalculateSpawnVelocityToPreventCrashing(const RoadId &roadId, const LaneId laneId, const double intendedSpawnPosition, const double agentFrontLength, const double agentRearLength, const double intendedVelocity) const | WorldAnalyzer
GetNextSpawnPosition(const RoadId &roadId, const LaneId laneId, const Range &bounds, const double agentFrontLength, const double agentRearLength, const double intendedVelocity, const double gapInSeconds, const Direction direction) const | WorldAnalyzer
GetRightLaneCount(const RoadId &roadId, const LaneId &laneId, const double sPosition) const | WorldAnalyzer
GetValidLaneSpawningRanges(const RoadId &roadId, const LaneId laneId, const SPosition sStart, const SPosition sEnd) const | WorldAnalyzer
SpawnWillCauseCrash(const RoadId &roadId, const LaneId laneId, const SPosition sPosition, const double agentFrontLength, const double agentRearLength, const double velocity, const Direction direction) const | WorldAnalyzer
ValidateRoadIdInDirection(const RoadId &roadId, const LaneId laneId) const | WorldAnalyzer
ValidMinimumSpawningDistanceToObjectInFront(const RoadId &roadId, const LaneId laneId, const SPosition sPosition, const VehicleModelParameters &vehicleModelParameters) const | WorldAnalyzer
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

WorldDataQuery Member List

This is the complete list of members for WorldDataQuery, including all inherited members.

CreateLaneMultiStream(const RoadGraph &roadGraph, RoadGraphVertex start, OWL::OdId startLaneId, double startDistance) const | WorldDataQuery |
CreateLaneStream(const std::vector< RouteElement > &route, std::string startRoadId, OWL::OdId startLaneId, double startDistance) const | WorldDataQuery |
CreateRoadMultiStream(const RoadGraph &roadGraph, RoadGraphVertex start) const | WorldDataQuery |
CreateRoadStream(const std::vector< RouteElement > &route) const | WorldDataQuery |
GetDistanceBetweenObjects(const RoadMultiStream &roadStream, const ObjectPosition &objectPos, const std::optional< double > objectReferenceS, const ObjectPosition &targetObjectPos) const | WorldDataQuery |
GetDistanceToEndOfLane(const LaneMultiStream &laneStream, double initialSearchPosition, double maxSearchLength, const std::vector< LaneType > &requestedLaneTypes) const | WorldDataQuery |
GetDistanceUntilObjectEntersConnector(const ObjectPosition position, std::string intersectingConnectorId, int intersectingLaneId, std::string ownConnectorId) const | WorldDataQuery |
GetDistanceUntilObjectLeavesConnector(const ObjectPosition position, std::string intersectingConnectorId, int intersectingLaneId, std::string ownConnectorId) const | WorldDataQuery |
GetIntersectingConnections(std::string connectingRoadId) const | WorldDataQuery |
GetJunctionByOdId(const std::string &odJunctionId) const | WorldDataQuery |
GetJunctionOfConnector(const std::string &connectingRoadId) const | WorldDataQuery |
GetLaneByOdId(std::string odRoadId, OWL::OdId odLaneId, double distance) const | WorldDataQuery |
GetLaneMarkings(const LaneMultiStream &laneStream, double startDistance, double range, Side side) const | WorldDataQuery |
GetLanesOfLaneTypeAtDistance(std::string roadId, double distance, std::list< LaneType > requestedLaneTypes) const | WorldDataQuery |
GetMovingObjectsInRangeOfJunctionConnection(std::string connectingRoadId, double range) const | WorldDataQuery |
GetObjectsOfTypeInRange(const LaneStream &laneStream, const double startDistance, const double endDistance) const | WorldDataQuery | inline
GetObjectsOfTypeInRange(const LaneMultiStream &laneStream, const double startDistance, const double endDistance) const | WorldDataQuery | inline
GetObstruction(const LaneMultiStream &laneStream, double tCoordinate, const ObjectPosition &otherPosition, const std::vector< Common::Vector2d > &objectCorners, const Common::Vector2d &mainLaneLocator) const | WorldDataQuery |
GetPositionByDistanceAndLane(const OWL::Interfaces::Lane &lane, double distanceOnLane, double offset) const | WorldDataQuery |
GetPrioritiesOnJunction(std::string junctionId) const | WorldDataQuery |
GetRelativeJunctions(const RoadMultiStream &roadStream, double startPosition, double range) const | WorldDataQuery |
GetRelativeLanes(const RoadMultiStream &roadStream, double startPosition, int startLaneId, double range) const | WorldDataQuery |
GetRoadByOdId(std::string odRoadId) const | WorldDataQuery |
GetRoadMarkingsInRange(LaneMultiStream laneStream, double startDistance, double searchRange) const | WorldDataQuery |
GetSectionByDistance(std::string odRoadId, double distance) const | WorldDataQuery |
GetTrafficSignsInRange(LaneMultiStream laneStream, double startDistance, double searchRange) const | WorldDataQuery |
IsSValidOnLane(std::string roadId, OWL::OdId laneId, double distance) | WorldDataQuery |
ObjectIsOfTypeAndWithinRange(const OWL::Interfaces::WorldObject *const worldObject, const double minS, const double maxS, const LaneStreamInfo &lane) const | WorldDataQuery | inline
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

WorldImplementation Member List

This is the complete list of members for WorldImplementation, including all inherited members.

Log(CbkLogLevel logLevel, const char *file, int line, const std::string &message) WorldImplementation inlineprotected
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

WorldObjectAdapter Member List

This is the complete list of members for WorldObjectAdapter, including all inherited members.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

WorldParameter Member List

This is the complete list of members for WorldParameter, including all inherited members.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

externalParameter< ValueType > Member List

This is the complete list of members for externalParameter< ValueType >, including all inherited members.

externalParameter(int id, std::map< int, externalParameter< ValueType > * > *externalParameterMap) | externalParameter< ValueType > | inline
GetId() | externalParameter< ValueType > | inline
GetValue() | externalParameter< ValueType > | inline
SetValue(ValueType value) | externalParameter< ValueType > | inline
~externalParameter()=default | externalParameter< ValueType > | virtual
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • ByEntityCondition
ByEntityCondition Member List

This is the complete list of members for ByEntityCondition, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • ByValueCondition
ByValueCondition Member List

This is the complete list of members for ByValueCondition, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • ReachPositionCondition
ReachPositionCondition Member List

This is the complete list of members for ReachPositionCondition, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • RelativeSpeedCondition
RelativeSpeedCondition Member List

This is the complete list of members for RelativeSpeedCondition, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • ScenarioImporterHelper
ScenarioImporterHelper Member List

This is the complete list of members for ScenarioImporterHelper, including all inherited members.

ImportGlobalAction(QDomElement globalActionElement, Parameters &parameters) | ScenarioImporterHelper | static
ImportPosition(QDomElement root, Parameters &parameters) | ScenarioImporterHelper | static
ImportPrivateAction(QDomElement privateActionElement, Parameters &parameters, const std::string catalogPath="") | ScenarioImporterHelper | static
ImportUserDefinedAction(QDomElement userDefinedActionElement) | ScenarioImporterHelper | static
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • SimulationTimeCondition
SimulationTimeCondition Member List

This is the complete list of members for SimulationTimeCondition, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • TimeHeadwayCondition
TimeHeadwayCondition Member List

This is the complete list of members for TimeHeadwayCondition, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • TimeToCollisionCondition
TimeToCollisionCondition Member List

This is the complete list of members for TimeToCollisionCondition, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • transformation
  • TransformerBase
TransformerBase< T, Signal, TriggeringEvent > Member List

This is the complete list of members for TransformerBase< T, Signal, TriggeringEvent >, including all inherited members.

Transform(const SimulationSlave::EventNetworkInterface *eventNetwork, WorldInterface *world, AgentInterface *agent, int cycleTime) TransformerBase< T, Signal, TriggeringEvent > inlinestatic
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • core
  • Directories
Directories Member List

This is the complete list of members for Directories, including all inherited members.

Concat(const std::string &path, const std::string &file) | Directories | static
Concat(const std::string &path, const std::vector< std::string > &filenames) | Directories | static
configurationDir | Directories |
IsRelative(const std::string &path) | Directories | static
libraryDir | Directories |
outputDir | Directories |
StripFile(const std::string &path) | Directories | static
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • events
  • BasicEvent
BasicEvent< EventCategory > Member List

This is the complete list of members for BasicEvent< EventCategory >, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • events
  • CollisionEvent
CollisionEvent Member List

This is the complete list of members for CollisionEvent, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • events
  • ComponentStateChangeEvent
ComponentStateChangeEvent Member List

This is the complete list of members for ComponentStateChangeEvent, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • events
  • LaneChangeEvent
LaneChangeEvent Member List

This is the complete list of members for LaneChangeEvent, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • events
  • SpeedActionEvent
SpeedActionEvent Member List

This is the complete list of members for SpeedActionEvent, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • events
  • TrajectoryEvent
TrajectoryEvent Member List

This is the complete list of members for TrajectoryEvent, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • parameter
  • ExponentialDistribution
ExponentialDistribution Member List

This is the complete list of members for ExponentialDistribution, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • parameter
  • GammaDistribution
GammaDistribution Member List

This is the complete list of members for GammaDistribution, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • parameter
  • LogNormalDistribution
LogNormalDistribution Member List

This is the complete list of members for LogNormalDistribution, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • parameter
  • NormalDistribution
NormalDistribution Member List

This is the complete list of members for NormalDistribution, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • parameter
  • UniformDistribution
UniformDistribution Member List

This is the complete list of members for UniformDistribution, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • publisher
  • AgentDataPublisher
AgentDataPublisher Member List

This is the complete list of members for AgentDataPublisher, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • publisher
  • CoreDataPublisher
CoreDataPublisher Member List

This is the complete list of members for CoreDataPublisher, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • publisher
  • LogEntry
LogEntry Member List

This is the complete list of members for LogEntry, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • publisher
  • LogEntryBase
LogEntryBase Member List

This is the complete list of members for LogEntryBase, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • scheduling
  • AgentParser
AgentParser Member List

This is the complete list of members for AgentParser, including all inherited members.

Parse(const SimulationSlave::Agent &agent) AgentParser
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • scheduling
  • EventDetectorTaskItem
EventDetectorTaskItem Member List

This is the complete list of members for EventDetectorTaskItem, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • scheduling
  • ManipulatorTaskItem
ManipulatorTaskItem Member List

This is the complete list of members for ManipulatorTaskItem, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • scheduling
  • ObservationTaskItem
ObservationTaskItem Member List

This is the complete list of members for ObservationTaskItem, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • scheduling
  • Scheduler
Scheduler Member List

This is the complete list of members for Scheduler, including all inherited members.

Run(int startTime, int endTime, SimulationSlave::RunResult &runResult, SimulationSlave::EventNetworkInterface &eventNetwork) | Scheduler
ScheduleAgentTasks(SchedulerTasks &taskList, const SimulationSlave::Agent &agent) | Scheduler
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • scheduling
  • SchedulerTasks
SchedulerTasks Member List

This is the complete list of members for SchedulerTasks, including all inherited members.

ConsumeNonRecurringAgentTasks(int timestamp) | SchedulerTasks
DeleteAgentTasks(std::list< int > &agents) | SchedulerTasks
DeleteAgentTasks(int agentId) | SchedulerTasks
GetBootstrapTasks() | SchedulerTasks
GetFinalizeTasks() | SchedulerTasks
GetNextTimestamp(int timestamp) | SchedulerTasks
GetRecurringAgentTasks(int timestamp) | SchedulerTasks
GetSpawningTasks(int timestamp) | SchedulerTasks
GetTasks(int timestamp) | SchedulerTasks
PullNonRecurringTasks(int timestamp, std::list< TaskItem > &currentTasks) | SchedulerTasks
ScheduleNewNonRecurringTasks(std::list< TaskItem > newTasks) | SchedulerTasks
ScheduleNewRecurringTasks(std::list< TaskItem > newTasks) | SchedulerTasks
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • scheduling
  • SpawningTaskItem
SpawningTaskItem Member List

This is the complete list of members for SpawningTaskItem, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • scheduling
  • SyncWorldTaskItem
SyncWorldTaskItem Member List

This is the complete list of members for SyncWorldTaskItem, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • scheduling
  • TaskBuilder
TaskBuilder Member List

This is the complete list of members for TaskBuilder, including all inherited members.

CreateBootstrapTasks() override | TaskBuilder | virtual
CreateFinalizeTasks() override | TaskBuilder | virtual
CreateSpawningTasks() override | TaskBuilder | virtual
CreateSynchronizeTasks() override | TaskBuilder | virtual
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • scheduling
  • TaskBuilderInterface
TaskBuilderInterface Member List

This is the complete list of members for TaskBuilderInterface, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • scheduling
  • TaskItem
TaskItem Member List

This is the complete list of members for TaskItem, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • scheduling
  • Tasks
Tasks Member List

This is the complete list of members for Tasks, including all inherited members.

AddTask(const TaskItem &newTask) | Tasks
DeleteTasks(int agentId) | Tasks
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • scheduling
  • TimeKeeper
TimeKeeper Member List

This is the complete list of members for TimeKeeper, including all inherited members.

Now() noexcept | TimeKeeper | inlinestatic
Now() noexcept | TimeKeeper | inlinestatic
time | TimeKeeper | inlineprotectedstatic
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • scheduling
  • TriggerTaskItem
TriggerTaskItem Member List

This is the complete list of members for TriggerTaskItem, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • scheduling
  • UpdateGlobalDrivingViewTaskItem
UpdateGlobalDrivingViewTaskItem Member List

This is the complete list of members for UpdateGlobalDrivingViewTaskItem, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • scheduling
  • UpdateTaskItem
UpdateTaskItem Member List

This is the complete list of members for UpdateTaskItem, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Action_LongitudinalDriver/src Directory Reference

  • src
  • components
  • Action_LongitudinalDriver
  • src
src Directory Reference
Directory dependency graph for src:

Files

file | longitudinalDriver.cpp
file | longitudinalDriver.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules/Spawners/SpawnPoint_Start Directory Reference

  • src
  • core
  • slave
  • modules
  • Spawners
  • SpawnPoint_Start
SpawnPoint_Start Directory Reference
Directory dependency graph for SpawnPoint_Start:

Files

file | spawnpoint_start.cpp
This file contains the DLL wrapper.
file | spawnpoint_start.h
Interface-file for class Spawnpoint_Start.
file | spawnpoint_start_global.h
This file contains DLL export declarations.
file | spawnpoint_start_implementation.cpp
file | spawnpoint_start_implementation.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules/EventDetector/Conditions Directory Reference

  • src
  • core
  • slave
  • modules
  • EventDetector
  • Conditions
Conditions Directory Reference
Directory dependency graph for Conditions:

Files

file | ConditionCommonBase.h
file | ReachPositionCondition.h
file | SimulationTimeCondition.h
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Algorithm_FmuWrapper/src/FmiImporter/src/Common Directory Reference

  • src
  • components
  • Algorithm_FmuWrapper
  • src
  • FmiImporter
  • src
  • Common
Common Directory Reference
Directory dependency graph for Common:

Files

file fmuChecker.c
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/master/importer Directory Reference

  • src
  • core
  • master
  • importer
importer Directory Reference
Directory dependency graph for importer:

Files

file | masterConfigImporter.cpp
file | masterConfigImporter.h
This file contains the importer of the master configuration.
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules/BasicDataStore Directory Reference

  • src
  • core
  • slave
  • modules
  • BasicDataStore
BasicDataStore Directory Reference
Directory dependency graph for BasicDataStore:

Files

file | basicDataStore.cpp
file | basicDataStore.h
This file provides the exported methods.
file | basicDataStoreGlobal.h
This file contains DLL export declarations.
file | basicDataStoreImplementation.cpp
file | basicDataStoreImplementation.h
Stores data sent by publishers and provides acces to this data for observers.
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/bindings Directory Reference

  • src
  • core
  • slave
  • bindings
bindings Directory Reference
Directory dependency graph for bindings:

Files

file | dataStore.h
This file provides the interface to a data store implementation.
file | dataStoreBinding.cpp
file | dataStoreBinding.h
This file contains the interface to the dataStore library.
file | dataStoreLibrary.cpp
file | dataStoreLibrary.h
This file contains the internal representation of the library of a dataStoreInterface.
file | eventDetectorBinding.cpp
file | eventDetectorBinding.h
This file contains the interface to the event detector libraries.
file | eventDetectorLibrary.cpp
file | eventDetectorLibrary.h
This file contains the internal representation of the library of a event detector.
file | manipulatorBinding.cpp
file | manipulatorBinding.h
This file contains the interface to the event detector libraries.
file | manipulatorLibrary.cpp
file | manipulatorLibrary.h
This file contains the internal representation of the library of a manipulator.
file | modelBinding.cpp
file | modelBinding.h
This file contains the interface to the model libraries.
file | modelLibrary.cpp
file | modelLibrary.h
This file contains the internal representation of the library of a model.
file | observationBinding.cpp
file | observationBinding.h
This file contains the interface to the observation module libraries.
file | observationLibrary.cpp
file | observationLibrary.h
This file contains the internal representation of the library of an observation module.
file | spawnPointBinding.cpp
file | spawnPointBinding.h
This file contains the interface to the spawn point libraries.
file | spawnPointLibrary.cpp
file | spawnPointLibrary.h
This file contains the internal representation of the library of a spawn point.
file | stochastics.h
file | stochasticsBinding.cpp
file | stochasticsBinding.h
This file contains the interface to the stochastics library.
file | stochasticsLibrary.cpp
file | stochasticsLibrary.h
This file contains the internal representation of the library of a stochasticsInterface.
file | world.h
file | worldBinding.cpp
file | worldBinding.h
This file contains the interface to the world library.
file | worldLibrary.cpp
file | worldLibrary.h
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules/Observation_LogAgent Directory Reference

  • src
  • core
  • slave
  • modules
  • Observation_LogAgent
Observation_LogAgent Directory Reference
Directory dependency graph for Observation_LogAgent:

Files

file | observation_log.cpp
file | observation_log.h
file | observation_LogGlobal.h
file | observation_logImplementation.cpp
file | observation_logImplementation.h
file | observationCyclics.cpp
file | observationCyclics.h
file | observationFileHandler.cpp
file | observationFileHandler.h
file | observationLogConstants.h
file | runStatistic.cpp
file | runStatistic.h
file | runStatisticCalculation.cpp
file | runStatisticCalculation.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Algorithm_AEB/src Directory Reference

  • src
  • components
  • Algorithm_AEB
  • src
src Directory Reference
Directory dependency graph for src:

Files

file | autonomousEmergencyBraking.cpp
file | autonomousEmergencyBraking.h
file | boundingBoxCalculation.cpp
file | boundingBoxCalculation.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Sensor_RecordState/src Directory Reference

  • src
  • components
  • Sensor_RecordState
  • src
src Directory Reference
Directory dependency graph for src:

Files

file | sensor_recordStateImpl.cpp
file | sensor_recordStateImpl.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Dynamics_CollisionPostCrash/src Directory Reference

  • src
  • components
  • Dynamics_CollisionPostCrash
  • src
src Directory Reference
Directory dependency graph for src:

Files

file | collisionPostCrash.cpp
file | collisionPostCrash.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components Directory Reference

  • src
  • components
components Directory Reference
Directory dependency graph for components:

Directories

directory | Action_BrakeLight_Basic
directory | Action_LongitudinalDriver
directory | Action_SecondaryDriverTasks
directory | AgentUpdater
directory | Algorithm_AEB
directory | Algorithm_CruiseControlByDistance
directory | Algorithm_FmuWrapper
directory | Algorithm_Lateral
directory | Algorithm_Longitudinal
directory | AlgorithmAFDM
directory | ComponentController
directory | Dynamics_Collision
directory | Dynamics_CollisionPostCrash
directory | Dynamics_Longitudinal_Basic
directory | Dynamics_RegularDriving
directory | Dynamics_RegularTwoTrack
directory | Dynamics_TF
directory | LimiterAccVehComp
directory | OpenScenarioActions
directory | Parameters_Vehicle
directory | Sensor_Distance
directory | Sensor_Driver
directory | Sensor_OSI
directory | Sensor_RecordState
directory | SensorFusion_OSI
directory | SignalPrioritizer
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/SensorFusion_OSI/src Directory Reference

  • src
  • components
  • SensorFusion_OSI
  • src
src Directory Reference
Directory dependency graph for src:

Files

file | sensorFusionImpl.cpp
file | sensorFusionImpl.h
file | sensorFusionQuery.h
This file provides methods to retrieve structured basic information from sensorData provided by SensorFusionImplementation::Output().
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Algorithm_Longitudinal/src Directory Reference

  • src
  • components
  • Algorithm_Longitudinal
  • src
src Directory Reference
Directory dependency graph for src:

Files

file | algo_longImpl.cpp
file | algo_longImpl.h
file | longCalcs.cpp
file | longCalcs.h
This file contains the calculations.
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules/Manipulator/srcCollisionPostCrash Directory Reference

  • src
  • core
  • slave
  • modules
  • Manipulator
  • srcCollisionPostCrash
srcCollisionPostCrash Directory Reference
Directory dependency graph for srcCollisionPostCrash:

Files

file | collisionDetection_Impact_implementation.cpp
file | collisionDetection_Impact_implementation.h
file | polygon.cpp
file | polygon.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Sensor_RecordState Directory Reference

  • src
  • components
  • Sensor_RecordState
Sensor_RecordState Directory Reference
Directory dependency graph for Sensor_RecordState:

Directories

directory src

Files

file | sensor_recordState.cpp
file | sensor_recordState.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Algorithm_FmuWrapper/src/FmiImporter/src/FMI2 Directory Reference

  • src
  • components
  • Algorithm_FmuWrapper
  • src
  • FmiImporter
  • src
  • FMI2
FMI2 Directory Reference
Directory dependency graph for FMI2:

Files

file | fmi2_check.c
file | fmi2_cs_sim.c
file | fmi2_me_sim.c
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/framework/scheduler Directory Reference

  • src
  • core
  • slave
  • framework
  • scheduler
scheduler Directory Reference
Directory dependency graph for scheduler:

Files

file | agentParser.cpp
file | agentParser.h
The Parser generates all component tasks for an given agent.
file | runResult.cpp
file | runResult.h
This file represents the result of a simulation run.
file | scheduler.cpp
file | scheduler.h
file | schedulerTasks.cpp
file | schedulerTasks.h
This file contains the generic schedule managing component.
file | taskBuilder.cpp
file | taskBuilder.h
This file contains the logic of unchangeable tasks.
file | tasks.cpp
file | tasks.h
This file contains TaskItem and Tasks.
file | timeKeeper.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules/Spawners/PreRunCommon Directory Reference

  • src
  • core
  • slave
  • modules
  • Spawners
  • PreRunCommon
PreRunCommon Directory Reference
Directory dependency graph for PreRunCommon:

Files

file | SpawnPointPreRunCommon.cpp
file | SpawnPointPreRunCommon.h
file | SpawnPointPreRunCommonDefinitions.h
file | SpawnPointPreRunCommonExport.cpp
file | SpawnPointPreRunCommonExport.h
file | SpawnPointPreRunCommonGlobal.h
file | SpawnPointPreRunCommonParameterExtractor.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Dynamics_RegularDriving/src Directory Reference

  • src
  • components
  • Dynamics_RegularDriving
  • src
src Directory Reference
Directory dependency graph for src:

Files

file | regularDriving.cpp
file | regularDriving.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/common/cephes Directory Reference

  • src
  • core
  • common
  • cephes
cephes Directory Reference
Directory dependency graph for cephes:

Files

file | const.c
file | fresnl.c
file | mconf.h
file | polevl.c
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Parameters_Vehicle Directory Reference

  • src
  • components
  • Parameters_Vehicle
Parameters_Vehicle Directory Reference
Directory dependency graph for Parameters_Vehicle:

Directories

directory src

Files

file | parameters_vehicle.cpp
file | parameters_vehicle.h
This file provides the exported methods.
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules/Observation_Log Directory Reference

  • src
  • core
  • slave
  • modules
  • Observation_Log
Observation_Log Directory Reference
Directory dependency graph for Observation_Log:

Files

file | observation_log.cpp
file | observation_log.h
file | observation_LogGlobal.h
file | observation_logImplementation.cpp
file | observation_logImplementation.h
file | observationCyclics.cpp
file | observationCyclics.h
file | observationFileHandler.cpp
file | observationFileHandler.h
file | observationLogConstants.h
file | runStatistic.cpp
file | runStatistic.h
file | runStatisticCalculation.cpp
file | runStatisticCalculation.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules/World_OSI/OWL/fakes Directory Reference

  • src
  • core
  • slave
  • modules
  • World_OSI
  • OWL
  • fakes
fakes Directory Reference
Directory dependency graph for fakes:

Files

file | fakeLane.h
file | fakeLaneBoundary.h
file | fakeLaneManager.h
file | fakeMovingObject.h
file | fakeOWLJunction.h
file | fakeRoad.h
file | fakeRoadMarking.h
file | fakeSection.h
file | fakeTrafficSign.h
file | fakeWorldData.h
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modelElements Directory Reference

  • src
  • core
  • slave
  • modelElements
modelElements Directory Reference
Directory dependency graph for modelElements:

Files

file | agent.cpp
file | agent.h
This file contains the internal representation of an agent instance during a simulation run.
file | agentBlueprint.cpp
file | agentBlueprint.h
This file stores all information which is necessary to instantiate an agent.
file | agentType.cpp
file | agentType.h
This file contains the internal representation of an agent type as given by the configuration.
file | channel.cpp
file | channel.h
This file contains the internal representation of a channel instance during a simulation run.
file | channelBuffer.h
This file contains a buffer which stores the data of a channel.
file | component.cpp
file | component.h
This file contains the internal representation of a model component during a simulation run.
file | componentType.cpp
file | componentType.h
This file contains the internal representation of the type of a model component as given by the configuration.
file | dataStore.cpp
file | eventDetector.h
This file contains the internal representation of the a event detector.
file | eventDetectorNetwork.cpp
file | eventDetectorNetwork.h
file | manipulator.h
This file contains the internal representation of the manipulator.
file | manipulatorNetwork.cpp
file | manipulatorNetwork.h
file | spawnItemParameter.h
This file contains the internal representation of parameter set of a newly created agent spawn item.
file | spawnPoint.h
This file contains the internal representation of the a spawn point.
file | spawnPointNetwork.cpp
file | spawnPointNetwork.h
This file implements a container of the spawn points during a simulation run.
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Sensor_OSI Directory Reference

  • src
  • components
  • Sensor_OSI
Sensor_OSI Directory Reference
Directory dependency graph for Sensor_OSI:

Directories

directory src

Files

file | sensorOSI.cpp
file | sensorOSI.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Algorithm_FmuWrapper/src Directory Reference

  • src
  • components
  • Algorithm_FmuWrapper
  • src
src Directory Reference
Directory dependency graph for src:

Directories

directory FmiImporter

Files

file | fmuWrapper.cpp
file | fmuWrapper.h
file | OsmpFmuHandler.cpp
file | OsmpFmuHandler.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Sensor_Driver/src/Signals Directory Reference

  • src
  • components
  • Sensor_Driver
  • src
  • Signals
Signals Directory Reference
Directory dependency graph for Signals:

Files

file | sensor_driverDefinitions.h
This file contains several classes for sensor driver purposes.
file | sensorDriverSignal.h
This file contains all functions for class SensorDriverSignal.
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/common Directory Reference

  • src
  • core
  • common
common Directory Reference
Directory dependency graph for common:

Directories

directory | cephes
directory | cephesMIT

Files

file | callbacks.cpp
file | callbacks.h
This file contains the implementation of the model callbacks to interact with the framework.
file | coreDataPublisher.cpp
file | coreDataPublisher.h
file | log.cpp
file | log.h
This file contains the implementation of the debug logging.
file | parameters.cpp
file | parameters.h
This file contains the interface of the internal representation of configuration parameters.
file | timeKeeper.h
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Action_SecondaryDriverTasks/src Directory Reference

  • src
  • components
  • Action_SecondaryDriverTasks
  • src
src Directory Reference
Directory dependency graph for src:

Files

file | secondaryDriverTasks.cpp
file | secondaryDriverTasks.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Sensor_OSI/src Directory Reference

  • src
  • components
  • Sensor_OSI
  • src
src Directory Reference
Directory dependency graph for src:

Files

file | objectDetectorBase.cpp
file | objectDetectorBase.h
file | sensorGeometric2D.cpp
file | sensorGeometric2D.h
This file models a sensor which only detects agents in a 2D area (x/y) in front of the agent.
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules/World_OSI/OWL Directory Reference

  • src
  • core
  • slave
  • modules
  • World_OSI
  • OWL
OWL Directory Reference
Directory dependency graph for OWL:

Directories

directory fakes

Files

file | DataTypes.cpp
file | DataTypes.h
This file provides the basic datatypes of the osi world layer (OWL)
file | LaneGeometryElement.h
file | LaneGeometryJoint.h
file | OpenDriveTypeMapper.cpp
This file provides conversions from OpenDRIVE constants to OSI constants.
file | OpenDriveTypeMapper.h
This file provides conversions from OpenDRIVE constants to OSI constants.
file | Primitives.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules/Spawners/RuntimeCommon Directory Reference

  • src
  • core
  • slave
  • modules
  • Spawners
  • RuntimeCommon
RuntimeCommon Directory Reference
Directory dependency graph for RuntimeCommon:

Files

file | SpawnPointRuntimeCommon.cpp
file | SpawnPointRuntimeCommon.h
file | SpawnPointRuntimeCommonDefinitions.h
file | SpawnPointRuntimeCommonExport.cpp
file | SpawnPointRuntimeCommonExport.h
file | SpawnPointRuntimeCommonGlobal.h
file | SpawnPointRuntimeCommonParameterExtractor.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules/World_OSI/RoutePlanning Directory Reference

  • src
  • core
  • slave
  • modules
  • World_OSI
  • RoutePlanning
RoutePlanning Directory Reference
Directory dependency graph for RoutePlanning:

Files

file RouteCalculation.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Algorithm_FmuWrapper/src/FmiImporter Directory Reference

  • src
  • components
  • Algorithm_FmuWrapper
  • src
  • FmiImporter
FmiImporter Directory Reference
Directory dependency graph for FmiImporter:

Directories

directory | include
directory | src
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Action_LongitudinalDriver Directory Reference

  • src
  • components
  • Action_LongitudinalDriver
Action_LongitudinalDriver Directory Reference
Directory dependency graph for Action_LongitudinalDriver:

Directories

directory src

Files

file | action_longitudinalDriver.cpp
file | action_longitudinalDriver.h
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/AlgorithmAFDM/src Directory Reference

  • src
  • components
  • AlgorithmAFDM
  • src
src Directory Reference
Directory dependency graph for src:

Files

file | followingDriverModel.cpp
file | followingDriverModel.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/SensorFusion_OSI Directory Reference

  • src
  • components
  • SensorFusion_OSI
SensorFusion_OSI Directory Reference
Directory dependency graph for SensorFusion_OSI:

Directories

directory src

Files

file | sensorFusion.cpp
file | sensorFusion.h
This file provides the exported methods.
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Algorithm_AEB Directory Reference

  • src
  • components
  • Algorithm_AEB
Algorithm_AEB Directory Reference
Directory dependency graph for Algorithm_AEB:

Directories

directory src

Files

file | algorithm_autonomousEmergencyBraking.cpp
file | algorithm_autonomousEmergencyBraking.h
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Dynamics_TF Directory Reference

  • src
  • components
  • Dynamics_TF
Dynamics_TF Directory Reference
Directory dependency graph for Dynamics_TF:

Directories

directory src

Files

file | dynamics_tf.cpp
file | dynamics_tf.h
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Algorithm_Lateral/src Directory Reference

  • src
  • components
  • Algorithm_Lateral
  • src
src Directory Reference
Directory dependency graph for src:

Files

file | lateralImpl.cpp
file | lateralImpl.h
file | steeringController.cpp
file | steeringController.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Sensor_Driver Directory Reference

  • src
  • components
  • Sensor_Driver
Sensor_Driver Directory Reference
Directory dependency graph for Sensor_Driver:

Directories

directory src

Files

file | sensor_driver.cpp
file | sensor_driver.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/AgentUpdater Directory Reference

  • src
  • components
  • AgentUpdater
AgentUpdater Directory Reference
Directory dependency graph for AgentUpdater:

Directories

directory src

Files

file | agentUpdater.cpp
file | agentUpdater.h
This file provides the exported methods.
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/AgentUpdater/src Directory Reference

  • src
  • components
  • AgentUpdater
  • src
src Directory Reference
Directory dependency graph for src:

Files

file | agentUpdaterImpl.cpp
file | agentUpdaterImpl.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/LimiterAccVehComp/src Directory Reference

  • src
  • components
  • LimiterAccVehComp
  • src
src Directory Reference
Directory dependency graph for src:

Files

file | limiterAccVehCompImpl.cpp
file | limiterAccVehCompImpl.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Dynamics_TF/src Directory Reference

  • src
  • components
  • Dynamics_TF
  • src
src Directory Reference
Directory dependency graph for src:

Files

file | tfImplementation.cpp
file | tfImplementation.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/LimiterAccVehComp Directory Reference

  • src
  • components
  • LimiterAccVehComp
LimiterAccVehComp Directory Reference
Directory dependency graph for LimiterAccVehComp:

Directories

directory src

Files

file | limiterAccVehComp.cpp
file | limiterAccVehComp.h
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Parameters_Vehicle/src Directory Reference

  • src
  • components
  • Parameters_Vehicle
  • src
src Directory Reference
Directory dependency graph for src:

Files

file | parameters_vehicleImpl.cpp
file | parameters_vehicleImpl.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules/Spawners Directory Reference

  • src
  • core
  • slave
  • modules
  • Spawners
Spawners Directory Reference
Directory dependency graph for Spawners:

Directories

directory | common
directory | PreRunCommon
directory | RuntimeCommon
directory | Scenario
directory | SpawnPoint_Start
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Algorithm_FmuWrapper/src/FmiImporter/src/FMI1 Directory Reference

  • src
  • components
  • Algorithm_FmuWrapper
  • src
  • FmiImporter
  • src
  • FMI1
FMI1 Directory Reference
Directory dependency graph for FMI1:

Files

file | fmi1_check.c
file | fmi1_cs_sim.c
file | fmi1_me_sim.c
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Dynamics_RegularTwoTrack Directory Reference

  • src
  • components
  • Dynamics_RegularTwoTrack
Dynamics_RegularTwoTrack Directory Reference
Directory dependency graph for Dynamics_RegularTwoTrack:

Directories

directory src

Files

file | dynamics_regularTwoTrack.cpp
file | dynamics_regularTwoTrack.h
This file provides the exported methods.
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/importer/road Directory Reference

  • src
  • core
  • slave
  • importer
  • road
road Directory Reference
Directory dependency graph for road:

Files

file | roadObject.cpp
file | roadObject.h
file | roadSignal.cpp
file | roadSignal.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/ComponentController Directory Reference

  • src
  • components
  • ComponentController
ComponentController Directory Reference
Directory dependency graph for ComponentController:

Directories

directory src

Files

file | componentController.cpp
file | componentController.h
This file provides the exported methods.
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Dynamics_RegularDriving Directory Reference

  • src
  • components
  • Dynamics_RegularDriving
Dynamics_RegularDriving Directory Reference
Directory dependency graph for Dynamics_RegularDriving:

Directories

directory src

Files

file | dynamics_regularDriving.cpp
file | dynamics_regularDriving.h
This file provides the exported methods.
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/common/cephesMIT Directory Reference

  • src
  • core
  • common
  • cephesMIT
cephesMIT Directory Reference
Directory dependency graph for cephesMIT:

Files

file | const.c
file | fresnl.c
file | mconf.h
file | polevl.c
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src Directory Reference

  • src
src Directory Reference
Directory dependency graph for src:

Directories

directory | common
directory | components
directory | core
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules/EventDetector Directory Reference

  • src
  • core
  • slave
  • modules
  • EventDetector
EventDetector Directory Reference
Directory dependency graph for EventDetector:

Directories

directory Conditions

Files

file | CollisionDetector.cpp
file | CollisionDetector.h
Detects wether agents collided.
file | ConditionalEventDetector.cpp
file | ConditionalEventDetector.h
file | EventDetectorCommonBase.cpp
file | EventDetectorCommonBase.h
file | EventDetectorExport.cpp
file | EventDetectorExport.h
This file provides the exported methods.
file | EventDetectorGlobal.h
This file contains DLL export declarations.
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/OpenScenarioActions/src Directory Reference

  • src
  • components
  • OpenScenarioActions
  • src
src Directory Reference
Directory dependency graph for src:

Files

file | actionTransformRepository.h
file | openScenarioActionsImpl.cpp
file | openScenarioActionsImpl.h
file | oscActionsCalculation.cpp
file | oscActionsCalculation.h
file | transformerBase.h
file | transformLaneChange.cpp
file | transformLaneChange.h
file | transformSpeedAction.cpp
file | transformSpeedAction.h
file | transformTrajectory.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/framework Directory Reference

  • src
  • core
  • slave
  • framework
framework Directory Reference
Directory dependency graph for framework:

Directories

directory scheduler

Files

file | agentBlueprintProvider.cpp
file | agentBlueprintProvider.h
This file contains the AgentBlueprintProvider, which creates agentBlueprints according to either a given SceneryConfiguration or based on a sampled agent.
file | agentDataPublisher.cpp
file | agentDataPublisher.h
file | agentFactory.cpp
file | agentFactory.h
This file contains the singleton which creates agent instances.
file | commandLineParser.cpp
file | commandLineParser.h
file | configurationContainer.cpp
file | configurationContainer.h
This file stores all configurations.
file | directories.cpp
file | directories.h
file | dynamicAgentTypeGenerator.cpp
file | dynamicAgentTypeGenerator.h
file | dynamicParametersSampler.cpp
file | dynamicParametersSampler.h
file | dynamicProfileSampler.cpp
file | dynamicProfileSampler.h
file | eventNetwork.cpp
file | eventNetwork.h
The EventNetwork manages events and can trigger functions in different framework modules.
file | frameworkModuleContainer.cpp
file | frameworkModuleContainer.h
This file stores all core framework modules.
file | main.cpp
file | observationModule.cpp
file | observationModule.h
This file contains the internal representation of an observation module.
file | observationNetwork.cpp
file | observationNetwork.h
This file implements the container of all observation modules.
file | parameterbuilder.h
file | runInstantiator.cpp
file | runInstantiator.h
This file contains the component which triggers the simulation runs.
file | sampler.cpp
file | sampler.h
This file contains the Sampler, which samples parameters and probabilities.
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Sensor_Driver/src Directory Reference

  • src
  • components
  • Sensor_Driver
  • src
src Directory Reference
Directory dependency graph for src:

Directories

directory Signals

Files

file | sensor_driverCalculations.cpp
file | sensor_driverCalculations.h
file | sensor_driverImpl.cpp
file | sensor_driverImpl.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Dynamics_Collision/src Directory Reference

  • src
  • components
  • Dynamics_Collision
  • src
src Directory Reference
Directory dependency graph for src:

Files

file | collisionImpl.cpp
file | collisionImpl.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Action_SecondaryDriverTasks Directory Reference

  • src
  • components
  • Action_SecondaryDriverTasks
Action_SecondaryDriverTasks Directory Reference
Directory dependency graph for Action_SecondaryDriverTasks:

Directories

directory src

Files

file | action_secondaryDriverTasks.cpp
file | action_secondaryDriverTasks.h
This file provides the exported methods.
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Algorithm_CruiseControlByDistance Directory Reference

  • src
  • components
  • Algorithm_CruiseControlByDistance
Algorithm_CruiseControlByDistance Directory Reference
Directory dependency graph for Algorithm_CruiseControlByDistance:

Files

file | algorithm_cruisecontrolbydistance.cpp
This file contains the DLL wrapper.
file | algorithm_cruisecontrolbydistance.h
Interface-file for class Algorithm_CruiseControlByDistance.
file | algorithm_cruisecontrolbydistance_global.h
This file contains DLL export declarations.
file | algorithm_cruisecontrolbydistance_implementation.cpp
file | algorithm_cruisecontrolbydistance_implementation.h
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/importer Directory Reference

  • src
  • core
  • slave
  • importer
importer Directory Reference
Directory dependency graph for importer:

Directories

directory road

Files

file | configurationFiles.h
file | connection.cpp
file | connection.h
file | csvParser.cpp
file | csvParser.h
file | eventDetectorImporter.cpp
file | eventDetectorImporter.h
file | frameworkModules.h
file | importerLoggingHelper.h
file | junction.cpp
file | junction.h
file | oscImporterCommon.cpp
file | oscImporterCommon.h
file | parameterImporter.cpp
file | parameterImporter.h
file | profiles.cpp
file | profiles.h
file | profilesImporter.cpp
file | profilesImporter.h
file | road.cpp
file | road.h
This file contains the internal representation of a road in a scenery.
file | scenario.cpp
file | scenario.h
This file contains all information for the choosen scenario.
file | scenarioImporter.cpp
file | scenarioImporter.h
This file contains the importer of the scenario.
file | scenarioImporterHelper.cpp
file | scenarioImporterHelper.h
This file contains the helper class of the scenario importer.
file | scenery.cpp
file | scenery.h
This file contains the representation of the static objects of the scenery.
file | sceneryImporter.cpp
file | sceneryImporter.h
This file contains the importer of the scenery configuration.
file | slaveConfig.cpp
file | slaveConfig.h
file | slaveConfigImporter.cpp
file | slaveConfigImporter.h
This file contains the importer of the slave configuration.
file | systemConfig.cpp
file | systemConfig.h
file | systemConfigImporter.cpp
file | systemConfigImporter.h
file | vehicleModels.cpp
file | vehicleModels.h
file | vehicleModelsImporter.cpp
file | vehicleModelsImporter.h
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Dynamics_Collision Directory Reference

  • src
  • components
  • Dynamics_Collision
Dynamics_Collision Directory Reference
Directory dependency graph for Dynamics_Collision:

Directories

directory src

Files

file | dynamics_collision.cpp
file | dynamics_collision.h
This file provides the exported methods.
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core Directory Reference

  • src
  • core
core Directory Reference
Directory dependency graph for core:

Directories

directory | common
directory | master
directory | slave
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/master Directory Reference

  • src
  • core
  • master
master Directory Reference
Directory dependency graph for master:

Directories

directory | framework
directory | importer

Files

file openPassMaster.h
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Dynamics_Longitudinal_Basic Directory Reference

  • src
  • components
  • Dynamics_Longitudinal_Basic
Dynamics_Longitudinal_Basic Directory Reference
Directory dependency graph for Dynamics_Longitudinal_Basic:

Files

file | dynamics_longitudinal_basic.cpp
This file contains the DLL wrapper.
file | dynamics_longitudinal_basic.h
Interface-file for class Dynamics_Longitudinal_Basic.
file | dynamics_longitudinal_basic_global.h
contains DLL export declarations
file | dynamics_longitudinal_basic_implementation.cpp
file | dynamics_longitudinal_basic_implementation.h
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules/World_Basic Directory Reference

  • src
  • core
  • slave
  • modules
  • World_Basic
World_Basic Directory Reference
Directory dependency graph for World_Basic:

Files

file | agentAdapter.cpp
file | agentAdapter.h
file | agentNetwork.cpp
file | agentNetwork.h
file | world_basic.cpp
file | world_basic.h
Interface-file for class World.
file | world_basic_global.h
This file contains DLL export declarations.
file | world_basic_implementation.cpp
file | world_basic_implementation.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/common/events Directory Reference

  • src
  • common
  • events
events Directory Reference
Directory dependency graph for events:

Files

file | basicEvent.h
This file contains all basic functionality of events.
file | collisionEvent.h
This file contains all functions for collision based events.
file | componentStateChangeEvent.h
file | laneChangeEvent.h
file | speedActionEvent.h
file | trajectoryEvent.h
This file contains all functions for agent based events.
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules/Stochastics Directory Reference

  • src
  • core
  • slave
  • modules
  • Stochastics
Stochastics Directory Reference
Directory dependency graph for Stochastics:

Files

file | stochastics.cpp
file | stochastics.h
file | stochastics_global.h
file | stochastics_implementation.cpp
file | stochastics_implementation.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Algorithm_FmuWrapper/src/FmiImporter/src Directory Reference

  • src
  • components
  • Algorithm_FmuWrapper
  • src
  • FmiImporter
  • src
src Directory Reference
Directory dependency graph for src:

Directories

directory | Common
directory | FMI1
directory | FMI2
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules/Observation_Ttc Directory Reference

  • src
  • core
  • slave
  • modules
  • Observation_Ttc
Observation_Ttc Directory Reference
Directory dependency graph for Observation_Ttc:

Files

file | observation_ttc.cpp
This file contains the DLL wrapper.
file | observation_ttc.h
Interface-file for class Observation_Ttc.
file | observation_ttc_global.h
This file contains DLL export declarations.
file | observation_ttc_implementation.cpp
file | observation_ttc_implementation.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Algorithm_FmuWrapper/src/FmiImporter/include Directory Reference

  • src
  • components
  • Algorithm_FmuWrapper
  • src
  • FmiImporter
  • include
include Directory Reference
Directory dependency graph for include:

Files

file | fmi1_input_reader.h
file | fmi2_input_reader.h
file | fmuChecker.h
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules/World_OSI Directory Reference

  • src
  • core
  • slave
  • modules
  • World_OSI
World_OSI Directory Reference
Directory dependency graph for World_OSI:

Directories

directory | OWL
directory | RoutePlanning

Files

file | AgentAdapter.cpp
file | AgentAdapter.h
file | AgentNetwork.cpp
file | AgentNetwork.h
file | egoAgent.cpp
file | egoAgent.h
file | GeometryConverter.cpp
file | GeometryConverter.h
This file contains the converter of the scenery geometry.
file | JointsBuilder.cpp
file | JointsBuilder.h
file | Localization.cpp
file | Localization.h
file | LocalizationElement.h
file | PointQuery.cpp
file | PointQuery.h
file | RamerDouglasPeucker.h
file | SceneryConverter.cpp
file | SceneryConverter.h
This file contains the converter of the scenery configuration.
file | TrafficObjectAdapter.cpp
file | TrafficObjectAdapter.h
file | World.cpp
This file contains the DLL wrapper.
file | World.h
file | WorldData.cpp
This file provides access to underlying data structures for scenery and dynamic objects.
file | WorldData.h
This file provides access to underlying data structures for scenery and dynamic objects.
file | WorldDataException.cpp
This file provides exceptions for the OWL.
file | WorldDataException.h
This file provides exceptions for the OWL.
file | WorldDataQuery.cpp
file | WorldDataQuery.h
file | WorldGlobal.h
This file contains DLL export declarations.
file | WorldImplementation.cpp
file | WorldImplementation.h
file | WorldObjectAdapter.cpp
file | WorldObjectAdapter.h
file | WorldToRoadCoordinateConverter.cpp
file | WorldToRoadCoordinateConverter.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/SignalPrioritizer Directory Reference

  • src
  • components
  • SignalPrioritizer
SignalPrioritizer Directory Reference
Directory dependency graph for SignalPrioritizer:

Directories

directory src

Files

file | signalPrioritizer.cpp
file | signalPrioritizer.h
This file provides the exported methods.
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Action_BrakeLight_Basic Directory Reference

  • src
  • components
  • Action_BrakeLight_Basic
Action_BrakeLight_Basic Directory Reference
Directory dependency graph for Action_BrakeLight_Basic:

Files

file | action_brakelight_basic.cpp
This file contains the DLL wrapper.
file | action_brakelight_basic.h
Interface-file for class Action_BrakeLight.
file | action_brakelight_basic_global.h
contains DLL export declarations
file | action_brakelight_basic_implementation.cpp
file | action_brakelight_basic_implementation.h
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Sensor_Distance Directory Reference

  • src
  • components
  • Sensor_Distance
Sensor_Distance Directory Reference
Directory dependency graph for Sensor_Distance:

Files

file | sensor_distance.cpp
This file contains the DLL wrapper.
file | sensor_distance.h
Interface-file for class Sensor_Distance.
file | sensor_distance_global.h
This file contains DLL export declarations.
file | sensor_distance_implementation.cpp
file | sensor_distance_implementation.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules/Manipulator Directory Reference

  • src
  • core
  • slave
  • modules
  • Manipulator
Manipulator Directory Reference
Directory dependency graph for Manipulator:

Directories

directory srcCollisionPostCrash

Files

file | CollisionManipulator.cpp
file | CollisionManipulator.h
This file notifies all necessary modules about the collision.
file | ComponentStateChangeManipulator.cpp
file | ComponentStateChangeManipulator.h
This manipulator toggles the max state of a component.
file | CustomCommandFactory.h
file | LaneChangeManipulator.cpp
file | LaneChangeManipulator.h
This file removes the agent.
file | ManipulatorCommonBase.cpp
file | ManipulatorCommonBase.h
file | ManipulatorExport.cpp
file | ManipulatorExport.h
This file provides the exported methods.
file | ManipulatorGlobal.h
file | NoOperationManipulator.cpp
file | NoOperationManipulator.h
file | RemoveAgentsManipulator.cpp
file | RemoveAgentsManipulator.h
This file removes the agent.
file | SpeedActionManipulator.cpp
file | SpeedActionManipulator.h
This manipulator adjusts the acceleration of an actor based on different variables.
file | TrajectoryManipulator.cpp
file | TrajectoryManipulator.h
This manipulator sets a trajectory for an agent.
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Dynamics_RegularTwoTrack/src Directory Reference

  • src
  • components
  • Dynamics_RegularTwoTrack
  • src
src Directory Reference
Directory dependency graph for src:

Files

file | dynamics_regularTwoTrackImpl.cpp
file | dynamics_regularTwoTrackImpl.h
file | dynamics_twotrack_tire.cpp
file | dynamics_twotrack_tire.h
file | dynamics_twotrack_vehicle.cpp
file | dynamics_twotrack_vehicle.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/AlgorithmAFDM Directory Reference

  • src
  • components
  • AlgorithmAFDM
AlgorithmAFDM Directory Reference
Directory dependency graph for AlgorithmAFDM:

Directories

directory src

Files

file | AlgorithmAFDM.cpp
file | AlgorithmAFDM.h
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Algorithm_FmuWrapper Directory Reference

  • src
  • components
  • Algorithm_FmuWrapper
Algorithm_FmuWrapper Directory Reference
Directory dependency graph for Algorithm_FmuWrapper:

Directories

directory src

Files

file | AlgorithmFmuWrapper.cpp
file | AlgorithmFmuWrapper.h
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/master/framework Directory Reference

  • src
  • core
  • master
  • framework
framework Directory Reference
Directory dependency graph for framework:

Files

file | main.cpp
file | masterConfig.h
This file contains the representation of the master configuration.
file | processManager.cpp
file | processManager.h
file | slaveConfig.h
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules Directory Reference

  • src
  • core
  • slave
  • modules
modules Directory Reference
Directory dependency graph for modules:

Directories

directory | BasicDataStore
directory | EventDetector
directory | Manipulator
directory | Observation_Log
directory | Observation_LogAgent
directory | Observation_State
directory | Observation_Ttc
directory | Spawners
directory | Stochastics
directory | World_Basic
directory | World_OSI
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Dynamics_CollisionPostCrash Directory Reference

  • src
  • components
  • Dynamics_CollisionPostCrash
Dynamics_CollisionPostCrash Directory Reference
Directory dependency graph for Dynamics_CollisionPostCrash:

Directories

directory src

Files

file | dynamics_collisionPostCrash.cpp
file | dynamics_collisionPostCrash.h
This file provides the exported methods.
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/SignalPrioritizer/src Directory Reference

  • src
  • components
  • SignalPrioritizer
  • src
src Directory Reference
Directory dependency graph for src:

Files

file | signalPrioritizerImpl.cpp
file | signalPrioritizerImpl.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave Directory Reference

  • src
  • core
  • slave
slave Directory Reference
Directory dependency graph for slave:

Directories

directory | bindings
directory | framework
directory | importer
directory | modelElements
directory | modules

Files

file OpenPassSlave.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Algorithm_Lateral Directory Reference

  • src
  • components
  • Algorithm_Lateral
Algorithm_Lateral Directory Reference
Directory dependency graph for Algorithm_Lateral:

Directories

directory src

Files

file | algorithm_lateral.cpp
file | algorithm_lateral.h
This file provides the exported methods.
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/ComponentController/src Directory Reference

  • src
  • components
  • ComponentController
  • src
src Directory Reference
Directory dependency graph for src:

Files

file | componentControllerCommon.h
file | componentControllerImpl.cpp
file | componentControllerImpl.h
file | componentStateInformation.cpp
file | componentStateInformation.h
This file contains all functions for class ComponentStateInformation.
file | condition.cpp
file | condition.h
file | stateManager.cpp
file | stateManager.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules/Spawners/Scenario Directory Reference

  • src
  • core
  • slave
  • modules
  • Spawners
  • Scenario
Scenario Directory Reference
Directory dependency graph for Scenario:

Files

file | SpawnPointScenario.cpp
file | SpawnPointScenario.h
file | SpawnPointScenarioExport.cpp
file | SpawnPointScenarioExport.h
file | SpawnPointScenarioGlobal.h
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules/Observation_State Directory Reference

  • src
  • core
  • slave
  • modules
  • Observation_State
Observation_State Directory Reference
Directory dependency graph for Observation_State:

Files

file | observation_state.cpp
This file contains the DLL wrapper.
file | observation_state.h
Interface-file for class Observation_State.
file | observation_state_global.h
This file contains DLL export declarations.
file | observation_state_implementation.cpp
file | observation_state_implementation.h
file | observationtypes.h
This file defines all types of data which can be observed.
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/Algorithm_Longitudinal Directory Reference

  • src
  • components
  • Algorithm_Longitudinal
Algorithm_Longitudinal Directory Reference
Directory dependency graph for Algorithm_Longitudinal:

Directories

directory src

Files

file | algorithm_longitudinal.cpp
file | algorithm_longitudinal.h
This file provides the exported methods.
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/components/OpenScenarioActions Directory Reference

  • src
  • components
  • OpenScenarioActions
OpenScenarioActions Directory Reference
Directory dependency graph for OpenScenarioActions:

Directories

directory src

Files

file | openScenarioActions.cpp
file | openScenarioActions.h
This file provides the exported methods.
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/common Directory Reference

  • src
  • common
common Directory Reference
Directory dependency graph for common:

Directories

directory events

Files

file | accelerationSignal.h
This file contains all functions for class AccelerationSignal.
file | agentCompToCompCtrlSignal.h
This file contains all functions for class AgentCompToCompCtrlSignal.
file | boostGeometryCommon.h
file | commonHelper.h
file | commonTools.h
file | compatibility.h
file | compCtrlToAgentCompSignal.h
This file contains all functions for class CompCtrlToAgentCompSignal.
file | componentPorts.h
file | dynamicsSignal.h
This file contains all functions for class DynamicsSignal.
file | eventDetectorDefinitions.cpp
file | eventDetectorDefinitions.h
file | eventTypes.h
file | globalDefinitions.h
This file contains several classes for global purposes.
file | lateralSignal.h
This file contains all functions for class LateralSignal.
file | logEntryBase.h
file | longitudinalSignal.h
file | namedType.h
file | observationLibraryDefinitions.h
file | openPassTypes.h
file | openPassUtils.h
file | openScenarioDefinitions.h
file | opExport.h
file | opMath.h
file | parameter.h
file | parametersVehicleSignal.h
file | postCrashDynamic.h
file | primitiveSignals.h
This file contains an interface to predefined primitive signals for usage by component models.
file | runtimeInformation.h
file | secondaryDriverTasksSignal.h
This file contains all functions for class SecondaryDriverTasksSignal.
file | sensorDataSignal.h
This file contains all functions for class SensorDataSignal.
file | sensorDefinitions.h
file | spawnPointLibraryDefinitions.h
file | speedActionSignal.h
This file contains all functions for class SpeedActionSignal.
file | steeringSignal.h
This file contains all functions for class SteeringSignal.
file | stochasticDefinitions.h
file | trajectorySignal.h
This file contains all functions for class TrajectorySignal.
file | vector2d.h
file | vector3d.cpp
file | vector3d.h
file | vectorSignals.h
This file contains signals.
file | version.h
file | worldDefinitions.h
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: C:/Arbeit/050_PASS/eclipse/itk/sim/src/core/slave/modules/Spawners/common Directory Reference

  • src
  • core
  • slave
  • modules
  • Spawners
  • common
common Directory Reference
Directory dependency graph for common:

Files

file | SpawnPointDefinitions.h
file | WorldAnalyzer.cpp
file | WorldAnalyzer.h
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Graph Legend

Graph Legend

This page explains how to interpret the graphs that are generated by doxygen.

Consider the following example:

1 /*! Invisible class because of truncation */
2 class Invisible { };
3
4 /*! Truncated class, inheritance relation is hidden */
5 class Truncated : public Invisible { };
6
7 /* Class not documented with doxygen comments */
8 class Undocumented { };
9
10 /*! Class that is inherited using public inheritance */
11 class PublicBase : public Truncated { };
12
13 /*! A template class */
14 template<class T> class Templ { };
15
16 /*! Class that is inherited using protected inheritance */
17 class ProtectedBase { };
18
19 /*! Class that is inherited using private inheritance */
20 class PrivateBase { };
21
22 /*! Class that is used by the Inherited class */
23 class Used { };
24
25 /*! Super class that inherits a number of other classes */
26 class Inherited : public PublicBase,
27 protected ProtectedBase,
28 private PrivateBase,
29 public Undocumented,
30 public Templ<int>
31 {
32 private:
33 Used *m_usedClass;
34 };

This will result in the following graph:

The boxes in the above graph have the following meaning:

  • A filled gray box represents the struct or class for which the graph is generated.
  • A box with a black border denotes a documented struct or class.
  • A box with a grey border denotes an undocumented struct or class.
  • A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.

The arrows have the following meaning:

  • A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • A dark green arrow is used for protected inheritance.
  • A dark red arrow is used for private inheritance.
  • A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
  • A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Main Page

openPASS Documentation

Table of Contents

  • Introduction
  • Glossary
    • List of abbreviations
    • List of terms
  • About
Official openPASS logo

Introduction

The OpenPASS (Open Platform for Assessment of Safety Systems) tool is a developed framework for the simulation of interaction between traffic participants to evaluate and parametrize active safety systems. The simulation is based on a specific situation configuration and can contain several simulation runs, which differ due to random parameters.

The software suite of openPASS started as a set of stand-alone applications, which can be installed and configurated individually. Over time, especially the graphical user interface evolved to a single entry point, enabling the average user to use openPASS as a "monolitic" tool.

Under the hood, the system consits of the following major components:

  • Graphical User Interface (GUI)
  • OpenPASS Slave
  • Visualization
  • PostProcessing

The GUI let the user configure the simulation and generate configuration files from all set parameters. Based on these the simulation core calculates different simulation runs and compile trace files. These files can be used by the Visualisation to review single simulation runs with a 2D or 3D viewer. Post Processing finally allows to analyze complex experiments.

The user guide explains how to use the software system from the users perspective. It describes the graphical user interface with its functionality and posibilities to analyze the simulation results within the visualisation and post processing.

Glossary

List of abbreviations

ADAS

  • Advanced Driving Assistance Systems

AEB

  • Autonomous Emergency Brake
  • preventive emergency braking in danger (support or independent launch)

COG

  • Center of gravity

OD

  • OpenDrive

openPASS

  • Open Platform for Assessment of Safety Systems

OSI

  • Open Simulation Interface

TTC

  • Time to collision

List of terms

Channel

  • Connects components within an agent (using unique ID)

Component

  • A module that is part of an agent's equipment

Dynamics

  • Calculation of dynamic parameters, e.g. position of Agent

Model

  • An abstract representation of a real object which might omit details e.g. ADAS, driving dynamics, pedestrian, environmental conditions. In the PreCASE framework, a model consists of one or more modules as well as channels connecting them.

Module

  • A dynamic library that is loaded and whose interface functions are called by the framework. Modules contain models or other individual functionality necessary for the simulation. Modules are exchangeable and can be fitted to various purposes ensuring ahigh flexibility of the framework.

PreCASE

  • Framework for the Simulative Evaluation of Active Safety Systems in Vehicles (OpenPASS predecessor).

Scenario

  • A set of similar traffic situations.

About

The openPASS documentation was written by in-tech GmbH.

Copyright (c) 2017-2019 in-tech GmbH
Generated on Sun Sep 20 2020 11:53:34 for openPASS by doxygen 1.8.9.1


openPASS: Class Hierarchy

Class Hierarchy

Go to the textual class hierarchy

Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Adas

Adas
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: AgentModules

AgentModules
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Development

Development
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Execution

Execution
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: FrameworkModules

FrameworkModules
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Localization

Localization
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Scheduling

Scheduling
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: SpawnPoints

SpawnPoints
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Input_Output

Input_Output
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Scenario

Scenario
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Simulation

Simulation
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: openPASS_Documentation

openPASS_Documentation
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: CommonHelper Namespace Reference

  • Namespace Members
CommonHelper Namespace Reference

defines common helper functions like conversion from and to enums. More...

Detailed Description

defines common helper functions like conversion from and to enums.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: GeometryConverter Namespace Reference

  • Namespace Members
Functions | Variables
GeometryConverter Namespace Reference

Functions

void | Convert (const SceneryInterface &scenery, OWL::Interfaces::WorldData &worldData)
Converts OpenDrive road network to OSI objects. More...
void | CalculateRoads (const SceneryInterface &scenery, OWL::Interfaces::WorldData &worldData)
void | CalculateSection (OWL::Interfaces::WorldData &worldData, double roadSectionStart, double roadSectionEnd, const RoadInterface *road, const RoadLaneSectionInterface *roadSection)
SampledGeometry | CalculateSectionBetweenRoadMarkChanges (double roadSectionStart, double roadSectionEnd, const RoadInterface *road, const RoadLaneSectionInterface *roadSection)
SampledGeometry | CalculateGeometry (double roadSectionStart, double roadSectionEnd, const RoadInterface *road, const RoadLaneSectionInterface *roadSection, const RoadGeometryInterface *roadGeometry)
double | CalculateGeometryOffsetStart (double roadSectionStart, double roadGeometryStart)
double | CalculateGeometryOffsetEnd (double roadSectionEnd, double roadGeometryStart, double roadGeometryEnd, double roadGeometryLength)
std::vector< BorderPoints > | CalculateJoints (double geometryOffsetStart, double geometryOffsetEnd, const RoadLaneSectionInterface *roadSection, const RoadInterface *road, const RoadGeometryInterface *roadGeometry, double roadGeometryStart, double roadSectionStart)
BorderPoints | CalculateBorderPoints (const RoadLaneSectionInterface *roadSection, const RoadInterface *road, const RoadGeometryInterface *roadGeometry, double geometryOffset, double roadOffset, double roadSectionStart)
void | AddPointsToWorld (OWL::Interfaces::WorldData &worldData, const Joints &joints)
double | CalculateCoordZ (RoadInterface *road, double offset)
double | CalculateSlope (RoadInterface *road, double offset)
double | CalculateLaneWidth (const RoadLaneInterface *roadLane, double sectionOffset)
double | CalculateLaneBorder (const RoadLaneInterface *roadLane, double sectionOffset)
double | CalculateSlopeAtRoadPosition (const RoadElevation *elevation, double position)
double | CalculateWidthAtSectionPosition (const RoadLaneWidth *width, double position)
const RoadElevation * | GetRelevantRoadElevation (double sectionOffset, RoadInterface *road)
const RoadLaneWidth * | GetRelevantRoadLaneWidth (double sectionOffset, const std::list< RoadLaneWidth * > widthsOrBorders)
bool | IsEqual (const double valueA, const double valueB)
void | CalculateIntersections (OWL::Interfaces::WorldData &worldData)
CalculateIntersections calculates any intersections on the scenery's junctions.
RoadPolygons | BuildRoadPolygons (const OWL::Road *const road)
BuildRoadPolygons builds all polygons for the road and pairs them with the road's id. More...
void | CalculateJunctionIntersectionsFromRoadPolygons (const JunctionPolygons &junctionPolygons, OWL::Junction *const junction)
CalculateJunctionIntersectionsFromRoadPolygons calculates intersections for a junction from polygons created from that junction's roads. More...
std::optional< OWL::IntersectionInfo > | CalculateIntersectionInfoForRoadPolygons (const RoadPolygons &polygons, const RoadPolygons &polygonsToCompare, const OWL::Junction *const junction)
CalculateIntersectionInfoForRoadPolygons calculates intersection information between two sets of RoadPolygons. More...
IntersectingConnectionRank | GetRelativeRank (const std::string &roadId, const std::string &intersectingRoadId, const OWL::Junction *const junction)
GetRelativeRank Gets the relative rank of an intersecting road with respect to a road. More...

Variables

std::function< LaneGeometryPolygon(const OWL::Primitive::LaneGeometryElement *const)> CreateBuildPolygonFromLaneGeometryFunction (const std::string &roadId, const OWL::Id laneId)
CreateBuildPolygonFromLaneGeometryFunction creates a function that builds LaneGeometryPolygons from a LaneGeometryElement for a specific roadId and laneId. More...

Detailed Description

Functions for the convertion of the road geometries in a section. First, the roads, lane sections and lanes have to be converted using SceneryConverter, which then provides the mappings from OpenDrive to OSI of those elements.

Function Documentation

void Convert | ( | const SceneryInterface & | scenery,
 |  | OWL::Interfaces::WorldData & | worldData
 | ) |  |

Converts OpenDrive road network to OSI objects.

This function reads from the imported OpenDrive scenery and adds all roads, sections, lanes and junctions to the WorldData by calling the respective functions of the WorldData.

Parameters
scenery | Scenery with the OpenDrive roads
worldData | worldData that is built by this function
578 {
579 CalculateRoads(scenery, worldData);
580 CalculateIntersections(worldData);
581 }
GeometryConverter::CalculateRoads
void CalculateRoads(const SceneryInterface &scenery, OWL::Interfaces::WorldData &worldData)
Definition: GeometryConverter.cpp:30
GeometryConverter::CalculateIntersections
void CalculateIntersections(OWL::Interfaces::WorldData &worldData)
CalculateIntersections calculates any intersections on the scenery's junctions.
Definition: GeometryConverter.cpp:588

Here is the call graph for this function:

Here is the caller graph for this function:

void CalculateRoads | ( | const SceneryInterface & | scenery,
 |  | OWL::Interfaces::WorldData & | worldData
 | ) |  |

Converts the Roads section in OpenDrive to OSI

Parameters
scenery | Scenery with the OpenDrive roads
worldData | worldData that is built by this function
32 {
33 for(auto [roadId, road] : scenery.GetRoads())
34 {
35 std::vector<RoadLaneSectionInterface*> roadLaneSections = road->GetLaneSections();
36
37 for (auto roadLaneSectionIt = roadLaneSections.begin();
38 roadLaneSectionIt != roadLaneSections.end();
39 roadLaneSectionIt++)
40 {
41 RoadLaneSectionInterface* roadSection = *roadLaneSectionIt;
42 auto& roadLanes = roadSection->GetLanes();
43
44 if(!roadLanes.empty())
45 {
46 double roadSectionStart = roadSection->GetStart();
47 double roadSectionEnd = std::numeric_limits<double>::max();
48
49 if (std::next(roadLaneSectionIt) != roadLaneSections.end()) // if not a single element in the list
50 {
51 roadSectionEnd = (*std::next(roadLaneSectionIt))->GetStart();
52 }
53
54 // collect geometry sections
55 CalculateSection(worldData,
56 roadSectionStart,
57 roadSectionEnd,
58 road,
59 roadSection);
60 } // if lanes are not empty
61 }
62 }
63 }
GeometryConverter::CalculateSection
void CalculateSection(OWL::Interfaces::WorldData &worldData, double roadSectionStart, double roadSectionEnd, const RoadInterface *road, const RoadLaneSectionInterface *roadSection)
Definition: GeometryConverter.cpp:65

Here is the call graph for this function:

Here is the caller graph for this function:

void CalculateSection | ( | OWL::Interfaces::WorldData & | worldData,
 |  | double | roadSectionStart,
 |  | double | roadSectionEnd,
 |  | const RoadInterface * | road,
 |  | const RoadLaneSectionInterface * | roadSection
 | ) |  |

Converts a single section of an OpenDrive road to OSI

Parameters
worldData | worldData that is built by this function
roadSectionStart | start s coordinate of the section
roadSectionEnd | end s coordinate of the section
road | road the section is part of
roadSection | section to convert
70 {
71 double roadMarkStart = 0;
72 SampledGeometry sampledGeometries;
73 bool firstRoadMark{true};
74
75 while (roadMarkStart + roadSectionStart < roadSectionEnd)
76 {
77 double roadMarkEnd = roadSectionEnd - roadSectionStart;
78 for (const auto& roadLane : roadSection->GetLanes())
79 {
80 for (const auto& roadMark : roadLane.second->GetRoadMarks())
81 {
82 double sOffset = roadMark->GetSOffset();
83 if (sOffset > roadMarkStart && sOffset < roadMarkEnd)
84 {
85 roadMarkEnd = sOffset;
86 }
87 }
88 }
89
90 auto sampledGeometry = CalculateSectionBetweenRoadMarkChanges(roadSectionStart + roadMarkStart,
91 roadSectionStart + roadMarkEnd,
92 road,
93 roadSection);
94 if (firstRoadMark)
95 {
96 sampledGeometries = sampledGeometry;
97 firstRoadMark = false;
98 }
99 else
100 {
101 sampledGeometries.Combine(sampledGeometry);
102 }
103
104 roadMarkStart = roadMarkEnd;
105 }
106
107 JointsBuilder jointsBuilder{sampledGeometries};
108
109 jointsBuilder.CalculatePoints()
110 .CalculateHeadings()
111 .CalculateCurvatures();
112
113 AddPointsToWorld(worldData, jointsBuilder.GetJoints());
114 }
SampledGeometry
This struct is the result of the geometry sampling of one road section.
Definition: JointsBuilder.h:45
JointsBuilder
Definition: JointsBuilder.h:80
GeometryConverter::AddPointsToWorld
void AddPointsToWorld(OWL::Interfaces::WorldData &worldData, const Joints &joints)
Definition: GeometryConverter.cpp:333
SampledGeometry::Combine
void Combine(SampledGeometry &other)
This is needed for calculating the curvature of the last joint.
Definition: JointsBuilder.cpp:153
GeometryConverter::CalculateSectionBetweenRoadMarkChanges
SampledGeometry CalculateSectionBetweenRoadMarkChanges(double roadSectionStart, double roadSectionEnd, const RoadInterface *road, const RoadLaneSectionInterface *roadSection)
Definition: GeometryConverter.cpp:116

Here is the call graph for this function:

Here is the caller graph for this function:

SampledGeometry CalculateSectionBetweenRoadMarkChanges | ( | double | roadSectionStart,
 |  | double | roadSectionEnd,
 |  | const RoadInterface * | road,
 |  | const RoadLaneSectionInterface * | roadSection
 | ) |  |

Samples the lane boundary points of the lanes of one section between two consecutive changes in the RoadMarks of the lanes with a defined maximum lateral error

Parameters
roadSectionStart | start s coordinate of the section / first RoadMark change
roadSectionEnd | end s coordinate of the section / second RoadMark change
road | road the section is part of
roadSection | section to convert
Returns
sampled boundary points
120 {
121 SampledGeometry sampledGeometries;
122 std::list<RoadGeometryInterface*> roadGeometries = road->GetGeometries();
123 bool firstGeometry{true};
124
125 for(RoadGeometryInterface* roadGeometry: roadGeometries)
126 {
127 auto sampledGeometry = CalculateGeometry(roadSectionStart,
128 roadSectionEnd,
129 road,
130 roadSection,
131 roadGeometry);
132 if (sampledGeometry.borderPoints.empty())
133 {
134 continue;
135 }
136 if (firstGeometry)
137 {
138 sampledGeometries = sampledGeometry;
139 firstGeometry = false;
140 }
141 else
142 {
143 sampledGeometries.Combine(sampledGeometry);
144 }
145 }
146 return sampledGeometries;
147 }
SampledGeometry
This struct is the result of the geometry sampling of one road section.
Definition: JointsBuilder.h:45
SampledGeometry::Combine
void Combine(SampledGeometry &other)
This is needed for calculating the curvature of the last joint.
Definition: JointsBuilder.cpp:153
GeometryConverter::CalculateGeometry
SampledGeometry CalculateGeometry(double roadSectionStart, double roadSectionEnd, const RoadInterface *road, const RoadLaneSectionInterface *roadSection, const RoadGeometryInterface *roadGeometry)
Definition: GeometryConverter.cpp:149

Here is the call graph for this function:

Here is the caller graph for this function:

SampledGeometry CalculateGeometry | ( | double | roadSectionStart,
 |  | double | roadSectionEnd,
 |  | const RoadInterface * | road,
 |  | const RoadLaneSectionInterface * | roadSection,
 |  | const RoadGeometryInterface * | roadGeometry
 | ) |  |

Samples the lane boundary points of one geometry for one section with a defined maximum lateral error

Parameters
roadSectionStart | start s coordinate of the section / first RoadMark change
roadSectionEnd | end s coordinate of the section / second RoadMark change
road | road the section is part of
roadSection | section to convert
roadGeometry | geometry to sample
Returns
sampled boundary points
154 {
155 double roadGeometryLength = roadGeometry->GetLength();
156
157 auto roadGeometryStart = roadGeometry->GetS();
158 auto roadGeometryEnd = roadGeometryStart + roadGeometryLength;
159
160 // if section is not affected by geometry
161 if(roadSectionStart > roadGeometryEnd ||
162 roadSectionEnd < roadGeometryStart)
163 {
164 return {};
165 }
166
167 double geometryOffsetStart = CalculateGeometryOffsetStart(roadSectionStart,
168 roadGeometryStart);
169
170 double geometryOffsetEnd = CalculateGeometryOffsetEnd(roadSectionEnd,
171 roadGeometryStart,
172 roadGeometryEnd,
173 roadGeometryLength);
174 auto borderPoints = CalculateJoints(geometryOffsetStart,
175 geometryOffsetEnd,
176 roadSection,
177 road,
178 roadGeometry,
179 roadGeometryStart,
180 roadSectionStart);
181
182 borderPoints = RamerDouglasPeucker::Simplify<BorderPoints>(borderPoints);
183
184 return {borderPoints, roadGeometry->GetDir(geometryOffsetStart), roadGeometry->GetDir(geometryOffsetEnd)};
185 }
GeometryConverter::CalculateGeometryOffsetStart
double CalculateGeometryOffsetStart(double roadSectionStart, double roadGeometryStart)
Definition: GeometryConverter.cpp:187
GeometryConverter::CalculateJoints
std::vector< BorderPoints > CalculateJoints(double geometryOffsetStart, double geometryOffsetEnd, const RoadLaneSectionInterface *roadSection, const RoadInterface *road, const RoadGeometryInterface *roadGeometry, double roadGeometryStart, double roadSectionStart)
Definition: GeometryConverter.cpp:219
GeometryConverter::CalculateGeometryOffsetEnd
double CalculateGeometryOffsetEnd(double roadSectionEnd, double roadGeometryStart, double roadGeometryEnd, double roadGeometryLength)
Definition: GeometryConverter.cpp:202

Here is the call graph for this function:

Here is the caller graph for this function:

double CalculateGeometryOffsetStart | ( | double | roadSectionStart,
 |  | double | roadGeometryStart
 | ) |  |

Calculates the start s offset of a geometry inside a section

Parameters
roadSectionStart | start s coordinate of the section
roadGeometryStart | start s coordinate of the geometry
Returns
start s offset of the geometry in the section
189 {
190 // geometry begins within section
191 if(roadSectionStart <= roadGeometryStart)
192 {
193 return 0.0;
194 }
195 // geometry begins before section
196 else
197 {
198 return roadSectionStart - roadGeometryStart;
199 }
200 }

Here is the caller graph for this function:

double CalculateGeometryOffsetEnd | ( | double | roadSectionEnd,
 |  | double | roadGeometryStart,
 |  | double | roadGeometryEnd,
 |  | double | roadGeometryLength
 | ) |  |

Calculates the end s offset of a geometry inside a section

Parameters
roadSectionEnd | end s coordinate of the section
roadGeometryStart | start s coordinate of the geometry
roadGeometryEnd | end s coordinate of the section
roadGeometryLength | length of the geometry
Returns
end s offset of the geometry in the section
206 {
207 // geometry ends within section
208 if(roadSectionEnd >= roadGeometryEnd)
209 {
210 return roadGeometryLength;
211 }
212 // geometry ends after section
213 else
214 {
215 return roadSectionEnd - roadGeometryStart;
216 }
217 }

Here is the caller graph for this function:

std::vector< BorderPoints > CalculateJoints | ( | double | geometryOffsetStart,
 |  | double | geometryOffsetEnd,
 |  | const RoadLaneSectionInterface * | roadSection,
 |  | const RoadInterface * | road,
 |  | const RoadGeometryInterface * | roadGeometry,
 |  | double | roadGeometryStart,
 |  | double | roadSectionStart
 | ) |  |

Calculates the lane boundary points with a high sampling rate

Parameters
geometryOffsetStart | start s offset of the geometry in the section
geometryOffsetEnd | end s offset of the geometry in the section
roadSection | section to convert
road | road the section is part of
roadGeometry | geometry to sample
roadGeometryStart | start s coordinate of the geometry
roadSectionStart | start s coordinate of the section
Returns
sampled lane boundary points
226 {
227 std::vector<BorderPoints> borderPoints;
228 double geometryOffset = geometryOffsetStart;
229 while (geometryOffset < geometryOffsetEnd + SAMPLING_RATE)
230 {
231 // account for last sample
232 if(geometryOffset > geometryOffsetEnd)
233 {
234 geometryOffset = geometryOffsetEnd;
235 }
236
237 borderPoints.push_back(CalculateBorderPoints(roadSection,
238 road,
239 roadGeometry,
240 geometryOffset,
241 roadGeometryStart + geometryOffset,
242 roadSectionStart));
243
244 geometryOffset += SAMPLING_RATE;
245 }
246 return borderPoints;
247 }
GeometryConverter::CalculateBorderPoints
BorderPoints CalculateBorderPoints(const RoadLaneSectionInterface *roadSection, const RoadInterface *road, const RoadGeometryInterface *roadGeometry, double geometryOffset, double roadOffset, double roadSectionStart)
Definition: GeometryConverter.cpp:249

Here is the call graph for this function:

Here is the caller graph for this function:

BorderPoints CalculateBorderPoints | ( | const RoadLaneSectionInterface * | roadSection,
 |  | const RoadInterface * | road,
 |  | const RoadGeometryInterface * | roadGeometry,
 |  | double | geometryOffset,
 |  | double | roadOffset,
 |  | double | roadSectionStart
 | ) |  |

Calculates the lane boundary points of a single joint (i.e. at one s coordinate)

Parameters
roadSection | section to convert
road | road the section is part of
roadGeometry | geometry to sample
geometryOffset | s offset on the geometry
roadOffset | s coordinate on the road
roadSectionStart | start s coordinate of the section
Returns
sampled lane boundary points
255 {
256
257 const auto& roadLanes = roadSection->GetLanes();
258 const auto maxLaneId = roadLanes.crbegin()->first;
259 const auto minLaneId = roadLanes.cbegin()->first;
260
261 const double sectionOffset = sCoordinate - roadSectionStart;
262 const double laneOffset = CalculateLaneOffset(road, sCoordinate);
263 const auto centerPoint = roadGeometry->GetCoord(geometryOffset, laneOffset);
264 const double heading = roadGeometry->GetDir(geometryOffset);
265 const double sin_hdg = std::sin(heading);
266 const double cos_hdg = std::cos(heading);
267
268 std::deque<BorderPoint> points;
269
270 // start with positive lanes
271 // 1, 2, 3... -> order necessary to accumulate right starting from center
272 double borderOffset = 0.0;
273 for (int laneId = 1; laneId <= maxLaneId; laneId++)
274 {
275 const auto laneIter = roadLanes.find(laneId);
276 if (laneIter == roadLanes.end())
277 {
278 throw std::runtime_error("Missing lane with id "+ std::to_string(laneId));
279 }
280
281 auto lane = laneIter->second;
282 if (!lane->GetWidths().empty())
283 {
284 borderOffset += CalculateLaneWidth(lane, sectionOffset);
285 }
286 else if (!lane->GetBorders().empty())
287 {
288 borderOffset = CalculateLaneBorder(lane, sectionOffset);
289 }
290 else
291 {
292 throw std::runtime_error("RoadLane requires either Width or Border definition.");
293 }
294
295 const double x = centerPoint.x - borderOffset * sin_hdg;
296 const double y = centerPoint.y + borderOffset * cos_hdg;
297 points.emplace_front(Common::Vector2d{x,y}, roadLanes.at(laneId));
298 }
299
300 points.emplace_back(centerPoint, roadLanes.at(0));
301
302 borderOffset = 0.0;
303 for (int laneId = -1; laneId >= minLaneId; laneId--)
304 {
305 const auto laneIter = roadLanes.find(laneId);
306 if (laneIter == roadLanes.end())
307 {
308 throw std::runtime_error("Missing lane with id "+ std::to_string(laneId));
309 }
310
311 auto lane = laneIter->second;
312 if (!lane->GetWidths().empty())
313 {
314 borderOffset += CalculateLaneWidth(lane, sectionOffset);
315 }
316 else if (!lane->GetBorders().empty())
317 {
318 borderOffset = CalculateLaneBorder(lane, sectionOffset);
319 }
320 else
321 {
322 throw std::runtime_error("RoadLane requires either Width or Border definition.");
323 }
324
325 const double x = centerPoint.x + borderOffset * sin_hdg;
326 const double y = centerPoint.y - borderOffset * cos_hdg;
327 points.emplace_back(Common::Vector2d{x,y}, roadLanes.at(laneId));
328 }
329
330 return BorderPoints{sCoordinate, {points.begin(), points.end()}};
331 }
GeometryConverter::CalculateLaneWidth
double CalculateLaneWidth(const RoadLaneInterface *roadLane, double sectionOffset)
Definition: GeometryConverter.cpp:508
BorderPoints
This struct represents the boundary points of all lanes (including lane 0) at one s coordinate (i...
Definition: JointsBuilder.h:35
GeometryConverter::CalculateLaneBorder
double CalculateLaneBorder(const RoadLaneInterface *roadLane, double sectionOffset)
Definition: GeometryConverter.cpp:520
Common::Vector2d
Definition: vector2d.h:26

Here is the call graph for this function:

Here is the caller graph for this function:

void AddPointsToWorld | ( | OWL::Interfaces::WorldData & | worldData,
 |  | const Joints & | joints
 | ) |  |

Adds the sampled joints to the world

Parameters
worldData | worldData that is built by this function
joints | sampled joints
334 {
335 for (const auto& joint : joints)
336 {
337 for (const auto& [laneId, laneJoint] : joint.laneJoints)
338 {
339 if (laneId == 0)
340 {
341 worldData.AddCenterLinePoint(*laneJoint.lane->GetLaneSection(), laneJoint.center, joint.s, laneJoint.heading);
342 }
343 else
344 {
345 worldData.AddLaneGeometryPoint(*laneJoint.lane, laneJoint.left, laneJoint.center, laneJoint.right, joint.s, laneJoint.curvature, laneJoint.heading);
346 }
347 }
348 }
349 }
OWL::Interfaces::WorldData::AddLaneGeometryPoint
virtual void AddLaneGeometryPoint(const RoadLaneInterface &odLane, const Common::Vector2d &pointLeft, const Common::Vector2d &pointCenter, const Common::Vector2d &pointRight, const double sOffset, const double curvature, const double heading)=0
OWL::Interfaces::WorldData::AddCenterLinePoint
virtual void AddCenterLinePoint(const RoadLaneSectionInterface &odSection, const Common::Vector2d &pointCenter, const double sOffset, double heading)=0

Here is the call graph for this function:

Here is the caller graph for this function:

double CalculateCoordZ | ( | RoadInterface * | road,
 |  | double | offset
 | ) |  |

Calculates height coordinate according to OpenDrive elevation profiles.

Parameters
[in] | road | OpenDrive road data structure
[in] | offset | Absolute offset on reference line within road
Returns
height coordinate
352 {
353 double coordZ = 0.0;
354 const RoadElevation* roadElevation = GetRelevantRoadElevation(offset, road);
355
356 if(roadElevation)
357 {
358 double ds = offset - roadElevation->GetS();
359
360 coordZ = roadElevation->GetA() +
361 roadElevation->GetB() * ds +
362 roadElevation->GetC() * ds * ds +
363 roadElevation->GetD() * ds * ds * ds;
364 }
365
366 return coordZ;
367 }
GeometryConverter::GetRelevantRoadElevation
const RoadElevation * GetRelevantRoadElevation(double sectionOffset, RoadInterface *road)
Definition: GeometryConverter.cpp:382

Here is the call graph for this function:

double CalculateSlope | ( | RoadInterface * | road,
 |  | double | offset
 | ) |  |

Calculates slope according to OpenDrive elevation profiles.

Parameters
[in] | road | OpenDrive road data structure
[in] | offset | Absolute offset on reference line within road
Returns
slope
370 {
371 double slope = 0.0;
372 const RoadElevation* roadElevation = GetRelevantRoadElevation(offset, road);
373
374 if(roadElevation)
375 {
376 slope = CalculateSlopeAtRoadPosition(roadElevation, offset);
377 }
378
379 return slope;
380 }
GeometryConverter::CalculateSlopeAtRoadPosition
double CalculateSlopeAtRoadPosition(const RoadElevation *elevation, double position)
Definition: GeometryConverter.cpp:554
GeometryConverter::GetRelevantRoadElevation
const RoadElevation * GetRelevantRoadElevation(double sectionOffset, RoadInterface *road)
Definition: GeometryConverter.cpp:382

Here is the call graph for this function:

double CalculateLaneWidth | ( | const RoadLaneInterface * | roadLane,
 |  | double | sectionOffset
 | ) |  |

Calculates the width of the provided lane.

Parameters
[in] | roadLane | OpenDrive road lane (for width information)
[in] | sectionOffset | Offset within the OpenDrive section
Returns
Lane width, 0.0 if no width was specified
509 {
510 const RoadLaneWidth* roadLaneWidth = GetRelevantRoadLaneWidth(sectionOffset, roadLane->GetWidths());
511
512 if(!roadLaneWidth)
513 {
514 throw std::runtime_error("No lane width given");
515 }
516
517 return CalculateWidthAtSectionPosition(roadLaneWidth, sectionOffset);
518 }
GeometryConverter::GetRelevantRoadLaneWidth
const RoadLaneWidth * GetRelevantRoadLaneWidth(double sectionOffset, const std::list< RoadLaneWidth * > widthsOrBorders)
Definition: GeometryConverter.cpp:410
GeometryConverter::CalculateWidthAtSectionPosition
double CalculateWidthAtSectionPosition(const RoadLaneWidth *width, double position)
Definition: GeometryConverter.cpp:544

Here is the call graph for this function:

Here is the caller graph for this function:

double CalculateLaneBorder | ( | const RoadLaneInterface * | roadLane,
 |  | double | sectionOffset
 | ) |  |

Calculates the border of the provided lane.

Parameters
[in] | roadLane | OpenDrive road lane (for width information)
[in] | sectionOffset | Offset within the OpenDrive section
Returns
Lane border, 0.0 if no width was specified
521 {
522 const RoadLaneWidth* roadLaneBorder = GetRelevantRoadLaneWidth(sectionOffset, roadLane->GetBorders());
523
524 if(!roadLaneBorder)
525 {
526 throw std::runtime_error("No lane border given");
527 }
528
529 return CalculateWidthAtSectionPosition(roadLaneBorder, sectionOffset);
530 }
GeometryConverter::GetRelevantRoadLaneWidth
const RoadLaneWidth * GetRelevantRoadLaneWidth(double sectionOffset, const std::list< RoadLaneWidth * > widthsOrBorders)
Definition: GeometryConverter.cpp:410
GeometryConverter::CalculateWidthAtSectionPosition
double CalculateWidthAtSectionPosition(const RoadLaneWidth *width, double position)
Definition: GeometryConverter.cpp:544

Here is the call graph for this function:

Here is the caller graph for this function:

double CalculateSlopeAtRoadPosition | ( | const RoadElevation * | elevation,
 |  | double | position
 | ) |  |

Calculates the slope of a lane at a given position

Parameters
[in] | elevation | elevation input data (has to match given position)
[in] | position | position w.r.t. start of section
Returns
width at given position
555 {
556 double ds = position - roadElevation->GetS();
557
558 double deltaZ = roadElevation->GetB() +
559 2 * roadElevation->GetC() * ds +
560 3 * roadElevation->GetD() * ds * ds;
561
562 return std::atan(deltaZ);
563 }

Here is the caller graph for this function:

double CalculateWidthAtSectionPosition | ( | const RoadLaneWidth * | width,
 |  | double | position
 | ) |  |

Calculates the width of a lane at a given position

Parameters
[in] | width | width input data (has to match given position)
[in] | position | position w.r.t. start of section
Returns
width at given position
545 {
546 double ds = position - width->GetSOffset();
547
548 return width->GetA() +
549 width->GetB() * ds +
550 width->GetC() * ds * ds +
551 width->GetD() * ds * ds * ds;
552 }

Here is the caller graph for this function:

const RoadElevation * GetRelevantRoadElevation | ( | double | sectionOffset,
 |  | RoadInterface * | road
 | ) |  |

Get the RoadElevation which is relevant for the given position

Parameters
[in] | sectionOffset | position w.r.t. start of section
[in] | roadLane | the RoadLaneInterface input data
Returns
relevant RoadElevation
383 {
384 auto roadLaneIt = road->GetElevations().begin();
385 while(road->GetElevations().end() != roadLaneIt)
386 {
387 if((*roadLaneIt)->GetS() <= roadOffset)
388 {
389 auto roadLaneNextIt = std::next(roadLaneIt);
390 if(road->GetElevations().end() == roadLaneNextIt ||
391 (*roadLaneNextIt)->GetS() > roadOffset)
392 {
393 break;
394 }
395 }
396
397 ++roadLaneIt;
398 }
399
400 if(roadLaneIt == road->GetElevations().end())
401 {
402 return nullptr;
403 }
404 else
405 {
406 return *roadLaneIt;
407 }
408 }

Here is the caller graph for this function:

const RoadLaneWidth * GetRelevantRoadLaneWidth | ( | double | sectionOffset,
 |  | const std::list< RoadLaneWidth * > | widthsOrBorders
 | ) |  |

Get the RoadLaneWidth which is relevant for the given position

Parameters
[in] | sectionOffset | position w.r.t. start of section
[in] | widthsOrBorders | container with all potential RoadLaneWidth pointers
Returns
relevant RoadLaneWidth
411 {
412 auto roadLaneIt = widthsOrBorders.begin();
413 while(widthsOrBorders.end() != roadLaneIt)
414 {
415 if((*roadLaneIt)->GetSOffset() <= sectionOffset)
416 {
417 auto roadLaneNextIt = std::next(roadLaneIt);
418 if(widthsOrBorders.end() == roadLaneNextIt ||
419 (*roadLaneNextIt)->GetSOffset() > sectionOffset)
420 {
421 break;
422 }
423 }
424
425 ++roadLaneIt;
426 }
427
428 if(roadLaneIt == widthsOrBorders.end())
429 {
430 return nullptr;
431 }
432 else
433 {
434 return *roadLaneIt;
435 }
436 }

Here is the caller graph for this function:

bool IsEqual | ( | const double | valueA,
 |  | const double | valueB
 | ) |  |

Tests if the provided values' difference is smaller than EPS

Parameters
[in] | valueA | input value A
[in] | valueB | input value B
Returns
true, if valueA and valueB are (approximately) the same, false otherwise
584 {
585 return std::abs(valueA - valueB) < EPS;
586 }
RoadPolygons BuildRoadPolygons ( const OWL::Road *const road )

BuildRoadPolygons builds all polygons for the road and pairs them with the road's id.

Parameters
[in] road the road for which polygons will be built
Returns
the pair of the road id to the collection of polygons for the road
603 {
604 std::vector<LaneGeometryPolygon> polygons;
605 auto& roadId = road->GetId();
606
607 for (const auto section : road->GetSections())
608 {
609 for (const auto lane : section->GetLanes())
610 {
611 OWL::Id laneId = lane->GetId();
612
613 const auto buildPolygonFromLaneGeometryElement = CreateBuildPolygonFromLaneGeometryFunction(roadId, laneId);
614 std::transform(lane->GetLaneGeometryElements().begin(),
615 lane->GetLaneGeometryElements().end(),
616 std::back_inserter(polygons),
617 buildPolygonFromLaneGeometryElement);
618 }
619 }
620
621 return std::make_pair(roadId, polygons);
622 }
OWL::Interfaces::Road::GetSections
virtual const Sections & GetSections() const =0
Returns a vector of all sections that this road consists of.
OWL::Interfaces::Road::GetId
virtual const std::string & GetId() const =0
Returns the Id of the road.
GeometryConverter::CreateBuildPolygonFromLaneGeometryFunction
std::function< LaneGeometryPolygon(const OWL::Primitive::LaneGeometryElement *const)> CreateBuildPolygonFromLaneGeometryFunction(const std::string &roadId, const OWL::Id laneId)
CreateBuildPolygonFromLaneGeometryFunction creates a function that builds LaneGeometryPolygons from a...
Definition: GeometryConverter.h:278

Here is the call graph for this function:

Here is the caller graph for this function:

void CalculateJunctionIntersectionsFromRoadPolygons | ( | const JunctionPolygons & | junctionPolygons,
 |  | OWL::Junction *const | junction
 | ) |  |

CalculateJunctionIntersectionsFromRoadPolygons calculates intersections for a junction from polygons created from that junction's roads.

Parameters
[in] | junctionPolygons | the map of road ids to LaneGeometryPolygons for the junction
[out] | junction | the junction to which intersection information should be added, given that any interesections are found
651 {
652 auto roadPolygonsIter = junctionPolygons.begin();
653 while (roadPolygonsIter != junctionPolygons.end())
654 {
655 auto roadPolygonsToCompareIter = roadPolygonsIter;
656 roadPolygonsToCompareIter++;
657
658 while (roadPolygonsToCompareIter != junctionPolygons.end())
659 {
660 const auto intersectionInfo = CalculateIntersectionInfoForRoadPolygons(*roadPolygonsIter, *roadPolygonsToCompareIter, junction);
661 if (intersectionInfo)
662 {
663 const auto crossIntersectionInfo = CalculateIntersectionInfoForRoadPolygons(*roadPolygonsToCompareIter, *roadPolygonsIter, junction);
664
665 junction->AddIntersectionInfo(roadPolygonsIter->first, intersectionInfo.value());
666 junction->AddIntersectionInfo(roadPolygonsToCompareIter->first, crossIntersectionInfo.value());
667 }
668
669 roadPolygonsToCompareIter++;
670 }
671
672 roadPolygonsIter++;
673 }
674 }
OWL::Interfaces::Junction::AddIntersectionInfo
virtual void AddIntersectionInfo(const std::string &roadId, const IntersectionInfo &intersectionInfo)=0
Adds intersection info for the road with roadId to the junction.
GeometryConverter::CalculateIntersectionInfoForRoadPolygons
std::optional< OWL::IntersectionInfo > CalculateIntersectionInfoForRoadPolygons(const RoadPolygons &polygons, const RoadPolygons &polygonsToCompare, const OWL::Junction *const junction)
CalculateIntersectionInfoForRoadPolygons calculates intersection information between two sets of Road...
Definition: GeometryConverter.cpp:676

Here is the call graph for this function:

Here is the caller graph for this function:

std::optional< OWL::IntersectionInfo > CalculateIntersectionInfoForRoadPolygons | ( | const RoadPolygons & | polygons,
 |  | const RoadPolygons & | polygonsToCompare,
 |  | const OWL::Junction *const | junction
 | ) |  |

CalculateIntersectionInfoForRoadPolygons calculates intersection information between two sets of RoadPolygons.

Parameters
[in] | polygons | the base road's set of polygons
[in] | polygonsToCompare | the potentially-intersecting road's set of polygons
[in] | junction | the junction for which the intersection info is calculated
Returns
the IntersectionInfo between the two sets of RoadPolygons, if an intersection exists between them
679 {
680 OWL::IntersectionInfo info;
681 info.intersectingRoad = roadPolygonsToCompare.first;
682 info.relativeRank = GetRelativeRank(roadPolygons.first, roadPolygonsToCompare.first, junction);
683
684 for (const auto& laneGeometryPolygon : roadPolygons.second)
685 {
686 for (const auto& polygonToCompare : roadPolygonsToCompare.second)
687 {
688 std::vector<polygon_t> intersectionPolygons;
689 bg::intersection(laneGeometryPolygon.polygon, polygonToCompare.polygon, intersectionPolygons);
690
691 if (!intersectionPolygons.empty() && !(bg::area(intersectionPolygons.front()) < EPS))
692 {
693 World::Localization::LocalizationElement localizationElement{*laneGeometryPolygon.laneGeometryElement};
694 World::Localization::WorldToRoadCoordinateConverter processor{localizationElement};
695
696 double minS = std::numeric_limits<double>::max();
697 double maxS = 0;
698
699 for (const auto& point : intersectionPolygons.front().outer())
700 {
701 double s = processor.GetS(Common::Vector2d(bg::get<0>(point), bg::get<1>(point)));
702 minS = std::min(minS, s);
703 maxS = std::max(maxS, s);
704 }
705
706 std::pair<OWL::Id, OWL::Id> intersectingLanesPair{laneGeometryPolygon.laneId, polygonToCompare.laneId};
707 const auto intersectingLanesPairIter = info.sOffsets.find(intersectingLanesPair);
708
709 // if these lane ids are already marked as intersecting, update the startSOffset and endSOffset to reflect new intersection information
710 if (intersectingLanesPairIter != info.sOffsets.end())
711 {
712 double recordedStartS = (*intersectingLanesPairIter).second.first;
713 double recordedEndS = (*intersectingLanesPairIter).second.second;
714 (*intersectingLanesPairIter).second.first = std::min(recordedStartS, minS);
715 (*intersectingLanesPairIter).second.second = std::max(recordedEndS, maxS);
716 }
717 else
718 {
719 info.sOffsets.emplace(intersectingLanesPair, std::make_pair(minS, maxS));
720 }
721
722 }
723 }
724 }
725
726 return info.sOffsets.size() > 0
727 ? std::make_optional(info)
728 : std::nullopt;
729 }
World::Localization::WorldToRoadCoordinateConverter
Definition: WorldToRoadCoordinateConverter.h:17
World::Localization::LocalizationElement
This struct contains all the information about a LaneGeometryElement that is needed by the Localizer...
Definition: LocalizationElement.h:43
OWL::IntersectionInfo::sOffsets
std::map< std::pair< Id, Id >, std::pair< double, double > > sOffsets
Definition: DataTypes.h:75
OWL::IntersectionInfo
Definition: DataTypes.h:68
GeometryConverter::GetRelativeRank
IntersectingConnectionRank GetRelativeRank(const std::string &roadId, const std::string &intersectingRoadId, const OWL::Junction *const junction)
GetRelativeRank Gets the relative rank of an intersecting road with respect to a road.
Definition: GeometryConverter.cpp:731
Common::Vector2d
Definition: vector2d.h:26

Here is the call graph for this function:

Here is the caller graph for this function:

IntersectingConnectionRank GetRelativeRank | ( | const std::string & | roadId,
 |  | const std::string & | intersectingRoadId,
 |  | const OWL::Junction *const | junction
 | ) |  |

GetRelativeRank Gets the relative rank of an intersecting road with respect to a road.

Parameters
[in] | roadId | the roadId of the road whose relative rank to get
[in] | intersectingRoadId | the roadId of the intersecting road
[in] | junction | the junction in which the roads intersect
Returns
the relative rank of the intersecting road
732 {
733 if (std::find_if(junction->GetPriorities().begin(),
734 junction->GetPriorities().end(),
735 [&](const auto& priority){return priority.first == roadId && priority.second == intersectingRoadId;}) != junction->GetPriorities().end())
736 {
737 return IntersectingConnectionRank::Lower;
738 }
739 else if (std::find_if(junction->GetPriorities().begin(),
740 junction->GetPriorities().end(),
741 [&](const auto& priority){return priority.first == intersectingRoadId && priority.second == roadId;}) != junction->GetPriorities().end())
742 {
743 return IntersectingConnectionRank::Higher;
744 }
745
746 return IntersectingConnectionRank::Undefined;
747 }
OWL::Interfaces::Junction::GetPriorities
virtual const Priorities & GetPriorities() const =0
Returns all priorities of connectors in this junction.

Here is the call graph for this function:

Here is the caller graph for this function:

Variable Documentation

std::function< LaneGeometryPolygon(const OWL::Primitive::LaneGeometryElement *const)> CreateBuildPolygonFromLaneGeometryFunction

CreateBuildPolygonFromLaneGeometryFunction creates a function that builds LaneGeometryPolygons from a LaneGeometryElement for a specific roadId and laneId.

Parameters
[in] | roadId | the roadId for which the created function will build LaneGeometryPolygons
[in] | laneId | the laneId for which the created function will build LaneGeometryPolygons
Returns
a function that creates LaneGeometryPolygons from LaneGeometryElements for the lane at laneId on the road at roadId
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Sampler Namespace Reference

  • Namespace Members
Sampler Namespace Reference

Sampler samples probabilities and SpawnPoint and World parameters. More...

Detailed Description

Sampler samples probabilities and SpawnPoint and World parameters.

This class contains all stochastics functions of the SpawnPoint and the world It samples parameters according to probabilities specified in the configurations

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: openPASS Documentation

openPASS Documentation
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Related Pages

Related Pages
Here is a list of all related documentation pages:
Generated on Sun Sep 20 2020 11:53:35 for openPASS by doxygen 1.8.9.1


openPASS: Member List

AgentBuildInformation Member List

This is the complete list of members for AgentBuildInformation, including all inherited members.

make(SampledProfiles &sampledProfiles, DynamicParameters &dynamicParameters, std::shared_ptr< SystemConfigInterface > systemConfigBlueprint, ProfilesInterface *profiles, VehicleModelsInterface *vehicleModels) AgentBuildInformation static
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

BorderPoint Member List

This is the complete list of members for BorderPoint, including all inherited members.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

BorderPoints Member List

This is the complete list of members for BorderPoints, including all inherited members.

GetSquaredError(const BorderPoints &begin, const BorderPoints &end) const BorderPoints
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

CollisionAngles Member List

This is the complete list of members for CollisionAngles, including all inherited members.

HCPA | CollisionAngles
HCPAo | CollisionAngles
OCPA | CollisionAngles
OCPAo | CollisionAngles
OYA | CollisionAngles
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

CommandLineArguments Member List

This is the complete list of members for CommandLineArguments, including all inherited members.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

CommandLineOption Member List

This is the complete list of members for CommandLineOption, including all inherited members.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • Common
  • Line
Line Member List

This is the complete list of members for Line, including all inherited members.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • CommonTrafficSign
  • Entity
Entity Member List

This is the complete list of members for Entity, including all inherited members.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ConditionMetaInformation Member List

This is the complete list of members for ConditionMetaInformation, including all inherited members.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ConfigurationFiles Member List

This is the complete list of members for ConfigurationFiles, including all inherited members.

configurationDir | ConfigurationFiles
slaveConfigFile | ConfigurationFiles
systemConfigBlueprintFile | ConfigurationFiles
Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

DefaultComponents Member List

This is the complete list of members for DefaultComponents, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

DynamicParameters Member List

This is the complete list of members for DynamicParameters, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

FakeLaneManager Member List

This is the complete list of members for FakeLaneManager, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

FrameworkModules Member List

This is the complete list of members for FrameworkModules, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

GeometryInformation Member List

This is the complete list of members for GeometryInformation, including all inherited members.

laneEgo | GeometryInformation
laneLeft | GeometryInformation
laneRight | GeometryInformation
visibilityDistance | GeometryInformation
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

GlobalRoadPosition Member List

This is the complete list of members for GlobalRoadPosition, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • Internal
  • ConversionStatus
ConversionStatus Member List

This is the complete list of members for ConversionStatus, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

IntersectingConnection Member List

This is the complete list of members for IntersectingConnection, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

Joint Member List

This is the complete list of members for Joint, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

JunctionConnection Member List

This is the complete list of members for JunctionConnection, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

JunctionConnectorPriority Member List

This is the complete list of members for JunctionConnectorPriority, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

LaneGeometryPolygon Member List

This is the complete list of members for LaneGeometryPolygon, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

LaneInformationGeometry Member List

This is the complete list of members for LaneInformationGeometry, including all inherited members.

curvature | LaneInformationGeometry
distanceToEndOfLane | LaneInformationGeometry
exists | LaneInformationGeometry
width | LaneInformationGeometry
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

LaneInformationTrafficRules Member List

This is the complete list of members for LaneInformationTrafficRules, including all inherited members.

trafficSigns LaneInformationTrafficRules
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

LaneJoint Member List

This is the complete list of members for LaneJoint, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • LaneMarking
  • Entity
Entity Member List

This is the complete list of members for Entity, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

LateralDynamicConstants Member List

This is the complete list of members for LateralDynamicConstants, including all inherited members.

gainHeadingError | LateralDynamicConstants
lateralAcceleration | LateralDynamicConstants
zeta | LateralDynamicConstants
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

LongitudinalDistance Member List

This is the complete list of members for LongitudinalDistance, including all inherited members.

referencePoint LongitudinalDistance
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • MultiStream
  • Node
MultiStream< T >::Node Member List

This is the complete list of members for MultiStream< T >::Node, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • IntersectionInfo
IntersectionInfo Member List

This is the complete list of members for IntersectionInfo, including all inherited members.

sOffsets IntersectionInfo
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Lazy
Lazy< T > Member List

This is the complete list of members for Lazy< T >, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Primitive
  • AbsAcceleration
AbsAcceleration Member List

This is the complete list of members for AbsAcceleration, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Primitive
  • AbsCoordinate
AbsCoordinate Member List

This is the complete list of members for AbsCoordinate, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Primitive
  • AbsOrientation
AbsOrientation Member List

This is the complete list of members for AbsOrientation, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Primitive
  • AbsOrientationRate
AbsOrientationRate Member List

This is the complete list of members for AbsOrientationRate, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Primitive
  • AbsPosition
AbsPosition Member List

This is the complete list of members for AbsPosition, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Primitive
  • AbsVelocity
AbsVelocity Member List

This is the complete list of members for AbsVelocity, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Primitive
  • Dimension
Dimension Member List

This is the complete list of members for Dimension, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Primitive
  • LaneAcceleration
LaneAcceleration Member List

This is the complete list of members for LaneAcceleration, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Primitive
  • LaneGeometryElement
LaneGeometryElement Member List

This is the complete list of members for LaneGeometryElement, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Primitive
  • LaneGeometryElement
  • Joints
LaneGeometryElement::Joints Member List

This is the complete list of members for LaneGeometryElement::Joints, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Primitive
  • LaneGeometryJoint
LaneGeometryJoint Member List

This is the complete list of members for LaneGeometryJoint, including all inherited members.

curvature | LaneGeometryJoint
sHdg | LaneGeometryJoint
sOffset | LaneGeometryJoint
Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Primitive
  • LaneGeometryJoint
  • Points
LaneGeometryJoint::Points Member List

This is the complete list of members for LaneGeometryJoint::Points, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Primitive
  • LaneOrientation
LaneOrientation Member List

This is the complete list of members for LaneOrientation, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Primitive
  • LaneOrientationRate
LaneOrientationRate Member List

This is the complete list of members for LaneOrientationRate, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Primitive
  • LanePosition
LanePosition Member List

This is the complete list of members for LanePosition, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Primitive
  • LaneVelocity
LaneVelocity Member List

This is the complete list of members for LaneVelocity, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Primitive
  • RoadAcceleration
RoadAcceleration Member List

This is the complete list of members for RoadAcceleration, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Primitive
  • RoadCoordinate
RoadCoordinate Member List

This is the complete list of members for RoadCoordinate, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Primitive
  • RoadOrientationRate
RoadOrientationRate Member List

This is the complete list of members for RoadOrientationRate, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • OWL
  • Primitive
  • RoadVelocity
RoadVelocity Member List

This is the complete list of members for RoadVelocity, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ObjectInformation Member List

This is the complete list of members for ObjectInformation, including all inherited members.

absoluteVelocity | ObjectInformation
acceleration | ObjectInformation
exist | ObjectInformation
heading | ObjectInformation
height | ObjectInformation
id | ObjectInformation
isStatic | ObjectInformation
length | ObjectInformation
relativeLateralDistance | ObjectInformation
relativeLongitudinalDistance | ObjectInformation
width | ObjectInformation
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ObjectPosition Member List

This is the complete list of members for ObjectPosition, including all inherited members.

mainLocatePoint | ObjectPosition
touchedRoads | ObjectPosition
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ObjectView Member List

This is the complete list of members for ObjectView, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

ObservationInstance Member List

This is the complete list of members for ObservationInstance, including all inherited members.

libraryName | ObservationInstance
parameters | ObservationInstance
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

OutputAttributes Member List

This is the complete list of members for OutputAttributes, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

OutputTags Member List

This is the complete list of members for OutputTags, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

OwnVehicleInformation Member List

This is the complete list of members for OwnVehicleInformation, including all inherited members.

absoluteVelocity | OwnVehicleInformation
acceleration | OwnVehicleInformation
collision | OwnVehicleInformation
distanceToLaneBoundaryLeft | OwnVehicleInformation
distanceToLaneBoundaryRight | OwnVehicleInformation
heading | OwnVehicleInformation
lateralPosition | OwnVehicleInformation
steeringWheelAngle | OwnVehicleInformation
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

Position Member List

This is the complete list of members for Position, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

PostCrashVelocity Member List

This is the complete list of members for PostCrashVelocity, including all inherited members.

isActive | PostCrashVelocity
velocityAbsolute | PostCrashVelocity
velocityDirection | PostCrashVelocity
yawVelocity | PostCrashVelocity
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • RelativeWorldView
  • Junction
Junction Member List

This is the complete list of members for Junction, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • RelativeWorldView
  • Lane
Lane Member List

This is the complete list of members for Lane, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • RelativeWorldView
  • LanesInterval
LanesInterval Member List

This is the complete list of members for LanesInterval, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

Remainder Member List

This is the complete list of members for Remainder, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

RoadInterval Member List

This is the complete list of members for RoadInterval, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

RoadNetworkElement Member List

This is the complete list of members for RoadNetworkElement, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

RoadPosition Member List

This is the complete list of members for RoadPosition, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

RouteElement Member List

This is the complete list of members for RouteElement, including all inherited members.

Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

STCoordinates Member List

This is the complete list of members for STCoordinates, including all inherited members.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SampledGeometry Member List

This is the complete list of members for SampledGeometry, including all inherited members.

Combine(SampledGeometry &other) | SampledGeometry
endHeading | SampledGeometry
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SampledProfiles Member List

This is the complete list of members for SampledProfiles, including all inherited members.

make(std::string agentProfileName, StochasticsInterface &stochastics, ProfilesInterface *profiles) SampledProfiles static
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SensorDetectionResults Member List

This is the complete list of members for SensorDetectionResults, including all inherited members.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SimulationMaster
  • Configuration
  • MasterConfig
MasterConfig Member List

This is the complete list of members for MasterConfig, including all inherited members.

Generated on Sun Sep 20 2020 11:53:32 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SpawnPointDefinitions
  • AgentProfileLaneMaps
AgentProfileLaneMaps Member List

This is the complete list of members for AgentProfileLaneMaps, including all inherited members.

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SpawnPointDefinitions
  • SpawningAgentProfile
SpawningAgentProfile Member List

This is the complete list of members for SpawningAgentProfile, including all inherited members.

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SpawnPointDependencies Member List

This is the complete list of members for SpawnPointDependencies, including all inherited members.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SpawnPointLibraryInfo Member List

This is the complete list of members for SpawnPointLibraryInfo, including all inherited members.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SpawnPointPreRunCommonDefinitions
  • PreRunSpawnerParameters
PreRunSpawnerParameters Member List

This is the complete list of members for PreRunSpawnerParameters, including all inherited members.

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SpawnPointPreRunCommonDefinitions
  • SpawnArea
SpawnArea Member List

This is the complete list of members for SpawnArea, including all inherited members.

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SpawnPointRuntimeCommonDefinitions
  • SpawnDetails
SpawnDetails Member List

This is the complete list of members for SpawnDetails, including all inherited members.

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SpawnPointRuntimeCommonDefinitions
  • SpawnPointRuntimeCommonParameters
SpawnPointRuntimeCommonParameters Member List

This is the complete list of members for SpawnPointRuntimeCommonParameters, including all inherited members.

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • SpawnPointRuntimeCommonDefinitions
  • SpawnPosition
SpawnPosition Member List

This is the complete list of members for SpawnPosition, including all inherited members.

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

StreamInfo< T > Member List

This is the complete list of members for StreamInfo< T >, including all inherited members.

EndS() const | StreamInfo< T > | inline
GetStreamPosition(double elementPosition) const | StreamInfo< T > | inline
inStreamDirection | StreamInfo< T > |
sOffset | StreamInfo< T > |
StartS() const | StreamInfo< T > | inline
StreamInfo()=default | StreamInfo< T > |
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

SurroundingObjects Member List

This is the complete list of members for SurroundingObjects, including all inherited members.

objectFront | SurroundingObjects
objectFrontLeft | SurroundingObjects
objectFrontRight | SurroundingObjects
objectRear | SurroundingObjects
objectRearLeft | SurroundingObjects
objectRearRight | SurroundingObjects
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

TrafficRuleInformation Member List

This is the complete list of members for TrafficRuleInformation, including all inherited members.

laneEgo | TrafficRuleInformation
laneLeft | TrafficRuleInformation
laneMarkingsLeft | TrafficRuleInformation
laneMarkingsLeftOfLeftLane | TrafficRuleInformation
laneMarkingsRight | TrafficRuleInformation
laneMarkingsRightOfRightLane | TrafficRuleInformation
laneRight | TrafficRuleInformation
Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • TtcCalculations
  • TtcParameters
TtcCalculations::TtcParameters Member List

This is the complete list of members for TtcCalculations::TtcParameters, including all inherited members.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

VehicleModelParameters Member List

This is the complete list of members for VehicleModelParameters, including all inherited members.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • World
  • Localization
  • LaneIntersection
LaneIntersection< T > Member List

This is the complete list of members for LaneIntersection< T >, including all inherited members.

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • World
  • Localization
  • LocalizationElement
LocalizationElement Member List

This is the complete list of members for LocalizationElement, including all inherited members.

referenceScale | LocalizationElement
referenceVector | LocalizationElement
search_box | LocalizationElement
tAxisCenter | LocalizationElement
Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • World
  • Localization
  • LocatedObject
LocatedObject Member List

This is the complete list of members for LocatedObject, including all inherited members.

Generated on Sun Sep 20 2020 11:53:33 for openPASS by doxygen 1.8.9.1


openPASS: Member List

WorldParameterOSI Member List

This is the complete list of members for WorldParameterOSI, including all inherited members.

Generated on Sun Sep 20 2020 11:53:30 for openPASS by doxygen 1.8.9.1


openPASS: Member List

cmplx Member List

This is the complete list of members for cmplx, including all inherited members.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

cmplxl Member List

This is the complete list of members for cmplxl, including all inherited members.

Generated on Sun Sep 20 2020 11:53:28 for openPASS by doxygen 1.8.9.1


openPASS: Member List

fmi1_csv_input_t Member List

This is the complete list of members for fmi1_csv_input_t, including all inherited members.

discreteIndex | fmi1_csv_input_t
eventIndex1 | fmi1_csv_input_t
eventIndex2 | fmi1_csv_input_t
fmu | fmi1_csv_input_t
interpContinuousData | fmi1_csv_input_t
interpData | fmi1_csv_input_t
interpIndex1 | fmi1_csv_input_t
interpIndex2 | fmi1_csv_input_t
interpLambda | fmi1_csv_input_t
interpTime | fmi1_csv_input_t
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

fmi2_csv_input_t Member List

This is the complete list of members for fmi2_csv_input_t, including all inherited members.

discreteIndex | fmi2_csv_input_t
eventIndex1 | fmi2_csv_input_t
eventIndex2 | fmi2_csv_input_t
fmu | fmi2_csv_input_t
interpData | fmi2_csv_input_t
interpIndex1 | fmi2_csv_input_t
interpIndex2 | fmi2_csv_input_t
interpLambda | fmi2_csv_input_t
interpTime | fmi2_csv_input_t
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

fmu_check_data_t Member List

This is the complete list of members for fmu_check_data_t, including all inherited members.

callbacks | fmu_check_data_t
context | fmu_check_data_t
CSV_separator | fmu_check_data_t
do_mangle_var_names | fmu_check_data_t
do_output_all_vars | fmu_check_data_t
do_simulate_flg | fmu_check_data_t
do_test_cs | fmu_check_data_t
do_test_me | fmu_check_data_t
fmu1 | fmu_check_data_t
fmu1_kind | fmu_check_data_t
fmu2 | fmu_check_data_t
fmu2_kind | fmu_check_data_t
FMUPath | fmu_check_data_t
inputFileName | fmu_check_data_t
log_file | fmu_check_data_t
log_file_name | fmu_check_data_t
maxOutputPts | fmu_check_data_t
maxOutputPtsSetByUser | fmu_check_data_t
modelIdentifierFMI1 | fmu_check_data_t
nextOutputStep | fmu_check_data_t
nextOutputTime | fmu_check_data_t
num_errors | fmu_check_data_t
num_fatal | fmu_check_data_t
num_fmu_messages | fmu_check_data_t
num_warnings | fmu_check_data_t
out_file | fmu_check_data_t
output_file_name | fmu_check_data_t
print_all_event_vars | fmu_check_data_t
printed_instance_name_error_flg | fmu_check_data_t
require_cs | fmu_check_data_t
require_me | fmu_check_data_t
slave_initialized | fmu_check_data_t
stepSize | fmu_check_data_t
stepSizeSetByUser | fmu_check_data_t
stopTime | fmu_check_data_t
temp_dir | fmu_check_data_t
tmpPath | fmu_check_data_t
unzipPathBuf | fmu_check_data_t
version | fmu_check_data_t
vl | fmu_check_data_t
vl2 | fmu_check_data_t
write_log_files | fmu_check_data_t
write_output_files | fmu_check_data_t
Generated on Sun Sep 20 2020 11:53:29 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • AbsoluteTargetSpeed
AbsoluteTargetSpeed Member List

This is the complete list of members for AbsoluteTargetSpeed, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • ActorInformation
ActorInformation Member List

This is the complete list of members for ActorInformation, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • ConditionalEventDetectorInformation
ConditionalEventDetectorInformation Member List

This is the complete list of members for ConditionalEventDetectorInformation, including all inherited members.

numberOfExecutions ConditionalEventDetectorInformation
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • CustomCommandAction
CustomCommandAction Member List

This is the complete list of members for CustomCommandAction, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • EntityAction
EntityAction Member List

This is the complete list of members for EntityAction, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • FollowTrajectoryAction
FollowTrajectoryAction Member List

This is the complete list of members for FollowTrajectoryAction, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • LaneChangeAction
LaneChangeAction Member List

This is the complete list of members for LaneChangeAction, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • LaneChangeParameter
LaneChangeParameter Member List

This is the complete list of members for LaneChangeParameter, including all inherited members.

dynamicsTarget | LaneChangeParameter
dynamicsType | LaneChangeParameter
object | LaneChangeParameter
value | LaneChangeParameter
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • LanePosition
LanePosition Member List

This is the complete list of members for LanePosition, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • ManipulatorInformation
ManipulatorInformation Member List

This is the complete list of members for ManipulatorInformation, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • Orientation
Orientation Member List

This is the complete list of members for Orientation, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • ParameterizedAttribute
ParameterizedAttribute< T > Member List

This is the complete list of members for ParameterizedAttribute< T >, including all inherited members.

defaultValue | ParameterizedAttribute< T >
ParameterizedAttribute()=default | ParameterizedAttribute< T >
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • RelativeLanePosition
RelativeLanePosition Member List

This is the complete list of members for RelativeLanePosition, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • RelativeTargetSpeed
RelativeTargetSpeed Member List

This is the complete list of members for RelativeTargetSpeed, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • RoadPosition
RoadPosition Member List

This is the complete list of members for RoadPosition, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • SpeedAction
SpeedAction Member List

This is the complete list of members for SpeedAction, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • StochasticAttribute
StochasticAttribute Member List

This is the complete list of members for StochasticAttribute, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • Trajectory
Trajectory Member List

This is the complete list of members for Trajectory, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • TrajectoryPoint
TrajectoryPoint Member List

This is the complete list of members for TrajectoryPoint, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • TransitionDynamics
TransitionDynamics Member List

This is the complete list of members for TransitionDynamics, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • VisibilityAction
VisibilityAction Member List

This is the complete list of members for VisibilityAction, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • WorldPosition
WorldPosition Member List

This is the complete list of members for WorldPosition, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • transformation
  • LaneChange
LaneChange Member List

This is the complete list of members for LaneChange, including all inherited members.

Transform(const SimulationSlave::EventNetworkInterface *eventNetwork, WorldInterface *world, AgentInterface *agent, int cycleTime) TransformerBase< LaneChange, TrajectorySignal, openpass::events::LaneChangeEvent > inlinestatic
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • transformation
  • SpeedAction
SpeedAction Member List

This is the complete list of members for SpeedAction, including all inherited members.

Transform(const SimulationSlave::EventNetworkInterface *eventNetwork, WorldInterface *world, AgentInterface *agent, int cycleTime) TransformerBase< SpeedAction, SpeedActionSignal, openpass::events::SpeedActionEvent > inlinestatic
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openScenario
  • transformation
  • Trajectory
Trajectory Member List

This is the complete list of members for Trajectory, including all inherited members.

Transform(const SimulationSlave::EventNetworkInterface *eventNetwork, WorldInterface *world, AgentInterface *agent, int cycleTime) TransformerBase< Trajectory, TrajectorySignal, openpass::events::TrajectoryEvent > inlinestatic
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • common
  • RuntimeInformation
RuntimeInformation Member List

This is the complete list of members for RuntimeInformation, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • common
  • RuntimeInformation
  • Directories
RuntimeInformation::Directories Member List

This is the complete list of members for RuntimeInformation::Directories, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • common
  • RuntimeInformation
  • Versions
RuntimeInformation::Versions Member List

This is the complete list of members for RuntimeInformation::Versions, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • common
  • Version
Version Member List

This is the complete list of members for Version, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • parameter
  • internal
  • VisitParameterElement
VisitParameterElement Member List

This is the complete list of members for VisitParameterElement, including all inherited members.

operator()(const ParameterValue &value) | VisitParameterElement | inline
operator()(const ParameterListLevel2 &list) | VisitParameterElement | inline
Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • sensors
  • Parameter
Parameter Member List

This is the complete list of members for Parameter, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • sensors
  • Position
Position Member List

This is the complete list of members for Position, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • sensors
  • Profile
Profile Member List

This is the complete list of members for Profile, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • type
  • AffectedEntities
AffectedEntities Member List

This is the complete list of members for AffectedEntities, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • type
  • NamedType
NamedType< T, Tag > Member List

This is the complete list of members for NamedType< T, Tag >, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1


openPASS: Member List

  • openpass
  • type
  • TriggeringEntities
TriggeringEntities Member List

This is the complete list of members for TriggeringEntities, including all inherited members.

Generated on Sun Sep 20 2020 11:53:31 for openPASS by doxygen 1.8.9.1