files = glob.glob("singleintegrator/orcaR{}*/*obst{}_agents{}_*.npy".format(r,obst,agent), recursive=True) for file in files: instance = os.path.splitext(os.path.basename(file))[0] map_filename = "singleintegrator/instances/{}.yaml".format(instance) result = stats.stats(map_filename, file) result["solver"] = "ORCA" result["Rsense"] = r if instance in result_by_instance: result_by_instance[instance].append(result) else: result_by_instance[instance] = [result] # add_bar_agg(pp, result_by_instance, "num_agents_success", "# robots success") add_line_plot_agg(None, result_by_instance, "percent_agents_success", group_by="Rsense", ax=axs[0, column]) # add_line_plot_agg(pp, result_by_instance, "control_effort_sum", "control effort") add_scatter(pp, result_by_instance, "num_collisions", "# collisions") pp.close() # create plots pp = PdfPages("exp2.pdf") for column in range(0, 2): axs[0,column].set_xlabel("$r_{sense}$ [m]") axs[0,0].set_ylabel("robot success [%]") axs[0,0].set_ylim([25,105]) axs[0,0].set_title("10 % obstacles")
for agent in agents_lst: files.extend( glob.glob("doubleintegrator/{}*/*obst{}_agents{}_*.npy".format(solver,obst,agent), recursive=True)) for file in files: instance = os.path.splitext(os.path.basename(file))[0] map_filename = "singleintegrator/instances/{}.yaml".format(instance) result = stats.stats(map_filename, file) result["solver"] = solvers[os.path.basename(result["solver"])] if instance in result_by_instance: result_by_instance[instance].append(result) else: result_by_instance[instance] = [result] # create plots add_line_plot_agg(None, result_by_instance, "percent_agents_success", ax=axs[0, column]) # add_line_plot_agg(None, result_by_instance, "control_effort_mean", # ax=axs[1, column], aggregrate_successful_agent=False) add_line_plot_agg(None, result_by_instance, "control_effort", ax=axs[1, column], aggregrate_successful_agent=True) add_scatter(pp, result_by_instance, "num_collisions", "# collisions") pp.close() pp = PdfPages("exp1_di.pdf") for column in range(0, 2): axs[1,column].set_xlabel("robot density [#robots/64m\u00B2]") axs[0,0].set_ylabel("robot success [%]") axs[0,0].set_ylim([25,105])
for agent in agents_lst: files.extend( glob.glob("doubleintegrator/{}*/*obst{}_agents{}_*.npy".format(solver,obst,agent), recursive=True)) for file in files: instance = os.path.splitext(os.path.basename(file))[0] map_filename = "doubleintegrator/instances/{}.yaml".format(instance) result = stats.stats(map_filename, file) result["solver"] = solvers[os.path.basename(result["solver"])] if instance in result_by_instance: result_by_instance[instance].append(result) else: result_by_instance[instance] = [result] # create plots add_line_plot_agg(None, result_by_instance, "percent_agents_success", ax=axs[0, column]) add_line_plot_agg(None, result_by_instance, "control_effort_mean", ax=axs[1, column]) add_scatter(pp, result_by_instance, "num_collisions", "# collisions") pp.close() pp = PdfPages("exp1.pdf") for column in range(0, 2): axs[1,column].set_xlabel("number of robots") axs[0,0].set_ylabel("robot success [%]") axs[0,0].set_ylim([35,105]) axs[1,0].set_ylabel("control effort")
instance = os.path.splitext(os.path.basename(file))[0] map_filename = "singleintegrator/instances/{}.yaml".format(instance) result = stats.stats(map_filename, file) result["solver"] = solvers[os.path.basename(result["solver"])] result["filename"] = file if instance in result_by_instance: result_by_instance[instance].append(result) else: result_by_instance[instance] = [result] # create plots pp = PdfPages("exp3_{}.pdf".format(obst)) add_line_plot_agg(pp, result_by_instance, "percent_agents_success", x_label="number of robots", y_label="robot success [%]") add_line_plot_agg(pp, result_by_instance, "control_effort_mean", x_label="number of robots", y_label="average control effort of successful robots") add_scatter(pp, result_by_instance, "num_collisions", "# collisions") # # TEMP TEMP # import yaml # from matplotlib.patches import Rectangle, Circle # for instance in sorted(result_by_instance): # print(instance) # results = result_by_instance[instance] # # add_bar_chart(pp, results, "percent_agents_reached_goal", instance + " (% reached goal)") # # add_bar_chart(pp, results, "num_collisions", instance + " (# collisions)")
result = stats.stats(map_filename, file) result["solver"] = "ORCA" result["Rsense"] = r if instance in result_by_instance: result_by_instance[instance].append(result) else: result_by_instance[instance] = [result] # create plots pp = PdfPages("exp2_{}.pdf".format(obst)) # add_bar_agg(pp, result_by_instance, "num_agents_success", "# robots success") add_line_plot_agg(pp, result_by_instance, "percent_agents_success", group_by="Rsense", x_label="sensing radius [m]", y_label="robot success [%]") # add_line_plot_agg(pp, result_by_instance, "control_effort_sum", "control effort") # add_scatter(pp, result_by_instance, "num_collisions", "# collisions") pp.close() exit() datadir = [] for agents in agents_lst: for obst in obst_lst: datadir.extend(glob.glob("singleintegrator/instances/*obst{}_agents{}_*".format(obst,agents))) instances = sorted(datadir) for i in range(0,10):