Modules and Functions

To help developers quickly understand the structure of the code, we briefly introduce important modules of Safebench.

Carla Runner (safebench/carla_runner.py)

This is the entry point that manages all modules by hosting a loop to run all scenarios.

Gym module (safebench/gym_carla/)

This is the gym-style interface for Carla. The implementation of environments is in the envs folder. Each env will contains one scenario and a vectorized wrapper is implemented in env_wrapper.py to manager all scenarios that simultaneously run on the same map.

Agent Module (safebench/agent/)

The implementations of autonomous vehicle agents are placed here. The configuration files corresponding to these agents are placed in the config folder. The saved model files corresponding to these agents are placed in the model_ckpt folder.

Scenario Module (safebench/scenario/)

The implementations of traffic scenarios are placed here. The folder scenario_data stores data and model that scenarios use, including scenario routes, scenario models, and adversarial attack templates. The folder config stores configurations of scenarios, where the .yaml files will call different types of scenarios in the scenario_type folder. File scenario_data_loader.py contains a data loader to sample scenario configurations for training and evaluation.

The folder srunner contains partial files of Carla Scenario Runner for parsering configuration files (scenario_configs), scenario implementation (scenarios), and managing scenarios (scenario_manager). New scenarios implemented by the users should be placed into folder scenarios.