Skip to main content

Python tool to read, write, and visualize CommonRoad scenarios and solutions for automated vehicles.

Project description

CommonRoad

PyPI pyversions
Linux Windows macOS
PyPI version fury.io PyPI download month PyPI download week
PyPI license

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. Each benchmark is composed of 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. Solutions to the benchmarks can be uploaded and ranked on the CommonRoad Website. Learn more about the scenario specification here.

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.

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/.

For getting started, we recommend our tutorials.

Additional Tools

Based on commonroad-io, we have developed a list of tools supporting the development of motion-planning algorithms:

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.},
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

commonroad_io-2024.2.tar.gz (2.1 MB view details)

Uploaded Source

Built Distribution

commonroad_io-2024.2-py3-none-any.whl (2.3 MB view details)

Uploaded Python 3

File details

Details for the file commonroad_io-2024.2.tar.gz.

File metadata

  • Download URL: commonroad_io-2024.2.tar.gz
  • Upload date:
  • Size: 2.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.4 Linux/5.15.0-87-generic

File hashes

Hashes for commonroad_io-2024.2.tar.gz
Algorithm Hash digest
SHA256 13c5fd56e0699218dfb78e59e679aea1b9624f265e74bda37e4c9a8999c2211d
MD5 5f161e885cdafe3e4b893f37269408cb
BLAKE2b-256 bfae015b0dabae500495993e5adbe8afe4aad3b62e167aeca1f5fb4521f1dcb7

See more details on using hashes here.

File details

Details for the file commonroad_io-2024.2-py3-none-any.whl.

File metadata

  • Download URL: commonroad_io-2024.2-py3-none-any.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.4 Linux/5.15.0-87-generic

File hashes

Hashes for commonroad_io-2024.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a34e8adfc8bbac1cfb3ba216f1996aa44b0c1c863dc47d611b0d2045e452bc68
MD5 5f3165049953b313f2275bc0adc4103d
BLAKE2b-256 f0a4c7e33e123a0af1fef5297d472a9c99f00b058eaca3263a8da203110dc4a8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page