# CommonRoad
[![PyPI pyversions](https://img.shields.io/pypi/pyversions/commonroad-io.svg)](https://pypi.python.org/pypi/commonroad-io/)
![Linux](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black)
![Windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white)
![macOS](https://img.shields.io/badge/mac%20os-000000?style=for-the-badge&logo=macos&logoColor=F0F0F0)
[![PyPI version fury.io](https://badge.fury.io/py/commonroad-io.svg)](https://pypi.python.org/pypi/commonroad-io/)
[![PyPI download month](https://img.shields.io/pypi/dm/commonroad-io.svg?label=PyPI%20downloads)](https://pypi.python.org/pypi/commonroad-io/)
[![PyPI download week](https://img.shields.io/pypi/dw/commonroad-io.svg?label=PyPI%20downloads)](https://pypi.python.org/pypi/commonroad-io/)
[![PyPI license](https://img.shields.io/pypi/l/commonroad-io.svg)](https://pypi.python.org/pypi/commonroad-io/)
Numerical experiments for motion planning of road vehicles require numerous ingredients: vehicle dynamics,
a road network, static obstacles, dynamic obstacles and their movement over time, goal regions, a cost function, etc.
Providing a description of the numerical experiment precise enough to reproduce it might require several pages of
information.
Thus, only key aspects are typically described in scientific publications, making it impossible to reproduce
results - yet, reproducibility is an important asset of good science.
Composable benchmarks for motion planning on roads (CommonRoad) are proposed so that numerical experiments are fully
defined by a unique ID; all required information to reconstruct the experiment can be found on [commonroad.in.tum.de](https://commonroad.in.tum.de/).
Each benchmark is composed of a [vehicle model](https://gitlab.lrz.de/tum-cps/commonroad-vehicle-models/blob/master/vehicleModels_commonRoad.pdf),
a [cost function](https://gitlab.lrz.de/tum-cps/commonroad-cost-functions/blob/master/costFunctions_commonRoad.pdf),
and a [scenario](https://commonroad.in.tum.de/scenarios/) (including goals and constraints).
The scenarios are partly recorded from real traffic and partly hand-crafted to create dangerous situations.
Solutions to the benchmarks can be uploaded and ranked on the CommonRoad Website.
Learn more about the scenario specification [here](https://gitlab.lrz.de/tum-cps/commonroad-scenarios/blob/master/documentation/XML_commonRoad_2020a.pdf).
# commonroad-io
The commonroad-io package provides methods to read, write, and visualize CommonRoad scenarios and planning problems. Furthermore, it can be used as a framework for implementing motion planning algorithms to solve CommonRoad Benchmarks and is the basis for other tools of the CommonRoad Framework.
With commonroad-io, those solutions can be written to xml-files for uploading them on [commonroad.in.tum.de](https://commonroad.in.tum.de/).
commonroad-io 2024.2 is compatible with CommonRoad scenarios in version 2020a and supports reading 2018b scenarios.
The software is written in Python and tested on Linux for the Python 3.9, 3.10, 3.11 and 3.12.
## Documentation
The full documentation of the API and introducing examples can be found under [https://cps.pages.gitlab.lrz.de/commonroad/commonroad-io/](https://cps.pages.gitlab.lrz.de/commonroad/commonroad-io/).
For getting started, we recommend our [tutorials](https://commonroad.in.tum.de/commonroad-io).
## Additional Tools
Based on commonroad-io, we have developed a list of tools supporting the development of motion-planning algorithms:
* [Drivability Checker](https://commonroad.in.tum.de/tools/drivability-checker)
* [CommonRoad-SUMO Interface](https://commonroad.in.tum.de/tools/sumo-interface)
* [Scenario Designer](https://commonroad.in.tum.de/tools/scenario-designer)
* [Vehicle Models](https://commonroad.in.tum.de/tools/model-cost-functions)
* [Dateset Converters](https://gitlab.lrz.de/tum-cps/dataset-converters)
* [Interactive Scenarios](https://gitlab.lrz.de/tum-cps/commonroad-interactive-scenarios)
* [Apollo Interface](https://gitlab.lrz.de/tum-cps/commonroad-apollo-interface)
## Requirements
The required dependencies for running commonroad-io are:
* numpy>=1.13
* scipy>=1.5.2
* shapely>=2.0.1
* matplotlib>=2.2.2
* lxml>=4.2.2
* networkx>=2.2
* Pillow>=7.0.0
* commonroad-vehicle-models>=2.0.0
* rtree>=0.8.3
* protobuf==3.20.1
## Installation
commonroad-io can be installed with::
pip install commonroad-io
Alternatively, clone from our gitlab repository::
git clone https://gitlab.lrz.de/tum-cps/commonroad_io.git
and add the folder commonroad-io to your Python environment.
## Changelog
Compared to version 2024.1, the following features have been added or changed:
### Added
- Github actions for ubuntu, windows, and macOS
- Gitlab runner for arm64 ubuntu
- Support for reading xml and protobuf byte streams
- Support for numpy `>=2.0`
- Adjustable zorder for dynamic obstacle & lanelet visualization
### Fixed
- AreaBorder can have multiple adjacent lanelets
- Performance regression for occupancy_set lookups in TrajectoryPrediction
- Matplotlib `>=3.9.0` support
### Removed
- Support for Python 3.8
## Authors
Contribution (in alphabetic order by last name): Yannick Ballnath, Behtarin Ferdousi, Luis Gressenbuch, Moritz Klischat,
Markus Koschi, Sebastian Maierhofer, Stefanie Manzinger, Christina Miller, Christian Pek, Anna-Katharina Rettinger,
Simon Sagmeister, Moritz Untersperger, Murat Üste, Xiao Wang
## Credits
We gratefully acknowledge partial financial support by
* DFG (German Research Foundation) Priority Program SPP 1835 Cooperative Interacting Automobiles
* BMW Group within the Car@TUM project
* German Federal Ministry of Economics and Technology through the research initiative Ko-HAF
## Citation
**If you use our code for research, please consider to cite our paper:**
```
@inproceedings{Althoff2017a,
author = {Althoff, Matthias and Koschi, Markus and Manzinger, Stefanie},
title = {CommonRoad: Composable benchmarks for motion planning on roads},
booktitle = {Proc. of the IEEE Intelligent Vehicles Symposium},
year = {2017},
pages={719-726},
abstract = {Numerical experiments for motion planning of road vehicles require numerous components: vehicle
dynamics, a road network, static obstacles, dynamic obstacles and their movement over time, goal
regions, a cost function, etc. Providing a description of the numerical experiment precise enough to
reproduce it might require several pages of information. Thus, only key aspects are typically described
in scientific publications, making it impossible to reproduce results—yet, re- producibility is an
important asset of good science. Composable benchmarks for motion planning on roads (CommonRoad) are
proposed so that numerical experiments are fully defined by a unique ID; all information required to
reconstruct the experiment can be found on the CommonRoad website. Each benchmark is composed by a
vehicle model, a cost function, and a scenario (including goals and constraints). The scenarios are
partly recorded from real traffic and partly hand-crafted to create dangerous situations. We hope that
CommonRoad saves researchers time since one does not have to search for realistic parameters of vehicle
dynamics or realistic traffic situations, yet provides the freedom to compose a benchmark that fits
one’s needs.},
}
```
Raw data
{
"_id": null,
"home_page": "https://commonroad.in.tum.de",
"name": "commonroad-io",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": "autonomous, automated, vehicles, driving, motion, planning",
"author": "Cyber-Physical Systems Group, Technical University of Munich",
"author_email": "commonroad@lists.lrz.de",
"download_url": "https://files.pythonhosted.org/packages/bf/ae/015b0dabae500495993e5adbe8afe4aad3b62e167aeca1f5fb4521f1dcb7/commonroad_io-2024.2.tar.gz",
"platform": null,
"description": "# CommonRoad\n[![PyPI pyversions](https://img.shields.io/pypi/pyversions/commonroad-io.svg)](https://pypi.python.org/pypi/commonroad-io/) \n![Linux](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black)\n![Windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white)\n![macOS](https://img.shields.io/badge/mac%20os-000000?style=for-the-badge&logo=macos&logoColor=F0F0F0) \n[![PyPI version fury.io](https://badge.fury.io/py/commonroad-io.svg)](https://pypi.python.org/pypi/commonroad-io/)\n[![PyPI download month](https://img.shields.io/pypi/dm/commonroad-io.svg?label=PyPI%20downloads)](https://pypi.python.org/pypi/commonroad-io/) \n[![PyPI download week](https://img.shields.io/pypi/dw/commonroad-io.svg?label=PyPI%20downloads)](https://pypi.python.org/pypi/commonroad-io/) \n[![PyPI license](https://img.shields.io/pypi/l/commonroad-io.svg)](https://pypi.python.org/pypi/commonroad-io/)\n\n\nNumerical experiments for motion planning of road vehicles require numerous ingredients: vehicle dynamics, \na road network, static obstacles, dynamic obstacles and their movement over time, goal regions, a cost function, etc. \nProviding a description of the numerical experiment precise enough to reproduce it might require several pages of \ninformation. \nThus, only key aspects are typically described in scientific publications, making it impossible to reproduce \nresults - yet, reproducibility is an important asset of good science.\n\nComposable benchmarks for motion planning on roads (CommonRoad) are proposed so that numerical experiments are fully \ndefined by a unique ID; all required information to reconstruct the experiment can be found on [commonroad.in.tum.de](https://commonroad.in.tum.de/).\nEach benchmark is composed of a [vehicle model](https://gitlab.lrz.de/tum-cps/commonroad-vehicle-models/blob/master/vehicleModels_commonRoad.pdf), \na [cost function](https://gitlab.lrz.de/tum-cps/commonroad-cost-functions/blob/master/costFunctions_commonRoad.pdf), \nand a [scenario](https://commonroad.in.tum.de/scenarios/) (including goals and constraints). \nThe scenarios are partly recorded from real traffic and partly hand-crafted to create dangerous situations. \nSolutions to the benchmarks can be uploaded and ranked on the CommonRoad Website.\nLearn more about the scenario specification [here](https://gitlab.lrz.de/tum-cps/commonroad-scenarios/blob/master/documentation/XML_commonRoad_2020a.pdf).\n\n# commonroad-io\n\nThe commonroad-io package provides methods to read, write, and visualize CommonRoad scenarios and planning problems. Furthermore, it can be used as a framework for implementing motion planning algorithms to solve CommonRoad Benchmarks and is the basis for other tools of the CommonRoad Framework.\nWith commonroad-io, those solutions can be written to xml-files for uploading them on [commonroad.in.tum.de](https://commonroad.in.tum.de/).\n\ncommonroad-io 2024.2 is compatible with CommonRoad scenarios in version 2020a and supports reading 2018b scenarios.\n\nThe software is written in Python and tested on Linux for the Python 3.9, 3.10, 3.11 and 3.12.\n\n\n## Documentation\n\nThe full documentation of the API and introducing examples can be found under [https://cps.pages.gitlab.lrz.de/commonroad/commonroad-io/](https://cps.pages.gitlab.lrz.de/commonroad/commonroad-io/).\n\nFor getting started, we recommend our [tutorials](https://commonroad.in.tum.de/commonroad-io).\n\n## Additional Tools\nBased on commonroad-io, we have developed a list of tools supporting the development of motion-planning algorithms:\n\n* [Drivability Checker](https://commonroad.in.tum.de/tools/drivability-checker)\n* [CommonRoad-SUMO Interface](https://commonroad.in.tum.de/tools/sumo-interface)\n* [Scenario Designer](https://commonroad.in.tum.de/tools/scenario-designer)\n* [Vehicle Models](https://commonroad.in.tum.de/tools/model-cost-functions)\n* [Dateset Converters](https://gitlab.lrz.de/tum-cps/dataset-converters)\n* [Interactive Scenarios](https://gitlab.lrz.de/tum-cps/commonroad-interactive-scenarios)\n* [Apollo Interface](https://gitlab.lrz.de/tum-cps/commonroad-apollo-interface)\n\n## Requirements\n\nThe required dependencies for running commonroad-io are:\n\n* numpy>=1.13\n* scipy>=1.5.2\n* shapely>=2.0.1\n* matplotlib>=2.2.2\n* lxml>=4.2.2\n* networkx>=2.2\n* Pillow>=7.0.0\n* commonroad-vehicle-models>=2.0.0\n* rtree>=0.8.3\n* protobuf==3.20.1\n\n## Installation\n\ncommonroad-io can be installed with::\n\n\tpip install commonroad-io\n\nAlternatively, clone from our gitlab repository::\n\n\tgit clone https://gitlab.lrz.de/tum-cps/commonroad_io.git\n\nand add the folder commonroad-io to your Python environment.\n\n## Changelog\nCompared to version 2024.1, the following features have been added or changed:\n\n### Added\n- Github actions for ubuntu, windows, and macOS\n- Gitlab runner for arm64 ubuntu\n- Support for reading xml and protobuf byte streams\n- Support for numpy `>=2.0`\n- Adjustable zorder for dynamic obstacle & lanelet visualization\n\n### Fixed\n- AreaBorder can have multiple adjacent lanelets\n- Performance regression for occupancy_set lookups in TrajectoryPrediction\n- Matplotlib `>=3.9.0` support\n\n### Removed\n- Support for Python 3.8\n\n\n## Authors\nContribution (in alphabetic order by last name): Yannick Ballnath, Behtarin Ferdousi, Luis Gressenbuch, Moritz Klischat, \nMarkus Koschi, Sebastian Maierhofer, Stefanie Manzinger, Christina Miller, Christian Pek, Anna-Katharina Rettinger, \nSimon Sagmeister, Moritz Untersperger, Murat \u00dcste, Xiao Wang\n\n## Credits\nWe gratefully acknowledge partial financial support by\n\n* DFG (German Research Foundation) Priority Program SPP 1835 Cooperative Interacting Automobiles\n* BMW Group within the Car@TUM project\n* German Federal Ministry of Economics and Technology through the research initiative Ko-HAF\n\n## Citation\n**If you use our code for research, please consider to cite our paper:**\n```\n@inproceedings{Althoff2017a,\n\tauthor = {Althoff, Matthias and Koschi, Markus and Manzinger, Stefanie},\n\ttitle = {CommonRoad: Composable benchmarks for motion planning on roads},\n\tbooktitle = {Proc. of the IEEE Intelligent Vehicles Symposium},\n\tyear = {2017},\n\tpages={719-726},\n\tabstract = {Numerical experiments for motion planning of road vehicles require numerous components: vehicle \n\t dynamics, a road network, static obstacles, dynamic obstacles and their movement over time, goal \n\t regions, a cost function, etc. Providing a description of the numerical experiment precise enough to \n\t reproduce it might require several pages of information. Thus, only key aspects are typically described \n\t in scientific publications, making it impossible to reproduce results\u2014yet, re- producibility is an \n\t important asset of good science. Composable benchmarks for motion planning on roads (CommonRoad) are \n\t proposed so that numerical experiments are fully defined by a unique ID; all information required to \n\t reconstruct the experiment can be found on the CommonRoad website. Each benchmark is composed by a \n\t vehicle model, a cost function, and a scenario (including goals and constraints). The scenarios are \n\t partly recorded from real traffic and partly hand-crafted to create dangerous situations. We hope that \n\t CommonRoad saves researchers time since one does not have to search for realistic parameters of vehicle \n\t dynamics or realistic traffic situations, yet provides the freedom to compose a benchmark that fits \n\t one\u2019s needs.},\n}\n```\n",
"bugtrack_url": null,
"license": "BSD",
"summary": "Python tool to read, write, and visualize CommonRoad scenarios and solutions for automated vehicles.",
"version": "2024.2",
"project_urls": {
"Documentation": "https://cps.pages.gitlab.lrz.de/commonroad/commonroad-io/",
"Forum": "https://github.com/orgs/CommonRoad/discussions",
"Homepage": "https://commonroad.in.tum.de",
"Source": "https://github.com/CommonRoad/commonroad-io"
},
"split_keywords": [
"autonomous",
" automated",
" vehicles",
" driving",
" motion",
" planning"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f0a4c7e33e123a0af1fef5297d472a9c99f00b058eaca3263a8da203110dc4a8",
"md5": "5f3165049953b313f2275bc0adc4103d",
"sha256": "a34e8adfc8bbac1cfb3ba216f1996aa44b0c1c863dc47d611b0d2045e452bc68"
},
"downloads": -1,
"filename": "commonroad_io-2024.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5f3165049953b313f2275bc0adc4103d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 2257465,
"upload_time": "2024-07-22T09:30:14",
"upload_time_iso_8601": "2024-07-22T09:30:14.407767Z",
"url": "https://files.pythonhosted.org/packages/f0/a4/c7e33e123a0af1fef5297d472a9c99f00b058eaca3263a8da203110dc4a8/commonroad_io-2024.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bfae015b0dabae500495993e5adbe8afe4aad3b62e167aeca1f5fb4521f1dcb7",
"md5": "5f161e885cdafe3e4b893f37269408cb",
"sha256": "13c5fd56e0699218dfb78e59e679aea1b9624f265e74bda37e4c9a8999c2211d"
},
"downloads": -1,
"filename": "commonroad_io-2024.2.tar.gz",
"has_sig": false,
"md5_digest": "5f161e885cdafe3e4b893f37269408cb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 2057568,
"upload_time": "2024-07-22T09:30:16",
"upload_time_iso_8601": "2024-07-22T09:30:16.541122Z",
"url": "https://files.pythonhosted.org/packages/bf/ae/015b0dabae500495993e5adbe8afe4aad3b62e167aeca1f5fb4521f1dcb7/commonroad_io-2024.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-22 09:30:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "orgs",
"github_project": "CommonRoad",
"github_not_found": true,
"lcname": "commonroad-io"
}