Skip to content
Snippets Groups Projects
Commit 55d673d9 authored by Max  Bauer's avatar Max Bauer
Browse files

bosch-transfer-commit/22-10-24-add-simple-devcontainer-infra

parent c229f08e
No related branches found
No related tags found
No related merge requests found
......@@ -4,6 +4,7 @@ BasedOnStyle: Google
ColumnLimit: 120
BinPackParameters: false
DerivePointerAlignment: false
SortIncludes: false
PointerAlignment: Left
IndentPPDirectives: AfterHash
MaxEmptyLinesToKeep: 2
FROM ubuntu:20.04
# Required since otherwise the conatiner build will be stuck when installing cmake (cmake as a nonesense question, which shall be ignored)
ARG DEBIAN_FRONTEND=noninteractive
# Get essentials for dev environment
RUN apt-get -y update
RUN apt-get -y install build-essential
RUN apt-get -y install cmake
RUN apt-get -y install clang-format
# Get and build gtest
RUN apt-get -y install libgtest-dev
RUN cd /usr/src/gtest && cmake CMakeLists.txt && make && cp lib/*.a /usr/lib
\ No newline at end of file
{
"build": {
"dockerfile": "Dockerfile"
},
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.cpptools",
"notskm.clang-tidy",
"streetsidesoftware.code-spell-checker",
"visualstudioexptteam.vscodeintellicode",
"xaver.clang-format"
],
}
},
}
\ No newline at end of file
# The Yase package
## About Yase:
The **YASE (Yet Agnostic Scenario Engine / Another Scenario Engine)** package is a simulator agnostic scenario engine.
It is agnostic of the underlying simulator as well as of the used scenario input file format.
The **Yase (Yet Agnostic Scenario Engine / Another Scenario Engine)** package is a simulator agnostic scenario/simulation engine for the AD/ADAS context.
It is used for the development and testing of such intelligent vehicles.
The Yase eco system allows to create customized simulation solutions, which can be adapted easily to the system complexity by adapting extensions for simulators and scenario languages where needed.
The architecture is hereby orientated on programming language compilers. Within these compilers, programming languages are translated into an intermediate representation by a Frontend. From here, several Backends can translate the intermediate representation into different target architectures.
The architecture is hereby orientated on programming language compilers.
Within these compilers, programming languages are translated into an intermediate representation by a front-end.
From here, several back-ends can translate the intermediate representation into different target architectures.
!["Example of LLVM compiler"](doc/figures/compiler_example.png?raw=true)
This modular and flexible way is used within YASE. It contains an simulator and scenario file format agnostic Middleend. This Middleend can be filled by different Frontends, reading in different scenario formats. On the other side, different Backends can connect this with different simulators.
The following figure shows a **potential** expansion with potential simulation backends/ scenario formats frontends.
!["Example for a potential YASE setup"](doc/figures/scenario_compiler.png?raw=true)
This modular and flexible architecture is used for the Yase eco system.
The basis is the `agnostic_behavior_tree` in the middle-end (also refereed as the simulation kernel).
Furthermore it contains multiple other agnostic packages.
Around this middle-end the eco system with extensions can be build, which are agnostic of the underlying simulator as well as of the used scenario input file format.
This middle-end can be filled by different front-ends, compiling in different scenario formats.
On the other side, back-ends can connect this with different simulators or simulator feature subsets.
The following figure shows a **potential** expansion with potential simulation back-ends/ scenario formats front-ends.
!["Example for a potential Yase setup"](doc/figures/scenario_compiler.png?raw=true)
## Current YASE content:
## Current Yase content:
The current YASE project consist of the MiddleEnd packages:
The current Yase project consist of the middle-end packages.
Please follow the issues to track the current publishing process for the [`agnostic_type_system` (ATS)](https://gitlab.eclipse.org/eclipse/simopenpass/yase/-/issues/22) and the [OpenSCENARIO2.0 frontend](https://gitlab.eclipse.org/eclipse/simopenpass/yase/-/issues/23).
The implementation of the OpenSCENARIO1.x implementation can be found (here)[https://gitlab.eclipse.org/eclipse/simopenpass/openscenario1_engine].
**MiddleEnd**
**Middle-end**
* The **agnostic_behavior_tree** package with an agnostic behavior tree implementation. It allows to build up any scenario behavior with the help self implemented actions.
## How to start:
To play around with the project, one can use the containerized setup.
It installs all required dependencies.
Open the project with docker or [vscode](https://code.visualstudio.com/docs/remote/containers).
Once the container started, it is possible to build the available packages and run their tests:
``` shell
mkdir build && cd build
cmake ./../middle_end/agnostic_behavior_tree && make && ./agnostic_behavior_tree_test
```
---
Language: Cpp
BasedOnStyle: Google
ColumnLimit: 120
BinPackParameters: false
DerivePointerAlignment: false
PointerAlignment: Left
IndentPPDirectives: AfterHash
MaxEmptyLinesToKeep: 2
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment