CommonRoad-Reach: A Toolbox for Reachability Analysis of Automated Vehicles
Reachability analysis has gained increasing popularity in motion planning and safeguarding of automated vehicles (AVs). While existing tools for reachability analysis mainly focus on general-purpose algorithms for formal verification of dynamical systems, a toolbox tailored to AV-specific applications is not yet available. The CommonRoad-Reach toolbox
- integrates different methods for computing reachable sets using polytopic set propagation and graph-based propagation;
- provides Python and C++ implementations of the algorithms, thus offering convenient prototyping and real-time computation for the users; and
- extracts driving corridors which can be used as planning constraints for motion planners.
System Requirements
The software is written in Python 3.10 and C++17, and was tested on Ubuntu 18.04, 20.04 and 22.04. It should be compatible with later versions. For building the code, the following minimum versions are required:
- GCC and G++: version 10 or above
- CMake: version 3.20 or above.
- Pip: version 21.3 or above
We further recommend using Anaconda to manage your virtual python environment.
Installation options
We provide two installation options for CommonRoad-Reach: Installation as a Python package or building from source.
-
Python Package: Install the python package via
pipin your Conda environment:pip install commonroad-reach
-
Build from source: To build the project from source and install it in your Conda environment, please refer to the README_FOR_DEVS. This option is only recommended for advanced users and those who are looking to contribute to the development of CommonRoad-Reach.
Getting Started
Run the exemplary scripts to compute reachable sets and extract driving corridors.
-
To compute reachable sets, run
compute_reachable_set.py. -
To extract driving corridors, run
extract_driving_corridors.py.
The outputs will be stored in the ./output/ folder. Default and scenario-specific configurations are stored in the ./configurations/ folder.
Documentation
The documentation of our toolbox is available on our website: https://cps.pages.gitlab.lrz.de/commonroad/commonroad-reachable-set/.
In order to generate the documentation via Sphinx locally, run the following commands in the root directory:
pip install -r ./docs/requirements_doc.txt
cd docs/Sphinx
make html
The documentation can then be launched by browsing ./docs/Sphinx/build/html/index.html/.
Citation
If you use our toolbox for your research, please cite our paper:
@InProceedings{iraniliu2022commonroad,
title = {{CommonRoad-Reach}: {A} toolbox for reachability analysis of automated vehicles},
author = {Irani Liu, Edmond and W\"ursching, Gerald and Klischat, Moritz and Althoff, Matthias},
booktitle = {Proc. of the IEEE Int. Conf. Intell. Transp. Syst.},
pages = {2313--2320},
year = {2022},
}
Metadata
Release files for commonroad-reach 2025.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| commonroad_reach-2025.2.1.tar.gz | 10.4 MB | Without provenance | Details for commonroad_reach-2025.2.1.tar.gz |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| commonroad_reach-2025.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.17+ x86-64 | Details for commonroad_reach-2025.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
| commonroad_reach-2025.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.17+ x86-64 | Details for commonroad_reach-2025.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
Total release size: 13.8 MB
Release files / commonroad_reach-2025.2.1.tar.gz
| Download URL | commonroad_reach-2025.2.1.tar.gz |
|---|---|
| Size | 10.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
15bf985b978ec00d5cac78e377d31173bf7d88037adaa1e0063b9c8aef3401c4
|
|
BLAKE2b-256 checksum How to use checksums |
fb1f22d408f4ef33e323dbc6d5e064857bcbef5d288978b64e08dbf864fe6d19
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.12.9
|
Release files / commonroad_reach-2025.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | commonroad_reach-2025.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
9fd731699bdd59a0ecd186b2510d672dd49c12ad1cc2eeba6d0d5efb90464ecc
|
|
BLAKE2b-256 checksum How to use checksums |
343f82c391acd65f4bb21c4df5513ae4ab8a09aab0832514b85ebbc5bef8a17f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.12.9
|
Release files / commonroad_reach-2025.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | commonroad_reach-2025.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
df3f8f36c0ed0325174033483f82f1ceb848710d5314917166bc591b79db1294
|
|
BLAKE2b-256 checksum How to use checksums |
be6f04ea0145e3fce7fa1a08855a65ade021ed80ff03d5f13c64fb145f7f4a30
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.12.9
|
Security for commonroad-reach 2025.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.