def make_world(self): world = World() # set any world properties first world.dim_c = 2 num_good_agents = 1 num_adversaries = 3 num_agents = num_adversaries + num_good_agents num_landmarks = 2 # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.adversary = True if i < num_adversaries else False agent.size = 0.075 if agent.adversary else 0.05 agent.accel = 3.0 if agent.adversary else 4.0 #agent.accel = 20.0 if agent.adversary else 25.0 agent.max_speed = 1.0 if agent.adversary else 1.3 # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = True landmark.movable = False landmark.size = 0.2 landmark.boundary = False # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 3 num_landmarks = 3 # add agents world.agents = [Agent() for i in range(2)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = False agent.size = 0.075 # speaker world.agents[0].movable = False # listener world.agents[1].silent = True # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False landmark.size = 0.04 # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 num_agents = 3 world.num_agents = num_agents num_adversaries = 1 num_landmarks = num_agents - 1 # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = False agent.silent = True agent.adversary = True if i < num_adversaries else False agent.size = 0.15 # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False landmark.size = 0.08 # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 4 #world.damping = 1 num_good_agents = 2 num_adversaries = 4 num_agents = num_adversaries + num_good_agents num_landmarks = 1 num_food = 2 num_forests = 2 # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.leader = True if i == 0 else False agent.silent = True if i > 0 else False agent.adversary = True if i < num_adversaries else False agent.size = 0.075 if agent.adversary else 0.045 agent.accel = 3.0 if agent.adversary else 4.0 #agent.accel = 20.0 if agent.adversary else 25.0 agent.max_speed = 1.0 if agent.adversary else 1.3 # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = True landmark.movable = False landmark.size = 0.2 landmark.boundary = False world.food = [Landmark() for i in range(num_food)] for i, landmark in enumerate(world.food): landmark.name = 'food %d' % i landmark.collide = False landmark.movable = False landmark.size = 0.03 landmark.boundary = False world.forests = [Landmark() for i in range(num_forests)] for i, landmark in enumerate(world.forests): landmark.name = 'forest %d' % i landmark.collide = False landmark.movable = False landmark.size = 0.3 landmark.boundary = False world.landmarks += world.food world.landmarks += world.forests #world.landmarks += self.set_boundaries(world) # world boundaries now penalized with negative reward # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # add agents world.agents = [Agent() for i in range(1)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = False agent.silent = True # add landmarks world.landmarks = [Landmark() for i in range(1)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 10 # add agents world.agents = [Agent() for i in range(2)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = False # agent.u_noise = 1e-1 # agent.c_noise = 1e-1 # add landmarks world.landmarks = [Landmark() for i in range(3)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 num_good_agents = 5 num_adversaries = 15 num_agents = num_adversaries + num_good_agents num_landmarks = 4 self.num_adv = num_adversaries self.adv_vision_count = 2 self.gd_vision_count = 2 self.land_vision_count = 2 # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.adversary = True if i < num_adversaries else False agent.size = 0.075 * 0.65 if agent.adversary else 0.05 * 0.65 agent.accel = 3.0 if agent.adversary else 4.0 #agent.accel = 20.0 if agent.adversary else 25.0 agent.max_speed = 1.0 if agent.adversary else 1.3 # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = True landmark.movable = False landmark.size = 0.2 landmark.boundary = False # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first num_good_agents = 1 num_adversaries = 1 num_agents = num_adversaries + num_good_agents # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): # agent的设置 agent.name = 'agent %d' % i agent.collide = True agent.adversary = True if i < num_adversaries else False agent.size = 0.25 if agent.adversary else 0.2 # 加速度 enviroment.py line 188 agent.accel = 1.4 if agent.adversary else 1 # agent.max_speed = 1.0 if agent.adversary else 1.0 agent.initial_mass = 1.0 if agent.adversary else 1.0 # chh 10.19 质量的差别影响很大,红球总是能追上小球 # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 num_agents = 3 num_landmarks = 3 # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.size = 0.05 # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False # make initial conditions self.reset_world(world) return world
def make_world(self, n_agents=3, by_stander=False): world = World() # set any world properties first world.dim_c = 0 num_agents = n_agents num_walls = 4 # add landmarks world.landmarks = [] # add agents world.agents = [Agent() for i in range(num_agents)] world.goals = ['top', 'bottom', 'left', 'right'] cm = plt.cm.get_cmap('rainbow') world.colors = [ np.array(cm(float(i) / float(len(world.agents)))[:3]) for i in range(len(world.agents)) ] for i, agent in enumerate(world.agents): if by_stander and i == 0: agent.goal = None else: agent.goal = np.random.choice(world.goals) agent.name = 'agent %d' % i agent.silent = True agent.collide = True agent.size = 0.05 agent.accel = 1.5 agent.max_speed = 1.5 agent.adversary = False agent.clip_positions = np.array([[-1.02, -1.02], [1.02, 1.02]]) agent.is_colliding = { other_agent.name: False for other_agent in world.agents if agent is not other_agent } # add walls to force the "leader" through a longer path world.walls = [Wall() for i in range(num_walls)] # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 world.agent_lives = 1 world.adv_lives = 1 num_good_agents = 1 num_adversaries = 2 num_agents = num_adversaries + num_good_agents num_landmarks = 1 # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.adversary = True if i < num_adversaries else False agent.size = 0.050 if agent.adversary else 0.05 agent.accel = 1.0 if agent.adversary else 1.0 #agent.accel = 20.0 if agent.adversary else 25.0 agent.max_speed = 1.0 if agent.adversary else 1.3 # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = True landmark.movable = False landmark.size = 0.15 landmark.boundary = False # make initial conditions print("Setting agent's lives...") for i in range(len(world.agents)): if world.agents[i].adversary: world.agents[i].lives = world.agent_lives elif not world.agents[i].adversary: world.agents[i].lives = world.adv_lives self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 world.num_agents = 4 world.num_goals = 4 # world.num_obstacles = 2 world.num_obstacles = 2 world.collaborative = True # self.landmarkspeed = np.random.normal(size=2) # add agents world.agents = [Agent() for i in range(world.num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = False agent.silent = True agent.size = 0.1 # add goals world.landmarks = [ Landmark() for i in range(world.num_goals + world.num_obstacles) ] p_vel = np.zeros(2) p_angle = np.random.uniform(size=1) for i, landmark in enumerate(world.landmarks): if i < world.num_goals: landmark.name = 'goal %d' % i landmark.collide = False landmark.movable = False landmark.state.p_vel = p_vel landmark.state.p_angle = p_angle else: landmark.size = 0.08 landmark.name = 'obstacle %d' % (i - world.num_goals) landmark.collide = True landmark.movable = False landmark.state.p_vel = np.zeros(2) self.reset_world(world) return world
def make_world(self, args): self.obsid = (('obsid' in args.keys()) and args['obsid']) self.absobs = (('absobs' in args.keys()) and args['absobs']) if ('boundary' in args.keys()) and args['boundary']: world = World(boundary=args['boundary']) else: world = World() # set any world properties first world.dim_c = 2 if ('num_agents' in args.keys()) and args['num_agents']: num_agents = args['num_agents'] else: num_agents = 3 self.num_agents = num_agents num_landmarks = 1 self.num_landmarks = num_landmarks world.collaborative = True # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.size = 0.15 agent.id = i # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False # make initial conditions self.reset_world(world) self.self_obs_indices = np.arange(2*world.dim_p+num_landmarks*world.dim_p) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 num_good_agents = 2 #1 num_adversaries = 4 #3 num_agents = num_adversaries + num_good_agents num_landmarks = 2 observing_range = 0.7 world.num_adversaries = num_adversaries world.observing_range = observing_range world.neighbors_pred = 1 world.neighbors_prey = 1 world.min_corridor = 0.06 # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.id = i agent.collide = True agent.silent = True agent.adversary = True if i < num_adversaries else False agent.size = 0.075 if agent.adversary else 0.05 agent.accel = 3.0 if agent.adversary else 4.0 #agent.accel = 20.0 if agent.adversary else 25.0 agent.max_speed = 1.0 if agent.adversary else 1.3 # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.id = i landmark.collide = True landmark.movable = False landmark.size = 0.2 landmark.boundary = False # make initial conditions self.reset_world(world) return world
def make_world(self, **kwargs): """Generate a world instance :param kwargs: dict, keys: {'num_agents'} :return: World, the world instance """ world = World() num_agents = kwargs['num_agents'] num_landmarks = 2 world.agents = [Agent() for _ in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent_%d' % i agent.collide = True agent.silent = True agent.color = np.array([0.75, 0.75, 0.75]) # here the landmark is the ball needs to be pushed world.landmarks = [Landmark() for _ in range(num_landmarks)] ball, target = world.landmarks ball.name = 'BALL' ball.collide = True ball.movable = True ball.color = np.array([229 / 255, 132 / 255, 129 / 255]) ball.size *= 8.0 ball.initial_mass *= 144 self._agent_size = ball.size * self._agent_shaping target.name = 'TARGET' target.collide = False target.movable = False target.color = np.array([0.1, 0.1, 0.1]) self.reset_world(world) return world
def make_world(self, **kwargs): self.before_make_world(**kwargs) world = World() world.np_random = self.np_random # set any world properties first world.dim_c = 2 num_good_agents = 1 num_adversaries = 3 num_agents = num_adversaries + num_good_agents num_landmarks = 2 # add agents world.agents = [Agent() for _ in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.adversary = True if i < num_adversaries else False agent.size = 0.075 if agent.adversary else 0.05 agent.accel = 3.0 if agent.adversary else 4.0 #agent.accel = 20.0 if agent.adversary else 25.0 agent.max_speed = 1.0 if agent.adversary else 1.3 self.change_entity_attribute(agent, **kwargs) # add landmarks world.landmarks = [Landmark() for _ in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = True landmark.movable = False landmark.size = 0.2 landmark.boundary = False self.change_entity_attribute(landmark, **kwargs) # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() world.num_agents = 10 world.dim_c = 1 world.adj = torch.randint(low=0, high=2, size=(world.num_agents, world.num_agents)) mask = torch.eye(world.num_agents, world.num_agents).bool() world.adj.masked_fill_(mask, 1) world.nact = 3 world.agents = [GraphCommAgent() for _ in range(world.num_agents)] for i, agent in enumerate(world.agents): agent.id = i agent.name = 'agent %d' % i agent.collide = False agent.speaker = True agent.movable = False self.reset_world(world) return world
def make_world(self, num_agents=3): world = World() # set any world properties first num_adversaries = 1 num_landmarks = 2 world.dim_c = 4 # add agents world.agents = [CryptoAgent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = False agent.adversary = True if i < num_adversaries else False agent.speaker = True if i == 2 else False agent.movable = False # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False # make initial conditions self.reset_world(world) return world
def make_world(self, args): self.args = args world = World() # set any world properties first self.num_agents = self.args.n_student self.num_tasks = self.args.n_task self.maxTask = self.args.maxTask # add agents world.agents = [ Agent(i, self.num_tasks, self.maxTask, self.num_agents) for i in range(self.num_agents) ] world.int_matrix = self.generate_graph(world) for i, agent in enumerate(world.agents): _, agent.state[0], agent.nghd = self.secondhop(world.int_matrix, i) agent.c = np.random.uniform(0, 100, self.num_tasks) world.initializeCommDictionaries() world.updateCommNeighbors() return world
def make_world(self): world = World() # add agents world.agents = [Agent() for i in range(1)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = False agent.silent = True agent.size = 0.15 # add landmarks world.landmarks = [Landmark() for i in range(1)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False landmark.size = 0.05 # make initial conditions self.reset_world(world) for agent in world.agents: agent.state.p_pos = np.random.uniform(-1,+1, world.dim_p) agent.state.p_vel = np.zeros(world.dim_p) agent.state.c = np.zeros(world.dim_c) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 ## TODO: was 2 num_agents = 3 num_landmarks = 3 #world.collaborative = True # TODO: in earlier experiments this was set, Iqbal doesn't have this # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True # TODO: was true agent.silent = True agent.size = 0.15 # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False # make initial conditions self.reset_world(world) return world
def make_world(self, num_agents = 2, num_adversaries = 1, num_landmarks = 2, **kwargs): world = World() # set any world properties first world.dim_c = 2 # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True if i < num_adversaries: agent.adversary = True else: agent.adversary = False # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first num_humans = 2 num_zombies = 5 num_agents = num_humans + num_zombies # add agents agents = [] # add humans' team for i in range(num_humans): agent = Agent() agent.collide = True agent.team = 0 agent.name = 'human %d' % i agent.size = 0.05 agent.accel = 4.0 agent.max_speed = 1.3 agent.health_decay = 0.99 agents.append(agent) # add zombies' team for i in range(num_zombies): agent = Agent() agent.collide = True agent.team = 1 agent.name = 'zombie %d' % i agent.size = 0.05 agent.accel = 3.0 agent.max_speed = 1.0 agents.append(agent) world.agents = agents # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 num_agents = 3 num_landmarks = 0 num_obstacles = 2 world.collaborative = True # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.size = 0.08 # add edges world.edges = [] for i in range(len(world.agents)): world.edges.append(1) # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False # add obstacles world.obstacles = [Landmark() for i in range(num_obstacles)] for i, landmark in enumerate(world.obstacles): landmark.name = 'obstacles %d' % i landmark.collide = True landmark.movable = False landmark.size = 0.15 landmark.boundary = False world.landmarks += world.obstacles # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 # num_agents = 3 num_agents = 5 world.num_agents = num_agents self.num_adversaries = 1 self.scenario_dead_agents = 0 self.kill_reward = 5 # num_landmarks = num_agents - 1 num_landmarks = 10 # add agents world.agents = [Agent() for i in range(num_agents)] self.one_time_reward = True # setting agent alive status for i in range(num_agents): world.agents[i].alive = True for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = False agent.silent = True agent.adversary = True if i < self.num_adversaries else False agent.size = 0.15 # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False landmark.size = 0.08 # make initial conditions self.reset_world(world) return world
def make_world(self, random_starts=False, done_on_detection=False): world = World(is_dynamic=False, position_scale=50000.0) world.discrete_action_space = True world.dt = 1.0 self.random_starts = random_starts self.done_on_detection = done_on_detection # add agents world.agents = [Agent() for i in range(2)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = False agent.silent = True agent.fusioned_sa = IngressObservation(agent, world) agent.max_speed = 350.0 # 700.0 agent.min_speed = 0.8 * agent.max_speed agent.accel = [1.0 * 9.81, 8.0] agent.sensor = Sensor([1 * np.pi / 3], [20000.0], [2.5e-5]) agent.fire_action = FireAction(2) if i == 0: route = [Landmark() for i in range(2)] route[0].state.p_pos = np.array([-10000.0, 0]) route[0].state.p_vel = np.zeros(world.dim_p) route[1].state.p_pos = np.array([10000.0, 0]) route[1].state.p_vel = np.zeros(world.dim_p) agent.platform_action = RouteAction(route=route) else: agent.platform_action = HeadingAction() # add landmark for target world.landmarks = [Landmark()] world.landmarks[0].name = 'target_landmark' world.landmarks[0].collide = False world.landmarks[0].movable = False world.landmarks[0].state.p_pos = np.array([0.0, 0.0]) world.landmarks[0].state.p_vel = np.zeros(world.dim_p) # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.contact_force = 100 world.dim_c = 2 num_agents = 42 world.num_agents = num_agents num_adversaries = num_agents - 1 # add goal locations world.goals = [[-0.7, -0.4], [-0.7, -0.3], [-0.7, -0.2], [-0.7, -0.1], [-0.7, 0], [-0.7, 0.1], [-0.7, 0.2], [-0.7, 0.3], [-0.6, -0.05], [-0.6, 0.3], [-0.5, -0.05], [-0.5, 0.3], [-0.4, -0.05], [-0.4, 0.3], [0, -0.4], [0, -0.3], [0, -0.2], [0, -0.1], [-0.05, 0], [0.05, 0], [-0.1, 0.1], [0.1, 0.1], [-0.15, 0.2], [0.15, 0.2], [-0.2, 0.3], [0.2, 0.3], [0.4, -0.4], [0.4, -0.3], [0.4, -0.2], [0.4, -0.1], [0.4, 0], [0.4, 0.1], [0.4, 0.2], [0.4, 0.3], [0.5, 0.3], [0.6, 0.28], [0.68, 0.2], [0.7, 0.1], [0.68, 0], [0.6, -0.08], [0.5, -0.1], [0, 0]] # add landmarks world.landmarks = [] # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.adversary = True if i < num_adversaries else False agent.size = 0.02 if i < num_adversaries else 0.15 agent.density = 80.0 if i < num_adversaries else 15.0 agent.max_speed = None if i < num_adversaries else None agent.accel = 1 if i < num_adversaries else None agent.goal = np.array(world.goals[i]) # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 # num_agents = 3 num_agents = 5 world.num_agents = num_agents self.num_adversaries = 1 self.kill_reward = 10 self.num_goals = 2 # Need this to access in environment.py world.num_goals = self.num_goals self.goal_reward = 5 # num_landmarks = num_agents - 1 num_landmarks = 10 # add agents world.agents = [Agent() for i in range(num_agents)] self.one_time_reward = True for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = False agent.silent = True agent.adversary = True if i < self.num_adversaries else False agent.size = 0.15 # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False landmark.size = 0.08 # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 num_agents = 2 num_adversaries = 1 num_landmarks = 5 # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True if i < num_adversaries: agent.adversary = True agent.color = np.array([0.75, 0.25, 0.25]) else: agent.adversary = False agent.color = np.array([0.25, 0.25, 0.75]) # add landmarks for goal posts and puck goal_posts = [[-0.25, -1.0], [-0.25, 1.0], [0.25, -1.0], [0.25, 1.0]] world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i if i > 0: landmark.collide = True landmark.movable = False landmark.state.p_pos = np.array(goal_posts[i - 1]) landmark.state.p_vel = np.zeros(world.dim_p) else: landmark.collide = True landmark.movable = True # add landmarks for rink boundary #world.landmarks += self.set_boundaries(world) # make initial conditions self.reset_world(world) return world
def make_world(self, **kwargs): self.before_make_world(**kwargs) world = World() world.np_random = self.np_random # cache kwargs in case needed in Env wrapper world.config = kwargs # set any world properties first world.collaborative = True # all entity positions are scaled/extended by size world.size = kwargs.get("world_size", 1) world.dim_c = kwargs.get("dim_c", 2) num_agents = kwargs.get("num_agents", 3) num_landmarks = kwargs.get("num_landmarks", 3) # add agents world.agents = [SkilledAgent() for _ in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = kwargs.get("agent_silence", True) agent.size = 0.025 # self.change_entity_attribute(agent, world, **kwargs) # add landmarks world.landmarks = [Landmark() for _ in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False landmark.size = 0.075 # self.change_entity_attribute(landmark, world, **kwargs) # make initial conditions self.reset_world(world, **kwargs) return world
def make_world(self, conf): world = World() # set any world properties first world.dim_c = 2 num_agents = conf.num_agents world.num_agents = num_agents num_adversaries = num_agents / 3 num_landmarks = num_agents - 1 # add agents world.agents = mbti.getAgentListFromUserConfig(conf) for i, agent in enumerate(world.agents): agent.name = 'agent_%d' % i + '_' + agent.personality.type agent.collide = False agent.silent = True agent.size = 0.15 if i < num_adversaries: agent.name = 'adversary_%d' % i + '_' + agent.personality.type agent.adversary = True print("Created ", agent.name) else: agent.name = 'agent_%d' % ( i - num_adversaries) + '_' + agent.personality.type agent.adversary = False print("Created ", agent.name) # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False landmark.size = 0.08 # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # add agents world.agents = [Agent() for i in range(1)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = False agent.silent = True # add landmarks world.landmarks = [Landmark() for i in range(1)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False # add goals (used only for vis) world.goals = [Goal() for i in range(1)] for i, goal in enumerate(world.goals): goal.name = 'goal %d' % i goal.collide = False goal.movable = False # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 num_agents = 2 num_landmarks = num_agents num_goals = num_agents world.collaborative = True # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = False agent.silent = True agent.size = 0.20 # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False # add goals (used only for vis) world.goals = [Goal() for i in range(num_goals)] for i, goal in enumerate(world.goals): goal.name = 'goal %d' % i goal.collide = False goal.movable = False # make initial conditions self.reset_world(world) return world
def make_world(self): world = World() # set any world properties first world.dim_c = 2 world.num_agents = num_agents = 1 world.num_goals = num_goals = 1 # world.num_obstacles = num_obstacles = 3 world.num_humans = num_humans = 5 world.collaborative = True # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.size = 0.05 # add goals: world.goals = [Goal() for i in range(num_goals)] for i, goal in enumerate(world.goals): goal.name = 'goal %d' % i goal.collide = True goal.movable = False goal.size = 0.05 # add humans: world.humans = [Human() for i in range(num_humans)] for i, human in enumerate(world.humans): human.name = 'human %d' % i human.collide = True human.movable = False human.size = 0.02 self.reset_world(world) return world
def make_world(self): world = World() # By Yuan Zhang world.collaborative = True # set any world properties first world.dim_c = 2 num_good_agents = 1 num_adversaries = 3 num_agents = num_adversaries + num_good_agents num_landmarks = 2 # add agents world.agents = [Agent() for i in range(num_agents)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = True agent.silent = True agent.adversary = True if i < num_adversaries else False agent.size = 0.075 if agent.adversary else 0.05 agent.accel = 3.0 if agent.adversary else 4.0 # 3.0 4.0 #agent.accel = 20.0 if agent.adversary else 25.0 agent.max_speed = 1.0 if agent.adversary else 1.3 # 1.0 1.3 # By Yuan Zhang: agent.action_callback = random_action if not agent.adversary else None # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = True landmark.movable = False landmark.size = 0.2 # 0.2 landmark.boundary = False # make initial conditions self.reset_world(world) self.done = False return world
def make_world(self): world = World() # set any world properties first world.dim_c = 5 num_landmarks = 6 num_obstacles = 6 world.collaborative = True # add agents world.agents = [Agent() for i in range(2)] for i, agent in enumerate(world.agents): agent.name = 'agent %d' % i agent.collide = False agent.size = 0.075 # speaker world.agents[0].movable = False # listener world.agents[1].silent = True world.agents[1].collide = True # add landmarks world.landmarks = [Landmark() for i in range(num_landmarks)] for i, landmark in enumerate(world.landmarks): landmark.name = 'landmark %d' % i landmark.collide = False landmark.movable = False landmark.size = 0.04 # add obstacles world.obstacles = [Landmark() for i in range(num_obstacles)] for i, landmark in enumerate(world.obstacles): landmark.name = 'obstacle %d' % i landmark.collide = True landmark.movable = False landmark.size = 0.04 landmark.color = np.array([0.15, 0.15, 0.15]) # make initial conditions self.reset_world(world) return world