/nuplan-devkit

The devkit of the nuPlan dataset.

Primary LanguagePythonOtherNOASSERTION

nuPlan

The world's first benchmark for autonomous vehicle planning.


WebsiteDownloadCitation
ChangelogStructureSetup
TutorialDocumentationCompetition

python license Documentation Status




Sensor Data Release

IMPORTANT: The file structure has changed! Please check Dataset Setup page for the updated file structure.

  • The nuPlan sensor data for the v1.1 dataset has been released. Please download the latest dataset from the nuPlan page.
  • Due to the size of the sensor data, it will be released gradually. This first set of sensor data are the blobs corresponding to nuPlan mini.
  • A short tutorial for the sensor data is provided nuplan_sensor_data_tutorial.ipynb to get you started.

Planning challenges

IMPORTANT: The base docker image used in nuPlan submission has been updated. You should rebuild your submission container with the new Dockerfile.submission

  • The Planning Challenge will be using devkit version 1.2 from now on. Submissions generated from version v1.1 should remain compatible. However, please double-check by submitting to the warm-up phase.
  • The challenge will be presented as part of the End-to-End Autonomous Driving workshop at CVPR 2023
  • The nuPlan Dataset v1.1 has been released. Please download the latest dataset from the nuPlan page.

Changelog

  • May 11th 2023
    • v1.2.2 Devkit: Upated the submission base images.
  • May 9th 2023
    • v1.2.1 Devkit: Update to competition dates. Submission Deadline extended to May 26th, 2023.
  • April 25th 2023
    • v1.2 Devkit: The nuPlan sensor data have been released! Improved feature caching and nuBoard dashboard functionality. Changed dataset file structure, data interfaces now allow retrieval of sensor data. Pinned several packages including hydra, numpy and sqlalchemy.
  • January 20th 2023
    • v1.1 Devkit: The official nuPlan Challenge Release. Optimized training caching, simulation improvements, shapely 2.0 update.
  • Oct 13th 2022
    • v1.1 Dataset: Full nuPlan dataset - improved route plan, traffic light status, mission goal and more!
    • v1.0 Devkit: Update to nuplan-v1.1 dataset, metrics improvements, route plan fixes, documentation, IDMPlanner
  • Sep 09 2022
    • v0.6 Devkit: Smart agents optimizations, nuBoard improvements, metrics improvements, submission pipeline deployment and documentation.
  • Aug 26 2022
    • v0.5 Devkit: New map features, simulation improvements, open-loop detections with smart agents, iLQR tracker, metrics improvements and documentation.
  • Aug 05 2022
    • v0.4 Devkit: Database optimization, PYGEOS warning suppression, metrics improvements, scenario filter for training.
  • Jul 15 2022
    • v0.3 Devkit: Updates to the devit including but not limited to: nuBoard update, reduce RAM usage during caching and training, new map APIs, simulation and metrics runtime improvements.
  • Jun 10 2022
    • v1.0 Dataset: Full nuPlan dataset release with over 1,300 hours of driving data (15,000+ logs) across 4 cities (Las Vegas, Pittsburgh, Boston, Singapore).
    • v0.2 Devkit: Multiple devkit updates with improvements across the whole framework (planning models, training, simulation, metrics, dashboard, tutorials and more).
  • Dec 19 2021
    • v0.2 Dataset: Fixed bugs in the teaser nuPlan dataset.
  • Dec 10 2021
    • v0.1 Dataset: Initial teaser nuPlan dataset release with over 200 hours of driving data (350+ logs) across Las Vegas.
    • v0.1 Devkit: Initial nuPlan devkit release.

Devkit and dataset setup

Please refer to the installation page for detailed instructions on how to setup the devkit.

Please refer to the dataset page for detailed instructions on how to download and setup the dataset.


Getting started

For those interested in participating in the nuPlan Planning Competition, please refer to the competition landing page.

Please follow these steps to make yourself familiar with the nuPlan dataset:

  • Familiarize yourself with the main features of nuPlan and the dataset description.

  • Setup the devkit and dataset as described above.

  • Walk through the tutorials in this folder or run them yourself using jupyter notebook ~/nuplan-devkit/tutorials/<filename>.ipynb and replacing <filename> with the tutorial's name. The following tutorials are available:

    • nuplan_framework.ipynb: Main tutorial for anyone who wants to dive right into ML planning. It describes how to 1) train an ML planner, 2) simulate it, 3) measure the performance and 4) visualize the results.
    • nuplan_scenario_visualization.ipynb: Tutorial for visualizing various scenario types contained within the nuPlan dataset (e.g. unprotected turns, lane changes, interactions with pedestrians and more).
    • nuplan_planner_tutorial.ipynb: Tutorial with instructions on how to develop and simulate a planner from scratch within the nuPlan framework.
    • nuplan_advanced_model_training.ipynb: This notebook will cover the details involved in training a planning model in the NuPlan framework. This notebook is a more detailed deep dive into the NuPlan architecture, and covers the extensibility points that can be used to build customized models in the NuPlan framework.
  • Familiarize yourself with the nuPlan CLI, which gets installed by installing the devkit using pip (editable and not) by running:

    nuplan_cli --help
    nuplan_cli COMMAND --help
    
  • Read the nuPlan paper to understand the details behind the dataset.


Performance tuning guide

Training configurations are important to ensure your expected system performance, for example preprocessing cost, training speed, and numerical stability. If you encounter problems related to aforementioned aspects, please refer to performance tuning guide to find potential solutions.


Devkit structure

Our code is organized in these directories:

nuplan_devkit
├── ci              - Continuous integration code - not relevant for average users.
├── docs            - Readmes and other documentation of the repo and dataset.
├── nuplan          - The main source folder.
│   ├── common      - Code shared by "database" and "planning".
│   ├── database    - The core devkit used to load and render nuPlan dataset and maps.
│   ├── planning    - The stand-alone planning framework for simulation, training and evaluation.
│   ├── submission  - The submission engine used for the planning challenge.
│   └── cli         - Command line interface tools for the nuPlan database.
└── tutorials       - Interactive tutorials, see "Getting started".

Citation

Please use the following citation when referencing nuPlan:

@INPROCEEDINGS{nuplan, 
  title={NuPlan: A closed-loop ML-based planning benchmark for autonomous vehicles},
  author={H. Caesar, J. Kabzan, K. Tan et al.,},
  booktitle={CVPR ADP3 workshop},
  year=2021
}