예제 #1
0
 def init(self):
     id_discdds = self.config.id_discdds
     
     dp_config = get_dp_config()
 
     dp_config.load(self.config.config_dir)
     self.discdds = dp_config.discdds.instance(id_discdds)
     
     plan = self.config.plan
     self.action = self.discdds.plan2action(plan)
예제 #2
0
 def init_diffeo(self, shape):
     id_symdiffeo = self.config.id_symdiffeo
     symdiffeo = get_dp_config().symdiffeos.instance(id_symdiffeo)
     label = 'tmp'
     original_cmd = [np.zeros(1)]
     self.info('creating diffeo_action')
     contracts.disable_all()
     self.diffeo_action = \
         diffeo_action_from_symdiffeo(symdiffeo, shape,
                                      label, original_cmd)
     self.info('..done')
예제 #3
0
 def init_diffeo(self, shape):
     id_symdiffeo = self.config.id_symdiffeo
     symdiffeo = get_dp_config().symdiffeos.instance(id_symdiffeo)
     label = 'tmp'
     original_cmd = [np.zeros(1)]
     self.info('creating diffeo_action')
     contracts.disable_all()
     self.diffeo_action = \
         diffeo_action_from_symdiffeo(symdiffeo, shape,
                                      label, original_cmd)
     self.info('..done')
예제 #4
0
    def init(self):
        contracts.disable_all()
        id_discdds = self.config.id_discdds

        dp_config = get_dp_config()

        dp_config.load(self.config.config_dir)
        self.discdds = dp_config.discdds.instance(id_discdds)

        N = self.config.nsteps
        m = make_matrix(nsteps=N, mult=self.config.mult)

        cmd_to_action = {'a': 3, 'b': 2, 'c': 1, 'd': 0}
        cmd_inv = {'a': 'c', 'b': 'd'}

        mult = self.config.mult
        sequence = {0: 0, 1: 1 * mult, 2: 2 * mult, 3: 3 * mult}

        @contract(ins='tuple(int,str)', returns='list[int]')
        def normalize_instruction(ins):
            num, cmd = ins
            if num < 0:
                cmd = cmd_inv[cmd]
                num = -num
            assert num >= 0
            k = cmd_to_action[cmd]
            n = sequence[num]
            return [k] * n

        @contract(splan='list[P](tuple(int,str))', returns='list(int)')
        def normalize_splan(splan):
            plan = []
            for ins in splan:
                plan.extend(normalize_instruction(ins))
            return plan

        M = 2 * N + 1
        self.actions = []
        for i, j in itertools.product(range(M), range(M)):
            m[i][j] = normalize_splan(m[i][j])
            action = self.discdds.plan2action(m[i][j])
            self.actions.append(action)

        self.info('shape: %s' % str(self.discdds.get_shape()))
        self.M = M
 def init(self):
     contracts.disable_all()
     id_discdds = self.config.id_discdds
     
     dp_config = get_dp_config()
 
     dp_config.load(self.config.config_dir)
     self.discdds = dp_config.discdds.instance(id_discdds)
     
     N = self.config.nsteps
     m = make_matrix(nsteps=N, mult=self.config.mult)
     
     cmd_to_action = {'a': 3, 'b': 2, 'c': 1, 'd': 0}
     cmd_inv = {'a': 'c', 'b': 'd'}
     
     mult = self.config.mult
     sequence = {0: 0, 1: 1 * mult, 2: 2 * mult, 3: 3 * mult}
     
     @contract(ins='tuple(int,str)', returns='list[int]')
     def normalize_instruction(ins):
         num, cmd = ins
         if num < 0:
             cmd = cmd_inv[cmd]
             num = -num 
         assert num >= 0
         k = cmd_to_action[cmd]
         n = sequence[num]
         return [k] * n
     
     @contract(splan='list[P](tuple(int,str))', returns='list(int)')
     def normalize_splan(splan):
         plan = []
         for ins in splan:
             plan.extend(normalize_instruction(ins))
         return plan
     
     M = 2 * N + 1
     self.actions = []
     for i, j in itertools.product(range(M), range(M)):
         m[i][j] = normalize_splan(m[i][j])
         action = self.discdds.plan2action(m[i][j])
         self.actions.append(action)
     
     self.info('shape: %s' % str(self.discdds.get_shape()))
     self.M = M
예제 #6
0
 def from_yaml(discdds, servo):
     dp_config = get_dp_config()
     _, i = dp_config.discdds.instance_smarter(discdds)
     return DiffeoPlanAgent(i, servo)
예제 #7
0
 def __init__(self, plans_generator, reduce_tolerance, distance):
     self.reduce_tolerance = reduce_tolerance
     self.plans_generator = instantiate_spec(plans_generator)
     _, self.distance = get_dp_config().distances.instance_smarter(distance)
예제 #8
0
 def from_yaml(discdds, servo):
     dp_config = get_dp_config()
     _, i = dp_config.discdds.instance_smarter(discdds)
     return DiffeoPlanAgent(i, servo)