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
Esempio n. 5
0
 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
Esempio n. 7
0
    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
Esempio n. 8
0
    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
Esempio n. 9
0
 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
Esempio n. 12
0
 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
Esempio n. 13
0
    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
Esempio n. 14
0
 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
Esempio n. 16
0
    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
Esempio n. 18
0
 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
Esempio n. 19
0
    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
Esempio n. 20
0
 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
Esempio n. 22
0
 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
Esempio n. 23
0
    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
Esempio n. 26
0
 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
Esempio n. 27
0
 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
Esempio n. 29
0
 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
Esempio n. 30
0
    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
Esempio n. 31
0
    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
Esempio n. 34
0
    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
Esempio n. 35
0
    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
Esempio n. 36
0
 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