Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CADET: Cooperative Autonomy through Distributed Experimentation Toolkit

CADET is the main repository for evaluating distributed cooperative autonomy pipelines in CARLA-based connected autonomous vehicle scenarios. It provides wrapper code, deployment scripts, workload traces, and result-processing utilities for studying how perception, planning, prediction, and control behave when computation is split across vehicle, edge, infrastructure, and cloud resources. The code builds on Pylot work and CARLA simulator.

Papers

This repository supports the following related papers, listed newest first.

  1. CADET: A Modular Platform for Evaluating Distributed Cooperative Autonomy in Connected Autonomous Vehicles
    Pragya Sharma, Brian Wang, Mani Srivastava
    2026 IEEE International Conference on Robotics and Automation (ICRA), 2026
    Links: arXiv:2606.04072, CADET project page

  2. Cloud Is Closer Than It Appears: Revisiting the Tradeoffs of Distributed Real-Time Inference
    Pragya Sharma, Hang Qiu, Mani Srivastava
    2025 34th International Conference on Computer Communications and Networks (ICCCN), 2025
    Links: DOI, arXiv:2605.00005

  3. Poster: Towards a Performance-Driven Device-Edge-Cloud Relationship
    Pragya Sharma, Brian Wang, Xiaomin Ouyang, Rahal Nanayakkara, Bharathan Balaji, Paulo Tabuada, Mani B. Srivastava
    Proceedings of the 26th International Workshop on Mobile Computing Systems and Applications (HotMobile), 2025
    Links: DOI, NSF Public Access Repository

CADET is the full architecture implementation. The ICCCN and HotMobile papers represent related evaluations and earlier/adjacent analyses of distributed real-time inference and device-edge-cloud placement tradeoffs.

Overview

CADET extends a CARLA/Pylot autonomous driving stack with modules and scripts for distributed experimentation. The repository includes:

  • CARLA wrapper code for perception, tracking, prediction, planning, control, and visualization.
  • Local/cloud runner and server entry points for distributed execution.
  • Support code for workload-driven experiments and latency/result logging.
  • Analysis scripts for latency, distance error, jerk, and open-loop evaluation.
  • Example workload traces, metrics, result dumps, and generated figures.

Repository Structure

  • code/ contains the CADET/CARLA wrapper implementation. The main package is code/carla_wrapper/.
  • experiments/ contains workload traces and analysis scripts used to reproduce or inspect experiment outputs.
  • results/ contains curated metrics, sample run outputs, and figures.
  • docs/ contains provenance notes for the original development branch and upstream dependencies.

See the README files inside experiments/ and results/ for more detail on those components.

Dependencies

CADET depends on the Pylot/CARLA software stack:

  • Pylot
  • ERDOS
  • CARLA
  • Python packages used by the wrapper and analysis scripts, including numpy, matplotlib, pygame, opencv-python, and object detection/tracking dependencies.

This branch targets the Pylot CARLA environment and includes CARLA 0.9.10 compatibility assumptions in the simulation utilities.

Setup

Start from a working Pylot/CARLA environment. The upstream Pylot Docker setup is the closest base environment:

docker pull erdosproject/pylot

Inside an environment where Pylot, ERDOS, and CARLA are available, expose this repository's source tree on PYTHONPATH:

export PYTHONPATH=$PYTHONPATH:/path/to/cadet/code

Before running experiments, configure host addresses, model paths, logging paths, and CARLA connection settings in:

  • code/carla_wrapper/params.py
  • code/carla_wrapper/utils/logging.py

The YOLOv8n weight file used by the wrapper is included at:

code/carla_wrapper/detection/yolov8n.pt

Additional upstream Pylot model assets may need to be installed separately depending on the experiment configuration.

Running CADET

The primary entry points are in code/carla_wrapper/:

cd code/carla_wrapper
python run.py

Distributed execution uses the local/cloud server scripts:

cd code/carla_wrapper
python local_server.py
python cloud_server.py
python async_runner.py

Isolated planning/control testing uses:

cd code/carla_wrapper
python isolated_run_test.py

Workload traces are stored in experiments/workloads/. Select the appropriate trace/configuration for the experiment scenario and update params.py accordingly.

Analysis and Plotting

Analysis scripts are in experiments/analysis_scripts/ and experiments/ol-code/.

Examples:

cd experiments/analysis_scripts
python plot_latency.py ../../results/sample_runs/<result-file>.txt
python plot_dist_error.py ../../results/sample_runs/mpc_sort.txt ../../results/sample_runs/pid_sort.txt
python plot_jerk.py ../../results/sample_runs/mpc_sort.txt ../../results/sample_runs/pid_sort.txt

Results

Some results are stored under results/:

  • results/metrics/ contains module completion time CSVs.
  • results/sample_runs/ contains selected text, CSV, and pickle result dumps.
  • results/figures/ contains generated figures.

These files are intended as example outputs and supporting files for inspecting the reported experiment behavior.

Citation

Please cite the relevant paper(s) if you use this repository.

@article{sharma2026cadet,
  title = {CADET: A Modular Platform for Evaluating Distributed Cooperative Autonomy in Connected Autonomous Vehicles},
  author = {Sharma, Pragya and Wang, Brian and Srivastava, Mani},
  journal = {arXiv preprint arXiv:2606.04072},
  year = {2026},
  url = {https://arxiv.org/abs/2606.04072}
}

@inproceedings{sharma2025cloud,
  title = {Cloud Is Closer Than It Appears: Revisiting the Tradeoffs of Distributed Real-Time Inference},
  author = {Sharma, Pragya and Qiu, Hang and Srivastava, Mani},
  booktitle = {2025 34th International Conference on Computer Communications and Networks (ICCCN)},
  year = {2025},
  doi = {10.1109/ICCCN65249.2025.11133852},
  url = {https://doi.org/10.1109/ICCCN65249.2025.11133852}
}

@inproceedings{sharma2025poster,
  title = {Poster: Towards a Performance-Driven Device-Edge-Cloud Relationship},
  author = {Sharma, Pragya and Wang, Brian and Ouyang, Xiaomin and Nanayakkara, Rahal and Balaji, Bharathan and Tabuada, Paulo and Srivastava, Mani B.},
  booktitle = {Proceedings of the 26th International Workshop on Mobile Computing Systems and Applications},
  pages = {125},
  year = {2025},
  publisher = {Association for Computing Machinery},
  doi = {10.1145/3708468.3715681},
  url = {https://doi.org/10.1145/3708468.3715681}
}

License

The root license is Apache License 2.0.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages