{"id":18600789,"url":"https://github.com/autonomousvision/tuplan_garage","last_synced_at":"2025-05-15T15:02:11.451Z","repository":{"id":175185479,"uuid":"650721955","full_name":"autonomousvision/tuplan_garage","owner":"autonomousvision","description":"[CoRL'23] Parting with Misconceptions about Learning-based Vehicle Motion Planning","archived":false,"fork":false,"pushed_at":"2024-11-28T08:43:47.000Z","size":7643,"stargazers_count":595,"open_issues_count":0,"forks_count":67,"subscribers_count":21,"default_branch":"main","last_synced_at":"2025-04-07T21:08:01.564Z","etag":null,"topics":["autonomous-driving","corl23","nuplan","planning","self-driving"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/autonomousvision.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-07T17:03:16.000Z","updated_at":"2025-04-01T06:23:45.000Z","dependencies_parsed_at":"2023-12-15T19:18:46.680Z","dependency_job_id":"0b8fc601-261c-42c4-8e22-664b6d6491e7","html_url":"https://github.com/autonomousvision/tuplan_garage","commit_stats":{"total_commits":71,"total_committers":3,"mean_commits":"23.666666666666668","dds":0.6338028169014085,"last_synced_commit":"f1f03b1df59c3f82e9c34f5921a99676246e1969"},"previous_names":["autonomousvision/nuplan_garage","autonomousvision/tuplan_garage"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autonomousvision%2Ftuplan_garage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autonomousvision%2Ftuplan_garage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autonomousvision%2Ftuplan_garage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autonomousvision%2Ftuplan_garage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/autonomousvision","download_url":"https://codeload.github.com/autonomousvision/tuplan_garage/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254364267,"owners_count":22058877,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autonomous-driving","corl23","nuplan","planning","self-driving"],"created_at":"2024-11-07T02:05:31.887Z","updated_at":"2025-05-15T15:02:11.385Z","avatar_url":"https://github.com/autonomousvision.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"tuPlangarage\" src=\"assets/tuplan_garage.png\" width=\"500\"\u003e\n    \u003ch1 align=\"center\"\u003eA Framework for Vehicle Motion Planning Research\u003c/h1\u003e\n    \u003ch3 align=\"center\"\u003e\u003ca href=\"https://arxiv.org/abs/2306.07962\"\u003ePaper\u003c/a\u003e | \u003ca href=\"https://danieldauner.github.io/assets/pdf/Dauner2023CORL_supplementary.pdf\"\u003eSupplementary\u003c/a\u003e | \u003ca href=\"https://danieldauner.github.io/assets/pdf/Dauner2023CORL_poster.pdf\"\u003ePoster\u003c/a\u003e | \u003ca href=\"#videos\"\u003eVideos\u003c/a\u003e \u003c/h3\u003e\n\u003c/p\u003e\n\n\u003cbr/\u003e\n\n\u003e [**Parting with Misconceptions about Learning-based Vehicle Motion Planning**](https://arxiv.org/abs/2306.07962)  \u003cbr\u003e\n\u003e [Daniel Dauner](https://danieldauner.github.io/)\u003csup\u003e1,2\u003c/sup\u003e, [Marcel Hallgarten](https://mh0797.github.io/)\u003csup\u003e1,3\u003c/sup\u003e, [Andreas Geiger](https://www.cvlibs.net/)\u003csup\u003e1,2\u003c/sup\u003e, and [Kashyap Chitta](https://kashyap7x.github.io/)\u003csup\u003e1,2\u003c/sup\u003e  \u003cbr\u003e\n\u003e \u003csup\u003e1\u003c/sup\u003e University of Tübingen, \u003csup\u003e2\u003c/sup\u003e Tübingen AI Center, \u003csup\u003e3\u003c/sup\u003e Robert Bosch GmbH \u003cbr\u003e\n\u003e \u003cbr\u003e\n\u003e Conference on Robot Learning (CoRL), 2023 \u003cbr\u003e\n\u003e Winner, 2023 nuPlan Challenge\n\u003e\nThis repo is intended to serve as a starting point for vehicle motion planning research on [nuPlan](https://github.com/motional/nuplan-devkit). We provide a publicly accessible configuration for validation, comprehensive set of baselines, and pre-trained planning models.\n\n\u003cbr/\u003e\n\nhttps://github.com/autonomousvision/tuplan_garage/assets/22528226/f91e9ce2-ae3d-4f1e-933e-d48ee5762497\n\n## News\n* **`30 Aug, 2023`:**  Our paper was accepted at [CoRL 2023](https://www.corl2023.org/)!\n* **`20 Aug, 2023`:**  We renamed our repository to \"tuPlan Garage\" due to trademark conflicts.\n* **`01 Aug, 2023`:**  We released the code for [GC-PGP](https://arxiv.org/abs/2302.07753)!\n* **`26 Jun, 2023`:** We released our [supplementary material](https://danieldauner.github.io/assets/pdf/Dauner2023CORL_supplementary.pdf) and the code for PDM-Closed.\n* **`14 Jun, 2023`:** We released our paper on [arXiv](https://arxiv.org/abs/2306.07962).\n* **`2 Jun, 2023`:** Our approach won the [2023 nuPlan Challenge](https://opendrivelab.com/AD23Challenge.html#nuplan_planning)!\n\n\u003cbr/\u003e\n\n## Overview\n\n- The release of nuPlan marks a new era in vehicle motion planning research, offering the first large-scale real-world dataset and evaluation schemes requiring both precise short-term planning and long-horizon ego-forecasting. Existing systems struggle to simultaneously meet both requirements.\n\n- Indeed, we find that these tasks are fundamentally misaligned and should be addressed independently.\n\n- We further assess the current state of closed-loop planning in the field, revealing the limitations of learning-based methods in complex real-world scenarios and the value of simple rule-based priors such as centerline selection through lane graph search algorithms.\n\n- More surprisingly, for the open-loop sub-task, we observe that the best results are achieved when using only this centerline as scene context (i.e., ignoring all information regarding the map and other agents).\n\n- Combining these insights, we propose an extremely simple and efficient planner which outperforms an extensive set of competitors, winning the nuPlan planning challenge 2023.\n\n\u003cbr/\u003e\n\n## Videos\n\nHere are four videos for talks and visualizations of our method:\n\n* [**\u0026#128250; Spotlight**](https://youtu.be/cKIofruqbIk) (1min) - Presentation of our CoRL poster.\n\n* [**\u0026#128250; Supplementary Video**](https://youtu.be/iI5iy5QLv6g) (3min) - Comparison of simulation modes and methods in nuPlan.\n\n* [**\u0026#128250; Talk CVPR'23 E2EAD**](https://youtu.be/ZwhXilQKULY?t=1975) (5min) - Competition presentation. ([Slides](https://danieldauner.github.io/assets/pdf/slides/Dauner2023CORL_slides.pdf))\n\n* [**\u0026#128250; Talk CVPR'23 WAD**](https://youtu.be/x_42Fji1Z2M) (18min) - Keynote about Misconceptions in Autonomous Driving. ([Slides](https://www.cvlibs.net/shared/common_misconceptions.pdf))\n\n\u003cbr/\u003e\n\n## Contributing\nIf you consider contributing to tuPlan Garage, make sure to check out our \u003ca href=\"CONTRIBUTING.md\"\u003eContribution Guidelines\u003c/a\u003e\n\n## Method\n\n\u003e We decompose the process of determining a safe and comfortable trajectory into two sub-tasks: (1) planning the short-term motion, and (2) accurately forecasting the long-term ego trajectory. While the former primarily impacts closed-loop performance, the latter is essential for the open-loop task. Our method employs a rule-based predictive planner to generate a trajectory proposal, and a learned ego-forecasting module that refines the trajectory with a particular emphasis on long-term forecasting.\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"./assets/framework.png\" /\u003e\n\u003c/div\u003e\n\n\n## Results\nPlanning results on the proposed *Val14* benchmark. Please refer to the [paper](https://arxiv.org/abs/2306.07962) for more details.\n\n| **Method**        | **Representation**     | **CLS-R ↑** | **CLS-NR ↑** | **OLS ↑**  | **Time (ms) ↓** |\n|-------------------|--------------|------------|--------------|------------|------------|\n| [Urban Driver](https://arxiv.org/abs/2109.13333)*  | Polygon      | 50         | 53           | 82         | 64         |\n| [GC-PGP](https://arxiv.org/abs/2302.07753v1)        | Graph        | 55         | 59           | 83         | 100        |\n| [PlanCNN](https://arxiv.org/abs/2210.14222)       | Raster       | 72         | 73           | 64         | 43         |\n| [IDM](https://arxiv.org/abs/cond-mat/0002177)           | Centerline   | 77         | 76           | 38         | 27         |\n| PDM-Open          | Centerline   | 54         | 50           | **86**     | **7**      |\n| PDM-Closed        | Centerline   | **92**     | **93**       | 42         | 91         |\n| PDM-Hybrid        | Centerline   | **92**     | **93**       | 84         | 96         |\n| *Log Replay*      | *GT*         | *80*       | *94*         | *100*      | -          |\n\n*Open-loop reimplementation of Urban Driver\n\n## To Do\n- [ ] Additional baselines\n- [ ] Visualization scripts\n- [x] Contribution guide\n- [x] ML planners code \u0026 checkpoints\n- [x] Supplementary material, video, slides\n- [x] Val14 benchmark\n- [x] Installation tutorial\n- [x] PDM-Closed release\n- [x] Initial repo \u0026 main paper\n\n\n## Getting started\n\n### 1. Installation\nTo install tuPlan Garage, please follow these steps:\n- setup the nuPlan dataset ([described here](https://nuplan-devkit.readthedocs.io/en/latest/dataset_setup.html)) and install the nuPlan devkit ([see here](https://nuplan-devkit.readthedocs.io/en/latest/installation.html))\n- download tuPlan Garage and move inside the folder\n```\ngit clone https://github.com/autonomousvision/tuplan_garage.git \u0026\u0026 cd tuplan_garage\n```\n- make sure the environment you created when installing the nuplan-devkit is activated\n```\nconda activate nuplan\n```\n- install the local tuplan_garage as a pip package\n```\npip install -e .\n```\n- add the following environment variable to your `~/.bashrc`\n```\nNUPLAN_DEVKIT_ROOT=\"$HOME/nuplan-devkit/\"\n```\n\n### 2. Training\nWhen running a training, you have to add the `hydra.searchpath` for the `tuplan_garage` correctly.\nNote: since hydra does not yet support appending to lists ([see here](https://github.com/facebookresearch/hydra/issues/1547)), you have to add the original searchpaths in the override.\nTraining scripts can be run with the scripts found in `/scripts/training/`.\nBefore training from an already existing cache, please check [this](https://github.com/motional/nuplan-devkit/issues/128) issue.\nYou can find our trained models [here](https://drive.google.com/drive/folders/1LLdunqyvQQuBuknzmf7KMIJiA2grLYB2?usp=sharing).\n\n### 3. Evaluation\nSame as for the training, when running an evaluation, you have to add the `hydra.searchpath` for the `tuplan_garage` correctly.\nThe example below runs an evaluation of the `pdm_closed_planner` on the `val14_split`, both of which are part of the tuplan_garage\n```\npython $NUPLAN_DEVKIT_ROOT/nuplan/planning/script/run_simulation.py \\\n+simulation=closed_loop_nonreactive_agents \\\nplanner=pdm_closed_planner \\\nscenario_filter=val14_split \\\nscenario_builder=nuplan \\\nhydra.searchpath=\"[pkg://tuplan_garage.planning.script.config.common, pkg://tuplan_garage.planning.script.config.simulation, pkg://nuplan.planning.script.config.common, pkg://nuplan.planning.script.experiments]\"\n```\nYou can find exemplary shells scripts in `/scripts/simulation/`\n\n## Contact\nIf you have any questions or suggestions, please feel free to open an issue or contact us (daniel.dauner@uni-tuebingen.de).\n\n\n## Citation\nIf you find tuPlan Garage useful, please consider giving us a star \u0026#127775; and citing our paper with the following BibTeX entry.\n\n```BibTeX\n@InProceedings{Dauner2023CORL,\n  title={Parting with Misconceptions about Learning-based Vehicle Motion Planning},\n  author={Dauner, Daniel and Hallgarten, Marcel and Geiger, Andreas and Chitta, Kashyap},\n  booktitle={Conference on Robot Learning (CoRL)},\n  year={2023}\n}\n```\n\n\n## Disclaimer\ntuPlan Garage includes code from Motional's [nuplan-devkit](https://github.com/motional/nuplan-devkit). We are not affiliated with Motional, and the repository is not published, maintained or otherwise related to Motional.\n\n\n## Other resources \u003ca name=\"otherresources\"\u003e\u003c/a\u003e\n\n\u003ca href=\"https://twitter.com/AutoVisionGroup\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Twitter Follow\" src=\"https://img.shields.io/twitter/follow/Awesome Vision Group?style=social\u0026color=brightgreen\u0026logo=twitter\" /\u003e\n  \u003c/a\u003e\n\u003ca href=\"https://twitter.com/kashyap7x\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Twitter Follow\" src=\"https://img.shields.io/twitter/follow/Kashyap Chitta?style=social\u0026color=brightgreen\u0026logo=twitter\" /\u003e\n  \u003c/a\u003e\n\u003ca href=\"https://twitter.com/DanielDauner\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Twitter Follow\" src=\"https://img.shields.io/twitter/follow/Daniel Dauner?style=social\u0026color=brightgreen\u0026logo=twitter\" /\u003e\n  \u003c/a\u003e\n\u003ca href=\"https://twitter.com/MHallgarten0797\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Twitter Follow\" src=\"https://img.shields.io/twitter/follow/Marcel Hallgarten?style=social\u0026color=brightgreen\u0026logo=twitter\" /\u003e\n  \u003c/a\u003e\n\n- [NAVSIM](https://github.com/autonomousvision/navsim) | [SLEDGE](https://github.com/autonomousvision/sledge) | [CARLA garage](https://github.com/autonomousvision/carla_garage) | [Survey on E2EAD](https://github.com/OpenDriveLab/End-to-end-Autonomous-Driving)\n- [PlanT](https://github.com/autonomousvision/plant) | [KING](https://github.com/autonomousvision/king) | [TransFuser](https://github.com/autonomousvision/transfuser) | [NEAT](https://github.com/autonomousvision/neat)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautonomousvision%2Ftuplan_garage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fautonomousvision%2Ftuplan_garage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautonomousvision%2Ftuplan_garage/lists"}