def start(self, robot_name: str, fsm_config: str = 'SingleRun') -> None:
     self.output_dir = f'test_dir/{get_filename_without_extension(__file__)}'
     os.makedirs(self.output_dir, exist_ok=True)
     config_dict = {
         'output_path': self.output_dir,
         'factory_key': "ROS",
         'max_number_of_steps': -1,
         'ros_config': {
             'ros_launch_config': {
                 'control_mapping_config': 'keyboard_and_joystick',
                 'fsm_mode': fsm_config,
                 'gazebo': 'sim' in robot_name,
                 'random_seed': 123,
                 'robot_name': robot_name,
                 'world_name': 'empty',
                 'robot_display': True,
             },
             'actor_configs': [{
                 'file': f'src/sim/ros/config/actor/keyboard_drone_sim.yml',
                 'name': 'keyboard'
             }, {
                 'file': f'src/sim/ros/config/actor/joystick_drone_sim.yml',
                 'name': 'joystick'
             }],
             'visible_xterm':
             True,
         },
     }
     config = EnvironmentConfig().create(config_dict=config_dict)
     self._environment = RosEnvironment(config=config)
 def setUp(self) -> None:
     config_dict['output_path'] = f'test_dir/{get_filename_without_extension(__file__)}'
     config = EnvironmentConfig().create(
         config_dict=config_dict
     )
     self.output_dir = config.output_path
     self._environment = RosEnvironment(
         config=config
     )
Exemplo n.º 3
0
 def setUp(self) -> None:
     self.output_dir = f'test_dir/{get_filename_without_extension(__file__)}'
     os.makedirs(self.output_dir, exist_ok=True)
     config_dict['output_path'] = self.output_dir
     config = EnvironmentConfig().create(
         config_dict=config_dict
     )
     self._environment = RosEnvironment(
         config=config
     )
Exemplo n.º 4
0
def main():
    global environment
    config_file = Parser().parse_args().config
    config = EnvironmentConfig().create(config_file=config_file)

    signal.signal(signal.SIGTERM, signal_handler)
    # try:
    environment = RosEnvironment(config=config)
    state = environment.reset()
    while state.done != TerminationType.Success and state.done != TerminationType.Failure:
        print(f'state: {environment.fsm_state}')
        state = environment.step()
    environment.remove()
Exemplo n.º 5
0
    def _test_environment_by_name(self, name: str) -> bool:
        config = {
            'output_path': self.output_dir,
            'factory_key': "GYM",
            'max_number_of_steps': 200,
            'ros_config': None,
            'gym_config': {
                'random_seed': 123,
                'world_name': name,
                'render': False
            }
        }

        environment = GymEnvironment(
            EnvironmentConfig().create(config_dict=config))
        experience, _ = environment.reset()
        while experience.done != TerminationType.Done:
            experience, _ = environment.step(environment.get_random_action())
        return environment.remove() == ProcessState.Terminated
Exemplo n.º 6
0
                "python" if DS_TASK == "velocities" else "mathias_controller",
                "world_name": WORLD,
                "starting_height": 1.5,
                "z_pos": 0.2,
                "yaw_or": 0.0,
                "gazebo": True,
            },
            "actor_configs": [{
                "name":
                "mathias_controller_with_KF",
                "file":
                f'{os.environ["CODEDIR"]}/src/sim/ros/config/actor/mathias_controller_with_KF.yml',
            }],
        },
    }
    config = EnvironmentConfig().create(config_dict=environment_config_dict)
    output_dir = config.output_path

    # Load model
    model = fgbg.DownstreamNet(
        output_size=(4, ) if DS_TASK == "velocities" else (3, ),
        batch_norm=BATCHNORM)
    ckpt = torch.load(CHECKPOINT + "/checkpoint_model.ckpt",
                      map_location=torch.device("cpu"))
    model.load_state_dict(ckpt["state_dict"])
    print(f"Loaded encoder from {CHECKPOINT}.")

    environment = RosEnvironment(config=config)
    losses = []
    successes = []