acav2023 / ACAV-SourceCode

6 stars 2 forks source link

ACAV

Introduction

ACAV is an automated Python framework designed to conduct causality analysis for AV accident recordings.

Our paper, "ACAV: A Framework for Automatic Causality Analysis in Autonomous Vehicle Accident Recordings" will be published at ICSE 2024 in April.

Please visit ACAV website for more information and demonstration.

Prerequisites

Install protobuf for ACAV

Install protobuf 3.19.4 for ACAV, by the following command:

pip3 install protobuf==3.19.4

Install cyber_record for ACAV

Install cyber_record, a cyber record file offline parse tool, by the following command:

pip3 install cyber_record

Install record_msg for ACAV

To avoid introducing too many dependencies, save messages by record_msg.

pip3 install record_msg -U

Install shapely for ACAV

Install shapely for ACAV, by the following command:

pip3 install shapely

Step by Step

Run ACAV

Run ACAV by the following command:

cd /root_of_ACAV_SourceCode
python3 main.py -i <the directory of the original recording file>

For example:

cd /root_of_ACAV_SourceCode
python3 main.py -i record/T-2.record

Setup

Adding a Vehicle

Currently, only the parameter file for Lincoln 2017 MKZ are included in ACAV. For a parameter file of a new vehicle, please add it to /root_of_ACAV-SourceCode/vehicles/.

Adding a map

Currently, only the map file for San Francisco is included in ACAV. For your own map file, please add it to /root_of_ACAV-SourceCode/maps/

Citing

If you use the project in your work, please consider citing the following work:

@inproceedings{sun2024acav,
author = {Sun, Huijia and Poskitt, Christopher M. and Sun, Yang and Sun, Jun and Chen, Yuqi},
title = {ACAV: A Framework for Automatic Causality Analysis in Autonomous Vehicle Accident Recordings},
year = {2024},
isbn = {9798400702174},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3597503.3639175},
doi = {10.1145/3597503.3639175},
booktitle = {Proceedings of the IEEE/ACM 46th International Conference on Software Engineering},
articleno = {102},
numpages = {13},
series = {ICSE '24}
}