Skip to content

Commit

Permalink
Merge branch 'main' into bag_play
Browse files Browse the repository at this point in the history
  • Loading branch information
fred-labs authored Sep 16, 2024
2 parents bc72a78 + 0e37b69 commit fba2836
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 9 deletions.
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ title: "Scenario Execution for Robotics"
date-released: "2024-03-05"
url: "https://github.com/intellabs/scenario_execution"
preferred-citation:
type: unpublished
type: article
authors:
- family-names: "Pasch"
given-names: "Frederik"
Expand All @@ -33,4 +33,4 @@ preferred-citation:
orcid: "https://orcid.org/0000-0001-6337-1798"
title: "Scenario Execution for Robotics: A generic, backend-agnostic library for running reproducible robotics experiments and tests"
year: 2024
notes: "Submitted for publication, currently under review"
url: "https://arxiv.org/abs/2409.07080"
18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,23 @@ Upon arrival of the goal position, the scenario ends and the simulation gets cle

Please find the documentation [here](https://intellabs.github.io/scenario_execution).

## How to cite

If you use Scenario Execution for Robotics in your scientific work, please cite our paper [Scenario Execution for Robotics: A generic, backend-agnostic library for running reproducible robotics experiments and tests](https://arxiv.org/pdf/2409.07080)

```bibtex
@Article{Pasch2024,
author = {Pasch, Frederik and Mirus, Florian and Zhang, Yongzhou and Scholl, Kay-Ulrich},
title = {Scenario Execution for Robotics: A generic, backend-agnostic library for running reproducible robotics experiments and tests},
journal = {Computing Research Repository (CoRR)},
year = {2024},
eprint = {2409.07080},
archivePrefix = {arXiv},
primaryClass = {cs.RO},
url = {https://arxiv.org/abs/2409.07080},
}
```

## Setup

### Installation from source as ROS 2 workspace
Expand Down Expand Up @@ -54,3 +71,4 @@ To launch a scenario with ROS2:
```bash
ros2 launch scenario_execution_ros scenario_launch.py scenario:=examples/example_scenario/hello_world.osc live_tree:=True
```

17 changes: 10 additions & 7 deletions docs/citation.html
Original file line number Diff line number Diff line change
Expand Up @@ -395,24 +395,27 @@
<thead><tr><th width="20%">Author</th><th width="30%">Title</th><th width="5%">Year</th><th width="30%">Journal/Proceedings</th><th width="10%">Reftype</th><th width="5%">DOI/URL</th></tr></thead>
<tbody><tr id="Pasch2024" class="entry">
<td>Frederik, P., Mirus, F., Zhang, Y. and Scholl, K.-U.</td>
<td>Scenario Execution for Robotics: A generic, backend-agnostic library for running reproducible robotics experiments and tests <p class="infolinks">[<a href="javascript:toggleInfo('Pasch2024','abstract')">Abstract</a>] [<a href="javascript:toggleInfo('Pasch2024','bibtex')">BibTeX</a>]</p></td>
<td>Scenario Execution for Robotics: A generic, backend-agnostic library for running reproducible robotics experiments and tests <p class="infolinks">[<a href="javascript:toggleInfo('Pasch2024','abstract')">Abstract</a>] [<a href="javascript:toggleInfo('Pasch2024','bibtex')">BibTeX</a>] [<a href="https://arxiv.org/pdf/2409.07080">Pdf</a>]</p></td>
<td>2024</td>
<td>Arxiv</td>
<td>&nbsp;</td>
<td>unpublished</td>
<td><a href="https://github.com/IntelLabs/scenario_execution">URL</a>&nbsp;</td>
<td><a href="https://arxiv.org/abs/2409.07080">URL</a>&nbsp;</td>
</tr>
<tr id="abs_Pasch2024" class="abstract noshow">
<td colspan="6"><b>Abstract</b>: Testing and evaluation of robotics systems is a difficult and oftentimes tedious task due to the systems’ complexity and a lack of tools to conduct reproducible robotics experiments. Additionally, almost all available tools are either tailored towards a specific application domain, simulator or middleware. Particularly scenario-based testing, a common practice in the domain of automated driving, is not sufficiently covered in the robotics domain. In this paper, we propose a novel backend- and middleware-agnostic approach for conducting systematic, reproducible and automatable robotics experiments called Scenario Execution for Robotics. Our approach is implemented as a Python library built on top of the generic scenario description language OpenSCENARIO 2 and Behavior Trees and is made publicly available on GitHub. In extensive experiments, we demonstrate that our approach supports multiple simulators as backend and can be used as a standalone Python-library or as part of the ROS2 ecosystem. Furthermore, we demonstrate how our approach enables testing over ranges of varying values. Finally, we show how Scenario Execution for Robotics allows to move from simulation-based to real-world experiments with minimal adaptations to the scenario description file.</td>
</tr>
<tr id="bib_Pasch2024" class="bibtex noshow">
<td colspan="6"><b>BibTeX</b>:
<pre>
@unpublished{Pasch2024,
author = {Pasch Frederik and Mirus, Florian and Zhang, Yongzhou and Scholl, Kay-Ulrich},
@Article{Pasch2024,
author = {Pasch, Frederik and Mirus, Florian and Zhang, Yongzhou and Scholl, Kay-Ulrich},
title = {Scenario Execution for Robotics: A generic, backend-agnostic library for running reproducible robotics experiments and tests},
journal = {Computing Research Repository (CoRR)},
year = {2024},
note = {Submitted for publication, currently under review},
url = {https://github.com/IntelLabs/scenario_execution}
eprint = {2409.07080},
archivePrefix = {arXiv},
primaryClass = {cs.RO},
url = {https://arxiv.org/abs/2409.07080},
}
</pre></td>
</tr>
Expand Down
5 changes: 5 additions & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@ gets cleaned up.

scenario execution in action

How to cite
-----------

If you use Scenario Execution for Robotics in your scientific work, please cite our paper `Scenario Execution for Robotics: A generic, backend-agnostic library for running reproducible robotics experiments and tests <https://arxiv.org/pdf/2409.07080>`__. See :doc:`how_to_cite` for the full BibTeX reference.

.. toctree::
:maxdepth: 2
:caption: Contents:
Expand Down
22 changes: 22 additions & 0 deletions test/scenario_execution_test/test/test_external_method.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,3 +154,25 @@ def test_dict(val: test_struct) -> int is external scenario_execution_test.exter
with open(self.tmp_file.name) as f:
result = f.read()
self.assertEqual(result, "{'mem1': 1, 'mem2': 'bar'}")

def test_success_list_with_method_output(self):
scenario_content = """
struct test_struct:
mem1: int = 3
mem2: string = "bar"
struct lib:
def test_dict(val: test_struct) -> int is external scenario_execution_test.external_methods.external_methods.test_dict()
action store_action:
file_path: string
value: list of string
scenario test:
do store_action('""" + self.tmp_file.name + """', ['test', lib.test_dict(test_struct(mem1: 1, mem2: "bar")), 'prefix' + lib.test_dict(test_struct(mem1: 2, mem2: "foo"))])
"""
self.execute(scenario_content)
self.assertTrue(self.scenario_execution.process_results())
with open(self.tmp_file.name) as f:
result = f.read()
self.assertEqual(result, "['test', \"{'mem1': 1, 'mem2': 'bar'}\", \"prefix{'mem1': 2, 'mem2': 'foo'}\"]")

0 comments on commit fba2836

Please sign in to comment.