예제 #1
0
 def plot_avg_planning_time_vs_trust_region(self, results):
     # results = list(self.db.find({"type": "kuka_only_random_trust_region"}))
     # result = list(self.db.find({"type": "donbot_arm_only_random_trust_region"}))
     # print len(result)
     trust_region = DefaultOrderedDict(list)
     plan_t = DefaultOrderedDict(list)
     sol_t = DefaultOrderedDict(list)
     col_t = DefaultOrderedDict(list)
     prb_t = DefaultOrderedDict(list)
     for res in results:
         trust = res["solver_config"]["trust_region_size"]
         trust_region[trust].append(trust)
         plan_t[trust].append(res["planning_time"])
         sol_t[trust].append(res["solving_time"])
         col_t[trust].append(res["collision_check_time"])
         prb_t[trust].append(res["prob_model_time"])
     avg_planning_time = []
     avg_solving_time = []
     avg_collision_check_time = []
     avg_prob_model_time = []
     trust_region = OrderedDict(sorted(trust_region.items()))
     for k in trust_region:
         avg_planning_time.append(sum(plan_t[k]) / len(plan_t[k]))
         avg_solving_time.append(sum(sol_t[k]) / len(sol_t[k]))
         avg_collision_check_time.append(sum(col_t[k]) / len(col_t[k]))
         avg_prob_model_time.append(sum(prb_t[k]) / len(prb_t[k]))
     ys = [avg_planning_time, avg_solving_time, avg_collision_check_time, avg_prob_model_time]
     xs = [trust_region.keys()] * len(ys)
     labels = ["Planning time", "Solving time", "Collision check time", "Problem modelling time"]
     plotter.multi_plot_best_fit_curve(xs, ys, labels, "Average time taken vs Trust region size", "Trust region size", "Average Time (s)",
                                       deg=2)
예제 #2
0
 def iterations_vs_trust_region(self, results):
     trust_region = DefaultOrderedDict(list)
     qp_iters = DefaultOrderedDict(list)
     sqp_iters = DefaultOrderedDict(list)
     for res in results:
         trust = res["solver_config"]["trust_region_size"]
         trust_region[trust].append(trust)
         qp_iters[trust].append(res["num_qp_iterations"])
         sqp_iters[trust].append(res["num_sqp_iterations"])
     avg_qp_iters = []
     avg_sqp_iters = []
     trust_region = OrderedDict(sorted(trust_region.items()))
     for k in trust_region:
         avg_qp_iters.append(sum(qp_iters[k]) / len(qp_iters[k]))
         avg_sqp_iters.append(sum(sqp_iters[k]) / len(sqp_iters[k]))
     ys = [avg_qp_iters, avg_sqp_iters]
     xs = [trust_region.keys()] * len(ys)
     labels = ["QP iterations", "SQP iterations"]
     plotter.multi_plot_best_fit_curve(xs, ys, labels, "Number of SQP and QP iterations vs Trust region", "Trust region", "Number of iterations",
                                       deg=2)