Giter Site home page Giter Site logo

jiale-fan / tuplan_garage Goto Github PK

View Code? Open in Web Editor NEW

This project forked from autonomousvision/tuplan_garage

0.0 0.0 0.0 7.57 MB

[CoRL'23] Parting with Misconceptions about Learning-based Vehicle Motion Planning

License: Other

Shell 1.55% Python 98.45%

tuplan_garage's Introduction

tuPlangarage

A Framework for Vehicle Motion Planning Research


Parting with Misconceptions about Learning-based Vehicle Motion Planning
Daniel Dauner1,2, Marcel Hallgarten1,3, Andreas Geiger1,2, and Kashyap Chitta1,2
1 University of Tübingen, 2 Tübingen AI Center, 3 Robert Bosch GmbH

This repo is intended to serve as a starting point for vehicle motion planning research on nuPlan. We provide a publicly accesible configuration for validation, comprehensive set of baselines, and pre-trained planning models.


teaser.mp4

News

  • 30 Aug, 2023: Our paper was accepted at CoRL 2023!
  • 20 Aug, 2023: We renamed our repository to "tuPlan Garage" due to trademark conflicts.
  • 01 Aug, 2023: We released the code for GC-PGP!
  • 26 Jun, 2023: We released our supplementary material and the code for PDM-Closed.
  • 14 Jun, 2023: We released our paper on arXiv.
  • 2 Jun, 2023: Our approach won the 2023 nuPlan Challenge!

Overview

  • 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.

  • Indeed, we find that these tasks are fundamentally misaligned and should be addressed independently.

  • 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.

  • 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).

  • Combining these insights, we propose an extremely simple and efficient planner which outperforms an extensive set of competitors, winning the nuPlan planning challenge 2023.


Contributing

If you consider contributing to tuPlan Garage, make sure to check out our Contribution Guidelines

Method

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.

Results

Planning results on the proposed Val14 benchmark. Please refer to the paper for more details.

Method Representation CLS-R ↑ CLS-NR ↑ OLS ↑ Time (ms) ↓
Urban Driver* Polygon 44 45 76 64
GC-PGP Graph 56 55 83 100
PlanCNN Raster 72 73 64 43
IDM Centerline 77 76 38 27
PDM-Open Centerline 54 50 86 7
PDM-Closed Centerline 92 93 44 91
PDM-Hybrid Centerline 92 93 84 96
Log Replay GT 80 94 100 -

*Open-loop reimplementation of Urban Driver

To Do

  • Additional baselines
  • Visualization scripts
  • Contribution guide
  • ML planners code & checkpoints
  • Supplementary material, video, slides
  • Val14 benchmark
  • Installation tutorial
  • PDM-Closed release
  • Initial repo & main paper

Getting started

1. Installation

To install tuPlan Garage, please follow these steps:

  • setup the nuPlan dataset (described here) and install the nuPlan devkit (see here)
  • download tuPlan Garage and move inside the folder
git clone https://github.com/autonomousvision/tuplan_garage.git && cd tuplan_garage
  • make sure the environment you created when installing the nuplan-devkit is activated
conda activate nuplan
  • install the local tuplan_garage as a pip package
pip install -e .
  • add the following environment variable to your ~/.bashrc
NUPLAN_DEVKIT_ROOT="$HOME/nuplan-devkit/"

2. Training

When running a training, you have to add the hydra.searchpath for the tuplan_garage correctly. Note: since hydra does not yet support appending to lists (see here), you have to add the original searchpaths in the override. Training scripts can be run with the scripts found in /scripts/training/. Before training from an already existing cache, please check this issue. You can find our trained models here.

3. Evaluation

Same as for the training, when running an evaluation, you have to add the hydra.searchpath for the tuplan_garage correctly. The example below runs an evaluation of the pdm_closed_planner on the val14_split, both of which are part of the tuplan_garage

python $NUPLAN_DEVKIT_ROOT/nuplan/planning/script/run_simulation.py \
+simulation=closed_loop_nonreactive_agents \
planner=pdm_closed_planner \
scenario_filter=val14_split \
scenario_builder=nuplan \
hydra.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]"

You can find exemplary shells scripts in /scripts/simulation/

Contact

If you have any questions or suggestions, please feel free to open an issue or contact us ([email protected]).

Citation

If you find tuPlan Garage useful, please consider giving us a star 🌟 and citing our paper with the following BibTeX entry.

@InProceedings{Dauner2023CORL,
  title={Parting with Misconceptions about Learning-based Vehicle Motion Planning},
  author={Dauner, Daniel and Hallgarten, Marcel and Geiger, Andreas and Chitta, Kashyap},
  booktitle={Conference on Robot Learning (CoRL)},
  year={2023}
}

Disclaimer

tuPlan Garage includes code from Motional's nuplan-devkit. We are not affiliated with Motional, and the repository is not published, maintained or otherwise related to Motional.

tuplan_garage's People

Contributors

mh0797 avatar danieldauner avatar kashyap7x avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.