This is the repository for the paper Scenario-based Test Reduction and Prioritization for Mutli-Module Autonomous Driving Systems.
- SVL Simulator
- Apollo 5.0
- GPU: NVIDIA GTX 1080/1080Ti (Apollo 5.0 doesn't support RTX series)
add_mutants.pyandrecording_collect.pyare used for collect driving recordingssegment_split.pyimplements the recording segmentation and reductionprioritization.pyimplements prioritization algorithms.evaluate.pyis used to run experiments
-
Install Apollo 5.0 by following the instruction. Clone the repository to the root path of Apollo 5.0.
-
If you install Apollo 5.0 in docker,
- launch the Apollo docker container:
./docker/script/dev_start.sh - Enter the container:
./docker/script/dev_into.sh - Compile Apollo:
./apollo.sh build_opt_gpu
- launch the Apollo docker container:
-
Install python3-pip in docker container
sudo apt-get update & sudo apt-get -y install python3-pip -
Install websocket-client
sudo pip3 install websocket-client -
run
python3 recording_collect.py <system_to_test> <number_of_mutants>.system_to_testcan besignal, obstacle, planning, prediction.
-
Install Apollo 5.0 by following the instruction. Clone the repository to the root path of Apollo 5.0.
-
Download original driving recordings collected on three maps via the link and unzip record files into the folder
data/records. -
If you install Apollo 5.0 in docker,
- launch the Apollo docker container:
./docker/script/dev_start.sh - Enter the container:
./docker/script/dev_into.sh - Compile Apollo:
./apollo.sh build_opt_gpu
- launch the Apollo docker container:
-
run
python recording_collect.pyto get regression recordings. -
run test reduction algorithm to generate segments
python run segment_split.py -
run
python evaluate.pyto evaluate the test reduction and prioritization algorithms.
As Apollo is a non-deterministic system, the running results on different machines may be different.