# 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="600"/>
## Getting Started
These instructions should help you to install the trajectory planner and use it for development and testing purposes.
To install the package from PyPi, please run:
```shell
pip install commonroad-reactive-planner
```
### Requirements
The software is written in Python 3.8 and tested on Ubuntu 18.04-22.04. The required python dependencies are listed in `pyproject.toml`.
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-py38 python=3.8`
2. Go to cloned root directory and install the package:
* Install the package via poetry: `poetry install`
* Install the package via pip: `pip install .`
### How to run
**Main example script** `run_planner.py`:
The example script shows how to run the planner on an exemplary CommonRoad scenario with the following steps:
* creating a planner configuration
* instantiating the reactive planner
* running the planner in a cyclic replanning loop with a fixed replanning fequency
In addition we also provide an interactive Jupyter notebook tutorial in the `tutorial/` folder.
## 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
Raw data
{
"_id": null,
"home_page": "https://commonroad.in.tum.de",
"name": "commonroad-reactive-planner",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.12,>=3.8",
"maintainer_email": null,
"keywords": "autonomous, automated, vehicles, driving, motion, planning",
"author": "Cyber-Physical Systems Group, Technical University of Munich",
"author_email": "commonroad@lists.lrz.de",
"download_url": "https://files.pythonhosted.org/packages/65/7d/11caf8fc37758c2030e975f362fa50780fecd2169b73304fe26ccd0a9cf9/commonroad_reactive_planner-2024.1.tar.gz",
"platform": null,
"description": "# Reactive Planner\n\nThis project generates solutions to trajectory planning problems given in the [CommonRoad](https://commonroad.in.tum.de/) scenario format.\nThe trajectories are generated using the sampling-based approach in [1][2]. This approach plans motions by sampling a \ndiscrete set of trajectories, represented as quintic polynomials in a Frenet frame and selecting an optimal trajectory according\nto a given cost function.\n\n<img src=\"doc/images/ZAM_Tjunction-1_42_T-1.gif\" alt=\"reactive-planner\" width=\"600\"/>\n\n\n## Getting Started\nThese instructions should help you to install the trajectory planner and use it for development and testing purposes.\n\nTo install the package from PyPi, please run:\n```shell\npip install commonroad-reactive-planner\n```\n\n### Requirements\nThe software is written in Python 3.8 and tested on Ubuntu 18.04-22.04. The required python dependencies are listed in `pyproject.toml`.\n\nFor the python installation, we suggest the usage of [Anaconda](http://www.anaconda.com/download/#download).\n\nFor the development IDE we suggest [PyCharm](http://www.jetbrains.com/pycharm/)\n\n\n### Installation from Source\n1. Clone this repository & create a new conda environment, e.g., `conda create -n commonroad-py38 python=3.8`\n\n\n2. Go to cloned root directory and install the package:\n * Install the package via poetry: `poetry install`\n * Install the package via pip: `pip install .`\n\n\n\n### How to run\n\n**Main example script** `run_planner.py`: \n\nThe example script shows how to run the planner on an exemplary CommonRoad scenario with the following steps:\n* creating a planner configuration\n* instantiating the reactive planner\n* running the planner in a cyclic replanning loop with a fixed replanning fequency\n\nIn addition we also provide an interactive Jupyter notebook tutorial in the `tutorial/` folder.\n\n\n## Literature\n[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\u2013993.\n\n[2] Werling M., et al. *Optimal trajectories for time-critical street scenarios using discretized terminal manifolds* In:\nThe International Journal of Robotics Research, 2012\n",
"bugtrack_url": null,
"license": "BSD",
"summary": "CommonRoad Reactive Planner: Sampling-based Frenet Planner",
"version": "2024.1",
"project_urls": {
"Homepage": "https://commonroad.in.tum.de",
"Source": "https://gitlab.lrz.de/tum-cps/commonroad-reactive-planner"
},
"split_keywords": [
"autonomous",
" automated",
" vehicles",
" driving",
" motion",
" planning"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "4784ad794caaf4c1b5e90caf94e393357b0c149bebf0f8defc9a260e2c30ebd6",
"md5": "752dc334e3f8255b85223348e72fd1ec",
"sha256": "3daa3704025ba324b9344a8a129533d9d71346daac4afafb31adcd8bb5c90646"
},
"downloads": -1,
"filename": "commonroad_reactive_planner-2024.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "752dc334e3f8255b85223348e72fd1ec",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.12,>=3.8",
"size": 43476,
"upload_time": "2024-04-23T13:40:39",
"upload_time_iso_8601": "2024-04-23T13:40:39.225387Z",
"url": "https://files.pythonhosted.org/packages/47/84/ad794caaf4c1b5e90caf94e393357b0c149bebf0f8defc9a260e2c30ebd6/commonroad_reactive_planner-2024.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "657d11caf8fc37758c2030e975f362fa50780fecd2169b73304fe26ccd0a9cf9",
"md5": "4d6d9cfe5a21ade355b469c23e03da84",
"sha256": "6bd9568c9fbeb26d4096a25855c164fd8653eb9a9aca28dbe9f2983489c473e8"
},
"downloads": -1,
"filename": "commonroad_reactive_planner-2024.1.tar.gz",
"has_sig": false,
"md5_digest": "4d6d9cfe5a21ade355b469c23e03da84",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.12,>=3.8",
"size": 38498,
"upload_time": "2024-04-23T13:40:41",
"upload_time_iso_8601": "2024-04-23T13:40:41.482896Z",
"url": "https://files.pythonhosted.org/packages/65/7d/11caf8fc37758c2030e975f362fa50780fecd2169b73304fe26ccd0a9cf9/commonroad_reactive_planner-2024.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-23 13:40:41",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "commonroad-reactive-planner"
}