---
# System prepended metadata

title: 'Summary of AV-Fuzzer [ISSRE''20]'

---

Summary of AV-Fuzzer [ISSRE'20]
===

[AV-Fuzzer: Finding Safety Viloations in Autonomous Driving Systems](https://research.nvidia.com/sites/default/files/pubs/2020-10_AV-FUZZER%3A-Finding-Safety//ISSRE_2020_AV_Fuzzer.pdf).
UIUC, NVIDIA.

## Focus

Find **unsafe NPC driving trajectories** that will may cause a collision with the ego vehicle.

## Error Detection

Detect NPC trajectories that do not keep **a safe distance** to another vehicle (**both longitudial and lateral**)

* **Safety potential metric (Fig. 3)**: A trajectory is considered safe if `distance_to_vehicle - distance_to_stop > threshold`, with comfortable braking speed configured.
* Measure it for every NPC in the simulation.

## Input Generation

* **Genetic algorithm (GA)**
  * Start with a set of test cases with random NPC trajectories
  * Use the safety potential as feedback to generate the next one.
  * Keep the test cases with lower safety potential only.
  * Generate new test cases through (a) crossover and (b) mutation.
  * Use test cases with lower safety potential as seed cases.
* **Local fuzzer (for near-miss cases)**
  * One local fuzer per seed case.
  * Generate close variants around the seed (mutation-based).
  * Run for a given period of search time.
  * Replace the seed from the GA with the best one found.
* **Random restart**
  * Launch if the safety potential score is not improved over time in GA.
  * Create a new set of test cases with random NPC trajectories.
  * Restart the GA.

## Evaluation

* AV-Fuzzer vs. RL AST vs. random fuzzer.
  * \# of "safety violations" detected for 10 hours.
  * Time to find the first safety violation.
* **46 safety violations in 5 types (Fig. 10).**
  * All related to lane changes and distance between the ego vehicle and closest NPC vehicle.
  * Euclidean distances between NPC trajectories across 5 types.
