You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Scenario execution is a backend- and middleware-agnostic library written in Python based on the generic scenario description language [OpenSCENARIO 2](https://www.asam.net/static_downloads/public/asam-openscenario/2.0.0/welcome.html) and [pytrees](https://py-trees.readthedocs.io/en/devel/).
6
+
Scenario execution is a backend- and middleware-agnostic library written in Python based on the generic scenario description language [OpenSCENARIO DSL](https://www.asam.net/standards/detail/openscenario-dsl/) and [pytrees](https://py-trees.readthedocs.io/en/devel/).
7
7
It reads a scenario definition from a file and then executes it, reusing available checks and actions. It is easily extendable through a library mechanism.
8
8
This separation of the scenario definition from implementation massively reduces the manual efforts of scenario creation.
Copy file name to clipboardexpand all lines: docs/architecture.rst
+7-7
Original file line number
Diff line number
Diff line change
@@ -7,8 +7,8 @@ Architecture
7
7
8
8
Overview of Scenario Execution
9
9
10
-
Scenario execution is built as a Python library on top of two open-source components: the generic scenario description language `OpenSCENARIO 2<https://www.asam.net/index.php?eID=dumpFile&t=f&f=3460&token=14e7c7fab9c9b75118bb4939c725738fa0521fe9>`_ and `PyTrees <https://py-trees.readthedocs.io/en/devel/introduction.html>`_.
11
-
In general, the user defines a scenario in the OpenSCENARIO 2 language, scenario execution parses the scenario, translates it to a behavior tree, executes it and finally gathers the test results.
10
+
Scenario execution is built as a Python library on top of two open-source components: the generic scenario description language `OpenSCENARIO DSL<https://www.asam.net/index.php?eID=dumpFile&t=f&f=3460&token=14e7c7fab9c9b75118bb4939c725738fa0521fe9>`_ and `PyTrees <https://py-trees.readthedocs.io/en/devel/introduction.html>`_.
11
+
In general, the user defines a scenario in the OpenSCENARIO DSL language, scenario execution parses the scenario, translates it to a behavior tree, executes it and finally gathers the test results.
12
12
13
13
14
14
.. figure:: images/scenario_execution_arch.png
@@ -18,7 +18,7 @@ In general, the user defines a scenario in the OpenSCENARIO 2 language, scenario
18
18
19
19
Our implementation is highly modular separating the core components from simulation- and/or middleware-specific modules realized through a plugin-based approach.
20
20
In principle, any additional feature that is required by a specific scenario and that can be implemented in Python could be realized as additional library.
21
-
A library typically provides an OpenSCENARIO 2 file with additional definitions and may provide code implementing additional functionality such as conditions or actions.
21
+
A library typically provides an OpenSCENARIO DSL file with additional definitions and may provide code implementing additional functionality such as conditions or actions.
22
22
23
23
Currently, the following sub-packages and libraries are available:
24
24
@@ -63,11 +63,11 @@ The Internal Model Builder, implemented as a Model Listener does an initial chec
63
63
Modules
64
64
-------
65
65
66
-
- ``scenario_execution``: The base package for scenario execution. It provides the parsing of OpenSCENARIO 2 files and the conversion to py-trees. It's middleware agnostic and can therefore be used as a basis for more specific implementations (e.g. ROS). It also provides basic OpenSCENARIO 2 libraries and actions.
67
-
- ``scenario_execution_ros``: This package uses ``scenario_execution`` as a basis and implements a ROS2 version of scenario execution. It provides a OpenSCENARIO 2 library with basic ROS2-related actions like publishing on a topic or calling a service.
66
+
- ``scenario_execution``: The base package for scenario execution. It provides the parsing of OpenSCENARIO DSL files and the conversion to py-trees. It's middleware agnostic and can therefore be used as a basis for more specific implementations (e.g. ROS). It also provides basic OpenSCENARIO DSL libraries and actions.
67
+
- ``scenario_execution_ros``: This package uses ``scenario_execution`` as a basis and implements a ROS2 version of scenario execution. It provides a OpenSCENARIO DSL library with basic ROS2-related actions like publishing on a topic or calling a service.
68
68
- ``scenario_execution_control``: Provides code to control scenario execution (in ROS2) from another application such as RViz.
69
-
- ``scenario_execution_coverage``: Provides tools to generate concrete scenarios from abstract OpenSCENARIO 2 scenario definition and execute them.
70
-
- ``scenario_execution_gazebo``: Provides a `Gazebo <https://gazebosim.org/>`_-specific OpenSCENARIO 2 library with actions.
69
+
- ``scenario_execution_coverage``: Provides tools to generate concrete scenarios from abstract OpenSCENARIO DSL scenario definition and execute them.
70
+
- ``scenario_execution_gazebo``: Provides a `Gazebo <https://gazebosim.org/>`_-specific OpenSCENARIO DSL library with actions.
71
71
- ``scenario_execution_interfaces``: Provides ROS2 `interfaces <https://docs.ros.org/en/rolling/Concepts/Basic/About-Interfaces.html>`__, more specifically, messages and services, which are used to interface ROS2 with the ``scenario_execution_control`` package.
72
72
- ``scenario_execution_rviz``: Contains several `rviz <https://github.com/ros2/rviz>`__ plugins for visualizing and controlling scenarios when working with ROS2.
73
73
- ``simulation/gazebo_tf_publisher``: Publish ground truth transforms from simulation within TF.
Copy file name to clipboardexpand all lines: docs/index.rst
+2-2
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@ Scenario Execution
3
3
==================
4
4
5
5
Scenario Execution for Robotics is a backend- and middleware-agnostic library, that enables the robotics community to perform reproducible experiments at scale and allows a seamless transition from simulation to real-world experiments.
6
-
Scenario Execution is written in Python and builds upon the generic scenario description language `OpenScenario2 <https://www.asam.net/static_downloads/public/asam-openscenario/2.0.0/welcome.html>`__ and `pytrees <https://py-trees.readthedocs.io/en/devel/>`__.
6
+
Scenario Execution is written in Python and builds upon the generic scenario description language `OpenSCENARIO DSL <https://www.asam.net/standards/detail/openscenario-dsl/>`__ and `pytrees <https://py-trees.readthedocs.io/en/devel/>`__.
7
7
8
8
Scenario Execution reads a scenario definition from a file, translates it to a py-trees behavior tree and then executes it. This separation of the scenario definition from the implementation massively reduces the manual efforts of (robotics) scenario creation.
9
9
Although Scenario Execution can be used as a pure Python library, it is mainly targeted to be used with the `Robot Operating System (ROS2) <https://www.ros.org/>`__. The backend-agnostic implementation allows Scenario Execution to be used with both, robotics simulators such as `Gazebo <https://gazebosim.org/>`__ and physical robots, with minimal adaptations necessary in the scenario description file.
@@ -37,5 +37,5 @@ If you use Scenario Execution for Robotics in your scientific work, please cite
Copy file name to clipboardexpand all lines: docs/libraries.rst
+1-1
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
Libraries
2
2
=========
3
3
4
-
Beside ``osc.standard`` provided by OpenSCENARIO 2 (which we divide into ``osc.standard`` and ``osc.standard_base``), multiple libraries are provided with scenario execution.
4
+
Beside ``osc.standard`` and ``osc.types`` provided by OpenSCENARIO DSL, multiple libraries are provided with scenario execution.
Copy file name to clipboardexpand all lines: docs/tutorials.rst
+8-8
Original file line number
Diff line number
Diff line change
@@ -8,13 +8,13 @@ Code for all tutorials is available in :repo_link:`examples`.
8
8
Define and Execute Scenario
9
9
---------------------------
10
10
11
-
To create a scenario in OpenSCENARIO 2 syntax, first create a file
11
+
To create a scenario in OpenSCENARIO DSL syntax, first create a file
12
12
with the extension ``.osc``. Input the following code in the file.
13
13
14
14
.. code-block::
15
15
16
16
# import the libraries with import expression
17
-
import osc.standard.base
17
+
import osc.types
18
18
import osc.helpers
19
19
20
20
# declare the scenario by the syntax: "scenario scenario_name:"
@@ -25,17 +25,17 @@ with the extension ``.osc``. Input the following code in the file.
25
25
wait elapsed(3s) # wait three seconds
26
26
log("Good Bye!") # log another message
27
27
28
-
The first two lines ``import osc.standard.base`` and ``import osc.helpers`` will import the named libraries that provide required definitions. In this example ``helpers`` library provides the ``log`` action and ``standard.base`` provides the definition of the `s` unit to specify seconds.
28
+
The first two lines ``import osc.types`` and ``import osc.helpers`` will import the named libraries that provide required definitions. In this example ``helpers`` library provides the ``log`` action and ``types`` provides the definition of the `s` unit to specify seconds.
29
29
30
30
.. note::
31
-
Comments in OpenSCENARIO 2 always start with ``#``.
31
+
Comments in OpenSCENARIO DSL always start with ``#``.
32
32
33
33
Then, a scenario with the name ``hello_world`` get declared. The following colon states that all following and indented lines
34
34
are part of it. The single top-level action of the scenario is defined in the ``do`` directive.
35
35
The term ``serial`` states that the included actions will be executed in sequence.
36
36
37
37
.. note::
38
-
OpenSCENARIO 2 supports the following compositions:
38
+
OpenSCENARIO DSL supports the following compositions:
39
39
40
40
* ``parallel``: execute actions in parallel, continue afterwards
41
41
* ``serial``: execute actions, one after the other
@@ -70,11 +70,11 @@ Create Scenario Library
70
70
-----------------------
71
71
72
72
To add new features to scenario execution, extensions libraries can be created. An extension library typically provides one or more
73
-
OpenSCENARIO 2 definition files and might additionally provide action implementations.
73
+
OpenSCENARIO DSL definition files and might additionally provide action implementations.
74
74
75
75
To show how to create such a library for scenario execution, we will add a ``custom_action`` action as an example.
76
76
77
-
First, we need to define the ``custom_action`` in a OpenSCENARIO 2 file.
77
+
First, we need to define the ``custom_action`` in a OpenSCENARIO DSL file.
78
78
79
79
.. code-block::
80
80
@@ -417,7 +417,7 @@ It is possible to call external python methods and use their return value within
Copy file name to clipboardexpand all lines: scenario_execution/README.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -4,8 +4,8 @@ The `scenario_execution` package is the core package of Scenario Execution for R
4
4
5
5
Furthermore, it provides the following scenario execution libraries:
6
6
7
-
-`standard.osc`: The OpenSCENARIO 2 standard library. It is slightly modified to be in sync with the feature set of scenario execution and imports `standard_base.osc`.
8
-
-`standard_base.osc`: The base parts of the OpenSCENARIO 2 standard library such as units and basic structs. For convenience, numerical struct members are initialized with 0.
7
+
-`standard.osc`: The OpenSCENARIO DSL standard library. It is slightly modified to be in sync with the feature set of scenario execution and imports `standard_base.osc`.
8
+
-`standard_base.osc`: The base parts of the OpenSCENARIO DSL standard library such as units and basic structs. For convenience, numerical struct members are initialized with 0.
9
9
-`robotics.osc`: robotic-specific specifications.
10
10
-`helper.osc`: helper actions such as logging or running external processes.
0 commit comments