Metadata-Version: 2.4
Name: commonroad-stl-monitor
Version: 2025.1.1
Summary: 
License-Expression: BSD-3-Clause
License-File: LICENSE.txt
Author: Luis Gressenbuch
Author-email: luis.gressenbuch@tum.de
Requires-Python: >=3.10,<3.12
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Provides-Extra: dev
Provides-Extra: docs
Provides-Extra: test
Provides-Extra: visualization
Requires-Dist: commonroad-clcs (>=2025.1.1,<2026.0.0)
Requires-Dist: commonroad-drivability-checker (>=2025.1,<2026.0.0)
Requires-Dist: commonroad-io (>=2024.3)
Requires-Dist: commonroad-route-planner (>=2025.1.0,<2026.0.0)
Requires-Dist: coverage[toml] (>=6.5.0,<7.0.0) ; extra == "test"
Requires-Dist: gpytorch (>=1.14,<2.0)
Requires-Dist: matplot2tikz (>=0.3.3) ; extra == "visualization"
Requires-Dist: matplotlib (>=3.5,<4.0)
Requires-Dist: mkdocs (>=1.6,<2.0) ; extra == "docs"
Requires-Dist: mkdocs-autorefs (>=1.0,<2.0) ; extra == "docs"
Requires-Dist: mkdocs-material (>=9.5,<10.0) ; extra == "docs"
Requires-Dist: mkdocstrings-python (>=1.10,<2.0) ; extra == "docs"
Requires-Dist: networkx (>=3.4.2) ; extra == "visualization"
Requires-Dist: pandas (>=2.3.0,<3.0.0)
Requires-Dist: pre-commit (>=3.7.1) ; extra == "dev"
Requires-Dist: pygraphviz (>=1.14) ; extra == "visualization"
Requires-Dist: pyqt6 (>=6.8.1) ; extra == "visualization"
Requires-Dist: pytest (>=8.3.5,<9.0.0) ; extra == "test"
Requires-Dist: pytest-xdist[psutil] (>=3.8.0) ; extra == "test"
Requires-Dist: ruamel-yaml (>=0.16.12)
Requires-Dist: shap (>=0.48.0,<0.49.0)
Requires-Dist: torch (>=2.7.1,<3.0.0)
Requires-Dist: typing-extensions (>=4.14.0,<5.0.0)
Project-URL: Documentation, https://cps.pages.gitlab.lrz.de/commonroad/commonroad-stl-monitor
Description-Content-Type: text/markdown

# CommonRoad STL Monitor

[![PyPI pyversions](https://img.shields.io/pypi/pyversions/commonroad-stl-monitor.svg)](https://pypi.python.org/pypi/commonroad-stl-monitor/)
[![PyPI version fury.io](https://badge.fury.io/py/commonroad-stl-monitor.svg)](https://pypi.python.org/pypi/commonroad-stl-monitor/)
[![PyPI download month](https://img.shields.io/pypi/dm/commonroad-stl-monitor.svg?label=PyPI%20downloads)](https://pypi.python.org/pypi/commonroad-stl-monitor/)
[![PyPI license](https://img.shields.io/pypi/l/commonroad-stl-monitor.svg)](https://pypi.python.org/pypi/commonroad-stl-monitor/)

CommonRoad STL Monitor is a toolbox to evaluate the robustness of model-free and model-predictive robustness on CommonRoad scenarios using signal temporal logic.

# Getting Started

## Installation

The toolbox is installable as a regular PyPI package:

```bash
pip install commonroad-stl-monitor
```

Additionally, you can install extras like `visualization` to enable advanced AST visualizations. The visualization requires a working `graphiz` installation, which you should be able to source from your distros package registry.

```bash
pip install commonroad-stl-monitor[visualization]
```

## Example Usage

```python
from commonroad.common.file_reader import CommonRoadFileReader

from crmonitor.common import World
from crmonitor.evaluation import OfflineRuleEvaluator

scenario_path = "../scenarios/test_interstate/DEU_test_safe_distance.xml"

# Open the scenario
scenario, _ = CommonRoadFileReader(scenario_path)

# Create a world state, which is a holder class for intermediate results produced by the monitoring.
# Use the convenience class method to create with default configuration from a scenario.
world = World.create_from_scenario(scenario)

# Create a rule evaluator for the traffic rule 'R_G1'
rule_evaluator = OfflineRuleEvaluator.create_for_rule("R_G1", dt=world.dt)


ego_vehicle = next(iter(world.vehicles))
# Evaluate the robustness across the whole time frame the ego vehicle is defined.
robustness = rule_evaluator.evaluate(world, ego_vehicle.vehicle_id)
```

## Documentation

The full documentation can be found at [cps.pages.gitlab.lrz.de/commonroad/commonroad-stl-monitor](https://cps.pages.gitlab.lrz.de/commonroad/commonroad-stl-monitor/).

