Beispiel #1
0
    def init_planner(self, init_plan_scheme):
        r_r = self.traj.reward(self.reward.reward_th, fw=tt)

        if config.PREDICT_HUMAN_IGNORES_ROBOT:
            # Predict that human's reward is independent of the robot's trajectory
            # (i.e. human ignores the robot).
            r_h = self.traj_h.reward(self.reward_h_ignore_robot.reward_th,
                                     fw=tt)
        else:
            # Predict that human's reward is not independent of the robot's
            # trajectory (i.e. the robot's prediction of the human will rely
            # on how it chooses to initialize the human's belief of the robot's
            # plan).
            r_h = self.traj_h.reward(self.reward_h.reward_th, fw=tt)

        self.optimizer = PredictReactMaximizer(
            r_h,
            self.traj_h,
            r_r,
            self.traj,
            use_second_order=self.use_second_order,
            init_plan_scheme=init_plan_scheme)
        self.planner = TwoCarPlanner(self.traj,
                                     self.traj_h,
                                     self.human,
                                     self.optimizer,
                                     self.bounds,
                                     name=self.name)
Beispiel #2
0
    def init_planner(self, init_plan_scheme):
        r_h = self.traj_h.reward(self.reward_h.reward_torch, fw=torch)
        r_r = self.traj.reward(self.reward.reward_torch, fw=torch)

        self.optimizer = ILQRMaximizer(self.reward_h, self.traj_h, self.reward,
                                       self.traj, self.dyn)

        self.planner = TwoCarPlanner(self.traj,
                                     self.traj_h,
                                     self.human,
                                     self.optimizer,
                                     self.bounds,
                                     name=self.name)
Beispiel #3
0
    def init_planner(self, init_plan_scheme):
        r_h = self.traj_h.reward(self.reward_h.reward_th, fw=tt)
        r_r = self.traj.reward(self.reward.reward_th, fw=tt)

        self.optimizer = IteratedBestResponseMaximizer\
                (
            r_h, self.traj_h, r_r, self.traj,
            init_plan_scheme=init_plan_scheme)

        self.planner = TwoCarPlanner(self.traj,
                                     self.traj_h,
                                     self.human,
                                     self.optimizer,
                                     self.bounds,
                                     name=self.name)
Beispiel #4
0
    def init_planner(self, init_plan_scheme):
        r_r = self.traj.reward(self.reward.reward_th, fw=tt)
        r_h = self.traj_h.reward(self.reward_h.reward_th, fw=tt)
        # self.optimizer = NestedMaximizer(
        #     r_h, self.traj_h, r_r, self.traj,
        #     use_second_order=self.use_second_order)

        self.optimizer = NestedMaximizer(
            r_h,
            self.traj_h,
            r_r,
            self.traj,
            use_second_order=self.use_second_order,
            init_plan_scheme=init_plan_scheme)
        self.planner = TwoCarPlanner(self.traj,
                                     self.traj_h,
                                     self.human,
                                     self.optimizer,
                                     self.bounds,
                                     name=self.name)
Beispiel #5
0
 def init_planner(self, init_plan_scheme):
     self.traj_truck = None
     r_r = self.traj.reward(self.reward.reward_th, fw=tt)
     r_h = self.traj_h.reward(self.reward_h.reward_th, fw=tt)
     self.optimizer = HierarchicalMaximizer(
         r_h,
         self.traj_h,
         r_r,
         self.traj,
         mat_name=self.mat_name,
         n=self.strat_dim,
         proj=self.proj.proj_th,
         traj_truck=self.traj_truck,
         use_second_order=self.use_second_order,
         init_plan_scheme=init_plan_scheme)
     self.planner = TwoCarPlanner(self.traj,
                                  self.traj_h,
                                  self.human,
                                  self.optimizer,
                                  self.bounds,
                                  name=self.name)