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
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
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
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