Metadata-Version: 2.1
Name: commonroad-reactive-planner
Version: 2023.1
Summary: CommonRoad Reactive Planner: Sampling-based Frenet Planner
Home-page: https://commonroad.in.tum.de/
Author: Cyber-Physical Systems Group, Technical University of Munich
Author-email: commonroad@lists.lrz.de
License: BSD
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: POSIX :: Linux
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: commonroad-vehicle-models (>=3.0.0)
Requires-Dist: matplotlib (>=2.2.2)
Requires-Dist: networkx (>=2.2)
Requires-Dist: numpy (>=1.13)
Requires-Dist: methodtools
Requires-Dist: omegaconf (>=2.1.1)
Requires-Dist: pytest (>=6.2.5)
Requires-Dist: scipy (>=1.5.2)
Requires-Dist: commonroad-route-planner (>=2022.3)
Requires-Dist: commonroad-io (>=2022.3)
Requires-Dist: commonroad-drivability-checker (>=2023.1)

# Reactive Planner

This project generates solutions to trajectory planning problems given in the [CommonRoad](https://commonroad.in.tum.de/) scenario format.
The trajectories are generated using the sampling-based approach in [1][2]. This approach plans motions by sampling a 
discrete set of trajectories, represented as quintic polynomials in a Frenet frame and selecting an optimal trajectory according
to a given cost function.

<img src="doc/images/ZAM_Tjunction-1_42_T-1.gif" alt="reactive-planner" width="400"/>


## Getting Started
These instructions should help you to install the trajectory planner and use it for development and testing purposes.

To install the trajectory planner from PyPi, please run:
```shell
pip install commonroad-reactive-planner
```

### Requirements
The software is  developed and tested on recent versions of Linux. The required python dependencies are listed in `requirements.txt`.

For the python installation, we suggest the usage of [Anaconda](http://www.anaconda.com/download/#download).

For the development IDE we suggest [PyCharm](http://www.jetbrains.com/pycharm/)


### Installation from Source
1. Clone this repository & create a new conda environment, e.g.,  `conda create -n commonroad-py37 python=3.7`


2. Install the package:
    * Install the package via pip: `pip install .`
    * **Or** install the dependencies with `pip install -r requirements.txt` and add the root folder to the python path of your interpreter



### How to run

Main example script `run_planner.py`: The example script shows how to run the planner on an exemplary 
CommonRoad scenario. Therein, the following steps are included:
* creating a planner configuration
* instantiating the reactive planner
* running the planner in planning cycles with a fixed re-planning frequency


## Literature
[1] Werling M., et al. *Optimal trajectory generation for dynamic street scenarios in a frenet frame*. In: IEEE International Conference on Robotics and Automation, Anchorage, Alaska, 987–993.

[2] Werling M., et al. *Optimal trajectories for time-critical street scenarios using discretized terminal manifolds* In:
The International Journal of Robotics Research, 2012
