Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: ieee.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.2%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: EFS-OpenSource
  • License: apache-2.0
  • Language: Python
  • Default Branch: main
  • Size: 4.77 MB
Statistics
  • Stars: 16
  • Watchers: 1
  • Forks: 3
  • Open Issues: 13
  • Releases: 0
Created about 4 years ago · Last pushed over 2 years ago
Metadata Files
Readme License Citation

README.md

Description

OSC-Generator is a collection of Python tools to generate ASAM OpenSCENARIO files from vehicle data and an ASAM OpenDRIVE file.

OSC-Workflow

The generated openSCENARIO file (.xosc) can then be used for purposes such as scenario re-simulations, or in further applications, for example, visualised in a tool like esmini.

openSCENARIO_visualisation_demo

Scope of Application

Currently, OpenSCENARIO V1.2 and OpenDRIVE V1.4 are supported. Intersections may currently cause trouble but will be supported in a future release. All features are tested in Python 3.7 on Windows 10.

Installation

PyPI

  • OSC-Generator can be installed using pip pip install osc-generator

Testing

  • Additional dependencies for testing are required.
    • Required Python packages can be installed via pip: pip install -r requirements_dev.txt
    • For testing, an ASAM OpenDRIVE file is needed. The file '2017-04-04TestfeldA9Nordoffset.xodr' from here can be used by downloading a copy to the tests/testdata_ folder. This file uses ASAM OpenDRIVE V1.4 format.
  • Run pytest in the tests folder or a parent folder thereof.
  • When everything is set up correctly, all tests should run successfully without raising any warnings.

Usage

  • Class: OSC-Generator provides a Python class which can be used to generate a scenario in the OpenSCENARIO format from trajectories and an OpenDRIVE file. The file example.py contains runnable example code for usage of this class.
  • CLI:

    • OSC-Generator can use arguments provided via Python's commandline interface. For information on how to use this feature, see the output of the help function:
    • When installed via pip, OSC-Generator can directly be called in the console: osc_generator -h
    • To use the OSC-Generator through the command line (without installation via pip), navigate to the main project directory and from there the help function can be called: python -m osc_generator.osc_generator -h
  • CLI arguments

    • the following table outlines the available input arguments

| Argument | Type | Default Value | Description | |-----|----------|--------------|--------------------------------------------------------------------| | "-t", "--trajectories" | required | N/A | Path to the file containing the object trajectories used as input | | "-d", "--opendrive" | required | N/A | Path to the opendrive file which describes the road net which the objects are using | | "-s", "--openscenario" | optional | "None" | Output file path and name. If not specified, a directory and name will be chosen. If the file already exists , it will be overwritten | | "-v", "--version" | optional | N/A | Show program's version number and exit | | "-cat", "--catalog" | optional | "None" | Catalog file path and name. If not specified, a default catalog path is used | | "-oscv", "--oscversion" | optional | "None" | Desired version of the output OpenScenario file. If not specified, default is OSC V1.0 |

Expected Input Data and Formats

Trajectories file

  • the input trajectories file can currently be provided in two formats

    • .csv
    • .osi (Open Simulation Interface - see below)
  • the following data is required in a .csv for an OpenSCENARIO file to be generated (especially when using lane data relative to the ego vehicle):

    • timestamp [seconds] - time of each data point, from the beginning of the "scenario"
    • lat [decimal degree (WGS84)] - latitude of the ego vehicle in the scenario
    • lon [decimal degree (WGS84)] - longitude of the ego vehicle in the scenario
    • heading [degrees (starting North, increasing clockwise)] - heading of the ego vehicle in the scenario
    • speed [kilometers/hour] - speed of the ego vehicle in the scenario
    • linlefttyp [-] - lane type of left lane
    • linleftbeginn_x [meters] - beginning left lane detection point, relative to the ego vehicle, in the x direction
    • linlefty_abstand [meters] - distance between the ego vehicle and the left lane, in the y direction
    • linleftkruemm [-] - the curvature of the left lane
    • linleftende_x [meters] - end left lane detection point, relative to the ego vehicle, in the x direction
    • linleftbreite [meters] - width of the lane marking
    • linrighttyp [-] - lane type of left lane
    • linrightbeginn_x [meters] - beginning right lane detection point, relative to the ego vehicle, in the x direction
    • linrighty_abstand [meters] - distance between the ego vehicle and the right lane, in the y direction
    • linrightkruemm [-] - the curvature of the right lane
    • linrightende_x [meters] - end right lane detection point, relative to the ego vehicle, in the x direction
    • linrightbreite [meters] - lane type of right lane
  • the following data is optional, depending on how many object vehicles are in the scenario - "#" represents the object number, starting at 1

    • posx# [meters] - distance between object vehicle and ego vehicle in x direction
    • posy# [meters] - distance between object vehicle and ego vehicle in y direction
    • speedx# [kilometers/hour] - speed of object vehicle in x direction
    • speedy# [kilometers/hour] - speed of object vehicle in y direction
    • class_# [-] - class/type of object, e.g. 7 = car class
  • for an example of an input trajectory .csv file, see "tests/testdata/trajectoriesfile.csv"

OpenDRIVE file

  • the OpenDRIVE file should be compliant with ASAM's standard
    • ideally matching the trajectory data too

Open Simulation Interface (OSI) Format Input

  • In order to use OSI format (.osi) input trajectory files with the OSC-Generator, the following steps are required:

    • install the Open Simulation Interface (OSI):
    • follow the installation instructions: https://github.com/OpenSimulationInterface/open-simulation-interface
    • copy the file 'OSITrace.py':
    • from "$PATHTOOSI_DIRECTORY\open-simulation-interface\format"
    • to "$PATHTOOSC-GENERATORDIRECTORY\OSC-Generator\oscgenerator\tools\OSI"
    • run tests
  • Usage of this feature functions as described above.

  • if OSI is not installed, the OSC-Generator can still be used with .csv input trajectory files.

Citation

An associated paper describes the original use case for which the OSC-Generator was created. See also this dissertation.

When using this software, please cite the following: @software{OSC-Generator, author = {{Montanari, Francesco}, {Akkaya, Yigit Ali}, {Boßmann, Nils}, {Sichermann, Jörg}, {Müller, Marcel}, {Aigner, Axel Jeronimo}, {D'Sa, Dave}}, license = {Apache-2.0}, title = {{OSC-Generator}}, url = {https://github.com/EFS-OpenSource/OSC-Generator}, version = {0.2.0} }

Acknowledgment

This work is supported by the German Federal Ministry for Digital and Transport (BMDV) within the Automated and Connected Driving funding program under grant No. 01MM20012F (SAVeNoW).

@copyright 2022 e:fs TechHub GmbH and Audi AG. All rights reserved. https://www.efs-techhub.com/ https://www.audi.com/de/company.html

@license Apache v2.0

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Owner

  • Name: e:fs Techhub
  • Login: EFS-OpenSource
  • Kind: organization

Always learning

Citation (CITATION.cff)

authors:
  -
    family-names: Montanari
    given-names: Francesco
  -
    family-names: Akkaya
    given-names: Yigit Ali
  -
    family-names: Boßmann
    given-names: Nils
  -
    family-names: Sichermann
    given-names: Jörg
  -
    family-names: Müller
    given-names: Marcel
  -
    family-names: Aigner
    given-names: Axel Jeronimo
  -
    family-names: D'Sa
    given-names: Dave
cff-version: "1.1.0"
license: "Apache-2.0"
version: "0.2.0"
message: "If you use this software, please cite it using these metadata."
abstract: "Python tools to generate open-scenarios files from trajectory data for automated driving."
repository-code: "https://github.com/EFS-OpenSource/OSC-Generator"
title: "OSC-Generator"

GitHub Events

Total
  • Issues event: 1
  • Watch event: 4
  • Member event: 1
  • Issue comment event: 2
  • Fork event: 1
Last Year
  • Issues event: 1
  • Watch event: 4
  • Member event: 1
  • Issue comment event: 2
  • Fork event: 1

Committers

Last synced: about 3 years ago

All Time
  • Total Commits: 21
  • Total Committers: 4
  • Avg Commits per committer: 5.25
  • Development Distribution Score (DDS): 0.571
Top Committers
Name Email Commits
Aigner a****r@e****e 9
DSa d****a@e****e 7
Aigner a****r@e****e 3
Dave DSa d****a@e****e 2
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 25
  • Total pull requests: 15
  • Average time to close issues: 4 months
  • Average time to close pull requests: 5 days
  • Total issue authors: 6
  • Total pull request authors: 2
  • Average comments per issue: 0.28
  • Average comments per pull request: 0.07
  • Merged pull requests: 15
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 2.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • AxelAignerEFS (11)
  • DaveDsaEFS (9)
  • zhaoyongqi2022 (2)
  • Yabing67 (1)
  • joergsi (1)
  • bbieberle (1)
Pull Request Authors
  • DaveDsaEFS (11)
  • AxelAignerEFS (4)
Top Labels
Issue Labels
enhancement (16) documentation (4) bug (2) duplicate (1)
Pull Request Labels
enhancement (1) documentation (1) bug (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 9 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 2
  • Total maintainers: 1
pypi.org: osc-generator

OSC-Generator can be used to generate ASAM OpenSCENARIO files from vehicle data and an ASAM OpenDRIVE file.

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 9 Last month
Rankings
Dependent packages count: 10.1%
Stargazers count: 18.5%
Dependent repos count: 21.6%
Forks count: 22.7%
Average: 23.4%
Downloads: 44.1%
Maintainers (1)
Last synced: 7 months ago

Dependencies

requirements.txt pypi
  • geographiclib *
  • matplotlib *
  • numpy *
  • openpyxl *
  • pandas *
  • pillow *
  • pyproj >=2.6.1
  • requests *
  • scipy *
  • shapely *
  • simplekml *
requirements_dev.txt pypi
  • pytest * development
  • xmldiff * development
setup.py pypi
  • l.strip *