Skip to content
collector-mPublic
forked from mumucc01/MOJITO

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

24 Commits

Folders and files

Repository files navigation

MOJITO (ECCV 2026)

arXiv Hugging Face

MOJITO is an end-to-end autonomous driving framework built upon DiffusionDrive. It introduces hierarchical three-modal fusion across vision, LiDAR, and trajectory/action representations, enabling unified perception and planning for end-to-end autonomous driving.

Project Structure

MOJITO/
├── MOJITO/               # Main codebase: NAVSIM agent, training, and evaluation
├── Diffusion-Planner/    # Diffusion-based trajectory planning module
├── nuplan-devkit/        # nuPlan development toolkit
├── weights/              # Pre-trained weights and MOJITO checkpoints
├── scripts/              # Environment installation scripts
├── setup_env.sh          # Environment configuration script
└── README.md

Local Setup Guide

Step 1: Environment Setup

Please refer to docs/environment.md for the complete dependency list, installation instructions, and solutions to common issues.

Installation from Scratch

conda create -n mojito python=3.9 -y
conda activate mojito

cd /path/to/MOJITO
bash scripts/install_env.sh

Step 2: Configure Environment Variables

Before running training or evaluation, load the environment configuration:

cd /path/to/MOJITO
source setup_env.sh

setup_env.sh configures the dataset paths, experiment directories, and training cache locations.

To use custom paths, export the corresponding environment variables before sourcing the script:

export OPENSCENE_DATA_ROOT=/your/dataset
export NAVSIM_EXP_ROOT=/your/exp
export MOJITO_CACHE_PATH=/your/training_cache

source setup_env.sh

Step 3: Dataset Preparation

The training split requires additional preprocessing.

The evaluation dataset preparation follows the same procedure as DiffusionDrive, including:

  • NAVSIM / OpenScene datasets
  • nuPlan maps
  • NAVSIM logs
  • Sensor blobs, including camera images and LiDAR point clouds

A typical dataset directory is organized as follows:

/path/to/MOJITO/MOJITO/dataset/
├── maps/
│   ├── sg-one-north
│   ├── us-ma-boston
│   └── ...
├── navsim_logs/
│   ├── trainval/
│   ├── test/
│   └── exp/
├── sensor_blobs/
│   ├── trainval/                  # Camera images and LiDAR point clouds
│   └── test/
├── navhard_two_stage/             # NAVSIM-v2 navhard split
├── private_test_hard_two_stage/
├── warmup_two_stage/
└── dataset/

Step 4: Model Weights

The official MOJITO checkpoints are available on:

🤗 Hugging Face: mumucc1/MOJITO

Download from Hugging Face

Install the Hugging Face Hub command-line tool if needed:

pip install -U huggingface_hub

Download the released checkpoints:

cd /path/to/MOJITO

mkdir -p weights/checkpoints

hf download mumucc1/MOJITO \
    --local-dir weights/checkpoints

You can also download the checkpoint manually from the Hugging Face repository.

After downloading, ensure that the default evaluation checkpoint is located at:

weights/checkpoints/mojito.ckpt

The pre-trained backbone weights should be placed under:

weights/pretrained/

The expected directory structure is:

weights/
├── pretrained/
│   └── ...
└── checkpoints/
    └── mojito.ckpt

Step 5: Training

To train MOJITO:

cd /path/to/MOJITO
source setup_env.sh

bash MOJITO/scripts/training/run_diffusiondrive_training.sh

The training pipeline automatically uses the preprocessing cache specified by:

MOJITO_CACHE_PATH

If the preprocessing cache does not exist, build it first:

cd /path/to/MOJITO
source setup_env.sh

python MOJITO/navsim/planning/script/run_dataset_caching.py \
    agent=diffusiondrive_agent \
    experiment_name=training_mojito_agent \
    train_test_split=navtrain

Step 6: Evaluation (NAVSIM navtest PDMS)

Metric Cache Preparation

If the metric cache does not exist, build it following the same procedure as DiffusionDrive:

cd /path/to/MOJITO
source setup_env.sh

python MOJITO/navsim/planning/script/run_metric_caching.py \
    train_test_split=navtest \
    cache.cache_path="${NAVSIM_EXP_ROOT}/metric_cache"

Run Evaluation

cd /path/to/MOJITO
source setup_env.sh

bash MOJITO/scripts/evaluation/run_diffusiondrive.sh

The default evaluation checkpoint is:

weights/checkpoints/mojito_navsim.ckpt

Make sure the checkpoint has been downloaded from Hugging Face before running the evaluation.


Model Release

  • MOJITO source code
  • Environment setup and training scripts
  • Official MOJITO evaluation checkpoints on Hugging Face

Acknowledgements

MOJITO is built upon and benefits from the following excellent open-source projects:

We sincerely thank the authors for their valuable contributions to the autonomous driving community.


Citation

If you find MOJITO useful for your research, please consider citing:

@misc{cheng2026mojitomodaljointlearning,
    title        = {MOJITO: Modal Joint Learning for Unified End-to-End Autonomous Driving},
    author       = {Zhijing Cheng and Xuancheng Zhang and Donglin Di and Lei Fan and Baorui Ma and Hao Li and Xun Yang},
    year         = {2026},
    eprint       = {2607.23511},
    archivePrefix = {arXiv},
    primaryClass = {cs.CV},
    url          = {https://arxiv.org/abs/2607.23511}
}

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages