This project is a prototype for APSFuzz. A simulation-based fuzzing tool for automated parking system from our paper "APSFuzz: Simulation-Based Fuzzing Testing for Automated Parking Systems".
Hardware:
- GPU: NVIDIA GeForce RTX 4090
- CPU: Intel Xeon Gold 6342 CPU
Software:
- OS: Ubuntu 20.04
- APS: Autoware humble-2023.08-prebuilt-cuda-amd64
- Simulatior: Carla 0.9.13
Our project is developed based on the following two excellent open-source projects:
- Co-simulation Bridge Program: autoware_carla_launch (Branch:
humble-0.9.13) - Carla Scenario Runner: scenario_runner
For detailed instructions on setting up the co-simulation environment, please refer to the documentation below:
The project is structured as follows:
APS-FUZZER/
├── carla_interface_gt/ # ground truth of perception
├── detection_gt/ # ground truth of detection
├── fuzzer_src/
├── fuzzer.py # Main fuzzer script
| config/
| mutator/ # Mutator / trajectory recorder
| mutator.py
| get_ego_trajectory.py
| ...
| Scenario/ # Store xosc file
| srunner/ # npc controller
| running_monitor.py # Monitor the running status of the fuzzer
| map_convertor/ # Parking map we use
| new_angled_parking_1.osm # And some format conversion scripts
| ...
├── localization_ground_truth/ # ground truth of localization
├── README.md
Make sure you have followed the instructions in the Environment Setup section and set up the co-simulation environment.
-
Clone the repository to $HOME, conda is recommended (Python 3.8.10):
git clone https://github.com/JSGforever/APS-FUZZER.git cd APS-FUZZER/fuzzer_src/ pip install -r requirements.txt -
Launch up the co-simulation environment following the instructions in the Environment Setup section.
-
Run the fuzzer:
python3 fuzzer.py --openscenario {path-to-xosc-file} --strategy {aggressive} -
Due to the unstable performance of the simulation env, we strongly recommend running the fuzzer with a monitor. Before running the monitor, please adjust all the parameters in the
running_monitor.pyfile to match your environment. Then, run the monitor:python3 running_monitor.py
The monitor will restart the whole fuzzing process if carla or autoware crashes unexpectedly.
Due to recent branch updates in the underlying co-simulation environment, users may encounter runtime failures caused by environmental inconsistencies.
We are actively monitoring these changes and will continue to update the APSFUZZ codebase to ensure compatibility and stability in future releases.