Skip to content

boschresearch/interactive-closed-loop

Repository files navigation


This is the official implementation of When Planners Meet Reality: How Learned, Reactive Traffic Agents Shift nuPlan Benchmarks by Steffen Hagedorn, Aron Distelzweig, and Alexandru Condurache, accepted at ICRA 2026. The code allows the users to reproduce and extend the results reported in the paper. Please cite the paper below when reporting, reproducing, or extending the results.

Purpose of the project

This software is a research prototype, solely developed for and published as part of the publication cited above. It will neither be maintained nor monitored in any way.

Requirements, how to build, test, install, use, etc.

Clone nuPlan and SMART repositories

Clone both repositories into the same directory.

git clone https://github.com/motional/nuplan-devkit.git
git clone https://github.com/rainmaker22/SMART.git

Replace the default planning module with nuplan_smart

cd nuplan-devkit/nuplan
rm -rf planning
git clone https://github.com/boschresearch/interactive-closed-loop.git planning

Install Dependencies

cd planning
conda env create -f environment.yml
conda activate nuplan_smart

run the following pip installs to use the correct versions:

pip install selenium==4.35.0
pip install numpy==1.23.4 urllib3==1.26.20

Configure Paths

Make sure to adjust these paths to your setup:

  • export NUPLAN_DEVKIT_ROOT="path/nuplan-devkit"
  • export NUPLAN_DATA_ROOT="path/nuplan/dataset"
  • export NUPLAN_MAPS_ROOT="path/nuplan/dataset/maps"
  • export NUPLAN_MAP_VERSION="nuplan-maps-v1.0"
  • export NUPLAN_EXP_ROOT="path/nuplan/exp"
  • export NUPLAN_CACHE_ROOT="path/nuplan/exp/cache"
  • export SMART_ROOT="path/SMART"
  • export PYTHONPATH="$NUPLAN_DEVKIT_ROOT:$SMART_ROOT:$PYTHONPATH"

Run Simulation with SMART Agents

For the simulation we provide a checkpoint of the model under planning/checkpoint. After installing and setting everything up correctly you can run this example command to check if the simulation runs correctly:

python nuplan-devkit/nuplan/planning/script/run_simulation.py \
experiment_name=simulation_smart_agents \
+simulation=closed_loop_smart_reactive_agents \
planner=log_future_planner \
scenario_builder=nuplan \
scenario_filter=test_one_scenario

Run SMART Training

If you want to train the SMART model with nuPlan data, you can use the provided preprocessing script: generate_pkl_from_nuplan_for_smart.py which you can find under planning/script.

This script can be configured similar to the scenario filter YAML files to select scenarios for preprocessing. It generates pickle files which can then be used as input to train the SMART model, as described in the SMART GitHub repository.

Citation

To cite the paper please use the following bibtex:

@inproceedings{hagedorn2026planners,
        title={When Planners Meet Reality: How Learned, Reactive Traffic Agents Shift nuPlan Benchmarks},
        author={Hagedorn, Steffen and Distelzweig, Aron and Condurache, Alexandru P},
        booktitle={2026 IEEE International Conference on Robotics and Automation (ICRA)},
        pages={17107--17114},
        year={2026},
        organization={IEEE}
}

Acknowledgements

This project builds on and modifies the nuPlan devkit (Apache-2.0, Copyright 2021 Motional) and uses the SMART traffic agent model (Apache-2.0) as reactive agents. We thank the authors of these works for their great work to build upon. See 3rd-party-licenses.txt for details.

License

interactive-closed-loop is open-sourced under the AGPL-3.0 license. See the LICENSE file for details.

For a list of other open source components included in interactive-closed-loop, see the file 3rd-party-licenses.txt.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages