Generation of OpenSCENARIO and OpenDRIVE xml files
Project description
scenariogeneration
The Python scenariogeneration package is a collection of libraries for generating OpenSCENARIO (.xosc) and OpenDRIVE (.xodr) XML files.
This combined package (which includes the former pyoscx, pyodrx) can be used to jointly generate OpenSCENARIO based scenarios with interlinked OpenDRIVE based road network maps. Nevertheless, it is still possible to separately generate OpenSCENARIO or OpenDRIVE files by using only a subset of the provided functionality.
The package consists of the scenario_generator module and two Python subpackages, xosc (OpenSCENARIO) and xodr (OpenDRIVE), together with some support functionality for auto generation with parametrization as well as easy viewing with esmini.
The user documentation can be found here, the API documentation here and the change log in release_notes.md
Please note that this is not an official implementation of either OpenSCENARIO or OpenDRIVE.
Coverage
As of V0.5.0, the coverage of the modules varies:
- The xosc module has full coverage of OpenSCENARIO V1.0.0, and most of V1.1.0, if something is missing please raise an issue or make a pull request.
- The xodr module has coverage of basic roads, junctions, signals, and objects, based on OpenDrive (V 1.5.0).
For more details se xodr_coverage.txt and xosc_missing_features.txt
Getting Started
pip install scenariogeneration
then run any of the examples provided
Prerequisites
Been tested with Python >3.6.9. With Python versions <3.7 the order of certain xml-elements might not be the same between generations.
Installing
pip install scenariogeneration
Usage
Please see the user guide for more information: https://pyoscx.github.io/
Running with esmini
Esmini can be used to visualize the generated scenarios. Visit https://github.com/esmini/esmini and follow the "Binaries and demos" section. Your scenarios can be visualized directly by making use of esminiRunner in the following way:
from scenariogeneration import esmini
def Scenario(ScenarioGenerator): ...
s = Scenario()
if __name__ == "__main__":
s = Scenario()
esmini(s,esminipath ='path to esmini', index_to_run = 'first')
where index_to_run can be 'first', 'random', 'middle' or an integer, and esmini will run that scenario/road for you.
Related work
esmini
esmini is a basic OpenSCENARIO player
clothoids
pyclothoids, used for construction and optimization of clothoids gemetries
blender implementation
Authors
-
Mikael Andersson - Initial work - MandolinMicke (xosc & xodr)
-
Irene Natale - Inital work - inatale93 (xodr)
-
Andreas Tingberg - Maintainer - atingber
Data formats
The wrappers is based on the OpenSCENARIO and OpenDRIVE standards.
describes the static content of a scenario, like the road, lanes, signs and so on.
describes the dynamic content on top of a road network, e.g. traffic maneuvers, weather conditions, and so on.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file scenariogeneration-0.7.5.tar.gz
.
File metadata
- Download URL: scenariogeneration-0.7.5.tar.gz
- Upload date:
- Size: 136.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.8.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f7ec5e764605297ab2a0c084bacfe3cfaa78787a0dbbafd8f5743a23d031fac |
|
MD5 | b313c90a9e1698661151173dc348b1e1 |
|
BLAKE2b-256 | ddd7fd42709bae7adba416c050fcd2ad867ba94af6a0b2f9d97bc84d2e369ab6 |