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)
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')
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 from_yaml(discdds, servo): dp_config = get_dp_config() _, i = dp_config.discdds.instance_smarter(discdds) return DiffeoPlanAgent(i, servo)
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)