def setUp(self): print('In method "{}"...'.format(self._testMethodName)) self.params = {'r': .1, 'd': .02, 'w': 0.5, 'tau': 12, 'q': .0001} self.plume_structure = plume_structures.Gaussian2D(**self.params) self.src_density = 0.01 self.agent_search_radius = 10 self.env_random = environments.Environment2d(self.plume_structure, self.src_density, self.agent_search_radius) src_positions_fixed = np.array([[-3.1, 0], [5.1, 3.2], [-8.9, -2.7]]) self.env_fixed = environments.Environment2d(self.plume_structure, self.src_density, self.agent_search_radius, src_positions_fixed) src_positions_single = np.array([[5.1, 3.2]]) self.env_single_src = environments.Environment2d( self.plume_structure, self.src_density, self.agent_search_radius, src_positions_single)
def setUp(self): print('In method "{}"...'.format(self._testMethodName)) self.params = {'r': .1, 'd': .02, 'w': 0.5, 'tau': 12, 'q': .0001} self.plume_structure = plume_structures.Gaussian2D(**self.params) self.src_density = 0.1 self.agent_search_radius = 10 self.env = environments.Environment2d(self.plume_structure, self.src_density, self.agent_search_radius, src_positions='random') src_positions_single = np.array([[-1., 1]]) self.env_single_src = environments.Environment2d(self.plume_structure, self.src_density, self.agent_search_radius, src_positions=src_positions_single)
def main(): plume_structure = plume_structures.Gaussian2D(**PARAMS) agent_search_radius = SPEED * SEARCH_TIME_MAX env = environments.Environment2d(plume_structure, SRC_DENSITY, agent_search_radius, SRC_POSITIONS) _, ax = plt.subplots(1, 1, facecolor='white') draw_background = True for theta in THETAS[1:3]: agent = search_agent.LinearSearcher(theta=theta, speed=SPEED) trial = simulation.Trial2d(env, agent, SEARCH_TIME_MAX, DT) trial.run(with_plot=True, ax=ax, draw_every=20, draw_background=draw_background) draw_background = False plt.show(block=True)
search_agent.LinearSearcher(theta=theta, speed=SPEED) for theta in THETAS ] envs = [] sim = simulation.Simulation(plume_structure, agents=agents, n_environments=N_ENVIRONMENTS) plume_detected = np.zeros((N_ENVIRONMENTS, len(THETAS))) search_times = np.nan * np.ones((N_ENVIRONMENTS, len(THETAS)), dtype=float) for e_ctr in range(N_ENVIRONMENTS): print(e_ctr) # make new environment env = environments.Environment2d(plume_structure, SRC_DENSITY, AGENT_SEARCH_RADIUS, SRC_POSITIONS) envs += [env] for a_ctr, agent in enumerate(agents): # set agent's starting position back to zero agent.reset() trial = simulation.Trial2d(env, agent, SEARCH_TIME_MAX, DT) trial.run() if trial.plume_detected: plume_detected[e_ctr, a_ctr] = 1 plume_detected_n = plume_detected.sum(0) plume_detected_prob = plume_detected.sum(0) / N_ENVIRONMENTS fig, ax = plt.subplots(1, 1, facecolor='white')