コード例 #1
0
def main():
    parser = argparse.ArgumentParser(description='MINOS gym wrapper')
    parser.add_argument('--save_observations', action='store_true',
                        default=False,
                        help='Save sensor observations at each step to images')
    args = parse_sim_args(parser)
    run_gym(args)
コード例 #2
0
ファイル: generate_dataset.py プロジェクト: CRLab/minos
def main():
    global VIDEO_WRITER
    parser = argparse.ArgumentParser(description='Interactive interface to Simulator')
    parser.add_argument('--navmap', action='store_true',
                        default=False,
                        help='Use navigation map')
    group = parser.add_mutually_exclusive_group()
    group.add_argument('--state_set_file',
                       help='State set file')
    group.add_argument('--replay',
                       help='Load and replay action trace from file')
    group.add_argument('--replay_mode',
                       choices=REPLAY_MODES,
                       default='positions',
                       help='Use actions or positions for replay')
    group.add_argument('--show_goals', action='store_true',
                       default=False,
                       help='show goal observations')

    args = parse_sim_args(parser)
    args.visualize_sensors = True
    sim = Simulator(vars(args))
    common.attach_exit_handler(sim)

    if 'state_set_file' in args and args.state_set_file is not None:
        args.state_set = StateSet(args.state_set_file, 1)
    if 'save_video' in args and len(args.save_video):
        filename = args.save_video if type(args.save_video) is str else 'out.mp4'
        is_rgb = args.color_encoding == 'rgba'
        VIDEO_WRITER = VideoWriter(filename, framerate=24, resolution=(args.width, args.height), rgb=is_rgb)
    if 'replay' in args and args.replay is not None:
        print('Initializing simulator using action traces %s...' % args.replay)
        args.action_traces = ActionTraces(args.replay)
        action_trace = args.action_traces.next_trace()
        sim.init()
        start_state = action_trace.start_state()
        print('start_state', start_state)
        sim.configure(start_state)
    else:
        args.action_traces = None
        args.replay = None

    try:
        print('Starting simulator...')
        ep_info = sim.start()
        if ep_info:
            print('observation_space', sim.get_observation_space())
            sim.episode_info = ep_info
            print('Simulator started.')
            interactive_loop(sim, args)
    except:
        traceback.print_exc()
        print('Error running simulator. Aborting.')

    if sim is not None:
        sim.kill()
        del sim

    if VIDEO_WRITER is not None:
        VIDEO_WRITER.close()
コード例 #3
0
ファイル: generate_episodes.py プロジェクト: wh-forker/minos
def main():
    parser = argparse.ArgumentParser(description='Sample Agent States')
    parser.add_argument('--samples_per_scene',
                        default=100,
                        type=int,
                        help='Number of episodes per scene')
    parser.add_argument(
        '--min_rooms',
        default=1,
        type=int,
        help='Only sample from scenes with more than this many rooms')
    parser.add_argument(
        '--max_rooms',
        default=10000,  # Huge default
        type=int,
        help='Only sample from scenes with less than this many rooms')
    parser.add_argument('--min_dist',
                        default=1.0,
                        type=float,
                        help='Minimum distance between start and goal')
    parser.add_argument(
        '--max_dist',
        default=10000.0,  # Huge default
        type=float,
        help='Maximum distance between start and goal')
    parser.add_argument('--scenes',
                        required=True,
                        help='Input scenes csv file')
    parser.add_argument('--level',
                        default=-1,
                        type=int,
                        help='Level of scene to sample')
    parser.add_argument('--num_levels',
                        default=1,
                        type=int,
                        help='Number of levels to sample from')
    parser.add_argument('--split',
                        default='test',
                        help='Scene split to sample')
    parser.add_argument(
        '--output',
        required=True,
        help='Output states file to write sampled episode states')
    args = parse_sim_args(parser)

    # args for simulator consumption
    args.navmap = {
        'refineGrid': True
    }  # Always use navmap to precompute episode states
    # args.sampleValidStartGoal = {'maxStartSamples': 10, 'maxGoalSamples': 10}
    args.goal['minDist'] = args.min_dist
    args.goal['maxDist'] = args.max_dist
    args.goal['minRooms'] = args.min_rooms
    args.goal['maxRooms'] = args.max_rooms

    run(args)
コード例 #4
0
def main():
    parser = argparse.ArgumentParser(description='Simulator console client')
    args = parse_sim_args(parser)
    sim = Simulator(vars(args))
    try:
        print('Starting simulator...')
        if sim.start():
            print('Simulator started.')
            interactive_loop(sim, args.scene_ids, 0)
    except:
        traceback.print_exc()
        print('Error running simulator. Aborting.')

    if sim is not None:
        sim.kill()
        del sim
コード例 #5
0
ファイル: pygame_roomsim.py プロジェクト: wqynew/minos
def main():
    parser = argparse.ArgumentParser(description='MINOS gym wrapper')
    args = parse_sim_args(parser)
    sim = RoomSimulator(args)
    common.attach_exit_handler(sim.sim)
    try:
        print('Starting RoomSimulator...')
        sim.init()
        print('RoomSimulator started.')
        interactive_loop(sim, args)
    except:
        traceback.print_exc()
        print('Error running simulator. Aborting.')

    if sim is not None:
        sim.close_game()
        del sim
コード例 #6
0
def main():
    parser = argparse.ArgumentParser(description='Benchmarking the Simulator')
    parser.add_argument('--steps_per_episode',
                        default=500,
                        type=int,
                        help='Number of steps to take per episode')
    parser.add_argument('--episodes_per_scene',
                        default=1,
                        type=int,
                        help='Number of episodes per scene')
    parser.add_argument('--num_scenes',
                        default=1,
                        type=int,
                        help='Number of scenes (0 for all scenes)')
    parser.add_argument('--sims',
                        default=1,
                        type=int,
                        help='Number of simulators to run')
    parser.add_argument('--async',
                        action='store_true',
                        default=False,
                        help='Test simulators asynchronously')
    args = parse_sim_args(parser)
    benchmark(args)
コード例 #7
0
                    default=-1,
                    help='skip this number of episodes')
parser.add_argument('--num-episodes-per-scene',
                    type=int,
                    default=10,
                    help='Number of diffent random start and end locations')
parser.add_argument(
    '--episode-schedule',
    type=str,
    default='val',
    help=
    'Split to use. Possible are: train, val, test. Paper reports results on test'
)
parser.add_argument('--seed', type=int, default=42, help='Random seed')

args = parse_sim_args(parser)
opts = defaultAgentOptions(args)

#For storing video and logs
#get map and depth anyway for video storing.
#Agent has its own setup
args['observations']['map'] = True
args['observations']['depth'] = True
args['log_action_trace'] = True

RANDOM_SEED = args['seed']

random.seed(RANDOM_SEED)
torch.manual_seed(RANDOM_SEED)
np.random.seed(RANDOM_SEED)
コード例 #8
0
def main():
    global VIDEO_WRITER
    parser = argparse.ArgumentParser(description='Interactive interface to Simulator')
    parser.add_argument('--navmap', action='store_true',
                        default=False,
                        help='Use navigation map')
    group = parser.add_mutually_exclusive_group()
    group.add_argument('--state_set_file',
                       help='State set file')
    group.add_argument('--replay',
                       help='Load and replay action trace from file')
    parser.add_argument('--rightcamera',
                       default='True',
                       help='Right camera setting')
    parser.add_argument('--depthright',
                       default='True',
                       help='Right camera setting')
    parser.add_argument('--leftcamera',
                       default='True',
                       help='Left camera setting')
    parser.add_argument('--depthleft',
                       default='True',
                       help='Left camera setting')
    parser.add_argument('--replay_mode',
                       choices=REPLAY_MODES,
                       default='positions',
                       help='Use actions or positions for replay')
    group.add_argument('--show_goals', action='store_true',
                       default=False,
                       help='show goal observations')
    parser.add_argument('--patch_len', action='store_true',
                       default=30,
                       help='patch_length used to calculate toc in center of the image')
    parser.add_argument('--save_toc', action='store_true',
                       default=True,
                       help='associates images with time of contact')
    parser.add_argument('--save_rootdir',
                       default="/media/fadhil/ThirdPartition/3_3DVision/2_Dataset/minosdata/",
                       help='save rootdir for the generated dataset')

    args = parse_sim_args(parser)
    args.visualize_sensors = True
    sim = Simulator(vars(args))
    common.attach_exit_handler(sim)

    if 'state_set_file' in args and args.state_set_file is not None:
        args.state_set = StateSet(args.state_set_file, 1)
    if 'save_video' in args and len(args.save_video):
        filename = args.save_video if type(args.save_video) is str else 'out.mp4'
        is_rgb = args.color_encoding == 'rgba'
        VIDEO_WRITER = VideoWriter(filename, framerate=24, resolution=(args.width, args.height), rgb=is_rgb)
    if 'replay' in args and args.replay is not None:
        print('Initializing simulator using action traces %s...' % args.replay)
        args.action_traces = ActionTraces(args.replay)
        action_trace = args.action_traces.next_trace()
        sim.init()
        sim.seed(random.randint(0, 12345678))
        start_state = action_trace.start_state()
        print('start_state', start_state)
        sim.configure(start_state)
    else:
        args.action_traces = None
        args.replay = None

    try:
        print('Starting simulator...')
        ep_info = sim.start()
        if ep_info:
            print('observation_space', sim.get_observation_space())
            sim.episode_info = ep_info
            print('Simulator started.')
            interactive_loop(sim, args)
    except:
        traceback.print_exc()
        print('Error running simulator. Aborting.')

    if sim is not None:
        sim.kill()
        del sim

    if VIDEO_WRITER is not None:
        VIDEO_WRITER.close()