def __init__(self, cfg_path=None): # If `visualise` is set to False torcs simulator will run in headless mode self.step_num = 0 self._config = MadrasConfig() self._config.update(parse_yaml(cfg_path)) self.torcs_proc = None self.observation_handler = oh.ObservationHandler( self._config.observations, self._config.vision) self.set_observation_and_action_spaces() self.reward_handler = rh.RewardHandler(self._config.rewards) self.done_handler = dh.DoneHandler(self._config.dones) self.torcs_server_port = self._config.torcs_server_port self.state_dim = self.observation_handler.get_state_dim( ) # No. of sensors input self.env_name = 'Madras_Env' self.client_type = 0 # Snakeoil client type self.initial_reset = True if self._config.pid_assist: self.PID_controller = PIDController(self._config.pid_settings) self.ob = None self.seed() self.torcs_server_config = torcs_config.TorcsConfig( self._config.server_config, randomize=self._config.randomize_env) self.start_torcs_process()
path_and_file = os.path.realpath(__file__) path, file = os.path.split(path_and_file) DEFAULT_SIM_OPTIONS_FILE = os.path.join(path, "data", "sim_options.yml") cfg_path = '/home/saivinay/Documents/RL_project/MADRaS/MADRaS/envs/data/sim_options.yml' def parse_yaml(yaml_file): if not yaml_file: yaml_file = DEFAULT_SIM_OPTIONS_FILE with open(yaml_file, 'r') as f: return yaml.safe_load(f) env = MadrasEnv() _config = MadrasConfig() _config.update(parse_yaml(cfg_path)) # print(_config.server_config) torcs_server_config = torcs_config.TorcsConfig(_config.server_config, randomize=_config.randomize_env) torcs_server_config.generate_torcs_server_config() traffic_manager = traffic.MadrasTrafficManager(_config.torcs_server_port, 1, _config.traffic) # traffic_manager.flag_off_traffic() # traffic_manager.kill_all_traffic_agents() traffic_manager.reset(torcs_server_config.num_traffic_cars)