Skip to content

Commit

Permalink
Merge pull request #41 from asam-ev/remove-qc4openx-and-openx-from-doc
Browse files Browse the repository at this point in the history
Removed term QC4OpenX and OpenX specific information from documentation
  • Loading branch information
andreaskern74 authored May 6, 2024
2 parents 226ef3c + 3e8520b commit 7449de9
Show file tree
Hide file tree
Showing 17 changed files with 442 additions and 379 deletions.
12 changes: 8 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,10 +101,14 @@ Thank you for contributing, any contributions in terms of requirements,
feedback, issues or code are appreciated. Please consider the following
guidelines for orientation when contributing to this project.

[cpp core guidelines]: https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
[google python style guide]: https://github.com/google/styleguide/blob/gh-pages/pyguide.md
[clean code]: https://medium.com/mindorks/how-to-write-clean-code-lessons-learnt-from-the-clean-code-robert-c-martin-9ffc7aef870c
[meaningful variable names]: https://medium.com/coding-skills/clean-code-101-meaningful-names-and-functions-bf450456d90c
[cpp core guidelines]:
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
[google python style guide]:
https://github.com/google/styleguide/blob/gh-pages/pyguide.md
[clean code]:
https://medium.com/mindorks/how-to-write-clean-code-lessons-learnt-from-the-clean-code-robert-c-martin-9ffc7aef870c
[meaningful variable names]:
https://medium.com/coding-skills/clean-code-101-meaningful-names-and-functions-bf450456d90c

* Follow the C++ Core Guidelines [cpp core guidelines]
* Try to follow PEP guidelines and [google python style guide]
Expand Down
48 changes: 26 additions & 22 deletions INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,14 @@ Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
-->

# How-to Build and Install QC4OpenX
# How-to Build and Install

QC4OpenX runs on Linux and Windows.
The ASAM Quality Checker Framework runs on Linux and Windows.

## Toolchain

- GCC 7.5 or newer compiler under Linux or Visual Studio 16 2019 or newer compiler under Windows
- GCC 7.5 or newer compiler under Linux or Visual Studio 16 2019 or newer
compiler under Windows
- CMake 3.16 or newer (get it here: <https://cmake.org/download>)

## 3rd Party Dependencies
Expand Down Expand Up @@ -47,28 +48,31 @@ Links to download the sources and the tested versions can be found in the
- 1.0.0
- 1.1.0

The XSD files are required for the basic test of validating the formal correctness of a OpenDRIVE or
OpenSCENARIO file. All ASAM files are free of charge and require only a valid email address to
enable the download.
The XSD files are required for the basic test of validating the formal
correctness of a OpenDRIVE or OpenSCENARIO file. All ASAM files are free of
charge and require only a valid email address to enable the download.

## Preparation

Before we can proceed to build and install QC4OpenX, we need to setup all 3rd party dependencies.
Download, build and install the above listed.
Before we can proceed to build and install the software, we need to setup all
3rd party dependencies. Download, build and install the above listed.

After the download of at least one ASAM OpenDRIVE and one ASAM OpenSCENARIO specification the XSD
files from the archives need to be placed in some arbitrary folders. Older versions have only a
single XSD file, whereas newer versions have multiple files. Nevertheless, extract all XSD files
into an empty folder. After a successful installation of QC4OpenX this folder can be deleted.
After the download of at least one ASAM OpenDRIVE and one ASAM OpenSCENARIO
specification the XSD files from the archives need to be placed in some
arbitrary folders. Older versions have only a single XSD file, whereas newer
versions have multiple files. Nevertheless, extract all XSD files into an empty
folder. After a successful installation of the ASAM Quality Checker Framework
this folder can be deleted.

## Build QC4OpenX
## Build

- Use CMakeLists.txt within the main directory as source directory
- Do not forget to set `CMAKE_INSTALL_PREFIX`
- Do not forget to set `CMAKE_BUILD_TYPE` if using CMake generator `Unix Makefiles`
- Do not forget to set `CMAKE_BUILD_TYPE` if using CMake generator `Unix
Makefiles`

For Windows Visual Studio 16 2019 an example CMake call to build the QC4OpenX looks like this (call
from the repository root):
For Windows Visual Studio 16 2019 an example CMake call to build the framework
looks like this (call from the repository root):

```bash
$ mkdir ../build
Expand All @@ -90,12 +94,12 @@ With the following CMake values:

- _\<prefix\>_: The prefix CMake installs the package to
- _\<GTest_ROOT\>_: The root dir of the pre-built GoogleTest package
- _\<asam_opendrive_xsd_dir\>_: The directory containing the schema (*.xsd) files for OpenDRIVE
downloaded from the ASAM website (multiple versions of the schema files in this directory are
supported).
- _\<asam_openscenario_xsd_dir\>_: The directory containing the schema (*.xsd) files for
OpenSCENARIO downloaded from the ASAM website (multiple versions of the schema files in this
directory are supported).
- _\<asam_opendrive_xsd_dir\>_: The directory containing the schema (*.xsd)
files for OpenDRIVE downloaded from the ASAM website (multiple versions of
the schema files in this directory are supported).
- _\<asam_openscenario_xsd_dir\>_: The directory containing the schema (*.xsd)
files for OpenSCENARIO downloaded from the ASAM website (multiple versions of
the schema files in this directory are supported).
- _\<xerces_c_root\>_: The root dir of the pre-built Xerces-C++ package
- _\<dev_essential_ROOT\>_: The root dir of the pre-built dev_essential package
- _\<Qt5_ROOT\>_: The root dir of the pre-built qt5 package
Expand Down
112 changes: 62 additions & 50 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,79 +6,91 @@ Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
-->

# ![Logo Image](doc/manual/images/qc4openx_logo.drawio.png)

QC4OpenX is a framework designed for quality assessment of the ASAM OpenX standards
[OpenDRIVE](https://www.asam.net/standards/detail/opendrive) and
[OpenSCENARIO](https://www.asam.net/standards/detail/openscenario). This quality assessment is done
by so called checkers that are grouped into checker bundles.

The framework can easily be extended with additional checks and checker bundles and users are able
to select which checks will be included in their configuration. Checker bundles are executables, so
it is possible to write checker bundles in any programming language.

All individual checker outputs are collected and merged into a single result file, that can be
evaluated either automatically by parsing the XML output, manually by reading the text output or
interactively using the provided "ReportGUI" module.
# ![Logo Image](doc/manual/images/qc_framework_logo.drawio.png)

The ASAM Quality Checker Framework is designed for quality assessment of the
ASAM standards like
[OpenDRIVE](https://www.asam.net/standards/detail/opendrive),
[OpenSCENARIO](https://www.asam.net/standards/detail/openscenario) and others.
This quality assessment is done by so called checkers that are grouped into
checker libraries.

The framework can easily be extended with additional checker libraries
and users are able to select which checks will be included in their
configuration. Checkers are implemented in checker bundles. These are
executables, so it is possible to write checker bundles in any programming
language.

All individual checker outputs are collected and merged into a single result
file, that can be evaluated either automatically by parsing the XML output,
manually by reading the text output or interactively using the provided
"ReportGUI" module.

# Use Cases

QC4OpenX allows developers to write their own rule sets that go beyond the verification of the
formal correctness by means of the XML Schema files. The formal correctness is only a first step and
not sufficient to assess the quality. Hence more sophisticated quality checks are required.
The ASAM Quality Checker Framework allows developers to write their own rule
sets that go beyond the verification of the formal correctness by means of the
XML Schema files. The formal correctness is only a first step and not
sufficient to assess the quality. Hence more sophisticated quality checks are
required.

The framework was designed to support a variety of use cases that require different types of
checkers. Most applications require checkers that evaluate geometries, other physical properties or
the data integrity of the static and dynamic parts of a virtual environment.
The framework was designed to support a variety of use cases that require
different types of checkers. Most applications require checkers that evaluate
geometries, other physical properties or the data integrity of the static and
dynamic parts of a virtual environment.

Other checkers may be created for statistical evaluation of the input files. This allows users to
ensure the existence of specific objects, such as obstacles or traffic signs that are crucial for
their use-case in the input files.
Other checkers may be created for statistical evaluation of the input files.
This allows users to ensure the existence of specific objects, such as
obstacles or traffic signs that are crucial for their use-case in the input
files.

Additionally, there may be more checks necessary to ensure that the files can be used in a specific
simulation environment, because not all simulation environments support the full feature set of the
standard.
Additionally, there may be more checks necessary to ensure that the files can
be used in a specific simulation environment, because not all simulation
environments support the full feature set of the standard.

Besides performing static files checks, which read, evaluate and analyze the content, it can also be
feasible to create checkers that run a simulation and analyze the simulation results, since
non-plausible simulation behavior may point to problems in the input files.
Besides performing static files checks, which read, evaluate and analyze the
content, it can also be feasible to create checkers that run a simulation and
analyze the simulation results, since non-plausible simulation behavior may
point to problems in the input files.

# Features

The following features are provided with QC4OpenX:
The following features are provided:

- Modular framework specification that allow users to create their own checkers to support the use
cases described above
- Modular framework specification that allow users to create their own checkers
to support the use cases described above
- Configuration GUI to select and parameterize checker rules
- Runtime to call the checker rule sets and merge all results
- Text report module to generate a human readable result file
- Report GUI to explore the results in the XML source code
- Plugin system for connecting the Report GUI to any visualization engine to show the results
directly in the map
- XSD Schema checker for OpenDRIVE and OpenSCENARIO to validate the schema conformity of the XML
document
- Report GUI to explore the results in the source code of the input file
- Plugin system for connecting the Report GUI to any visualization engine to
show the results directly in the map
- C++ base library to read/write the configuration and result file format
- Examples

An architecture overview and documentation is provided in the [documentation](doc/manual/readme.md)
and a detailed changelog can be found [here](doc/changelog.txt).
An architecture overview and documentation is provided in the
[documentation](doc/manual/readme.md) and a detailed changelog can be found
[here](doc/changelog.txt).

# Getting Started

QC4OpenX can be build for Windows and Linux. Currently there are no pre-built binaries available for
the framework. Follow the [build instructions](INSTALL.md) to create a runnable binary on your
machine. [Examples](examples) are provided in this repository.
The software can be build for Windows and Linux. Currently there are no
pre-built binaries available for the framework. Follow the [build
instructions](INSTALL.md) to create a runnable binary on your machine.
[Examples](examples) are provided in this repository.

# How to Contribute

A C++ base library is provided, so users can provide their own user defined modules. Since checker
bundles are executables, it is also possible to write checker bundles in any other programming
language. Check out the [documentation](doc/manual/readme.md) for details on how to extend the
framework and write your own checks. Contributions to the project in the form of code or feedback
are encouraged, please keep in mind the [contribution guidelines](CONTRIBUTING.md).
A C++ base library is provided, so users can provide their own user defined
modules. Since checker bundles are executables, it is also possible to write
checker bundles in any other programming language. Check out the
[documentation](doc/manual/readme.md) for details on how to extend the
framework and write your own checks. Contributions to the project in the form
of code or feedback are encouraged, please keep in mind the [contribution
guidelines](CONTRIBUTING.md).

# License Information

The QC4OpenX is delivered under the [MPL - Mozilla Public License - Version 2.0](LICENSE). A
detailed overview of the licenses used in all libraries is provided in the
[appendix](licenses/readme.md).
The ASAM Quality Checker Framework is delivered under the [MPL - Mozilla Public
License - Version 2.0](LICENSE). A detailed overview of the licenses used in
all libraries is provided in the [appendix](licenses/readme.md).
Loading

0 comments on commit 7449de9

Please sign in to comment.