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.
This repository supports the following related papers, listed newest first.
-
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 -
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 -
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.
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.
code/contains the CADET/CARLA wrapper implementation. The main package iscode/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.
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.
Start from a working Pylot/CARLA environment. The upstream Pylot Docker setup is the closest base environment:
docker pull erdosproject/pylotInside an environment where Pylot, ERDOS, and CARLA are available, expose this repository's source tree on PYTHONPATH:
export PYTHONPATH=$PYTHONPATH:/path/to/cadet/codeBefore running experiments, configure host addresses, model paths, logging paths, and CARLA connection settings in:
code/carla_wrapper/params.pycode/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.
The primary entry points are in code/carla_wrapper/:
cd code/carla_wrapper
python run.pyDistributed execution uses the local/cloud server scripts:
cd code/carla_wrapper
python local_server.py
python cloud_server.py
python async_runner.pyIsolated planning/control testing uses:
cd code/carla_wrapper
python isolated_run_test.pyWorkload traces are stored in experiments/workloads/. Select the appropriate trace/configuration for the experiment scenario and update params.py accordingly.
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.txtSome 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.
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}
}The root license is Apache License 2.0.