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)
Beispiel #2
0
    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')