|
14 | 14 |
|
15 | 15 | from lsy_drone_racing.utils import load_config
|
16 | 16 |
|
17 |
| -config = load_config(Path('{Path(__file__).parents[1] / "config/level0.toml"}')) |
18 |
| -
|
| 17 | +config = load_config(Path('{Path(__file__).parents[1] / "config/level3.toml"}')) |
19 | 18 | """
|
| 19 | + |
20 | 20 | env_setup_code = """
|
21 | 21 | import gymnasium
|
22 | 22 |
|
23 | 23 | import lsy_drone_racing
|
24 | 24 |
|
25 |
| -env = gymnasium.make('DroneRacing-v0', config=config) |
| 25 | +env = gymnasium.make( |
| 26 | + config.env.id, |
| 27 | + freq=config.env.freq, |
| 28 | + sim_config=config.sim, |
| 29 | + sensor_range=config.env.sensor_range, |
| 30 | + track=config.env.track, |
| 31 | + disturbances=config.env.get("disturbances"), |
| 32 | + randomizations=config.env.get("randomizations"), |
| 33 | + random_resets=config.env.random_resets, |
| 34 | + seed=config.env.seed, |
| 35 | +) |
26 | 36 | env.reset()
|
27 | 37 | env.step(env.action_space.sample()) # JIT compile
|
28 | 38 | env.reset()
|
29 | 39 | """
|
| 40 | + |
30 | 41 | attitude_env_setup_code = """
|
31 | 42 | import gymnasium
|
32 | 43 |
|
33 | 44 | import lsy_drone_racing
|
34 | 45 |
|
35 |
| -env = gymnasium.make('DroneRacingAttitude-v0', config=config) |
| 46 | +env = gymnasium.make('DroneRacingAttitude-v0', |
| 47 | + config.env.id, |
| 48 | + freq=config.env.freq, |
| 49 | + sim_config=config.sim, |
| 50 | + sensor_range=config.env.sensor_range, |
| 51 | + track=config.env.track, |
| 52 | + disturbances=config.env.get("disturbances"), |
| 53 | + randomizations=config.env.get("randomizations"), |
| 54 | + random_resets=config.env.random_resets, |
| 55 | + seed=config.env.seed, |
| 56 | +) |
| 57 | +env.reset() |
| 58 | +env.step(env.action_space.sample()) # JIT compile |
| 59 | +env.reset() |
| 60 | +""" |
| 61 | + |
| 62 | +load_multi_drone_config_code = f""" |
| 63 | +from pathlib import Path |
| 64 | +
|
| 65 | +from lsy_drone_racing.utils import load_config |
| 66 | +
|
| 67 | +config = load_config(Path('{Path(__file__).parents[1] / "config/multi_level0.toml"}')) |
| 68 | +""" |
| 69 | + |
| 70 | +multi_drone_env_setup_code = """ |
| 71 | +import gymnasium |
| 72 | +
|
| 73 | +import lsy_drone_racing |
| 74 | +
|
| 75 | +env = gymnasium.make('MultiDroneRacing-v0', |
| 76 | + n_drones=config.env.n_drones, |
| 77 | + freq=config.env.freq, |
| 78 | + sim_config=config.sim, |
| 79 | + sensor_range=config.env.sensor_range, |
| 80 | + track=config.env.track, |
| 81 | + disturbances=config.env.get("disturbances"), |
| 82 | + randomizations=config.env.get("randomizations"), |
| 83 | + random_resets=config.env.random_resets, |
| 84 | + seed=config.env.seed, |
| 85 | +) |
36 | 86 | env.reset()
|
37 | 87 | env.step(env.action_space.sample()) # JIT compile
|
38 | 88 | env.reset()
|
@@ -62,3 +112,25 @@ def time_sim_attitude_step(n_tests: int = 10, sim_steps: int = 100) -> NDArray[n
|
62 | 112 | for _ in range({sim_steps}):
|
63 | 113 | env.step(env.action_space.sample())"""
|
64 | 114 | return np.array(timeit.repeat(stmt=stmt, setup=setup, number=1, repeat=n_tests))
|
| 115 | + |
| 116 | + |
| 117 | +def time_multi_drone_reset(n_tests: int = 10) -> NDArray[np.floating]: |
| 118 | + setup = load_multi_drone_config_code + multi_drone_env_setup_code + "\nenv.reset()" |
| 119 | + stmt = """env.reset()""" |
| 120 | + return np.array(timeit.repeat(stmt=stmt, setup=setup, number=1, repeat=n_tests)) |
| 121 | + |
| 122 | + |
| 123 | +def time_multi_drone_step( |
| 124 | + n_tests: int = 10, sim_steps: int = 100, physics_mode: str = "analytical" |
| 125 | +) -> NDArray[np.floating]: |
| 126 | + modify_config_code = f"""config.sim.physics = '{physics_mode}'\n""" |
| 127 | + setup = ( |
| 128 | + load_multi_drone_config_code |
| 129 | + + modify_config_code |
| 130 | + + multi_drone_env_setup_code |
| 131 | + + "\nenv.reset()" |
| 132 | + ) |
| 133 | + stmt = f""" |
| 134 | +for _ in range({sim_steps}): |
| 135 | + env.step(env.action_space.sample())""" |
| 136 | + return np.array(timeit.repeat(stmt=stmt, setup=setup, number=1, repeat=n_tests)) |
0 commit comments