- Notifications
You must be signed in to change notification settings - Fork2
🚧 🚔 ⚠ Toolbox to compute Criticality Measures for Automated Vehicles
License
CommonRoad/commonroad-crime
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Toolbox to computeCriticalityMeasures(e.g. time-to-collision, time-to-react,...). Such measurescan be used to trigger warnings and emergency maneuversin driver assistance systems or repair an infeasibletrajectory. If you have questions or want to report problems or suggestions, please start aGithub discussion /Github issue.

commonroad-crime
can be installed with:
$ pip install commonroad-crime
Develop CriMe locally
For adding new measures, we recommend usingAnaconda to manage your environment so that even if you mess something up, you can always have a safe and clean restart. A guide for managing python environments with Anaconda can be foundhere.
After installing Anaconda, create a new environment with:
$ conda create -n commonroad-py38 python=3.8 -y
Here the name of the environment is calledcommonroad-py38. You may also change this name as you wish. In such case, don't forget to change it in the following commands as well.Always activate this environment before you do anything related:
$ conda activate commonroad-py38or$source activate commonroad-py38
Then, install the dependencies with:
$cd<path-to-this-repo>$ pip install -e.$ conda develop.
To test the installition, run unittest:
$cd tests$ python -m unittest -v
To get started your journey with our criticality measures, check thetutorials
and the following tips.
Add new criticality measure
- create a new branch with
feature-<measure-name>
and checkout the branch - navigate to
commonroad_crime/data_structure/type.py
to find the correct category of the measure and add anenumeration entry<abbreviation>: <explanation>
- navigate to
commonroad_crime/measure
to find the above-mentioned category and create a python file named<abbreviation>.py
. Then create a class inheriting theCriMeBase
undercommonroad_crime/data_structure/base.py
- similar to other measures, you need to implement the
compute()
andvisualize()
functions
Define configuration parameters of the measure
- navigate to
commonroad_crime/data_structure/configuation.py
to find the above-mentioned category and add a newinstance to the class asself.<parameter> = config_relevant.<parameter>
- you can then directly call the values using
self.configuration.<category>.<parameter>
in your measure class - to override the default parameter values, create a
yaml
file (name it the same as the scenario) in./config_files
and modify the values there
The documentation of our toolbox is available on our website:https://cps.pages.gitlab.lrz.de/commonroad/commonroad-criticality-measures/.
Build documentation locally
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/
.
- Liguo Chen
- Marius Erath
- Yuanfei Lin
- Sebastian Maierhofer
- Ivana Peneva
- Kun Qian
- Oliver Specht
- Sicheng Wang
- Youran Wang
- Zekun Xing
- Ziqian Xu
If you usecommonroad-crime
for academic work, we highly encourage you to cite our paper:
@InProceedings{lin2023crime, title = {{CommonRoad-CriMe}: {A} Toolbox for Criticality Measures of Autonomous Vehicles}, author = {Yuanfei Lin and Matthias Althoff}, booktitle = {Proc. of the IEEE Intell. Veh. Symp.}, pages = {1-8}, year = {2023},}
If you use this project's code in industry, we'd love to hear from you as well;feel free to reach out toYuanfei Lin directly.
About
🚧 🚔 ⚠ Toolbox to compute Criticality Measures for Automated Vehicles