import logging from pathlib import Path from ROAR_Sim.configurations.configuration import Configuration as CarlaConfig from ROAR_Sim.carla_client.carla_runner import CarlaRunner from ROAR.agent_module.pure_pursuit_agent import PurePursuitAgent from ROAR.configurations.configuration import Configuration as AgentConfig import argparse from misc.utils import str2bool from ROAR.agent_module.michael_pid_agent import PIDAgent from ROAR.agent_module.forward_only_agent import ForwardOnlyAgent def main(args): """Starts game loop""" agent_config = AgentConfig.parse_file(Path("./ROAR/configurations/carla/carla_agent_configuration.json")) carla_config = CarlaConfig.parse_file(Path("./ROAR_Sim/configurations/configuration.json")) carla_runner = CarlaRunner(carla_settings=carla_config, agent_settings=agent_config, npc_agent_class=PurePursuitAgent) try: my_vehicle = carla_runner.set_carla_world() agent = ForwardOnlyAgent(vehicle=my_vehicle, agent_settings=agent_config) carla_runner.start_game_loop(agent=agent, use_manual_control=not args.auto) except Exception as e: logging.error(f"Something bad happened during initialization: {e}") carla_runner.on_finish() logging.error(f"{e}. Might be a good idea to restart Server") if __name__ == "__main__": logging.basicConfig(format='%(levelname)s - %(asctime)s - %(name)s ' '- %(message)s', datefmt="%H:%M:%S", level=logging.DEBUG) logging.getLogger(" streaming client").setLevel(logging.WARNING) import warnings warnings.filterwarnings("ignore", module="carla") parser = argparse.ArgumentParser() parser.add_argument("--auto", type=str2bool, default=False, help="True to use auto control") warnings.filterwarnings("ignore", module="carla") args = parser.parse_args() main(args)