diff --git a/doc/source/installation_guide/30_install_openpass.rst b/doc/source/installation_guide/30_install_openpass.rst
index 9ef1fe550b343ca907d51715bd99d8c721ab2832..84473890d140e1b0d3bac4f4d472cb750abe7b97 100644
--- a/doc/source/installation_guide/30_install_openpass.rst
+++ b/doc/source/installation_guide/30_install_openpass.rst
@@ -169,7 +169,7 @@ The above directory structure will be created by following the instructions of t
.. code-block::
cmake -G "MSYS Makefiles" \
- -D CMAKE_PREFIX_PATH="C:/msys64/mingw64/bin;C:/simopenpass/deps/thirdParty/FMILibrary;C:/simopenpass/deps/thirdParty/osi;C:/simopenpass/deps/thirdParty/protobuf;C:/simopenpass/deps/thirdParty/protobuf-shared" \
+ -D CMAKE_PREFIX_PATH="C:/simopenpass/deps/thirdParty/FMILibrary;C:/simopenpass/deps/thirdParty/osi;C:/simopenpass/deps/thirdParty/protobuf;C:/simopenpass/deps/thirdParty/protobuf-shared;C:/msys64/mingw64/bin" \
-D CMAKE_INSTALL_PREFIX=C:/OpenPASS/bin/core \
-D CMAKE_BUILD_TYPE=Release \
-D USE_CCACHE=ON \
@@ -180,9 +180,11 @@ The above directory structure will be created by following the instructions of t
-D CMAKE_CXX_COMPILER=g++ \
..
- .. note:: By specifying ``INSTALL_EXTRA_RUNTIME_DEPS=ON``, runtime dependencies will be copied to the installation directory when running ``make install``.
- This applies to all dependencies located in the paths specified in ``CMAKE_PREFIX_PATH``.
-
+ .. note::
+
+ - By specifying ``INSTALL_EXTRA_RUNTIME_DEPS=ON``, runtime dependencies will be copied to the installation directory when running ``make install``. This applies to all dependencies located in the paths specified in ``CMAKE_PREFIX_PATH``.
+ - Make sure that the path ``C:/msys64/mingw64/bin`` is the last path in the CMAKE_PREFIX_PATH. Otherwise cmake might find and use local versions of required libraries instead of the ones listed in the thirdparties folder.
+
.. tab:: Linux
.. code-block::
diff --git a/doc/source/installation_guide/_static/msys2_packages.txt b/doc/source/installation_guide/_static/msys2_packages.txt
index b1e264632b37a1f6f269913a8bedbc97fce1cb42..9248213f38fd7da2c0bea1f4028c1710c20c999e 100644
--- a/doc/source/installation_guide/_static/msys2_packages.txt
+++ b/doc/source/installation_guide/_static/msys2_packages.txt
@@ -1,33 +1,35 @@
# for simulator
-pacman -S mingw-w64-x86_64-boost #Tested with 1.75.0-2
-pacman -S mingw-w64-x86_64-ccache #Tested with 3.7.9-1
-pacman -S mingw-w64-x86_64-cmake #Tested with 3.19.2-1
-pacman -S mingw-w64-x86_64-doxygen #Tested with 1.8.20-1
-pacman -S mingw-w64-x86_64-gcc #Tested with 10.2.0-6
-pacman -S mingw-w64-x86_64-gdb #Tested with 10.1-2
-pacman -S mingw-w64-x86_64-graphviz #Tested with 2.44.1-3
-pacman -S mingw-w64-x86_64-gtest #Tested with 1.11.0-4
-#pacman -S mingw-w64-x86_64-protobuf # currently uses custom build (3.17.3). See 'Installing the Source Packages' below.
-pacman -S mingw-w64-x86_64-qt5 #Tested with 5.15.2-5
-pacman -S make #Tested with 4.3-1
+mingw-w64-x86_64-boost # Tested with 1.79.0-2
+mingw-w64-x86_64-ccache # Tested with 4.6-1
+mingw-w64-x86_64-cmake # Tested with 3.23.1-1
+mingw-w64-x86_64-doxygen # Tested with 1.9.3-2
+mingw-w64-x86_64-gcc # Tested with 11.2.0-10
+mingw-w64-x86_64-gdb # Tested with 11.2-2
+mingw-w64-x86_64-graphviz # Tested with 2.44.1-9
+mingw-w64-x86_64-gtest # Tested with 1.11.0-5
+mingw-w64-x86_64-qt5 # Tested with 5.15.2-15
+make # Tested with 4.3-3
# for documentation
-pacman -S mingw-w64-x86_64-python #Tested with 3.9.6.2
-pacman -S mingw-w64-x86_64-python-pip #Tested with 21.1.3-2
-pacman -S mingw-w64-x86_64-python-lxml #Tested with 4.6.2-2
+mingw-w64-x86_64-python # Tested with 3.9.13-1
+mingw-w64-x86_64-python-pip # Tested with 22.0.4-1
+mingw-w64-x86_64-python-lxml # Tested with 4.8.0-1
-# get necessary latex style (assuming default paths for MSYS2)
-wget -P /mingw64/share/texmf-dist/tex/latex/anyfontsize \
- http://mirrors.ctan.org/macros/latex/contrib/anyfontsize/anyfontsize.sty
-
-# fonts (picks up anyfontsize) and equation rendering in the documentation
-pacman -S mingw-w64-x86_64-zziplib #Tested with 0.13.72-3
-pacman -S mingw-w64-x86_64-texlive-bin #Tested with 2021.20210424-5
-pacman -S mingw-w64-x86_64-texlive-core #Tested with 2021.20210519-2
-pacman -S mingw-w64-x86_64-texlive-font-utils #Tested with 2021.20210519-1
+# fonts and equation rendering in the documentation
+mingw-w64-x86_64-texlive-bin # Tested with 2021.20210424-10
+mingw-w64-x86_64-texlive-core # Tested with 2021.20210906-1
+mingw-w64-x86_64-texlive-font-utils # Tested with 2021.20210906-1
+mingw-w64-x86_64-texlive-latex-extra # Tested with 2021.20210906-1
+mingw-w64-x86_64-zziplib # Tested with 0.13.72-3
# for sphinx/exhale
-pacman -S libxslt-devel
+libxslt-devel # Tested with 1.1.35-1
+
+# additional recommendations
+diffutils
+dos2unix
+git
+patch
+vim
+mingw-w64-x86_64-ag
-# additional python packages for documentation
-pip3 install sphinx sphinx-rtd-theme sphinx-tabs breathe exhale sphinxcontrib-spelling
diff --git a/doc/source/requirements.txt b/doc/source/requirements.txt
index d967f0a1a59872e5f62a6cad716a8b8ee02611be..5587d0402a36f43d4d1b5fec1124ef412d1da50f 100644
--- a/doc/source/requirements.txt
+++ b/doc/source/requirements.txt
@@ -1,4 +1,6 @@
-sphinx==4.1.1
-sphinx-rtd-theme==0.5.2
-sphinxcontrib-spelling==7.2.1
-sphinx-tabs==3.1.0
\ No newline at end of file
+breathe
+exhale
+sphinx
+sphinx-rtd-theme
+sphinx-tabs
+sphinxcontrib-spelling
diff --git a/doc/source/user_guide/configs/simulationconfig.rst b/doc/source/user_guide/configs/simulationconfig.rst
index 98bb178a6fc8810122981d40113a867d6a5e153c..bef40d099452ab750fe9a17808e25904a0651b66 100644
--- a/doc/source/user_guide/configs/simulationconfig.rst
+++ b/doc/source/user_guide/configs/simulationconfig.rst
@@ -1,6 +1,7 @@
..
*******************************************************************************
Copyright (c) 2021 in-tech GmbH
+ 2022 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
This program and the accompanying materials are made available under the
terms of the Eclipse Public License 2.0 which is available at
@@ -116,6 +117,7 @@ All probabilities need to add up to 1.0.
Friction Friction on the road. Used by DynamicsRegularDriving and LimiterAccelerationVehicleComponents. 1+ entry
Weather **Currently unused.** Weather as string 1+ entry
TrafficRules Defines which set of TrafficRules to use from the ProfilesCatalog yes
+ TurningRates Defines the turning rates for random route generation no
=================== ============================================================================================== =========
**Example**
@@ -129,6 +131,29 @@ Every invocation has sunny weather.
:language: xml
:start-at:
:end-at:
+
+**TurningRates**
+
+If routes are not defined in the Scenario, they are randomly generated.
+Starting at the current agent position at each junction a random connector is chosen based on the weights given in the TurningRates element, until the route terminates at a road without successors or a maximum depth is reached.
+If for a pair of incoming road / connector no weight is given, it is defaulted to 1.
+At the below example an agent coming from road "R1" has a 1/3 chance of selecting "R1-2" and a 2/3 chance of selecting "R1-3".
+
+.. table::
+ :class: tight-table
+
+ =================== ==============================
+ Attribute Description
+ =================== ==============================
+ Incoming Id of the incoming road
+ Outgoing Id of the connector
+ Weight Weight for this pair
+ =================== ==============================
+
+.. literalinclude:: @OP_REL_SIM@/contrib/examples/Configurations/TurningRates/simulationConfig.xml
+ :language: xml
+ :start-at:
+ :end-at:
.. _simulationconfig_observations:
diff --git a/sim/contrib/examples/Configurations/DynamicOSMPSensorDataToTUStepper/OSMPSensorDataToTrafficUpdateStepper.fmu b/sim/contrib/examples/Configurations/DynamicOSMPSensorDataToTUStepper/OSMPSDToTUS.fmu
similarity index 100%
rename from sim/contrib/examples/Configurations/DynamicOSMPSensorDataToTUStepper/OSMPSensorDataToTrafficUpdateStepper.fmu
rename to sim/contrib/examples/Configurations/DynamicOSMPSensorDataToTUStepper/OSMPSDToTUS.fmu
diff --git a/sim/contrib/examples/Configurations/DynamicOSMPSensorDataToTUStepper/ProfilesCatalog.xml b/sim/contrib/examples/Configurations/DynamicOSMPSensorDataToTUStepper/ProfilesCatalog.xml
index e8c001afb0dd9efb9a037c42277343adb0c9ba2d..5a6cfe30964db9b6428188b7a81b7723824e26f2 100644
--- a/sim/contrib/examples/Configurations/DynamicOSMPSensorDataToTUStepper/ProfilesCatalog.xml
+++ b/sim/contrib/examples/Configurations/DynamicOSMPSensorDataToTUStepper/ProfilesCatalog.xml
@@ -212,7 +212,7 @@
-
+
diff --git a/sim/contrib/examples/Configurations/StaticOSMPSensorDataToTUStepper/OSMPSensorDataToTrafficUpdateStepper.fmu b/sim/contrib/examples/Configurations/StaticOSMPSensorDataToTUStepper/OSMPSDToTUS.fmu
similarity index 100%
rename from sim/contrib/examples/Configurations/StaticOSMPSensorDataToTUStepper/OSMPSensorDataToTrafficUpdateStepper.fmu
rename to sim/contrib/examples/Configurations/StaticOSMPSensorDataToTUStepper/OSMPSDToTUS.fmu
diff --git a/sim/contrib/examples/Configurations/StaticOSMPSensorDataToTUStepper/SystemConfig.xml b/sim/contrib/examples/Configurations/StaticOSMPSensorDataToTUStepper/SystemConfig.xml
index 6c80d7d9749353c6d5e01fc397e2b8e5f0c14b18..2e224ccace968326513de6675539b98e3ae2e14c 100644
--- a/sim/contrib/examples/Configurations/StaticOSMPSensorDataToTUStepper/SystemConfig.xml
+++ b/sim/contrib/examples/Configurations/StaticOSMPSensorDataToTUStepper/SystemConfig.xml
@@ -441,7 +441,7 @@
FmuPath
string
- OSMPSensorDataToTrafficUpdateStepper.fmu
+ OSMPSDToTUS.fmu
Logging
diff --git a/sim/contrib/examples/Configurations/TurningRates/ProfilesCatalog.xml b/sim/contrib/examples/Configurations/TurningRates/ProfilesCatalog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bc13d348c46595d97d895c4274beb57147f8ee82
--- /dev/null
+++ b/sim/contrib/examples/Configurations/TurningRates/ProfilesCatalog.xml
@@ -0,0 +1,235 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sim/contrib/examples/Configurations/TurningRates/Scenario.xosc b/sim/contrib/examples/Configurations/TurningRates/Scenario.xosc
new file mode 100644
index 0000000000000000000000000000000000000000..adbd0f956cd2d520cddb2ba3d357383771774256
--- /dev/null
+++ b/sim/contrib/examples/Configurations/TurningRates/Scenario.xosc
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sim/contrib/examples/Configurations/TurningRates/SceneryConfiguration.xodr b/sim/contrib/examples/Configurations/TurningRates/SceneryConfiguration.xodr
new file mode 100644
index 0000000000000000000000000000000000000000..ae89ed7dd529e1bcefc071a25f070e15522772bb
--- /dev/null
+++ b/sim/contrib/examples/Configurations/TurningRates/SceneryConfiguration.xodr
@@ -0,0 +1,356 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sim/contrib/examples/Configurations/TurningRates/simulationConfig.xml b/sim/contrib/examples/Configurations/TurningRates/simulationConfig.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5b3a8066d2f9b12b52dda6ba18caab627eee1960
--- /dev/null
+++ b/sim/contrib/examples/Configurations/TurningRates/simulationConfig.xml
@@ -0,0 +1,89 @@
+
+ ProfilesCatalog.xml
+
+ 123
+ 1
+ 532725206
+
+ World_OSI
+
+
+
+ Scenario.xosc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Germany
+
+
+
+
+
+
+
+
+
+
+
+ Observation_Log
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Observation_EntityRepository
+
+
+
+
+
+
+
+
+
+
+ SpawnerScenario
+ PreRun
+ 1
+
+
+ SpawnerPreRunCommon
+ PreRun
+ 0
+ DefaultPreRunCommon
+
+
+ SpawnerRuntimeCommon
+ Runtime
+ 0
+ DefaultRuntimeCommon
+
+
+
diff --git a/sim/include/roadInterface/roadObjectInterface.h b/sim/include/roadInterface/roadObjectInterface.h
index ff792997775e48d15aa3bf7275026cb87bb2e419..6cd83c3810b57ce0b3eb895d697eaa618e9c4fc9 100644
--- a/sim/include/roadInterface/roadObjectInterface.h
+++ b/sim/include/roadInterface/roadObjectInterface.h
@@ -1,5 +1,6 @@
/********************************************************************************
* Copyright (c) 2017-2021 in-tech GmbH
+ * 2022 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
@@ -12,7 +13,7 @@
#include
#include "roadElementTypes.h"
-class RoadObjectInterface// : public RoadElementInterface
+class RoadObjectInterface
{
public:
RoadObjectInterface() = default;
@@ -22,19 +23,90 @@ public:
RoadObjectInterface& operator=(RoadObjectInterface&&) = delete;
virtual ~RoadObjectInterface() = default;
+ //-----------------------------------------------------------------------------
+ //! @brief Returns the type of the road object
+ //! @return type
+ //-----------------------------------------------------------------------------
virtual RoadObjectType GetType() const = 0;
+
+ //-----------------------------------------------------------------------------
+ //! @brief Returns the unique identification string of the road object
+ //! @return id
+ //-----------------------------------------------------------------------------
virtual std::string GetId() const = 0;
+
+ //-----------------------------------------------------------------------------
+ //! @brief Returns the s coordinate of the road object
+ //! @return s coordinate [m]
+ //-----------------------------------------------------------------------------
virtual double GetS() const = 0;
+
+ //-----------------------------------------------------------------------------
+ //! @brief Returns the t coordinate of the road object
+ //! @return t coordinate [m]
+ //-----------------------------------------------------------------------------
virtual double GetT() const = 0;
+
+ //-----------------------------------------------------------------------------
+ //! @brief Returns the zOffset of the road object
+ //! @return zOffset [m]
+ //-----------------------------------------------------------------------------
virtual double GetZOffset() const = 0;
+
+ //-----------------------------------------------------------------------------
+ //! @brief Check, if road object is valid for provided lane id
+ //!
+ //! @param[in] laneId lane id to test validity for
+ //!
+ //! @return True if valid, false otherwise.
+ //-----------------------------------------------------------------------------
virtual bool IsValidForLane(int laneId) const = 0;
+
+ //-----------------------------------------------------------------------------
+ //! @brief Returns the length of the road object
+ //! @return length [m]
+ //-----------------------------------------------------------------------------
virtual double GetLength() const = 0;
+
+ //-----------------------------------------------------------------------------
+ //! @brief Returns the width of the road object
+ //! @return width [m]
+ //-----------------------------------------------------------------------------
virtual double GetWidth() const = 0;
- virtual double GetHdg() const = 0;
+
+ //-----------------------------------------------------------------------------
+ //! @brief Returns the height of the road object
+ //! @return height [m]
+ //-----------------------------------------------------------------------------
virtual double GetHeight() const = 0;
+
+ //-----------------------------------------------------------------------------
+ //! @brief Returns the heading of the road object (relative to road direction)
+ //! @return heading [rad]
+ //-----------------------------------------------------------------------------
+ virtual double GetHdg() const = 0;
+
+ //-----------------------------------------------------------------------------
+ //! @brief Returns the pitch of the road object
+ //! @return pitch [rad]
+ //-----------------------------------------------------------------------------
virtual double GetPitch() const = 0;
+
+ //-----------------------------------------------------------------------------
+ //! @brief Returns the roll of the road object
+ //! @return roll [rad]
+ //-----------------------------------------------------------------------------
virtual double GetRoll() const = 0;
+
+ //-----------------------------------------------------------------------------
+ //! @brief Returns wether this is a continuous object (e.g. guard rail)
+ //-----------------------------------------------------------------------------
virtual bool IsContinuous() const = 0;
+
+ //-----------------------------------------------------------------------------
+ //! @brief Returns the name of the road object
+ //! @return name
+ //-----------------------------------------------------------------------------
virtual std::string GetName() const = 0;
};
diff --git a/sim/include/roadInterface/roadSignalInterface.h b/sim/include/roadInterface/roadSignalInterface.h
index 10b1c20409ef0f26566a1f5c873da09c67fe6303..50895161e110716ca6f11a1259c6bb0ef22c86b9 100644
--- a/sim/include/roadInterface/roadSignalInterface.h
+++ b/sim/include/roadInterface/roadSignalInterface.h
@@ -1,5 +1,6 @@
/********************************************************************************
* Copyright (c) 2019-2020 in-tech GmbH
+ * 2022 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
@@ -11,10 +12,9 @@
#include
#include "roadElementTypes.h"
-//#include "RoadElementInterface.h"
//! Represents a RoadSignal in OpenDrive
-class RoadSignalInterface// : public RoadElementInterface
+class RoadSignalInterface
{
public:
RoadSignalInterface() = default;
diff --git a/sim/include/signalInterface.h b/sim/include/signalInterface.h
index b2d36c0200b75383e583b97180bb888cb734a044..f1cdd1cc4560727ed46fe54e9377a83b7f2d5f1e 100644
--- a/sim/include/signalInterface.h
+++ b/sim/include/signalInterface.h
@@ -1,6 +1,7 @@
/********************************************************************************
* Copyright (c) 2016-2018 ITK Engineering GmbH
* 2017-2019 in-tech GmbH
+ * 2022 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
@@ -11,6 +12,7 @@
#pragma once
+#include
#include