This project is the official implementation of paper:
BehAVExplor: Behavior Diversity Guided Testing for Autonomous Driving Systems
Authors: Mingfei Cheng, Yuan Zhou and Xiaofei Xie
Accepted to ISSTA 2023
Step 1: Config Baidu Apollo (no less than 6.0 version) according to Apollo
Step 2: Clone BehAVExplor Project (BehAVExplor.zip) and unzip it under /apollo
in the apollo container
- Project Structure
/apollo ├── BehAVExplor └── other apollo folders
Step 3: Install required Python dependency inside the apollo container
cd /apollo/BehAVExplor
sh prepare.sh
Step 3: Compile BehAVExplor inside the apollo container
cd /apollo
bazel build //BehAVExplor:main
Step 4: Config our custom LGSVL 2021.3 (Download from link)
- Put simulator.zip at ~/lgsvl outside the apollo container
- Double click ~/lgsvl/simulator/simulator/simulator to open LGSVL Simulator
- NOTE: LGSVL was closed, therefore, we will plan to extend this project to CARLA.
Step 5: Install default map used by BehAVExplor by unzipping BehavExplor/data/SanFrancisco.zip
at /apollo/modules/map/data
. Your file structure should look like this
map
|-data
|-SanFrancisco
|- base_map.bin
|- routing_map.bin
|- ...
Step 6: Start Apollo and CyberRT bridge inside the apollo container via
cd /apollo
bash scripts/bootstrap.sh
bash scripts/bridge
Step 7: Start LGSVL. Run in another terminal (current path is /apollo
inside apollo container)
./bazel-bin/BehAVExplor/main --config=/apollo/BehAVExplor/configs/[scenario config yaml file]
If you use this code and our results for your research, please cite our paper.
@inproceedings{BehAVExplor_ISSTA_2023,
title={BehAVExplor: Behavior Diversity Guided Testing for Autonomous Driving Systems},
author={Cheng, Mingfei and Zhou, Yuan and Xie, Xiaofei},
booktitle={Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA)},
year={2023}
}