ConfVE is the first configuration testing approach in the ADS domain, which serves as a testing framework that utilizes scenarios from pre-existing ADS scenario-generation techniques and a genetic algorithm to produce alternative configurations to identify emerged failures in an ADS by preventing the masking of failures and maximizing the possibility of producing bug-revealing violations.
The video recordings of ConfVE when different types of violations happen are available at
-
Intel Core i9 12900K (16-core)
-
96 GB memory and above
-
Ubuntu 22.04 and above
-
Docker-CE version 19.03 and above
-
Python 3.11 and above
-
NVIDIA RTX 3090 and above (Optional)
-
NVIDIA driver version 455.32.00 and above (Optional)
-
NVIDIA Container Toolkit (Optional)
ConfVE runs multiple Docker container simultaneously, therefore the requirement for running ConfVE varies based on the number of containers (default=5) you wish to run.
In this section we will be discussing steps to replicate the results discussed in the paper
|--DIR_ROOT
|--apollo
|--modules
|...
|--ConfVE
|--data
|--src
|--config.py
|--main.py
-
Git clone this repository or download the zip file of this project. Unzip the
ConfVE.zip
file to get thedata
andsrc
directories. -
Place the
/ConfVE
under the same directory with/apollo
-
Git clone or Download the Apollo 7.0 from https://github.com/yuntianyi-chen/apollo-baidu/tree/master, and name the apollo root directory
/apollo
-
Copy the directory
ConfVE/data/module/sim_control
toapollo/modules/
-
Replace the file
apollo/docker/scripts/dev_start.sh
with the file ofConfVE/data/scripts/apollo_multi_container/dev_start.sh
, -
At the root directory of Apollo, start up Apollo container via
bash docker/scripts/dev_start.sh
-
Enter the docker container using
bash docker/scripts/dev_into.sh
-
In the container, build Apollo via
./apollo.sh build
or./apollo.sh build_opt_gpu
-
Enter the
ConfVE
folder, install the required Python libraries viapip install -r requirements.txt
. This includes installing the required Python libraries: numpy, Shapely, pandas, networkx, docker, and cyber_record. -
Customize the parameters in
ConfVE/src/config.py
according to your requirements, or just remain default. -
Place your directories of initial record files under
ConfVE/data/records
, runpython3 prepare.py
The folder name should follow the rule of
ApproachName_MapName
(e.g.,DoppelTest_borregas_ave
). We've provided a group of sample records file underConfVE/data/records
for your reference.
-
Execute
sudo chmod -R 777 apollo/data
to change the permission of the directoryapollo/data
-
Run
python3 main.py
to start the testing
After running ConfVE for extended period of time, you should see temporary record files of scenarios generated under
apollo/data/records
. This is also the step to replicate the results presented in the paper.
- For the first run, the map parser would be automated executed to generate and save the map info file. If you test on a large map, it may take a long time.