Ejemplo n.º 1
0
          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")
Ejemplo n.º 2
0
        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])
Ejemplo n.º 3
0
Archivo: exp1.py Proyecto: zxw610/glas
        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")
Ejemplo n.º 4
0
Archivo: exp3.py Proyecto: zxw610/glas
        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)")
Ejemplo n.º 5
0
            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):