# 1. Clone this repository
git clone https://github.com/autonomousvision/plant2.git
cd plant2
# 2. Setup Carla
# if you already have carla, skip this step
chmod +x setup_carla.sh
./setup_carla.sh
# 3. Setup environment
conda env create -f environment.yml
conda activate plant2You can test the performance of PlanT 2.0's pretrained models using the CARLA leaderboard evaluator. First, the following evironment variables have to be set correctly:
export CARLA_ROOT=/path/to/CARLA
export WORK_DIR=/path/to/plant2
export SCENARIO_RUNNER_ROOT=$WORK_DIR/scenario_runner_autopilot
export LEADERBOARD_ROOT=$WORK_DIR/leaderboard_autopilot
export PYTHONPATH=$CARLA_ROOT/PythonAPI/carla:$LEADERBOARD_ROOT:$SCENARIO_RUNNER_ROOT:$WORK_DIR/PlanT:$WORK_DIR/carla_garageAfterwards, the evaluation can be started using two separate terminals:
# Terminal 1: Start CARLA, e.g. using:
$CARLA_ROOT/CarlaUE4.sh
# Terminal 2: Run the evaluation:
# Fill in your own paths and eval args
export PLANT_VIZ=/path/to/viz_[ROUTE]
export PLANT_CHECKPOINT=/path/to/checkpoint.ckpt
python leaderboard_autopilot/leaderboard/leaderboard_evaluator_local.py \
--routes=[ROUTE_FILE] \
--track=[SENSORS if B2D else MAP] \
--agent=PlanT/PlanT_agent.pyTo perform a full evaluation of a benchmark on a SLURM cluster, you can refer to plant_evaluate.py. The script contains some config parameters that can be changed to evaluate different benchmarks, as well as some cluster-dependent settings.
After updating the parameters you can run the script, e.g. using:
python plant_evaluate.py \
--checkpoint /path/to/epoch=029_final_1.ckpt \
--routes /path/to/longest6_split/ \
--out_root results/longest6 \
--seeds 1 2 3To train PlanT 2.0 from scratch, you can use train_plant.sh, which can run locally or on a SLURM cluster. Relevant configuration files for training and model settings are config.yaml, PlanT.yaml and your user specific username.yaml (which is referenced in config.yaml).
The dataset used during our experiments is availabe for download on Huggingface. If you want to collect your own dataset, we provide the modified autopilot.py and data_agent.py used for our dataset. You can use collect_dataset_slurm.py or 0_run_collect_dataset_slurm.sh start the dataset collection process on a SLURM cluster. The scripts have to be modified according to your cluster setup. The current settings do not require any GPU's and instead run small jobs with 2 CPU's and 20Gb of RAM, since they don't collect RGB information.
@misc{gerstenecker2025plant20exposingbiases,
title={PlanT 2.0: Exposing Biases and Structural Flaws in Closed-Loop Driving},
author={Simon Gerstenecker and Andreas Geiger and Katrin Renz},
year={2025},
eprint={2511.07292},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2511.07292},
}This repository builds upon the work of carla_garage and PlanT. We thank the authors for open-sourcing their work.
