Пример #1
0
def _build_rodent_two_touch_env():
    """Build environment where a rodent touches targets."""
    walker = walkers.Rat(
        observable_options={'egocentric_camera': dict(enabled=True)}, )

    arena_floor = arenas.floors.Floor(size=(10., 10.),
                                      aesthetic='outdoor_natural')
    task_reach = tasks.reach.TwoTouch(
        walker=walker,
        arena=arena_floor,
        target_builders=[
            functools.partial(props.target_sphere.TargetSphereTwoTouch,
                              radius=0.025),
        ],
        randomize_spawn_rotation=True,
        target_type_rewards=[25.],
        shuffle_target_builders=False,
        target_area=(1.5, 1.5),
        physics_timestep=0.001,
        control_timestep=.02)

    raw_env = composer.Environment(time_limit=30,
                                   task=task_reach,
                                   strip_singleton_obs_buffer_dim=True)

    return raw_env
Пример #2
0
def _build_rodent_corridor_gaps():
    """Build environment where a rodent runs over gaps."""
    walker = walkers.Rat(
        observable_options={'egocentric_camera': dict(enabled=True)}, )

    platform_length = distributions.Uniform(low=0.4, high=0.8)
    gap_length = distributions.Uniform(low=0.05, high=0.2)
    arena = arenas.corridors.GapsCorridor(corridor_width=2,
                                          platform_length=platform_length,
                                          gap_length=gap_length,
                                          corridor_length=40,
                                          aesthetic='outdoor_natural')

    rodent_task = tasks.corridors.RunThroughCorridor(walker=walker,
                                                     arena=arena,
                                                     walker_spawn_position=(5,
                                                                            0,
                                                                            0),
                                                     walker_spawn_rotation=0,
                                                     target_velocity=1.0,
                                                     contact_termination=False,
                                                     terminate_at_height=-0.3,
                                                     physics_timestep=0.001,
                                                     control_timestep=.02)
    raw_env = composer.Environment(time_limit=30,
                                   task=rodent_task,
                                   strip_singleton_obs_buffer_dim=True)

    return raw_env
Пример #3
0
def _build_rodent_escape_env():
    """Build environment where a rodent escapes from a bowl."""
    walker = walkers.Rat(
        observable_options={'egocentric_camera': dict(enabled=True)}, )
    arena = arenas.bowl.Bowl(size=(20., 20.), aesthetic='outdoor_natural')
    locomotion_task = tasks.escape.Escape(walker=walker,
                                          arena=arena,
                                          physics_timestep=0.001,
                                          control_timestep=.02)
    raw_env = composer.Environment(time_limit=20,
                                   task=locomotion_task,
                                   strip_singleton_obs_buffer_dim=True)

    return raw_env
Пример #4
0
def _build_rodent_maze_env():
    """Build environment where a rodent runs to targets."""
    walker = walkers.Rat(
        observable_options={'egocentric_camera': dict(enabled=True)}, )

    wall_textures = arenas.labmaze_textures.WallTextures(style='style_01')

    arena = arenas.mazes.RandomMazeWithTargets(x_cells=11,
                                               y_cells=11,
                                               xy_scale=.5,
                                               z_height=.3,
                                               max_rooms=4,
                                               room_min_size=4,
                                               room_max_size=5,
                                               spawns_per_room=1,
                                               targets_per_room=3,
                                               wall_textures=wall_textures,
                                               aesthetic='outdoor_natural')

    rodent_task = tasks.random_goal_maze.ManyGoalsMaze(
        walker=walker,
        maze_arena=arena,
        target_builder=functools.partial(props.target_sphere.TargetSphere,
                                         radius=0.05,
                                         height_above_ground=.125,
                                         rgb1=(0, 0, 0.4),
                                         rgb2=(0, 0, 0.7)),
        target_reward_scale=50.,
        contact_termination=False,
        control_timestep=.02,
        physics_timestep=0.001)
    raw_env = composer.Environment(time_limit=30,
                                   task=rodent_task,
                                   strip_singleton_obs_buffer_dim=True)

    return raw_env