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.