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
The saved model files corresponding to these agents are placed in the
Scenario Module (safebench/scenario/)
The implementations of traffic scenarios are placed here.
scenario_data stores data and model that scenarios use, including scenario routes, scenario models, and adversarial attack templates.
config stores configurations of scenarios, where the
.yaml files will call different types of scenarios in the
scenario_data_loader.py contains a data loader to sample scenario configurations for training and evaluation.
srunner contains partial files of Carla Scenario Runner for parsering configuration files (
scenario_configs), scenario implementation (
scenarios), and managing scenarios (
New scenarios implemented by the users should be placed into folder