PRoBify

A Probabilistic Behavior Modeling Framework for the Online Testing of Autonomous Vehicles

Overview

This work introduces the PRoBify framework, a probabilistic programming approach for modeling behavioral uncertainty and verifying safety properties of AVs in the presence of the uncertainty. We describe a probabilistic programming language for specifying behavior spaces that capture uncertainty of driver behaviors. We then show how behaviors can be sampled from the behavior space to discover safety violations in the AV under study. We present several use cases that apply the proposed framework in traffic scenarios based on real-world data to demonstrate how PRoBify can discover unintuitive but plausible and dangerous AV failures.

Data Flow Diagram

Data flow diagram for PRoBify framework

Metamodel

Metamodel of PRoBify language

Results

We illustrate the PRoBify framework in several illustrative use cases based on real-world traffic scenarios. We provide video demonstrations for the PRoBify-discovered counterexamples below.

Busy Event Parking (see Figure 5, Manuscript)

Irregular Intersection (see Figure 7, Manuscript)

Interactive Sandbox

Interactive sandbox for exploring the PRoBify language. Select an example PRoBify program in the left panel. Click "Sample" to generate an instance of the corresponding concrete program. Note: Our experiments use an external simulator (Metadrive) to execute a concrete program. As the PRoBify framework is intended to be simulator-agnostic, we provide a sandbox for exploring the key features of the language, while the choice of simulation platform is up to the end user.

Probabilistic Behavior Tree

Original Tree Structure

Sampled Concrete Instance

Sampled Tree Structure